- va_list argsPtr;
- char line[MAXBUF];
-
- va_start(argsPtr, text);
- vsnprintf(line, MAXBUF, text, argsPtr);
- va_end(argsPtr);
-
- DumpText(user, std::string(line));
-}
-
-void InspIRCd::DumpText(User* user, const std::string &LinePrefix, std::stringstream &TextStream)
-{
- char line[MAXBUF];
- int start_pos = LinePrefix.length();
- int pos = start_pos;
- memcpy(line, LinePrefix.data(), pos);
- std::string Word;
- while (TextStream >> Word)
- {
- int len = Word.length();
- if (pos + len + 12 > MAXBUF)
- {
- line[pos] = '\0';
- DumpText(user, std::string(line));
- pos = start_pos;
- }
- line[pos] = ' ';
- memcpy(line + pos + 1, Word.data(), len);
- pos += len + 1;
- }
- line[pos] = '\0';
- DumpText(user, std::string(line));
+ Modes->Process(parameters, user);
+ if (!Modes->GetLastParse().empty())
+ this->PI->SendMode(parameters[0], Modes->GetLastParseParams(), Modes->GetLastParseTranslate());