mercurial/match.py
changeset 8572 dd46948a07fa
parent 8571 9f12e1a27a1b
child 8573 62c996d543e6
equal deleted inserted replaced
8571:9f12e1a27a1b 8572:dd46948a07fa
   173             return '.*' + name
   173             return '.*' + name
   174         return _globre(name, '', tail)
   174         return _globre(name, '', tail)
   175 
   175 
   176     def matchfn(pats, tail):
   176     def matchfn(pats, tail):
   177         """build a matching function from a set of patterns"""
   177         """build a matching function from a set of patterns"""
   178         if not pats:
       
   179             return
       
   180         try:
   178         try:
   181             pat = '(?:%s)' % '|'.join([regex(k, p, tail) for (k, p) in pats])
   179             pat = '(?:%s)' % '|'.join([regex(k, p, tail) for (k, p) in pats])
   182             if len(pat) > 20000:
   180             if len(pat) > 20000:
   183                 raise OverflowError()
   181                 raise OverflowError()
   184             return re.compile(pat).match
   182             return re.compile(pat).match
   231                 roots.append('.')
   229                 roots.append('.')
   232         return roots, pats, anypats
   230         return roots, pats, anypats
   233 
   231 
   234     roots, pats, anypats = normalizepats(names, dflt_pat)
   232     roots, pats, anypats = normalizepats(names, dflt_pat)
   235 
   233 
   236     patmatch = matchfn(pats, '$')
   234     if names:
       
   235         patmatch = matchfn(pats, '$')
   237     if inc:
   236     if inc:
   238         dummy, inckinds, dummy = normalizepats(inc, 'glob')
   237         dummy, inckinds, dummy = normalizepats(inc, 'glob')
   239         incmatch = matchfn(inckinds, '(?:/|$)')
   238         incmatch = matchfn(inckinds, '(?:/|$)')
   240     if exc:
   239     if exc:
   241         dummy, exckinds, dummy = normalizepats(exc, 'glob')
   240         dummy, exckinds, dummy = normalizepats(exc, 'glob')