summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pym/portage/dep/__init__.py38
1 files changed, 31 insertions, 7 deletions
diff --git a/pym/portage/dep/__init__.py b/pym/portage/dep/__init__.py
index 557c92b42..c722e4802 100644
--- a/pym/portage/dep/__init__.py
+++ b/pym/portage/dep/__init__.py
@@ -1428,8 +1428,14 @@ class Atom(_unicode):
def with_repo(self, repo):
atom = remove_slot(self)
+ if self.slot is not None or self.slot_abi_op is not None:
+ atom += _slot_separator
if self.slot is not None:
- atom += _slot_separator + self.slot
+ atom += self.slot
+ if self.slot_abi is not None:
+ atom += "/%s" % self.slot_abi
+ if self.slot_abi_op is not None:
+ atom += self.slot_abi_op
atom += _repo_separator + repo
if self.use is not None:
atom += _unicode(self.use)
@@ -1489,8 +1495,14 @@ class Atom(_unicode):
if not (self.use and self.use.conditional):
return self
atom = remove_slot(self)
- if self.slot:
- atom += ":%s" % self.slot
+ if self.slot is not None or self.slot_abi_op is not None:
+ atom += _slot_separator
+ if self.slot is not None:
+ atom += self.slot
+ if self.slot_abi is not None:
+ atom += "/%s" % self.slot_abi
+ if self.slot_abi_op is not None:
+ atom += self.slot_abi_op
use_dep = self.use.evaluate_conditionals(use)
atom += _unicode(use_dep)
return Atom(atom, unevaluated_atom=self, allow_repo=(self.repo is not None), _use=use_dep)
@@ -1511,8 +1523,14 @@ class Atom(_unicode):
if not self.use:
return self
atom = remove_slot(self)
- if self.slot:
- atom += ":%s" % self.slot
+ if self.slot is not None or self.slot_abi_op is not None:
+ atom += _slot_separator
+ if self.slot is not None:
+ atom += self.slot
+ if self.slot_abi is not None:
+ atom += "/%s" % self.slot_abi
+ if self.slot_abi_op is not None:
+ atom += self.slot_abi_op
use_dep = self.use.violated_conditionals(other_use, is_valid_flag, parent_use)
atom += _unicode(use_dep)
return Atom(atom, unevaluated_atom=self, allow_repo=(self.repo is not None), _use=use_dep)
@@ -1521,8 +1539,14 @@ class Atom(_unicode):
if not (self.use and self.use.conditional):
return self
atom = remove_slot(self)
- if self.slot:
- atom += ":%s" % self.slot
+ if self.slot is not None or self.slot_abi_op is not None:
+ atom += _slot_separator
+ if self.slot is not None:
+ atom += self.slot
+ if self.slot_abi is not None:
+ atom += "/%s" % self.slot_abi
+ if self.slot_abi_op is not None:
+ atom += self.slot_abi_op
use_dep = self.use._eval_qa_conditionals(use_mask, use_force)
atom += _unicode(use_dep)
return Atom(atom, unevaluated_atom=self, allow_repo=(self.repo is not None), _use=use_dep)