From 3a45aed885a8d910cca5cd7adf86b4781b739c5a Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sun, 6 Aug 2000 07:19:38 +0000 Subject: [PATCH] * go32-nat.c: (go32_wait): If child_cwd[] is empty, initialize it to GDB's current directory. (go32_create_inferior, init_go32_ops): Initialize child_cwd[] to an empty string, to signal an uninitialized value. From Robert Hoehne . --- gdb/ChangeLog | 8 ++++++++ gdb/go32-nat.c | 17 +++++++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index bdaaa2ae717..3e711dcf9f0 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2000-08-05 Eli Zaretskii + + * go32-nat.c: (go32_wait): If child_cwd[] is empty, initialize + it to GDB's current directory. + (go32_create_inferior, init_go32_ops): Initialize child_cwd[] to + an empty string, to signal an uninitialized value. + From Robert Hoehne . + 2000-08-04 Kevin Buettner * symtab.h (fixup_psymbol_section): Declare. diff --git a/gdb/go32-nat.c b/gdb/go32-nat.c index 6668f06e4e4..41170066ce2 100644 --- a/gdb/go32-nat.c +++ b/gdb/go32-nat.c @@ -389,6 +389,13 @@ go32_wait (int pid ATTRIBUTE_UNUSED, struct target_waitstatus *status) point of changing back to where GDB thinks is its cwd, when we return control to the debugger, but restore child's cwd before we run it. */ + /* Initialize child_cwd, before the first call to run_child and not + in the initialization, so the child get also the changed directory + set with the gdb-command "cd ..." */ + if (!*child_cwd) + /* Initialize child's cwd with the current one. */ + getcwd (child_cwd, sizeof (child_cwd)); + chdir (child_cwd); #if __DJGPP_MINOR__ < 3 @@ -603,6 +610,11 @@ go32_create_inferior (char *exec_file, char *args, char **env) } resume_signal = -1; resume_is_step = 0; + + /* Initialize child's cwd as empty to be initialized when starting + the child. */ + *child_cwd = 0; + /* Init command line storage. */ if (redir_debug_init (&child_cmd) == -1) internal_error ("Cannot allocate redirection storage: not enough memory.\n"); @@ -1224,8 +1236,9 @@ init_go32_ops (void) go32_ops.to_has_execution = 1; go32_ops.to_magic = OPS_MAGIC; - /* Initialize child's cwd with the current one. */ - getcwd (child_cwd, sizeof (child_cwd)); + /* Initialize child's cwd as empty to be initialized when starting + the child. */ + *child_cwd = 0; /* Initialize child's command line storage. */ if (redir_debug_init (&child_cmd) == -1) -- 2.30.2