[PATCH 13/23] lib/cli: replace use of g_mime_message_get_sender

David Bremner david at tethera.net
Sat Jun 3 10:47:44 PDT 2017


This function changes semantics in gmime-3.0 so make a new function
that provides the same functionality in both
---
 lib/index.cc          |  6 ++----
 lib/notmuch-private.h |  2 +-
 notmuch-reply.c       |  5 ++---
 notmuch-show.c        |  4 ++--
 util/gmime-extra.c    | 17 +++++++++++++++++
 util/gmime-extra.h    | 17 +++++++++++++----
 6 files changed, 37 insertions(+), 14 deletions(-)

diff --git a/lib/index.cc b/lib/index.cc
index 8c145540..d2472896 100644
--- a/lib/index.cc
+++ b/lib/index.cc
@@ -439,7 +439,7 @@ _notmuch_message_index_file (notmuch_message_t *message,
 {
     GMimeMessage *mime_message;
     InternetAddressList *addresses;
-    const char *from, *subject;
+    const char *subject;
     notmuch_status_t status;
 
     status = _notmuch_message_file_get_mime_message (message_file,
@@ -447,9 +447,7 @@ _notmuch_message_index_file (notmuch_message_t *message,
     if (status)
 	return status;
 
-    from = g_mime_message_get_sender (mime_message);
-
-    addresses = internet_address_list_parse_string (from);
+    addresses = g_mime_message_get_from (mime_message);
     if (addresses) {
 	_index_address_list (message, "from", addresses);
 	g_object_unref (addresses);
diff --git a/lib/notmuch-private.h b/lib/notmuch-private.h
index ac315e4c..5dfebf5d 100644
--- a/lib/notmuch-private.h
+++ b/lib/notmuch-private.h
@@ -46,7 +46,7 @@ NOTMUCH_BEGIN_DECLS
 
 #include <talloc.h>
 
-#include <gmime/gmime.h>
+#include "gmime-extra.h"
 
 #include "xutil.h"
 #include "error_util.h"
diff --git a/notmuch-reply.c b/notmuch-reply.c
index 12439284..29a5ab6c 100644
--- a/notmuch-reply.c
+++ b/notmuch-reply.c
@@ -47,9 +47,9 @@ format_part_reply (GMimeStream *stream, mime_node_t *node)
 	InternetAddressList *recipients;
 	char *recipients_string;
 
-	g_mime_stream_printf (stream, "> From: %s\n", g_mime_message_get_sender (message));
 	recipients = g_mime_message_get_recipients (message, GMIME_RECIPIENT_TYPE_TO);
 	recipients_string = internet_address_list_to_string (recipients, 0);
+	g_mime_stream_printf (stream, "> From: %s\n", g_mime_message_get_from_string (message));
 	if (recipients_string)
 	    g_mime_stream_printf (stream, "> To: %s\n",
 				  recipients_string);
@@ -292,8 +292,7 @@ static InternetAddressList *get_sender(GMimeMessage *message)
 	g_object_unref (G_OBJECT (reply_to_list));
     }
 
-    return internet_address_list_parse_string (
-	g_mime_message_get_sender (message));
+    return g_mime_message_get_from (message);
 }
 
 static InternetAddressList *get_to(GMimeMessage *message)
diff --git a/notmuch-show.c b/notmuch-show.c
index b4339abe..edc0537c 100644
--- a/notmuch-show.c
+++ b/notmuch-show.c
@@ -212,7 +212,7 @@ format_headers_sprinter (sprinter_t *sp, GMimeMessage *message,
     sp->string (sp, g_mime_message_get_subject (message));
 
     sp->map_key (sp, "From");
-    sp->string (sp, g_mime_message_get_sender (message));
+    sp->string (sp, g_mime_message_get_from_string (message));
 
     recipients = g_mime_message_get_recipients (message, GMIME_RECIPIENT_TYPE_TO);
     recipients_string = internet_address_list_to_string (recipients, 0);
@@ -520,9 +520,9 @@ format_part_text (const void *ctx, sprinter_t *sp, mime_node_t *node,
 	if (node->envelope_file)
 	    g_mime_stream_printf (stream, "%s\n", _get_one_line_summary (ctx, node->envelope_file));
 	g_mime_stream_printf (stream, "Subject: %s\n", g_mime_message_get_subject (message));
-	g_mime_stream_printf (stream, "From: %s\n", g_mime_message_get_sender (message));
 	recipients = g_mime_message_get_recipients (message, GMIME_RECIPIENT_TYPE_TO);
 	recipients_string = internet_address_list_to_string (recipients, 0);
+	g_mime_stream_printf (stream, "From: %s\n", g_mime_message_get_from_string (message));
 	if (recipients_string)
 	    g_mime_stream_printf (stream, "To: %s\n", recipients_string);
 	g_free (recipients_string);
diff --git a/util/gmime-extra.c b/util/gmime-extra.c
index 33751de7..8590c55d 100644
--- a/util/gmime-extra.c
+++ b/util/gmime-extra.c
@@ -40,6 +40,17 @@ g_mime_message_get_date_string (void *ctx, GMimeMessage *message)
 }
 
 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)
 {
     const char *reply_to;
@@ -81,6 +92,12 @@ g_mime_message_get_reply_to_list(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)
 {
diff --git a/util/gmime-extra.h b/util/gmime-extra.h
index 794ffbfd..04d63026 100644
--- a/util/gmime-extra.h
+++ b/util/gmime-extra.h
@@ -9,18 +9,27 @@ GMimeStream *g_mime_stream_stdout_new(void);
 /**
  * return talloc allocated date string
  */
+
 char *g_mime_message_get_date_string (void *ctx, GMimeMessage *message);
-InternetAddressList * g_mime_message_get_reply_to_list (GMimeMessage *message);
 
 /**
- * return talloc allocated reply-to string
+ * glib allocated list of From: addresses
  */
-char * g_mime_message_get_reply_to_string (void *ctx, GMimeMessage *message);
 
+InternetAddressList * g_mime_message_get_from (GMimeMessage *message);
 
 /**
- * Return glib allocated reply-to list
+ * return string for From: address
+ * (owned by gmime)
  */
+const char * g_mime_message_get_from_string (GMimeMessage *message);
+
 InternetAddressList * g_mime_message_get_reply_to_list (GMimeMessage *message);
 
+/**
+ * return talloc allocated reply-to string
+ */
+char * g_mime_message_get_reply_to_string (void *ctx, GMimeMessage *message);
+
+
 #endif
-- 
2.11.0



More information about the notmuch mailing list