git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH/RFC] Documenation update: use of braces in if/else if/else chain

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Jun 10, 2012, 20:22 UTC
Message-ID
<20120610202205.GA2052@burratino>
In-Reply-To
<1339349190-84552-1-git-send-email-muhtasib@gmail.com>
Hi,
Leila Muhtasib wrote:
Show 13 quoted lines
> --- a/Documentation/CodingGuidelines
> +++ b/Documentation/CodingGuidelines
> @@ -117,9 +117,26 @@ For C programs:
>  
>     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.
> +   it.  Also, like in the Linux kernel, if one of the
> +   "if/else if/else" chain has a multiple statement block, use {}
> +   even for a single statement block in that chain. And "else"
> +   should come on the same line as the closing "}" of its "if" block.

I don't think that's quite accurate. Current best practice in both git and the Linux kernel is a little looser than that.

Show 8 quoted lines
> +
> +	//correct
> +	if (bla) {
> +		x = 1;
> +		...
> +	} else {
> +		x = 2;
> +	}
True.
Show 8 quoted lines
> +
> +	//incorrect
> +	if (bla) {
> +		x = 1;
> +		...
> +	}
> +	else
> +		x = 2;
Also true.  But:
	/* correct */
	if (bla) {
		x = 1;
		...
	} else
		x = 2;
And:

If you have a long "if" with a one-line "else", consider whether you are needlessly keeping the reader in suspense about something simple. It might be more pleasant to read with the exceptional case up front:

	if (!bla) {
		x = 2;
	} else {
		x = 1;
		...
	}
This is especially true when the exceptional case returns or exits.
	if (bla && no_bla)
		return error("--blah and --no-blah cannot be used together");
	x = 1;
	...

Hope that helps, Jonathan

Previous: Leila MuhtasibNext: Leila
Message 2 of 3 in “Documenation update: use of braces in if/else if/else chain”
  1. Documenation update: use of braces in if/else if/else chainLeila Muhtasib, Jun 10, 2012
  2. Jonathan NiederJun 10, 2012
  3. LeilaJun 10, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.