checkpatch: warn on CamelCase variable names

Store the camelcase variables in a hash and only emit a warning on the
first use of each new variable.

Signed-off-by: Joe Perches <joe@perches.com>
Cc: Andy Whitcroft <apw@canonical.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Joe Perches 2012-12-17 16:02:07 -08:00 committed by Linus Torvalds
parent 74349bcced
commit 323c1260ba
1 changed files with 13 additions and 6 deletions

View File

@ -1398,6 +1398,8 @@ sub process {
my %suppress_export;
my $suppress_statement = 0;
my %camelcase = ();
# Pre-scan the patch sanitizing the lines.
# Pre-scan the patch looking for any __setup documentation.
#
@ -2905,12 +2907,17 @@ sub process {
}
}
#studly caps, commented out until figure out how to distinguish between use of existing and adding new
# if (($line=~/[\w_][a-z\d]+[A-Z]/) and !($line=~/print/)) {
# print "No studly caps, use _\n";
# print "$herecurr";
# $clean = 0;
# }
#CamelCase
while ($line =~ m{($Constant|$Lval)}g) {
my $var = $1;
if ($var !~ /$Constant/ &&
$var =~ /[A-Z]\w*[a-z]|[a-z]\w*[A-Z]/ &&
!defined $camelcase{$var}) {
$camelcase{$var} = 1;
WARN("CAMELCASE",
"Avoid CamelCase: <$var>\n" . $herecurr);
}
}
#no spaces allowed after \ in define
if ($line=~/\#\s*define.*\\\s$/) {