Re: [PATCH] var(win32): do report the GIT_SHELL_PATH that is actually used
- From
- Phillip Wood <phillip.wood123@gmail.com>
- Date
- Jul 9, 2024, 08:55 UTC
- Message-ID
- <8612a47b-18c4-4071-8827-56b4f3bd0d80@gmail.com>
- In-Reply-To
- <pull.1760.git.1720443778074.gitgitgadget@gmail.com>
Hi Johannes
On 08/07/2024 14:02, Johannes Schindelin via GitGitGadget wrote:
> From: Johannes Schindelin <johannes.schindelin@gmx.de>
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
Show 23 quoted lines
> + 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