From 5e2076065628d6440de0892265362fa42412bdbe Mon Sep 17 00:00:00 2001 From: alisdair sullivan Date: Mon, 19 Mar 2012 16:01:58 -0700 Subject: [PATCH] apply loose_unicode option to decoder --- src/jsx_utils.erl | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/jsx_utils.erl b/src/jsx_utils.erl index 21f74d2..2c4526e 100644 --- a/src/jsx_utils.erl +++ b/src/jsx_utils.erl @@ -132,6 +132,8 @@ json_escape(<>, Opts, Acc) %% any other legal codepoint json_escape(<>, Opts, Acc) -> json_escape(Rest, Opts, <>); +json_escape(<<_, Rest/binary>>, Opts=#opts{loose_unicode=true}, Acc) -> + json_escape(Rest, Opts, <>); json_escape(<<>>, _Opts, Acc) -> Acc; json_escape(Rest, Opts, Acc) -> @@ -173,6 +175,12 @@ binary_escape_test_() -> <<"\\u0001\\u0002\\u0003\\u000b\\u001a\\u001e\\u001f">> ) }, + {"json string loose unicode escaping", + ?_assertEqual( + json_escape(<<16#ffff>>, #opts{loose_unicode=true}), + <<16#fffd/utf8>> + ) + }, {"jsonp protection", ?_assertEqual( json_escape(<<226, 128, 168, 226, 128, 169>>, #opts{}),