diff options
Diffstat (limited to 'src/jlib.erl')
-rw-r--r-- | src/jlib.erl | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/src/jlib.erl b/src/jlib.erl index 560d36ab7..46e864b0c 100644 --- a/src/jlib.erl +++ b/src/jlib.erl @@ -48,9 +48,10 @@ now_to_local_string/1, datetime_string_to_timestamp/1, decode_base64/1, encode_base64/1, ip_to_list/1, rsm_encode/1, rsm_encode/2, rsm_decode/1, - binary_to_integer/1, binary_to_integer/2, - integer_to_binary/1, integer_to_binary/2, - atom_to_binary/1, binary_to_atom/1, tuple_to_binary/1]). + binary_to_integer/1, binary_to_integer/2, + integer_to_binary/1, integer_to_binary/2, + atom_to_binary/1, binary_to_atom/1, tuple_to_binary/1, + l2i/1, i2l/1, i2l/2]). %% TODO: Remove once XEP-0091 is Obsolete %% TODO: Remove once XEP-0091 is Obsolete @@ -599,8 +600,6 @@ rsm_encode_count(Count, Arr) -> children = [{xmlcdata, i2l(Count)}]} | Arr]. -i2l(I) when is_integer(I) -> integer_to_binary(I). - -type tz() :: {binary(), {integer(), integer()}} | {integer(), integer()} | utc. %% Timezone = utc | {Sign::string(), {Hours, Minutes}} | {Hours, Minutes} @@ -880,3 +879,18 @@ tuple_to_binary(T) -> atom_to_binary(A) -> erlang:atom_to_binary(A, utf8). + + +l2i(I) when is_integer(I) -> I; +l2i(L) when is_binary(L) -> binary_to_integer(L). + +i2l(I) when is_integer(I) -> integer_to_binary(I); +i2l(L) when is_binary(L) -> L. + +i2l(I, N) when is_integer(I) -> i2l(i2l(I), N); +i2l(L, N) when is_binary(L) -> + case str:len(L) of + N -> L; + C when C > N -> L; + _ -> i2l(<<$0, L/binary>>, N) + end. |