Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gmime for openSUSE:Factory checked 
in at 2023-09-20 13:22:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gmime (Old)
 and      /work/SRC/openSUSE:Factory/.gmime.new.16627 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gmime"

Wed Sep 20 13:22:58 2023 rev:72 rq:1110530 version:3.2.14

Changes:
--------
--- /work/SRC/openSUSE:Factory/gmime/gmime.changes      2023-03-24 
15:20:01.510764080 +0100
+++ /work/SRC/openSUSE:Factory/.gmime.new.16627/gmime.changes   2023-09-20 
13:24:11.595905607 +0200
@@ -1,0 +2,22 @@
+Fri Sep  8 21:38:11 UTC 2023 - Antonio Teixeira <[email protected]>
+
+- Update to version 3.2.14:
+  + Avoid clearing the header list of a GMimeMessage when adding
+    addresses to an address header.
+  + Added the internet_address_list_append_parse() prototype
+    definition to internet-address.h.
+  + Use gtk-doc ulink syntax in doc comments instead of
+    <a href=...>.
+  + Fixed rfc2047 token decoding logic for base64 encodings.
+  + Properly handle GDateTime UTC offsets with non-zero seconds.
+  + Improved introspection data for bindings such as Vala.
+  + Improved address name quoting.
+  + Added a GNotifyDestroy to the GMimeParserOptions callback.
+  + Fixed the URL linkifier logic to properly handle links without
+    a '/' before the query string.
+  + Fixed the URL linkifier logic to handle domains that start
+    with numbers.
+  + Reverted base64 decoder optimizations from 3.2.10 and 3.2.11
+    to support chunked base64.
+
+-------------------------------------------------------------------

Old:
----
  gmime-3.2.13.tar.xz

New:
----
  gmime-3.2.14.tar.xz

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

Other differences:
------------------
++++++ gmime.spec ++++++
--- /var/tmp/diff_new_pack.q26Kms/_old  2023-09-20 13:24:12.663943870 +0200
+++ /var/tmp/diff_new_pack.q26Kms/_new  2023-09-20 13:24:12.667944013 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package gmime
 #
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -22,7 +22,7 @@
 # NOTE - also update baselibs.conf when bumping this
 %define so_ver 3_0
 Name:           gmime
-Version:        3.2.13
+Version:        3.2.14
 Release:        0
 Summary:        MIME Parser and Utility Library
 License:        LGPL-2.1-or-later

