diff --git a/src/jsx_utf16.erl b/src/jsx_utf16.erl index 281d08b..56a62ff 100644 --- a/src/jsx_utf16.erl +++ b/src/jsx_utf16.erl @@ -267,7 +267,7 @@ escaped_unicode(<>, false -> string(Rest, Stack, Callbacks, Opts, [D, C, B, A, $u, ?rsolidus] ++ String) ; {Y, NewString} -> - string(Rest, Stack, Callbacks, Opts, [surrogate_to_codepoint(X, Y)] ++ NewString) + string(Rest, Stack, Callbacks, Opts, [surrogate_to_codepoint(Y, X)] ++ NewString) end ; X when X < 16#d800; X > 16#dfff, X < 16#fffe -> string(Rest, Stack, Callbacks, Opts, [X] ++ String) @@ -297,8 +297,8 @@ check_acc_for_surrogate(_) -> %% stole this from the unicode spec -surrogate_to_codepoint(X, Y) -> - (X - 16#d800) * 16#400 + (Y - 16#dc00) + 16#10000. +surrogate_to_codepoint(High, Low) -> + (High - 16#d800) * 16#400 + (Low - 16#dc00) + 16#10000. %% like strings, numbers are collected in an intermediate accumulator before diff --git a/src/jsx_utf16le.erl b/src/jsx_utf16le.erl index e2decb3..832c4e8 100644 --- a/src/jsx_utf16le.erl +++ b/src/jsx_utf16le.erl @@ -267,7 +267,7 @@ escaped_unicode(<>, false -> string(Rest, Stack, Callbacks, Opts, [D, C, B, A, $u, ?rsolidus] ++ String) ; {Y, NewString} -> - string(Rest, Stack, Callbacks, Opts, [surrogate_to_codepoint(X, Y)] ++ NewString) + string(Rest, Stack, Callbacks, Opts, [surrogate_to_codepoint(Y, X)] ++ NewString) end ; X when X < 16#d800; X > 16#dfff, X < 16#fffe -> string(Rest, Stack, Callbacks, Opts, [X] ++ String) @@ -297,8 +297,8 @@ check_acc_for_surrogate(_) -> %% stole this from the unicode spec -surrogate_to_codepoint(X, Y) -> - (X - 16#d800) * 16#400 + (Y - 16#dc00) + 16#10000. +surrogate_to_codepoint(High, Low) -> + (High - 16#d800) * 16#400 + (Low - 16#dc00) + 16#10000. %% like strings, numbers are collected in an intermediate accumulator before diff --git a/src/jsx_utf32.erl b/src/jsx_utf32.erl index 95a1a27..85d1062 100644 --- a/src/jsx_utf32.erl +++ b/src/jsx_utf32.erl @@ -254,7 +254,7 @@ escaped_unicode(<>, false -> string(Rest, Stack, Callbacks, Opts, [D, C, B, A, $u, ?rsolidus] ++ String) ; {Y, NewString} -> - string(Rest, Stack, Callbacks, Opts, [surrogate_to_codepoint(X, Y)] ++ NewString) + string(Rest, Stack, Callbacks, Opts, [surrogate_to_codepoint(Y, X)] ++ NewString) end ; X when X < 16#d800; X > 16#dfff, X < 16#fffe -> string(Rest, Stack, Callbacks, Opts, [X] ++ String) @@ -284,8 +284,8 @@ check_acc_for_surrogate(_) -> %% stole this from the unicode spec -surrogate_to_codepoint(X, Y) -> - (X - 16#d800) * 16#400 + (Y - 16#dc00) + 16#10000. +surrogate_to_codepoint(High, Low) -> + (High - 16#d800) * 16#400 + (Low - 16#dc00) + 16#10000. %% like strings, numbers are collected in an intermediate accumulator before diff --git a/src/jsx_utf32le.erl b/src/jsx_utf32le.erl index 6ce96bf..5069686 100644 --- a/src/jsx_utf32le.erl +++ b/src/jsx_utf32le.erl @@ -254,7 +254,7 @@ escaped_unicode(<>, false -> string(Rest, Stack, Callbacks, Opts, [D, C, B, A, $u, ?rsolidus] ++ String) ; {Y, NewString} -> - string(Rest, Stack, Callbacks, Opts, [surrogate_to_codepoint(X, Y)] ++ NewString) + string(Rest, Stack, Callbacks, Opts, [surrogate_to_codepoint(Y, X)] ++ NewString) end ; X when X < 16#d800; X > 16#dfff, X < 16#fffe -> string(Rest, Stack, Callbacks, Opts, [X] ++ String) @@ -284,8 +284,8 @@ check_acc_for_surrogate(_) -> %% stole this from the unicode spec -surrogate_to_codepoint(X, Y) -> - (X - 16#d800) * 16#400 + (Y - 16#dc00) + 16#10000. +surrogate_to_codepoint(High, Low) -> + (High - 16#d800) * 16#400 + (Low - 16#dc00) + 16#10000. %% like strings, numbers are collected in an intermediate accumulator before diff --git a/src/jsx_utf8.erl b/src/jsx_utf8.erl index d7bca84..ee6afb7 100644 --- a/src/jsx_utf8.erl +++ b/src/jsx_utf8.erl @@ -278,7 +278,7 @@ escaped_unicode(<>, false -> string(Rest, Stack, Callbacks, Opts, [D, C, B, A, $u, ?rsolidus] ++ String) ; {Y, NewString} -> - string(Rest, Stack, Callbacks, Opts, [surrogate_to_codepoint(X, Y)] ++ NewString) + string(Rest, Stack, Callbacks, Opts, [surrogate_to_codepoint(Y, X)] ++ NewString) end ; X when X < 16#d800; X > 16#dfff, X < 16#fffe -> string(Rest, Stack, Callbacks, Opts, [X] ++ String) @@ -308,8 +308,8 @@ check_acc_for_surrogate(_) -> %% stole this from the unicode spec -surrogate_to_codepoint(X, Y) -> - (X - 16#d800) * 16#400 + (Y - 16#dc00) + 16#10000. +surrogate_to_codepoint(High, Low) -> + (High - 16#d800) * 16#400 + (Low - 16#dc00) + 16#10000. %% like strings, numbers are collected in an intermediate accumulator before diff --git a/test/jsx_test.erl b/test/jsx_test.erl index e612a7b..7f8c574 100644 --- a/test/jsx_test.erl +++ b/test/jsx_test.erl @@ -77,7 +77,6 @@ incremental_decode(F, <<>>) -> ; {Result, _} -> Result end; incremental_decode(F, <>) -> - io:fwrite("~p~n", [A]), {_, G} = F(<>), incremental_decode(G, Rest).