diff mercurial/templatefilters.py @ 32763:f924dd043974

json: pass formatting options recursively This bug was introduced in 654e9a1c8a6c. It's okay to escape <>, but is unnecessary for command output.
author Yuya Nishihara <yuya@tcha.org>
date Fri, 09 Jun 2017 21:33:15 +0900
parents 08d0892c93d8
children 0fa781320203
line wrap: on
line diff
--- a/mercurial/templatefilters.py	Sun Apr 23 13:40:18 2017 +0900
+++ b/mercurial/templatefilters.py	Fri Jun 09 21:33:15 2017 +0900
@@ -234,11 +234,12 @@
     elif isinstance(obj, bytes):
         return '"%s"' % encoding.jsonescape(obj, paranoid=paranoid)
     elif util.safehasattr(obj, 'keys'):
-        out = ['"%s": %s' % (encoding.jsonescape(k, paranoid=paranoid), json(v))
+        out = ['"%s": %s' % (encoding.jsonescape(k, paranoid=paranoid),
+                             json(v, paranoid))
                for k, v in sorted(obj.iteritems())]
         return '{' + ', '.join(out) + '}'
     elif util.safehasattr(obj, '__iter__'):
-        out = [json(i) for i in obj]
+        out = [json(i, paranoid) for i in obj]
         return '[' + ', '.join(out) + ']'
     else:
         raise TypeError('cannot encode type %s' % obj.__class__.__name__)