aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-11-14 11:54:59 -0800
committerZac Medico <zmedico@gentoo.org>2012-11-14 11:54:59 -0800
commit20c14c193dad7f920a4b32ef2007fb9fac4f3b6a (patch)
tree1201130fff9886998d57ac28768785161f115c9b
parenttest_update_dbentry: test bug #367215 (diff)
downloadportage-20c14c193dad7f920a4b32ef2007fb9fac4f3b6a.tar.gz
portage-20c14c193dad7f920a4b32ef2007fb9fac4f3b6a.tar.bz2
portage-20c14c193dad7f920a4b32ef2007fb9fac4f3b6a.zip
Atom.without_use: preserve blocker prefix
-rw-r--r--pym/portage/dep/__init__.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/pym/portage/dep/__init__.py b/pym/portage/dep/__init__.py
index 55181d71e..60d1cc96a 100644
--- a/pym/portage/dep/__init__.py
+++ b/pym/portage/dep/__init__.py
@@ -1229,11 +1229,14 @@ class Atom(_unicode):
if allow_repo is None:
allow_repo = True
+ blocker_prefix = ""
if "!" == s[:1]:
blocker = self._blocker(forbid_overlap=("!" == s[1:2]))
if blocker.overlap.forbid:
+ blocker_prefix = s[:2]
s = s[2:]
else:
+ blocker_prefix = s[:1]
s = s[1:]
else:
blocker = False
@@ -1346,15 +1349,18 @@ class Atom(_unicode):
use = _use
else:
use = _use_dep(use_str[1:-1].split(","), eapi_attrs)
- without_use = Atom(m.group('without_use'), allow_repo=allow_repo)
+ without_use = Atom(blocker_prefix + m.group('without_use'),
+ allow_repo=allow_repo)
else:
use = None
if unevaluated_atom is not None and \
unevaluated_atom.use is not None:
# unevaluated_atom.use is used for IUSE checks when matching
# packages, so it must not propagate to without_use
- without_use = Atom(s, allow_wildcard=allow_wildcard,
- allow_repo=allow_repo)
+ without_use = Atom(_unicode(self),
+ allow_wildcard=allow_wildcard,
+ allow_repo=allow_repo,
+ eapi=eapi)
else:
without_use = self