This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[RFA] Re: DOS/Windows-specific code: cli-cmds.c
- To: gdb-patches at sources dot redhat dot com
- Subject: [RFA] Re: DOS/Windows-specific code: cli-cmds.c
- From: Eli Zaretskii <eliz at is dot elta dot co dot il>
- Date: Sun, 10 Jun 2001 16:28:57 +0300 (IDT)
- CC: Christopher Faylor <cgf at redhat dot com>
- References: <20010503211502.21716.qmail@web6401.mail.yahoo.com> <3AF1DAA0.3060702@cygnus.com> <200105071609.TAA24129@is.elta.co.il> <200105081141.OAA06131@is.elta.co.il>
- Reply-to: Eli Zaretskii <eliz at is dot elta dot co dot il>
> Date: Tue, 8 May 2001 14:41:53 +0300 (IDT)
> From: Eli Zaretskii <eliz@is.elta.co.il>
>
> * cli-cmds.c:
>
> /* FIXME: this should be auto-configured! */
> #ifdef __MSDOS__
> # define CANT_FORK
> #endif
>
> This seems to cry for either an Autoconf test (based on whether the
> compiler defines __MSDOS__ or not) or perhaps the whole snippet should
> be moved to config/i386/xm-go32.h.
>
>
> * cli-cmds.c:shell_escape()
>
> #ifdef __DJGPP__
> /* Make sure to return to the directory GDB thinks it is, in case the
> shell command we just ran changed it. */
> chdir (current_directory);
> #endif
>
> This code is there because the current working directory is a global
> notion (as opposed to being private to each process on Posix
> systems). Windows ports, at least the non-Cygwin ones, probably want
> this as well. Suggestions how to test this, anyone? Should we define
> a GLOBAL_CURDIR macro (zero by default)?
Here's the patch to fix these two issues. Okay to commit?
2001-06-10 Eli Zaretskii <eliz@is.elta.co.il>
* cli/cli-cmds.c (shell_escape) [GLOBAL_CURDIR]: Condition the
call to chdir on this symbol rather than on __DJGPP__.
(CANT_FORK) [__MSDOS__]: Move from here...
* defs.h (CANT_FORK) [__MSDOS__]: ...to here.
(GLOBAL_CURDIR) [__MSDOS__]: Define.
--- gdb/defs.h~0 Mon Jun 4 09:38:04 2001
+++ gdb/defs.h Sun Jun 10 16:08:22 2001
@@ -1372,6 +1372,11 @@
#endif
#endif
+#ifdef __MSDOS__
+# define CANT_FORK
+# define GLOBAL_CURDIR
+#endif
+
/* Provide default definitions of PIDGET, TIDGET, and MERGEPID.
The name ``TIDGET'' is a historical accident. Many uses of TIDGET
in the code actually refer to a lightweight process id, i.e,
--- gdb/cli/cli-cmds.c~0 Wed Jun 6 12:25:24 2001
+++ gdb/cli/cli-cmds.c Sun Jun 10 16:10:18 2001
@@ -39,11 +39,6 @@
#define GDBINIT_FILENAME ".gdbinit"
#endif
-/* FIXME: this should be auto-configured! */
-#ifdef __MSDOS__
-# define CANT_FORK
-#endif
-
/* From gdb/top.c */
extern void dont_repeat (void);
@@ -454,7 +449,7 @@
fprintf_unfiltered (gdb_stderr, "%s exited with status %d\n", arg, rc);
gdb_flush (gdb_stderr);
}
-#ifdef __DJGPP__
+#ifdef GLOBAL_CURDIR
/* Make sure to return to the directory GDB thinks it is, in case the
shell command we just ran changed it. */
chdir (current_directory);