From: Kevin Wolf <kwolf@redhat.com>
To: qemu-devel@nongnu.org
Cc: kwolf@redhat.com
Subject: [Qemu-devel] [PULL 07/19] checkpatch: Brace handling on multi-line condition
Date: Fri, 19 Dec 2014 17:34:57 +0100 [thread overview]
Message-ID: <1419006909-1781-8-git-send-email-kwolf@redhat.com> (raw)
In-Reply-To: <1419006909-1781-1-git-send-email-kwolf@redhat.com>
From: Max Reitz <mreitz@redhat.com>
CODING_STYLE states the following about braces around blocks:
> The opening brace is on the line that contains the control flow
> statement that introduces the new block; [...]
This is obviously impossible with multi-line conditions. Therefore,
CODING_STYLE does not make any clear statement about where to put the
opening brace after a multi-line condition.
There is a reason to prefer to place the opening brace on an own line
after such a condition while still placing it on the same line as the
"control flow statement" if possible; that reason is that the last line
of a multi-line condition is indented, in the case of "if", it is often
indented by four spaces, just as much as the first statement in the
block will be indented. This is hard to read as there is no clearly
visible distinction between condition and block. Placing the opening
brace on a separate line solves this issue.
Also, there are cases where placing the opening brace on a separate line
is the only viable option; if the previous line had nearly 80 characters
and splitting it is not desirable, the opening brace is naturally placed
on an own line.
This patch fixes checkpatch.pl to not complain about braces on own lines
if the condition introducing the block spanned more than one line, or if
the previous line had 79 or 80 characters.
Furthermore, the warning about not having braces around a block is fixed
to mind braces not being on the last line of the condition.
Signed-off-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
scripts/checkpatch.pl | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 053e432..5df61f9 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -1639,7 +1639,13 @@ sub process {
#print "realcnt<$realcnt> ctx_cnt<$ctx_cnt>\n";
#print "pre<$pre_ctx>\nline<$line>\nctx<$ctx>\nnext<$lines[$ctx_ln - 1]>\n";
- if ($ctx !~ /{\s*/ && defined($lines[$ctx_ln -1]) && $lines[$ctx_ln - 1] =~ /^\+\s*{/) {
+ # The length of the "previous line" is checked against 80 because it
+ # includes the + at the beginning of the line (if the actual line has
+ # 79 or 80 characters, it is no longer possible to add a space and an
+ # opening brace there)
+ if ($#ctx == 0 && $ctx !~ /{\s*/ &&
+ defined($lines[$ctx_ln - 1]) && $lines[$ctx_ln - 1] =~ /^\+\s*{/ &&
+ defined($lines[$ctx_ln - 2]) && length($lines[$ctx_ln - 2]) < 80) {
ERROR("that open brace { should be on the previous line\n" .
"$here\n$ctx\n$rawlines[$ctx_ln - 1]\n");
}
@@ -2542,7 +2548,10 @@ sub process {
substr($block, 0, length($cond), '');
- $seen++ if ($block =~ /^\s*{/);
+ my $spaced_block = $block;
+ $spaced_block =~ s/\n\+/ /g;
+
+ $seen++ if ($spaced_block =~ /^\s*{/);
print "APW: cond<$cond> block<$block> allowed<$allowed>\n"
if $dbg_adv_apw;
--
1.8.3.1
next prev parent reply other threads:[~2014-12-19 16:35 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-19 16:34 [Qemu-devel] [PULL 00/19] Block patches Kevin Wolf
2014-12-19 16:34 ` [Qemu-devel] [PULL 01/19] qemu-iotests: Remove 091 from quick group Kevin Wolf
2014-12-19 16:34 ` [Qemu-devel] [PULL 02/19] qemu-iotests: Speed up make check-block Kevin Wolf
2014-12-19 16:34 ` [Qemu-devel] [PULL 03/19] tests/Makefile: Add check-block to make check Kevin Wolf
2014-12-19 16:34 ` [Qemu-devel] [PULL 04/19] block: mark AioContext as recursive Kevin Wolf
2014-12-19 16:34 ` [Qemu-devel] [PULL 05/19] block: do not allocate an iovec per read of a growable/zero_after_eof BDS Kevin Wolf
2014-12-19 16:34 ` [Qemu-devel] [PULL 06/19] block: replace g_new0 with g_new for bottom half allocation Kevin Wolf
2014-12-19 16:34 ` Kevin Wolf [this message]
2014-12-19 16:34 ` [Qemu-devel] [PULL 08/19] block: Get full backing filename from string Kevin Wolf
2014-12-19 16:34 ` [Qemu-devel] [PULL 09/19] block: JSON filenames and relative backing files Kevin Wolf
2014-12-19 16:35 ` [Qemu-devel] [PULL 10/19] block: Relative backing file for image creation Kevin Wolf
2014-12-19 16:35 ` [Qemu-devel] [PULL 11/19] block/vmdk: Relative backing file for creation Kevin Wolf
2014-12-19 16:35 ` [Qemu-devel] [PULL 12/19] iotests: Add test for relative backing file names Kevin Wolf
2014-12-19 16:35 ` [Qemu-devel] [PULL 13/19] qapi: Fix document for BlockStats.node-name Kevin Wolf
2014-12-19 16:35 ` [Qemu-devel] [PULL 14/19] block: fix spoiling all dirty bitmaps by mirror and migration Kevin Wolf
2014-12-19 16:35 ` [Qemu-devel] [PULL 15/19] qapi: Comment version info in TransactionAction Kevin Wolf
2014-12-19 16:35 ` [Qemu-devel] [PULL 16/19] qmp: Add command 'blockdev-backup' Kevin Wolf
2014-12-19 16:35 ` [Qemu-devel] [PULL 17/19] block: Add blockdev-backup to transaction Kevin Wolf
2014-12-19 16:35 ` [Qemu-devel] [PULL 18/19] qemu-iotests: Test blockdev-backup in 055 Kevin Wolf
2014-12-19 16:35 ` [Qemu-devel] [PULL 19/19] iotests: Filter out "I/O thread spun..." warning Kevin Wolf
2014-12-22 11:14 ` [Qemu-devel] [PULL 00/19] Block patches Peter Maydell
2014-12-22 12:07 ` Peter Maydell
2014-12-22 12:22 ` Peter Maydell
2014-12-23 2:15 ` Fam Zheng
2015-01-05 11:55 ` Stefan Hajnoczi
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=1419006909-1781-8-git-send-email-kwolf@redhat.com \
--to=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
/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).