From ff4f753dbf02693c288d7e15cb3486359e73831f Mon Sep 17 00:00:00 2001 From: Anders Svensson Date: Mon, 29 Jul 2013 15:59:35 +0200 Subject: Use module unicode for UTF8String encode/decode The original code predates that module but there's no reason not to use it now. --- lib/diameter/src/base/diameter_types.erl | 27 ++------------------------- 1 file changed, 2 insertions(+), 25 deletions(-) (limited to 'lib/diameter') diff --git a/lib/diameter/src/base/diameter_types.erl b/lib/diameter/src/base/diameter_types.erl index ab7a7f3549..7ebf891819 100644 --- a/lib/diameter/src/base/diameter_types.erl +++ b/lib/diameter/src/base/diameter_types.erl @@ -354,36 +354,13 @@ v6enc([], B) -> %% -------------------- 'UTF8String'(decode, Bin) -> - udec(Bin, []); + tl([0|_] = unicode:characters_to_list([0, Bin])); %% assert list return 'UTF8String'(encode = M, zero) -> 'UTF8String'(M, []); 'UTF8String'(encode, S) -> - uenc(if is_binary(S) -> [S]; true -> S end, []). - -udec(<<>>, Acc) -> - lists:reverse(Acc); - -udec(<>, Acc) -> - udec(Rest, [C | Acc]). - -uenc([], Acc) -> - list_to_binary(lists:reverse(Acc)); - -uenc([E | Rest], Acc) - when E == <<>>; - E == [] -> - uenc(Rest, Acc); - -uenc([[H|T] | Rest], Acc) -> - uenc([H, T | Rest], Acc); - -uenc([<> | Rest], Acc) -> - uenc([C, T | Rest], Acc); - -uenc([C | Rest], Acc) -> - uenc(Rest, [<> | Acc]). + <<_/binary>> = unicode:characters_to_binary(S). %% assert binary return %% -------------------- -- cgit v1.2.3