Permit glob patterns to use nested curly braces.
authorJesse Glick <jesse.glick@sun.com>
Fri, 25 Jan 2008 15:54:25 -0500
changeset 5949 48d01b1e315f
parent 5942 b75105de8573
child 5950 4b8d568c65dd
Permit glob patterns to use nested curly braces.
mercurial/util.py
tests/test-walk
tests/test-walk.out
--- a/mercurial/util.py	Sat Jan 26 00:14:20 2008 +0100
+++ b/mercurial/util.py	Fri Jan 25 15:54:25 2008 -0500
@@ -262,7 +262,7 @@
     "convert a glob pattern into a regexp"
     i, n = 0, len(pat)
     res = ''
-    group = False
+    group = 0
     def peek(): return i < n and pat[i]
     while i < n:
         c = pat[i]
@@ -292,11 +292,11 @@
                     stuff = '\\' + stuff
                 res = '%s[%s]' % (res, stuff)
         elif c == '{':
-            group = True
+            group += 1
             res += '(?:'
         elif c == '}' and group:
             res += ')'
-            group = False
+            group -= 1
         elif c == ',' and group:
             res += '|'
         elif c == '\\':
--- a/tests/test-walk	Sat Jan 26 00:14:20 2008 +0100
+++ b/tests/test-walk	Fri Jan 25 15:54:25 2008 -0500
@@ -58,6 +58,7 @@
 debugwalk ../.hg
 chdir ..
 debugwalk -Ibeans
+debugwalk -I '{*,{b,m}*/*}k'
 debugwalk 'glob:mammals/../beans/b*'
 debugwalk '-X*/Procyonidae' mammals
 debugwalk path:mammals
--- a/tests/test-walk.out	Sat Jan 26 00:14:20 2008 +0100
+++ b/tests/test-walk.out	Fri Jan 25 15:54:25 2008 -0500
@@ -174,6 +174,11 @@
 f  beans/pinto     beans/pinto
 f  beans/turtle    beans/turtle
 
+hg debugwalk -I {*,{b,m}*/*}k
+f  beans/black    beans/black
+f  fenugreek      fenugreek
+f  mammals/skunk  mammals/skunk
+
 hg debugwalk glob:mammals/../beans/b*
 f  beans/black     beans/black
 f  beans/borlotti  beans/borlotti