@matheusbsbs / matheus-bagliano / commits / 04522edbd4
Fork 0

mingw: fix quoting of empty arguments for `sh`

When constructing command-lines to spawn processes, it is an unfortunate but necessary decision to quote arguments differently: MSYS2 has different dequoting rules (inherited from Cygwin) than the rest of Windows. To accommodate that, Git's Windows compatibility layer has two separate quoting helpers, one for MSYS2 (which it uses exclusively when spawning `sh`) and the other for regular Windows executables. The MSYS2 one had an unfortunate bug where a `,` somehow slipped in, instead of the `;`. As a consequence, empty arguments would not be enclosed in a pair of double quotes, but the closing double quote was skipped. Let's fix this. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>

Johannes Schindelin committed Sep 19, 2019 at 23:38 UTC 04522edbd4086cd9063a8e65664c11a87bb7d89e
1 file changed +1 -1
compat/mingw.c
+1 -1
@@ -1136,7 +1136,7 @@ static const char *quote_arg_msys2(const char *arg)
1136 else if (!buf.len)
1137 return arg;
1138 else
1139 - strbuf_add(&buf, p2, p - p2),
1139 + strbuf_add(&buf, p2, p - p2);
1140
1141 strbuf_addch(&buf, '"');
1142 return strbuf_detach(&buf, 0);