From d7a03811630fcaad68c38f1dbe3b240d2c62f1ef Mon Sep 17 00:00:00 2001 From: Marcus Eggenberger Date: Sun, 26 Oct 2008 00:01:27 +0200 Subject: [PATCH] Note to myself: QByteArray("\000") != QByteArray (1, '\000') --- src/core/ctcphandler.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) 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++; } -- 2.20.1