summaryrefslogtreecommitdiff
path: root/compat
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2019-07-29 12:38:17 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2019-07-29 12:38:17 -0700
commit2f72ebfcd02b06a19e6c5429fcfc78b5fc754144 (patch)
tree0b83fd7835ecd4e390e5814a7cecf56f461c3cba /compat
parentMerge branch 'sr/gpg-interface-stop-at-the-end' into maint (diff)
parentmingw: support spawning programs containing spaces in their names (diff)
downloadtgif-2f72ebfcd02b06a19e6c5429fcfc78b5fc754144.tar.xz
Merge branch 'js/mingw-spawn-with-spaces-in-path' into maint
Window 7 update ;-) * js/mingw-spawn-with-spaces-in-path: mingw: support spawning programs containing spaces in their names
Diffstat (limited to 'compat')
-rw-r--r--compat/mingw.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/compat/mingw.c b/compat/mingw.c
index 9b6d2400e1..6d7fc07a48 100644
--- a/compat/mingw.c
+++ b/compat/mingw.c
@@ -1437,7 +1437,9 @@ static pid_t mingw_spawnve_fd(const char *cmd, const char **argv, char **deltaen
si.hStdOutput = winansi_get_osfhandle(fhout);
si.hStdError = winansi_get_osfhandle(fherr);
- if (xutftowcs_path(wcmd, cmd) < 0)
+ if (*argv && !strcmp(cmd, *argv))
+ wcmd[0] = L'\0';
+ else if (xutftowcs_path(wcmd, cmd) < 0)
return -1;
if (dir && xutftowcs_path(wdir, dir) < 0)
return -1;
@@ -1466,8 +1468,8 @@ static pid_t mingw_spawnve_fd(const char *cmd, const char **argv, char **deltaen
wenvblk = make_environment_block(deltaenv);
memset(&pi, 0, sizeof(pi));
- ret = CreateProcessW(wcmd, wargs, NULL, NULL, TRUE, flags,
- wenvblk, dir ? wdir : NULL, &si, &pi);
+ ret = CreateProcessW(*wcmd ? wcmd : NULL, wargs, NULL, NULL, TRUE,
+ flags, wenvblk, dir ? wdir : NULL, &si, &pi);
free(wenvblk);
free(wargs);