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