Mercurial > hg
changeset 8583:19d1b2aec562
match: optimize escaping in _globre
- localize re.escape
- fastpath escaping of non-special characters
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sun, 24 May 2009 02:56:14 -0500 |
parents | a4c199e12b5a |
children | 0f06e72abfdc |
files | mercurial/match.py |
diffstat | 1 files changed, 7 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/match.py Sun May 24 02:56:14 2009 -0500 +++ b/mercurial/match.py Sun May 24 02:56:14 2009 -0500 @@ -125,11 +125,14 @@ i, n = 0, len(pat) res = '' group = 0 + escape = re.escape def peek(): return i < n and pat[i] while i < n: c = pat[i] i = i+1 - if c == '*': + if c not in '*?[{},\\': + res += escape(c) + elif c == '*': if peek() == '*': i += 1 res += '.*' @@ -165,11 +168,11 @@ p = peek() if p: i += 1 - res += re.escape(p) + res += escape(p) else: - res += re.escape(c) + res += escape(c) else: - res += re.escape(c) + res += escape(c) return res def _regex(kind, name, tail):