X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fctcphandler.cpp;fp=src%2Fcore%2Fctcphandler.cpp;h=1ebbfafbacf401eed2d75cdcee659acf2da8c840;hp=ec21f4ccd2c9a357e0cea1029d49bf9cb5caced6;hb=d7a03811630fcaad68c38f1dbe3b240d2c62f1ef;hpb=4d97c55d7f8864041b891b2d2f13c909f8b548f8 diff --git a/src/core/ctcphandler.cpp b/src/core/ctcphandler.cpp index ec21f4cc..1ebbfafb 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++; }