prompt: kill matchflags
authorKirill Smelkov <kirr@mns.spb.ru>
Fri, 28 Dec 2007 00:03:55 -0600
changeset 5751 bc475d1f74ca
parent 5750 206b44764340
child 5756 6183df642f95
prompt: kill matchflags Python already lets one to embed RE flags directly in a regex, which is a much nicer way to do things: (?iLmsux) (One or more letters from the set "i", "L", "m", "s", "u", "x".) ... matchflags was introduced in 67afecb8d6cc, and the record extension is the only user. I've killed matchflag, and adjusted record code appropriately.
hgext/record.py
mercurial/ui.py
--- a/hgext/record.py	Thu Dec 27 19:23:22 2007 +0100
+++ b/hgext/record.py	Fri Dec 28 00:03:55 2007 -0600
@@ -247,8 +247,8 @@
         if resp_file[0] is not None:
             return resp_file[0]
         while True:
-            r = (ui.prompt(query + _(' [Ynsfdaq?] '), '[Ynsfdaq?]?$',
-                           matchflags=re.I) or 'y').lower()
+            r = (ui.prompt(query + _(' [Ynsfdaq?] '), '(?i)[Ynsfdaq?]?$')
+                 or 'y').lower()
             if r == '?':
                 c = record.__doc__.find('y - record this change')
                 for l in record.__doc__[c:].splitlines():
--- a/mercurial/ui.py	Thu Dec 27 19:23:22 2007 +0100
+++ b/mercurial/ui.py	Fri Dec 28 00:03:55 2007 -0600
@@ -410,14 +410,18 @@
             line = line[:-1]
         return line
 
-    def prompt(self, msg, pat=None, default="y", matchflags=0):
+    def prompt(self, msg, pat=None, default="y"):
+        """Prompt user with msg, read response, and ensure it matches pat
+
+        If not interactive -- the default is returned
+        """
         if not self.interactive: return default
         while True:
             try:
                 r = self._readline(msg + ' ')
                 if not r:
                     return default
-                if not pat or re.match(pat, r, matchflags):
+                if not pat or re.match(pat, r):
                     return r
                 else:
                     self.write(_("unrecognized response\n"))