##// END OF EJS Templates
templatefilters: use \uxxxx style escape for JSON string...
Yuya Nishihara -
r11890:9dac951d stable
parent child Browse files
Show More
@@ -148,7 +148,13 b' def xmlescape(text):'
148 def jsonescape(s):
148 def jsonescape(s):
149 for k, v in _escapes:
149 for k, v in _escapes:
150 s = s.replace(k, v)
150 s = s.replace(k, v)
151 return s
151
152 def uescape(c):
153 if ord(c) < 0x80:
154 return c
155 else:
156 return '\\u%04x' % ord(c)
157 return ''.join(uescape(c) for c in s)
152
158
153 def json(obj):
159 def json(obj):
154 if obj is None or obj is False or obj is True:
160 if obj is None or obj is False or obj is True:
@@ -157,9 +163,9 b' def json(obj):'
157 return str(obj)
163 return str(obj)
158 elif isinstance(obj, str):
164 elif isinstance(obj, str):
159 u = unicode(obj, encoding.encoding, 'replace')
165 u = unicode(obj, encoding.encoding, 'replace')
160 return '"%s"' % jsonescape(u).encode('utf-8')
166 return '"%s"' % jsonescape(u)
161 elif isinstance(obj, unicode):
167 elif isinstance(obj, unicode):
162 return '"%s"' % jsonescape(obj).encode('utf-8')
168 return '"%s"' % jsonescape(obj)
163 elif hasattr(obj, 'keys'):
169 elif hasattr(obj, 'keys'):
164 out = []
170 out = []
165 for k, v in obj.iteritems():
171 for k, v in obj.iteritems():
@@ -984,5 +984,5 b' ul#graphnodes li .info {'
984 }
984 }
985 % Stop and restart with HGENCODING=cp932
985 % Stop and restart with HGENCODING=cp932
986 % Graph json escape of multibyte character
986 % Graph json escape of multibyte character
987 var data = [["40b4d6888e92", [0, 1], [[0, 0, 1]], "", "test", "1970-01-01", ["stable", true], ["tip"]], ["1d22e65f027e", [0, 1], [[0, 0, 1]], "branch", "test", "1970-01-01", ["stable", false], []], ["a4f92ed23982", [0, 1], [[0, 0, 1]], "Added tag 1.0 for changeset 2ef0ac749a14", "test", "1970-01-01", ["default", true], []], ["2ef0ac749a14", [0, 1], [], "base", "test", "1970-01-01", ["default", false], ["1.0"]]];
987 var data = [["40b4d6888e92", [0, 1], [[0, 0, 1]], "\u80fd", "test", "1970-01-01", ["stable", true], ["tip"]], ["1d22e65f027e", [0, 1], [[0, 0, 1]], "branch", "test", "1970-01-01", ["stable", false], []], ["a4f92ed23982", [0, 1], [[0, 0, 1]], "Added tag 1.0 for changeset 2ef0ac749a14", "test", "1970-01-01", ["default", true], []], ["2ef0ac749a14", [0, 1], [], "base", "test", "1970-01-01", ["default", false], ["1.0"]]];
988 % ERRORS ENCOUNTERED
988 % ERRORS ENCOUNTERED
General Comments 0
You need to be logged in to leave comments. Login now