svn commit: r185356 - head/sys/dev/ixgbe
Bruce Evans
brde at optusnet.com.au
Fri Nov 28 01:59:20 PST 2008
On Thu, 27 Nov 2008, [utf-8] Dag-Erling Smørgrav wrote:
> "M. Warner Losh" <imp at bsdimp.com> writes:
>> I personally really dislike the style (and yes, I know all the
>> arguments for it). If you really want something that complex inside a
>> block to need block scoped variables, then that really argues for a
>> function oft times...
>
> There is one particular situation where it is very convenient:
>
> int
> foo(struct sockaddr *sa)
> {
> switch (s->sa_family) {
> case AF_INET: {
> struct sockaddr_in *sin = (struct sockaddr_in *)sa;
> /* ... */
> break;
> }
Switch statements are 1 case (the only case?) where the braces needed for
non-C99 declarations don't require extra indentation. However, indent(1)
doesn't understand this and mangles the above to:
int
foo(struct sockaddr *sa)
{
switch (s->sa_family) {
case AF_INET:{
struct sockaddr_in *sin = (struct sockaddr_in *)sa;
/* ... */
break;
}
indent(1) has fixed a style bug in the above (the missing blank line after
the declarations) but it has introduced 2 (the missing space before "{"
and the unwanted indentation). Fixing the other style bug in the above
(the initialization in the declaration) is beyond the scope of indent(1).
gindent-2.2.9 -npro gives the same style bugs and 1 more (it misformats
the comment to a block one, but that may be due to a bad default).
Bruce
More information about the svn-src-all
mailing list