diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/modules/m_helpop.cpp | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/modules/m_helpop.cpp b/src/modules/m_helpop.cpp index 9c7d409a8..7ce44441d 100644 --- a/src/modules/m_helpop.cpp +++ b/src/modules/m_helpop.cpp @@ -45,16 +45,17 @@ class CommandHelpop : public Command if (parameter == "index") { /* iterate over all helpop items */ - user->WriteServ("NOTICE %s :HELPOP topic index", user->nick.c_str()); + user->WriteServ("290 %s :HELPOP topic index", user->nick.c_str()); for (std::map<irc::string, std::string>::iterator iter = helpop_map.begin(); iter != helpop_map.end(); iter++) { - user->WriteServ("NOTICE %s : %s", user->nick.c_str(), iter->first.c_str()); + user->WriteServ("292 %s : %s", user->nick.c_str(), iter->first.c_str()); } - user->WriteServ("NOTICE %s :*** End of HELPOP topic index", user->nick.c_str()); + user->WriteServ("292 %s :*** End of HELPOP topic index", user->nick.c_str()); } else { - user->WriteServ("NOTICE %s :*** HELPOP for %s", user->nick.c_str(), parameter.c_str()); + user->WriteServ("290 %s :*** HELPOP for %s", user->nick.c_str(), parameter.c_str()); + user->WriteServ("292 %s : -", user->nick.c_str()); std::map<irc::string, std::string>::iterator iter = helpop_map.find(parameter); @@ -68,9 +69,16 @@ class CommandHelpop : public Command std::string token = "*"; while (stream.GetToken(token)) - user->WriteServ("NOTICE %s :%s", user->nick.c_str(), token.c_str()); + { + // Writing a blank line will not work with some clients + if (token.empty()) + user->WriteServ("292 %s : ", user->nick.c_str()); + else + user->WriteServ("292 %s :%s", user->nick.c_str(), token.c_str()); + } - user->WriteServ("NOTICE %s :*** End of HELPOP", user->nick.c_str()); + user->WriteServ("292 %s : -", user->nick.c_str()); + user->WriteServ("292 %s :*** End of HELPOP", user->nick.c_str()); } /* We dont want these going out over the network, return CMD_FAILURE |