diff options
author | Eli Zaretskii <eliz@gnu.org> | 2015-02-28 14:34:51 +0200 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2015-02-28 14:34:51 +0200 |
commit | a80a8b8a10a8b3d46046d955986f484527c81c0b (patch) | |
tree | e26c836262ae17bb393f7a776d189e68db323dc3 | |
parent | e4ac28e83081fa273b19fa778d46c1e3052cb834 (diff) | |
download | gunmake-a80a8b8a10a8b3d46046d955986f484527c81c0b.tar.gz |
[SV 44348] Fix handling of shell widlcards on MS-Windows.
* job.c (construct_command_argv_internal): If shell wildcard
characters are found inside a string quoted with "..", give up the
fast route and go through the shell. Fixes Savannah bug #44348.
-rw-r--r-- | job.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -2890,6 +2890,10 @@ construct_command_argv_internal (char *line, char **restp, const char *shell, else if (instring == '"' && strchr ("\\$`", *p) != 0 && unixy_shell) goto slow; #ifdef WINDOWS32 + /* Quoted wildcard characters must be passed quoted to the + command, so give up the fast route. */ + else if (instring == '"' && strchr ("*?", *p) != 0 && !unixy_shell) + goto slow; else if (instring == '"' && strncmp (p, "\\\"", 2) == 0) *ap++ = *++p; #endif |