From e7bab789f142e08772e7c0a929c96faa817855ff Mon Sep 17 00:00:00 2001 From: nutzboi <31652809+nutzboi@users.noreply.github.com> Date: Sun, 5 Apr 2026 19:48:09 +0200 Subject: [PATCH] Handle direction markers in ChatManager::handleNormalChatMessage. Fixes malformed RTL messages, a regression introduced in c1ead9e. --- src/utils/chat_manager.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/utils/chat_manager.cpp b/src/utils/chat_manager.cpp index c0a920cb7d0..078963477ef 100644 --- a/src/utils/chat_manager.cpp +++ b/src/utils/chat_manager.cpp @@ -195,9 +195,17 @@ void ChatManager::handleNormalChatMessage(std::shared_ptr peer, return; } + std::string dir_marker = ""; + if(message.size() > 2){ + if(message.substr(0,3) == "\u200F") + dir_marker = "\u200F"; + else if(message.substr(0,3) == "\u200E") + dir_marker = "\u200E"; + } + std::string new_prefix = StringUtils::wideToUtf8( peer->getMainProfile()->getDecoratedName(decorator)) + ": "; - message = new_prefix + message.substr(prefix.length()); + message = dir_marker + new_prefix + message.substr((dir_marker + prefix).length()); if (message.size() == 0) return; @@ -318,4 +326,4 @@ bool ChatManager::isInPrivateChatRecipients(std::shared_ptr sender, } return false; } // isInPrivateChatRecipients -//----------------------------------------------------------------------------- \ No newline at end of file +//-----------------------------------------------------------------------------