This additionally outputs the reply-to-all versions To: Cc: and Bcc: fields under the heading reply-all-recipients so that a frontend can `widen' the reply. --- notmuch-reply.c | 18 +++++++++++++++++- 1 files changed, 17 insertions(+), 1 deletions(-) diff --git a/notmuch-reply.c b/notmuch-reply.c index e151f78..6935f69 100644 --- a/notmuch-reply.c +++ b/notmuch-reply.c @@ -595,7 +595,7 @@ notmuch_reply_format_sprinter(void *ctx, notmuch_bool_t reply_all, sprinter_t *sp) { - GMimeMessage *reply; + GMimeMessage *reply_all_recipients, *reply; notmuch_messages_t *messages; notmuch_message_t *message; mime_node_t *node; @@ -614,6 +614,14 @@ notmuch_reply_format_sprinter(void *ctx, if (!reply) return 1; + /* The 1 means we want headers in a "pretty" order. */ + reply_all_recipients = g_mime_message_new (1); + if (reply_all_recipients == NULL) { + fprintf (stderr, "Out of memory\n"); + return 1; + } + add_recipients_from_message (reply_all_recipients, config, message, TRUE); + sp->begin_map (sp); /* The headers of the reply message we've created */ @@ -622,6 +630,14 @@ notmuch_reply_format_sprinter(void *ctx, g_object_unref (G_OBJECT (reply)); reply = NULL; + /* The recipient headers if we were applying to all */ + sp->map_key (sp, "reply-all-recipients"); + sp->begin_map (sp); + format_headers_recipients_sprinter (sp, reply_all_recipients); + sp->end (sp); + g_object_unref (G_OBJECT (reply_all_recipients)); + reply_all_recipients = NULL; + /* Start the original */ sp->map_key (sp, "original"); format_part_sprinter (ctx, sp, node, TRUE, TRUE); -- 1.7.9.1