X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fctcphandler.cpp;h=b7fe6c90a315abb650b8c57031d4bb6d7dd379f9;hp=4089578df19c5b2ee133c6c48b64bea9e40bc9d8;hb=refs%2Fheads%2F0.2;hpb=864624482aae240a827d1ae0f96f614204f02838 diff --git a/src/core/ctcphandler.cpp b/src/core/ctcphandler.cpp index 4089578d..b7fe6c90 100644 --- a/src/core/ctcphandler.cpp +++ b/src/core/ctcphandler.cpp @@ -30,9 +30,9 @@ CtcpHandler::CtcpHandler(NetworkConnection *parent) { QByteArray MQUOTE = QByteArray("\020"); - ctcpMDequoteHash[MQUOTE + '0'] = QByteArray("\000"); - ctcpMDequoteHash[MQUOTE + 'n'] = QByteArray("\n"); - ctcpMDequoteHash[MQUOTE + 'r'] = QByteArray("\r"); + ctcpMDequoteHash[MQUOTE + '0'] = QByteArray(1, '\000'); + ctcpMDequoteHash[MQUOTE + 'n'] = QByteArray(1, '\n'); + ctcpMDequoteHash[MQUOTE + 'r'] = QByteArray(1, '\r'); ctcpMDequoteHash[MQUOTE + MQUOTE] = MQUOTE; QByteArray XQUOTE = QByteArray("\134"); @@ -42,8 +42,14 @@ CtcpHandler::CtcpHandler(NetworkConnection *parent) QByteArray CtcpHandler::lowLevelQuote(const QByteArray &message) { QByteArray quotedMessage = message; - QHash::const_iterator quoteIter = ctcpMDequoteHash.constBegin(); - while(quoteIter != ctcpMDequoteHash.constEnd()) { + + QHash quoteHash = ctcpMDequoteHash; + QByteArray MQUOTE = QByteArray("\020"); + quoteHash.remove(MQUOTE + MQUOTE); + quotedMessage.replace(MQUOTE, MQUOTE + MQUOTE); + + QHash::const_iterator quoteIter = quoteHash.constBegin(); + while(quoteIter != quoteHash.constEnd()) { quotedMessage.replace(quoteIter.value(), quoteIter.key()); quoteIter++; }