mercurial/util.py
changeset 4371 d7ad1e42a368
parent 4338 8b4d4f84b739
child 4378 e33ad7cea15f
--- a/mercurial/util.py	Tue Apr 24 10:47:41 2007 -0700
+++ b/mercurial/util.py	Tue Apr 24 10:53:25 2007 -0700
@@ -469,22 +469,20 @@
         """build a matching function from a set of patterns"""
         if not pats:
             return
-        matches = []
-        for k, p in pats:
-            try:
-                pat = '(?:%s)' % regex(k, p, tail)
-                matches.append(re.compile(pat).match)
-            except re.error:
-                if src: raise Abort("%s: invalid pattern (%s): %s" % (src, k, p))
-                else: raise Abort("invalid pattern (%s): %s" % (k, p))
-
-        def buildfn(text):
-            for m in matches:
-                r = m(text)
-                if r:
-                    return r
-
-        return buildfn
+        try:
+            pat = '(?:%s)' % '|'.join([regex(k, p, tail) for (k, p) in pats])
+            return re.compile(pat).match
+        except re.error:
+            for k, p in pats:
+                try:
+                    re.compile('(?:%s)' % regex(k, p, tail))
+                except re.error:
+                    if src:
+                        raise Abort("%s: invalid pattern (%s): %s" %
+                                    (src, k, p))
+                    else:
+                        raise Abort("invalid pattern (%s): %s" % (k, p))
+            raise Abort("invalid pattern")
 
     def globprefix(pat):
         '''return the non-glob prefix of a path, e.g. foo/* -> foo'''