summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/resolver
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2010-12-15 17:21:13 -0800
committerZac Medico <zmedico@gentoo.org>2010-12-15 17:21:13 -0800
commitf7cdf7b46f28c09d3da92a45d691a3070b8a3dcc (patch)
tree74d20143166fc9fa7bbedc140eea872d56d09640 /pym/_emerge/resolver
parent85f87007e2f031bee90d6130a6cc121a20ff98c0 (diff)
downloadportage-f7cdf7b46f28c09d3da92a45d691a3070b8a3dcc.tar.gz
portage-f7cdf7b46f28c09d3da92a45d691a3070b8a3dcc.tar.bz2
portage-f7cdf7b46f28c09d3da92a45d691a3070b8a3dcc.zip
highlight_violations: handle unversioned atom
A test case is included, which triggers the previously broken case.
Diffstat (limited to 'pym/_emerge/resolver')
-rw-r--r--pym/_emerge/resolver/slot_collision.py20
1 files changed, 12 insertions, 8 deletions
diff --git a/pym/_emerge/resolver/slot_collision.py b/pym/_emerge/resolver/slot_collision.py
index ba76ed068..c51b9f734 100644
--- a/pym/_emerge/resolver/slot_collision.py
+++ b/pym/_emerge/resolver/slot_collision.py
@@ -296,20 +296,24 @@ class slot_conflict_handler(object):
atom_str = str(atom)
if version:
op = atom.operator
- ver = cpv_getversion(atom.cpv)
+ ver = None
+ if atom.cp != atom.cpv:
+ ver = cpv_getversion(atom.cpv)
slot = atom.slot
if op == "=*":
op = "="
ver += "*"
- atom_str = atom_str.replace(op, colorize("BAD", op), 1)
-
- start = atom_str.rfind(ver)
- end = start + len(ver)
- atom_str = atom_str[:start] + \
- colorize("BAD", ver) + \
- atom_str[end:]
+ if op is not None:
+ atom_str = atom_str.replace(op, colorize("BAD", op), 1)
+
+ if ver is not None:
+ start = atom_str.rfind(ver)
+ end = start + len(ver)
+ atom_str = atom_str[:start] + \
+ colorize("BAD", ver) + \
+ atom_str[end:]
if slot:
atom_str = atom_str.replace(":" + slot, colorize("BAD", ":" + slot))