Skip to content

Commit a3f0b63

Browse files
committed
Merge branch 'spawn-with-spaces'
This topic branch conflicts with the next change that will change the way we call `CreateProcessW()`. So let's merge it early, to avoid merge conflicts during a merge (because we would have to resolve this with every single merging-rebase). Signed-off-by: Johannes Schindelin <[email protected]>
2 parents e985c2d + 4d0ad78 commit a3f0b63

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

compat/mingw.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1465,7 +1465,9 @@ static pid_t mingw_spawnve_fd(const char *cmd, const char **argv, char **deltaen
14651465
si.hStdOutput = winansi_get_osfhandle(fhout);
14661466
si.hStdError = winansi_get_osfhandle(fherr);
14671467

1468-
if (xutftowcs_path(wcmd, cmd) < 0)
1468+
if (*argv && !strcmp(cmd, *argv))
1469+
wcmd[0] = L'\0';
1470+
else if (xutftowcs_path(wcmd, cmd) < 0)
14691471
return -1;
14701472
if (dir && xutftowcs_path(wdir, dir) < 0)
14711473
return -1;
@@ -1494,8 +1496,8 @@ static pid_t mingw_spawnve_fd(const char *cmd, const char **argv, char **deltaen
14941496
wenvblk = make_environment_block(deltaenv);
14951497

14961498
memset(&pi, 0, sizeof(pi));
1497-
ret = CreateProcessW(wcmd, wargs, NULL, NULL, TRUE, flags,
1498-
wenvblk, dir ? wdir : NULL, &si, &pi);
1499+
ret = CreateProcessW(*wcmd ? wcmd : NULL, wargs, NULL, NULL, TRUE,
1500+
flags, wenvblk, dir ? wdir : NULL, &si, &pi);
14991501

15001502
free(wenvblk);
15011503
free(wargs);

t/t0061-run-command.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,4 +210,10 @@ test_expect_success MINGW 'verify curlies are quoted properly' '
210210
test_cmp expect actual
211211
'
212212

213+
test_expect_success MINGW 'can spawn with argv[0] containing spaces' '
214+
cp "$GIT_BUILD_DIR/t/helper/test-fake-ssh$X" ./ &&
215+
test_must_fail "$PWD/test-fake-ssh$X" 2>err &&
216+
grep TRASH_DIRECTORY err
217+
'
218+
213219
test_done

0 commit comments

Comments
 (0)