devtools/reduce-includes.sh: don't remove our own .h from .c file includes.

Even if we would currently include it indirectly, we must include it directly.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell
2025-10-22 19:44:27 +10:30
parent f6a4e79420
commit bc44d3c629

View File

@@ -7,11 +7,13 @@ fi
CCMD=$(make show-flags | sed -n 's/CC://p')
for file; do
# We have a rule (and a check!) that a .c includes its own .h directly.
OWN_HDR='<'$(echo "$file" | sed -n 's/\.c$/.h/p')'>'
i=1
echo "$file":
while true; do
# Don't eliminate config.h includes!
LINE="$(grep '^#include <' "$file" | grep -v '[<"]config.h[">]' | tail -n +$i | head -n1)"
LINE="$(grep '^#include <' "$file" | grep -v '[<"]config.h[">]' | grep -F -v "$OWN_HDR" | tail -n +$i | head -n1)"
[ -n "$LINE" ] || break
# Make sure even headers end in .c
grep -F -v "$LINE" "$file" > "$file".c