Hello community,

here is the log from the commit of package kmime for openSUSE:Leap:15.2 checked 
in at 2020-05-24 18:07:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2/kmime (Old)
 and      /work/SRC/openSUSE:Leap:15.2/.kmime.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kmime"

Sun May 24 18:07:38 2020 rev:59 rq:806528 version:20.04.1

Changes:
--------
--- /work/SRC/openSUSE:Leap:15.2/kmime/kmime.changes    2020-05-12 
11:34:55.644062869 +0200
+++ /work/SRC/openSUSE:Leap:15.2/.kmime.new.2738/kmime.changes  2020-05-24 
18:07:42.109980961 +0200
@@ -1,0 +2,12 @@
+Fri May 15 15:41:41 UTC 2020 - Luca Beltrame <[email protected]>
+
+- Update to 20.04.1
+  * New bugfix release
+  * For more details please see:
+  * https://kde.org/announcements/releases/2020-05-apps-update
+- Changes since 20.04.0:
+  * Add test case about bug 421251
+  * Fix Bug 362650 - an extra space character in attached file names the UTF-8 
encoded (kde#362650)
+  * Disable code for the moment. It breaks some email address
+
+-------------------------------------------------------------------
@@ -15,2 +26,0 @@
-  * For more details please see:
-  * https://kde.org/announcements/releases/20.04-rc
@@ -25,2 +34,0 @@
-  * For more details please see:
-  * https://kde.org/announcements/releases/20.04-beta
@@ -41 +49 @@
-  * https://www.kde.org/announcements/releases/19.12.3
+  * https://kde.org/announcements/releases/2020-03-apps-update
@@ -55 +63 @@
-  * https://www.kde.org/announcements/releases/19.12.2
+  * https://kde.org/announcements/releases/2020-02-apps-update

Old:
----
  kmime-20.04.0.tar.xz
  kmime-20.04.0.tar.xz.sig

New:
----
  kmime-20.04.1.tar.xz
  kmime-20.04.1.tar.xz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kmime.spec ++++++
--- /var/tmp/diff_new_pack.blF4m9/_old  2020-05-24 18:07:42.417981627 +0200
+++ /var/tmp/diff_new_pack.blF4m9/_new  2020-05-24 18:07:42.421981636 +0200
@@ -21,7 +21,7 @@
 %{!?_kapp_version: %define _kapp_version %(echo %{version}| awk -F. '{print 
$1"."$2}')}
 %bcond_without lang
 Name:           kmime
-Version:        20.04.0
+Version:        20.04.1
 Release:        0
 Summary:        KDE PIM libraries MIME support
 License:        LGPL-2.1-or-later


++++++ kmime-20.04.0.tar.xz -> kmime-20.04.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kmime-20.04.0/CMakeLists.txt 
new/kmime-20.04.1/CMakeLists.txt
--- old/kmime-20.04.0/CMakeLists.txt    2020-04-17 02:38:07.000000000 +0200
+++ new/kmime-20.04.1/CMakeLists.txt    2020-05-12 03:24:45.000000000 +0200
@@ -1,5 +1,5 @@
 cmake_minimum_required(VERSION 3.5)
-set(PIM_VERSION "5.14.0")
+set(PIM_VERSION "5.14.1")
 
 project(KMime VERSION ${PIM_VERSION})
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kmime-20.04.0/autotests/headertest.cpp 
new/kmime-20.04.1/autotests/headertest.cpp
--- old/kmime-20.04.0/autotests/headertest.cpp  2020-04-04 11:58:48.000000000 
+0200
+++ new/kmime-20.04.1/autotests/headertest.cpp  2020-05-10 14:23:01.000000000 
+0200
@@ -161,6 +161,7 @@
     QCOMPARE(h->as7BitString(false), QByteArray("Ingo 
=?ISO-8859-1?Q?Kl=F6cker?= <[email protected]>"));
     delete h;
 
+
     // a display name with non-latin1 content in both name components
     h = new Headers::Generics::AddressList();
     const QString testAddress = QString::fromUtf8("Ingö Klöcker 
<[email protected]>");
@@ -297,6 +298,17 @@
     QCOMPARE(names.takeFirst(), QLatin1String("Who?"));
     QCOMPARE(h->as7BitString(false), QByteArray("Mary Smith <[email protected]>, 
[email protected]., Who? <[email protected]>"));
     delete h;
+
+    //Bug 421251
+    // a display name with non-latin1 content
+    h = new Headers::Generics::AddressList();
+    h->from7BitString("=?iso-8859-1?Q?=22I=F1igo_Salvador_Azurmendi=22?= 
<[email protected]>");
+    QCOMPARE(h->addresses().count(), 1);
+    QCOMPARE(h->addresses().first(), 
QByteArray("[email protected]"));
+    QCOMPARE(h->displayNames().first(), QString::fromUtf8("I\u00F1igo Salvador 
Azurmendi"));
+    QCOMPARE(h->asUnicodeString(), QString::fromUtf8("I\u00F1igo Salvador 
Azurmendi <[email protected]>"));
+    QCOMPARE(h->as7BitString(false), QByteArray("=?ISO-8859-1?Q?I=F1igo?= 
Salvador Azurmendi <[email protected]>"));
+    delete h;
 }
 
 void HeaderTest::testMailboxListHeader()
@@ -544,12 +556,51 @@
     delete h;
 
     // TODO: test for case-insensitive disposition value
+
+    // Bug 362650
+    h = new ContentDisposition;
+    h->from7BitString("attachment;\n"
+     
"filename*0*=UTF-8''%D0%AD%D1%82%D0%BE%D0%92%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD;"
+     
"filename*1*=%D0%B8%D0%B5%D0%A1%D0%94%D0%BB%D0%B8%D0%BD%D0%BD%D1%8B%D0%BC;"
+     
"filename*2*=%D0%98%D0%BC%D0%B5%D0%BC%D0%A4%D0%B0%D0%B9%D0%BB%D0%B0%D0%A1;"
+     
"filename*3*=%D0%BE%D0%B2%D1%81%D0%B5%D0%BC%D0%91%D0%B5%D0%B7%D0%9F%D1%80;"
+     
"filename*4*=%D0%BE%D0%B1%D0%B5%D0%BB%D0%BE%D0%B2%D0%98%D0%95%D1%89%D1%91;"
+     
"filename*5*=%D0%A0%D0%B0%D0%B7%D0%AD%D1%82%D0%BE%D0%92%D0%BB%D0%BE%D0%B6;"
+     
"filename*6*=%D0%B5%D0%BD%D0%B8%D0%B5%D0%A1%D0%94%D0%BB%D0%B8%D0%BD%D0%BD;"
+     
"filename*7*=%D1%8B%D0%BC%D0%98%D0%BC%D0%B5%D0%BC%D0%A4%D0%B0%D0%B9%D0%BB;"
+     
"filename*8*=%D0%B0%D0%A1%D0%BE%D0%B2%D1%81%D0%B5%D0%BC%D0%91%D0%B5%D0%B7;"
+     
"filename*9*=%D0%9F%D1%80%D0%BE%D0%B1%D0%B5%D0%BB%D0%BE%D0%B2%2E%74%78%74");
+    QCOMPARE(h->disposition(), CDattachment);
+    QCOMPARE(h->filename(), 
QString::fromUtf8("ЭтоВложениеСДлиннымИмемФайлаСовсемБезПробеловИЕщёРазЭтоВложениеСДлиннымИмемФайлаСовсемБезПробелов.txt"));
+
+    h = new ContentDisposition;
+    h->from7BitString("attachment; 
filename*=UTF-8''%D0%AD%D1%82%D0%BE%D0%92%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5%D0%A1%D0%94%D0%BB%D0%B8%D0%BD%D0%BD%D1%8B%D0%BC%D0%98%D0%BC%D0%B5%D0%BC%D0%A4%D0%B0%D0%B9%D0%BB%D0%B0%D0%A1%D0%BE%D0%B2%D1%81%D0%B5%D0%BC%D0%91%D0%B5%D0%B7%D0%9F%D1%80%D0%BE%D0%B1%D0%B5%D0%BB%D0%BE%D0%B2%D0%98%D0%95%D1%89%D1%91%D0%A0%D0%B0%D0%B7%D0%AD%D1%82%D0%BE%D0%92%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5%D0%A1%D0%94%D0%BB%D0%B8%D0%BD%D0%BD%D1%8B%D0%BC%D0%98%D0%BC%D0%B5%D0%BC%D0%A4%D0%B0%D0%B9%D0%BB%D0%B0%D0%A1%D0%BE%D0%B2%D1%81%D0%B5%D0%BC%D0%91%D0%B5%D0%B7%D0%9F%D1%80%D0%BE%D0%B1%D0%B5%D0%BB%D0%BE%D0%B2%2Etxt");
+    QCOMPARE(h->disposition(), CDattachment);
+    QCOMPARE(h->filename(), 
QString::fromUtf8("ЭтоВложениеСДлиннымИмемФайлаСовсемБезПробеловИЕщёРазЭтоВложениеСДлиннымИмемФайлаСовсемБезПробелов.txt"));
 }
 
 void HeaderTest::testContentTypeHeader()
 {
     ContentType *h;
 
+    //Bug 362650 (test is without space => ok)
+    h = new ContentType;
+    h->from7BitString("text/plain;\n 
name=\"=?UTF-8?B?0K3RgtC+0JLQu9C+0LbQtdC90LjQtdCh0JTQu9C40L3QvdGL0LzQmNC8?="
+                      
"=?UTF-8?B?0LXQvNCk0LDQudC70LDQodC+0LLRgdC10LzQkdC10LfQn9GA0L7QsdC1?="
+                      
"=?UTF-8?B?0LvQvtCy0JjQldGJ0ZHQoNCw0LfQrdGC0L7QktC70L7QttC10L3QuNC1?="
+                      
"=?UTF-8?B?0KHQlNC70LjQvdC90YvQvNCY0LzQtdC80KTQsNC50LvQsNCh0L7QstGB?="
+                      
"=?UTF-8?B?0LXQvNCR0LXQt9Cf0YDQvtCx0LXQu9C+0LIudHh0?=\"");
+    QCOMPARE(h->name(), 
QString::fromUtf8("ЭтоВложениеСДлиннымИмемФайлаСовсемБезПробеловИЕщёРазЭтоВложениеСДлиннымИмемФайлаСовсемБезПробелов.txt"));
+    delete h;
+    h = new ContentType;
+    h->from7BitString("text/plain;\n 
name=\"=?UTF-8?B?0K3RgtC+0JLQu9C+0LbQtdC90LjQtdCh0JTQu9C40L3QvdGL0LzQmNC8?="
+                      " 
=?UTF-8?B?0LXQvNCk0LDQudC70LDQodC+0LLRgdC10LzQkdC10LfQn9GA0L7QsdC1?="
+                      " 
=?UTF-8?B?0LvQvtCy0JjQldGJ0ZHQoNCw0LfQrdGC0L7QktC70L7QttC10L3QuNC1?="
+                      " 
=?UTF-8?B?0KHQlNC70LjQvdC90YvQvNCY0LzQtdC80KTQsNC50LvQsNCh0L7QstGB?="
+                      " 
=?UTF-8?B?0LXQvNCR0LXQt9Cf0YDQvtCx0LXQu9C+0LIudHh0?=\"");
+    QCOMPARE(h->name(), 
QString::fromUtf8("ЭтоВложениеСДлиннымИмемФайлаСовсемБезПробеловИЕщёРазЭтоВложениеСДлиннымИмемФайлаСовсемБезПробелов.txt"));
+    delete h;
+
     // empty header
     h = new ContentType();
     QVERIFY(h->isEmpty());
@@ -624,6 +675,7 @@
     QCOMPARE(h->mediaType(), QByteArray("MULTIPART"));
     QCOMPARE(h->subType(), QByteArray("MIXED"));
     delete h;
+
 }
 
 void HeaderTest::testTokenHeader()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kmime-20.04.0/po/zh_CN/libkmime5.po 
new/kmime-20.04.1/po/zh_CN/libkmime5.po
--- old/kmime-20.04.0/po/zh_CN/libkmime5.po     2020-04-17 02:38:07.000000000 
+0200
+++ new/kmime-20.04.1/po/zh_CN/libkmime5.po     2020-05-12 03:24:45.000000000 
+0200
@@ -7,7 +7,7 @@
 "Project-Id-Version: kdeorg\n"
 "Report-Msgid-Bugs-To: https://bugs.kde.org\n";
 "POT-Creation-Date: 2019-12-31 03:21+0100\n"
-"PO-Revision-Date: 2020-03-25 19:56\n"
+"PO-Revision-Date: 2020-05-09 13:51\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: Chinese Simplified\n"
 "Language: zh_CN\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kmime-20.04.0/src/kmime_header_parsing.cpp 
new/kmime-20.04.1/src/kmime_header_parsing.cpp
--- old/kmime-20.04.0/src/kmime_header_parsing.cpp      2020-04-04 
11:58:48.000000000 +0200
+++ new/kmime-20.04.1/src/kmime_header_parsing.cpp      2020-05-10 
14:23:01.000000000 +0200
@@ -354,7 +354,6 @@
     // We will apply unfolding and quoted-pair removal.
     // We return when we either encounter the end or unescaped openChar
     // or closeChar.
-
     assert(*(scursor - 1) == openChar || *(scursor - 1) == closeChar);
 
     while (scursor != send) {
@@ -445,6 +444,31 @@
                 --scursor;
                 if (parseEncodedWord(scursor, send, tmp, lang, charset)) {
                     result += tmp;
+                    //qDebug() << " tmp " << tmp;
+                    if (scursor == send) {
+                        break;
+                    } else if (*scursor++ == ' ') { //Workaround Bug 362650 
thunderbird add space for each new line
+                        if (scursor == send) {
+                            --scursor;
+                            break;
+                        } else if (*scursor++ == '=') {
+                            if (scursor == send) {
+                                --scursor;
+                                --scursor;
+                                break;
+                            } else if (*scursor++ == '?') {
+                                --scursor;
+                                --scursor;
+                                break;
+                            }
+                        } else {
+                            --scursor;
+                            --scursor;
+                        }
+                    } else {
+                        --scursor;
+                    }
+
                     break;
                 } else {
                     scursor = oldscursor;
@@ -1305,7 +1329,6 @@
     // (private) method is that we can deal with broken parameters
     // _here_ and leave the rfc2231 handling solely to
     // parseParameterList(), which will still be enough work.
-
     while (scursor != send) {
         eatCFWS(scursor, send, isCRLF);
         // empty entry ending the list: OK.
@@ -1317,7 +1340,6 @@
             scursor++;
             continue;
         }
-
         QPair<QString, QStringOrQPair> maybeParameter;
         if (!parseParameter(scursor, send, maybeParameter, isCRLF)) {
             // we need to do a bit of work if the attribute is not
@@ -1586,7 +1608,6 @@
             }
         }
     }
-
     // write last attr/value pair:
     if (!attribute.isNull()) {
         result.insert(attribute, value);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kmime-20.04.0/src/kmime_headers.cpp 
new/kmime-20.04.1/src/kmime_headers.cpp
--- old/kmime-20.04.0/src/kmime_headers.cpp     2020-04-04 11:58:48.000000000 
+0200
+++ new/kmime-20.04.1/src/kmime_headers.cpp     2020-05-10 14:23:01.000000000 
+0200
@@ -255,7 +255,7 @@
 
 void Structured::from7BitString(const QByteArray &s)
 {
-#if 1
+#if 0
     Q_D(Structured);
     //Bug about mailto with space which are replaced by "_" so it failed to 
parse
     //=> we reconvert to correct encoding as RFC2047
@@ -1872,7 +1872,6 @@
     if (!parseToken(scursor, send, maybeMimeType, ParseTokenNoFlag)) {
         return false;
     }
-
     // subtype
     eatCFWS(scursor, send, isCRLF);
     if (scursor == send || *scursor != '/') {
@@ -1883,7 +1882,6 @@
     if (scursor == send) {
         return false;
     }
-
     QPair<const char *, int> maybeSubType;
     if (!parseToken(scursor, send, maybeSubType, ParseTokenNoFlag)) {
         return false;
@@ -1898,7 +1896,6 @@
     if (scursor == send) {
         goto success; // no parameters
     }
-
     if (*scursor != ';') {
         return false;
     }


Reply via email to