On 7/31/26 15:40, Denis V. Lunev wrote:
> This email originated from an IP that might not be authorized by the domain 
> it was sent from.
> Do not click links or open attachments unless it is an email you expected to 
> receive.
> Patches sometimes carry a hunk whose entire content is one or two
> added blank lines. It changes nothing, it makes the diff longer and
> it survives review because nobody looks twice at a blank line. The
> blank line itself is perfectly fine, the gratuitous hunk is not.
>
> Tally the added blank lines and the other changes of every hunk in
> the pre-scan loop which already walks the raw patch, and record the
> hunks which only add blanks. Such a hunk is then reported at the
> first blank line it adds, so the warning carries the usual file and
> line context.
>
> Signed-off-by: Denis V. Lunev <[email protected]>
> CC: Chao Liu <[email protected]>
> CC: "Daniel P. Berrange" <[email protected]>
> CC: "Philippe Mathieu-Daude" <[email protected]>
> CC: Thomas Huth <[email protected]>
> ---
> Note: this patch is sent on behalf of the yesterday finding inside IDE
>       pull request. This should be found with a checkpatch.
>
>  scripts/checkpatch.pl | 21 +++++++++++++++++++++
>  1 file changed, 21 insertions(+)
>
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index 03f35e7501..dfa9878006 100755
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
> @@ -1567,6 +1567,10 @@ sub process {
>       my $first_line = 0;
>       my $p1_prefix = '';
>  
> +     my %blank_only_hunk;
> +     my $hunk_first_blank = 0;
> +     my $hunk_has_change = 0;
> +
>       my $prev_values = 'E';
>  
>       # suppression flags
> @@ -1583,6 +1587,10 @@ sub process {
>               $line = $rawline;
>  
>               if ($rawline=~/^\@\@ -\d+(?:,\d+)? \+(\d+)(,(\d+))? \@\@/) {
> +                     $blank_only_hunk{$hunk_first_blank} = 1
> +                             if ($hunk_first_blank && !$hunk_has_change);
> +                     ($hunk_first_blank, $hunk_has_change) = (0, 0);
> +
>                       $realline=$1-1;
>                       if (defined $2) {
>                               $realcnt=$3+1;
> @@ -1633,6 +1641,13 @@ sub process {
>               push(@lines, $line);
>  
>               if ($realcnt > 1) {
> +                     if ($rawline =~ /^\+\s*$/) {
> +                             $hunk_first_blank = $linenr
> +                                     if (!$hunk_first_blank);
> +                     } elsif ($rawline =~ /^[-+]/) {
> +                             $hunk_has_change = 1;
> +                     }
> +
>                       $realcnt-- if ($line =~ /^(?:\+| |$)/);
>               } else {
>                       $realcnt = 0;
> @@ -1641,6 +1656,8 @@ sub process {
>               #print "==>$rawline\n";
>               #print "-->$line\n";
>       }
> +     $blank_only_hunk{$hunk_first_blank} = 1
> +             if ($hunk_first_blank && !$hunk_has_change);
>  
>       $prefix = '';
>  
> @@ -1780,6 +1797,10 @@ sub process {
>  
>               $cnt_lines++ if ($realcnt != 0);
>  
> +             if ($blank_only_hunk{$linenr}) {
> +                     WARN("this hunk only adds blank lines\n" . $herecurr);
> +             }
> +
>  # Only allow Python 3 interpreter
>               if ($realline == 1 &&
>                       $line =~ /^\+#!\ *\/usr\/bin\/(?:env )?python$/) {
>
> base-commit: e1705a25aff35635c360bbaba4c2731d019a422a
Guys,

does it make sense to continue discussion or this patch
goes to /dev/null as nobody is interested in?

Den

Reply via email to