diff --git a/backends/libcommuni/ircnetworkplugin.cpp b/backends/libcommuni/ircnetworkplugin.cpp index 581ca1b7..f2fc4574 100644 --- a/backends/libcommuni/ircnetworkplugin.cpp +++ b/backends/libcommuni/ircnetworkplugin.cpp @@ -144,7 +144,7 @@ void IRCNetworkPlugin::handleMessageSendRequest(const std::string &user, const s LOG4CXX_INFO(logger, user << ": Session name: " << session << ", message to " << target); if (message.find("/me") == 0) { - m_sessions[session]->sendCommand(IrcCommand::createCtcpAction(FROM_UTF8(target), FROM_UTF8(message))); + m_sessions[session]->sendCommand(IrcCommand::createCtcpAction(FROM_UTF8(target), FROM_UTF8(message.substr(4)))); } else { m_sessions[session]->sendCommand(IrcCommand::createMessage(FROM_UTF8(target), FROM_UTF8(message))); diff --git a/backends/libcommuni/session.cpp b/backends/libcommuni/session.cpp index 2eabfe96..6abdb4db 100644 --- a/backends/libcommuni/session.cpp +++ b/backends/libcommuni/session.cpp @@ -158,20 +158,25 @@ void MyIrcSession::on_messageReceived(IrcMessage *message) { } } + QString msg = m->message(); + if (m->isAction()) { + msg = QString("/me ") + msg; + } + std::string target = TO_UTF8(m->target()); LOG4CXX_INFO(logger, user << ": Message from " << target); if (target.find("#") == 0) { bool flags = 0; std::string nickname = TO_UTF8(m->sender().name()); flags = correctNickname(nickname); - np->handleMessage(user, target + suffix, TO_UTF8(m->message()), nickname); + np->handleMessage(user, target + suffix, TO_UTF8(msg), nickname); } else { bool flags = 0; std::string nickname = TO_UTF8(m->sender().name()); flags = correctNickname(nickname); LOG4CXX_INFO(logger, nickname + suffix); - np->handleMessage(user, nickname + suffix, TO_UTF8(m->message())); + np->handleMessage(user, nickname + suffix, TO_UTF8(msg)); } }