checkpatch: simplify and consolidate "missing space after" checks
Andy Whitcroft [Tue, 26 Oct 2010 21:23:15 +0000 (14:23 -0700)]
Commonise the code for missing spaces after struct, union, and enum such
that they share the same code.  Ensure we cover all the common cases in
each case.  Check against the sanitised line to ensure we do not report on
comments and strings.

Signed-off-by: Andy Whitcroft <apw@canonical.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

scripts/checkpatch.pl

index 983ac18..cb19f54 100755 (executable)
@@ -1905,22 +1905,17 @@ sub process {
                        ERROR("open brace '{' following function declarations go on the next line\n" . $herecurr);
                }
 
-# missing space after union or struct definition
-               if ($rawline =~ /^\+\s*(union|struct)\s+$Ident[=\{]/) {
-                   WARN("Missing space after struct or union definition\n" . $herecurr);
-               }
-
-# missing space after enum definition
-               if ($rawline =~ /^\+\s*enum\{/) {
-                   WARN("Missing space after enum definition\n" . $herecurr);
-               }
-
 # open braces for enum, union and struct go on the same line.
                if ($line =~ /^.\s*{/ &&
                    $prevline =~ /^.\s*(?:typedef\s+)?(enum|union|struct)(?:\s+$Ident)?\s*$/) {
                        ERROR("open brace '{' following $1 go on the same line\n" . $hereprev);
                }
 
+# missing space after union, struct or enum definition
+               if ($line =~ /^.\s*(?:typedef\s+)?(enum|union|struct)(?:\s+$Ident)?(?:\s+$Ident)?[=\{]/) {
+                   WARN("missing space after $1 definition\n" . $herecurr);
+               }
+
 # check for spacing round square brackets; allowed:
 #  1. with a type on the left -- int [] a;
 #  2. at the beginning of a line for slice initialisers -- [0...10] = 5,