OSDN Git Service

* strace.cc (create_child): Set CYGWIN=noglob when starting new process so that
authorcgf <cgf>
Wed, 22 Apr 2009 19:08:52 +0000 (19:08 +0000)
committercgf <cgf>
Wed, 22 Apr 2009 19:08:52 +0000 (19:08 +0000)
Cygwin will leave already-parsed the command line alonw.

winsup/utils/ChangeLog
winsup/utils/strace.cc

index 635cbdb..5b9de04 100644 (file)
@@ -1,3 +1,8 @@
+2009-04-22  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * strace.cc (create_child): Set CYGWIN=noglob when starting new process
+       so that Cygwin will leave already-parsed the command line alonw.
+
 2009-04-15  Corinna Vinschen  <corinna@vinschen.de>
 
        * cygpath.cc (do_pathconv): Only skip \\?\ prefix if it's really
index 745da9d..0334eb7 100644 (file)
@@ -326,12 +326,22 @@ create_child (char **argv)
   make_command_line (one_line, argv);
 
   SetConsoleCtrlHandler (NULL, 0);
+  const char *cygwin_env = getenv ("CYGWIN");
+  const char *space;
+  if (cygwin_env)
+    space = " ";
+  else
+    space = cygwin_env = "";
+  char *newenv = (char *) malloc (sizeof ("CYGWIN=noglob") + strlen (space) + strlen (cygwin_env));
+  sprintf (newenv, "CYGWIN=noglob%s%s", space, cygwin_env);
+  _putenv (newenv);
   ret = CreateProcess (0, one_line.buf,        /* command line */
                       NULL,    /* Security */
                       NULL,    /* thread */
                       TRUE,    /* inherit handles */
                       flags,   /* start flags */
-                      NULL, NULL,      /* current directory */
+                      NULL,    /* default environment */
+                      NULL,    /* current directory */
                       &si, &pi);
   if (!ret)
     error (0, "error creating process %s, (error %d)", *argv,