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.
--- 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