Mercurial > hg-stable
changeset 28630:bf35644b9f3a
templater: relax unquotestring() to fall back to bare string
This is convenient for our use case where quotes are optional except in
a map file.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sat, 26 Mar 2016 18:12:12 +0900 |
parents | d6f8a1535224 |
children | c2e4e59aaea6 |
files | mercurial/cmdutil.py mercurial/formatter.py mercurial/templater.py |
diffstat | 3 files changed, 8 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/cmdutil.py Sat Mar 26 19:01:12 2016 +0900 +++ b/mercurial/cmdutil.py Sat Mar 26 18:12:12 2016 +0900 @@ -1542,11 +1542,7 @@ if not tmpl and not style: # template are stronger than style tmpl = ui.config('ui', 'logtemplate') if tmpl: - try: - tmpl = templater.unquotestring(tmpl) - except SyntaxError: - pass - return tmpl, None + return templater.unquotestring(tmpl), None else: style = util.expandpath(ui.config('ui', 'style', ''))
--- a/mercurial/formatter.py Sat Mar 26 19:01:12 2016 +0900 +++ b/mercurial/formatter.py Sat Mar 26 18:12:12 2016 +0900 @@ -171,11 +171,7 @@ # perhaps it's a reference to [templates] t = ui.config('templates', tmpl) if t: - try: - tmpl = templater.unquotestring(t) - except SyntaxError: - tmpl = t - return tmpl, None + return templater.unquotestring(t), None if tmpl == 'list': ui.write(_("available styles: %s\n") % templater.stylelist())
--- a/mercurial/templater.py Sat Mar 26 19:01:12 2016 +0900 +++ b/mercurial/templater.py Sat Mar 26 18:12:12 2016 +0900 @@ -867,9 +867,9 @@ yield j def unquotestring(s): - '''unwrap quotes''' + '''unwrap quotes if any; otherwise returns unmodified string''' if len(s) < 2 or s[0] != s[-1]: - raise SyntaxError(_('unmatched quotes')) + return s return s[1:-1] class engine(object): @@ -980,10 +980,10 @@ if not val: raise error.ParseError(_('missing value'), conf.source('', key)) if val[0] in "'\"": - try: - self.cache[key] = unquotestring(val) - except SyntaxError as inst: - raise error.ParseError(inst.args[0], conf.source('', key)) + if val[0] != val[-1]: + raise error.ParseError(_('unmatched quotes'), + conf.source('', key)) + self.cache[key] = unquotestring(val) else: val = 'default', val if ':' in val[1]: