checkpatch: suspect code indent must stop at #else/#elif
authorAndy Whitcroft <apw@shadowen.org>
Thu, 16 Oct 2008 05:02:32 +0000 (22:02 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 16 Oct 2008 18:21:37 +0000 (11:21 -0700)
When we hit and #else or #elif we know we are meeting an alternative piece
of code.  All bets are off on indent if we did not see the open of the
control so stop checking.

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 4680ccf..c479bde 100755 (executable)
@@ -1468,6 +1468,12 @@ sub process {
                        while ($cond_ptr != $cond_lines) {
                                $cond_ptr = $cond_lines;
 
+                               # If we see an #else/#elif then the code
+                               # is not linear.
+                               if ($s =~ /^\s*\#\s*(?:else|elif)/) {
+                                       $check = 0;
+                               }
+
                                # Ignore:
                                #  1) blank lines, they should be at 0,
                                #  2) preprocessor lines, and