Fix CMessage::ToString() to ':' -prefix the last param when appropriate

Close #1037
This commit is contained in:
J-P Nurmi
2015-08-21 22:04:15 +02:00
parent e546cedaa2
commit b8088a5b02
2 changed files with 9 additions and 7 deletions
+4 -2
View File
@@ -96,9 +96,11 @@ CString CMessage::ToString(unsigned int uFlags) const
}
// <params>
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;
+5 -5
View File
@@ -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<CPrivMessage&>(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) {