On 11/20/2013 06:26 AM, Osier Yang wrote:
On 20/11/13 08:30, Eric Blake wrote:
> Enforce and document the style set up by the previous patches.
>
> * build-aux/bracket-spacing.pl: Add comma checks.
> * docs/hacking.html.in: Document the rules.
> * HACKING: Regenerate.
> +When declaring an enum or using a struct initializer that
occupies
> more than
> +one line, use a trailing comma. That way, future edits to extend the
> list only
> +have to add a line, rather than modify an existing line to add the
> +intermediate comma.
Not sure if we need to explain more about the trailing comma for an enum
or a struct helps on code auto generation and parsing.
Sure; I'll squash this in.
diff --git i/docs/hacking.html.in w/docs/hacking.html.in
index cc76997..0febee2 100644
--- i/docs/hacking.html.in
+++ w/docs/hacking.html.in
@@ -417,10 +418,15 @@
When declaring an enum or using a struct initializer that
occupies more than one line, use a trailing comma. That way,
future edits to extend the list only have to add a line, rather
- than modify an existing line to add the intermediate comma.
- However, this is harder to enforce, so you will find
- counterexamples in existing code. Additionally, any sentinel
- enumerator value with a name ending in _LAST is exempt.
+ than modify an existing line to add the intermediate comma. Any
+ sentinel enumerator value with a name ending in _LAST is exempt,
+ since you would extend such an enum before the _LAST element.
+ Another reason to favor trailing commas is that it requires less
+ effort to produce via code generators. Note that the syntax
+ checker is unable to enforce a style of trailing commas, so
+ there are counterexamples in existing code which do not use it;
+ also, while C99 allows trailing commas, remember that JSON and
+ XDR do not.
</p>
<pre>
enum {
ACK either way w.r.t the comment. Thanks for the not interesting
work. :-)
Thanks for the quick review. I'll push the series shortly.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org