From: Josh Triplett <josh@joshtriplett.org>
To: linux-kernel@vger.kernel.org
Cc: Andy Whitcroft <apw@canonical.com>, Joe Perches <joe@perches.com>,
"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Subject: [PATCH] checkpatch: Check for quoted strings broken across lines
Date: Thu, 2 Feb 2012 12:06:21 -0800 [thread overview]
Message-ID: <20120202200621.GB9279@leaf> (raw)
Documentation/CodingStyle recommends not splitting quoted strings across
lines, because it breaks the ability to grep for the string. checkpatch
already makes an exception to the 80-column rule for quoted strings to
allow this. Rather than just allowing it, actively warn about quoted
strings split across lines.
Test case:
void context(void)
{
pr_err("this string"
" should produce a warning\n");
pr_err("this multi-line string\n"
"should not produce a warning\n");
asm ("this asm\n\t"
"should not produce a warning");
}
Results of checkpatch on that test case:
WARNING: quoted string split across lines
+ " should produce a warning\n");
total: 0 errors, 1 warnings, 9 lines checked
Signed-off-by: Josh Triplett <josh@joshtriplett.org>
---
scripts/checkpatch.pl | 11 +++++++++++
1 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index e3bfcbe..ce4d740 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -1737,6 +1737,17 @@ sub process {
"line over 80 characters\n" . $herecurr);
}
+# Check for strings broken across lines (breaks greppability). 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*$/ &&
+ $prevrawline !~ /\\n(?:\\t)*"\s*$/) {
+ WARN("SPLIT_STRING",
+ "quoted string split across lines\n" . $herecurr);
+ }
+
# check for spaces before a quoted newline
if ($rawline =~ /^.*\".*\s\\n/) {
WARN("QUOTED_WHITESPACE_BEFORE_NEWLINE",
--
1.7.9
next reply other threads:[~2012-02-02 20:06 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-02 20:06 Josh Triplett [this message]
2012-02-02 20:22 ` [PATCH] checkpatch: Check for quoted strings broken across lines Nick Bowler
2012-02-02 21:16 ` Josh Triplett
2012-02-02 22:08 ` Nick Bowler
2012-02-03 1:31 ` Josh Triplett
2012-02-02 21:29 ` Jesper Juhl
2012-02-02 21:34 ` Joe Perches
2012-02-02 22:02 ` Josh Triplett
2012-02-02 20:36 ` Joe Perches
2012-02-02 21:28 ` Josh Triplett
2012-02-02 21:32 ` Joe Perches
2012-02-02 22:36 ` Josh Triplett
-- strict thread matches above, loose matches on Subject: below --
2012-02-03 5:27 Josh Triplett
2012-02-03 5:38 ` Joe Perches
2012-02-03 8:55 ` Josh Triplett
2012-02-03 6:34 ` Josh Triplett
2012-03-20 21:06 Josh Triplett
2012-03-21 1:24 ` Joe Perches
2012-03-21 4:28 ` Josh Triplett
2012-03-21 4:35 ` Joe Perches
2012-03-21 6:05 ` Josh Triplett
2012-03-21 12:11 ` Joe Perches
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120202200621.GB9279@leaf \
--to=josh@joshtriplett.org \
--cc=apw@canonical.com \
--cc=joe@perches.com \
--cc=linux-kernel@vger.kernel.org \
--cc=paulmck@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).