# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
-# Copyright (C) 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
+# Copyright (C) 2011 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
next;
}
elsif($file =~ /-W(.*)/) {
- $wlist = $1;
+ $wlist .= " $1 ";
$file = shift @ARGV;
next;
}
}
do {
- if($file ne "$wlist") {
+ if("$wlist" !~ / $file /) {
my $fullname = $file;
- $fullname = "$dir/$file" if $fullname !~ '^/';
+ $fullname = "$dir/$file" if ($fullname !~ '^\.?\.?/');
scanfile($fullname);
}
$file = shift @ARGV;
checkwarn($line, length($1), $file, $l, "Contains TAB character", 1);
}
# detect trailing white space
- if($l =~ /^(\S+)[ \t]+\z/) {
+ if($l =~ /^(.*)[ \t]+\z/) {
checkwarn($line, length($1), $file, $l, "Trailing whitespace");
}
}
# check for "} else"
- if($l =~ /^(.*)\} else/) {
+ if($l =~ /^(.*)\} *else/) {
checkwarn($line, length($1), $file, $l, "else after closing brace on same line");
}
+ # check for "){"
+ if($l =~ /^(.*)\)\{/) {
+ checkwarn($line, length($1)+1, $file, $l, "missing space after close paren");
+ }
+
+ # scan for use of banned functions
+ if($l =~ /^(.*\W)(sprintf|vsprintf|strcat|strncat|gets)\s*\(/) {
+ checkwarn($line, length($1), $file, $l,
+ "use of $2 is banned");
+ }
+
# check for open brace first on line but not first column
# only alert if previous line ended with a close paren and wasn't a cpp
# line