From 115d8cda7cbde497c3e483b76dc6bf88f07a6f96 Mon Sep 17 00:00:00 2001 From: nutzboi <31652809+nutzboi@users.noreply.github.com> Date: Sat, 23 May 2026 05:49:55 +0300 Subject: [PATCH] Prevent error in edge cases of ChatManager direction marker handling. --- src/utils/chat_manager.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/utils/chat_manager.cpp b/src/utils/chat_manager.cpp index 078963477e..43150b7000 100644 --- a/src/utils/chat_manager.cpp +++ b/src/utils/chat_manager.cpp @@ -196,16 +196,19 @@ void ChatManager::handleNormalChatMessage(std::shared_ptr peer, } std::string dir_marker = ""; - if(message.size() > 2){ + if(message.substr(0, prefix.size()) != prefix) + { if(message.substr(0,3) == "\u200F") dir_marker = "\u200F"; else if(message.substr(0,3) == "\u200E") dir_marker = "\u200E"; + + prefix = dir_marker + prefix; } std::string new_prefix = StringUtils::wideToUtf8( peer->getMainProfile()->getDecoratedName(decorator)) + ": "; - message = dir_marker + new_prefix + message.substr((dir_marker + prefix).length()); + message = dir_marker + new_prefix + message.substr(prefix.length()); if (message.size() == 0) return;