]> git.ipfire.org Git - thirdparty/git.git/commit - editor.c
run-command API: remove "env" member, always use "env_array"
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Thu, 25 Nov 2021 22:52:24 +0000 (23:52 +0100)
committerJunio C Hamano <gitster@pobox.com>
Fri, 26 Nov 2021 06:15:08 +0000 (22:15 -0800)
commitc7c4bdeccf3e737e6e674cd9f0828922e629ab06
tree941fea7dd2227732ade5722068ed141ab0cf8217
parent26a15355d60a0a5be08250512c05e1447036dce3
run-command API: remove "env" member, always use "env_array"

Remove the "env" member from "struct child_process" in favor of always
using the "env_array". As with the preceding removal of "argv" in
favor of "args" this gets rid of current and future oddities around
memory management at the API boundary (see the amended API docs).

For some of the conversions we can replace patterns like:

    child.env = env->v;

With:

    strvec_pushv(&child.env_array, env->v);

But for others we need to guard the strvec_pushv() with a NULL check,
since we're not passing in the "v" member of a "struct strvec",
e.g. in the case of tmp_objdir_env()'s return value.

Ideally we'd rename the "env_array" member to simply "env" as a
follow-up, since it and "args" are now inconsistent in not having an
"_array" suffix, and seemingly without any good reason, unless we look
at the history of how they came to be.

But as we've currently got 122 in-tree hits for a "git grep env_array"
let's leave that for now (and possibly forever). Doing that rename
would be too disruptive.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/receive-pack.c
builtin/worktree.c
connected.c
editor.c
object-file.c
run-command.c
run-command.h
trailer.c