diff options
author | Nick Mathewson <nickm@torproject.org> | 2005-06-11 18:52:37 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2005-06-11 18:52:37 +0000 |
commit | 787dfac69b2f65ea8cb7f2498d1e5d974b57e1ee (patch) | |
tree | 03988574226d916f9aeea59d6058562e1afb26b7 /contrib/checkSpace.pl | |
parent | 232861ba42c176a98fdaa2792ae2930a759723f1 (diff) | |
download | tor-787dfac69b2f65ea8cb7f2498d1e5d974b57e1ee.tar.gz tor-787dfac69b2f65ea8cb7f2498d1e5d974b57e1ee.zip |
make whitespace checker handle non-C too.
svn:r4412
Diffstat (limited to 'contrib/checkSpace.pl')
-rwxr-xr-x | contrib/checkSpace.pl | 96 |
1 files changed, 52 insertions, 44 deletions
diff --git a/contrib/checkSpace.pl b/contrib/checkSpace.pl index 3b6c6f54d3..f001450ec7 100755 --- a/contrib/checkSpace.pl +++ b/contrib/checkSpace.pl @@ -1,5 +1,11 @@ #!/usr/bin/perl -w +if ($ARGV[0] =~ /^-/) { + $lang = shift @ARGV; + $C = ($lang eq '-C'); +# $TXT = ($lang eq '-txt'); +} + for $fn (@ARGV) { open(F, "$fn"); $lastnil = 0; @@ -18,7 +24,7 @@ for $fn (@ARGV) { print "Space\@EOL:$fn:$.\n"; } ## Warn about control keywords without following space. - if (/\s(?:if|while|for|switch)\(/) { + if ($C && /\s(?:if|while|for|switch)\(/) { print " KW(:$fn:$.\n"; } ## Warn about multiple empty lines. @@ -31,49 +37,51 @@ for $fn (@ARGV) { } ### Juju to skip over comments and strings, since the tests ### we're about to do are okay there. - if ($incomment) { - if (m!\*/!) { - s!.*?\*/!!; - $incomment = 0; - } else { - next; - } - } - if (m!/\*.*?\*/!) { - s!\s*/\*.*?\*/!!; - } elsif (m!/\*!) { - s!\s*/\*!!; - $incomment = 1; - next; - } - s!"(?:[^\"]+|\\.)*"!"X"!g; - next if /^\#/; - ## Warn about C++-style comments. - if (m!//!) { - # print " //:$fn:$.\n"; - s!//.*!!; - } - ## Warn about braces preceded by non-space. - if (/([^\s])\{/) { - print " $1\{:$fn:$.\n"; - } - ## Warn about multiple internal spaces. - #if (/[^\s,:]\s{2,}[^\s\\=]/) { - # print " X X:$fn:$.\n"; - #} - ## Warn about { with stuff after. - #s/\s+$//; - #if (/\{[^\}\\]+$/) { - # print " {X:$fn:$.\n"; - #} - ## Warn about function calls with space before parens. - if (/(\w+)\s\(/) { - if ($1 ne "if" and $1 ne "while" and $1 ne "for" and - $1 ne "switch" and $1 ne "return" and $1 ne "int" and - $1 ne "void" and $1 ne "__attribute__") { - print " fn ():$fn:$.\n"; - } - } + if ($C) { + if ($incomment) { + if (m!\*/!) { + s!.*?\*/!!; + $incomment = 0; + } else { + next; + } + } + if (m!/\*.*?\*/!) { + s!\s*/\*.*?\*/!!; + } elsif (m!/\*!) { + s!\s*/\*!!; + $incomment = 1; + next; + } + s!"(?:[^\"]+|\\.)*"!"X"!g; + next if /^\#/; + ## Warn about C++-style comments. + if (m!//!) { + # print " //:$fn:$.\n"; + s!//.*!!; + } + ## Warn about braces preceded by non-space. + if (/([^\s])\{/) { + print " $1\{:$fn:$.\n"; + } + ## Warn about multiple internal spaces. + #if (/[^\s,:]\s{2,}[^\s\\=]/) { + # print " X X:$fn:$.\n"; + #} + ## Warn about { with stuff after. + #s/\s+$//; + #if (/\{[^\}\\]+$/) { + # print " {X:$fn:$.\n"; + #} + ## Warn about function calls with space before parens. + if (/(\w+)\s\(/) { + if ($1 ne "if" and $1 ne "while" and $1 ne "for" and + $1 ne "switch" and $1 ne "return" and $1 ne "int" and + $1 ne "void" and $1 ne "__attribute__") { + print " fn ():$fn:$.\n"; + } + } + } } if (! $lastnil) { print " EOL\@EOF:$fn:$.\n"; |