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) {