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"><a>rfc2231</a></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"><a>rfc2047</a></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)
