mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-24 20:08:10 +01:00
cli/show: abstract get content disposition
Reduce duplication in follow-up work. As a side effect, handle error returns from g_mime_content_disposition_get_disposition() without segfaulting.
This commit is contained in:
parent
bd29098e47
commit
85caaaf861
1 changed files with 13 additions and 3 deletions
|
@ -110,6 +110,17 @@ _get_one_line_summary (const void *ctx, notmuch_message_t *message)
|
||||||
from, relative_date, tags);
|
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.
|
/* Emit a sequence of key/value pairs for the metadata of message.
|
||||||
* The caller should begin a map before calling this. */
|
* The caller should begin a map before calling this. */
|
||||||
static void
|
static void
|
||||||
|
@ -463,14 +474,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_flag (message, NOTMUCH_MESSAGE_FLAG_EXCLUDED) ? 1 : 0,
|
||||||
notmuch_message_get_filename (message));
|
notmuch_message_get_filename (message));
|
||||||
} else {
|
} 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 *cid = g_mime_object_get_content_id (meta);
|
||||||
const char *filename = leaf ?
|
const char *filename = leaf ?
|
||||||
g_mime_part_get_filename (GMIME_PART (node->part)) : NULL;
|
g_mime_part_get_filename (GMIME_PART (node->part)) : NULL;
|
||||||
|
|
||||||
if (disposition &&
|
if (disposition &&
|
||||||
strcasecmp (g_mime_content_disposition_get_disposition (disposition),
|
strcasecmp (disposition, GMIME_DISPOSITION_ATTACHMENT) == 0)
|
||||||
GMIME_DISPOSITION_ATTACHMENT) == 0)
|
|
||||||
part_type = "attachment";
|
part_type = "attachment";
|
||||||
else
|
else
|
||||||
part_type = "part";
|
part_type = "part";
|
||||||
|
|
Loading…
Reference in a new issue