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 <a...@ghiti.fr>
---

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

Reply via email to