checkpatch: conditional indent -- labels have different indent rules

Labels have different indent rules and must be ignored when checking the
conditional indent levels.  Also correct identify labels in single
statement conditionals.

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>
This commit is contained in:
Andy Whitcroft 2008-10-15 22:02:16 -07:00 committed by Linus Torvalds
parent 0d413866c7
commit 14b111c158
1 changed files with 8 additions and 3 deletions

View File

@ -782,9 +782,9 @@ sub annotate_values {
}
$type = 'N';
} elsif ($cur =~ /^(if|while|typeof|__typeof__|for)\b/o) {
} elsif ($cur =~ /^(if|while|for)\b/o) {
print "COND($1)\n" if ($dbg_values > 1);
$av_pending = 'N';
$av_pending = 'E';
$type = 'N';
} elsif ($cur =~/^(case)/o) {
@ -792,7 +792,7 @@ sub annotate_values {
$av_pend_colon = 'C';
$type = 'N';
} elsif ($cur =~/^(return|else|goto)/o) {
} elsif ($cur =~/^(return|else|goto|typeof|__typeof__)\b/o) {
print "KEYWORD($1)\n" if ($dbg_values > 1);
$type = 'N';
@ -1846,6 +1846,11 @@ sub process {
$check = 0;
}
# Ignore the current line if it is label.
if ($s =~ /^\s*$Ident\s*:/) {
$check = 0;
}
my (undef, $sindent) = line_stats("+" . $s);
##print "line<$line> prevline<$prevline> indent<$indent> sindent<$sindent> check<$check> continuation<$continuation> s<$s>\n";