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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.