commit: 37453ccdfc2dad1bb21d79a596655b614264fee9
Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 25 22:44:25 2015 +0000
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Tue Apr 28 23:49:28 2015 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=37453ccd
search: fix addCP so only the specified results are displayed (bug 547736)
Since commit 4938b8a8a72e719b394a5c5b0c5030c160091d57, the search.addCP
method has not worked as intended.
Fixes: 4938b8a8a72e ("Display emerge search results incrementally (412471)")
X-Gentoo-Bug: 547736
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=547736
Acked-by: Brian Dolbec <dolsen <AT> gentoo.org>
pym/_emerge/search.py | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/pym/_emerge/search.py b/pym/_emerge/search.py
index 5a8143c..41c182d 100644
--- a/pym/_emerge/search.py
+++ b/pym/_emerge/search.py
@@ -36,6 +36,7 @@ class search(object):
self.verbose = verbose
self.searchdesc = searchdesc
self.searchkey = None
+ self._results_specified = False
# Disable the spinner since search results are displayed
# incrementally.
self.spinner = None
@@ -295,6 +296,12 @@ class search(object):
yield ("set", setname)
def addCP(self, cp):
+ """
+ Add a specific cp to the search results. This modifies the
+ behavior of the output method, so that it only displays specific
+ packages added via this method.
+ """
+ self._results_specified = True
if not self._xmatch("match-all", cp):
return
self.matches["pkg"].append(cp)
@@ -315,11 +322,12 @@ class search(object):
metadata_keys.update(["DESCRIPTION", "HOMEPAGE", "LICENSE",
"SRC_URI"])
metadata_keys = tuple(metadata_keys)
- if self.searchkey is None:
+ if self._results_specified:
# Handle results added via addCP
addCP_matches = []
- for mytype, match in self.matches.items():
- addCP_matches.append(mytype, match)
+ for mytype, matches in self.matches.items():
+ for match in matches:
+ addCP_matches.append((mytype, match))
iterator = iter(addCP_matches)
else: