Commit 9bd49efe authored by Andy Whitcroft's avatar Andy Whitcroft Committed by Linus Torvalds

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: default avatarAndy Whitcroft <apw@shadowen.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 4d001e4d
...@@ -1434,7 +1434,7 @@ sub process { ...@@ -1434,7 +1434,7 @@ sub process {
if ($s =~ s/^\s*\\//) { if ($s =~ s/^\s*\\//) {
$continuation = 1; $continuation = 1;
} }
if ($s =~ s/^\s*\n//) { if ($s =~ s/^\s*?\n//) {
$check = 1; $check = 1;
$cond_lines++; $cond_lines++;
} }
...@@ -1446,15 +1446,20 @@ sub process { ...@@ -1446,15 +1446,20 @@ sub process {
$check = 0; $check = 0;
} }
# Ignore the current line if its is a preprocessor my $cond_ptr = -1;
# line. while ($cond_ptr != $cond_lines) {
if ($s =~ /^\s*#\s*/) { $cond_ptr = $cond_lines;
$check = 0;
}
# Ignore the current line if it is label. # Ignore:
if ($s =~ /^\s*$Ident\s*:/) { # 1) blank lines, they should be at 0,
$check = 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); my (undef, $sindent) = line_stats("+" . $s);
...@@ -1470,7 +1475,7 @@ sub process { ...@@ -1470,7 +1475,7 @@ sub process {
$stat_real = "[...]\n$stat_real"; $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 || if ($check && (($sindent % 8) != 0 ||
($sindent <= $indent && $s ne ''))) { ($sindent <= $indent && $s ne ''))) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment