Seriously, '%' is not allowed in nicknames. But who cares about RFCs...
Escaping this now in the nickname as well, and additionally prevent the style engine
from hanging itself if it still encounters an unescaped % (even though that can't happen now
anymore). Thanks to ricky26 for the heads up and a patch.
Fixes #946, fixes #947
if(s[pos+1] == 'D') code += s[pos+2];
FormatType ftype = formatType(code);
if(ftype == Invalid) {
if(s[pos+1] == 'D') code += s[pos+2];
FormatType ftype = formatType(code);
if(ftype == Invalid) {
qWarning() << (QString("Invalid format code in string: %1").arg(s));
continue;
}
qWarning() << (QString("Invalid format code in string: %1").arg(s));
continue;
}
QString bufferName = bufferInfo().bufferName();
bufferName.replace('%', "%%"); // well, you _can_ have a % in a buffername apparently... -_-
host.replace('%', "%%"); // hostnames too...
QString bufferName = bufferInfo().bufferName();
bufferName.replace('%', "%%"); // well, you _can_ have a % in a buffername apparently... -_-
host.replace('%', "%%"); // hostnames too...
- user.replace('%', "%%"); // and the username.
+ user.replace('%', "%%"); // and the username...
+ nick.replace('%', "%%"); // ... and then there's totally RFC-violating servers like justin.tv m(
const int maxNetsplitNicks = 15;
QString t;
const int maxNetsplitNicks = 15;
QString t;