[Yum-devel] [PATCH 2/3] Treat square brackets same way in re_full_search_needed and refineSearchPattern as in re_glob.
Ville Skyttä
ville.skytta at iki.fi
Wed Oct 28 19:49:23 UTC 2009
On Wednesday 28 October 2009, James Antill wrote:
> On Wed, 2009-10-28 at 21:10 +0200, Ville Skyttä wrote:
> > ---
> > yum/misc.py | 4 ++--
> > 1 files changed, 2 insertions(+), 2 deletions(-)
>
> ACK but...
>
> > diff --git a/yum/misc.py b/yum/misc.py
> > index 78f296c..26bbaba 100644
> > --- a/yum/misc.py
> > +++ b/yum/misc.py
> > @@ -115,7 +115,7 @@ def re_full_search_needed(s):
> > """ Tests if a string needs a full nevra match, instead of just
> > name. """ global _re_compiled_full_match
> > if _re_compiled_full_match is None:
> > - one = re.compile('.*[-.*?[\]].*.$') # Any wildcard or -
> > separator + one = re.compile('.*([-.*?]|\[.+\]).*.$') # Any
> > wildcard, "." or "-"
>
> Does anyone know what the <.*.$> is for? I'm wondering if it's just
> supposed to be .* ... and thus. if .search() would be faster.
I _think_ the final "." before the "$" does have some value, so instead of
replacing it with ".*" it could be replaced with ".". If a search string has
only one of these matching chars/constructs and it is at end of the string
(think "foo*", "foo-", "foo."), we know that it would match against name only
or it won't match any N-V-R.A or a N.A (the "foo-" and "foo." cases), so
there's no need to trigger full searches for those cases. Requiring something
after them (the ".") AFAICT accomplishes that.
> Also please keep the comments aligned (hey, be happy you don't have to
> live with me ;)
I have one more patch coming up that addresses all of the above - in this one
I wanted to keep changes in the bare minimum.
More information about the Yum-devel
mailing list