aboutsummaryrefslogtreecommitdiff
path: root/gdb/environ.c
diff options
context:
space:
mode:
authorJ.T. Conklin <jtc@acorntoolworks.com>1995-08-01 20:14:27 +0000
committerJ.T. Conklin <jtc@acorntoolworks.com>1995-08-01 20:14:27 +0000
commit2b57629364528ef2fd913154e58f626123d51f1c (patch)
tree649b55da772d6aa5e9190ebcfa4bee6a5a31f998 /gdb/environ.c
parenta1bdcf913a6f7ee2bbb715dd48b1a75e10a43414 (diff)
downloadbinutils-2b57629364528ef2fd913154e58f626123d51f1c.zip
binutils-2b57629364528ef2fd913154e58f626123d51f1c.tar.gz
binutils-2b57629364528ef2fd913154e58f626123d51f1c.tar.bz2
* configure.in: Check for working mmap, ansi headers, string.h,
strings.h, and memory.h. * configure: Regenerated. * gdb_stat.h: New file, "portable" <sys/stat.h>. * gdb_string.h: New file, "portable" <string.h>. * altos-xdep.c, arm-tdep.c, arm-xdep.c, convex-tdep.c, convex-xdep.c, coredep.c, cxux-nat.c, dbxread.c, exec.c, gould-xdep.c, hppa-tdep.c, i386aix-nat.c, i386b-nat.c, i386mach-nat.c, i386v-nat.c, infptrace.c, m88k-nat.c, main.c, mdebugread.c, objfiles.c, os9kread.c, procfs.c, pyr-xdep.c, rs6000-nat.c, source.c, standalone.c, stuff.c, sun386-nat.c, symfile.c, symm-nat.c, symm-tdep.c, symtab.c, top.c, ultra3-nat.c, ultra3-xdep.c, umax-xdep.c, xcoffread.c: Include "gdb_stat.h" instead of <sys/stat.h>. * alpha-tdep.c, breakpoint.c, buildsym.c, c-typeprint.c, ch-typeprint.c, coffread.c, command.c, core-sol2.c, core-svr4.c, core.c, corelow.c, cp-valprint.c, dbxread.c, dcache.c, demangle.c, dpx2-nat.c, dstread.c, dwarfread.c, elfread.c, environ.c, eval.c, exec.c, f-lang.c, f-typeprint.c, f-valprint.c, findvar.c, fork-child.c, gdbtypes.c, hpread.c, i386-tdep.c, infcmd.c, inflow.c, infptrace.c, infrun.c, irix5-nat.c, language.c, m2-typeprint.c, main.c, mdebugread.c, minsyms.c, mipsread.c, monitor.c, nlmread.c, objfiles.c, os9kread.c, osfsolib.c, parse.c, printcmd.c, procfs.c, regex.c, remote-adapt.c, remote-arc.c, remote-array.c, remote-bug.c, remote-e7000.c, remote-eb.c, remote-es.c, remote-hms.c, remote-mm.c, remote-os9k.c, remote-pa.c, remote-sim.c, remote-st.c, remote-udi.c, remote-utils.c, remote-vx.c, remote-vx29k.c, remote-vx68.c, remote-vx960.c, remote-vxmips.c, remote-vxsparc.c, remote.c, solib.c, somread.c, source.c, stabsread.c, stack.c, symfile.c, symmisc.c, symtab.c, target.c, top.c, typeprint.c, utils.c, valarith.c, valops.c, valprint.c, values.c, xcoffread.c: Include "gdb_string.h" instead of <string.h>. * gdbtk.c: Likewise. * config/xm-sysv4.h, i386/xm-ptx.h, m68k/xm-sun3os4.h, sparc/xm-sun4os4.h (HAVE_MMAP): Removed. * config/xm-lynx.h, config/i386/xm-ptx.h, config/m68k/nm-apollo68b.h, config/m68k/xm-hp300hpux.h, config/mips/xm-irix3.h, config/mips/xm-mips.h, config/mips/xm-news-mips.h, config/mips/xm-riscos.h, config/pa/hppah.h, config/rs6000/xm-rs6000.h, config/sparc/xm-sun4os4.h, config/sparc/xm-sun4sol2.h, config/vax/xm-vaxbsd.h, config/vax/xm-vaxult.h, config/vax/xm-vaxult2.h (MEM_FNS_DECLARED): Removed. * config/mips/xm-irix3.h, config/mips/xm-mips.h, config/pa/xm-hppah.h (memcpy, memset): Removed declarations.
Diffstat (limited to 'gdb/environ.c')
-rw-r--r--gdb/environ.c35
1 files changed, 14 insertions, 21 deletions
diff --git a/gdb/environ.c b/gdb/environ.c
index 8d5dba1..193f34d 100644
--- a/gdb/environ.c
+++ b/gdb/environ.c
@@ -20,8 +20,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "defs.h"
#include "environ.h"
-#include <string.h>
-#include "defs.h" /* For strsave(). */
+#include "gdb_string.h"
+#include "gdbcore.h"
/* Return a new environment object. */
@@ -64,6 +64,9 @@ init_environ (e)
extern char **environ;
register int i;
+ if (environ == NULL)
+ return;
+
for (i = 0; environ[i]; i++) /*EMPTY*/;
if (e->allocated < i)
@@ -149,26 +152,16 @@ set_in_environ (e, var, value)
strcat (s, value);
vector[i] = s;
- /* Certain variables get exported back to the parent (e.g. our)
- environment, too. FIXME: this is a hideous hack and should not be
- allowed to live. What if we want to change the environment we pass to
- the program without affecting GDB's behavior? */
- if (STREQ(var, "PATH") /* Object file location */
- || STREQ (var, "G960BASE") /* Intel 960 downloads */
- || STREQ (var, "G960BIN") /* Intel 960 downloads */
- )
- {
- putenv (strsave (s));
- }
+ /* This used to handle setting the PATH and GNUTARGET variables
+ specially. The latter has been replaced by "set gnutarget"
+ (which has worked since GDB 4.11). The former affects searching
+ the PATH to find SHELL, and searching the PATH to find the
+ argument of "symbol-file" or "exec-file". Maybe we should have
+ some kind of "set exec-path" for that. But in any event, having
+ "set env" affect anything besides the inferior is a bad idea.
+ What if we want to change the environment we pass to the program
+ without afecting GDB's behavior? */
- /* This is a compatibility hack, since GDB 4.10 and older didn't have
- `set gnutarget'. Eventually it should go away, so that (for example)
- you can debug objdump's handling of GNUTARGET without affecting GDB's
- behavior. */
- if (STREQ (var, "GNUTARGET"))
- {
- set_gnutarget (value);
- }
return;
}