diff -r b9101467d88b -r 2c37f9dabc32 mercurial/encoding.py --- a/mercurial/encoding.py Sun Apr 23 16:10:51 2017 +0900 +++ b/mercurial/encoding.py Sun Apr 23 14:47:52 2017 +0900 @@ -26,7 +26,7 @@ asciilower = charencode.asciilower asciiupper = charencode.asciiupper -_jsonescapeu8fast = charencodepure.jsonescapeu8fast # TODO: no "pure" +_jsonescapeu8fast = charencode.jsonescapeu8fast _sysstr = pycompat.sysstr @@ -404,8 +404,8 @@ 'this is a test' >>> jsonescape('escape characters: \\0 \\x0b \\x7f') 'escape characters: \\\\u0000 \\\\u000b \\\\u007f' - >>> jsonescape('escape characters: \\t \\n \\r \\" \\\\') - 'escape characters: \\\\t \\\\n \\\\r \\\\" \\\\\\\\' + >>> jsonescape('escape characters: \\b \\t \\n \\f \\r \\" \\\\') + 'escape characters: \\\\b \\\\t \\\\n \\\\f \\\\r \\\\" \\\\\\\\' >>> jsonescape('a weird byte: \\xdd') 'a weird byte: \\xed\\xb3\\x9d' >>> jsonescape('utf-8: caf\\xc3\\xa9') @@ -416,6 +416,10 @@ If paranoid, non-ascii and common troublesome characters are also escaped. This is suitable for web output. + >>> s = 'escape characters: \\0 \\x0b \\x7f' + >>> assert jsonescape(s) == jsonescape(s, paranoid=True) + >>> s = 'escape characters: \\b \\t \\n \\f \\r \\" \\\\' + >>> assert jsonescape(s) == jsonescape(s, paranoid=True) >>> jsonescape('escape boundary: \\x7e \\x7f \\xc2\\x80', paranoid=True) 'escape boundary: ~ \\\\u007f \\\\u0080' >>> jsonescape('a weird byte: \\xdd', paranoid=True)