String detection where a source line with a string constant is converted can either have an X or a space. Some of the string detection regexes do not allow the space character, but there is a handy $String variable that does. Convert the remaining uses of string detection regexes to use the $String variable to reduce possible false negatives.
Showing the changes to scripts/checkpatch.pl (1 of 1 file). Show all
Unified · Split
| @@ -1008,7 +1008,7 @@ sub sanitise_line { · 1007 unmodified lines | |||
| 1008 | sub get_quoted_string { | 1008 | sub get_quoted_string { |
| 1009 | my ($line, $rawline) = @_; | 1009 | my ($line, $rawline) = @_; |
| 1010 | 1010 | ||
| 1011 | return "" if ($line !~ m/(\"[X\t]+\")/g); | 1011 | return "" if ($line !~ m/($String)/g); |
| 1012 | return substr($rawline, $-[0], $+[0] - $-[0]); | 1012 | return substr($rawline, $-[0], $+[0] - $-[0]); |
| 1013 | } | 1013 | } |
| 1014 | 1014 | ||
| @@ -4343,8 +4343,8 @@ sub process { · 3328 unmodified lines | |||
| 4343 | } | 4343 | } |
| 4344 | 4344 | ||
| 4345 | # Flatten any obvious string concatentation. | 4345 | # Flatten any obvious string concatentation. |
| 4346 | while ($dstat =~ s/("X*")\s*$Ident/$1/ || | 4346 | while ($dstat =~ s/($String)\s*$Ident/$1/ || |
| 4347 | $dstat =~ s/$Ident\s*("X*")/$1/) | 4347 | $dstat =~ s/$Ident\s*($String)/$1/) |
| 4348 | { | 4348 | { |
| 4349 | } | 4349 | } |
| 4350 | 4350 | ||
| @@ -4625,7 +4625,7 @@ sub process { · 274 unmodified lines | |||
| 4625 | # to grep for the string. Make exceptions when the previous string ends in a | 4625 | # to grep for the string. Make exceptions when the previous string ends in a |
| 4626 | # newline (multiple lines in one string constant) or '\t', '\r', ';', or '{' | 4626 | # newline (multiple lines in one string constant) or '\t', '\r', ';', or '{' |
| 4627 | # (common in inline assembly) or is a octal \123 or hexadecimal \xaf value | 4627 | # (common in inline assembly) or is a octal \123 or hexadecimal \xaf value |
| 4628 | if ($line =~ /^\+\s*"[X\t]*"/ && | 4628 | if ($line =~ /^\+\s*$String/ && |
| 4629 | $prevline =~ /"\s*$/ && | 4629 | $prevline =~ /"\s*$/ && |
| 4630 | $prevrawline !~ /(?:\\(?:[ntr]|[0-7]{1,3}|x[0-9a-fA-F]{1,2})|;\s*|\{\s*)"\s*$/) { | 4630 | $prevrawline !~ /(?:\\(?:[ntr]|[0-7]{1,3}|x[0-9a-fA-F]{1,2})|;\s*|\{\s*)"\s*$/) { |
| 4631 | if (WARN("SPLIT_STRING", | 4631 | if (WARN("SPLIT_STRING", |
| @@ -4671,13 +4671,13 @@ sub process { · 39 unmodified lines | |||
| 4671 | } | 4671 | } |
| 4672 | 4672 | ||
| 4673 | # concatenated string without spaces between elements | 4673 | # concatenated string without spaces between elements |
| 4674 | if ($line =~ /"X+"[A-Z_]+/ || $line =~ /[A-Z_]+"X+"/) { | 4674 | if ($line =~ /$String[A-Z_]/ || $line =~ /[A-Za-z0-9_]$String/) { |
| 4675 | CHK("CONCATENATED_STRING", | 4675 | CHK("CONCATENATED_STRING", |
| 4676 | "Concatenated strings should use spaces between elements\n" . $herecurr); | 4676 | "Concatenated strings should use spaces between elements\n" . $herecurr); |
| 4677 | } | 4677 | } |
| 4678 | 4678 | ||
| 4679 | # uncoalesced string fragments | 4679 | # uncoalesced string fragments |
| 4680 | if ($line =~ /"X*"\s*"/) { | 4680 | if ($line =~ /$String\s*"/) { |
| 4681 | WARN("STRING_FRAGMENTS", | 4681 | WARN("STRING_FRAGMENTS", |
| 4682 | "Consecutive strings are generally better as a single string\n" . $herecurr); | 4682 | "Consecutive strings are generally better as a single string\n" . $herecurr); |
| 4683 | } | 4683 | } |