Re: [PATCH] checkpatch: warn about hunks which only add blank lines
"Denis V. Lunev" <[email protected]>
| Newsgroups | org.nongnu.qemu-devel |
|---|---|
| Message-ID | <[email protected]> |
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