24
1
mirror of https://github.com/processone/ejabberd.git synced 2024-06-18 22:15:20 +02:00

Use the regexp frontend module (EJAB-921)

This commit is contained in:
Badlop 2011-12-23 11:33:33 +01:00
parent a3c58f2896
commit ce7b008b8f

View File

@ -146,13 +146,16 @@ do_sub(S, [{RegExp, New, Times} | T]) ->
do_sub(Result, T). do_sub(Result, T).
do_sub(S, {RegExp, New}, Iter) -> do_sub(S, {RegExp, New}, Iter) ->
case regexp:sub(S, RegExp, New) of case ejabberd_regexp:run(S, RegExp) of
{ok, NewS, 0} -> match ->
NewS; case ejabberd_regexp:replace(S, RegExp, New) of
{ok, NewS, _} when Iter =< ?MAX_RECURSION -> NewS when Iter =< ?MAX_RECURSION ->
do_sub(NewS, {RegExp, New}, Iter+1); do_sub(NewS, {RegExp, New}, Iter+1);
{ok, _, _} when Iter > ?MAX_RECURSION -> _NewS when Iter > ?MAX_RECURSION ->
erlang:error(max_substitute_recursion); erlang:error(max_substitute_recursion)
end;
nomatch ->
S;
_ -> _ ->
erlang:error(bad_regexp) erlang:error(bad_regexp)
end; end;
@ -161,13 +164,16 @@ do_sub(S, {_, _, N}, _) when N<1 ->
S; S;
do_sub(S, {RegExp, New, Times}, Iter) -> do_sub(S, {RegExp, New, Times}, Iter) ->
case regexp:sub(S, RegExp, New) of case ejabberd_regexp:run(S, RegExp) of
{ok, NewS, 0} -> match ->
NewS; case ejabberd_regexp:replace(S, RegExp, New) of
{ok, NewS, _} when Iter < Times -> NewS when Iter < Times ->
do_sub(NewS, {RegExp, New, Times}, Iter+1); do_sub(NewS, {RegExp, New, Times}, Iter+1);
{ok, NewS, _} -> NewS ->
NewS; NewS
end;
nomatch ->
S;
_ -> _ ->
erlang:error(bad_regexp) erlang:error(bad_regexp)
end. end.