From d7c1ef9b4d88aeadbed991c51fe50160120fb544 Mon Sep 17 00:00:00 2001 From: alisdair sullivan Date: Tue, 29 Nov 2011 20:32:47 -0800 Subject: [PATCH] remove string escaping functions, unused --- src/jsx_utils.erl | 57 +---------------------------------------------- 1 file changed, 1 insertion(+), 56 deletions(-) diff --git a/src/jsx_utils.erl b/src/jsx_utils.erl index 842ba8a..8f4dcf7 100644 --- a/src/jsx_utils.erl +++ b/src/jsx_utils.erl @@ -198,45 +198,29 @@ digits_to_list([Digit|Digits], Dpoint, Acc) -> %% everything else should be a legal json string component json_escape(String, Opts) when is_binary(String) -> - json_escape(String, Opts, <<>>); -json_escape(String, Opts) when is_list(String) -> - json_escape(String, Opts, []). + json_escape(String, Opts, <<>>). %% double quote json_escape(<<$\", Rest/binary>>, Opts, Acc) -> json_escape(Rest, Opts, <>); -json_escape([$\"|Rest], Opts, Acc) -> - json_escape(Rest, Opts, [$\", $\\] ++ Acc); %% backslash \ reverse solidus json_escape(<<$\\, Rest/binary>>, Opts, Acc) -> json_escape(Rest, Opts, <>); -json_escape([$\\|Rest], Opts, Acc) -> - json_escape(Rest, Opts, [$\\, $\\] ++ Acc); %% backspace json_escape(<<$\b, Rest/binary>>, Opts, Acc) -> json_escape(Rest, Opts, <>); -json_escape([$\b|Rest], Opts, Acc) -> - json_escape(Rest, Opts, [$b, $\\] ++ Acc); %% form feed json_escape(<<$\f, Rest/binary>>, Opts, Acc) -> json_escape(Rest, Opts, <>); -json_escape([$\f|Rest], Opts, Acc) -> - json_escape(Rest, Opts, [$f, $\\] ++ Acc); %% newline json_escape(<<$\n, Rest/binary>>, Opts, Acc) -> json_escape(Rest, Opts, <>); -json_escape([$\n|Rest], Opts, Acc) -> - json_escape(Rest, Opts, [$n, $\\] ++ Acc); %% cr json_escape(<<$\r, Rest/binary>>, Opts, Acc) -> json_escape(Rest, Opts, <>); -json_escape([$\r|Rest], Opts, Acc) -> - json_escape(Rest, Opts, [$r, $\\] ++ Acc); %% tab json_escape(<<$\t, Rest/binary>>, Opts, Acc) -> json_escape(Rest, Opts, <>); -json_escape([$\t|Rest], Opts, Acc) -> - json_escape(Rest, Opts, [$t, $\\] ++ Acc); %% other control characters json_escape(<>, Opts, Acc) when C >= 0, C < $\s -> json_escape(Rest, @@ -245,14 +229,10 @@ json_escape(<>, Opts, Acc) when C >= 0, C < $\s -> (unicode:characters_to_binary(json_escape_sequence(C)))/binary >> ); -json_escape([C|Rest], Opts, Acc) when C >= 0, C < $\s -> - json_escape(Rest, Opts, lists:reverse(json_escape_sequence(C)) ++ Acc); %% escape forward slashes -- optionally -- to faciliate microsoft's retarded %% date format json_escape(<<$/, Rest/binary>>, Opts=#opts{escape_forward_slash=true}, Acc) -> json_escape(Rest, Opts, <>); -json_escape([$/|Rest], Opts=#opts{escape_forward_slash=true}, Acc) -> - json_escape(Rest, Opts, [$/, $\\] ++ Acc); %% escape u+2028 and u+2029 to avoid problems with jsonp json_escape(<>, Opts, Acc) when C == 16#2028; C == 16#2029 -> @@ -262,17 +242,11 @@ json_escape(<>, Opts, Acc) (unicode:characters_to_binary(json_escape_sequence(C)))/binary >> ); -json_escape([C|Rest], Opts, Acc) when C =:= 16#2028; C =:= 16#2029 -> - json_escape(Rest, Opts, lists:reverse(json_escape_sequence(C)) ++ Acc); %% any other legal codepoint json_escape(<>, Opts, Acc) -> json_escape(Rest, Opts, <>); -json_escape([C|Rest], Opts, Acc) -> - json_escape(Rest, Opts, [C] ++ Acc); json_escape(<<>>, _Opts, Acc) -> Acc; -json_escape([], _Opts, Acc) -> - lists:reverse(Acc); json_escape(Rest, Opts, Acc) -> erlang:error(badarg, [Rest, Opts, Acc]). @@ -363,33 +337,4 @@ binary_escape_test_() -> } ]. - -string_escape_test_() -> - [ - {"json string escaping", - ?_assert(json_escape( - "\"\\\b\f\n\r\t", #opts{} - ) =:= "\\\"\\\\\\b\\f\\n\\r\\t" - ) - }, - {"json string hex escape", - ?_assert(json_escape( - [1, 2, 3, 11, 26, 30, 31], #opts{} - ) =:= "\\u0001\\u0002\\u0003\\u000b\\u001a\\u001e\\u001f" - ) - }, - {"jsonp protection", - ?_assert(json_escape( - [16#2028, 16#2029], #opts{} - ) =:= "\\u2028\\u2029" - ) - }, - {"microsoft i hate your date format", - ?_assert(json_escape("/Date(1303502009425)/", - #opts{escape_forward_slash=true} - ) =:= "\\/Date(1303502009425)\\/" - ) - } - ]. - -endif. \ No newline at end of file