aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Harring <ferringb@gentoo.org>2005-07-28 23:39:12 +0000
committerBrian Harring <ferringb@gentoo.org>2005-07-28 23:39:12 +0000
commit543d971cd5d50a8e8cd78d2e6f117477e959acc2 (patch)
tree9ef12600056e40f83dd1afdf682667ca1f61bf59
parentouch. (diff)
downloadportage-cvs-543d971cd5d50a8e8cd78d2e6f117477e959acc2.tar.gz
portage-cvs-543d971cd5d50a8e8cd78d2e6f117477e959acc2.tar.bz2
portage-cvs-543d971cd5d50a8e8cd78d2e6f117477e959acc2.zip
hokay, now it works.
-rw-r--r--portage/package/atom.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/portage/package/atom.py b/portage/package/atom.py
index 5b755b7..beb8937 100644
--- a/portage/package/atom.py
+++ b/portage/package/atom.py
@@ -1,7 +1,7 @@
# Copyright: 2005 Gentoo Foundation
# Author(s): Jason Stubbs (jstubbs@gentoo.org), Brian Harring (ferringb@gentoo.org)
# License: GPL2
-# $Header: /local/data/ulm/cvs/history/var/cvsroot/gentoo-src/portage/portage/package/atom.py,v 1.4 2005/07/28 23:20:45 ferringb Exp $
+# $Header: /local/data/ulm/cvs/history/var/cvsroot/gentoo-src/portage/portage/package/atom.py,v 1.5 2005/07/28 23:39:12 ferringb Exp $
from portage.restrictions import restriction
from cpv import ver_cmp, CPV
@@ -24,7 +24,7 @@ class VersionMatch(restriction.base):
self.vals = tuple(l)
def intersect(self, other, allow_hand_off=True):
- if not isinstance(self.__class__, other):
+ if not isinstance(other, self.__class__):
if allow_hand_off:
return other.intersect(self, allow_hand_off=False)
return None
@@ -51,6 +51,8 @@ class VersionMatch(restriction.base):
# <, > ; disjoint.
return None
+ if vc < 0: vc = -1
+ else: vc = 1
# this handles a node already containing the intersection
for x in (-1, 1):
if x in self.vals and x in other.vals:
@@ -63,7 +65,11 @@ class VersionMatch(restriction.base):
needed = x * -1
if (x in self.vals and needed in other.vals) or (x in other.vals and needed in self.vals):
return AndRestrictionSet(self, other)
-
+
+ if vc == -1 and 1 in self.vals and 0 in other.vals:
+ return self.__class__("=", other.ver, rev=other.rev)
+ elif vc == 1 and -1 in other.vals and 0 in self.vals:
+ return self.__class__("=", self.ver, rev=self.rev)
# disjoint.
return None