++++++ gmime-3.2.13.tar.xz -> gmime-3.2.14.tar.xz ++++++
++++ 2066 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/NEWS new/gmime-3.2.14/NEWS
--- old/gmime-3.2.13/NEWS       2022-08-18 15:48:07.000000000 +0200
+++ new/gmime-3.2.14/NEWS       2023-09-02 16:17:19.000000000 +0200
@@ -1,3 +1,17 @@
+### GMime 3.2.14
+
+* Avoid clearing the header list of a GMimeMessage when adding addresses to an 
address header. (issue #129)
+* Added the internet_address_list_append_parse() prototype definition to 
internet-address.h. (issue #128)
+* Use gtk-doc ulink syntax in doc comments instead of `<a href=...>`. (issue 
#131)
+* Fixed rfc2047 token decoding logic for base64 encodings. (issue #133)
+* Properly handle GDateTime UTC offsets with non-zero seconds. (issue #134)
+* Improved introspection data for bindings such as Vala.
+* Improved address name quoting.
+* Added a GNotifyDestroy to the GMimeParserOptions callback.
+* Fixed the URL linkifier logic to properly handle links without a '/' before 
the query string.
+* Fixed the URL linkifier logic to handle domains that start with numbers. 
(issue #152)
+* Reverted base64 decoder optimizations from 3.2.10 and 3.2.11 to support 
chunked base64. (issue #150)
+
 ### GMime 3.2.13
 
 * Optimized parsing of messages with lots of address headers. (issue #126)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/build/vs2008/config-win32.h 
new/gmime-3.2.14/build/vs2008/config-win32.h
--- old/gmime-3.2.13/build/vs2008/config-win32.h        2022-08-18 
15:49:51.000000000 +0200
+++ new/gmime-3.2.14/build/vs2008/config-win32.h        2023-09-02 
16:22:52.000000000 +0200
@@ -5,7 +5,7 @@
 /* #undef ENABLE_WARNINGS */
 
 /* Define to the GMime version */
-#define GMIME_VERSION "3.2.13"
+#define GMIME_VERSION "3.2.14"
 
 /* Define if libc defines an altzone variable */
 /* #undef HAVE_ALTZONE */
@@ -145,22 +145,13 @@
 #define PACKAGE_NAME "gmime"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "gmime 3.2.13"
+#define PACKAGE_STRING "gmime 3.2.14"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gmime"
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "3.2.13"
-
-/* The size of `off_t', as computed by sizeof. */
-#define SIZEOF_OFF_T 4
-
-/* The size of `size_t', as computed by sizeof. */
-#define SIZEOF_SIZE_T 4
-
-/* The size of `ssize_t', as computed by sizeof. */
-#define SIZEOF_SSIZE_T 4
+#define PACKAGE_VERSION "3.2.14"
 
 /* Define to 1 if you have the ANSI C header files. */
 #define STDC_HEADERS 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/build/vs2008/config-win32.h.in 
new/gmime-3.2.14/build/vs2008/config-win32.h.in
--- old/gmime-3.2.13/build/vs2008/config-win32.h.in     2022-03-02 
21:59:43.000000000 +0100
+++ new/gmime-3.2.14/build/vs2008/config-win32.h.in     2023-07-12 
21:03:21.000000000 +0200
@@ -153,15 +153,6 @@
 /* Define to the version of this package. */
 #define PACKAGE_VERSION "@GMIME_VERSION@"
 
-/* The size of `off_t', as computed by sizeof. */
-#define SIZEOF_OFF_T 4
-
-/* The size of `size_t', as computed by sizeof. */
-#define SIZEOF_SIZE_T 4
-
-/* The size of `ssize_t', as computed by sizeof. */
-#define SIZEOF_SSIZE_T 4
-
 /* Define to 1 if you have the ANSI C header files. */
 #define STDC_HEADERS 1
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/build/vs2010/config-win32.h 
new/gmime-3.2.14/build/vs2010/config-win32.h
--- old/gmime-3.2.13/build/vs2010/config-win32.h        2022-08-18 
15:49:51.000000000 +0200
+++ new/gmime-3.2.14/build/vs2010/config-win32.h        2023-09-02 
16:22:52.000000000 +0200
@@ -5,7 +5,7 @@
 /* #undef ENABLE_WARNINGS */
 
 /* Define to the GMime version */
-#define GMIME_VERSION "3.2.13"
+#define GMIME_VERSION "3.2.14"
 
 /* Define if libc defines an altzone variable */
 /* #undef HAVE_ALTZONE */
@@ -145,22 +145,13 @@
 #define PACKAGE_NAME "gmime"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "gmime 3.2.13"
+#define PACKAGE_STRING "gmime 3.2.14"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gmime"
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "3.2.13"
-
-/* The size of `off_t', as computed by sizeof. */
-#define SIZEOF_OFF_T 4
-
-/* The size of `size_t', as computed by sizeof. */
-#define SIZEOF_SIZE_T 4
-
-/* The size of `ssize_t', as computed by sizeof. */
-#define SIZEOF_SSIZE_T 4
+#define PACKAGE_VERSION "3.2.14"
 
 /* Define to 1 if you have the ANSI C header files. */
 #define STDC_HEADERS 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/build/vs2010/config-win32.h.in 
new/gmime-3.2.14/build/vs2010/config-win32.h.in
--- old/gmime-3.2.13/build/vs2010/config-win32.h.in     2022-03-02 
21:59:43.000000000 +0100
+++ new/gmime-3.2.14/build/vs2010/config-win32.h.in     2023-07-12 
21:03:21.000000000 +0200
@@ -153,15 +153,6 @@
 /* Define to the version of this package. */
 #define PACKAGE_VERSION "@GMIME_VERSION@"
 
-/* The size of `off_t', as computed by sizeof. */
-#define SIZEOF_OFF_T 4
-
-/* The size of `size_t', as computed by sizeof. */
-#define SIZEOF_SIZE_T 4
-
-/* The size of `ssize_t', as computed by sizeof. */
-#define SIZEOF_SSIZE_T 4
-
 /* Define to 1 if you have the ANSI C header files. */
 #define STDC_HEADERS 1
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/config.h.in new/gmime-3.2.14/config.h.in
--- old/gmime-3.2.13/config.h.in        2022-08-18 15:49:52.000000000 +0200
+++ new/gmime-3.2.14/config.h.in        2023-09-02 16:17:59.000000000 +0200
@@ -127,18 +127,6 @@
 /* Define to the version of this package. */
 #undef PACKAGE_VERSION
 
-/* The size of `off_t', as computed by sizeof. */
-#undef SIZEOF_OFF_T
-
-/* The size of `size_t', as computed by sizeof. */
-#undef SIZEOF_SIZE_T
-
-/* The size of `ssize_t', as computed by sizeof. */
-#undef SIZEOF_SSIZE_T
-
-/* The size of `time_t', as computed by sizeof. */
-#undef SIZEOF_TIME_T
-
 /* Define to 1 if all of the C90 standard headers exist (not just the ones
    required in a freestanding environment). This macro is provided for
    backward compatibility; new code need not use it. */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/configure.ac new/gmime-3.2.14/configure.ac
--- old/gmime-3.2.13/configure.ac       2022-08-18 15:48:43.000000000 +0200
+++ new/gmime-3.2.14/configure.ac       2023-09-02 16:05:24.000000000 +0200
@@ -12,7 +12,7 @@
 #
 m4_define([gmime_major_version], [3])
 m4_define([gmime_minor_version], [2])
-m4_define([gmime_micro_version], [13])
+m4_define([gmime_micro_version], [14])
 m4_define([gmime_interface_age], [0])
 m4_define([gmime_binary_age],
           [m4_eval(100 * gmime_minor_version + gmime_micro_version)])
@@ -191,7 +191,7 @@
 GTK_DOC_CHECK([1.8])
 
 AC_PATH_PROGS([DB2HTML], [db2html docbook2html])
-AM_CONDITIONAL(HAVE_DOCBOOK, [test -n "$DB2HTML"])
+AM_CONDITIONAL(HAVE_DOCBOOK, [test -n "$DB2HTML"], "true", "false")
 
 dnl NOTE: We need to use a separate automake conditional for this
 dnl       to make this work with the tarballs.
@@ -440,15 +440,6 @@
 fi
 AM_CONDITIONAL(ENABLE_LARGEFILE, test "x$enable_largefile" = "xyes")
 
-dnl Check type sizes
-CFLAGS_save="$CFLAGS"
-CFLAGS="$CFLAGS $LFS_CFLAGS"
-AC_CHECK_SIZEOF(ssize_t)
-AC_CHECK_SIZEOF(size_t)
-AC_CHECK_SIZEOF(off_t)
-AC_CHECK_SIZEOF(time_t)
-CFLAGS="$CFLAGS_save"
-
 dnl Check for some network functions
 AC_CHECK_FUNCS(gethostname getdomainname getaddrinfo)
 
@@ -589,6 +580,7 @@
 AC_SUBST(GMIME_LIBS_PRIVATE)
 AC_SUBST(GMIME_CFLAGS)
 AC_SUBST(GMIME_LIBS)
+AC_SUBST(HAVE_DOCBOOK)
 
 AC_CONFIG_FILES([
 Makefile
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/docs/reference/html/GMimeCryptoContext.html 
new/gmime-3.2.14/docs/reference/html/GMimeCryptoContext.html
--- old/gmime-3.2.13/docs/reference/html/GMimeCryptoContext.html        
2022-08-18 15:52:17.000000000 +0200
+++ new/gmime-3.2.14/docs/reference/html/GMimeCryptoContext.html        
2023-09-02 16:22:56.000000000 +0200
@@ -973,8 +973,8 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>keys</p></td>
-<td class="parameter_description"><p>an array of key ids, terminated by a 
<code class="literal">NULL</code> element</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>an array of key ids, terminated by a 
<code class="literal">NULL</code> element. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<a 
href="http://foldoc.org/array";><span class="acronym">array</span></a> 
zero-terminated=1]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>ostream</p></td>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/docs/reference/html/GMimeFilterChecksum.html 
new/gmime-3.2.14/docs/reference/html/GMimeFilterChecksum.html
--- old/gmime-3.2.13/docs/reference/html/GMimeFilterChecksum.html       
2022-08-18 15:52:17.000000000 +0200
+++ new/gmime-3.2.14/docs/reference/html/GMimeFilterChecksum.html       
2023-09-02 16:22:56.000000000 +0200
@@ -143,8 +143,8 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>digest</p></td>
-<td class="parameter_description"><p>the digest buffer</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>the digest buffer. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<a 
href="http://foldoc.org/array";><span class="acronym">array</span></a> 
length=len]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>len</p></td>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/docs/reference/html/GMimeHeaderList.html 
new/gmime-3.2.14/docs/reference/html/GMimeHeaderList.html
--- old/gmime-3.2.13/docs/reference/html/GMimeHeaderList.html   2022-08-18 
15:52:17.000000000 +0200
+++ new/gmime-3.2.14/docs/reference/html/GMimeHeaderList.html   2023-09-02 
16:22:56.000000000 +0200
@@ -830,8 +830,8 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>charset</p></td>
-<td class="parameter_description"><p>a charset</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>a charset. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<a 
href="http://foldoc.org/nullable";><span 
class="acronym">nullable</span></a>]</span></td>
 </tr>
 </tbody>
 </table></div>
@@ -1152,8 +1152,8 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>charset</p></td>
-<td class="parameter_description"><p>a charset</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>a charset. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<a 
href="http://foldoc.org/nullable";><span 
class="acronym">nullable</span></a>]</span></td>
 </tr>
 </tbody>
 </table></div>
@@ -1197,8 +1197,8 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>charset</p></td>
-<td class="parameter_description"><p>a charset</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>a charset. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<a 
href="http://foldoc.org/nullable";><span 
class="acronym">nullable</span></a>]</span></td>
 </tr>
 </tbody>
 </table></div>
@@ -1247,8 +1247,8 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>charset</p></td>
-<td class="parameter_description"><p>a charset</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>a charset. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<a 
href="http://foldoc.org/nullable";><span 
class="acronym">nullable</span></a>]</span></td>
 </tr>
 </tbody>
 </table></div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/docs/reference/html/GMimeMessage.html 
new/gmime-3.2.14/docs/reference/html/GMimeMessage.html
--- old/gmime-3.2.13/docs/reference/html/GMimeMessage.html      2022-08-18 
15:52:17.000000000 +0200
+++ new/gmime-3.2.14/docs/reference/html/GMimeMessage.html      2023-09-02 
16:22:56.000000000 +0200
@@ -481,8 +481,8 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>name</p></td>
-<td class="parameter_description"><p>The name of the mailbox (or <code 
class="literal">NULL</code>)</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>The name of the mailbox (or <code 
class="literal">NULL</code>). </p></td>
+<td class="parameter_annotations"><span class="annotation">[<a 
href="http://foldoc.org/nullable";><span 
class="acronym">nullable</span></a>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>addr</p></td>
@@ -595,8 +595,8 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>charset</p></td>
-<td class="parameter_description"><p>The charset to use for encoding the 
subject or <code class="literal">NULL</code> to use the default</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>The charset to use for encoding the 
subject or <code class="literal">NULL</code> to use the default. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<a 
href="http://foldoc.org/nullable";><span 
class="acronym">nullable</span></a>]</span></td>
 </tr>
 </tbody>
 </table></div>
@@ -927,8 +927,8 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>now</p></td>
-<td class="parameter_description"><p>a <span class="type">GDateTime</span> 
object, or <code class="literal">NULL</code></p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>a <span class="type">GDateTime</span> 
object, or <code class="literal">NULL</code>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<a 
href="http://foldoc.org/nullable";><span 
class="acronym">nullable</span></a>]</span></td>
 </tr>
 </tbody>
 </table></div>
@@ -1001,8 +1001,8 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>now</p></td>
-<td class="parameter_description"><p>a <span class="type">GDateTime</span> 
object, or <code class="literal">NULL</code></p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>a <span class="type">GDateTime</span> 
object, or <code class="literal">NULL</code>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<a 
href="http://foldoc.org/nullable";><span 
class="acronym">nullable</span></a>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>inner_part</p></td>
@@ -1060,8 +1060,8 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>now</p></td>
-<td class="parameter_description"><p>a <span class="type">GDateTime</span> 
object, or <code class="literal">NULL</code></p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>a <span class="type">GDateTime</span> 
object, or <code class="literal">NULL</code>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<a 
href="http://foldoc.org/nullable";><span 
class="acronym">nullable</span></a>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>flags</p></td>
@@ -1070,8 +1070,8 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>session_key</p></td>
-<td class="parameter_description"><p>session key to use or <code 
class="literal">NULL</code></p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>session key to use or <code 
class="literal">NULL</code>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<a 
href="http://foldoc.org/nullable";><span 
class="acronym">nullable</span></a>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>err</p></td>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/docs/reference/html/GMimeMessagePartial.html 
new/gmime-3.2.14/docs/reference/html/GMimeMessagePartial.html
--- old/gmime-3.2.13/docs/reference/html/GMimeMessagePartial.html       
2022-08-18 15:52:17.000000000 +0200
+++ new/gmime-3.2.14/docs/reference/html/GMimeMessagePartial.html       
2023-09-02 16:22:56.000000000 +0200
@@ -257,8 +257,8 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>partials</p></td>
-<td class="parameter_description"><p>an array of message/partial mime 
parts</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>an array of message/partial mime parts. 
</p></td>
+<td class="parameter_annotations"><span class="annotation">[<a 
href="http://foldoc.org/array";><span class="acronym">array</span></a> 
length=num][<a href="http://foldoc.org/element-type";><span 
class="acronym">element-type</span></a> GMimeMessagePartial]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>num</p></td>
@@ -322,7 +322,7 @@
 <p>an array of <a class="link" href="GMimeMessage.html" 
title="GMimeMessage"><span class="type">GMimeMessage</span></a> objects and
 sets <em class="parameter"><code>nparts</code></em>
 to the number of messages returned or <code class="literal">NULL</code> on 
fail. </p>
-<p><span class="annotation">[<a href="http://foldoc.org/nullable";><span 
class="acronym">nullable</span></a>][<a 
href="http://foldoc.org/transfer%20full";><span class="acronym">transfer 
full</span></a>]</span></p>
+<p><span class="annotation">[<a href="http://foldoc.org/nullable";><span 
class="acronym">nullable</span></a>][<a 
href="http://foldoc.org/transfer%20full";><span class="acronym">transfer 
full</span></a>][<a href="http://foldoc.org/array";><span 
class="acronym">array</span></a> length=nparts]</span></p>
 </div>
 </div>
 </div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/docs/reference/html/GMimeMultipartEncrypted.html 
new/gmime-3.2.14/docs/reference/html/GMimeMultipartEncrypted.html
--- old/gmime-3.2.13/docs/reference/html/GMimeMultipartEncrypted.html   
2022-08-18 15:52:17.000000000 +0200
+++ new/gmime-3.2.14/docs/reference/html/GMimeMultipartEncrypted.html   
2023-09-02 16:22:56.000000000 +0200
@@ -224,8 +224,8 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>session_key</p></td>
-<td class="parameter_description"><p>session key to use or <code 
class="literal">NULL</code></p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>session key to use or <code 
class="literal">NULL</code>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<a 
href="http://foldoc.org/nullable";><span 
class="acronym">nullable</span></a>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>result</p></td>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/docs/reference/html/GMimeObject.html 
new/gmime-3.2.14/docs/reference/html/GMimeObject.html
--- old/gmime-3.2.13/docs/reference/html/GMimeObject.html       2022-08-18 
15:52:17.000000000 +0200
+++ new/gmime-3.2.14/docs/reference/html/GMimeObject.html       2023-09-02 
16:22:56.000000000 +0200
@@ -888,8 +888,8 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>charset</p></td>
-<td class="parameter_description"><p>a charset</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>a charset. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<a 
href="http://foldoc.org/nullable";><span 
class="acronym">nullable</span></a>]</span></td>
 </tr>
 </tbody>
 </table></div>
@@ -930,8 +930,8 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>charset</p></td>
-<td class="parameter_description"><p>a charset</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>a charset. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<a 
href="http://foldoc.org/nullable";><span 
class="acronym">nullable</span></a>]</span></td>
 </tr>
 </tbody>
 </table></div>
@@ -1007,8 +1007,8 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>charset</p></td>
-<td class="parameter_description"><p>a charset</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>a charset. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<a 
href="http://foldoc.org/nullable";><span 
class="acronym">nullable</span></a>]</span></td>
 </tr>
 </tbody>
 </table></div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/docs/reference/html/GMimeParamList.html 
