mirror of
https://github.com/processone/ejabberd.git
synced 2024-11-24 16:23:40 +01:00
Handle ~ control sequence in text of mod_muc_log (EJAB-1639)
This commit is contained in:
parent
2639d262f1
commit
3025bfd3ff
@ -54,6 +54,7 @@
|
|||||||
-define(PROCNAME, ejabberd_mod_muc_log).
|
-define(PROCNAME, ejabberd_mod_muc_log).
|
||||||
-record(room, {jid, title, subject, subject_author, config}).
|
-record(room, {jid, title, subject, subject_author, config}).
|
||||||
|
|
||||||
|
-define(PLAINTEXT_CO, <<"ZZCZZ">>).
|
||||||
-define(PLAINTEXT_IN, <<"ZZIZZ">>).
|
-define(PLAINTEXT_IN, <<"ZZIZZ">>).
|
||||||
-define(PLAINTEXT_OUT, <<"ZZOZZ">>).
|
-define(PLAINTEXT_OUT, <<"ZZOZZ">>).
|
||||||
|
|
||||||
@ -497,7 +498,7 @@ add_message_to_log(Nick1, Message, RoomJID, Opts,
|
|||||||
{_, _, Microsecs} = Now,
|
{_, _, Microsecs} = Now,
|
||||||
STimeUnique = io_lib:format("~s.~w",
|
STimeUnique = io_lib:format("~s.~w",
|
||||||
[STime, Microsecs]),
|
[STime, Microsecs]),
|
||||||
fw(F,
|
catch fw(F,
|
||||||
list_to_binary(
|
list_to_binary(
|
||||||
io_lib:format("<a id=\"~s\" name=\"~s\" href=\"#~s\" "
|
io_lib:format("<a id=\"~s\" name=\"~s\" href=\"#~s\" "
|
||||||
"class=\"ts\">[~s]</a> ",
|
"class=\"ts\">[~s]</a> ",
|
||||||
@ -765,7 +766,8 @@ fw(F, S, O, FileFormat) ->
|
|||||||
html ->
|
html ->
|
||||||
S1;
|
S1;
|
||||||
plaintext ->
|
plaintext ->
|
||||||
S1x = ejabberd_regexp:greplace(S1, <<"<[^<^>]*>">>, <<"">>),
|
S1a = ejabberd_regexp:greplace(S1, <<"<[^<^>]*>">>, <<"">>),
|
||||||
|
S1x = ejabberd_regexp:greplace(S1a, ?PLAINTEXT_CO, <<"~~">>),
|
||||||
S1y = ejabberd_regexp:greplace(S1x, ?PLAINTEXT_IN, <<"<">>),
|
S1y = ejabberd_regexp:greplace(S1x, ?PLAINTEXT_IN, <<"<">>),
|
||||||
ejabberd_regexp:greplace(S1y, ?PLAINTEXT_OUT, <<">">>)
|
ejabberd_regexp:greplace(S1y, ?PLAINTEXT_OUT, <<">">>)
|
||||||
end,
|
end,
|
||||||
@ -967,13 +969,15 @@ put_room_occupants(F, RoomOccupants, Lang,
|
|||||||
|
|
||||||
htmlize(S1) -> htmlize(S1, html).
|
htmlize(S1) -> htmlize(S1, html).
|
||||||
|
|
||||||
htmlize(S1, plaintext) -> S1;
|
htmlize(S1, plaintext) ->
|
||||||
|
ejabberd_regexp:greplace(S1, <<"~">>, ?PLAINTEXT_CO);
|
||||||
htmlize(S1, FileFormat) ->
|
htmlize(S1, FileFormat) ->
|
||||||
htmlize(S1, false, FileFormat).
|
htmlize(S1, false, FileFormat).
|
||||||
|
|
||||||
%% The NoFollow parameter tell if the spam prevention should be applied to the link found
|
%% The NoFollow parameter tell if the spam prevention should be applied to the link found
|
||||||
%% true means 'apply nofollow on links'.
|
%% true means 'apply nofollow on links'.
|
||||||
htmlize(S1, _NoFollow, plaintext) ->
|
htmlize(S0, _NoFollow, plaintext) ->
|
||||||
|
S1 = ejabberd_regexp:greplace(S0, <<"~">>, ?PLAINTEXT_CO),
|
||||||
S1x = ejabberd_regexp:replace(S1, <<"<">>, ?PLAINTEXT_IN),
|
S1x = ejabberd_regexp:replace(S1, <<"<">>, ?PLAINTEXT_IN),
|
||||||
ejabberd_regexp:replace(S1x, <<">">>, ?PLAINTEXT_OUT);
|
ejabberd_regexp:replace(S1x, <<">">>, ?PLAINTEXT_OUT);
|
||||||
htmlize(S1, NoFollow, _FileFormat) ->
|
htmlize(S1, NoFollow, _FileFormat) ->
|
||||||
|
Loading…
Reference in New Issue
Block a user