--- a/tests/test-command-template.t Mon Jun 15 23:03:30 2015 +0900
+++ b/tests/test-command-template.t Mon Jun 15 23:11:35 2015 +0900
@@ -2541,6 +2541,16 @@
abort: template filter 'datefilter' is not compatible with keyword 'author'
[255]
+Error in nested template:
+
+ $ hg log -T '{"date'
+ hg: parse error at 2: unterminated string
+ [255]
+
+ $ hg log -T '{"foo{date|=}"}'
+ hg: parse error at 11: syntax error
+ [255]
+
Thrown an error if a template function doesn't exist
$ hg tip --template '{foo()}\n'
@@ -2952,7 +2962,7 @@
$ hg log -r 2 -T "{if(rev, '{if(rev, r\'foo\')}')}"'\n'
foo
$ hg log -r 2 -T '{if(rev, "{if(rev, \")}")}\n'
- hg: parse error at 11: unterminated string
+ hg: parse error at 21: unterminated string
[255]
$ hg log -r 2 -T '{if(rev, \"\\"")}\n'
hg: parse error at 11: syntax error
@@ -3069,6 +3079,14 @@
3:\x6eo user, \x6eo domai\x6e
4:\x5c\x786eew bra\x5c\x786ech
+Test quotes in nested expression are evaluated just like a $(command)
+substitution in POSIX shells:
+
+ $ hg log -R a -r 8 -T '{"{"{rev}:{node|short}"}"}\n'
+ 8:95c24699272e
+ $ hg log -R a -r 8 -T '{"{"\{{rev}} \"{node|short}\""}"}\n'
+ {8} "95c24699272e"
+
Test recursive evaluation:
$ hg init r