mercurial/templatefilters.py
branchstable
changeset 11765 aff419e260f9
parent 11297 d320e70442a5
child 11890 9dac951d0185
equal deleted inserted replaced
11758:a79214972da2 11765:aff419e260f9
   154     if obj is None or obj is False or obj is True:
   154     if obj is None or obj is False or obj is True:
   155         return {None: 'null', False: 'false', True: 'true'}[obj]
   155         return {None: 'null', False: 'false', True: 'true'}[obj]
   156     elif isinstance(obj, int) or isinstance(obj, float):
   156     elif isinstance(obj, int) or isinstance(obj, float):
   157         return str(obj)
   157         return str(obj)
   158     elif isinstance(obj, str):
   158     elif isinstance(obj, str):
   159         return '"%s"' % jsonescape(obj)
   159         u = unicode(obj, encoding.encoding, 'replace')
       
   160         return '"%s"' % jsonescape(u).encode('utf-8')
   160     elif isinstance(obj, unicode):
   161     elif isinstance(obj, unicode):
   161         return json(obj.encode('utf-8'))
   162         return '"%s"' % jsonescape(obj).encode('utf-8')
   162     elif hasattr(obj, 'keys'):
   163     elif hasattr(obj, 'keys'):
   163         out = []
   164         out = []
   164         for k, v in obj.iteritems():
   165         for k, v in obj.iteritems():
   165             s = '%s: %s' % (json(k), json(v))
   166             s = '%s: %s' % (json(k), json(v))
   166             out.append(s)
   167             out.append(s)