+
+ std::string line;
+ for (int i = 1; i < pcnt; i++)
+ {
+ if (i != 1)
+ line.append(" ");
+
+ line.append(parameters[i]);
+ }
+
+ std::string* text;
+ dest->GetExt("swhois", text);
+
+ if (text)
+ {
+ // We already had it set...
+
+ if (!ServerInstance->ULine(user->server))
+ // Ulines set SWHOISes silently
+ ServerInstance->WriteOpers("*** %s used SWHOIS to set %s's extra whois from '%s' to '%s'", user->nick, dest->nick, text->c_str(), line.c_str());
+
+ dest->Shrink("swhois");
+ DELETE(text);
+ }
+ else if (!ServerInstance->ULine(user->server))
+ {
+ // Ulines set SWHOISes silently
+ ServerInstance->WriteOpers("*** %s used SWHOIS to set %s's extra whois to '%s'", user->nick, dest->nick, line.c_str());
+ }
+
+ text = new std::string(line);
+ dest->Extend("swhois", text);
+
+ return CMD_SUCCESS;