From 33403d650a0fce3d2d85b41e1f27d7141b4721f6 Mon Sep 17 00:00:00 2001
From: Nicolas Werner <nicolas.werner@hotmail.de>
Date: Mon, 3 Oct 2022 21:49:02 +0200
Subject: [PATCH] Don't strip fallbacks on plain text bodies

---
 src/timeline/TimelineModel.cpp | 20 +++++++-------------
 1 file changed, 7 insertions(+), 13 deletions(-)

diff --git a/src/timeline/TimelineModel.cpp b/src/timeline/TimelineModel.cpp
index 5232f16c9..7c718ca8e 100644
--- a/src/timeline/TimelineModel.cpp
+++ b/src/timeline/TimelineModel.cpp
@@ -585,22 +585,16 @@ TimelineModel::data(const mtx::events::collections::TimelineEvents &event, int r
 
         auto ascent = QFontMetrics(UserSettings::instance()->font()).ascent();
 
-        bool isReply = utils::isReply(event);
+        bool isReply = mtx::accessors::relations(event).reply_to(false).has_value();
 
         auto formattedBody_ = QString::fromStdString(formatted_body(event));
         if (formattedBody_.isEmpty()) {
-            auto body_ = QString::fromStdString(body(event));
-
-            if (isReply) {
-                while (body_.startsWith(QLatin1String("> ")))
-                    body_ = body_.right(body_.size() - body_.indexOf('\n') - 1);
-                if (body_.startsWith('\n'))
-                    body_ = body_.right(body_.size() - 1);
-            }
-            formattedBody_ = body_.toHtmlEscaped().replace('\n', QLatin1String("<br>"));
-        } else {
-            if (isReply)
-                formattedBody_ = formattedBody_.remove(replyFallback);
+            // NOTE(Nico): replies without html can't have a fallback. If they do, eh, who cares.
+            formattedBody_ = QString::fromStdString(body(event))
+                               .toHtmlEscaped()
+                               .replace('\n', QLatin1String("<br>"));
+        } else if (isReply) {
+            formattedBody_ = formattedBody_.remove(replyFallback);
         }
         formattedBody_ = utils::escapeBlacklistedHtml(formattedBody_);
 
-- 
GitLab