diff --git a/src/z_html.erl b/src/z_html.erl index 1cf92fe..07f1c38 100644 --- a/src/z_html.erl +++ b/src/z_html.erl @@ -158,6 +158,8 @@ sanitize_type(_, _Ks, V, _Options) -> escape_value(V). sanitize_list(Ks, L, Options) when is_list(L) -> lists:map( fun + ({trans, Tr} = V) when is_list(Tr) -> + escape(V); ({P, V}) -> P1 = z_convert:to_binary(P), V1 = escape_props1(P1, V, Options), @@ -280,6 +282,8 @@ sanitize_type_check(_, V, _Options) -> escape_value_check(V). sanitize_list_check(L, Options) when is_list(L) -> lists:map( fun + ({trans, Tr} = V) when is_list(Tr) -> + escape_check(V); ({P, V}) -> P1 = z_convert:to_binary(P), V1 = escape_props_check1(P1, V, Options), diff --git a/src/z_url_fetch.erl b/src/z_url_fetch.erl index e21159d..8f018fb 100644 --- a/src/z_url_fetch.erl +++ b/src/z_url_fetch.erl @@ -606,7 +606,7 @@ handle_ce("gzip", #fstate{ length = Length, data = Data } = FState) length = size(Data1), data = Data1 }, - {ok, FState1}; + FState1; {error, _} -> FState end; diff --git a/test/z_html_test.erl b/test/z_html_test.erl index b57befa..2f0b010 100644 --- a/test/z_html_test.erl +++ b/test/z_html_test.erl @@ -59,6 +59,12 @@ ensure_check_test() -> ?assertEqual(<<"Ӓ <>;">>, z_html:escape_check(<<"Ӓ <>;">>)), ok. +escape_trans_list_test() -> + ?assertEqual( + #{ <<"a_list">> => [ {trans, [ {en, <<"&">> } ] } ] }, + z_html:escape_props(#{ <<"a_list">> => [ {trans, [ {en, <<"&">> } ] } ] })), + ok. + strip_test() -> ?assertEqual(<<"Hello">>, z_html:strip(<<"

Hello

">>)), ?assertEqual(<<"Hello">>, z_html:strip(<<"Hello">>)),