diff mercurial/commands.py @ 17931:35ba170c0f82 stable

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.
author Idan Kamara <idankk86@gmail.com>
date Mon, 12 Nov 2012 19:27:03 +0200
parents ba0a1701c81a
children c8ffde272653 407209261f63
line wrap: on
line diff
--- a/mercurial/commands.py	Tue Nov 13 08:41:56 2012 -0800
+++ b/mercurial/commands.py	Mon Nov 12 19:27:03 2012 +0200
@@ -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