From: Phillip Wood Date: Tue, 09 Jul 2024 08:55:13 GMT Subject: Re: [PATCH] var(win32): do report the GIT_SHELL_PATH that is actually used Message-ID: <8612a47b-18c4-4071-8827-56b4f3bd0d80@gmail.com> In-Reply-To: Hi Johannes On 08/07/2024 14:02, Johannes Schindelin via GitGitGadget wrote: > From: Johannes Schindelin 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