summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2016-04-13 18:43:51 (GMT)
committerTobias Markmann <tm@ayena.de>2016-04-14 09:41:14 (GMT)
commita83ddaace71688abc7f2b6a6dd1b821f2194e890 (patch)
treee654cefc1ac259296519230e78821872b9e993d7 /Swift/Controllers/Chat/ChatMessageParser.cpp
parentb9ad76af13fc1d253845e027f91f22039bf14f9c (diff)
downloadswift-a83ddaace71688abc7f2b6a6dd1b821f2194e890.zip
swift-a83ddaace71688abc7f2b6a6dd1b821f2194e890.tar.bz2
Fix bug of /me commands not being shown as actions
Test-Information: Added a test case that verifies this behavior. This test case succeeded before the refactoring in 74e5131 and now succeeds again. Tested Swift UI 1-to-1 and MUC messages with /me commands. Tested on OS X 10.11.4 with open-source clang. Change-Id: I270a0b4e2ddc595919646bddcc5e1f27074c9e1f
Diffstat (limited to 'Swift/Controllers/Chat/ChatMessageParser.cpp')
-rw-r--r--Swift/Controllers/Chat/ChatMessageParser.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/Swift/Controllers/Chat/ChatMessageParser.cpp b/Swift/Controllers/Chat/ChatMessageParser.cpp
index c204371..d639b06 100644
--- a/Swift/Controllers/Chat/ChatMessageParser.cpp
+++ b/Swift/Controllers/Chat/ChatMessageParser.cpp
@@ -13,6 +13,7 @@
#include <boost/algorithm/string.hpp>
#include <Swiften/Base/Regex.h>
+#include <Swiften/Base/String.h>
#include <Swiften/Base/foreach.h>
#include <SwifTools/Linkify.h>
@@ -28,6 +29,11 @@ namespace Swift {
ChatWindow::ChatMessage ChatMessageParser::parseMessageBody(const std::string& body, const std::string& nick, bool senderIsSelf) {
ChatWindow::ChatMessage parsedMessage;
std::string remaining = body;
+ if (boost::starts_with(body, "/me ")) {
+ remaining = String::getSplittedAtFirst(body, ' ').second;
+ parsedMessage.setIsMeCommand(true);
+ }
+
/* Parse one, URLs */
while (!remaining.empty()) {
bool found = false;
@@ -131,8 +137,7 @@ namespace Swift {
newMessage.append(part);
}
}
- parsedMessage = newMessage;
-
+ parsedMessage.setParts(newMessage.getParts());
}
return parsedMessage;
}