From 11e1f11dd34f2688169c63c13ea8d99a64724369 Mon Sep 17 00:00:00 2001 From: Shi Lei Date: Thu, 13 Sep 2018 16:55:19 +0800 Subject: [PATCH] syntax-check: Check for incorrect indentation in function body 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 --- build-aux/check-spacing.pl | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/build-aux/check-spacing.pl b/build-aux/check-spacing.pl index ca8b434916..da9a58ba7c 100755 --- a/build-aux/check-spacing.pl +++ b/build-aux/check-spacing.pl @@ -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) {