checkpatch: suspect indent handle macro continuation
authorAndy Whitcroft <apw@shadowen.org>
Thu, 16 Oct 2008 05:02:35 +0000 (22:02 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 16 Oct 2008 18:21:37 +0000 (11:21 -0700)
When ignoring a macro in the middle of a conditional, we need to ignore
the macro start and any continuation lines.

Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
scripts/checkpatch.pl

index 2c1afba5758040db527674a621855663899ac510..862e8e0e86ae40b10a1668e501ab3bac6d024e17 100755 (executable)
@@ -1465,6 +1465,7 @@ sub process {
                        }
 
                        my $cond_ptr = -1;
+                       $continuation = 0;
                        while ($cond_ptr != $cond_lines) {
                                $cond_ptr = $cond_lines;
 
@@ -1478,9 +1479,11 @@ sub process {
                                #  1) blank lines, they should be at 0,
                                #  2) preprocessor lines, and
                                #  3) labels.
-                               if ($s =~ /^\s*?\n/ ||
+                               if ($continuation ||
+                                   $s =~ /^\s*?\n/ ||
                                    $s =~ /^\s*#\s*?/ ||
                                    $s =~ /^\s*$Ident\s*:/) {
+                                       $continuation = ($s =~ /^.*?\\\n/) ? 1 : 0;
                                        $s =~ s/^.*?\n//;
                                        $cond_lines++;
                                }