comparison mercurial/templatefilters.py @ 19882:55c763926a28 stable

json: add more paranoid escaping
author Matt Mackall <mpm@selenic.com>
date Wed, 09 Oct 2013 11:50:19 -0700
parents 1afe5d3939db
children e828975722c8
comparison
equal deleted inserted replaced
19880:ba2be32d14f2 19882:55c763926a28
211 return '\\u%04x' % ord(c) 211 return '\\u%04x' % ord(c)
212 212
213 _escapes = [ 213 _escapes = [
214 ('\\', '\\\\'), ('"', '\\"'), ('\t', '\\t'), ('\n', '\\n'), 214 ('\\', '\\\\'), ('"', '\\"'), ('\t', '\\t'), ('\n', '\\n'),
215 ('\r', '\\r'), ('\f', '\\f'), ('\b', '\\b'), 215 ('\r', '\\r'), ('\f', '\\f'), ('\b', '\\b'),
216 ('<', '\\u003c'), ('>', '\\u003e')
216 ] 217 ]
217 218
218 def jsonescape(s): 219 def jsonescape(s):
219 for k, v in _escapes: 220 for k, v in _escapes:
220 s = s.replace(k, v) 221 s = s.replace(k, v)