2019-03-06 21:14:56

by Alexandre Ghiti

[permalink] [raw]
Subject: [PATCH v3] scripts: checkpatch: Check multiple blank lines when deleting code

By matching only current line starting with '+', we miss the case
when deleting code makes consecutive blank lines appear: this patch
then makes it possible to detect this case by also matching current
line starting with ' ', which is an already existing blank line.

Signed-off-by: Alexandre Ghiti <[email protected]>
---

Changes in v3 as suggested by Joe Perches:
- Do not try to fix this case
- Make this test separate from the insertion one so that warning
is more explicit

Changes in v2:
- Fix the --fix option

scripts/checkpatch.pl | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index b737ca9d7204..c0728cff292f 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -3296,7 +3296,7 @@ sub process {
}
}

-# check for multiple consecutive blank lines
+# check for multiple consecutive blank lines caused by blank line insertion
if ($prevline =~ /^[\+ ]\s*$/ &&
$line =~ /^\+\s*$/ &&
$last_blank_line != ($linenr - 1)) {
@@ -3309,6 +3309,16 @@ sub process {
$last_blank_line = $linenr;
}

+# check for multiple consecutive blank lines caused by code deletion
+ if ($prevline =~ /^[\+ ]\s*$/ &&
+ $line =~ /^ \s*$/ &&
+ $last_blank_line != ($linenr - 1)) {
+ CHK("LINE_SPACING",
+ "Avoid deleting lines that create consecutive blank lines\n" . $hereprev);
+
+ $last_blank_line = $linenr;
+ }
+
# check for missing blank lines after declarations
if ($sline =~ /^\+\s+\S/ && #Not at char 1
# actual declarations
--
2.20.1



2019-03-17 15:50:45

by Alexandre Ghiti

[permalink] [raw]
Subject: Re: [PATCH v3] scripts: checkpatch: Check multiple blank lines when deleting code

On 3/6/19 2:53 PM, Alexandre Ghiti wrote:
> By matching only current line starting with '+', we miss the case
> when deleting code makes consecutive blank lines appear: this patch
> then makes it possible to detect this case by also matching current
> line starting with ' ', which is an already existing blank line.
>
> Signed-off-by: Alexandre Ghiti <[email protected]>
> ---
>
> Changes in v3 as suggested by Joe Perches:
> - Do not try to fix this case
> - Make this test separate from the insertion one so that warning
> is more explicit
>
> Changes in v2:
> - Fix the --fix option
>
> scripts/checkpatch.pl | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index b737ca9d7204..c0728cff292f 100755
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
> @@ -3296,7 +3296,7 @@ sub process {
> }
> }
>
> -# check for multiple consecutive blank lines
> +# check for multiple consecutive blank lines caused by blank line insertion
> if ($prevline =~ /^[\+ ]\s*$/ &&
> $line =~ /^\+\s*$/ &&
> $last_blank_line != ($linenr - 1)) {
> @@ -3309,6 +3309,16 @@ sub process {
> $last_blank_line = $linenr;
> }
>
> +# check for multiple consecutive blank lines caused by code deletion
> + if ($prevline =~ /^[\+ ]\s*$/ &&
> + $line =~ /^ \s*$/ &&
> + $last_blank_line != ($linenr - 1)) {
> + CHK("LINE_SPACING",
> + "Avoid deleting lines that create consecutive blank lines\n" . $hereprev);
> +
> + $last_blank_line = $linenr;
> + }
> +
> # check for missing blank lines after declarations
> if ($sline =~ /^\+\s+\S/ && #Not at char 1
> # actual declarations


Hi Joe,

Can I do something more this patch ?

Thanks,

Alex


2019-03-25 07:10:02

by Alexandre Ghiti

[permalink] [raw]
Subject: Re: [PATCH v3] scripts: checkpatch: Check multiple blank lines when deleting code

On 3/17/19 11:49 AM, Alex Ghiti wrote:
> On 3/6/19 2:53 PM, Alexandre Ghiti wrote:
>> By matching only current line starting with '+', we miss the case
>> when deleting code makes consecutive blank lines appear: this patch
>> then makes it possible to detect this case by also matching current
>> line starting with ' ', which is an already existing blank line.
>>
>> Signed-off-by: Alexandre Ghiti <[email protected]>
>> ---
>>
>> Changes in v3 as suggested by Joe Perches:
>>     - Do not try to fix this case
>>     - Make this test separate from the insertion one so that warning
>>       is more explicit
>>
>> Changes in v2:
>>     - Fix the --fix option
>>
>>   scripts/checkpatch.pl | 12 +++++++++++-
>>   1 file changed, 11 insertions(+), 1 deletion(-)
>>
>> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
>> index b737ca9d7204..c0728cff292f 100755
>> --- a/scripts/checkpatch.pl
>> +++ b/scripts/checkpatch.pl
>> @@ -3296,7 +3296,7 @@ sub process {
>>               }
>>           }
>>   -# check for multiple consecutive blank lines
>> +# check for multiple consecutive blank lines caused by blank line
>> insertion
>>           if ($prevline =~ /^[\+ ]\s*$/ &&
>>               $line =~ /^\+\s*$/ &&
>>               $last_blank_line != ($linenr - 1)) {
>> @@ -3309,6 +3309,16 @@ sub process {
>>               $last_blank_line = $linenr;
>>           }
>>   +# check for multiple consecutive blank lines caused by code deletion
>> +        if ($prevline =~ /^[\+ ]\s*$/ &&
>> +            $line =~ /^ \s*$/ &&
>> +            $last_blank_line != ($linenr - 1)) {
>> +            CHK("LINE_SPACING",
>> +                "Avoid deleting lines that create consecutive blank
>> lines\n" . $hereprev);
>> +
>> +            $last_blank_line = $linenr;
>> +        }
>> +
>>   # check for missing blank lines after declarations
>>           if ($sline =~ /^\+\s+\S/ &&            #Not at char 1
>>               # actual declarations
>
>
> Hi Joe,
>
> Can I do something more this patch ?
>
> Thanks,
>
> Alex
>

Hi,

Sorry for insisting, but do you consider this patch for inclusion ?

Thanks,

Alex