new/gmime-3.2.14/docs/reference/html/GMimeParamList.html
--- old/gmime-3.2.13/docs/reference/html/GMimeParamList.html    2022-08-18 
15:52:17.000000000 +0200
+++ new/gmime-3.2.14/docs/reference/html/GMimeParamList.html    2023-09-02 
16:22:56.000000000 +0200
@@ -771,8 +771,8 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>options</p></td>
-<td class="parameter_description"><p>a <a class="link" 
href="gmime-GMimeFormatOptions.html#GMimeFormatOptions" 
title="GMimeFormatOptions"><span class="type">GMimeFormatOptions</span></a> or 
<code class="literal">NULL</code></p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>a <a class="link" 
href="gmime-GMimeFormatOptions.html#GMimeFormatOptions" 
title="GMimeFormatOptions"><span class="type">GMimeFormatOptions</span></a> or 
<code class="literal">NULL</code>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<a 
href="http://foldoc.org/nullable";><span 
class="acronym">nullable</span></a>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>fold</p></td>
@@ -781,8 +781,8 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>str</p></td>
-<td class="parameter_description"><p>the output string buffer</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>the output string buffer. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<a 
href="http://foldoc.org/out";><span class="acronym">out</span></a>]</span></td>
 </tr>
 </tbody>
 </table></div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/docs/reference/html/gmime-GMimeFormatOptions.html 
new/gmime-3.2.14/docs/reference/html/gmime-GMimeFormatOptions.html
--- old/gmime-3.2.13/docs/reference/html/gmime-GMimeFormatOptions.html  
2022-08-18 15:52:17.000000000 +0200
+++ new/gmime-3.2.14/docs/reference/html/gmime-GMimeFormatOptions.html  
2023-09-02 16:22:57.000000000 +0200
@@ -561,9 +561,9 @@
 <a name="GMimeParamEncodingMethod"></a><h3>enum GMimeParamEncodingMethod</h3>
 <p>The MIME specifications specify that the proper method for encoding 
Content-Type and
 Content-Disposition parameter values is the method described in</p>
-<span style="color: red">&lt;a&gt;rfc2231&lt;/a&gt;</span>. However, it is 
common for
+<a class="ulink" href="https://tools.ietf.org/html/rfc2231"; 
target="_top">rfc2231</a>. However, it is common for
 <p>some older email clients to improperly encode using the method described 
in</p>
-<span style="color: red">&lt;a&gt;rfc2047&lt;/a&gt;</span> instead.
+<a class="ulink" href="https://tools.ietf.org/html/rfc2047"; 
target="_top">rfc2047</a> instead.
 <div class="refsect3">
 <a name="GMimeParamEncodingMethod.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" 
border="0">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/docs/reference/html/gmime-GMimeParserOptions.html 
new/gmime-3.2.14/docs/reference/html/gmime-GMimeParserOptions.html
--- old/gmime-3.2.13/docs/reference/html/gmime-GMimeParserOptions.html  
2022-08-18 15:52:17.000000000 +0200
+++ new/gmime-3.2.14/docs/reference/html/gmime-GMimeParserOptions.html  
2023-09-02 16:22:57.000000000 +0200
@@ -663,6 +663,7 @@
 g_mime_parser_options_get_warning_callback
                                (<em class="parameter"><code><a class="link" 
href="gmime-GMimeParserOptions.html#GMimeParserOptions" 
title="GMimeParserOptions"><span class="type">GMimeParserOptions</span></a> 
*options</code></em>);</pre>
 <p>Gets callback function which is called if the parser detects any issues.</p>
+<p><span class="annotation">[<a href="http://foldoc.org/skip";><span 
class="acronym">skip</span></a>]</span></p>
 <div class="refsect3">
 <a 
name="g-mime-parser-options-get-warning-callback.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" 
border="0">
@@ -690,7 +691,8 @@
 g_mime_parser_options_set_warning_callback
                                (<em class="parameter"><code><a class="link" 
href="gmime-GMimeParserOptions.html#GMimeParserOptions" 
title="GMimeParserOptions"><span class="type">GMimeParserOptions</span></a> 
*options</code></em>,
                                 <em class="parameter"><code><a class="link" 
href="gmime-GMimeParserOptions.html#GMimeParserWarningFunc" 
title="GMimeParserWarningFunc ()"><span 
class="type">GMimeParserWarningFunc</span></a> warning_cb</code></em>,
-                                <em class="parameter"><code><span 
class="type">gpointer</span> user_data</code></em>);</pre>
+                                <em class="parameter"><code><span 
class="type">gpointer</span> user_data</code></em>,
+                                <em class="parameter"><code><span 
class="type">GDestroyNotify</span> notify</code></em>);</pre>
 <p>Registers the callback function being called if the parser detects any 
