Skip to content

Commit 2c9994c

Browse files
committed
Improve jlib:remote_delay_tags/1
1 parent 493cd39 commit 2c9994c

File tree

1 file changed

+13
-24
lines changed

1 file changed

+13
-24
lines changed

src/jlib.erl

Lines changed: 13 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -457,28 +457,18 @@ maybe_append_delay(Packet = #xmlel{children = Children}, From, TS, Desc) ->
457457
Packet
458458
end.
459459

460-
remove_delay_tags(#xmlel{children = Els} = Packet) ->
461-
NEl = lists:foldl(
462-
fun(#xmlel{name= <<"delay">>} = R, El) ->
463-
case exml_query:attr(R, <<"xmlns">>) of
464-
?NS_DELAY ->
465-
El;
466-
_ ->
467-
El ++ [R]
468-
end;
469-
(#xmlel{name= <<"x">>} = R, El) ->
470-
case exml_query:attr(R, <<"xmlns">>) of
471-
?NS_DELAY91 ->
472-
El;
473-
_ ->
474-
El ++ [R]
475-
end;
476-
(R, El) ->
477-
El ++ [R]
478-
end, [], Els),
479-
Packet#xmlel{children = NEl}.
480-
481-
-spec remove_cdata([exml:child()]) -> [exml:child()].
460+
remove_delay_tags(#xmlel{children = Children} = Packet) ->
461+
Fun = fun(#xmlel{name = <<"delay">>, attrs = #{<<"xmlns">> := ?NS_DELAY}}, Els) ->
462+
Els;
463+
(#xmlel{name = <<"x">>, attrs = #{<<"xmlns">> := ?NS_DELAY91}}, Els) ->
464+
Els;
465+
(R, Els) ->
466+
[R | Els]
467+
end,
468+
NEls = lists:foldl(Fun, [], Children),
469+
Packet#xmlel{children = lists:reverse(NEls)}.
470+
471+
-spec remove_cdata([exml:child()]) -> [exml:element()].
482472
remove_cdata(L) ->
483473
[E || E <- L, remove_cdata_p(E)].
484474

@@ -490,8 +480,7 @@ remove_cdata_p(_) -> false.
490480
append_subtags(XE = #xmlel{children = SubTags1}, SubTags2) ->
491481
XE#xmlel{children = SubTags1 ++ SubTags2}.
492482

493-
-spec replace_tag_attr(Attr :: binary(), Value :: binary(), exml:element()
494-
) -> exml:element().
483+
-spec replace_tag_attr(Attr :: binary(), Value :: binary(), exml:element()) -> exml:element().
495484
replace_tag_attr(Attr, Value, XE = #xmlel{attrs = Attrs}) ->
496485
Attrs1 = Attrs#{Attr => Value},
497486
XE#xmlel{attrs = Attrs1}.

0 commit comments

Comments
 (0)