diff options
Diffstat (limited to 'src/jlib.erl')
-rw-r--r-- | src/jlib.erl | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/src/jlib.erl b/src/jlib.erl index c15bc06a4..b9fb8b990 100644 --- a/src/jlib.erl +++ b/src/jlib.erl @@ -211,13 +211,32 @@ is_nodename1([]) -> % TODO: UNICODE support -tolower_c(C) when C >= $A, C =< $Z -> - C + 32; -tolower_c(C) -> - C. - -tolower(S) -> - lists:map(fun tolower_c/1, S). +%tolower_c(C) when C >= $A, C =< $Z -> +% C + 32; +%tolower_c(C) -> +% C. + +-define(LOWER(Char), + if + Char >= $A, Char =< $Z -> + Char + 32; + true -> + Char + end). + +%tolower(S) -> +% lists:map(fun tolower_c/1, S). + +%tolower(S) -> +% [?LOWER(Char) || Char <- S]. + +% Not tail-recursive but it seems works faster than variants above +tolower([C | Cs]) when C >= $A, C =< $Z -> + [C + 32 | tolower(Cs)]; +tolower([C | Cs]) -> + [C | tolower(Cs)]; +tolower([]) -> + []. jid_tolower({U, S, R}) -> |