Loading lib/checksrc.pl +27 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ my $suppressed; # whitelisted problems my $file; my $dir="."; my $wlist=""; my @alist; my $windows_os = $^O eq 'MSWin32' || $^O eq 'msys' || $^O eq 'cygwin'; my $verbose; my %whitelist; Loading Loading @@ -74,6 +75,7 @@ my %warnings = ( 'SEMINOSPACE' => 'semicolon without following space', 'MULTISPACE' => 'multiple spaces used when not suitable', 'SIZEOFNOPAREN' => 'use of sizeof without parentheses', 'SNPRINTF' => 'use of snprintf', ); sub readwhitelist { Loading Loading @@ -153,6 +155,11 @@ while(1) { $file = shift @ARGV; next; } elsif($file =~ /-A(.+)/) { push @alist, $1; $file = shift @ARGV; next; } elsif($file =~ /-i([1-9])/) { $indent = $1 + 0; $file = shift @ARGV; Loading @@ -174,6 +181,7 @@ while(1) { if(!$file) { print "checksrc.pl [option] <file1> [file2] ...\n"; print " Options:\n"; print " -A[rule] Accept this violation, can be used multiple times\n"; print " -D[DIR] Directory to prepend file names\n"; print " -h Show help output\n"; print " -W[file] Whitelist the given file - ignore all its flaws\n"; Loading @@ -198,6 +206,17 @@ do { } while($file); sub accept_violations { for my $r (@alist) { if(!$warnings{$r}) { print "'$r' is not a warning to accept!\n"; exit; } $ignore{$r}=999999; $ignore_used{$r}=0; } } sub checksrc_clear { undef %ignore; undef %ignore_set; Loading Loading @@ -297,6 +316,7 @@ sub scanfile { my $incomment=0; my $copyright=0; checksrc_clear(); # for file based ignores accept_violations(); while(<R>) { $windows_os ? $_ =~ s/\r?\n$// : chomp; Loading Loading @@ -511,6 +531,13 @@ sub scanfile { "use of $2 is banned"); } # scan for use of snprintf for curl-internals reasons if($l =~ /^(.*\W)(v?snprintf)\s*\(/x) { checkwarn("SNPRINTF", $line, length($1), $file, $ol, "use of $2 is banned"); } # scan for use of non-binary fopen without the macro if($l =~ /^(.*\W)fopen\s*\([^,]*, *\"([^"]*)/) { my $mode = $2; Loading Loading
lib/checksrc.pl +27 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ my $suppressed; # whitelisted problems my $file; my $dir="."; my $wlist=""; my @alist; my $windows_os = $^O eq 'MSWin32' || $^O eq 'msys' || $^O eq 'cygwin'; my $verbose; my %whitelist; Loading Loading @@ -74,6 +75,7 @@ my %warnings = ( 'SEMINOSPACE' => 'semicolon without following space', 'MULTISPACE' => 'multiple spaces used when not suitable', 'SIZEOFNOPAREN' => 'use of sizeof without parentheses', 'SNPRINTF' => 'use of snprintf', ); sub readwhitelist { Loading Loading @@ -153,6 +155,11 @@ while(1) { $file = shift @ARGV; next; } elsif($file =~ /-A(.+)/) { push @alist, $1; $file = shift @ARGV; next; } elsif($file =~ /-i([1-9])/) { $indent = $1 + 0; $file = shift @ARGV; Loading @@ -174,6 +181,7 @@ while(1) { if(!$file) { print "checksrc.pl [option] <file1> [file2] ...\n"; print " Options:\n"; print " -A[rule] Accept this violation, can be used multiple times\n"; print " -D[DIR] Directory to prepend file names\n"; print " -h Show help output\n"; print " -W[file] Whitelist the given file - ignore all its flaws\n"; Loading @@ -198,6 +206,17 @@ do { } while($file); sub accept_violations { for my $r (@alist) { if(!$warnings{$r}) { print "'$r' is not a warning to accept!\n"; exit; } $ignore{$r}=999999; $ignore_used{$r}=0; } } sub checksrc_clear { undef %ignore; undef %ignore_set; Loading Loading @@ -297,6 +316,7 @@ sub scanfile { my $incomment=0; my $copyright=0; checksrc_clear(); # for file based ignores accept_violations(); while(<R>) { $windows_os ? $_ =~ s/\r?\n$// : chomp; Loading Loading @@ -511,6 +531,13 @@ sub scanfile { "use of $2 is banned"); } # scan for use of snprintf for curl-internals reasons if($l =~ /^(.*\W)(v?snprintf)\s*\(/x) { checkwarn("SNPRINTF", $line, length($1), $file, $ol, "use of $2 is banned"); } # scan for use of non-binary fopen without the macro if($l =~ /^(.*\W)fopen\s*\([^,]*, *\"([^"]*)/) { my $mode = $2; Loading