From 93909972c22cc7b1d2e4e9528037d03041730697 Mon Sep 17 00:00:00 2001
From: Ray Donnelly <mingw.android@gmail.com>
Date: Sun, 23 Aug 2015 20:47:30 +0100
Subject: [PATCH 13/N] strace.cc: Don't set MSYS=noglob

Commit message for this code was:

* strace.cc (create_child): Set CYGWIN=noglob when starting new process so that

  Cygwin will leave already-parsed the command line alonw."

I can see no reason for it and it badly breaks the ability to use
strace.exe to investigate calling a Cygwin program from a Windows
program, for example:
strace mingw32-make.exe
.. where mingw32-make.exe finds sh.exe and uses it as the shell.
The reason it badly breaks this use-case is because dcrt0.cc depends
on globbing to happen to parse commandlines from Windows programs;
irrespective of whether they contain any glob patterns or not.

See quoted () comment:
"This must have been run from a Windows shell, so preserve
 quotes for globify to play with later."
---
 winsup/utils/mingw/strace.cc | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/winsup/utils/mingw/strace.cc b/winsup/utils/mingw/strace.cc
index de4abc4..3dbce3b 100644
--- a/winsup/utils/mingw/strace.cc
+++ b/winsup/utils/mingw/strace.cc
@@ -354,10 +354,28 @@ create_child (char **argv)
   make_command_line (one_line, argv);
 
   SetConsoleCtrlHandler (NULL, 0);
+/* Commit message for this code was:
+"* strace.cc (create_child): Set CYGWIN=noglob when starting new process so that
+
+  Cygwin will leave already-parsed the command line alonw."
+
+  I can see no reason for it and it badly breaks the ability to use
+  strace.exe to investigate calling a Cygwin program from a Windows
+  program, for example:
+  strace mingw32-make.exe
+  .. where mingw32-make.exe finds sh.exe and uses it as the shell.
+  The reason it badly breaks this use-case is because dcrt0.cc depends
+  on globbing to happen to parse commandlines from Windows programs;
+  irrespective of whether they contain any glob patterns or not.
+  
+  See quoted () comment:
+  "This must have been run from a Windows shell, so preserve
+     quotes for globify to play with later."
+
   const char *cygwin_env = getenv ("MSYS");
   const char *space;
 
-  if (cygwin_env && strlen (cygwin_env) <= 256) /* sanity check */
+  if (cygwin_env && strlen (cygwin_env) <= 256) // sanity check
     space = " ";
   else
     space = cygwin_env = "";
@@ -365,6 +383,7 @@ create_child (char **argv)
 				  + strlen (space) + strlen (cygwin_env));
   sprintf (newenv, "MSYS=noglob%s%s", space, cygwin_env);
   _putenv (newenv);
+*/
   ret = CreateProcess (0, one_line.buf,	/* command line */
 		       NULL,	/* Security */
 		       NULL,	/* thread */
