]> git.eshelyaron.com Git - emacs.git/commitdiff
(sys_spawnve): Quote args with wildcards.
authorJason Rumney <jasonr@gnu.org>
Mon, 26 Nov 2007 23:04:09 +0000 (23:04 +0000)
committerJason Rumney <jasonr@gnu.org>
Mon, 26 Nov 2007 23:04:09 +0000 (23:04 +0000)
src/ChangeLog
src/w32proc.c

index 9ed11c061e2c95c9346da72c4f6d18b3088925d5..13edfa07e901c61184dea1335383b212c18327a5 100644 (file)
@@ -1,3 +1,7 @@
+2007-11-26  Jason Rumney  <jasonr@gnu.org>
+
+       * w32proc.c (sys_spawnve): Quote args with wildcards.
+
 2007-11-26  Andreas Schwab  <schwab@suse.de>
 
        * process.c (list_processes_1): Fix indentation level of the
index c21d589c525581b205ab53f9bf77932dd30197ce..a14a8ee384cdc2bf14c84cfed7e78965b159d608 100644 (file)
@@ -781,7 +781,14 @@ sys_spawnve (int mode, char *cmdname, char **argv, char **envp)
      variable in their environment.  */
   char ppid_env_var_buffer[64];
   char *extra_env[] = {ppid_env_var_buffer, NULL};
-  char *sepchars = " \t";
+  /* These are the characters that cause an argument to need quoting.
+     Arguments with whitespace characters need quoting to prevent the
+     argument being split into two or more. Arguments with wildcards
+     are also quoted, for consistency with posix platforms, where wildcards
+     are not expanded if we run the program directly without a shell.
+     Some extra whitespace characters need quoting in Cygwin programs,
+     so this list is conditionally modified below.  */
+  char *sepchars = " \t*?";
 
   /* We don't care about the other modes */
   if (mode != _P_NOWAIT)