From 147be3afdfd2f87e989450bf0cddddfa9e817e24 Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Sun, 6 Oct 2019 22:32:58 +0200 Subject: [PATCH] Don't log own messages on incoming MUC `sv_ev_room_message()` called `groupchat_log_msg_in()` to log all incoming MUC messages. `cl_ev_send_muc_msg()` calls `groupchat_log_msg_out()`. So messages sent by the user himself was logged two times. Filter the incoming messages and only log the ones not from our occupant jid/nick. Fix https://github.com/profanity-im/profanity/issues/1201 --- src/event/server_events.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/event/server_events.c b/src/event/server_events.c index 96b0611f..0417f35d 100644 --- a/src/event/server_events.c +++ b/src/event/server_events.c @@ -294,10 +294,13 @@ sv_ev_room_message(ProfMessage *message) char *mynick = muc_nick(mucwin->roomjid); - if (message->enc == PROF_MSG_ENC_OMEMO) { - groupchat_log_omemo_msg_in(message->jid->barejid, message->jid->resourcepart, message->plain); - } else { - groupchat_log_msg_in(message->jid->barejid, message->jid->resourcepart, message->plain); + // only log messages from others. we log our own via mucwin_outgoing_msg() + if (g_strcmp0(mynick, message->jid->resourcepart) != 0) { + if (message->enc == PROF_MSG_ENC_OMEMO) { + groupchat_log_omemo_msg_in(message->jid->barejid, message->jid->resourcepart, message->plain); + } else { + groupchat_log_msg_in(message->jid->barejid, message->jid->resourcepart, message->plain); + } } char *old_plain = message->plain;