[libvirt] [PATCHv2] spec: indent %if to make it easier to see conditions

Eric Blake eblake at redhat.com
Mon Jan 21 17:36:55 UTC 2013


On 01/21/2013 04:58 AM, Daniel P. Berrange wrote:
> On Fri, Jan 18, 2013 at 09:58:22AM -0700, Eric Blake wrote:
>> Nested conditionals are hard to read if they are not indented.
>> We can't add arbitrary whitespace to everything in spec files,
>> but we CAN add spaces before %if and %define.  Use this trick,
>> plus a fancy sed script that rewrites a spec file into a C
>> file, so we can use cppi to keep our spec file nice.
> 
> 
> What would you say to making the indent level either 2 or 4
> space. With only one space, I still find it rather hard to
> visually match up vertical alignment in our header files.
> 4 space indent would match our source code indent, but if
> you didn't want to go that far, 2 would be acceptable
> compromise.

My use of cppi limits us to 1 space indentation in the C file that it
checks; but since I'm already processing things through a sed script to
get to a C file, I can rather easily alter the number of spaces that
cppi sees :)

Here's the diff I squashed in to convert the syntax check to 4-space
indent; the one-time actual diff of the files themselves was trivial
(done with:
 sed -i 's/^\( *\)%/\1\1\1\1%/' *.spec.in
and does not show up to 'git diff -b' in relation to the posted v2), so
I've gone ahead and pushed this patch (given that you acked the concept
in v1 and that I resolved your concern about indentation level).

diff --git i/cfg.mk w/cfg.mk
index 7c8ba2e..d9ab2da 100644
--- i/cfg.mk
+++ w/cfg.mk
@@ -630,7 +630,7 @@ sc_spec_indentation:
 	  for f in $$($(VC_LIST_EXCEPT) | grep '\.spec\.in$$'); do	\
 	    sed -e 's|#|// #|; s|%ifn*\(arch\)* |#if a // |'		\
 		-e 's/%\(else\|endif\|define\)/#\1/'			\
-		-e 's/^\( *\)#/#\1/; s|^\([^#/]\)|// \1|' $$f 		\
+		-e 's/^\( *\)\1\1\1#/#\1/; s|^\( *[^#/]\)|// \1|' $$f	\
 	    | cppi -a -c 2>&1 | sed "s|standard input|$$f|";		\
 	  done | { if grep . >&2; then false; else :; fi; }		\
 	    || { echo '$(ME): incorrect preprocessor indentation' 1>&2;	\


-- 
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: 621 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20130121/d307429a/attachment-0001.sig>


More information about the libvir-list mailing list