Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kmime for openSUSE:Factory checked in at 2022-08-19 17:52:08 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kmime (Old) and /work/SRC/openSUSE:Factory/.kmime.new.2083 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kmime" Fri Aug 19 17:52:08 2022 rev:85 rq:997861 version:22.08.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kmime/kmime.changes 2022-07-09 17:01:13.540633412 +0200 +++ /work/SRC/openSUSE:Factory/.kmime.new.2083/kmime.changes 2022-08-19 17:52:41.043623215 +0200 @@ -1,0 +2,20 @@ +Sun Aug 14 09:42:50 UTC 2022 - Christophe Giboudeaux <[email protected]> + +- Update to 22.08.0 + * New feature release + * For more details please see: + * https://kde.org/announcements/gear/22.08.0/ + +------------------------------------------------------------------- +Fri Aug 5 12:11:04 UTC 2022 - Christophe Giboudeaux <[email protected]> + +- Update to 22.07.90 + * New feature release + +------------------------------------------------------------------- +Sat Jul 16 08:28:18 UTC 2022 - Christophe Giboudeaux <[email protected]> + +- Update to 22.07.80 + * New feature release + +------------------------------------------------------------------- Old: ---- kmime-22.04.3.tar.xz kmime-22.04.3.tar.xz.sig New: ---- kmime-22.08.0.tar.xz kmime-22.08.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kmime.spec ++++++ --- /var/tmp/diff_new_pack.pZCXKi/_old 2022-08-19 17:52:41.739624674 +0200 +++ /var/tmp/diff_new_pack.pZCXKi/_new 2022-08-19 17:52:41.743624682 +0200 @@ -21,7 +21,7 @@ %{!?_kapp_version: %define _kapp_version %(echo %{version}| awk -F. '{print $1"."$2}')} %bcond_without released Name: kmime -Version: 22.04.3 +Version: 22.08.0 Release: 0 Summary: KDE PIM libraries MIME support License: LGPL-2.1-or-later ++++++ kmime-22.04.3.tar.xz -> kmime-22.08.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kmime-22.04.3/.codespellrc new/kmime-22.08.0/.codespellrc --- old/kmime-22.04.3/.codespellrc 1970-01-01 01:00:00.000000000 +0100 +++ new/kmime-22.08.0/.codespellrc 2022-08-05 13:32:11.000000000 +0200 @@ -0,0 +1,4 @@ +[codespell] +skip = ./build*,.git,*.notifyrc,*.desktop,*.json,*.xml +interactive = 3 +ignore-words-list = accessort diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kmime-22.04.3/.gitlab-ci.yml new/kmime-22.08.0/.gitlab-ci.yml --- old/kmime-22.04.3/.gitlab-ci.yml 2022-06-09 13:42:38.000000000 +0200 +++ new/kmime-22.08.0/.gitlab-ci.yml 2022-08-05 13:32:11.000000000 +0200 @@ -5,6 +5,5 @@ - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/linux.yml - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/freebsd.yml - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/android.yml - - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/linux-qt6.yml - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/android-qt6.yml - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/windows.yml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kmime-22.04.3/CMakeLists.txt new/kmime-22.08.0/CMakeLists.txt --- old/kmime-22.04.3/CMakeLists.txt 2022-06-09 13:42:38.000000000 +0200 +++ new/kmime-22.08.0/CMakeLists.txt 2022-08-05 13:32:11.000000000 +0200 @@ -1,10 +1,10 @@ cmake_minimum_required(VERSION 3.16 FATAL_ERROR) -set(PIM_VERSION "5.20.3") +set(PIM_VERSION "5.21.0") project(KMime VERSION ${PIM_VERSION}) # ECM setup -set(KF5_MIN_VERSION "5.91.0") +set(KF5_MIN_VERSION "5.95.0") find_package(ECM ${KF5_MIN_VERSION} CONFIG REQUIRED) set(CMAKE_MODULE_PATH ${KMime_SOURCE_DIR}/cmake ${ECM_MODULE_PATH}) @@ -43,7 +43,7 @@ find_package(KF5I18n ${KF5_MIN_VERSION} CONFIG REQUIRED) find_package(KF5Codecs ${KF5_MIN_VERSION} CONFIG REQUIRED) add_definitions(-DTRANSLATION_DOMAIN=\"libkmime5\") -ecm_set_disabled_deprecation_versions(QT 5.15.2 KF 5.92.0) +ecm_set_disabled_deprecation_versions(QT 5.15.2 KF 5.96.0) option(USE_UNITY_CMAKE_SUPPORT "Use UNITY cmake support (speedup compile time)" OFF) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kmime-22.04.3/CMakePresets.json new/kmime-22.08.0/CMakePresets.json --- old/kmime-22.04.3/CMakePresets.json 2022-06-09 13:42:38.000000000 +0200 +++ new/kmime-22.08.0/CMakePresets.json 2022-08-05 13:32:11.000000000 +0200 @@ -2,81 +2,89 @@ "version": 3, "configurePresets": [ { + "name": "base", + "displayName": "base preset", + "generator": "Ninja", + "binaryDir": "${sourceDir}/build-${presetName}", + "installDir": "$env{KF5}", + "hidden": true + }, + { "name": "dev", "displayName": "Build as debug", - "generator": "Ninja", - "binaryDir": "${sourceDir}/build", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" }, - "installDir": "$env{KF5}" + "inherits": [ + "base" + ] + }, { "name": "coverage", "displayName": "Build as debug", - "generator": "Ninja", - "binaryDir": "${sourceDir}/build", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "BUILD_COVERAGE": "ON", "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" }, - "installDir": "$env{KF5}" + "inherits": [ + "base" + ] }, { "name": "dev-qt6", "displayName": "Build against qt6", - "generator": "Ninja", "binaryDir": "${sourceDir}/build-qt6", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "BUILD_WITH_QT6": "ON", "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" }, - "installDir": "$env{KF6}" + "inherits": [ + "base" + ] }, { "name": "dev-disable-deprecated", "displayName": "Build as without deprecated methods", - "generator": "Ninja", - "binaryDir": "${sourceDir}/build-disable-deprecated", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "CMAKE_EXPORT_COMPILE_COMMANDS": "ON", "CMAKE_CXX_FLAGS_INIT": "-DQT_DISABLE_DEPRECATED_BEFORE=0x060000 -DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x060000" }, - "installDir": "$env{KF5}" + "inherits": [ + "base" + ] }, { "name": "asan", "displayName": "Build with Asan support.", - "generator": "Ninja", - "binaryDir": "${sourceDir}/build-asan", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "ECM_ENABLE_SANITIZERS" : "'address;undefined'", "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" }, - "installDir": "$env{KF5}" + "inherits": [ + "base" + ] }, { "name": "pch", "displayName": "Build with PCH support.", - "generator": "Ninja", - "binaryDir": "${sourceDir}/build-pch", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "COMPILE_WITH_CMAKE_PCH_SUPPORT": "ON", "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" }, - "installDir": "$env{KF5}" + "inherits": [ + "base" + ] }, { "name": "dev-clang", "displayName": "dev-clang", - "generator": "Ninja", - "binaryDir": "${sourceDir}/build-clang", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" @@ -85,46 +93,46 @@ "CXX": "clang++", "CCACHE_DISABLE": "ON" }, - "installDir": "$env{KF5}" + "inherits": [ + "base" + ] }, { "name": "unity", "displayName": "Build with CMake unity support.", - "generator": "Ninja", - "binaryDir": "${sourceDir}/build-unity", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "USE_UNITY_CMAKE_SUPPORT": "ON", "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" }, - "installDir": "$env{KF5}" + "inherits": [ + "base" + ] }, { "name": "release", "displayName": "Build as release mode.", - "generator": "Ninja", - "binaryDir": "${sourceDir}/build-release", "cacheVariables": { "CMAKE_BUILD_TYPE": "Release" }, - "installDir": "$env{KF5}" + "inherits": [ + "base" + ] }, { "name": "profile", "displayName": "profile", - "generator": "Ninja", - "binaryDir": "${sourceDir}/build-profile", "cacheVariables": { "CMAKE_BUILD_TYPE": "RelWithDebInfo", "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" }, - "installDir": "$env{KF5}" + "inherits": [ + "base" + ] }, { "name": "clazy", "displayName": "clazy", - "generator": "Ninja", - "binaryDir": "${sourceDir}/build-clazy", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug" }, @@ -132,7 +140,9 @@ "CXX": "clazy", "CCACHE_DISABLE": "ON" }, - "installDir": "$env{KF5}" + "inherits": [ + "base" + ] } ], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kmime-22.04.3/autotests/messagetest.cpp new/kmime-22.08.0/autotests/messagetest.cpp --- old/kmime-22.04.3/autotests/messagetest.cpp 2022-06-09 13:42:38.000000000 +0200 +++ new/kmime-22.08.0/autotests/messagetest.cpp 2022-08-05 13:32:11.000000000 +0200 @@ -595,11 +595,7 @@ { KMime::Message::Ptr msg = readAndParseMail(QStringLiteral("dontchangemail.mbox")); QFile file(QLatin1String(TEST_DATA_DIR) + QLatin1String("/mails/dontchangemail.mbox")); - const bool ok = file.open(QIODevice::ReadOnly); - if (!ok) { - qWarning() << file.fileName() << "not found"; - } - Q_ASSERT(ok); + QVERIFY(file.open(QIODevice::ReadOnly | QIODevice::Text)); QByteArray fileContent = file.readAll(); QCOMPARE(msg->encodedContent(), fileContent); QCOMPARE(msg->decodedText(), QLatin1String("")); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kmime-22.04.3/autotests/sizetest.cpp new/kmime-22.08.0/autotests/sizetest.cpp --- old/kmime-22.04.3/autotests/sizetest.cpp 2022-06-09 13:42:38.000000000 +0200 +++ new/kmime-22.08.0/autotests/sizetest.cpp 2022-08-05 13:32:11.000000000 +0200 @@ -28,7 +28,7 @@ qDebug() << sizeof(Content); QVERIFY(sizeof(Content) <= 16); qDebug() << sizeof(ContentPrivate); - QVERIFY(sizeof(ContentPrivate) <= 88); + QVERIFY(sizeof(ContentPrivate) <= (sizeof(QByteArray) * 5 + sizeof(QVector<Content*>) * 2 + 32)); qDebug() << sizeof(Message); QCOMPARE(sizeof(Message), sizeof(Content)); } @@ -67,29 +67,29 @@ void testHeadersPrivate() { - VERIFYSIZE(BasePrivate, 8); - VERIFYSIZE(UnstructuredPrivate, 16); + VERIFYSIZE(BasePrivate, sizeof(QByteArray)); + VERIFYSIZE(UnstructuredPrivate, sizeof(BasePrivate) + sizeof(QString)); VERIFYSIZE(StructuredPrivate, sizeof(BasePrivate)); // empty VERIFYSIZE(AddressPrivate, sizeof(StructuredPrivate)); - VERIFYSIZE(MailboxListPrivate, 16); + VERIFYSIZE(MailboxListPrivate, sizeof(BasePrivate) + sizeof(QVector<Types::Mailbox>)); VERIFYSIZE(SingleMailboxPrivate, sizeof(MailboxListPrivate)); - VERIFYSIZE(AddressListPrivate, 16); - VERIFYSIZE(IdentPrivate, 32); + VERIFYSIZE(AddressListPrivate, sizeof(BasePrivate) + sizeof(KMime::Types::AddressList)); + VERIFYSIZE(IdentPrivate, sizeof(AddressListPrivate) + sizeof(KMime::Types::AddrSpecList) + sizeof(QByteArray)); VERIFYSIZE(SingleIdentPrivate, sizeof(IdentPrivate)); - VERIFYSIZE(TokenPrivate, 16); - VERIFYSIZE(PhraseListPrivate, 16); - VERIFYSIZE(DotAtomPrivate, 16); - VERIFYSIZE(ParametrizedPrivate, 16); - VERIFYSIZE(ReturnPathPrivate, 32); - VERIFYSIZE(MailCopiesToPrivate, 24); - VERIFYSIZE(ContentTransferEncodingPrivate, 24); - VERIFYSIZE(ContentIDPrivate, 24); - VERIFYSIZE(ContentTypePrivate, 32); - VERIFYSIZE(GenericPrivate, 24); - VERIFYSIZE(ControlPrivate, 24); - VERIFYSIZE(DatePrivate, 16); - VERIFYSIZE(NewsgroupsPrivate, 16); - VERIFYSIZE(LinesPrivate, 16); + VERIFYSIZE(TokenPrivate, sizeof(StructuredPrivate) + sizeof(QByteArray)); + VERIFYSIZE(PhraseListPrivate, sizeof(StructuredPrivate) + sizeof(QStringList)); + VERIFYSIZE(DotAtomPrivate, sizeof(StructuredPrivate) + sizeof(QByteArray)); + VERIFYSIZE(ParametrizedPrivate, sizeof(StructuredPrivate) + sizeof(QMap<QString, QString>)); + VERIFYSIZE(ReturnPathPrivate, sizeof(AddressPrivate) + sizeof(Types::Mailbox)); + VERIFYSIZE(MailCopiesToPrivate, sizeof(AddressListPrivate) + 8); + VERIFYSIZE(ContentTransferEncodingPrivate, sizeof(TokenPrivate) + 8); + VERIFYSIZE(ContentIDPrivate, sizeof(SingleIdentPrivate)); + VERIFYSIZE(ContentTypePrivate, sizeof(ParametrizedPrivate) + sizeof(QByteArray) + 8); + VERIFYSIZE(GenericPrivate, sizeof(UnstructuredPrivate) + 8); + VERIFYSIZE(ControlPrivate, sizeof(StructuredPrivate) + 2*sizeof(QByteArray)); + VERIFYSIZE(DatePrivate, sizeof(StructuredPrivate) + 8); + VERIFYSIZE(NewsgroupsPrivate, sizeof(StructuredPrivate) + sizeof(QVector<QByteArray>)); + VERIFYSIZE(LinesPrivate, sizeof(StructuredPrivate) + 8); } }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kmime-22.04.3/autotests/utiltest.cpp new/kmime-22.08.0/autotests/utiltest.cpp --- old/kmime-22.04.3/autotests/utiltest.cpp 2022-06-09 13:42:38.000000000 +0200 +++ new/kmime-22.08.0/autotests/utiltest.cpp 2022-08-05 13:32:11.000000000 +0200 @@ -41,6 +41,9 @@ QCOMPARE(KMime::unfoldHeader("bla \n=09 bla"), QByteArray("bla bla")); QCOMPARE(KMime::unfoldHeader("bla \n =20 bla"), QByteArray("bla =20 bla")); QCOMPARE(KMime::unfoldHeader("bla \n =09 bla"), QByteArray("bla =09 bla")); + // malformed input resulting in leading linebreaks + QCOMPARE(KMime::unfoldHeader("\n bla"), QByteArray("bla")); + QCOMPARE(KMime::unfoldHeader("\r\n bla"), QByteArray("bla")); } void UtilTest::testExtractHeader() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kmime-22.04.3/po/ca@valencia/libkmime5.po new/kmime-22.08.0/po/ca@valencia/libkmime5.po --- old/kmime-22.04.3/po/ca@valencia/libkmime5.po 2022-07-05 06:40:27.000000000 +0200 +++ new/kmime-22.08.0/po/ca@valencia/libkmime5.po 2022-08-12 02:11:16.000000000 +0200 @@ -50,7 +50,7 @@ "The message sent on ${date} to ${to} with subject \"${subject}\" has been " "displayed. This is no guarantee that the message has been read or understood." msgstr "" -"El missatge enviat el ${date} a ${to} amb l'assumpte ??${subject}?? ha estat " +"El missatge enviat el ${date} a ${to} amb l'assumpte ??${subject}?? ha sigut " "mostrat. A???? no ??s garantia que este haja estat llegit o compr??s." #: kmime_mdn.cpp:55 @@ -59,7 +59,7 @@ "deleted unseen. This is no guarantee that the message will not be \"undeleted" "\" and nonetheless read later on." msgstr "" -"El missatge enviat el ${date} a ${to} amb l'assumpte ??${subject}?? ha estat " +"El missatge enviat el ${date} a ${to} amb l'assumpte ??${subject}?? ha sigut " "suprimit sense veure'l. A???? no ??s garantia que este no haja estat " "??recuperat?? i llegit m??s tard." @@ -68,7 +68,7 @@ "The message sent on ${date} to ${to} with subject \"${subject}\" has been " "dispatched. This is no guarantee that the message will not be read later on." msgstr "" -"El missatge enviat el ${date} a ${to} amb l'assumpte ??${subject}?? ha estat " +"El missatge enviat el ${date} a ${to} amb l'assumpte ??${subject}?? ha sigut " "despatxat. A???? no ??s garantia que este no haja estat llegit m??s tard." #: kmime_mdn.cpp:66 @@ -85,7 +85,7 @@ "acted upon. The sender does not wish to disclose more details to you than " "that." msgstr "" -"El missatge enviat el ${date} a ${to} amb l'assumpte ??${subject}?? ha estat " +"El missatge enviat el ${date} a ${to} amb l'assumpte ??${subject}?? ha sigut " "arxivat. El remitent no desitja proporcionar m??s detalls que estos." #: kmime_mdn.cpp:75 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kmime-22.04.3/po/zh_CN/libkmime5.po new/kmime-22.08.0/po/zh_CN/libkmime5.po --- old/kmime-22.04.3/po/zh_CN/libkmime5.po 2022-07-05 06:40:27.000000000 +0200 +++ new/kmime-22.08.0/po/zh_CN/libkmime5.po 2022-08-12 02:11:16.000000000 +0200 @@ -1,13 +1,9 @@ -# Copyright (C) YEAR This_file_is_part_of_KDE -# This file is distributed under the same license as the PACKAGE package. -# -# Xuetian Weng <[email protected]>, 2014. msgid "" msgstr "" "Project-Id-Version: kdeorg\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2021-12-14 00:45+0000\n" -"PO-Revision-Date: 2022-07-02 11:02\n" +"PO-Revision-Date: 2022-08-07 13:31\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kmime-22.04.3/src/config-kmime.h.cmake new/kmime-22.08.0/src/config-kmime.h.cmake --- old/kmime-22.04.3/src/config-kmime.h.cmake 2022-06-09 13:42:38.000000000 +0200 +++ new/kmime-22.08.0/src/config-kmime.h.cmake 2022-08-05 13:32:11.000000000 +0200 @@ -1,8 +1,7 @@ -/* Define if you have a timezone variable */ -#cmakedefine HAVE_TIMEZONE 1 +#cmakedefine01 HAVE_TIMEZONE /* Define if you have a tm_gmtoff member in struct tm */ -#cmakedefine HAVE_TM_GMTOFF 1 +#cmakedefine01 HAVE_TM_GMTOFF /* Define if you have strcasestr in string.h */ -#cmakedefine HAVE_STRCASESTR 1 +#cmakedefine01 HAVE_STRCASESTR diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kmime-22.04.3/src/kmime_dateformatter.cpp new/kmime-22.08.0/src/kmime_dateformatter.cpp --- old/kmime-22.04.3/src/kmime_dateformatter.cpp 2022-06-09 13:42:38.000000000 +0200 +++ new/kmime-22.08.0/src/kmime_dateformatter.cpp 2022-08-05 13:32:11.000000000 +0200 @@ -188,11 +188,11 @@ QByteArray DateFormatterPrivate::zone(time_t t) { -#if defined(HAVE_TIMEZONE) || defined(HAVE_TM_GMTOFF) +#if HAVE_TIMEZONE || HAVE_TM_GMTOFF struct tm *local = localtime(&t); #endif -#if defined(HAVE_TIMEZONE) +#if HAVE_TIMEZONE //hmm, could make hours & mins static int secs = qAbs(timezone); @@ -209,7 +209,7 @@ } } -#elif defined(HAVE_TM_GMTOFF) +#elif HAVE_TM_GMTOFF int secs = qAbs(local->tm_gmtoff); int neg = (local->tm_gmtoff < 0) ? 1 : 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kmime-22.04.3/src/kmime_util.cpp new/kmime-22.08.0/src/kmime_util.cpp --- old/kmime-22.04.3/src/kmime_util.cpp 2022-06-09 13:42:38.000000000 +0200 +++ new/kmime-22.08.0/src/kmime_util.cpp 2022-08-05 13:32:11.000000000 +0200 @@ -183,7 +183,7 @@ while ((foldMid = strchr(pos, '\n')) && foldMid < end) { foldBegin = foldEnd = foldMid; // find the first space before the line-break - while (foldBegin) { + while (foldBegin > header) { if (!QChar::isSpace(*(foldBegin - 1))) { break; } @@ -207,7 +207,7 @@ } result.append(pos, foldBegin - pos); - if (foldEnd < end - 1) { + if (foldBegin != pos && foldEnd < end - 1) { result += ' '; } pos = foldEnd; @@ -280,7 +280,7 @@ return end; } -#ifndef HAVE_STRCASESTR +#if !HAVE_STRCASESTR #ifdef WIN32 #define strncasecmp _strnicmp #endif
