Make the =* operator more robust
authorMarius Mauch <genone@gentoo.org>
Wed, 10 Jan 2007 08:55:31 +0000 (08:55 -0000)
committerMarius Mauch <genone@gentoo.org>
Wed, 10 Jan 2007 08:55:31 +0000 (08:55 -0000)
svn path=/main/trunk/; revision=5514

pym/portage_dep.py

index 0cb49691db886792126ce5123ee0f12003e2cfb7..a528f70262cc0e9375b71f68637b790f32087e74 100644 (file)
@@ -583,10 +583,15 @@ def match_from_list(mydep, candidate_list):
                mylist = [cpv for cpv in candidate_list if cpvequal(cpv, mycpv)]
 
        elif operator == "=*": # glob match
-               # The old verion ignored _tag suffixes... This one doesn't.
                for x in candidate_list:
-                       if cpvequal(x[0:len(mycpv)], mycpv):
+                       xcpv = x[:min(len(x), len(mycpv))]
+                       if xcpv == mycpv:
                                mylist.append(x)
+                       else:
+                               while not isspecific(xcpv):
+                                       xcpv = xcpv[:-1]
+                               if cpvequal(xcpv, mycpv):
+                                       mylist.append(x)
 
        elif operator == "~": # version, any revision, match
                for x in candidate_list: