[FIX] Fix a few bugs about edits and XEP-393 formatting

This commit is contained in:
LDA 2025-03-09 11:05:55 +00:00
commit 7454c8c597
2 changed files with 12 additions and 4 deletions

View file

@ -247,6 +247,15 @@ GetHTMLBody(HashMap *event)
} }
return GrabString(event, 2, "content", "formatted_body"); 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 * char *
ParseeXMPPify(ParseeData *data, HashMap *event) ParseeXMPPify(ParseeData *data, HashMap *event)
{ {
@ -267,8 +276,7 @@ ParseeXMPPify(ParseeData *data, HashMap *event)
return NULL; return NULL;
} }
format = JsonValueAsString(JsonGet(event, 2, "content", "format")); if (!StrEquals(GetBodyFormat(event), "org.matrix.custom.html"))
if (!StrEquals(format, "org.matrix.custom.html"))
{ {
/* Settle for the raw body instead. */ /* Settle for the raw body instead. */
char *body = GetRawBody(event); char *body = GetRawBody(event);

View file

@ -329,8 +329,8 @@ ShoveXML(XEP393Element *element, XMLElement *xmlparent)
break; break;
case XEP393_MONO: case XEP393_MONO:
head = XMLCreateTag("code"); head = XMLCreateTag("code");
XMLAddChild(xmlparent, XMLCreateText("`"));
XMLAddChild(xmlparent, head); XMLAddChild(xmlparent, head);
XMLAddChild(head, XMLCreateText("`"));
break; break;
case XEP393_SRKE: case XEP393_SRKE:
head = XMLCreateTag("s"); head = XMLCreateTag("s");
@ -372,7 +372,7 @@ ShoveXML(XEP393Element *element, XMLElement *xmlparent)
XMLAddChild(head, XMLCreateText("_")); XMLAddChild(head, XMLCreateText("_"));
break; break;
case XEP393_MONO: case XEP393_MONO:
XMLAddChild(head, XMLCreateText("`")); XMLAddChild(xmlparent, XMLCreateText("`"));
break; break;
case XEP393_SRKE: case XEP393_SRKE:
XMLAddChild(head, XMLCreateText("~")); XMLAddChild(head, XMLCreateText("~"));