Mercurial > public > mercurial-scm > hg
comparison mercurial/util.py @ 5202:1108c952cca1
Merge with -stable
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sun, 19 Aug 2007 14:04:26 -0500 |
parents | c7e8fe11f34a 0f6a1bdf89fb |
children | 335696e2a58f |
comparison
equal
deleted
inserted
replaced
5200:c7e8fe11f34a | 5202:1108c952cca1 |
---|---|
475 if not pats: | 475 if not pats: |
476 return | 476 return |
477 try: | 477 try: |
478 pat = '(?:%s)' % '|'.join([regex(k, p, tail) for (k, p) in pats]) | 478 pat = '(?:%s)' % '|'.join([regex(k, p, tail) for (k, p) in pats]) |
479 return re.compile(pat).match | 479 return re.compile(pat).match |
480 except OverflowError: | |
481 # We're using a Python with a tiny regex engine and we | |
482 # made it explode, so we'll divide the pattern list in two | |
483 # until it works | |
484 l = len(pats) | |
485 if l < 2: | |
486 raise | |
487 a, b = matchfn(pats[:l/2], tail), matchfn(pats[l/2:], tail) | |
488 return lambda s: a(s) or b(s) | |
480 except re.error: | 489 except re.error: |
481 for k, p in pats: | 490 for k, p in pats: |
482 try: | 491 try: |
483 re.compile('(?:%s)' % regex(k, p, tail)) | 492 re.compile('(?:%s)' % regex(k, p, tail)) |
484 except re.error: | 493 except re.error: |