template: call runtemplate on the src argument to sub
authorSean Farley <sean.michael.farley@gmail.com>
Wed, 10 Apr 2013 19:27:49 -0500
changeset 19058 d8d548d868d3
parent 19057 3d265e0822d3
child 19059 53eadcb814fd
template: call runtemplate on the src argument to sub This allows using a template keyword on calls to the sub function and brings the function inline with most other semantics of the other template functions.
mercurial/templater.py
tests/test-command-template.t
--- a/mercurial/templater.py	Wed Apr 17 03:41:34 2013 +0200
+++ b/mercurial/templater.py	Wed Apr 10 19:27:49 2013 -0500
@@ -251,6 +251,8 @@
     pat = stringify(args[0][0](context, mapping, args[0][1]))
     rpl = stringify(args[1][0](context, mapping, args[1][1]))
     src = stringify(args[2][0](context, mapping, args[2][1]))
+    src = stringify(runtemplate(context, mapping,
+                                compiletemplate(src, context)))
     yield re.sub(pat, rpl, src)
 
 def if_(context, mapping, args):
--- a/tests/test-command-template.t	Wed Apr 17 03:41:34 2013 +0200
+++ b/tests/test-command-template.t	Wed Apr 10 19:27:49 2013 -0500
@@ -1531,3 +1531,7 @@
   $ hg log -R latesttag -r tip --template 'modified files: {file_mods % " {file}\n"}\n'
   modified files:  .hgtags
   
+Test the sub function of templating for expansion:
+
+  $ hg log -R latesttag -r 10 --template '{sub("[0-9]", "x", "{rev}")}\n'
+  xx