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