
On 05/21/2013 04:01 AM, Osier Yang wrote:
Only a few cases are allowed:
1) The expression is empty for "for" loop, E.g.
for (i = 0; ; i++)
2) An empty statement
while (write(statuswrite, &status, 1) == -1 && errno == EINTR) ; /* empty */
3) ";" is inside double-quote, I.e, as part of const string. E.g.
vshPrint(ctl, "a ; b ; cd;\n");
The "for" loop in src/rpc/virnettlscontext.c is the special case, 1) applies for it, so change it together in this patch. --- build-aux/bracket-spacing.pl | 18 ++++++++++++++++++ src/rpc/virnettlscontext.c | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-)
ACK.
diff --git a/build-aux/bracket-spacing.pl b/build-aux/bracket-spacing.pl index d3a916f..0d5d2ed 100755 --- a/build-aux/bracket-spacing.pl +++ b/build-aux/bracket-spacing.pl @@ -109,6 +109,24 @@ foreach my $file (@ARGV) { $ret = 1; last; } + + # Forbid whitespace before ";". Things like below are allowed: + # + # for (i = 0; ; i++) + # + # while (write(statuswrite, &status, 1) == -1 && + # errno == EINTR) + # ; + # + # printf("%s", "a ; b\n"); + while ($data =~ /[^;\s]\s+;/) { + # Inside the double-quote + if ($data !~ /"[^"]*\s;/) {
False negative on: for (str = "foo" ; *str; str++) but I don't think we are likely to iterate over bytes of a string literal, so I'm not too worried about it. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org