mirror of
https://github.com/OpenAMP/open-amp.git
synced 2026-10-02 18:23:21 +08:00
checkpatch: fix TYPO_SPELLING check for words with apostrophe
checkpatch reports a false TYPO_SPELLING warning for some words containing an apostrophe when run with --codespell option. A false positive is "doesn't". Occurrence of the word causes checkpatch to emit the following warning: "WARNING: 'doesn'' may be misspelled - perhaps 'doesn't'?" Modify the regex pattern to be more in line with the codespell default word matching regex. This fixes the word capture and avoids the false warning. In addition, highlight the misspelled word location by adding a caret below the word. Signed-off-by: Dwaipayan Ray <dwaipayanray1@gmail.com> Suggested-by: Joe Perches <joe@perches.com> Reported-by: Peilin Ye <yepeilin.cs@gmail.com> Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
This commit is contained in:
committed by
Arnaud Pouliquen
parent
7a11ad1e68
commit
7106b67654
@@ -2746,15 +2746,18 @@ sub process {
|
||||
# Check for various typo / spelling mistakes
|
||||
if (defined($misspellings) &&
|
||||
($in_commit_log || $line =~ /^(?:\+|Subject:)/i)) {
|
||||
while ($rawline =~ /(?:^|[^a-z@])($misspellings)(?:\b|$|[^a-z@])/gi) {
|
||||
while ($rawline =~ /(?:^|[^\w\-'`])($misspellings)(?:[^\w\-'`]|$)/gi) {
|
||||
my $typo = $1;
|
||||
my $blank = copy_spacing($rawline);
|
||||
my $ptr = substr($blank, 0, $-[1]) . "^" x length($typo);
|
||||
my $hereptr = "$hereline$ptr\n";
|
||||
my $typo_fix = $spelling_fix{lc($typo)};
|
||||
$typo_fix = ucfirst($typo_fix) if ($typo =~ /^[A-Z]/);
|
||||
$typo_fix = uc($typo_fix) if ($typo =~ /^[A-Z]+$/);
|
||||
my $msg_level = \&WARN;
|
||||
$msg_level = \&CHK if ($file);
|
||||
if (&{$msg_level}("TYPO_SPELLING",
|
||||
"'$typo' may be misspelled - perhaps '$typo_fix'?\n" . $herecurr) &&
|
||||
"'$typo' may be misspelled - perhaps '$typo_fix'?\n" . $hereptr) &&
|
||||
$fix) {
|
||||
$fixed[$fixlinenr] =~ s/(^|[^A-Za-z@])($typo)($|[^A-Za-z@])/$1$typo_fix$3/;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user