Permit glob patterns to use nested curly braces.
--- 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