diff options
author | Markus Armbruster <armbru@redhat.com> | 2023-02-02 14:38:11 +0100 |
---|---|---|
committer | Markus Armbruster <armbru@redhat.com> | 2023-02-08 07:16:23 +0100 |
commit | aa735872a879075d1e9d669c8d5737f41232a3e3 (patch) | |
tree | 2cfade2ceaf80b89055dd8c933481539e997f884 | |
parent | 969d09c3a6186c0a4bc8a41db0c1aba1c76081fc (diff) |
scripts/clean-includes: Fully skip / ignore files
When clean-includes claims to skip or ignore a file, only the part
that sanitizes use of qemu/osdep.h skips the file. The part that
looks for duplicate #include does not, and neither does committing to
Git.
The latter can get unrelated stuff included in the commit, but only if
you run clean-includes in a dirty tree, which is unwise. Messed up
when we added skipping in commit fd3e39a40c "scripts/clean-includes:
Enhance to handle header files".
The former can cause bogus reports for --check-dup-head. Added in
commit d66253e46a "scripts/clean-includes: added duplicate #include
check", duplicating the prior mistake.
Fix the script to fully skip files.
Fixes: fd3e39a40ca2 ("scripts/clean-includes: Enhance to handle header files")
Fixes: d66253e46ae2 ("scripts/clean-includes: added duplicate #include check")
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20230202133830.2152150-2-armbru@redhat.com>
-rwxr-xr-x | scripts/clean-includes | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/scripts/clean-includes b/scripts/clean-includes index d37bd4f692..86944f27fc 100755 --- a/scripts/clean-includes +++ b/scripts/clean-includes @@ -111,6 +111,7 @@ cat >"$COCCIFILE" <<EOT ) EOT +files= for f in "$@"; do case "$f" in *.c.inc) @@ -144,6 +145,7 @@ for f in "$@"; do continue ;; esac + files="$files $f" if [ "$MODE" = "c" ]; then # First, use Coccinelle to add qemu/osdep.h before the first existing include @@ -174,8 +176,8 @@ for f in "$@"; do done -if [ "$DUPHEAD" = "yes" ]; then - egrep "^[[:space:]]*#[[:space:]]*include" "$@" | tr -d '[:blank:]' \ +if [ "$DUPHEAD" = "yes" ] && [ -n "$files" ]; then + egrep "^[[:space:]]*#[[:space:]]*include" $files | tr -d '[:blank:]' \ | sort | uniq -c | awk '{if ($1 > 1) print $0}' if [ $? -eq 0 ]; then echo "Found duplicate header file includes. Please check the above files manually." @@ -184,7 +186,7 @@ if [ "$DUPHEAD" = "yes" ]; then fi if [ "$GIT" = "yes" ]; then - git add -- "$@" + git add -- $files git commit --signoff -F - <<EOF $GITSUBJ: Clean up includes |