diff options
author | Jason Rumney <jasonr@gnu.org> | 2007-11-26 23:04:09 +0000 |
---|---|---|
committer | Jason Rumney <jasonr@gnu.org> | 2007-11-26 23:04:09 +0000 |
commit | 0a7a6051a9c0b50cd59285e9d174d3362e913ebd (patch) | |
tree | 789636300a13f4f9e5c186200c8b7449fa66a190 /src | |
parent | 2867910524be26279744d54d04ced7b4134eb7b6 (diff) | |
download | emacs-0a7a6051a9c0b50cd59285e9d174d3362e913ebd.tar.gz |
(sys_spawnve): Quote args with wildcards.
Diffstat (limited to 'src')
-rw-r--r-- | src/ChangeLog | 4 | ||||
-rw-r--r-- | src/w32proc.c | 9 |
2 files changed, 12 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 9ed11c061e2..13edfa07e90 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -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 diff --git a/src/w32proc.c b/src/w32proc.c index c21d589c525..a14a8ee384c 100644 --- a/src/w32proc.c +++ b/src/w32proc.c @@ -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) |