#if (GMIME_MAJOR_VERSION < 3)
+char *
+g_mime_message_get_address_string (GMimeMessage *message, GMimeRecipientType type)
+{
+ InternetAddressList *list = g_mime_message_get_recipients (message, type);
+ return internet_address_list_to_string (list, 0);
+}
+
+inline InternetAddressList *
+g_mime_message_get_addresses (GMimeMessage *message, GMimeRecipientType type)
+{
+ return g_mime_message_get_recipients (message, type);
+}
+
char *
g_mime_message_get_date_string (void *ctx, GMimeMessage *message)
{
return g_string_talloc_strdup (ctx, date);
}
+InternetAddressList *
+g_mime_message_get_from (GMimeMessage *message)
+{
+ return internet_address_list_parse_string (g_mime_message_get_sender (message));
+}
+
+const char *
+g_mime_message_get_from_string (GMimeMessage *message) {
+ return g_mime_message_get_sender (message);
+}
+
InternetAddressList *
g_mime_message_get_reply_to_list (GMimeMessage *message)
{
return talloc_strdup(ctx, g_mime_message_get_reply_to (message));
}
+gboolean
+g_mime_signature_status_good (GMimeSignatureStatus status) {
+ return (status == GMIME_SIGNATURE_STATUS_GOOD);
+}
+
+gboolean
+g_mime_signature_status_bad (GMimeSignatureStatus status) {
+ return (status == GMIME_SIGNATURE_STATUS_BAD);
+}
+
+gboolean
+g_mime_signature_status_error (GMimeSignatureError error) {
+ return (error != GMIME_SIGNATURE_ERROR_NONE);
+}
#else /* GMime >= 3.0 */
+char *
+g_mime_message_get_address_string (GMimeMessage *message, GMimeAddressType type)
+{
+ InternetAddressList *list = g_mime_message_get_addresses (message, type);
+ return internet_address_list_to_string (list, NULL, 0);
+}
+
char *
g_mime_message_get_date_string (void *ctx, GMimeMessage *message)
{
return g_mime_message_get_reply_to (message);
}
+const char *
+g_mime_message_get_from_string (GMimeMessage *message)
+{
+ return g_mime_object_get_header (GMIME_OBJECT (message), "From");
+}
+
char *
g_mime_message_get_reply_to_string (void *ctx, GMimeMessage *message)
{
return g_string_talloc_strdup (ctx, internet_address_list_to_string (list, NULL, 0));
}
+void
+g_mime_parser_set_scan_from (GMimeParser *parser, gboolean flag)
+{
+ g_mime_parser_set_format (parser, flag ? GMIME_FORMAT_MBOX : GMIME_FORMAT_MESSAGE);
+}
+
+/* In GMime 3.0, status GOOD and VALID both imply something about the
+ * validity of the UIDs attached to the signing key. This forces us to
+ * use following somewhat relaxed definition of a "good" signature to
+ * preserve current notmuch semantics.
+ */
+
+gboolean
+g_mime_signature_status_good (GMimeSignatureStatus status) {
+ return ((status & (GMIME_SIGNATURE_STATUS_RED | GMIME_SIGNATURE_STATUS_ERROR_MASK)) == 0);
+}
+
+gboolean
+g_mime_signature_status_bad (GMimeSignatureStatus status) {
+ return (status & GMIME_SIGNATURE_STATUS_RED);
+}
+
+gboolean
+g_mime_signature_status_error (GMimeSignatureStatus status) {
+ return (status & GMIME_SIGNATURE_STATUS_ERROR_MASK);
+}
+
#endif