unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
* [PATCH 1/2] cli/show: abstract get content disposition
@ 2017-01-28 12:21 Jani Nikula
  2017-01-28 12:21 ` [PATCH 2/2] cli/show: add content-disposition to structured output message parts Jani Nikula
  0 siblings, 1 reply; 6+ messages in thread
From: Jani Nikula @ 2017-01-28 12:21 UTC (permalink / raw)
  To: notmuch

Reduce duplication in follow-up work. As a side effect, handle error
returns from g_mime_content_disposition_get_disposition() without
segfaulting.
---
 notmuch-show.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/notmuch-show.c b/notmuch-show.c
index 22fa655ad20d..8b38fe6db136 100644
--- a/notmuch-show.c
+++ b/notmuch-show.c
@@ -110,6 +110,17 @@ _get_one_line_summary (const void *ctx, notmuch_message_t *message)
 			    from, relative_date, tags);
 }
 
+static const char *_get_disposition(GMimeObject *meta)
+{
+    GMimeContentDisposition *disposition;
+
+    disposition = g_mime_object_get_content_disposition (meta);
+    if (!disposition)
+	return NULL;
+
+    return g_mime_content_disposition_get_disposition (disposition);
+}
+
 /* Emit a sequence of key/value pairs for the metadata of message.
  * The caller should begin a map before calling this. */
 static void
@@ -450,14 +461,13 @@ format_part_text (const void *ctx, sprinter_t *sp, mime_node_t *node,
 		notmuch_message_get_flag (message, NOTMUCH_MESSAGE_FLAG_EXCLUDED) ? 1 : 0,
 		notmuch_message_get_filename (message));
     } else {
-	GMimeContentDisposition *disposition = g_mime_object_get_content_disposition (meta);
+	const char *disposition = _get_disposition (meta);
 	const char *cid = g_mime_object_get_content_id (meta);
 	const char *filename = leaf ?
 	    g_mime_part_get_filename (GMIME_PART (node->part)) : NULL;
 
 	if (disposition &&
-	    strcasecmp (g_mime_content_disposition_get_disposition (disposition),
-			GMIME_DISPOSITION_ATTACHMENT) == 0)
+	    strcasecmp (disposition, GMIME_DISPOSITION_ATTACHMENT) == 0)
 	    part_type = "attachment";
 	else
 	    part_type = "part";
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-02-26 18:39 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-28 12:21 [PATCH 1/2] cli/show: abstract get content disposition Jani Nikula
2017-01-28 12:21 ` [PATCH 2/2] cli/show: add content-disposition to structured output message parts Jani Nikula
2017-01-29 11:56   ` Mark Walters
2017-01-29 12:00   ` [PATCH] test: fix tests for content-disposition Mark Walters
2017-02-26 11:54     ` David Bremner
2017-02-26 18:39       ` Jani Nikula

Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).