issues.</p>
 <div class="refsect3">
 <a 
name="g-mime-parser-options-set-warning-callback.parameters"></a><h4>Parameters</h4>
@@ -716,6 +718,11 @@
 <td class="parameter_description"><p>data passed to the warning callback 
function</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
+<tr>
+<td class="parameter_name"><p>notify</p></td>
+<td class="parameter_description"><p>callback function ran on 
destruction</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
 </tbody>
 </table></div>
 </div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/docs/reference/html/gmime-gmime-iconv-utils.html 
new/gmime-3.2.14/docs/reference/html/gmime-gmime-iconv-utils.html
--- old/gmime-3.2.13/docs/reference/html/gmime-gmime-iconv-utils.html   
2022-08-18 15:52:18.000000000 +0200
+++ new/gmime-3.2.14/docs/reference/html/gmime-gmime-iconv-utils.html   
2023-09-02 16:22:57.000000000 +0200
@@ -117,8 +117,8 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>cd</p></td>
-<td class="parameter_description"><p>conversion descriptor</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>conversion descriptor. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<a 
href="http://foldoc.org/type";><span class="acronym">type</span></a> 
gpointer]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>str</p></td>
@@ -159,8 +159,8 @@
 <tbody>
 <tr>
 <td class="parameter_name"><p>cd</p></td>
-<td class="parameter_description"><p>conversion descriptor</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>conversion descriptor. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<a 
href="http://foldoc.org/type";><span class="acronym">type</span></a> 
gpointer]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>str</p></td>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/docs/reference/html/gmime-gmime-iconv.html 
new/gmime-3.2.14/docs/reference/html/gmime-gmime-iconv.html
--- old/gmime-3.2.13/docs/reference/html/gmime-gmime-iconv.html 2022-08-18 
15:52:18.000000000 +0200
+++ new/gmime-3.2.14/docs/reference/html/gmime-gmime-iconv.html 2023-09-02 
16:22:57.000000000 +0200
@@ -109,9 +109,10 @@
 </div>
 <div class="refsect3">
 <a name="g-mime-iconv-open.returns"></a><h4>Returns</h4>
-<p> a new conversion descriptor for use with <a class="link" 
href="gmime-gmime-iconv.html#g-mime-iconv" title="g_mime_iconv()"><code 
class="function">g_mime_iconv()</code></a> on
+<p>a new conversion descriptor for use with <a class="link" 
href="gmime-gmime-iconv.html#g-mime-iconv" title="g_mime_iconv()"><code 
class="function">g_mime_iconv()</code></a> on
 success or (iconv_t) <code class="literal">-1</code> on fail as well as 
setting an appropriate
-errno value.</p>
+errno value. </p>
+<p><span class="annotation">[<a href="http://foldoc.org/type";><span 
class="acronym">type</span></a> gpointer]</span></p>
 </div>
 </div>
 <hr>
@@ -236,8 +237,8 @@
 </colgroup>
 <tbody><tr>
 <td class="parameter_name"><p>cd</p></td>
-<td class="parameter_description"><p>iconv conversion descriptor</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p>iconv conversion descriptor. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<a 
href="http://foldoc.org/type";><span class="acronym">type</span></a> 
gpointer]</span></td>
 </tr></tbody>
 </table></div>
 </div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/docs/reference/html/gmime-gmime.html 
new/gmime-3.2.14/docs/reference/html/gmime-gmime.html
--- old/gmime-3.2.13/docs/reference/html/gmime-gmime.html       2022-08-18 
15:52:18.000000000 +0200
+++ new/gmime-3.2.14/docs/reference/html/gmime-gmime.html       2023-09-02 
16:22:57.000000000 +0200
@@ -232,7 +232,7 @@
 <hr>
 <div class="refsect2">
 <a name="GMIME-MICRO-VERSION:CAPS"></a><h3>GMIME_MICRO_VERSION</h3>
-<pre class="programlisting">#define GMIME_MICRO_VERSION (13U)
+<pre class="programlisting">#define GMIME_MICRO_VERSION (14U)
 </pre>
 <p>GMime's micro version.</p>
 </div>
@@ -246,7 +246,7 @@
 <hr>
 <div class="refsect2">
 <a name="GMIME-BINARY-AGE:CAPS"></a><h3>GMIME_BINARY_AGE</h3>
-<pre class="programlisting">#define GMIME_BINARY_AGE    (213U)
+<pre class="programlisting">#define GMIME_BINARY_AGE    (214U)
 </pre>
 <p>GMime's binary age.</p>
 </div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/examples/msgcheck.c new/gmime-3.2.14/examples/msgcheck.c
--- old/gmime-3.2.13/examples/msgcheck.c        2022-03-18 21:35:58.000000000 
+0100
+++ new/gmime-3.2.14/examples/msgcheck.c        2023-07-12 21:03:21.000000000 
+0200
@@ -110,7 +110,7 @@
                parser = g_mime_parser_new ();
                g_mime_parser_init_with_stream (parser, stream);
                options = g_mime_parser_options_new ();
-               g_mime_parser_options_set_warning_callback (options, 
parser_issue, NULL);
+               g_mime_parser_options_set_warning_callback (options, 
parser_issue, NULL, NULL);
                message = g_mime_parser_construct_message (parser, options);
                g_mime_parser_options_free (options);
                g_object_unref (parser);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/gmime/charset-map.c new/gmime-3.2.14/gmime/charset-map.c
