diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,7 +19,7 @@ include(ECMGenerateHeaders) include(ECMSetupVersion) include(FeatureSummary) - +include(ECMQtDeclareLoggingCategory) set(KMIME_LIB_VERSION ${PIM_VERSION}) @@ -78,4 +78,9 @@ COMPONENT Devel ) +install(FILES + kmime.categories + DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR} + ) + feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) diff --git a/kmime.categories b/kmime.categories new file mode 100644 --- /dev/null +++ b/kmime.categories @@ -0,0 +1 @@ +org.kde.pim.kmime kmime (pim lib) IDENTIFIER [KMIME_LOG] diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -24,6 +24,12 @@ kmime_types.cpp ) +ecm_qt_declare_logging_category(kmime_LIB_SRCS + HEADER kmime_debug.h + IDENTIFIER KMIME_LOG + CATEGORY_NAME org.kde.pim.kmime +) + add_library(KF5Mime ${kmime_LIB_SRCS}) generate_export_header(KF5Mime BASE_NAME KMime) diff --git a/src/kmime_charfreq.cpp b/src/kmime_charfreq.cpp --- a/src/kmime_charfreq.cpp +++ b/src/kmime_charfreq.cpp @@ -32,6 +32,7 @@ */ #include "kmime_charfreq.h" +#include "kmime_debug.h" using namespace KMime; @@ -194,7 +195,7 @@ CharFreq::Type CharFreq::type() const { #if 0 - qDebug("Total: %d; NUL: %d; CTL: %d;\n" + qCDebug(KMIME_LOG)("Total: %d; NUL: %d; CTL: %d;\n" "CR: %d; LF: %d; CRLF: %d;\n" "lineMin: %d; lineMax: %d;\n" "printable: %d; eightBit: %d;\n" diff --git a/src/kmime_header_parsing.cpp b/src/kmime_header_parsing.cpp --- a/src/kmime_header_parsing.cpp +++ b/src/kmime_header_parsing.cpp @@ -28,6 +28,7 @@ #include "kmime_util_p.h" #include "kmime_codecs.h" #include "kmime_dateformatter.h" +#include "kmime_debug.h" #include "kmime_warning.h" #include @@ -68,7 +69,7 @@ char ch = *scursor++; if (ch != '?') { - // qDebug() << "first"; + // qCDebug(KMIME_LOG) << "first"; //KMIME_WARN_PREMATURE_END_OF( EncodedWord ); return false; } @@ -90,7 +91,7 @@ // not found? can't be an encoded-word! if (scursor == send || *scursor != '?') { - // qDebug() << "second"; + // qCDebug(KMIME_LOG) << "second"; KMIME_WARN_PREMATURE_END_OF(EncodedWord); return false; } @@ -121,7 +122,7 @@ // not found? Can't be an encoded-word! if (scursor == send || *scursor != '?') { - // qDebug() << "third"; + // qCDebug(KMIME_LOG) << "third"; KMIME_WARN_PREMATURE_END_OF(EncodedWord); return false; } @@ -129,7 +130,7 @@ // extract the encoding information: QByteArray maybeEncoding(encodingStart, scursor - encodingStart); - // qDebug() << "parseEncodedWord: found charset == \"" << maybeCharset + // qCDebug(KMIME_LOG) << "parseEncodedWord: found charset == \"" << maybeCharset // << "\"; language == \"" << maybeLanguage // << "\"; encoding == \"" << maybeEncoding << "\""; @@ -207,7 +208,7 @@ return false; }; - // qDebug() << "mimeName(): \"" << textCodec->name() << "\""; + // qCDebug(KMIME_LOG) << "mimeName(): \"" << textCodec->name() << "\""; // allocate a temporary buffer to store the 8bit text: int encodedTextLength = encodedTextEnd - encodedTextStart; @@ -228,7 +229,7 @@ result = textCodec->toUnicode(buffer.data(), bbegin - buffer.data()); - // qDebug() << "result now: \"" << result << "\""; + // qCDebug(KMIME_LOG) << "result now: \"" << result << "\""; // cleanup: delete dec; language = maybeLanguage; @@ -1452,7 +1453,7 @@ value += textcodec->toUnicode(buffer.begin(), bit - buffer.begin()); - // qDebug() << "value now: \"" << value << "\""; + // qCDebug(KMIME_LOG) << "value now: \"" << value << "\""; // cleanup: delete dec; } @@ -1611,7 +1612,7 @@ for (int i = 0 ; i < stdDayNamesLen ; ++i) { if (qstrnicmp(scursor, stdDayNames[i], 3) == 0) { scursor += 3; - // qDebug() << "found" << stdDayNames[i]; + // qCDebug(KMIME_LOG) << "found" << stdDayNames[i]; return true; } } @@ -2049,7 +2050,7 @@ header = HeaderFactory::createHeader(rawType, rawTypeLen); } if (!header) { - //qWarning() << "Returning Generic header of type" << rawType; + //qCWarning(KMIME_LOG)() << "Returning Generic header of type" << rawType; header = new Headers::Generic(rawType, rawTypeLen); } if (folded) { diff --git a/src/kmime_headers.cpp b/src/kmime_headers.cpp --- a/src/kmime_headers.cpp +++ b/src/kmime_headers.cpp @@ -46,9 +46,9 @@ #include "kmime_content.h" #include "kmime_header_parsing.h" #include "kmime_headerfactory_p.h" +#include "kmime_debug.h" #include "kmime_warning.h" - #include #include @@ -293,7 +293,7 @@ const char *cursor = address.constData(); if (!parseAngleAddr(cursor, cursor + address.length(), addrSpec)) { if (!parseAddrSpec(cursor, cursor + address.length(), addrSpec)) { - qWarning() << "stringToMailbox: Invalid address"; + qCWarning(KMIME_LOG) << "stringToMailbox: Invalid address"; return false; } } @@ -848,7 +848,7 @@ } else { if (useOutlookAttachmentEncoding()) { rv += it.key().toLatin1() + '='; - qDebug() << "doing:" << it.value() << QLatin1String(d->encCS); + qCDebug(KMIME_LOG) << "doing:" << it.value() << QLatin1String(d->encCS); rv += "\"" + encodeRFC2047String(it.value(), d->encCS) + "\""; } else { rv += it.key().toLatin1() + "*="; @@ -1028,7 +1028,7 @@ if (parseAngleAddr(cursor, cursor + tmp.length(), msgId)) { d->msgIdList.append(msgId); } else { - qWarning() << "Unable to parse address spec!"; + qCWarning(KMIME_LOG) << "Unable to parse address spec!"; } } diff --git a/src/kmime_mdn.cpp b/src/kmime_mdn.cpp --- a/src/kmime_mdn.cpp +++ b/src/kmime_mdn.cpp @@ -35,6 +35,7 @@ #include "kmime_version.h" #include "kmime_util.h" #include "kmime_codecs.h" +#include "kmime_debug.h" #include #include @@ -297,7 +298,7 @@ return i18n(dispositionTypes[i].description); } } - qWarning() << "KMime::MDN::descriptionFor(): No such disposition type:" + qCWarning(KMIME_LOG) << "KMime::MDN::descriptionFor(): No such disposition type:" << static_cast(d); return QString(); } diff --git a/src/kmime_types.cpp b/src/kmime_types.cpp --- a/src/kmime_types.cpp +++ b/src/kmime_types.cpp @@ -26,6 +26,7 @@ #include "kmime_header_parsing_p.h" #include "kmime_util.h" #include "kmime_util_p.h" +#include "kmime_debug.h" #include @@ -136,7 +137,7 @@ cursor + addr.length(), mAddrSpec)) { if (!HeaderParsing::parseAddrSpec(cursor, cursor + addr.length(), mAddrSpec)) { - qWarning() << "Mailbox: Invalid address"; + qCWarning(KMIME_LOG) << "Mailbox: Invalid address"; return; } } diff --git a/src/kmime_util.cpp b/src/kmime_util.cpp --- a/src/kmime_util.cpp +++ b/src/kmime_util.cpp @@ -25,6 +25,7 @@ #include "kmime_util_p.h" #include "kmime_charfreq.h" +#include "kmime_debug.h" #include "kmime_header_parsing.h" #include "kmime_message.h" #include "kmime_warning.h" @@ -62,7 +63,7 @@ } c_harsetCache.append(name.toUpper()); - //qDebug() << "KNMimeBase::cachedCharset() number of cs" << c_harsetCache.count(); + //qCDebug(KMIME_LOG) << "KNMimeBase::cachedCharset() number of cs" << c_harsetCache.count(); return c_harsetCache.last(); } @@ -166,7 +167,7 @@ for (int i = 0; i < 10; i++) { int pos = (int)(61.0 * rand() / (RAND_MAX + 1.0)); - //qDebug() << pos; + //qCDebug(KMIME_LOG) << pos; p[i] = chars[pos]; } @@ -492,7 +493,7 @@ openDirChangers--; } else { // One PDF too much, remove it - qWarning() << "Possible Unicode spoofing (unexpected PDF) detected in" << input; + qCWarning(KMIME_LOG) << "Possible Unicode spoofing (unexpected PDF) detected in" << input; result.remove(i - numPDFsRemoved, 1); numPDFsRemoved++; } @@ -500,7 +501,7 @@ } if (openDirChangers > 0) { - qWarning() << "Possible Unicode spoofing detected in" << input; + qCWarning(KMIME_LOG) << "Possible Unicode spoofing detected in" << input; // At PDF chars to the end until the correct state is restored. // As a special exception, when encountering quoted strings, place the PDF before diff --git a/src/kmime_warning.h b/src/kmime_warning.h --- a/src/kmime_warning.h +++ b/src/kmime_warning.h @@ -25,8 +25,8 @@ #define KMIME_WARNING_H #ifndef KMIME_NO_WARNING -# include -# define KMIME_WARN qDebug() << "Tokenizer Warning:" +# include "kmime_debug.h" +# define KMIME_WARN qCDebug(KMIME_LOG) << "Tokenizer Warning:" # define KMIME_WARN_UNKNOWN(x,y) KMIME_WARN << "unknown " #x ": \"" \ << y << "\""; # define KMIME_WARN_UNKNOWN_ENCODING KMIME_WARN << "unknown encoding in " \