Re: [PATCH] Do not use SHELL_PATH from build system in prepare_shell_cmd on Windows
- From
Jeff King <peff@peff.net>
- Date
- Apr 17, 2012, 22:14 UTC
- Message-ID
- <20120417221449.GC10797@sigill.intra.peff.net>
- In-Reply-To
- <4F8D15B9.70803@viscovery.net>
On Tue, Apr 17, 2012 at 09:03:21AM +0200, Johannes Sixt wrote:
Show 16 quoted lines
> diff --git a/run-command.c b/run-command.c
> index 2af3e0f..e4edede 100644
> --- a/run-command.c
> +++ b/run-command.c
> @@ -94,7 +94,11 @@ static const char **prepare_shell_cmd(const char **argv)
> die("BUG: shell command is empty");
>
> if (strcspn(argv[0], "|&;<>()$`\\\"' \t\n*?[#~=%") != strlen(argv[0])) {
> +#ifndef WIN32
> nargv[nargc++] = SHELL_PATH;
> +#else
> + nargv[nargc++] = "sh";
> +#endif
> nargv[nargc++] = "-c";
>
> if (argc < 2)It sounds like the real problem is not the use of a configurable shell, but rather the use of an absolute path. Should you maybe try to pass the basename of SHELL_PATH? Or maybe that is not even worth worrying about, as somebody on Windows is not going to ever set SHELL_PATH, since it is not like they are working around a non-POSIX "sh" included with the operating system (which is why people on Solaris typically set SHELL_PATH).
-Peff