match: add optional warn argument
authorDurham Goode <durham@fb.com>
Mon, 18 May 2015 16:27:56 -0700
changeset 25214 08703b10c3ae
parent 25213 08a8e9da0ae7
child 25215 4040e06e9b99
match: add optional warn argument Occasionally the matcher will want to print warning messages instead of throwing exceptions (like if it encounters a bad syntax parameter when parsing files). Let's add an optional warn argument that can provide this. The next patch will actually use this argument.
mercurial/match.py
--- a/mercurial/match.py	Sat May 16 15:51:03 2015 -0700
+++ b/mercurial/match.py	Mon May 18 16:27:56 2015 -0700
@@ -54,7 +54,7 @@
 class match(object):
     def __init__(self, root, cwd, patterns, include=[], exclude=[],
                  default='glob', exact=False, auditor=None, ctx=None,
-                 listsubrepos=False):
+                 listsubrepos=False, warn=None):
         """build an object to match a set of file patterns
 
         arguments:
@@ -65,6 +65,7 @@
         exclude - patterns to exclude (even if they are included)
         default - if a pattern in patterns has no explicit type, assume this one
         exact - patterns are actually filenames (include/exclude still apply)
+        warn - optional function used for printing warnings
 
         a pattern is one of:
         'glob:<glob>' - a glob relative to cwd
@@ -83,6 +84,7 @@
         self._anypats = bool(include or exclude)
         self._always = False
         self._pathrestricted = bool(include or exclude or patterns)
+        self._warn = warn
 
         matchfns = []
         if include:
@@ -536,7 +538,9 @@
             try:
                 syntax = syntaxes[s]
             except KeyError:
-                warn(_("%s: ignoring invalid syntax '%s'\n") % (filepath, s))
+                if warn:
+                    warn(_("%s: ignoring invalid syntax '%s'\n") %
+                         (filepath, s))
             continue
 
         linesyntax = syntax