Pārlūkot izejas kodu

make whitespace checker handle non-C too.

svn:r4412
Nick Mathewson 19 gadi atpakaļ
vecāks
revīzija
787dfac69b
2 mainītis faili ar 53 papildinājumiem un 45 dzēšanām
  1. 1 1
      Makefile.am
  2. 52 44
      contrib/checkSpace.pl

+ 1 - 1
Makefile.am

@@ -51,7 +51,7 @@ doxygen:
 
 # Avoid strlcpy.c, strlcat.c, tree.h
 check-spaces:
-	./contrib/checkSpace.pl                \
+	./contrib/checkSpace.pl -C             \
 	        src/common/*.h                 \
 		src/common/[^s]*.c             \
 		src/or/[^t]*.[ch] src/or/t*.c

+ 52 - 44
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";