]> xenbits.xensource.com Git - libvirt.git/commitdiff
syntax-check: Check for incorrect indentation in function body
authorShi Lei <shi_lei@massclouds.com>
Thu, 13 Sep 2018 08:55:19 +0000 (16:55 +0800)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 17 Sep 2018 11:29:01 +0000 (13:29 +0200)
This patch add syntax-check rule for incorrect indentation and blank
first line in function body by changing check-spacing.pl.
For efficiency, it only checks the first line of function body.
But it's enough for most cases.

Signed-off-by: Shi Lei <shi_lei@massclouds.com>
build-aux/check-spacing.pl

index ca8b434916851748dfaa6731b912be8167babca4..da9a58ba7ce206b2a0619b046e086b382e8b3dc4 100755 (executable)
@@ -31,6 +31,7 @@ foreach my $file (@ARGV) {
     my $cb_linenum = 0;
     my $cb_code = "";
     my $cb_scolon = 0;
+    my $fn_linenum = 0;
 
     open FILE, $file;
 
@@ -50,6 +51,27 @@ foreach my $file (@ARGV) {
 
         next if $data =~ /^#/;
 
+        # Detect start of function block
+        if ($data =~ /^{$/) {
+            $fn_linenum = $.;
+        }
+
+        # Handle first line of function block
+        if ($fn_linenum && $fn_linenum != $.) {
+            if ($data =~ /^\s*$/) {
+                print "Blank line before content in function body:\n";
+                print "$file:$.:\n$line";
+                $ret = 1;
+            } elsif ($data !~ /^[ ]{4}\S/) {
+                unless ($data =~ /^[ ]\w+:$/ || $data =~ /^}/) {
+                    print "Incorrect indentation in function body:\n";
+                    print "$file:$.:\n$line";
+                    $ret = 1;
+                }
+            }
+            $fn_linenum = 0;
+        }
+
         # Kill contents of multi-line comments
         # and detect end of multi-line comments
         if ($incomment) {