summaryrefslogtreecommitdiff
path: root/portato/backend
diff options
context:
space:
mode:
Diffstat (limited to 'portato/backend')
-rw-r--r--portato/backend/portage/sets.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/portato/backend/portage/sets.py b/portato/backend/portage/sets.py
index dd8257d..234047b 100644
--- a/portato/backend/portage/sets.py
+++ b/portato/backend/portage/sets.py
@@ -28,7 +28,7 @@ class Set(object):
def find (self, key, masked = False, with_version = True, only_cpv = False):
if key is None: key = ""
- is_regexp = key == "" or ("*" in key and key[0] not in ("*","=","<",">","~","!"))
+ is_regexp = key == "" or ("*" in key[1:] and key[0] not in ("=","<",">","~","!"))
try:
t = self.get_pkgs(key, is_regexp, masked, with_version, only_cpv)
@@ -99,9 +99,12 @@ class InstalledSet (Set):
if key:
t = filter(lambda x: re.search(key, x, re.I), t)
- return set(t)
else:
- return set(system.settings.vartree.dbapi.match(key))
+ t = system.settings.vartree.dbapi.match(key)
+ if not with_version:
+ t = itt.imap(portage.dep.dep_getkey, t)
+
+ return set(t)
class TreeSet (Set):
@@ -115,11 +118,16 @@ class TreeSet (Set):
if key:
t = filter(lambda x: re.search(key, x, re.I), t)
+ return set(t)
+
elif masked:
t = system.settings.porttree.dbapi.xmatch("match-all", key)
else:
t = system.settings.porttree.dbapi.match(key)
+ if not with_version:
+ t = itt.imap(portage.dep.dep_getkey, t)
+
return set(t)
class AllSet (Set):