On Thu, 15 May 2025 at 14:59, Daniel P. Berrangé <[email protected]> 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 <[email protected]>
> Signed-off-by: Daniel P. Berrangé <[email protected]>
> ---
> 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 <[email protected]>
thanks
-- PMM