Hi Johannes
On 08/07/2024 14:02, Johannes Schindelin via GitGitGadget wrote:
From: Johannes Schindelin <johannes.schindelin@xxxxxx>
Thanks for putting a patch together so quickly
static char *shell_path(int ident_flag UNUSED)
{
+#ifdef WIN32
+ char *p = locate_in_PATH("sh");
If I'm reading is_busybox_applet() (which only exists in
git-for-windows) correctly then this will return "busybox.exe" under
mingit-busybox rather than ash.exe, so the calling program would have to
know to set argv[0] (which is likely not possible unless the calling
program is written in C) or pass "sh" as the first argument. As the code
to support busybox does not exist upstream I guess that's best handled
downstream.
Best Wishes
Phillip
+ convert_slashes(p);
+ return p;
+#else
return xstrdup(SHELL_PATH);
+#endif
}
static char *git_attr_val_system(int ident_flag UNUSED)
diff --git a/t/t0007-git-var.sh b/t/t0007-git-var.sh
index ff4fd9348cc..9fc58823873 100755
--- a/t/t0007-git-var.sh
+++ b/t/t0007-git-var.sh
@@ -157,7 +157,7 @@ test_expect_success POSIXPERM 'GIT_SHELL_PATH points to a valid executable' '
test_expect_success MINGW 'GIT_SHELL_PATH points to a suitable shell' '
shellpath=$(git var GIT_SHELL_PATH) &&
case "$shellpath" in
- *sh) ;;
+ [A-Z]:/*/sh.exe) test -f "$shellpath";;
*) return 1;;
esac
'
base-commit: 06e570c0dfb2a2deb64d217db78e2ec21672f558