summaryrefslogtreecommitdiff
path: root/scripts/checkpatch.pl
diff options
context:
space:
mode:
authorAndy Whitcroft <apw@shadowen.org>2008-10-16 05:02:22 (GMT)
committerLinus Torvalds <torvalds@linux-foundation.org>2008-10-16 18:21:35 (GMT)
commit9bd49efe4e4bf88d9c1026db50325fd1b2e59519 (patch)
treed768c2adcefd444c0bd8742ce8246e131be32a47 /scripts/checkpatch.pl
parent4d001e4d88a57ba8347b43e3a20412cd6b67fbd7 (diff)
downloadlinux-fsl-qoriq-9bd49efe4e4bf88d9c1026db50325fd1b2e59519.tar.xz
checkpatch: suspect indent -- skip over preprocessor, label and blank lines
We should skip over and check the lines which follow preprocessor statements, labels, and blank lines. These all have legitimate reasons to be indented differently. 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>
Diffstat (limited to 'scripts/checkpatch.pl')
-rwxr-xr-xscripts/checkpatch.pl25
1 files changed, 15 insertions, 10 deletions
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index e3ae79a..6ddae89 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -1434,7 +1434,7 @@ sub process {
if ($s =~ s/^\s*\\//) {
$continuation = 1;
}
- if ($s =~ s/^\s*\n//) {
+ if ($s =~ s/^\s*?\n//) {
$check = 1;
$cond_lines++;
}
@@ -1446,15 +1446,20 @@ sub process {
$check = 0;
}
- # Ignore the current line if its is a preprocessor
- # line.
- if ($s =~ /^\s*#\s*/) {
- $check = 0;
- }
+ my $cond_ptr = -1;
+ while ($cond_ptr != $cond_lines) {
+ $cond_ptr = $cond_lines;
- # Ignore the current line if it is label.
- if ($s =~ /^\s*$Ident\s*:/) {
- $check = 0;
+ # Ignore:
+ # 1) blank lines, they should be at 0,
+ # 2) preprocessor lines, and
+ # 3) labels.
+ if ($s =~ /^\s*?\n/ ||
+ $s =~ /^\s*#\s*?/ ||
+ $s =~ /^\s*$Ident\s*:/) {
+ $s =~ s/^.*?\n//;
+ $cond_lines++;
+ }
}
my (undef, $sindent) = line_stats("+" . $s);
@@ -1470,7 +1475,7 @@ sub process {
$stat_real = "[...]\n$stat_real";
}
- ##print "line<$line> prevline<$prevline> indent<$indent> sindent<$sindent> check<$check> continuation<$continuation> s<$s> cond_lines<$cond_lines> stat_real<$stat_real> stat<$stat>\n";
+ #print "line<$line> prevline<$prevline> indent<$indent> sindent<$sindent> check<$check> continuation<$continuation> s<$s> cond_lines<$cond_lines> stat_real<$stat_real> stat<$stat>\n";
if ($check && (($sindent % 8) != 0 ||
($sindent <= $indent && $s ne ''))) {