From 57fb58bf71f7c5a95cb7b21d6331bab7a3711d36 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Thu, 17 Sep 2015 13:26:24 +0200 Subject: [PATCH] Fix CModeMessage::GetModes() Thanks to KindOne for finding the bug. CModeMessage::GetModes() must trim the colon that CMessage::GetParams() may include. --- include/znc/Message.h | 2 +- test/MessageTest.cpp | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/include/znc/Message.h b/include/znc/Message.h index 3167a304..4f87f14d 100644 --- a/include/znc/Message.h +++ b/include/znc/Message.h @@ -144,7 +144,7 @@ public: class CModeMessage : public CTargetMessage { public: - CString GetModes() const { return GetParams(1); } + CString GetModes() const { return GetParams(1).TrimPrefix_n(":"); } }; class CNickMessage : public CMessage { diff --git a/test/MessageTest.cpp b/test/MessageTest.cpp index 46e1bfe4..6a22f047 100644 --- a/test/MessageTest.cpp +++ b/test/MessageTest.cpp @@ -249,6 +249,11 @@ TEST(MessageTest, Mode) { EXPECT_EQ("+k foo", msg.GetModes()); EXPECT_EQ(":nick MODE #chan +k foo", msg.ToString()); + + msg.Parse(":nick MODE nick :+i"); + EXPECT_EQ("+i", msg.GetModes()); + + EXPECT_EQ(":nick MODE nick :+i", msg.ToString()); } TEST(MessageTest, Nick) {