]> Kevux Git Server - rit/commit
CodingGuidelines: mention dynamic C99 initializer elements
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Mon, 10 Oct 2022 20:37:57 +0000 (13:37 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 10 Oct 2022 20:41:11 +0000 (13:41 -0700)
commit442c27dde784049a2c0f8815ac5030817123386c
tree5587c5ad2575bd4af018886ca59cc78a03f030b5
parente88a2d02dc5fb1043e6871159a8d41657baa7449
CodingGuidelines: mention dynamic C99 initializer elements

The first use of variables in initializer elements appears to have
been 2b6854c863a (Cleanup variables in cat-file, 2007-04-21) released
with v1.5.2.

Some of those caused portability issues, and e.g. that "cat-file" use
was changed in 66dbfd55e38 (Rewrite dynamic structure initializations
to runtime assignment, 2010-05-14) which went out with v1.7.2.

But curiously 66dbfd55e38 missed some of them, e.g. an archive.c use
added in d5f53d6d6f2 (archive: complain about path specs that don't
match anything, 2009-12-12), and another one in merge-index.c (later
builtin/merge-index.c) in 0077138cd9d (Simplify some instances of
run_command() by using run_command_v_opt()., 2009-06-08).

As far as I can tell there's been no point since 2b6854c863a in 2007
where a compiler that didn't support this has been able to compile
git. Presumably 66dbfd55e38 was an attempt to make headway with wider
portability that ultimately wasn't completed.

In any case, we are thoroughly reliant on this syntax at this point,
so let's update the guidelines, see
https://lore.kernel.org/git/xmqqy1tunjgp.fsf@gitster.g/ for the
initial discussion.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/CodingGuidelines