# HG changeset patch # User FUJIWARA Katsunori # Date 2015-01-10 14:18:11 # Node ID c4d0c3d05721452e9fac4f23933736cdf9d00c3f # Parent 91dbb98b35135aaa576303203fee373b1f0559c0 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. diff --git a/mercurial/revset.py b/mercurial/revset.py --- a/mercurial/revset.py +++ b/mercurial/revset.py @@ -239,6 +239,14 @@ def tokenize(program, lookup=None, symin 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 @@ class revsetalias(object): # 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