From 7454c8c597e93c4c19d98ee0946a555bb445f71e Mon Sep 17 00:00:00 2001 From: LDA Date: Sun, 9 Mar 2025 11:05:55 +0000 Subject: [PATCH] [FIX] Fix a few bugs about edits and XEP-393 formatting --- src/Parsee/Utils/Formatting.c | 12 ++++++++++-- src/XEP-0393.c | 4 ++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/Parsee/Utils/Formatting.c b/src/Parsee/Utils/Formatting.c index 07cc191..ec95aef 100644 --- a/src/Parsee/Utils/Formatting.c +++ b/src/Parsee/Utils/Formatting.c @@ -247,6 +247,15 @@ GetHTMLBody(HashMap *event) } return GrabString(event, 2, "content", "formatted_body"); } +static char * +GetBodyFormat(HashMap *event) +{ + if (MatrixGetEdit(event)) + { + return GrabString(event, 3, "content", "m.new_content", "format"); + } + return GrabString(event, 2, "content", "format"); +} char * ParseeXMPPify(ParseeData *data, HashMap *event) { @@ -267,8 +276,7 @@ ParseeXMPPify(ParseeData *data, HashMap *event) return NULL; } - format = JsonValueAsString(JsonGet(event, 2, "content", "format")); - if (!StrEquals(format, "org.matrix.custom.html")) + if (!StrEquals(GetBodyFormat(event), "org.matrix.custom.html")) { /* Settle for the raw body instead. */ char *body = GetRawBody(event); diff --git a/src/XEP-0393.c b/src/XEP-0393.c index a0f6be9..784bacf 100644 --- a/src/XEP-0393.c +++ b/src/XEP-0393.c @@ -329,8 +329,8 @@ ShoveXML(XEP393Element *element, XMLElement *xmlparent) break; case XEP393_MONO: head = XMLCreateTag("code"); + XMLAddChild(xmlparent, XMLCreateText("`")); XMLAddChild(xmlparent, head); - XMLAddChild(head, XMLCreateText("`")); break; case XEP393_SRKE: head = XMLCreateTag("s"); @@ -372,7 +372,7 @@ ShoveXML(XEP393Element *element, XMLElement *xmlparent) XMLAddChild(head, XMLCreateText("_")); break; case XEP393_MONO: - XMLAddChild(head, XMLCreateText("`")); + XMLAddChild(xmlparent, XMLCreateText("`")); break; case XEP393_SRKE: XMLAddChild(head, XMLCreateText("~"));