about summary refs log tree commit diff stats
path: root/src/xmpp/message.c
diff options
context:
space:
mode:
authorMichael Vetter <jubalh@iodoru.org>2020-02-13 12:54:31 +0100
committerMichael Vetter <jubalh@iodoru.org>2020-02-14 10:17:07 +0100
commite27c414f1f22f8905ff2586a39ba91ff2ea23cb8 (patch)
tree584d065f33cbf0f8df8b3c9516024f94bbe63cb6 /src/xmpp/message.c
parent9b3593bdf9e00bb042de80f250899d201eccb091 (diff)
downloadprofani-tty-e27c414f1f22f8905ff2586a39ba91ff2ea23cb8.tar.gz
xep-0308: enable for carbon copied messages
If we are connected with another client and send a message, then correct
it. We now display it correctly in Profanity.

Id wasn't saved for carbon copied messages too so far.
Diffstat (limited to 'src/xmpp/message.c')
-rw-r--r--src/xmpp/message.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/xmpp/message.c b/src/xmpp/message.c
index a3f37baf..0caef0f6 100644
--- a/src/xmpp/message.c
+++ b/src/xmpp/message.c
@@ -1055,6 +1055,21 @@ _handle_carbons(xmpp_stanza_t *const stanza)
         message->mucuser = TRUE;
     }
 
+    // id
+    const char *id = xmpp_stanza_get_id(message_stanza);
+    if (id) {
+        message->id = strdup(id);
+    }
+
+    // replace id
+    xmpp_stanza_t *replace_id_stanza = xmpp_stanza_get_child_by_ns(message_stanza, STANZA_NS_LAST_MESSAGE_CORRECTION);
+    if (replace_id_stanza) {
+        const char *replace_id = xmpp_stanza_get_id(replace_id_stanza);
+        if (replace_id) {
+            message->replace_id = strdup(replace_id);
+        }
+    }
+
     // check omemo encryption
 #ifdef HAVE_OMEMO
     message->plain = omemo_receive_message(message_stanza, &message->trusted);