--- pym/gentoolkit/package.py.orig 2006-02-22 18:57:45.000000000 +0100 +++ pym/gentoolkit/package.py 2006-02-22 18:57:59.000000000 +0100 @@ -86,7 +86,7 @@ tok = deps[i] if tok == ')': return r,i - if tok[-1] == "?" or tok[0] == "!": + if tok[-1] == "?": tok = tok.replace("?","") sr,l = self._parse_deps(deps[i+2:],curuse=curuse+[tok],level=level+1) r += sr @@ -97,6 +97,16 @@ r += sr i += l + 3 continue + # conjonction, like in "|| ( ( foo bar ) baz )" => recurse + if tok == "(": + sr,l = self._parse_deps(deps[i+1:],curuse,level=level+1) + r += sr + i += l + 2 + continue + # pkg block "!foo/bar" => ignore it + if tok[0] == "!": + i += 1 + continue # pick out comparator, if any cmp = "" for c in comparators: