diff --git a/src/Message.cpp b/src/Message.cpp index a56decf9..7d9d243f 100644 --- a/src/Message.cpp +++ b/src/Message.cpp @@ -133,7 +133,7 @@ void CMessage::Parse(CString sMessage) // NUL or CR or LF> // - if (sMessage.TrimLeft(":")) { + if (sMessage.TrimPrefix(":")) { m_Nick.Parse(sMessage.Token(0)); sMessage = sMessage.Token(1, true); } @@ -145,7 +145,7 @@ void CMessage::Parse(CString sMessage) // m_vsParams.clear(); while (!sMessage.empty()) { - if (sMessage.TrimLeft(":")) { + if (sMessage.TrimPrefix(":")) { m_vsParams.push_back(sMessage); sMessage.clear(); } else { diff --git a/test/MessageTest.cpp b/test/MessageTest.cpp index 351fa930..b50886ed 100644 --- a/test/MessageTest.cpp +++ b/test/MessageTest.cpp @@ -198,6 +198,14 @@ TEST(MessageTest, Topic) { EXPECT_EQ(":nick TOPIC #chan test", topic.ToString()); } +TEST(MessageTest, Parse) { + CMessage msg; + + // #1037 + msg.Parse(":irc.znc.in PRIVMSG ::)"); + EXPECT_EQ(":)", msg.GetParam(0)); +} + // The test data for MessageTest.Parse originates from https://github.com/SaberUK/ircparser // // IRCParser - Internet Relay Chat Message Parser