diff --git a/winsup/utils/ChangeLog b/winsup/utils/ChangeLog index 635cbdbb7..5b9de0469 100644 --- a/winsup/utils/ChangeLog +++ b/winsup/utils/ChangeLog @@ -1,3 +1,8 @@ +2009-04-22 Christopher Faylor + + * 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 * cygpath.cc (do_pathconv): Only skip \\?\ prefix if it's really diff --git a/winsup/utils/strace.cc b/winsup/utils/strace.cc index 745da9d2c..0334eb71e 100644 --- a/winsup/utils/strace.cc +++ b/winsup/utils/strace.cc @@ -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,