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

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

 



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

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]