This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

[RFA] Re: DOS/Windows-specific code: cli-cmds.c


> 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);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]