aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Schindelin <johannes.schindelin@gmx.de>2024-07-13 21:08:18 +0000
committerJunio C Hamano <gitster@pobox.com>2024-07-13 16:23:36 -0700
commit0593c1ea30737cf2d61f7c191d3687b37badf3be (patch)
tree7e85bb4dcf5e2771ceb750d16c4631f37aea2de1
parenta7dae3bdc8b516d36f630b12bb01e853a667e0d9 (diff)
downloadgit-0593c1ea30737cf2d61f7c191d3687b37badf3be.tar.gz
run-command: refactor getting the Unix shell path into its own function
This encapsulates the platform-specific logic better. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--run-command.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/run-command.c b/run-command.c
index d9f80fabe6..59e433bf91 100644
--- a/run-command.c
+++ b/run-command.c
@@ -274,17 +274,22 @@ int sane_execvp(const char *file, char * const argv[])
return -1;
}
+static const char *git_shell_path(void)
+{
+#ifndef GIT_WINDOWS_NATIVE
+ return SHELL_PATH;
+#else
+ return "sh";
+#endif
+}
+
static const char **prepare_shell_cmd(struct strvec *out, const char **argv)
{
if (!argv[0])
BUG("shell command is empty");
if (strcspn(argv[0], "|&;<>()$`\\\"' \t\n*?[#~=%") != strlen(argv[0])) {
-#ifndef GIT_WINDOWS_NATIVE
- strvec_push(out, SHELL_PATH);
-#else
- strvec_push(out, "sh");
-#endif
+ strvec_push(out, git_shell_path());
strvec_push(out, "-c");
/*