checkpatch: add --list-types to show message types to show or ignore
The message types are not currently knowable without reading the code. Add a mechanism to see what they are. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
ef21219636
commit
3beb42eced
@ -33,6 +33,7 @@ my $summary = 1;
|
|||||||
my $mailback = 0;
|
my $mailback = 0;
|
||||||
my $summary_file = 0;
|
my $summary_file = 0;
|
||||||
my $show_types = 0;
|
my $show_types = 0;
|
||||||
|
my $list_types = 0;
|
||||||
my $fix = 0;
|
my $fix = 0;
|
||||||
my $fix_inplace = 0;
|
my $fix_inplace = 0;
|
||||||
my $root;
|
my $root;
|
||||||
@ -70,11 +71,12 @@ Options:
|
|||||||
--showfile emit diffed file position, not input file position
|
--showfile emit diffed file position, not input file position
|
||||||
-f, --file treat FILE as regular source file
|
-f, --file treat FILE as regular source file
|
||||||
--subjective, --strict enable more subjective tests
|
--subjective, --strict enable more subjective tests
|
||||||
|
--list-types list the possible message types
|
||||||
--types TYPE(,TYPE2...) show only these comma separated message types
|
--types TYPE(,TYPE2...) show only these comma separated message types
|
||||||
--ignore TYPE(,TYPE2...) ignore various comma separated message types
|
--ignore TYPE(,TYPE2...) ignore various comma separated message types
|
||||||
|
--show-types show the specific message type in the output
|
||||||
--max-line-length=n set the maximum line length, if exceeded, warn
|
--max-line-length=n set the maximum line length, if exceeded, warn
|
||||||
--min-conf-desc-length=n set the min description length, if shorter, warn
|
--min-conf-desc-length=n set the min description length, if shorter, warn
|
||||||
--show-types show the message "types" in the output
|
|
||||||
--root=PATH PATH to the kernel tree root
|
--root=PATH PATH to the kernel tree root
|
||||||
--no-summary suppress the per-file summary
|
--no-summary suppress the per-file summary
|
||||||
--mailback only produce a report in case of warnings/errors
|
--mailback only produce a report in case of warnings/errors
|
||||||
@ -106,6 +108,37 @@ EOM
|
|||||||
exit($exitcode);
|
exit($exitcode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub uniq {
|
||||||
|
my %seen;
|
||||||
|
return grep { !$seen{$_}++ } @_;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub list_types {
|
||||||
|
my ($exitcode) = @_;
|
||||||
|
|
||||||
|
my $count = 0;
|
||||||
|
|
||||||
|
local $/ = undef;
|
||||||
|
|
||||||
|
open(my $script, '<', abs_path($P)) or
|
||||||
|
die "$P: Can't read '$P' $!\n";
|
||||||
|
|
||||||
|
my $text = <$script>;
|
||||||
|
close($script);
|
||||||
|
|
||||||
|
my @types = ();
|
||||||
|
for ($text =~ /\b(?:(?:CHK|WARN|ERROR)\s*\(\s*"([^"]+)")/g) {
|
||||||
|
push (@types, $_);
|
||||||
|
}
|
||||||
|
@types = sort(uniq(@types));
|
||||||
|
print("#\tMessage type\n\n");
|
||||||
|
foreach my $type (@types) {
|
||||||
|
print(++$count . "\t" . $type . "\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
exit($exitcode);
|
||||||
|
}
|
||||||
|
|
||||||
my $conf = which_conf($configuration_file);
|
my $conf = which_conf($configuration_file);
|
||||||
if (-f $conf) {
|
if (-f $conf) {
|
||||||
my @conf_args;
|
my @conf_args;
|
||||||
@ -146,6 +179,7 @@ GetOptions(
|
|||||||
'ignore=s' => \@ignore,
|
'ignore=s' => \@ignore,
|
||||||
'types=s' => \@use,
|
'types=s' => \@use,
|
||||||
'show-types!' => \$show_types,
|
'show-types!' => \$show_types,
|
||||||
|
'list-types!' => \$list_types,
|
||||||
'max-line-length=i' => \$max_line_length,
|
'max-line-length=i' => \$max_line_length,
|
||||||
'min-conf-desc-length=i' => \$min_conf_desc_length,
|
'min-conf-desc-length=i' => \$min_conf_desc_length,
|
||||||
'root=s' => \$root,
|
'root=s' => \$root,
|
||||||
@ -166,6 +200,8 @@ GetOptions(
|
|||||||
|
|
||||||
help(0) if ($help);
|
help(0) if ($help);
|
||||||
|
|
||||||
|
list_types(0) if ($list_types);
|
||||||
|
|
||||||
$fix = 1 if ($fix_inplace);
|
$fix = 1 if ($fix_inplace);
|
||||||
$check_orig = $check;
|
$check_orig = $check;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user