ctcpparam = QString();
}
- if(!_ignoreListManager->ctcpMatch(prefix, network()->networkName(), ctcpcmd.toUpper())) {
+ if(ctcpcmd.toUpper() == QLatin1String("ACTION") || !_ignoreListManager->ctcpMatch(prefix, network()->networkName(), ctcpcmd.toUpper())) {
QString reply_;
handle(ctcpcmd, Q_ARG(CtcpType, ctcptype), Q_ARG(QString, prefix), Q_ARG(QString, target), Q_ARG(QString, ctcpparam), Q_ARG(QString, reply_));
if(ctcptype == CtcpQuery && !reply_.isNull()) {
answerSize += replies.at(i).size();
}
- QByteArray quotedReply(answerSize, 0);
- int nextPos = 0;
- QByteArray &reply = quotedReply;
+ QByteArray quotedReply;
+ quotedReply.reserve(answerSize);
for(int i = 0; i < replies.count(); i++) {
- reply = replies.at(i);
- quotedReply.replace(nextPos, reply.size(), reply);
- nextPos += reply.size();
+ quotedReply.append(replies.at(i));
}
params << serverEncode(bufname) << quotedReply;