[libvirt] [PATCH v2 20/22] bracket-spacing: Don't modify current line

Martin Kletzander mkletzan at redhat.com
Thu Nov 13 14:37:48 UTC 2014


In bracket-spacing.pl, the current $line is being modified in $data.
That, however, spoils that $data for another check.  Introduce new
$tmpdata variable that can be used for temporary modifications.  The
difference between $data and $line is that $data are as much cleaned as
possible from non-code blocks and these changes must be kept.

Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
---
 build-aux/bracket-spacing.pl | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/build-aux/bracket-spacing.pl b/build-aux/bracket-spacing.pl
index ac01a56..5fce2b7 100755
--- a/build-aux/bracket-spacing.pl
+++ b/build-aux/bracket-spacing.pl
@@ -31,6 +31,8 @@ foreach my $file (@ARGV) {

     while (defined (my $line = <FILE>)) {
         my $data = $line;
+        # For temporary modifications
+        my $tmpdata;

         # Kill any quoted , ; = or "
         $data =~ s/'[";,=]'/'X'/g;
@@ -77,12 +79,15 @@ foreach my $file (@ARGV) {
         #
         #  foo (*bar, wizz);
         #
-        while ($data =~ /(\w+)\s\((?!\*)/) {
+        # We also don't want to spoil the $data so it can be used
+        # later on.
+        $tmpdata = $data;
+        while ($tmpdata =~ /(\w+)\s\((?!\*)/) {
             my $kw = $1;

             # Allow space after keywords only
             if ($kw =~ /^(if|for|while|switch|return)$/) {
-                $data =~ s/($kw\s\()/XXX(/;
+                $tmpdata =~ s/($kw\s\()/XXX(/;
             } else {
                 print "$file:$.: $line";
                 $ret = 1;
@@ -147,9 +152,10 @@ foreach my $file (@ARGV) {

         # Require spaces around assignment '=', compounds and '=='
         # with the exception of virAssertCmpInt()
-        $data =~ s/(virAssertCmpInt\(.* ).?=,/$1op,/;
-        while ($data =~ /[^ ]\b[!<>&|\-+*\/%\^=]?=[^=]/ ||
-               $data =~ /=[^= \\\n]/) {
+        $tmpdata = $data;
+        $tmpdata =~ s/(virAssertCmpInt\(.* ).?=,/$1op,/;
+        while ($tmpdata =~ /[^ ]\b[!<>&|\-+*\/%\^=]?=[^=]/ ||
+               $tmpdata =~ /=[^= \\\n]/) {
             print "$file:$.: $line";
             $ret = 1;
             last;
-- 
2.1.3




More information about the libvir-list mailing list