|
@@ -1772,6 +1772,21 @@ sub process {
|
|
"line over 80 characters\n" . $herecurr);
|
|
"line over 80 characters\n" . $herecurr);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+# Check for user-visible strings broken across lines, which breaks the ability
|
|
|
|
+# to grep for the string. Limited to strings used as parameters (those
|
|
|
|
+# following an open parenthesis), which almost completely eliminates false
|
|
|
|
+# positives, as well as warning only once per parameter rather than once per
|
|
|
|
+# line of the string. Make an exception when the previous string ends in a
|
|
|
|
+# newline (multiple lines in one string constant) or \n\t (common in inline
|
|
|
|
+# assembly to indent the instruction on the following line).
|
|
|
|
+ if ($line =~ /^\+\s*"/ &&
|
|
|
|
+ $prevline =~ /"\s*$/ &&
|
|
|
|
+ $prevline =~ /\(/ &&
|
|
|
|
+ $prevrawline !~ /\\n(?:\\t)*"\s*$/) {
|
|
|
|
+ WARN("SPLIT_STRING",
|
|
|
|
+ "quoted string split across lines\n" . $hereprev);
|
|
|
|
+ }
|
|
|
|
+
|
|
# check for spaces before a quoted newline
|
|
# check for spaces before a quoted newline
|
|
if ($rawline =~ /^.*\".*\s\\n/) {
|
|
if ($rawline =~ /^.*\".*\s\\n/) {
|
|
WARN("QUOTED_WHITESPACE_BEFORE_NEWLINE",
|
|
WARN("QUOTED_WHITESPACE_BEFORE_NEWLINE",
|