syntax-check: ignore all quoted strings in bracket-spacing

Ignore strings with an escaped double quote too.

This removes the need for special handling of quotes in the
semicolon check.
This commit is contained in:
Ján Tomko 2013-05-24 10:50:42 +02:00
parent b9c4bd0c07
commit 711ca22a20

View File

@ -31,8 +31,8 @@ foreach my $file (@ARGV) {
while (defined (my $line = <FILE>)) {
my $data = $line;
# Kill any quoted strongs
$data =~ s,".*?","XXX",g;
# Kill any quoted strings
$data =~ s,"([^\\\"]|\\.)*","XXX",g;
# Kill any C++ style comments
$data =~ s,//.*$,//,;
@ -120,14 +120,9 @@ foreach my $file (@ARGV) {
# errno == EINTR)
# ;
#
# 3) ";" is inside double-quote, I.e, as part of const string. E.g.
# printf("%s", "a ; b\n");
while ($data =~ /[^;\s]\s+;/) {
# Inside the double-quote
if ($data !~ /"[^"]*\s;/) {
print "$file:$.: $line";
$ret = 1;
}
print "$file:$.: $line";
$ret = 1;
last;
}
}