From 5460796e3380232b78fe89924e07b06fcb4125ff Mon Sep 17 00:00:00 2001 From: alisdair sullivan Date: Mon, 7 Jun 2010 16:10:29 -0700 Subject: [PATCH] changed end of stream token --- src/jsx.erl | 14 +++++++------- test/jsx_test.erl | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/jsx.erl b/src/jsx.erl index 62c9d3f..5fe9388 100644 --- a/src/jsx.erl +++ b/src/jsx.erl @@ -33,7 +33,10 @@ decoder() -> decoder([]). decoder(Opts) -> - F = fun(end_of_stream, State) -> lists:reverse(State) ;(Event, State) -> [Event] ++ State end, + F = fun(end_of_json, State) -> lists:reverse(State) + ; (reset, _State) -> [] + ; (Event, State) -> [Event] ++ State + end, decoder({F, []}, Opts). decoder({F, _} = Callbacks, OptsList) when is_list(OptsList), is_function(F) -> @@ -124,24 +127,21 @@ detect_encoding(<> = JSON, Stack, Callbacks, Opts) when X =/ %% the problem detect_encoding(<>, Stack, Callbacks, Opts) when X =/= 0 -> - { - try {Result, _} = jsx_utf8:start(<>, [], Callbacks, Opts), Result + {try {Result, _} = jsx_utf8:start(<>, [], Callbacks, Opts), Result catch error:function_clause -> incomplete end, fun(Stream) -> detect_encoding(<>, Stack, Callbacks, Opts) end }; detect_encoding(<<0, X>>, Stack, Callbacks, Opts) when X =/= 0 -> - { - try {Result, _} = jsx_utf16:start(<<0, X>>, [], Callbacks, Opts), Result + {try {Result, _} = jsx_utf16:start(<<0, X>>, [], Callbacks, Opts), Result catch error:function_clause -> incomplete end, fun(Stream) -> detect_encoding(<<0, X, Stream/binary>>, Stack, Callbacks, Opts) end }; detect_encoding(<>, Stack, Callbacks, Opts) when X =/= 0 -> - { - try {Result, _} = jsx_utf16le:start(<>, [], Callbacks, Opts), Result + {try {Result, _} = jsx_utf16le:start(<>, [], Callbacks, Opts), Result catch error:function_clause -> incomplete end, fun(Stream) -> detect_encoding(<>, Stack, Callbacks, Opts) diff --git a/test/jsx_test.erl b/test/jsx_test.erl index 894686c..e84abf0 100644 --- a/test/jsx_test.erl +++ b/test/jsx_test.erl @@ -41,7 +41,7 @@ test(Dir) -> decoder(Flags) -> jsx:decoder({jsx_test, test_event, []}, Flags). -test_event(end_of_stream, Acc) -> +test_event(end_of_json, Acc) -> lists:reverse(Acc); test_event(Event, Acc) -> [Event] ++ Acc.