From 05be7fe249b6636e7ff1e9dace0bf34532b29637 Mon Sep 17 00:00:00 2001 From: LDA Date: Mon, 16 Sep 2024 09:32:44 +0200 Subject: [PATCH] [MOD] Do some tricks to make formatting nicer It just didn't make sense on basic messages and Element Android. Fluffy behaved as excepted, though. --- src/Parsee/Data.c | 5 ----- src/XEP-0393.c | 22 +++++++++++++++++++--- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/Parsee/Data.c b/src/Parsee/Data.c index 2dae26e..d4bf6cb 100644 --- a/src/Parsee/Data.c +++ b/src/Parsee/Data.c @@ -159,16 +159,13 @@ ParseeCleanup(void *datp) ArrayAdd(to_delete, StrDuplicate(f)); \ cleaned++; \ } \ - Log(LOG_INFO, "Free A, %s [%s][%p]", f, #field, ref); \ DbUnlock(data->db, ref); \ - Log(LOG_INFO, "Free'd!"); \ } \ DbListFree(field##_list); \ \ for (j = 0; j < ArraySize(to_delete); j++) \ { \ field = ArrayGet(to_delete, j); \ - Log(LOG_INFO, "%s (%ss)", field, #field"s"); \ if (cleaned > threshold) \ { \ DbDelete(data->db, 4, "chats", chat, #field"s", field); \ @@ -239,9 +236,7 @@ ParseeCleanup(void *datp) CleanupField(event, 3 HOURS, 500); CleanupField(id, 3 HOURS, 500); - Log(LOG_INFO, "Free B %p", ref); DbUnlock(data->db, ref); - Log(LOG_INFO, "Free'd!"); } DbListFree(chats); Log(LOG_DEBUG, "Cleant up %d entries...", entries); diff --git a/src/XEP-0393.c b/src/XEP-0393.c index a90b4a1..2976563 100644 --- a/src/XEP-0393.c +++ b/src/XEP-0393.c @@ -399,21 +399,37 @@ ShoveXML(XEP393Element *element, XMLElement *xmlparent) char * XEP393ToXMLString(XEP393Element *xepd) { - XMLElement *root; + XMLElement *root, *act_root; + XMLElement *child; Stream *writer; char *ret = NULL; + size_t i, children; if (!xepd) { return NULL; } root = XMLCreateTag("span"); + act_root = root; ShoveXML(xepd, root); writer = StrStreamWriter(&ret); - XMLEncode(writer, root); - XMLFreeElement(root); + children = ArraySize(root->children); + + child = ArrayGet(root->children, 0); + if (children == 1 && StrEquals(child->name, "p")) + { + children = ArraySize(child->children); + root = child; + } + for (i = 0; i < children; i++) + { + child = ArrayGet(root->children, i); + + XMLEncode(writer, child); + } + XMLFreeElement(act_root); StreamFlush(writer); StreamClose(writer);