--- old/gmime-3.2.13/gmime/charset-map.c        2022-03-18 21:35:58.000000000 
+0100
+++ new/gmime-3.2.14/gmime/charset-map.c        2023-07-12 21:03:21.000000000 
+0200
@@ -91,7 +91,7 @@
 block_hash (gconstpointer v)
 {
        const signed char *p = v;
-       guint32 h = *p++;
+       guint32 h = 0;
        int i;
        
        for (i = 0; i < 256; i++)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/gmime/gmime-crypto-context.c 
new/gmime-3.2.14/gmime/gmime-crypto-context.c
--- old/gmime-3.2.13/gmime/gmime-crypto-context.c       2022-03-18 
21:35:57.000000000 +0100
+++ new/gmime-3.2.14/gmime/gmime-crypto-context.c       2023-01-16 
21:08:41.000000000 +0100
@@ -563,7 +563,7 @@
 /**
  * g_mime_crypto_context_export_keys:
  * @ctx: a #GMimeCryptoContext
- * @keys: an array of key ids, terminated by a %NULL element
+ * @keys: (array zero-terminated=1): an array of key ids, terminated by a 
%NULL element
  * @ostream: output stream
  * @err: a #GError
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/gmime/gmime-crypto-context.h 
new/gmime-3.2.14/gmime/gmime-crypto-context.h
--- old/gmime-3.2.13/gmime/gmime-crypto-context.h       2022-03-18 
21:35:58.000000000 +0100
+++ new/gmime-3.2.14/gmime/gmime-crypto-context.h       2023-01-16 
21:08:41.000000000 +0100
@@ -109,10 +109,10 @@
  **/
 typedef enum {
        GMIME_ENCRYPT_NONE          = 0,
-       GMIME_ENCRYPT_ALWAYS_TRUST  = 1,
-       GMIME_ENCRYPT_NO_COMPRESS   = 16,
-       GMIME_ENCRYPT_SYMMETRIC     = 32,
-       GMIME_ENCRYPT_THROW_KEYIDS  = 64,
+       GMIME_ENCRYPT_ALWAYS_TRUST  = 1 << 0,
+       GMIME_ENCRYPT_NO_COMPRESS   = 1 << 4,
+       GMIME_ENCRYPT_SYMMETRIC     = 1 << 5,
+       GMIME_ENCRYPT_THROW_KEYIDS  = 1 << 6,
 } GMimeEncryptFlags;
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/gmime/gmime-encodings.c 
new/gmime-3.2.14/gmime/gmime-encodings.c
--- old/gmime-3.2.13/gmime/gmime-encodings.c    2022-03-18 22:43:36.000000000 
+0100
+++ new/gmime-3.2.14/gmime/gmime-encodings.c    2023-08-31 17:36:14.000000000 
+0200
@@ -60,7 +60,7 @@
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
        255,255,255,255,255,255,255,255,255,255,255, 62,255,255,255, 63,
-        52, 53, 54, 55, 56, 57, 58, 59, 60, 61,255,255,255,255,255,255,
+        52, 53, 54, 55, 56, 57, 58, 59, 60, 61,255,255,255,  0,255,255,
        255,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
         15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,255,255,255,255,255,
        255, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
@@ -523,64 +523,53 @@
 size_t
 g_mime_encoding_base64_decode_step (const unsigned char *inbuf, size_t inlen, 
unsigned char *outbuf, int *state, guint32 *save)
 {
-       register const unsigned char *inptr = inbuf;
-       const unsigned char *inend = inptr + inlen;
-       unsigned char *outptr = outbuf;
-       unsigned int saved = *save;
+       register const unsigned char *inptr;
+       register unsigned char *outptr;
+       const unsigned char *inend;
+       register guint32 saved;
+       unsigned char last[2];
        unsigned char c, rank;
-       int n, eq, eof = 0;
-
+       int n;
+       
+       inend = inbuf + inlen;
+       outptr = outbuf;
+       inptr = inbuf;
+       
+       saved = *save;
        n = *state;
-
-       /* if n == -1, then it means we've encountered the end of the base64 
stream */
-       if (n == -1)
-               return 0;
-
-       /* decode every quartet into a triplet */
+       
+       if (n < 0) {
+               last[0] = '=';
+               n = -n;
+       } else {
+               last[0] = '\0';
+       }
+       
+       last[1] = '\0';
+       
+       /* convert 4 base64 bytes to 3 normal bytes */
        while (inptr < inend) {
                rank = gmime_base64_rank[(c = *inptr++)];
-
-               if (rank != 0xFF) {
+               if (rank != 0xff) {
                        saved = (saved << 6) | rank;
+                       last[1] = last[0];
+                       last[0] = c;
                        n++;
-
                        if (n == 4) {
-                               /* flush our decoded quartet */
                                *outptr++ = saved >> 16;
-                               *outptr++ = saved >> 8;
-                               *outptr++ = saved;
-                               saved = 0;
+                               if (last[1] != '=')
+                                       *outptr++ = saved >> 8;
+                               if (last[0] != '=')
+                                       *outptr++ = saved;
                                n = 0;
                        }
-               } else if (c == '=') {
-                       /* Note: this marks the end of the base64 stream. The 
only octet that can
-                        * appear after this is another '=' (and possibly 
mailing-list junk). */
-                       eof = 1;
-                       break;
                }
        }
-
-       if (eof) {
-               /* Note: there shouldn't be more than 2 '=' octets at the end 
of a quartet,
-                * so if n < 2, then it means the encoder is broken. */
-               if (n > 1) {
-                       /* at this point, n should be either 3 or 4 */
-                       eq = 4 - n;
-                       saved <<= (6 * eq);
-
-                       *outptr++ = saved >> 16;
-                       if (n > 2)
-                               *outptr++ = saved >> 8;
-               }
-
-               n = -1;
-       }
-
-       /* save state */
+       
+       *state = last[0] == '=' ? -n : n;
        *save = saved;
-       *state = n;
-
-       return (size_t) (outptr - outbuf);
+       
+       return (outptr - outbuf);
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/gmime/gmime-filter-charset.h 
new/gmime-3.2.14/gmime/gmime-filter-charset.h
--- old/gmime-3.2.13/gmime/gmime-filter-charset.h       2022-03-18 
21:35:58.000000000 +0100
+++ new/gmime-3.2.14/gmime/gmime-filter-charset.h       2023-07-12 
21:03:21.000000000 +0200
@@ -42,7 +42,7 @@
  * @parent_object: parent #GMimeFilter
  * @from_charset: charset that the filter is converting from
  * @to_charset: charset the filter is converting to
- * @cd: charset conversion state
+ * @cd: (type gpointer): charset conversion state
  *
  * A filter to convert between charsets.
  **/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/gmime/gmime-filter-checksum.c 
new/gmime-3.2.14/gmime/gmime-filter-checksum.c
--- old/gmime-3.2.13/gmime/gmime-filter-checksum.c      2022-03-18 
21:35:58.000000000 +0100
+++ new/gmime-3.2.14/gmime/gmime-filter-checksum.c      2023-01-16 
21:08:41.000000000 +0100
@@ -174,7 +174,7 @@
 /**
  * g_mime_filter_checksum_get_digest:
  * @checksum: checksum filter object
- * @digest: the digest buffer
+ * @digest: (array length=len): the digest buffer
  * @len: the length of the digest buffer
  *
  * Outputs the checksum digest into @digest.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/gmime/gmime-format-options.h 
new/gmime-3.2.14/gmime/gmime-format-options.h
--- old/gmime-3.2.13/gmime/gmime-format-options.h       2022-03-18 
21:35:58.000000000 +0100
+++ new/gmime-3.2.14/gmime/gmime-format-options.h       2022-10-14 
00:02:34.000000000 +0200
@@ -53,9 +53,9 @@
  *
  * The MIME specifications specify that the proper method for encoding 
Content-Type and
  * Content-Disposition parameter values is the method described in
- * <a href="https://tools.ietf.org/html/rfc2231";>rfc2231</a>. However, it is 
common for
+ * <ulink url="https://tools.ietf.org/html/rfc2231";>rfc2231</ulink>. However, 
it is common for
  * some older email clients to improperly encode using the method described in
- * <a href="https://tools.ietf.org/html/rfc2047";>rfc2047</a> instead.
+ * <ulink url="https://tools.ietf.org/html/rfc2047";>rfc2047</ulink> instead.
  **/
 typedef enum {
        GMIME_PARAM_ENCODING_METHOD_DEFAULT = 0,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/gmime/gmime-header.c new/gmime-3.2.14/gmime/gmime-header.c
--- old/gmime-3.2.13/gmime/gmime-header.c       2022-08-17 17:57:56.000000000 
+0200
+++ new/gmime-3.2.14/gmime/gmime-header.c       2023-07-12 21:03:21.000000000 
+0200
@@ -244,7 +244,7 @@
  * @header: a #GMimeHeader
  * @options: (nullable): a #GMimeFormatOptions or %NULL
  * @value: the new header value
- * @charset: a charset
+ * @charset: (nullable): a charset
  *
  * Sets the header's decoded value.
  **/
@@ -1129,7 +1129,7 @@
  * @headers: a #GMimeHeaderList
  * @name: header name
  * @value: header value
- * @charset: a charset
+ * @charset: (nullable): a charset
  *
  * Prepends a header. If @value is %NULL, a space will be set aside
  * for it (useful for setting the order of headers before values can
@@ -1197,7 +1197,7 @@
  * @headers: a #GMimeHeaderList
  * @name: header name
  * @value: header value
- * @charset: a charset
+ * @charset: (nullable): a charset
  *
  * Appends a header. If @value is %NULL, a space will be set aside for it
  * (useful for setting the order of headers before values can be
@@ -1287,7 +1287,7 @@
  * @headers: a #GMimeHeaderList
  * @name: header name
  * @value: header value
- * @charset: a charset
+ * @charset: (nullable): a charset
  *
  * Set the value of the specified header. If @value is %NULL and the
  * header, @name, had not been previously set, a space will be set
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/gmime/gmime-iconv-utils.c 
new/gmime-3.2.14/gmime/gmime-iconv-utils.c
--- old/gmime-3.2.13/gmime/gmime-iconv-utils.c  2022-03-18 21:35:58.000000000 
+0100
+++ new/gmime-3.2.14/gmime/gmime-iconv-utils.c  2023-07-12 21:03:21.000000000 
+0200
@@ -49,7 +49,7 @@
 
 /**
  * g_mime_iconv_strndup: (skip)
- * @cd: conversion descriptor
+ * @cd: (type gpointer): conversion descriptor
  * @str: string in source charset
  * @n: number of bytes to convert
  *
@@ -152,7 +152,7 @@
 
 /**
  * g_mime_iconv_strdup: (skip)
- * @cd: conversion descriptor
+ * @cd: (type gpointer): conversion descriptor
  * @str: string in source charset
  *
  * Allocates a new string buffer containing @str converted to the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/gmime/gmime-iconv.c new/gmime-3.2.14/gmime/gmime-iconv.c
--- old/gmime-3.2.13/gmime/gmime-iconv.c        2022-03-18 21:35:58.000000000 
+0100
+++ new/gmime-3.2.14/gmime/gmime-iconv.c        2023-07-12 21:03:21.000000000 
+0200
@@ -54,7 +54,7 @@
  *
  * See the manual page for iconv_open(3) for further details.
  *
- * Returns: a new conversion descriptor for use with g_mime_iconv() on
+ * Returns: (type gpointer): a new conversion descriptor for use with 
g_mime_iconv() on
  * success or (iconv_t) %-1 on fail as well as setting an appropriate
  * errno value.
  **/
@@ -78,7 +78,7 @@
 
 /**
  * g_mime_iconv_close: (skip)
- * @cd: iconv conversion descriptor
+ * @cd: (type gpointer): iconv conversion descriptor
  *
  * Closes the iconv descriptor @cd.
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/gmime/gmime-message-partial.c 
new/gmime-3.2.14/gmime/gmime-message-partial.c
--- old/gmime-3.2.13/gmime/gmime-message-partial.c      2022-03-18 
21:35:58.000000000 +0100
+++ new/gmime-3.2.14/gmime/gmime-message-partial.c      2023-01-16 
21:08:41.000000000 +0100
@@ -241,7 +241,7 @@
 
 /**
  * g_mime_message_partial_reconstruct_message:
- * @partials: an array of message/partial mime parts
+ * @partials: (array length=num) (element-type GMimeMessagePartial): an array 
of message/partial mime parts
  * @num: the number of elements in @partials
  *
  * Reconstructs the GMimeMessage from the given message/partial parts
@@ -359,7 +359,7 @@
  * @max_size bytes or fewer. @nparts is set to the number of
  * #GMimeMessagePartial objects created.
  *
- * Returns: (nullable) (transfer full): an array of #GMimeMessage objects and
+ * Returns: (nullable) (transfer full) (array length=nparts): an array of 
#GMimeMessage objects and
  * sets @nparts to the number of messages returned or %NULL on fail.
  **/
 GMimeMessage **
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/gmime/gmime-message.c new/gmime-3.2.14/gmime/gmime-message.c
--- old/gmime-3.2.13/gmime/gmime-message.c      2022-08-17 17:43:31.000000000 
+0200
+++ new/gmime-3.2.14/gmime/gmime-message.c      2023-07-12 21:03:21.000000000 
+0200
@@ -269,8 +269,6 @@
        
        addrlist = message->addrlists[type];
        
-       internet_address_list_clear (addrlist);
-       
        if ((value = g_mime_header_get_raw_value (header)))
                _internet_address_list_append_parse (addrlist, options, value, 
header->offset);
        
@@ -862,7 +860,7 @@
  * g_mime_message_add_mailbox:
  * @message: A #GMimeMessage
  * @type: A #GMimeAddressType
- * @name: The name of the mailbox (or %NULL)
+ * @name: (nullable): The name of the mailbox (or %NULL)
  * @addr: The address of the mailbox
  *
  * Add a mailbox of a chosen type to the MIME message.
@@ -944,7 +942,7 @@
  * g_mime_message_set_subject:
  * @message: A #GMimeMessage
  * @subject: Subject string
- * @charset: The charset to use for encoding the subject or %NULL to use the 
default
+ * @charset: (nullable): The charset to use for encoding the subject or %NULL 
to use the default
  *
  * Set the subject of a @message.
  *
@@ -1226,7 +1224,7 @@
 /**
  * g_mime_message_get_autocrypt_header:
  * @message: a #GMimeMessage object.
- * @now: a #GDateTime object, or %NULL
+ * @now: (nullable): a #GDateTime object, or %NULL
  *
  * Creates a new #GMimeAutocryptHeader based on the relevant Autocrypt
  * header associated with the sender of an e-mail message.
@@ -1293,7 +1291,7 @@
 /**
  * g_mime_message_get_autocrypt_gossip_headers_from_inner_part:
  * @message: a #GMimeMessage object.
- * @now: a #GDateTime object, or %NULL
+ * @now: (nullable): a #GDateTime object, or %NULL
  * @inner_part: a #GMimeObject which is the cleartext part of the inner message
  *
  * Creates a new #GMimeAutocryptHeaderList of relevant headers of the
@@ -1366,9 +1364,9 @@
 /**
  * g_mime_message_get_autocrypt_gossip_headers:
  * @message: a #GMimeMessage object, which is expected to be encrypted.
- * @now: a #GDateTime object, or %NULL
+ * @now: (nullable): a #GDateTime object, or %NULL
  * @flags: a #GMimeDecryptFlags, to be used during decryption
- * @session_key: session key to use or %NULL
+ * @session_key: (nullable): session key to use or %NULL
  * @err: a #GError (can be %NULL)
  *
  * Creates a new #GMimeAutocryptHeaderList of relevant headers of the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/gmime/gmime-multipart-encrypted.c 
new/gmime-3.2.14/gmime/gmime-multipart-encrypted.c
--- old/gmime-3.2.13/gmime/gmime-multipart-encrypted.c  2022-03-18 
21:35:58.000000000 +0100
+++ new/gmime-3.2.14/gmime/gmime-multipart-encrypted.c  2023-07-12 
21:03:21.000000000 +0200
@@ -236,7 +236,7 @@
  * g_mime_multipart_encrypted_decrypt:
  * @encrypted: a #GMimeMultipartEncrypted
  * @flags: a #GMimeDecryptFlags
- * @session_key: session key to use or %NULL
+ * @session_key: (nullable): session key to use or %NULL
  * @result: (out) (transfer full): a #GMimeDecryptResult
  * @err: a #GError
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/gmime/gmime-object.c new/gmime-3.2.14/gmime/gmime-object.c
--- old/gmime-3.2.13/gmime/gmime-object.c       2022-08-17 17:48:42.000000000 
+0200
+++ new/gmime-3.2.14/gmime/gmime-object.c       2023-07-12 21:03:21.000000000 
+0200
@@ -833,7 +833,7 @@
  * @object: a #GMimeObject
  * @header: header name
  * @value: header value
- * @charset: a charset
+ * @charset: (nullable): a charset
  *
  * Prepends a new header to the header list.
  **/
@@ -860,7 +860,7 @@
  * @object: a #GMimeObject
  * @header: header name
  * @value: header value
- * @charset: a charset
+ * @charset: (nullable): a charset
  *
  * Appends a new header to the header list.
  **/
@@ -879,7 +879,7 @@
  * @object: a #GMimeObject
  * @header: header name
  * @value: header value
- * @charset: a charset
+ * @charset: (nullable): a charset
  *
  * Sets a header to the specified value.
  **/
@@ -1129,7 +1129,47 @@
 }
 
 
-
+/**
+ * g_mime_object_get_autocrypt_headers:
+ * @mime_part: a #GMimeObject
+ * @effective_date: a #GDateTime object
+ * @matchheader: the header we want to match
+ * @addresses: a #InternetAddressList
+ * @keep_incomplete: %TRUE if the we should include incompletes
+ *
+ * Creates a new #GMimeAutocryptHeaderList of relevant headers of the
+ * given type based on the @addresses of an @mime_part.
+ * 
+ * Each header in the returned list will:
+ *
+ *  - have a valid address
+ *  - be of the type requested
+ *  - be complete
+ *
+ * If no Autocrypt header is found for an address, no
+ * #GMimeAutocryptHeader will be in the list associated with that e-mail 
address.
+ *
+ * Note that the following types of Autocrypt headers will not be
+ * returned by this function:
+ *
+ *  - headers of an unrequested type
+ *  - headers that do not match an address in "From:"
+ *  - unparseable headers
+ *  - headers with unknown critical attributes
+ *  - duplicate valid headers for a given address
+ * 
+ * On error (e.g. if this version of GMime cannot handle the requested
+ * Autocrypt type, or if a parameter is missing or malformed), returns
+ * %NULL
+ *
+ * The returned Autocrypt headers will have it effective_date set to
+ * @effective_date
+ *
+ * if @keep_incomplete isn't set, incompletes are removed
+ *
+ * Returns: (nullable) (transfer full): a new #GMimeAutocryptHeaderList object,
+ * or %NULL on error.
+ **/
 GMimeAutocryptHeaderList *
 g_mime_object_get_autocrypt_headers (GMimeObject *mime_part, GDateTime 
*effective_date,
                                     const char *matchheader, 
InternetAddressList *addresses,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/gmime/gmime-param.c new/gmime-3.2.14/gmime/gmime-param.c
--- old/gmime-3.2.13/gmime/gmime-param.c        2022-03-18 21:35:58.000000000 
+0100
+++ new/gmime-3.2.14/gmime/gmime-param.c        2023-07-12 21:03:21.000000000 
+0200
@@ -718,9 +718,9 @@
 /**
  * g_mime_param_list_encode:
  * @list: a #GMimeParamList
- * @options: a #GMimeFormatOptions or %NULL
+ * @options: (nullable): a #GMimeFormatOptions or %NULL
  * @fold: %TRUE if the parameter list should be folded; otherwise, %FALSE
- * @str: the output string buffer
+ * @str: (out): the output string buffer
  *
  * Encodes the parameter list into @str, folding lines if required.
  **/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/gmime/gmime-parse-utils.c 
new/gmime-3.2.14/gmime/gmime-parse-utils.c
--- old/gmime-3.2.13/gmime/gmime-parse-utils.c  2022-03-18 21:35:57.000000000 
+0100
+++ new/gmime-3.2.14/gmime/gmime-parse-utils.c  2023-07-12 21:03:21.000000000 
+0200
@@ -493,8 +493,7 @@
                goto exception;
        }
        
-       str = addrspec->str;
-       g_string_free (addrspec, FALSE);
+       str = g_string_free (addrspec, FALSE);
        
        *in = inptr;
        
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/gmime/gmime-parser-options.c 
new/gmime-3.2.14/gmime/gmime-parser-options.c
--- old/gmime-3.2.13/gmime/gmime-parser-options.c       2022-03-18 
21:35:58.000000000 +0100
+++ new/gmime-3.2.14/gmime/gmime-parser-options.c       2023-07-12 
21:03:21.000000000 +0200
@@ -50,6 +50,7 @@
        char **charsets;
        GMimeParserWarningFunc warning_cb;
        gpointer warning_user_data;
+       GDestroyNotify notify;
 };
 
 static GMimeParserOptions *default_options = NULL;
@@ -69,6 +70,9 @@
        if (default_options == NULL)
                return;
        
+       if (default_options->notify) {
+               default_options->notify(default_options->warning_user_data);
+       }
        g_strfreev (default_options->charsets);
        g_slice_free (GMimeParserOptions, default_options);
        default_options = NULL;
@@ -131,6 +135,7 @@
        
        options->warning_cb = NULL;
        options->warning_user_data = NULL;
+       options->notify = NULL;
 
        return options;
 }
@@ -169,6 +174,8 @@
        
        clone->warning_cb = options->warning_cb;
        clone->warning_user_data = options->warning_user_data;
+       // We transfer the pointer not ownership. So we don't copy the notify
+       clone->notify = NULL;
 
        return clone;
 }
@@ -186,6 +193,9 @@
        g_return_if_fail (options != NULL);
        
        if (options != default_options) {
+               if (options->notify) {
+                       options->notify(options->warning_user_data);
+               }
                g_strfreev (options->charsets);
                g_slice_free (GMimeParserOptions, options);
        }
@@ -421,7 +431,7 @@
 
 
 /**
- * g_mime_parser_options_get_warning_callback:
+ * g_mime_parser_options_get_warning_callback: (skip)
  * @options: (nullable): a #GMimeParserOptions or %NULL
  *
  * Gets callback function which is called if the parser detects any issues.
@@ -440,14 +450,20 @@
  * @options: a #GMimeParserOptions
  * @warning_cb: a #GMimeParserWarningFunc or %NULL to clear the callback
  * @user_data: data passed to the warning callback function
+ * @notify: callback function ran on destruction
  *
  * Registers the callback function being called if the parser detects any 
issues.
  **/
 void
-g_mime_parser_options_set_warning_callback (GMimeParserOptions *options, 
GMimeParserWarningFunc warning_cb, gpointer user_data)
+g_mime_parser_options_set_warning_callback (GMimeParserOptions *options, 
GMimeParserWarningFunc warning_cb, gpointer user_data, GDestroyNotify notify)
 {
        g_return_if_fail (options != NULL);
+
+       if (options->notify) {
+               options->notify(options->warning_user_data);
+       }
        
        options->warning_cb = warning_cb;
        options->warning_user_data = user_data;
+       options->notify = notify;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/gmime/gmime-parser-options.h 
new/gmime-3.2.14/gmime/gmime-parser-options.h
--- old/gmime-3.2.13/gmime/gmime-parser-options.h       2022-03-18 
21:35:57.000000000 +0100
+++ new/gmime-3.2.14/gmime/gmime-parser-options.h       2023-07-12 
21:03:21.000000000 +0200
@@ -128,8 +128,8 @@
 void g_mime_parser_options_set_fallback_charsets (GMimeParserOptions *options, 
const char **charsets);
 
 GMimeParserWarningFunc g_mime_parser_options_get_warning_callback 
(GMimeParserOptions *options);
-void g_mime_parser_options_set_warning_callback (GMimeParserOptions *options, 
GMimeParserWarningFunc warning_cb,
-                                                gpointer user_data);
+void g_mime_parser_options_set_warning_callback (GMimeParserOptions *options, 
+               GMimeParserWarningFunc warning_cb, gpointer user_data, 
GDestroyNotify notify);
 
 G_END_DECLS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/gmime/gmime-utils.c new/gmime-3.2.14/gmime/gmime-utils.c
--- old/gmime-3.2.13/gmime/gmime-utils.c        2022-03-18 21:35:57.000000000 
+0100
+++ new/gmime-3.2.14/gmime/gmime-utils.c        2023-08-31 17:36:14.000000000 
+0200
@@ -136,7 +136,7 @@
        111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,
 };
 
-/* Timezone values defined in rfc5322 */
+/* Timezone values defined in rfc822 */
 static struct {
        const char *name;
        int offset;
@@ -203,11 +203,34 @@
 char *
 g_mime_utils_header_format_date (GDateTime *date)
 {
-       int wday, year, month, day, hour, min, sec, tz_offset, sign;
+       int wday, year, month, day, hour, min, sec, tz_offset;
+       GDateTime *utc = NULL;
        GTimeSpan tz;
+       char sign;
        
        g_return_val_if_fail (date != NULL, NULL);
-       
+
+       tz = g_date_time_get_utc_offset (date);
+       if (tz % G_TIME_SPAN_MINUTE == 0) {
+               if (tz < 0) {
+                       sign = '-';
+                       tz *= -1;
+               } else {
+                       sign = '+';
+               }
+
+               tz_offset = 100 * (tz / G_TIME_SPAN_HOUR);
+               tz_offset += (tz % G_TIME_SPAN_HOUR) / G_TIME_SPAN_MINUTE;
+       } else {
+               // Note: RFC822 Date headers can only make use of timezones 
that can be represented by
+               // +/-HHMM and cannot represent any timezone that makes use of 
seconds. Therefore, the
+               // only solution is to convert the date being formatted into 
its UTC representation and
+               // use "-0000" as the timezone (as opposed to the normal 
"+0000" used for actual UTC).
+               date = utc = g_date_time_to_utc (date);
+               tz_offset = 0;
+               sign = '-';
+       }
+
        wday = g_date_time_get_day_of_week (date);
        year = g_date_time_get_year (date);
        month = g_date_time_get_month (date);
@@ -215,18 +238,13 @@
        hour = g_date_time_get_hour (date);
        min = g_date_time_get_minute (date);
        sec = g_date_time_get_second (date);
-       tz = g_date_time_get_utc_offset (date);
-       
-       sign = tz < 0 ? -1 : 1;
-       tz *= sign;
-       
-       tz_offset = 100 * (tz / G_TIME_SPAN_HOUR);
-       tz_offset += (tz % G_TIME_SPAN_HOUR) / G_TIME_SPAN_MINUTE;
-       tz_offset *= sign;
+
+       if (utc != NULL)
+               g_date_time_unref (utc);
        
-       return g_strdup_printf ("%s, %02d %s %04d %02d:%02d:%02d %+05d",
+       return g_strdup_printf ("%s, %02d %s %04d %02d:%02d:%02d %c%04d",
                                tm_days[wday % 7], day, tm_months[month - 1],
-                               year, hour, min, sec, tz_offset);
+                               year, hour, min, sec, sign, tz_offset);
 }
 
 /* This is where it gets ugly... */
@@ -445,16 +463,9 @@
 }
 
 static int
-format_timezone_identifier (char *identifier, int len, int tz_offset)
+format_timezone_identifier (char *identifier, int len, char sign, int 
tz_offset)
 {
-       int minutes, hours, sign;
-
-       if (tz_offset < 0) {
-               tz_offset *= -1;
-               sign = -1;
-       } else {
-               sign = 1;
-       }
+       int minutes, hours;
 
        hours = tz_offset / 100;
        minutes = tz_offset % 100;
@@ -462,7 +473,7 @@
        if (hours >= 24)
                return -1;
 
-       return snprintf (identifier, len, "%c%02d:%02d:00", (sign > 0) ? '+' : 
'-', hours, minutes);
+       return snprintf (identifier, len, "%c%02d:%02d:00", sign, hours, 
minutes);
 }
 
 static GTimeZone *
@@ -486,10 +497,7 @@
                        if ((tz_offset = decode_int (inptr + 1, len - 1)) == -1)
                                return NULL;
 
-                       if (*inptr == '-')
-                               tz_offset *= -1;
-
-                       if (format_timezone_identifier (identifier, sizeof 
(identifier), tz_offset) < 0)
+                       if (format_timezone_identifier (identifier, sizeof 
(identifier), *inptr, tz_offset) < 0)
                                return NULL;
                        
                        return g_time_zone_new_identifier (identifier);
@@ -510,7 +518,10 @@
                                continue;
                        
                        // TODO: modify the struct to have an `identifier` 
field instead of `offset` that is a pre-formatted string?
-                       if (format_timezone_identifier (identifier, sizeof 
(identifier), tz_offsets[t].offset) < 0)
+                       char sign = tz_offsets[t].offset < 0 ? '-' : '+';
+                       tz_offset = ABS(tz_offsets[t].offset);
+
+                       if (format_timezone_identifier (identifier, sizeof 
(identifier), sign, tz_offset) < 0)
                                return NULL;
                        
                        return g_time_zone_new_identifier (identifier);
@@ -937,7 +948,7 @@
                        inptr++;
        }
        
