mercurial/templater.py
branchstable
changeset 25471 7298da81f5a9
parent 24949 890845af1ac2
child 25490 ad14fb602e5e
child 25562 9452112c8eb0
--- 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