From: Johannes Schindelin Date: Sat, 13 Jul 2024 21:08:21 +0000 (+0000) Subject: mingw(is_msys2_sh): handle forward slashes in the `sh.exe` path, too X-Git-Tag: v2.46.0-rc1~8^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f1ed769a3bc045d9f79396fb6074bfb33b83e09d;p=thirdparty%2Fgit.git mingw(is_msys2_sh): handle forward slashes in the `sh.exe` path, too Whether the full path to the MSYS2 Bash is specified using backslashes or forward slashes, in either case the command-line arguments need to be quoted in the MSYS2-specific manner instead of using regular Win32 command-line quoting rules. In preparation for `prepare_shell_cmd()` to use the full path to `sh.exe` (with forward slashes for consistency), let's teach the `is_msys2_sh()` function about this; Otherwise 5580.4 'clone with backslashed path' would fail once `prepare_shell_cmd()` uses the full path instead of merely `sh`. This patch relies on the just-introduced fix where `fspathcmp()` handles backslashes and forward slashes as equivalent on Windows. Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- diff --git a/compat/mingw.c b/compat/mingw.c index 6097b8f9e6..29d3f09768 100644 --- a/compat/mingw.c +++ b/compat/mingw.c @@ -1546,7 +1546,7 @@ static int is_msys2_sh(const char *cmd) return ret; } - if (ends_with(cmd, "\\sh.exe")) { + if (ends_with(cmd, "\\sh.exe") || ends_with(cmd, "/sh.exe")) { static char *sh; if (!sh)