-       return FALSE;
+       return quoted;
 }
 
 /**
@@ -974,8 +985,7 @@
        if (quote)
                g_string_append_c (out, '"');
        
-       qstring = out->str;
-       g_string_free (out, FALSE);
+       qstring = g_string_free (out, FALSE);
        
        return qstring;
 }
@@ -2454,8 +2464,7 @@
        
        rfc822_word_free (prev);
        
-       outstr = out->str;
-       g_string_free (out, FALSE);
+       outstr = g_string_free (out, FALSE);
        
        return outstr;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/gmime/gmime-version.h new/gmime-3.2.14/gmime/gmime-version.h
--- old/gmime-3.2.13/gmime/gmime-version.h      2022-08-18 15:49:51.000000000 
+0200
+++ new/gmime-3.2.14/gmime/gmime-version.h      2023-09-02 16:22:52.000000000 
+0200
@@ -41,14 +41,14 @@
  *
  * GMime's micro version.
  **/
-#define GMIME_MICRO_VERSION (13U)
+#define GMIME_MICRO_VERSION (14U)
 
 /**
  * GMIME_BINARY_AGE:
  *
  * GMime's binary age.
  **/
-#define GMIME_BINARY_AGE    (213U)
+#define GMIME_BINARY_AGE    (214U)
 
 /**
  * GMIME_INTERFACE_AGE:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/gmime/internet-address.c 
new/gmime-3.2.14/gmime/internet-address.c
--- old/gmime-3.2.13/gmime/internet-address.c   2022-08-18 15:50:51.000000000 
+0200
+++ new/gmime-3.2.14/gmime/internet-address.c   2023-07-12 21:03:21.000000000 
+0200
@@ -279,9 +279,8 @@
        
        string = g_string_new ("");
        INTERNET_ADDRESS_GET_CLASS (ia)->to_string (ia, options, flags, 
&linelen, string);
-       str = string->str;
        
-       g_string_free (string, FALSE);
+       str = g_string_free (string, FALSE);
        
        return str;
 }
@@ -2178,6 +2177,7 @@
 /**
  * internet_address_list_append_parse:
  * @list: a #InternetAddressList
+ * @options: (nullable): a #GMimeParserOptions or %NULL
  * @str: a string containing internet addresses
  *
  * Adds all of the addresses in @str to @list.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/gmime/internet-address.h 
new/gmime-3.2.14/gmime/internet-address.h
--- old/gmime-3.2.13/gmime/internet-address.h   2022-08-17 16:44:57.000000000 
+0200
+++ new/gmime-3.2.14/gmime/internet-address.h   2022-10-04 16:02:06.000000000 
+0200
@@ -214,6 +214,7 @@
 void internet_address_list_encode (InternetAddressList *list, 
GMimeFormatOptions *options, GString *str);
 
 InternetAddressList *internet_address_list_parse (GMimeParserOptions *options, 
const char *str);
+void internet_address_list_append_parse (InternetAddressList *list, 
GMimeParserOptions *options, const char *str);
 
 G_END_DECLS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/gmime.spec new/gmime-3.2.14/gmime.spec
--- old/gmime-3.2.13/gmime.spec 2022-08-18 15:52:18.000000000 +0200
+++ new/gmime-3.2.14/gmime.spec 2023-09-02 16:22:57.000000000 +0200
@@ -1,5 +1,5 @@
 # Note that this is NOT a relocatable package
-%define ver      3.2.13
+%define ver      3.2.14
 %define prefix   /usr
 %define enable_gtk_doc 0
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/tests/test-mime.c new/gmime-3.2.14/tests/test-mime.c
--- old/gmime-3.2.13/tests/test-mime.c  2022-03-18 21:35:58.000000000 +0100
+++ new/gmime-3.2.14/tests/test-mime.c  2023-02-10 17:03:11.000000000 +0100
@@ -162,6 +162,10 @@
        { "A Group(Some people):Chris Jones <c@(Chris's host.)public.example>, 
[email protected], John <[email protected]> (my dear friend); (the end of the 
group)", NULL,
          "A Group: Chris Jones <[email protected]>, [email protected], John 
<[email protected]>;",
          "A Group: Chris Jones <[email protected]>, [email protected], John 
<[email protected]>;" },
+       /* odd number of double quotes in rfc-2047 encoded display-name */
+       { "=?UTF-8?Q?foo=20=22=20bar?= <[email protected]>", "utf-8",
+         "\"foo \\\" bar\" <[email protected]>",
+         "\"foo \\\" bar\" <[email protected]>"},
        /* The following tests cases are meant to test forgivingness
         * of the parser when it encounters unquoted specials in the
         * name component */
