[libvirt] [PATCH][RFC] Add a rule for indenting labels

Eric Blake eblake at redhat.com
Fri Mar 21 14:19:42 UTC 2014


On 03/21/2014 07:11 AM, Ján Tomko wrote:
> Indent labels by one space.
> 
> Add the rule to HACKING and enforce it by syntax-check.
> ---
> Adding a space helps git's function context detection, but the fallout
> patch is over 800K.
> 
> My reasoning for also indenting labels in nested code is that
> vim's cinoptions don't have a separate option for these labels
> (or I haven't searched hard enough?).

Alas, I don't know enough on vim to help there.

> 
> Inspired by this thread:
> https://www.redhat.com/archives/libvir-list/2014-March/msg01310.html
> 
>  cfg.mk               |  7 +++++++
>  docs/hacking.html.in | 18 +++++++++++++++++-
>  2 files changed, 24 insertions(+), 1 deletion(-)
> 
> diff --git a/cfg.mk b/cfg.mk
> index 559f719..1512fb2 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_require_space_before_label:
> +	@prohibit='^(( {2})*|( {3})*)([_a-zA-Z0-9]+):$$'               \

This doesn't do what you want; it sounds like you want to require all
labels to have (4n+1) spaces, so you want 4n+{0,2,3} to be forbidden.
Something like:

@prohibit='^( {4})*(|  |   )([_a-zA-Z0-9]+):$$'

> +	exclude='( {4})*default:$$'                                    \
> +	in_vc_files='\.[ch]$$'                                         \
> +	halt="Labels should be indented by 4*n + 1 spaces"             \
> +	  $(_sc_search_regexp)

The rest of this makes sense, if I can figure out why my emacs settings
aren't doing this already, and if we update .dir-locals.el in the same
patch.


> +<pre>
> +int foo()
> +{
> +    if (wizz) {
> +     retry:
> +        goto retry;
> +    }
> + cleanup:
> +}

Wouldn't actually compile (a label needs to be attached to a statement,
and our warnings coupled with -Werror would call out the fact that
cleanup: is unused), but gets the point across.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 604 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20140321/0059c572/attachment-0001.sig>


More information about the libvir-list mailing list