Mercurial > hg-stable
changeset 28546:1987ed32efca
templater: relax type of mapped template
Now compiled template fragments are packed into a generic type, (func, data),
a string can be a valid template. This change allows us to unwrap a trivial
string node. See the next patch for details.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sun, 14 Feb 2016 15:42:49 +0900 |
parents | 1d461ee26e1b |
children | 73d01cba5810 |
files | mercurial/templater.py tests/test-command-template.t |
diffstat | 2 files changed, 3 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/templater.py Sat Feb 13 23:54:24 2016 +0900 +++ b/mercurial/templater.py Sun Feb 14 15:42:49 2016 +0900 @@ -210,7 +210,7 @@ def gettemplate(exp, context): """Compile given template tree or load named template from map file; returns (func, data) pair""" - if exp[0] == 'template': + if exp[0] in ('template', 'string'): return compileexp(exp, context, methods) if exp[0] == 'symbol': # unlike runsymbol(), here 'symbol' is always taken as template name
--- a/tests/test-command-template.t Sat Feb 13 23:54:24 2016 +0900 +++ b/tests/test-command-template.t Sun Feb 14 15:42:49 2016 +0900 @@ -2900,12 +2900,8 @@ template: 0 $ hg log -Ra -r0 -T '{r"rawstring: {rev}"}\n' rawstring: {rev} - -because map operation requires template, raw string can't be used - - $ hg log -Ra -r0 -T '{files % r"rawstring"}\n' - hg: parse error: expected template specifier - [255] + $ hg log -Ra -r0 -T '{files % r"rawstring: {file}"}\n' + rawstring: {file} Test string escaping: