On Thu, 15 May 2025 at 14:59, Daniel P. Berrangé <berra...@redhat.com> wrote: > > Some checks want to be performed either at the start of a new file > within a patch, or at the end. This is complicated by the fact that > the information relevant to the check may be spread across multiple > lines. It is further complicated by a need to support both git and > non-git diffs, and special handling for renames where there might > not be any patch hunks. > > To handle this more sanely, introduce explicit tracking of file > start/end, taking account of git metadata, and calling a hook > function at each transition. > > Reviewed-by: Cédric Le Goater <c...@redhat.com> > Signed-off-by: Daniel P. Berrangé <berra...@redhat.com> > --- > scripts/checkpatch.pl | 109 ++++++++++++++++++++++++++++++++++++++++-- > 1 file changed, 106 insertions(+), 3 deletions(-) > > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl > index 7675418b0b..b74391e63a 100755 > --- a/scripts/checkpatch.pl > +++ b/scripts/checkpatch.pl > @@ -1417,6 +1417,38 @@ sub checkspdx { > } > } > > +# All three of the methods below take a 'file info' record > +# which is a hash ref containing > +# > +# 'isgit': is this from an enhanced git diff or plain diff > +# 'linestart': line number of start of file diff > +# 'lineend': line number of end of file diff > +# 'filenew': the new filename > +# 'fileold': the old filename (same as 'new filename' except > +# for renames in git diffs) > +# 'action': one of 'modified' (always) or 'new' or 'deleted' or > +# 'renamed' (git diffs only) > +# 'mode': file mode for new/deleted files (git diffs only) > +# 'similarity': file similarity when renamed (git diffs only) > +# 'facts': hash ref for storing any metadata related to checks
> + $fileinfo = { > + "isgit" => 1, > + "githeader" => 1, > + "linestart" => $here, > + "lineend" => 0, > + "fileold" => $fileold, > + "filenew" => $filenew, > + "action" => "modified", > + "mode" => 0, > + "similarity" => 0, > + "facts" => {}, > + }; The 'githeader' field here should be documented in the comment block above. Otherwise Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> thanks -- PMM