Code Formatter for STYLE(9)?

Julian Elischer julian at freebsd.org
Fri Mar 25 09:36:51 UTC 2016


On 25/03/2016 8:15 AM, Bryan Drewery wrote:
> On 3/24/2016 9:24 AM, Pietro Cerutti wrote:
>> On 2016-03-24 15:54, Matthew Seaman wrote:
>>> On 2016/03/24 13:29, Sebastian Huber wrote:
>>>> Hello,
>>>>
>>>> is there a ready to use C code formatter available that honours
>>>> STYLE(9)? I tried clang-format, but it knows only LLVM, Google,
>>>> Chromium, Mozilla by default. The GNU indent --original seems to produce
>>>> nothing usable. Same problem with astyle --style=bsd.

there was an indent() config that was quite close.
>>> pkg uses uncrustify with this config file:
>>>
>>> https://github.com/freebsd/pkg/blob/master/freebsd.cfg
>>>
>>> It's approximately what style(9) describes but doesn't cover things like
>>> sorting include files and I don't think it was updated in response to
>>> the recent change allowing { brackets } around certain single-line
>>> statements.
>> It looks like it does: https://github.com/freebsd/pkg/commit/1bc61a4
>>
> It's not quite right. It is adding {} to single-line if statements in
> some code.
>
>>   static __inline struct filemon *
>>   filemon_acquire(struct filemon *filemon)
>>   {
>> -
>> -       if (filemon != NULL)
>> +       if (filemon != NULL) {
>>                  refcount_acquire(&filemon->refcnt);
>> +       }
>>          return (filemon);
>>   }
> It's also not aware of our (silly?) blank line with no declarations rule:
>
>>   static __inline void
>>   filemon_drop(struct filemon *filemon)
>>   {
>> -
>>          sx_xunlock(&filemon->lock);
>>          filemon_release(filemon);
>>   }
> And wrapping multiple conditions:
>
>> -       if (p->p_filemon != NULL && p != curproc)
>> +       if ((p->p_filemon != NULL) && (p != curproc)) {
>>                  return (EBUSY);
>> +       }
> It's also not respecting the wrap rule of tabs + 4 spaces.
>
> It's also adding random blank lines before functions and macros.
>
> It found a useless 'return;' at least.
>



More information about the freebsd-hackers mailing list