diff -r bd4bcfa48c9e -r 7298da81f5a9 mercurial/templater.py --- a/mercurial/templater.py Fri Jun 05 12:57:21 2015 -0700 +++ b/mercurial/templater.py Mon Jun 08 18:14:22 2015 +0900 @@ -326,12 +326,13 @@ yield dictarg.get(key) def _evalifliteral(arg, context, mapping): - t = stringify(arg[0](context, mapping, arg[1])) - if arg[0] == runstring or arg[0] == runrawstring: + # get back to token tag to reinterpret string as template + strtoken = {runstring: 'string', runrawstring: 'rawstring'}.get(arg[0]) + if strtoken: yield runtemplate(context, mapping, - compiletemplate(t, context, strtoken='rawstring')) + compiletemplate(arg[1], context, strtoken)) else: - yield t + yield stringify(arg[0](context, mapping, arg[1])) def if_(context, mapping, args): """:if(expr, then[, else]): Conditionally execute based on the result of