From: Junio C Hamano <gitster@pobox.com>
To: Jeff King <peff@peff.net>
Cc: Johannes Schindelin <Johannes.Schindelin@gmx.de>,
Johannes Sixt <j6t@kdbg.org>,
git@vger.kernel.org
Subject: Re: [PATCH] CodingGuidelines: clarify multi-line brace style
Date: Tue, 17 Jan 2017 11:39:31 -0800 [thread overview]
Message-ID: <xmqqfukhfpcc.fsf@gitster.mtv.corp.google.com> (raw)
In-Reply-To: <20170116220821.4tji5mrfcdbdpfuo@sigill.intra.peff.net> (Jeff King's message of "Mon, 16 Jan 2017 17:08:21 -0500")
Jeff King <peff@peff.net> writes:
>> I think this is pretty clearly the "gray area" mentioned there. Which
>> yes, does not say "definitely do it this way", but I hope makes it clear
>> that you're supposed to use judgement about readability.
>
> So here's a patch.
>
> I know we've usually tried to keep this file to guidelines and not
> rules, but clearly it has not been clear-cut enough in this instance.
I have two "Huh?" with this patch.
1. Two exceptions are not treated the same way. The first one is
"... extends over a few lines, it is excempt from the rule,
period". The second one, is ambivalent by saying "it can make
sense", implying that "it may not make sense", so I am not sure
if this is clarifying that much.
If we want to clarify, perhaps drop "it can make sense to" and
say
When there are multiple arms to a conditional, and some of
them require braces, enclose even a single line block in
braces for consistency.
perhaps?
2. I actually think it is OK to leave some things "gray", but the
confusion comes when people do not know what to do to things
that are "gray", and they need a rule for that to be spelled
out.
When the project says it does not have strong preference
among multiple choices, you are welcome to write your new
code using any of them, as long as you are consistent with
surrounding code. Do not change style of existing code only
to flip among these styles, though.
That obviously is not limited to the rule/guideline for braces.
> -- >8 --
> Subject: [PATCH] CodingGuidelines: clarify multi-line brace style
>
> There are some "gray areas" around when to omit braces from
> a conditional or loop body. Since that seems to have
> resulted in some arguments, let's be a little more clear
> about our preferred style.
>
> Signed-off-by: Jeff King <peff@peff.net>
> ---
> Documentation/CodingGuidelines | 37 ++++++++++++++++++++++++++++++++-----
> 1 file changed, 32 insertions(+), 5 deletions(-)
>
> diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines
> index 4cd95da6b..0e336e99d 100644
> --- a/Documentation/CodingGuidelines
> +++ b/Documentation/CodingGuidelines
> @@ -206,11 +206,38 @@ For C programs:
> x = 1;
> }
>
> - is frowned upon. A gray area is when the statement extends
> - over a few lines, and/or you have a lengthy comment atop of
> - it. Also, like in the Linux kernel, if there is a long list
> - of "else if" statements, it can make sense to add braces to
> - single line blocks.
> + is frowned upon. But there are a few exceptions:
> +
> + - When the statement extends over a few lines (e.g., a while loop
> + with an embedded conditional, or a comment). E.g.:
> +
> + while (foo) {
> + if (x)
> + one();
> + else
> + two();
> + }
> +
> + if (foo) {
> + /*
> + * This one requires some explanation,
> + * so we're better off with braces to make
> + * it obvious that the indentation is correct.
> + */
> + doit();
> + }
> +
> + - When there are multiple arms to a conditional, it can make
> + sense to add braces to single line blocks for consistency.
> + E.g.:
> +
> + if (foo) {
> + doit();
> + } else {
> + one();
> + two();
> + three();
> + }
>
> - We try to avoid assignments in the condition of an "if" statement.
next prev parent reply other threads:[~2017-01-17 19:39 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-16 1:51 What's cooking in git.git (Jan 2017, #02; Sun, 15) Junio C Hamano
2017-01-16 6:56 ` Johannes Sixt
2017-01-16 7:48 ` Junio C Hamano
2017-01-16 12:52 ` Johannes Schindelin
2017-01-16 16:04 ` Jeff King
2017-01-16 17:06 ` Johannes Schindelin
2017-01-16 20:33 ` Johannes Sixt
2017-01-16 21:44 ` Jeff King
2017-01-17 19:17 ` Junio C Hamano
2017-01-18 6:50 ` Johannes Sixt
2017-01-18 19:12 ` Junio C Hamano
2017-01-19 16:12 ` Johannes Schindelin
2017-01-16 22:00 ` Jeff King
2017-01-16 22:08 ` [PATCH] CodingGuidelines: clarify multi-line brace style Jeff King
2017-01-17 19:39 ` Junio C Hamano [this message]
2017-01-17 20:05 ` Jeff King
2017-01-17 21:41 ` Junio C Hamano
2017-01-17 1:33 ` What's cooking in git.git (Jan 2017, #02; Sun, 15) Jacob Keller
2017-01-17 7:52 ` Jeff King
2017-01-17 19:20 ` Junio C Hamano
2017-01-17 19:36 ` Jeff King
2017-01-17 20:32 ` Junio C Hamano
2017-01-17 20:51 ` Jeff King
2017-01-16 11:28 ` Johannes Schindelin
2017-01-17 19:45 ` Junio C Hamano
2017-01-18 13:54 ` Johannes Schindelin
2017-01-16 11:40 ` Johannes Schindelin
2017-01-18 1:05 ` [PATCHv3 4/4] unpack-trees: support super-prefix option Stefan Beller
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=xmqqfukhfpcc.fsf@gitster.mtv.corp.google.com \
--to=gitster@pobox.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=j6t@kdbg.org \
--cc=peff@peff.net \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.