diff options
Diffstat (limited to 'pym/portage_dep.py')
-rw-r--r-- | pym/portage_dep.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/pym/portage_dep.py b/pym/portage_dep.py index 4fe95d9b3..bad51b646 100644 --- a/pym/portage_dep.py +++ b/pym/portage_dep.py @@ -369,6 +369,7 @@ def remove_slot(mydep): mydep = mydep[:colon] return mydep +_valid_category = re.compile("^\w[\w-]*") _invalid_atom_chars_regexp = re.compile("[()|?@\[\]]") def isvalidatom(atom, allow_blockers=False): @@ -393,10 +394,13 @@ def isvalidatom(atom, allow_blockers=False): return 0 if allow_blockers and atom.startswith("!"): atom = atom[1:] - try: - mycpv_cps = catpkgsplit(dep_getcpv(atom)) - except InvalidData: - return 0 + cpv = dep_getcpv(atom) + if cpv: + if _valid_category.match(catsplit(cpv)[0]) is None: + return 0 + mycpv_cps = catpkgsplit(cpv) + else: + mycpv_cps = None operator = get_operator(atom) if operator: if operator[0] in "<>" and remove_slot(atom).endswith("*"): |