mirror of https://gitee.com/openkylin/linux.git
checkpatch: move repeated word test
Currently this test only works on .[ch] files. Move the test to check more file types and the commit log. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Link: http://lkml.kernel.org/r/180b3b5677771c902b2e2f7a2b7090ede65fe004.camel@perches.com Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
3e89ad8506
commit
310cd06ba2
|
@ -2991,6 +2991,42 @@ sub process {
|
|||
}
|
||||
}
|
||||
|
||||
# check for repeated words separated by a single space
|
||||
if ($rawline =~ /^\+/ || $in_commit_log) {
|
||||
while ($rawline =~ /\b($word_pattern) (?=($word_pattern))/g) {
|
||||
|
||||
my $first = $1;
|
||||
my $second = $2;
|
||||
|
||||
if ($first =~ /(?:struct|union|enum)/) {
|
||||
pos($rawline) += length($first) + length($second) + 1;
|
||||
next;
|
||||
}
|
||||
|
||||
next if ($first ne $second);
|
||||
next if ($first eq 'long');
|
||||
|
||||
if (WARN("REPEATED_WORD",
|
||||
"Possible repeated word: '$first'\n" . $herecurr) &&
|
||||
$fix) {
|
||||
$fixed[$fixlinenr] =~ s/\b$first $second\b/$first/;
|
||||
}
|
||||
}
|
||||
|
||||
# if it's a repeated word on consecutive lines in a comment block
|
||||
if ($prevline =~ /$;+\s*$/ &&
|
||||
$prevrawline =~ /($word_pattern)\s*$/) {
|
||||
my $last_word = $1;
|
||||
if ($rawline =~ /^\+\s*\*\s*$last_word /) {
|
||||
if (WARN("REPEATED_WORD",
|
||||
"Possible repeated word: '$last_word'\n" . $hereprev) &&
|
||||
$fix) {
|
||||
$fixed[$fixlinenr] =~ s/(\+\s*\*\s*)$last_word /$1/;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# ignore non-hunk lines and lines being removed
|
||||
next if (!$hunk_line || $line =~ /^-/);
|
||||
|
||||
|
@ -3314,42 +3350,6 @@ sub process {
|
|||
}
|
||||
}
|
||||
|
||||
# check for repeated words separated by a single space
|
||||
if ($rawline =~ /^\+/) {
|
||||
while ($rawline =~ /\b($word_pattern) (?=($word_pattern))/g) {
|
||||
|
||||
my $first = $1;
|
||||
my $second = $2;
|
||||
|
||||
if ($first =~ /(?:struct|union|enum)/) {
|
||||
pos($rawline) += length($first) + length($second) + 1;
|
||||
next;
|
||||
}
|
||||
|
||||
next if ($first ne $second);
|
||||
next if ($first eq 'long');
|
||||
|
||||
if (WARN("REPEATED_WORD",
|
||||
"Possible repeated word: '$first'\n" . $herecurr) &&
|
||||
$fix) {
|
||||
$fixed[$fixlinenr] =~ s/\b$first $second\b/$first/;
|
||||
}
|
||||
}
|
||||
|
||||
# if it's a repeated word on consecutive lines in a comment block
|
||||
if ($prevline =~ /$;+\s*$/ &&
|
||||
$prevrawline =~ /($word_pattern)\s*$/) {
|
||||
my $last_word = $1;
|
||||
if ($rawline =~ /^\+\s*\*\s*$last_word /) {
|
||||
if (WARN("REPEATED_WORD",
|
||||
"Possible repeated word: '$last_word'\n" . $hereprev) &&
|
||||
$fix) {
|
||||
$fixed[$fixlinenr] =~ s/(\+\s*\*\s*)$last_word /$1/;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# check for space before tabs.
|
||||
if ($rawline =~ /^\+/ && $rawline =~ / \t/) {
|
||||
my $herevet = "$here\n" . cat_vet($rawline) . "\n";
|
||||
|
|
Loading…
Reference in New Issue