checkpatch: add 6 missing types to --list-types
authorJean Delvare <jdelvare@suse.de>
Fri, 8 Sep 2017 23:16:11 +0000 (16:16 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 9 Sep 2017 01:26:50 +0000 (18:26 -0700)
Unlike all other types, LONG_LINE, LONG_LINE_COMMENT and LONG_LINE_STRING
are passed to WARN() through a variable.  This causes the parser in
list_types() to miss them and consequently they are not present in the
output of --list-types.

Additionally, types TYPO_SPELLING, FSF_MAILING_ADDRESS and AVOID_BUG are
passed with a variable level, causing the parser to miss them too.

So modify the regex to also catch these special cases.

Link: http://lkml.kernel.org/r/20170902175610.7e4a7c9d@endymion
Fixes: 3beb42eced39 ("checkpatch: add --list-types to show message types to show or ignore")
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Acked-by: Joe Perches <joe@perches.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
scripts/checkpatch.pl

index b3a1bc70d9ee61cdc3fb625be226a712bb570e2e..dd2c262aebbf2a43283f38badcf445702c59c9e9 100755 (executable)
@@ -145,7 +145,8 @@ sub list_types {
        close($script);
 
        my @types = ();
        close($script);
 
        my @types = ();
-       for ($text =~ /\b(?:(?:CHK|WARN|ERROR)\s*\(\s*"([^"]+)")/g) {
+       # Also catch when type or level is passed through a variable
+       for ($text =~ /(?:(?:\bCHK|\bWARN|\bERROR|&\{\$msg_level})\s*\(|\$msg_type\s*=)\s*"([^"]+)"/g) {
                push (@types, $_);
        }
        @types = sort(uniq(@types));
                push (@types, $_);
        }
        @types = sort(uniq(@types));