Code Formatter for STYLE(9)?

Bryan Drewery bdrewery at FreeBSD.org
Fri Mar 25 00:15:32 UTC 2016


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.
>>>
>>
>> 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.

-- 
Regards,
Bryan Drewery

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20160324/3b0bb2af/attachment.sig>


More information about the freebsd-hackers mailing list