diff options
author | Tobias Markmann <tm@ayena.de> | 2016-05-04 14:15:53 (GMT) |
---|---|---|
committer | Tobias Markmann <tm@ayena.de> | 2016-05-04 14:43:41 (GMT) |
commit | b2d3eae9fd085cd91b3efac53dca81fd450d5393 (patch) | |
tree | 0bdb6f7359ffdd69ee81203e8faa435eaff7c633 /Swift/Controllers/Chat/ChatMessageParser.cpp | |
parent | 6af098245b58d484d9c86c1f832588455410750b (diff) | |
download | swift-b2d3eae9fd085cd91b3efac53dca81fd450d5393.zip swift-b2d3eae9fd085cd91b3efac53dca81fd450d5393.tar.bz2 |
Fix /me message handling for highlighted messages
Test-Information:
Added a unit test to test for the fix.
Tests pass on OS X 10.11.4.
Change-Id: Ibf071ae47663bfefdc856339932de6a1fe4a642d
Diffstat (limited to 'Swift/Controllers/Chat/ChatMessageParser.cpp')
-rw-r--r-- | Swift/Controllers/Chat/ChatMessageParser.cpp | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/Swift/Controllers/Chat/ChatMessageParser.cpp b/Swift/Controllers/Chat/ChatMessageParser.cpp index d639b06..ec7df6c 100644 --- a/Swift/Controllers/Chat/ChatMessageParser.cpp +++ b/Swift/Controllers/Chat/ChatMessageParser.cpp @@ -14,7 +14,6 @@ #include <Swiften/Base/Regex.h> #include <Swiften/Base/String.h> -#include <Swiften/Base/foreach.h> #include <SwifTools/Linkify.h> @@ -68,13 +67,12 @@ namespace Swift { return parsedMessage; } - ChatWindow::ChatMessage ChatMessageParser::emoticonHighlight(const ChatWindow::ChatMessage& message) - { + ChatWindow::ChatMessage ChatMessageParser::emoticonHighlight(const ChatWindow::ChatMessage& message) { ChatWindow::ChatMessage parsedMessage = message; std::string regexString; /* Parse two, emoticons */ - foreach (StringPair emoticon, emoticons_) { + for (StringPair emoticon : emoticons_) { /* Construct a regexp that finds an instance of any of the emoticons inside a group * at the start or end of the line, or beside whitespace. */ @@ -91,7 +89,7 @@ namespace Swift { boost::regex emoticonRegex(regexString); ChatWindow::ChatMessage newMessage; - foreach (std::shared_ptr<ChatWindow::ChatMessagePart> part, parsedMessage.getParts()) { + for (std::shared_ptr<ChatWindow::ChatMessagePart> part : parsedMessage.getParts()) { std::shared_ptr<ChatWindow::ChatTextMessagePart> textPart; if ((textPart = std::dynamic_pointer_cast<ChatWindow::ChatTextMessagePart>(part))) { try { @@ -142,8 +140,7 @@ namespace Swift { return parsedMessage; } - ChatWindow::ChatMessage ChatMessageParser::splitHighlight(const ChatWindow::ChatMessage& message, const std::string& nick) - { + ChatWindow::ChatMessage ChatMessageParser::splitHighlight(const ChatWindow::ChatMessage& message, const std::string& nick) { ChatWindow::ChatMessage parsedMessage = message; for (size_t i = 0; i < highlightRules_->getSize(); ++i) { @@ -156,9 +153,9 @@ namespace Swift { continue; /* do not try to highlight text, if no highlight color is specified */ } const std::vector<boost::regex> keywordRegex = rule.getKeywordRegex(nick); - foreach(const boost::regex& regex, keywordRegex) { + for (const boost::regex& regex : keywordRegex) { ChatWindow::ChatMessage newMessage; - foreach (std::shared_ptr<ChatWindow::ChatMessagePart> part, parsedMessage.getParts()) { + for (std::shared_ptr<ChatWindow::ChatMessagePart> part : parsedMessage.getParts()) { std::shared_ptr<ChatWindow::ChatTextMessagePart> textPart; if ((textPart = std::dynamic_pointer_cast<ChatWindow::ChatTextMessagePart>(part))) { try { @@ -191,7 +188,7 @@ namespace Swift { newMessage.append(part); } } - parsedMessage = newMessage; + parsedMessage.setParts(newMessage.getParts()); } } |