diff --git a/mercurial/util.py b/mercurial/util.py --- a/mercurial/util.py +++ b/mercurial/util.py @@ -262,7 +262,7 @@ def globre(pat, head='^', tail='$'): "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 @@ def globre(pat, head='^', tail='$'): 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 == '\\': diff --git a/tests/test-walk b/tests/test-walk --- a/tests/test-walk +++ b/tests/test-walk @@ -58,6 +58,7 @@ debugwalk .hg debugwalk ../.hg chdir .. debugwalk -Ibeans +debugwalk -I '{*,{b,m}*/*}k' debugwalk 'glob:mammals/../beans/b*' debugwalk '-X*/Procyonidae' mammals debugwalk path:mammals diff --git a/tests/test-walk.out b/tests/test-walk.out --- a/tests/test-walk.out +++ b/tests/test-walk.out @@ -174,6 +174,11 @@ f beans/navy beans/navy 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