indent(1) support for gcc(1) 0b prefix

Tim Kientzle kientzle at freebsd.org
Fri May 2 04:57:49 UTC 2008


>>>But I would like to use indent(1) to reformat contributed code
>>>automatically. Unfortunately, the 0b notation is not supported by that
>>>program, and the resulting code looks like this:
>>>
>>>	foo = 0 b00101010;
>>>
>>>... then compilation fails, bla bla bla...
>>
>>I can't think of a case (outside of "0x...." context) where "...0b..."
>>would be valid C code, let alone better formated as "...0 b...".
>>Hence I see no harm in adding your patch to the base indent(1).
>>
>>Does anyone have an example where "...0 b..." is valid C code?
> 
> The only case I can think of is when the "b..." is an existing macro,
> i.e. something like:
> 
>      1  #include <stdio.h>
>      2
>      3  #define b0101   + 3

In all of these cases, though, adding a space between the '0' and
the 'b' changes the meaning, so is wrong.  Indent can
change/insert whitespace, but should never do so in a way that
changes the meaning of the program.  In all of these cases,
having indent recognize "0b..." as a single token is the
correct behavior.

So I don't see any point in having this recognition be
tunable.  indent already has too many switches.

Tim Kientzle


More information about the freebsd-hackers mailing list