On 12/30/2016 01:43 PM, Göktürk Yüksek wrote:
> When the email address of a maintainer contains unescaped
> regex-special characters (such as '+'), the maintainer-email match may
> return undesirable results.
> 
> Add a command line option '--no-regex' to use re.escape() with list
> comprehension on maintainer emails when constructing the matcher
> regex. This way, an exact string match can be made rather than a regex
> match.
> ---
>  bin/portageq | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/bin/portageq b/bin/portageq
> index d645635..63867d3 100755
> --- a/bin/portageq
> +++ b/bin/portageq
> @@ -1082,7 +1082,10 @@ def pquery(parser, opts, args):
>               maintainer_emails = []
>               for x in opts.maintainer_email:
>                       maintainer_emails.extend(x.split(","))
> -             xml_matchers.append(MaintainerEmailMatcher(maintainer_emails))
> +             if opts.no_regex: # Escape regex-special characters for an 
> exact match
> +                     
> xml_matchers.append(MaintainerEmailMatcher([re.escape(m) for m in 
> maintainer_emails]))
> +             else:
> +                     
> xml_matchers.append(MaintainerEmailMatcher(maintainer_emails))
>       if opts.orphaned:
>               xml_matchers.append(match_orphaned)
>  
> @@ -1240,6 +1243,11 @@ def add_pquery_arguments(parser):
>                                       "help": "comma-separated list of 
> maintainer email regexes to search for"
>                               },
>                               {
> +                                     "longopt": "--no-regex",
> +                                     "action": "store_true",
> +                                     "help": "Use exact matching instead of 
> regex matching for --maintainer-email"
> +                             },
> +                             {
>                                       "longopt": "--orphaned",
>                                       "action": "store_true",
>                                       "help": "match only orphaned 
> (maintainer-needed) packages"
> 

Thanks, pushed:

https://gitweb.gentoo.org/proj/portage.git/commit/?id=aa57d60d9c77a46f542475dcf448c83af40e73e1

-- 
Thanks,
Zac

Reply via email to