On Sat, 25 Apr 2015 15:47:20 -0700
Zac Medico <zmed...@gentoo.org> wrote:

> 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
> ---
>  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:

Looks good

-- 
Brian Dolbec <dolsen>


Reply via email to