revset: factor out composing error message for ParseError to reuse
authorFUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Sat, 10 Jan 2015 23:18:11 +0900
changeset 23843 c4d0c3d05721
parent 23842 91dbb98b3513
child 23844 ddf2172e901d
revset: factor out composing error message for ParseError to reuse This patch defines the composing function not in "ParseError" class but in "revset" module, because: - "_()" shouldn't be used in "ParseError", to avoid adding "from i18n import _" i18n" to "error" module - generalizing message composition of"ParseError" for all code paths other than revset isn't the purpose of this patch we should also take care of showing "unexpected leading whitespace" for some code paths, to generalize widely.
mercurial/revset.py
--- a/mercurial/revset.py	Sat Jan 10 23:18:11 2015 +0900
+++ b/mercurial/revset.py	Sat Jan 10 23:18:11 2015 +0900
@@ -239,6 +239,14 @@
         pos += 1
     yield ('end', None, pos)
 
+def parseerrordetail(inst):
+    """Compose error message from specified ParseError object
+    """
+    if len(inst.args) > 1:
+        return _('at %s: %s') % (inst.args[1], inst.args[0])
+    else:
+        return inst.args[0]
+
 # helpers
 
 def getstring(x, err):
@@ -2146,10 +2154,7 @@
             # Check for placeholder injection
             _checkaliasarg(self.replacement, self.args)
         except error.ParseError, inst:
-            if len(inst.args) > 1:
-                self.error = _('at %s: %s') % (inst.args[1], inst.args[0])
-            else:
-                self.error = inst.args[0]
+            self.error = parseerrordetail(inst)
 
 def _getalias(aliases, tree):
     """If tree looks like an unexpanded alias, return it. Return None