ekeyword: Fix stabilization with "all", bug 304133#c11.
authoridl0r <idl0r@gentoo.org>
Sat, 3 Jul 2010 08:56:48 +0000 (08:56 -0000)
committeridl0r <idl0r@gentoo.org>
Sat, 3 Jul 2010 08:56:48 +0000 (08:56 -0000)
svn path=/trunk/gentoolkit-dev/; revision=792

ChangeLog
src/ekeyword/ekeyword

index cea0ce49fdb54dc089bd97ce947019ccef55191d..6263afd8c74894f07fc9587c09b297f0936a7f95 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+2010-07-03: Christian Ruppert <idl0r@gentoo.org>
+       * ekeyword: Fix stabilization with "all", bug 304133#c11.
+
 2010-07-02: Christian Ruppert <idl0r@gentoo.org>
        * imlate: Don't ignore package names without category.
        * ekeyword: Show "diff -U 0" to cover all changes.
index 293f0cf97b50fbdfc918ec00fda7452fb48e2c24..95289116d82e261d14af96210d8cf08ca8bd0f1d 100755 (executable)
@@ -150,13 +150,22 @@ for my $f (@ARGV) {
 
                                                # Don't add stable keywords for != stable architectures
                                                if(length($leader) eq 0) {
+                                                       my @new;
                                                        foreach my $tmp (split(/\s/, $quoted)) {
-                                                               my (undef, $_arch, undef) = ($tmp =~ m/$kw_re/o);
+                                                               my ($_leader, $_arch, undef) = ($tmp =~ m/$kw_re/o);
+                                                               $_leader = "" if !defined($_leader);
+                                                               $_arch = "" if !defined($_arch);
 
-                                                               if($ARCH{$_arch} and $ARCH{$_arch} eq 3) {
-                                                                       $quoted =~ s/\Q~${_arch}\E/${_arch}/;
+                                                               if($_leader eq "~" && ($ARCH{$_arch} && $ARCH{$_arch} eq 3) ) {
+                                                                       push(@new, $_arch);
+                                                                       next;
+                                                               }
+                                                               else {
+                                                                       push(@new, "${_leader}${_arch}");
+                                                                       next;
                                                                }
                                                        }
+                                                       $quoted = join(" ", @new);
                                                }
                                                else {
                                                        $quoted =~ s/(^|\s)~?(?=\w)/$1$leader/g;