[PATCH stable] grep: don't search past the end of the searched string

Idan Kamara idankk86 at gmail.com
Tue Nov 13 09:54:54 UTC 2012


On Mon, Nov 12, 2012 at 10:18 PM, Augie Fackler <raf at durin42.com> wrote:
>
> queued, thanks

http://hg.intevation.org/mercurial/crew/rev/1e6b5faf9d4e

It needs to go on stable :(

>
> On Nov 12, 2012, at 11:31 AM, Idan Kamara <idankk86 at gmail.com> wrote:
>
> > # HG changeset patch
> > # User Idan Kamara <idankk86 at gmail.com>
> > # Date 1352741223 -7200
> > # Branch stable
> > # Node ID c9f7f4a22005002acf88d22e12178306910197cd
> > # Parent  ce2c709a8e908747376a3fda6059c1f81de321e7
> > grep: don't search past the end of the searched string
> >
> > '*' causes the resulting RE to match 0 or more repetitions of the
preceding RE:
> >
> >>>> bool(re.search('.*', ''))
> >>>> True
> >
> > This causes an infinite loop because currently we're only checking if
there was
> > a match without looking at where we are in the searched string.
> >
> > diff --git a/mercurial/commands.py b/mercurial/commands.py
> > --- a/mercurial/commands.py
> > +++ b/mercurial/commands.py
> > @@ -2935,7 +2935,7 @@
> >     def matchlines(body):
> >         begin = 0
> >         linenum = 0
> > -        while True:
> > +        while True and begin < len(body):
> >             match = regexp.search(body, begin)
> >             if not match:
> >                 break
> > diff --git a/tests/test-grep.t b/tests/test-grep.t
> > --- a/tests/test-grep.t
> > +++ b/tests/test-grep.t
> > @@ -23,6 +23,10 @@
> >
> > simple
> >
> > +  $ hg grep '.*'
> > +  port:4:export
> > +  port:4:vaportight
> > +  port:4:import/export
> >   $ hg grep port port
> >   port:4:export
> >   port:4:vaportight
> > _______________________________________________
> > Mercurial-devel mailing list
> > Mercurial-devel at selenic.com
> > http://selenic.com/mailman/listinfo/mercurial-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mercurial-scm.org/pipermail/mercurial-devel/attachments/20121113/c10b6245/attachment-0002.html>


More information about the Mercurial-devel mailing list