aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRené Scharfe <l.s.r@web.de>2024-05-26 22:16:50 +0200
committerJunio C Hamano <gitster@pobox.com>2024-05-27 08:55:59 -0700
commit36d900d2b0b861d4cb359ddbaa904de90336eb71 (patch)
treeae28f2c8a3eb46e8ef8cfe5ab720235a3c130a76
parent786a3e4b8d754d2b14b1208b98eeb0a554ef19a8 (diff)
downloadgit-36d900d2b0b861d4cb359ddbaa904de90336eb71.tar.xz
difftool: add env vars directly in run_file_diff()
Add the environment variables of the child process directly using strvec_push() instead of building an array out of them and then adding that using strvec_pushv(). The new code is shorter and avoids magic array index values and fragile array padding. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--builtin/difftool.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/builtin/difftool.c b/builtin/difftool.c
index a3c72b8258..06a6c14847 100644
--- a/builtin/difftool.c
+++ b/builtin/difftool.c
@@ -674,19 +674,15 @@ finish:
static int run_file_diff(int prompt, const char *prefix,
struct child_process *child)
{
- const char *env[] = {
- "GIT_PAGER=", "GIT_EXTERNAL_DIFF=git-difftool--helper", NULL,
- NULL
- };
-
+ strvec_push(&child->env, "GIT_PAGER=");
+ strvec_push(&child->env, "GIT_EXTERNAL_DIFF=git-difftool--helper");
if (prompt > 0)
- env[2] = "GIT_DIFFTOOL_PROMPT=true";
+ strvec_push(&child->env, "GIT_DIFFTOOL_PROMPT=true");
else if (!prompt)
- env[2] = "GIT_DIFFTOOL_NO_PROMPT=true";
+ strvec_push(&child->env, "GIT_DIFFTOOL_NO_PROMPT=true");
child->git_cmd = 1;
child->dir = prefix;
- strvec_pushv(&child->env, env);
return run_command(child);
}