From: René Scharfe Date: Sun, 26 May 2024 20:16:50 +0000 (+0200) Subject: difftool: add env vars directly in run_file_diff() X-Git-Tag: v2.46.0-rc0~74^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=36d900d2b0b861d4cb359ddbaa904de90336eb71;p=thirdparty%2Fgit.git 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 Signed-off-by: Junio C Hamano --- 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); }