# HG changeset patch # User Sean Farley # Date 1365640069 18000 # Node ID d8d548d868d3ad6eb0d43ed48c9762dde1fe2657 # Parent 3d265e0822d36332b0c995b22f58a90d841241ab 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. diff -r 3d265e0822d3 -r d8d548d868d3 mercurial/templater.py --- 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): diff -r 3d265e0822d3 -r d8d548d868d3 tests/test-command-template.t --- 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