templater: do not strip non-quote characters from template config
authorYuya Nishihara <yuya@tcha.org>
Sun, 27 Mar 2016 17:42:19 +0900
changeset 28687 29c249dfb4ef
parent 28686 b212e01fead0
child 28688 3e0d03c3c594
templater: do not strip non-quote characters from template config Before this patch, the first and last characters were stripped from ui.logtemplate and template.* if they were the same. It could lead to a strange result as quotes are optional. See the test for example.
mercurial/templater.py
tests/test-command-template.t
--- a/mercurial/templater.py	Tue Mar 29 11:50:41 2016 -0700
+++ b/mercurial/templater.py	Sun Mar 27 17:42:19 2016 +0900
@@ -868,7 +868,7 @@
 
 def unquotestring(s):
     '''unwrap quotes if any; otherwise returns unmodified string'''
-    if len(s) < 2 or s[0] != s[-1]:
+    if len(s) < 2 or s[0] not in "'\"" or s[0] != s[-1]:
         return s
     return s[1:-1]
 
--- a/tests/test-command-template.t	Tue Mar 29 11:50:41 2016 -0700
+++ b/tests/test-command-template.t	Sun Mar 27 17:42:19 2016 +0900
@@ -71,6 +71,8 @@
   8
   $ hg tip --config 'ui.logtemplate="{rev}\n"'
   8
+  $ hg tip --config 'ui.logtemplate=n{rev}\n'
+  n8
 
 Make sure user/global hgrc does not affect tests