diff options
author | Tobias Markmann <tm@ayena.de> | 2016-04-13 18:43:51 (GMT) |
---|---|---|
committer | Tobias Markmann <tm@ayena.de> | 2016-04-14 09:41:14 (GMT) |
commit | a83ddaace71688abc7f2b6a6dd1b821f2194e890 (patch) | |
tree | e654cefc1ac259296519230e78821872b9e993d7 /Swift/Controllers/Chat/ChatMessageParser.cpp | |
parent | b9ad76af13fc1d253845e027f91f22039bf14f9c (diff) | |
download | swift-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.cpp | 9 |
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; } |