Re: kernel coding style for if ... else which cross #ifdef

From: H. Peter Anvin
Date: Fri May 23 2008 - 19:13:37 EST


Steve French wrote:
A question splitting "else" and "if" on distinct lines vs. using an
extra line and extra #else came up as I was reviewing a proposed cifs
patch. Which is the preferred style?

#ifdef CONFIG_SOMETHING
if (foo)
something ...
else
#endif
if ((mode & S_IWUGO) == 0)

or alternatively

#ifdef CONFIG_SOMETHING
if (foo)
something ...
else if ((mode & S_IWUGO) == 0)
#else
if ((mode & S_IWUGO) == 0)
#endif


The former. Why? Because the latter case has unbalanced indentation: to an editor, and to the human eye, it looks like the if in the #else clause is a child to the "else if".

*However*, the best would really be if we changed Kconfig to emit configuration constants what were 0/1 instead of undefined/defined. That way we could do:

if (CONFIG_SOMETHING && foo) {
/* ... something ... */
} else if ((mode & S_IWUGO) == 0) {
/* ... */

... in many cases.

-hpa
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/