checksrc: improve the fopen() parser somewhat

The quote scanner was too fragile, now look for a comma instead to find
the mode argument.
This commit is contained in:
Daniel Stenberg 2016-04-03 11:29:14 +02:00
parent d4d87d7ead
commit 5ea3d2ff06
1 changed files with 5 additions and 5 deletions

View File

@ -6,7 +6,7 @@
# | (__| |_| | _ <| |___ # | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____| # \___|\___/|_| \_\_____|
# #
# Copyright (C) 2011 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al. # Copyright (C) 2011 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
# #
# This software is licensed as described in the file COPYING, which # This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms # you should have received as part of this distribution. The terms
@ -51,7 +51,7 @@ sub checkwarn {
$supressed++; $supressed++;
return; return;
} }
my $w=$error?"error":"warning"; my $w=$error?"error":"warning";
if($w) { if($w) {
@ -212,7 +212,7 @@ sub scanfile {
"comma without following space"); "comma without following space");
} }
} }
# check for "} else" # check for "} else"
if($l =~ /^(.*)\} *else/) { if($l =~ /^(.*)\} *else/) {
checkwarn($line, length($1), $file, $l, "else after closing brace on same line"); checkwarn($line, length($1), $file, $l, "else after closing brace on same line");
@ -234,11 +234,11 @@ sub scanfile {
} }
# scan for use of non-binary fopen without the macro # scan for use of non-binary fopen without the macro
if($l =~ /^(.*\W)fopen\s*\([^"]*\"([^"]*)/) { if($l =~ /^(.*\W)fopen\s*\([^,]*, *\"([^"]*)/) {
my $mode = $2; my $mode = $2;
if($mode !~ /b/) { if($mode !~ /b/) {
checkwarn($line, length($1), $file, $l, checkwarn($line, length($1), $file, $l,
"use of non-binary fopen without FOPEN_* macro"); "use of non-binary fopen without FOPEN_* macro: $mode");
} }
} }