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.
--- 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