lib: wrap use of g_mime_utils_header_decode_date
authorDavid Bremner <david@tethera.net>
Wed, 17 May 2017 01:59:54 +0000 (22:59 -0300)
committerDavid Bremner <david@tethera.net>
Sat, 15 Jul 2017 00:23:52 +0000 (21:23 -0300)
This changes return type in gmime 3.0

lib/message.cc
util/gmime-extra.c
util/gmime-extra.h

index b330dcce5ecf374b7f6009ffbbd327fa1d95eaec..f78e5a9d302fd62c09e41dfc59966b57e3056c3b 100644 (file)
@@ -1037,7 +1037,7 @@ _notmuch_message_set_header_values (notmuch_message_t *message,
     if (date == NULL || *date == '\0') {
        time_value = 0;
     } else {
     if (date == NULL || *date == '\0') {
        time_value = 0;
     } else {
-       time_value = g_mime_utils_header_decode_date (date, NULL);
+       time_value = g_mime_utils_header_decode_date_unix (date);
        /*
         * Workaround for https://bugzilla.gnome.org/show_bug.cgi?id=779923
         */
        /*
         * Workaround for https://bugzilla.gnome.org/show_bug.cgi?id=779923
         */
index 350f75ea8a4ce1bd640e3ade4de00b8701c6bc4c..3c50a293257e0ddd3fc4aed1749e6a77a1c08d91 100644 (file)
@@ -99,6 +99,11 @@ g_mime_signature_status_error (GMimeSignatureError error) {
     return (error != GMIME_SIGNATURE_ERROR_NONE);
 }
 
     return (error != GMIME_SIGNATURE_ERROR_NONE);
 }
 
+time_t
+g_mime_utils_header_decode_date_unix (const char *date) {
+    return g_mime_utils_header_decode_date (date, NULL);
+}
+
 #else /* GMime >= 3.0 */
 
 char *
 #else /* GMime >= 3.0 */
 
 char *
@@ -166,5 +171,19 @@ g_mime_signature_status_error (GMimeSignatureStatus status) {
     return (status & GMIME_SIGNATURE_STATUS_ERROR_MASK);
 }
 
     return (status & GMIME_SIGNATURE_STATUS_ERROR_MASK);
 }
 
+gint64
+g_mime_utils_header_decode_date_unix (const char *date) {
+    GDateTime* parsed_date = g_mime_utils_header_decode_date (date);
+    time_t ret;
+
+    if (parsed_date) {
+       ret = g_date_time_to_unix (parsed_date);
+       g_date_time_unref (parsed_date);
+    } else {
+       ret = 0;
+    }
+
+    return ret;
+}
 
 #endif
 
 #endif
index 6b74724e48f9aaa957b6291208e32e690c65e33d..d744c4e4cb364b99734217e0f1aada597b12d36a 100644 (file)
@@ -94,4 +94,6 @@ gboolean g_mime_signature_status_good (GMimeSignatureStatus status);
 gboolean g_mime_signature_status_bad (GMimeSignatureStatus status);
 
 gboolean g_mime_signature_status_error (GMimeSignatureError status);
 gboolean g_mime_signature_status_bad (GMimeSignatureStatus status);
 
 gboolean g_mime_signature_status_error (GMimeSignatureError status);
+
+gint64 g_mime_utils_header_decode_date_unix (const char *date);
 #endif
 #endif