--- a/libpurple/protocols/jabber/message.c Wed Feb 05 02:02:44 2020 -0600
+++ b/libpurple/protocols/jabber/message.c Wed Feb 05 02:07:49 2020 -0600
@@ -107,7 +107,8 @@
static void handle_chat(JabberMessage *jm)
- JabberID *jid = jabber_id_new(jm->from);
+ gchar *contact = jm->from; + JabberID *jid = jabber_id_new(contact); @@ -121,7 +122,7 @@
account = purple_connection_get_account(gc);
- jb = jabber_buddy_find(jm->js, jm->from, TRUE);
+ jb = jabber_buddy_find(jm->js, contact, TRUE); jbr = jabber_buddy_find_resource(jb, jid->resource);
if (jbr && jm->chat_state != JM_STATE_NONE)
@@ -129,14 +130,14 @@
- purple_serv_got_typing(gc, jm->from, 0, PURPLE_IM_TYPING);
+ purple_serv_got_typing(gc, contact, 0, PURPLE_IM_TYPING); - purple_serv_got_typing(gc, jm->from, 0, PURPLE_IM_TYPED);
+ purple_serv_got_typing(gc, contact, 0, PURPLE_IM_TYPED); PurpleIMConversation *im = purple_conversations_find_im_with_account(
if (im && jid->node && jid->domain) {
@@ -161,11 +162,11 @@
PURPLE_CONVERSATION(im), buf, 0);
- purple_serv_got_typing_stopped(gc, jm->from);
+ purple_serv_got_typing_stopped(gc, contact); - purple_serv_got_typing_stopped(gc, jm->from);
+ purple_serv_got_typing_stopped(gc, contact); if (jm->js->googletalk && jm->body && jm->xhtml == NULL) {
@@ -189,12 +190,12 @@
PurpleIMConversation *im;
- im = purple_conversations_find_im_with_account(jm->from, account);
- if (im && !purple_strequal(jm->from,
+ im = purple_conversations_find_im_with_account(contact, account); + if (im && !purple_strequal(contact, purple_conversation_get_name(PURPLE_CONVERSATION(im)))) {
purple_debug_info("jabber", "Binding conversation to %s\n",
- purple_conversation_set_name(PURPLE_CONVERSATION(im), jm->from);
+ purple_conversation_set_name(PURPLE_CONVERSATION(im), contact); @@ -211,7 +212,7 @@
jbr->thread_id = g_strdup(jm->thread_id);
- purple_serv_got_im(gc, jm->from, body->str, 0, jm->sent);
+ purple_serv_got_im(gc, contact, body->str, 0, jm->sent);