@@ -408,6 +412,9 @@
          "blah:\tI am broken",
          "blah:\tI am broken" },
 #endif
+       { "=?UTF-8?B?SGVsbG8=?= =?UTF-8?B?IHdvcmxk?=",
+         "Hello world",
+         "Hello world" },
        { "=?iso-8859-1?Q?Copy_of_Rapport_fra_Norges_R=E5fisklag=2Edoc?=",
          "Copy of Rapport fra Norges R\xc3\xa5" "fisklag.doc",
          "Copy of Rapport fra Norges =?iso-8859-1?q?R=E5fisklag=2Edoc?=" },
@@ -481,7 +488,7 @@
                try {
                        dec = g_mime_utils_header_decode_text (options, 
rfc2047_text[i].input);
                        if (strcmp (rfc2047_text[i].decoded, dec) != 0)
-                               throw (exception_new ("decoded text does not 
match: %s", dec));
+                               throw (exception_new ("decoded text does not 
match: actual=\"%s\", expected=\"%s\"", dec, rfc2047_text[i].decoded));
                        
                        enc = g_mime_utils_header_encode_text (format, dec, 
NULL);
                        if (strcmp (rfc2047_text[i].encoded, enc) != 0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gmime-3.2.13/util/url-scanner.c new/gmime-3.2.14/util/url-scanner.c
--- old/gmime-3.2.13/util/url-scanner.c 2022-03-18 21:35:58.000000000 +0100
+++ new/gmime-3.2.14/util/url-scanner.c 2023-08-31 17:41:24.000000000 +0200
@@ -332,10 +332,26 @@
        
        /* find the end of the domain */
        if (is_digit (*inptr)) {
-               goto ip_literal2;
+               /* this is either an IP literal or it could be a subdomain that 
begins with a numeric character(s) */
+               save = inptr;
+               while (inptr < inend && is_digit (*inptr))
+                       inptr++;
+               
+               if (inptr < inend && *inptr == '.') {
+                       inptr = save;
+                       goto ip_literal2;
+               }
+               
+               if (is_atom (*inptr)) {
+                       inptr = save;
+                       goto atom;
+               }
+
+               return FALSE;
        } else if (is_atom (*inptr)) {
                /* might be a domain or user@domain */
                save = inptr;
+       atom:
                while (inptr < inend) {
                        if (!is_atom (*inptr))
                                break;
@@ -503,6 +519,7 @@
                        
                        /* we have a '/' so there could be a path - fall 
through */
                case '/': /* we've detected a path component to our url */
+               case '?': /* we've detected params component to our url */
                        inptr++;
                        
                        while (inptr < inend && is_urlsafe (*inptr) && *inptr 
!= close_brace)

Reply via email to