mydep = dep_expand(origdep, mydb=self, settings=self.mysettings)
mykey = dep_getkey(mydep)
- myslot = dep_getslot(mydep)
if level == "list-visible":
#a list of all visible packages, not called directly (just by xmatch())
#myval = self.visible(self.cp_list(mykey))
continue
if not eapi_is_supported(metadata["EAPI"]):
continue
- if myslot and myslot != metadata["SLOT"]:
+ if mydep.slot and mydep.slot != metadata["SLOT"]:
continue
if settings.getMissingKeywords(cpv, metadata):
continue
else:
print "ERROR: xmatch doesn't handle", level, "query!"
raise KeyError
- if myslot is not None and isinstance(myval, list):
- slotmatches = []
- for cpv in myval:
- try:
- if self.aux_get(cpv, ["SLOT"])[0] == myslot:
- slotmatches.append(cpv)
- except KeyError:
- pass # ebuild masked by corruption
- myval = slotmatches
+
if self.frozen and (level not in ["match-list", "bestmatch-list"]):
self.xcache[level][mydep] = myval
if origdep and origdep != mydep: