- Q_UNUSED(bufferInfo)
- emit displayMsg(Message::Error, BufferInfo::StatusBuffer, "", QString("Error: %1 %2").arg(cmd).arg(msg));
+ Q_UNUSED(bufferInfo);
+ emit displayMsg(Message::Error, BufferInfo::StatusBuffer, "", QString("Error: %1 %2").arg(cmd, msg));
+}
+
+void UserInputHandler::putPrivmsg(const QByteArray &target, const QByteArray &message) {
+ static const char *cmd = "PRIVMSG";
+ int overrun = lastParamOverrun(cmd, QList<QByteArray>() << target << message);
+ if(overrun) {
+ static const char *splitter = " .,-";
+ int maxSplitPos = message.count() - overrun;
+ int splitPos = -1;
+ for(const char *splitChar = splitter; *splitChar != 0; splitChar++) {
+ splitPos = qMax(splitPos, message.lastIndexOf(*splitChar, maxSplitPos));
+ }
+ if(splitPos <= 0) {
+ splitPos = maxSplitPos;
+ }
+ putCmd(cmd, QList<QByteArray>() << target << message.left(splitPos));
+ putPrivmsg(target, message.mid(splitPos));
+ return;
+ } else {
+ putCmd(cmd, QList<QByteArray>() << target << message);
+ }