diff options
author | Johannes Schindelin <johannes.schindelin@gmx.de> | 2019-09-19 23:43:03 +0200 |
---|---|---|
committer | Johannes Schindelin <johannes.schindelin@gmx.de> | 2019-12-06 16:31:15 +0100 |
commit | 7d8b676992ba0418aeb78f0ad1f4e193ad979b2e (patch) | |
tree | 6e33254247856365eeba59cbaa65a9523f75db54 | |
parent | mingw: fix quoting of empty arguments for `sh` (diff) | |
download | tgif-7d8b676992ba0418aeb78f0ad1f4e193ad979b2e.tar.xz |
mingw: sh arguments need quoting in more circumstances
Previously, we failed to quote characters such as '*', '(' and the
likes. Let's fix this.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
-rw-r--r-- | compat/mingw.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/compat/mingw.c b/compat/mingw.c index 7635ad5152..2c55c3426c 100644 --- a/compat/mingw.c +++ b/compat/mingw.c @@ -1120,13 +1120,14 @@ static const char *quote_arg_msys2(const char *arg) for (p = arg; *p; p++) { int ws = isspace(*p); - if (!ws && *p != '\\' && *p != '"' && *p != '{') + if (!ws && *p != '\\' && *p != '"' && *p != '{' && *p != '\'' && + *p != '?' && *p != '*' && *p != '~') continue; if (!buf.len) strbuf_addch(&buf, '"'); if (p != p2) strbuf_add(&buf, p2, p - p2); - if (!ws && *p != '{') + if (*p == '\\' || *p == '"') strbuf_addch(&buf, '\\'); p2 = p; } |