summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2016-05-04 14:15:53 (GMT)
committerTobias Markmann <tm@ayena.de>2016-05-04 14:43:41 (GMT)
commitb2d3eae9fd085cd91b3efac53dca81fd450d5393 (patch)
tree0bdb6f7359ffdd69ee81203e8faa435eaff7c633 /Swift/Controllers/Chat/ChatMessageParser.cpp
parent6af098245b58d484d9c86c1f832588455410750b (diff)
downloadswift-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.cpp17
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());
}
}