Comments
Patch
@@ -698,21 +698,7 @@ def unquotestring(s):
'''unwrap quotes'''
if len(s) < 2 or s[0] != s[-1]:
raise SyntaxError(_('unmatched quotes'))
- # de-backslash-ify only <\">. it is invalid syntax in non-string part of
- # template, but we are likely to escape <"> in quoted string and it was
- # accepted before, thanks to issue4290. <\\"> is unmodified because it
- # is ambiguous and it was processed as such before 2.8.1.
- #
- # template result
- # --------- ------------------------
- # {\"\"} parse error
- # "{""}" {""} -> <>
- # "{\"\"}" {""} -> <>
- # {"\""} {"\""} -> <">
- # '{"\""}' {"\""} -> <">
- # "{"\""}" parse error (don't care)
- q = s[0]
- return s[1:-1].replace('\\\\' + q, '\\\\\\' + q).replace('\\' + q, q)
+ return s[1:-1]
class engine(object):
'''template expansion engine.
@@ -2870,9 +2870,6 @@ stripped before parsing:
$ hg log -r 2 --style ../escquotetmpl
" \" \" \\" head1
- $ hg log -r 2 -T esc --config templates.esc='{\"invalid\"}\n'
- hg: parse error at 1: syntax error
- [255]
$ hg log -r 2 -T esc --config templates.esc='"{\"valid\"}\n"'
valid
$ hg log -r 2 -T esc --config templates.esc="'"'{\'"'"'valid\'"'"'}\n'"'"