[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH 31/31] syntax-check: Add the rule to forbid whitespace before "; "



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

Attachment: signature.asc
Description: OpenPGP digital signature


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]