treewide: ensure one of the appropriate headers is sourced first
We had several C files ignoring the rule to include one of the
appropriate headers first; fix that.
While at it, the rule in Documentation/CodingGuidelines about which
header to include has also fallen out of sync, so update the wording to
mention other allowed headers.
Unfortunately, C files in reftable/ don't actually follow the previous
or updated rule. If you follow the #include chain in its C files,
reftable/system.h _tends_ to be first (i.e. record.c first includes
record.h, which first includes basics.h, which first includees
system.h), but not always (e.g. publicbasics.c includes another header
first that does not include system.h). However, I'm going to punt on
making actual changes to the C files in reftable/ since I do not want to
risk bringing it out-of-sync with any version being used externally.
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Elijah Newren committedFeb 24, 2023 at 00:09 UTC8bff5ca030d314d613e1ab58f07b27914d6dfd33
14 files changed+19-3
Documentation/CodingGuidelines
+6-2
index 9d5c27807a..003393ed16 100644--- a/Documentation/CodingGuidelines+++ b/Documentation/CodingGuidelines@@ -442,8 +442,12 @@ For C programs: detail. - The first #include in C files, except in platform specific compat/- implementations, must be either "git-compat-util.h", "cache.h" or- "builtin.h". You do not have to include more than one of these.+ implementations and sha1dc/, must be either "git-compat-util.h" or+ one of the approved headers that includes it first for you. (The+ approved headers currently include "cache.h", "builtin.h",+ "t/helper/test-tool.h", "xdiff/xinclude.h", or+ "reftable/system.h"). You do not have to include more than one of+ these. - A C file must directly include the header files that declare the functions and the types it uses, except for the functions and types
cbtree.c
+1
index 336e46dbba..c1cc30a5dc 100644--- a/cbtree.c+++ b/cbtree.c@@ -4,6 +4,7 @@ * Based on Adam Langley's adaptation of Dan Bernstein's public domain code * git clone https://github.com/agl/critbit.git */+#include "git-compat-util.h" #include "cbtree.h" static struct cb_node *cb_node_of(const void *p)
index 0d39389bee..7d57b7b19e 100644--- a/oidtree.c+++ b/oidtree.c@@ -2,6 +2,7 @@ * A wrapper around cbtree which stores oids * May be used to replace oid-array for prefix (abbreviation) matches */+#include "git-compat-util.h" #include "oidtree.h" #include "alloc.h" #include "hash.h"