checkpatch: fix TYPO_SPELLING check for words with apostrophe
PATCH v2 1/1 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.
---
Changes in v2:
- Use the default codespell word regex.
- Modify commit message to specify --codespell usage
scripts/checkpatch.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
scripts/checkpatch.pl +1 -1
@@ -3106,7 +3106,7 @@ 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 $typo_fix = $spelling_fix{lc($typo)}; $typo_fix = ucfirst($typo_fix) if ($typo =~ /^[A-Z]/);
Signature · 6 lines
2.27.0 _______________________________________________ Linux-kernel-mentees mailing list [email protected] https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees
Joe Perches
maintainerscripts/checkpatch.pl
Quoted 24 lines · Dwaipayan Ray
checkpatch reports a false
TYPO_SPELLINGwarning 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.
Suggested-by Joe Perches <[email protected]>Reported-by Peilin Ye <[email protected]>Signed-off-by Dwaipayan Ray <[email protected]>---
Changes in v2:
- Use the default codespell word regex.
- Modify commit message to specify --codespell usagescripts/checkpatch.pl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)scripts/checkpatch.pl +0
-0
[]
scripts/checkpatch.pl sub process { · line 3109
Quoted 6 lines
scripts/checkpatch.pl +0
-0@@ -3106,7 +3106,7 @@ sub process { # Check for various typo / spelling mistakesif (defined($misspellings) && ($in_commit_log || $line =~ /^(?:\+|Subject:)/i)) {
scripts/checkpatch.pl +1
-1- while ($rawline =~ /(?:^|[^a-z@])($misspellings)(?:\b|$|[^a-z@])/gi) { + while ($rawline =~ /(?:^|[^\w\-'`])($misspellings)(?:[^\w\-'`]|$)/gi) {
This regex seems to work well, thanks.
Quoted 1 line
my $typo = $1;
A trivial improvement might be to highlight the location of the misspelled word with a caret using
my $blank = copy_spacing($rawline); my $ptr = substr($blank, 0, $-[0] + 1) . "^"; my $hereptr = "$hereline$ptr\n";
Quoted 2 lines
my $typo_fix = $spelling_fix{lc($typo)}; $typo_fix =
ucfirst($typo_fix)if ($typo =~ /^[A-Z]/);
and using $hereptr and not $hereline when emitting the message.
_______________________________________________
Linux-kernel-mentees mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees
Quoted 41 lines · Joe Perches
scripts/checkpatch.pl
Quoted 24 lines · Dwaipayan Ray
checkpatch reports a false
TYPO_SPELLINGwarning 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.
Suggested-by Joe Perches <[email protected]>Reported-by Peilin Ye <[email protected]>Signed-off-by Dwaipayan Ray <[email protected]>---
Changes in v2:
- Use the default codespell word regex.
- Modify commit message to specify --codespell usagescripts/checkpatch.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)scripts/checkpatch.pl +0
-0[]
scripts/checkpatch.pl sub process { · line 3109
Quoted 6 lines
scripts/checkpatch.pl +1
-1@@ -3106,7 +3106,7 @@ 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) {This regex seems to work well, thanks.
scripts/checkpatch.pl sub process { · line 3110
Quoted 1 line
scripts/checkpatch.pl +0
-0my $typo = $1;A trivial improvement might be to highlight the location of the misspelled word with a caret using
Quoted 10 lines
my $blank = copy_spacing($rawline); my $ptr = substr($blank, 0, $-[0] + 1) . "^"; my $hereptr = "$hereline$ptr\n";scripts/checkpatch.pl sub process { · line 3112
Quoted 2 lines
scripts/checkpatch.pl +0
-0my $typo_fix = $spelling_fix{lc($typo)}; $typo_fix = ucfirst($typo_fix) if ($typo =~ /^[A-Z]/);and using $hereptr and not $hereline when emitting the message.
Sure I will do that.
Is the color highlighting also supported in most systems? Maybe a red colored word would be nice to notice as well.
Thanks,
Dwaipayan.
_______________________________________________
Linux-kernel-mentees mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees
Joe Perches
maintainerQuoted 45 lines · Dwaipayan Ray
Quoted 44 lines · Joe Perches
scripts/checkpatch.pl
Quoted 24 lines · Dwaipayan Ray
checkpatch reports a false
TYPO_SPELLINGwarning 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.
Suggested-by Joe Perches <[email protected]>Reported-by Peilin Ye <[email protected]>Signed-off-by Dwaipayan Ray <[email protected]>---
Changes in v2:
- Use the default codespell word regex.
- Modify commit message to specify --codespell usagescripts/checkpatch.pl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)scripts/checkpatch.pl +0
-0[]
scripts/checkpatch.pl sub process { · line 3109
Quoted 6 lines
scripts/checkpatch.pl +0
-0@@ -3106,7 +3106,7 @@ sub process { # Check for various typo / spelling mistakesif (defined($misspellings) && ($in_commit_log || $line =~ /^(?:\+|Subject:)/i)) {
scripts/checkpatch.pl +1
-1- while ($rawline =~ /(?:^|[^a-z@])($misspellings)(?:\b|$|[^a-z@])/gi) { + while ($rawline =~ /(?:^|[^\w\-'`])($misspellings)(?:[^\w\-'`]|$)/gi) {This regex seems to work well, thanks.
Quoted 1 line
my $typo = $1;
A trivial improvement might be to highlight the location of the misspelled word with a caret using
my $blank =
copy_spacing($rawline); my $ptr =substr($blank, 0, $-[0] + 1). "^"; my $hereptr = "$hereline$ptr\n";
Quoted 7 lines
Quoted 5 lines
Quoted 2 lines
my $typo_fix = $spelling_fix{lc($typo)}; $typo_fix =
ucfirst($typo_fix)if ($typo =~ /^[A-Z]/);and using $hereptr and not $hereline when emitting the message.
Sure I will do that.
Is the color highlighting also supported in most systems?
I believe so, yes.
Color is only used when the output is to stdout and not redirected and not otherwise specified on the checkpatch command line.
Quoted 1 line
Maybe a red colored word would be nice to notice as well.
Maybe, but that might make the code around the message output of $hereptr a bit obscure. Presumably the code would not use $hereline but something else new and specific for this message.
The output is done via the report() function so adding optional color for only a portion of the new $hereptr string might be a lot of code.
If you try it, maybe make the misspelled word color match the message level and not just be red. Also the caret line wouldn't have much value with that added color highlighting.
Try it and see what you prefer.
_______________________________________________
Linux-kernel-mentees mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees
Quoted 66 lines · Joe Perches
Quoted 45 lines · Dwaipayan Ray
Quoted 44 lines · Joe Perches
scripts/checkpatch.pl
Quoted 24 lines · Dwaipayan Ray
checkpatch reports a false
TYPO_SPELLINGwarning 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.
Suggested-by Joe Perches <[email protected]>Reported-by Peilin Ye <[email protected]>Signed-off-by Dwaipayan Ray <[email protected]>---
Changes in v2:
- Use the default codespell word regex.
- Modify commit message to specify --codespell usagescripts/checkpatch.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)scripts/checkpatch.pl +0
-0[]
scripts/checkpatch.pl sub process { · line 3109
Quoted 6 lines
scripts/checkpatch.pl +1
-1@@ -3106,7 +3106,7 @@ 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) {This regex seems to work well, thanks.
scripts/checkpatch.pl sub process { · line 3110
Quoted 1 line
scripts/checkpatch.pl +0
-0my $typo = $1;A trivial improvement might be to highlight the location of the misspelled word with a caret using
my $blank = copy_spacing($rawline); my $ptr = substr($blank, 0, $-[0] + 1) . "^"; my $hereptr = "$hereline$ptr\n";Quoted 7 lines
Quoted 5 lines
scripts/checkpatch.pl sub process { · line 3112
Quoted 2 lines
scripts/checkpatch.pl +0
-0my $typo_fix = $spelling_fix{lc($typo)}; $typo_fix = ucfirst($typo_fix) if ($typo =~ /^[A-Z]/);and using $hereptr and not $hereline when emitting the message.
Sure I will do that.
Is the color highlighting also supported in most systems?I believe so, yes.
Color is only used when the output is to stdout and not redirected and not otherwise specified on the checkpatch command line.
Quoted 1 line
Maybe a red colored word would be nice to notice as well.
Maybe, but that might make the code around the message output of $hereptr a bit obscure. Presumably the code would not use $hereline but something else new and specific for this message.
Quoted 9 lines
The output is done via the
report()function so adding optional color for only a portion of the new $hereptr string might be a lot of code.If you try it, maybe make the misspelled word color match the message level and not just be red. Also the caret line wouldn't have much value with that added color highlighting.
Try it and see what you prefer.
Thanks for your view.
Colors seem to obscure the word even more. The carat one seemed nicer to me visually. I will send in a new version for that.
Regards,
Dwaipayan.
_______________________________________________
Linux-kernel-mentees mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees