From: Marius Mauch Date: Wed, 10 Jan 2007 09:40:43 +0000 (-0000) Subject: =* operator sucks X-Git-Tag: v2.1.2~115 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=4ef95138481071114b2155b92ae8886786aac29a;p=portage.git =* operator sucks svn path=/main/trunk/; revision=5516 --- diff --git a/pym/portage_dep.py b/pym/portage_dep.py index 432a7d44f..0baeab08f 100644 --- a/pym/portage_dep.py +++ b/pym/portage_dep.py @@ -584,17 +584,14 @@ def match_from_list(mydep, candidate_list): elif operator == "=*": # glob match for x in candidate_list: + # XXX: Nasty special casing for leading zeros + # Required as =* is a literal prefix match, so can't + # use vercmp + xs = catpkgsplit(x) + xcpv = xs[0]+"/"+xs[1]+"-"+xs[2].lstrip("0") xcpv = x[:min(len(x), len(mycpv))] if xcpv == mycpv: mylist.append(x) - else: - # xcpv may not be a proper cpv, but cpvequal needs it to be - # reducing it should always work, in worst case it stops at - # the first digit. Might cause a minor peformance hit though. - 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: