From b8088a5b025a50aac3ebe2ddc6405c4e93f48798 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Fri, 21 Aug 2015 22:04:15 +0200 Subject: [PATCH] Fix CMessage::ToString() to ':' -prefix the last param when appropriate Close #1037 --- src/Message.cpp | 6 ++++-- test/MessageTest.cpp | 10 +++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/Message.cpp b/src/Message.cpp index d8615841..a56decf9 100644 --- a/src/Message.cpp +++ b/src/Message.cpp @@ -96,9 +96,11 @@ CString CMessage::ToString(unsigned int uFlags) const } // - for (const CString& sParam : m_vsParams) { + unsigned uParams = m_vsParams.size(); + for (unsigned int uIdx = 0; uIdx < uParams; ++uIdx) { + const CString& sParam = m_vsParams[uIdx]; sMessage += " "; - if (sParam.Contains(" ")) { + if (uIdx == uParams - 1 && (sParam.StartsWith(":") || sParam.Contains(" "))) { sMessage += ":"; } sMessage += sParam; diff --git a/test/MessageTest.cpp b/test/MessageTest.cpp index 77d56a69..351fa930 100644 --- a/test/MessageTest.cpp +++ b/test/MessageTest.cpp @@ -163,15 +163,15 @@ TEST(MessageTest, PrivCTCP) { } TEST(MessageTest, PrivMsg) { - CMessage msg(":sender PRIVMSG receiver :text"); + CMessage msg(":sender PRIVMSG receiver :foo bar"); CPrivMessage& priv = static_cast(msg); EXPECT_EQ("sender", priv.GetNick().GetNick()); EXPECT_EQ("PRIVMSG", priv.GetCommand()); - EXPECT_EQ("text", priv.GetText()); - - priv.SetText("foo bar"); EXPECT_EQ("foo bar", priv.GetText()); - EXPECT_EQ(":sender PRIVMSG receiver :foo bar", priv.ToString()); + + priv.SetText(":)"); + EXPECT_EQ(":)", priv.GetText()); + EXPECT_EQ(":sender PRIVMSG receiver ::)", priv.ToString()); } TEST(MessageTest, Quit) {