
On Wed, Mar 19, 2014 at 12:18:56PM +0100, Martin Kletzander wrote:
Although not explicitly requested, we are using K&R (or Kernel) indentation for curly braces around functions in HACKING file and most of the code. Using grep -P, this patch add the syntax-check rule for it (while skipping all the false positives with foreach constructs).
Signed-off-by: Martin Kletzander <mkletzan@redhat.com> ---
Notes: Unfortunately, the regexp is meant to catch as much as possible and thus one line functions must occupy two lines, e.g.:
static inline int getuid(void) { return 0; }
is not valid. This can be changed by appending $$ to the end of the regexp which I didn't want to do since it might not catch something else I haven't thought of.
I think that's an acceptable limitation. We don't have many of those single line functions, so it isn't worth worrying about them.
diff --git a/cfg.mk b/cfg.mk index 7a65d1e..559f719 100644 --- a/cfg.mk +++ b/cfg.mk @@ -898,6 +898,13 @@ sc_prohibit_virConnectOpen_in_virsh: halt='Use vshConnect() in virsh instead of virConnectOpen*' \ $(_sc_search_regexp)
+sc_curly_braces_style: + @files=$$($(VC_LIST_EXCEPT) | grep '\.[ch]$$'); \ + $(GREP) -nHP \ +'^\s*(?!([a-zA-Z_]*for_?each[a-zA-Z_]*) ?\()([_a-zA-Z0-9]+( [_a-zA-Z0-9]+)* ?\()?(\*?[_a-zA-Z0-9]+(,? \*?[_a-zA-Z0-9\[\]]+)+|void)\) ?\{' \ + $$files && { echo '$(ME): Non-K&R style used for curly' \ + 'braces around function body, see' \ + 'HACKING' 1>&2; exit 1; } || :
ACK Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|