virtual void OnModCommand(const CString& sLine) { const CString sUser = sLine.Token(0); const CString sDirection = sLine.Token(1); CUser *pUser = CZNC::Get().FindUser(sUser); if (!pUser) { PutModule("User not found"); PutModule("The expected format is: <user> [<in|out>] <line to send>"); PutModule("Out (default): The line will be sent to the user's IRC server"); PutModule("In: The line will be sent to the user's IRC client"); return; } if (!sDirection.CaseCmp("in")) { pUser->PutUser(sLine.Token(2, true)); } else if (!sDirection.CaseCmp("out")) { pUser->PutIRC(sLine.Token(2, true)); } else { /* The user did not supply a direction, let's send the line out. We do this to preserve backwards compatibility. */ pUser->PutIRC(sLine.Token(1, true)); } PutModule("done"); }
TEST(StringTest, Cmp) { CString s = "Bbb"; EXPECT_EQ(CString("Bbb"), s); EXPECT_LT(CString("Aaa"), s); EXPECT_GT(CString("Ccc"), s); EXPECT_EQ(0, s.StrCmp("Bbb")); EXPECT_GT(0, s.StrCmp("bbb")); EXPECT_LT(0, s.StrCmp("Aaa")); EXPECT_GT(0, s.StrCmp("Ccc")); EXPECT_EQ(0, s.CaseCmp("Bbb")); EXPECT_EQ(0, s.CaseCmp("bbb")); EXPECT_LT(0, s.CaseCmp("Aaa")); EXPECT_GT(0, s.CaseCmp("Ccc")); EXPECT_TRUE(s.Equals("bbb")); EXPECT_FALSE(s.Equals("bbb", true)); EXPECT_FALSE(s.Equals("bb")); }