notmuch reply: Prefer "Reply-To" header over "From" for choosing recipient.

There are still open questions about how to correctly compute the
intended list of recipients. We'll probably need separate "reply to
sender" and "reply to all" commands at some point (unfortunately).
This commit is contained in:
Carl Worth 2009-11-13 10:50:52 -08:00
parent f4245aec94
commit f9f897ae27

View file

@ -182,12 +182,13 @@ notmuch_reply_command (void *ctx, int argc, char *argv[])
char *reply_headers; char *reply_headers;
struct { struct {
const char *header; const char *header;
const char *fallback;
GMimeRecipientType recipient_type; GMimeRecipientType recipient_type;
} reply_to_map[] = { } reply_to_map[] = {
{ "from", GMIME_RECIPIENT_TYPE_TO }, { "reply-to", "from", GMIME_RECIPIENT_TYPE_TO },
{ "to", GMIME_RECIPIENT_TYPE_TO }, { "to", NULL, GMIME_RECIPIENT_TYPE_TO },
{ "cc", GMIME_RECIPIENT_TYPE_CC }, { "cc", NULL, GMIME_RECIPIENT_TYPE_CC },
{ "bcc", GMIME_RECIPIENT_TYPE_BCC } { "bcc", NULL, GMIME_RECIPIENT_TYPE_BCC }
}; };
unsigned int i; unsigned int i;
@ -235,6 +236,10 @@ notmuch_reply_command (void *ctx, int argc, char *argv[])
recipients = notmuch_message_get_header (message, recipients = notmuch_message_get_header (message,
reply_to_map[i].header); reply_to_map[i].header);
if (recipients == NULL && reply_to_map[i].fallback)
recipients = notmuch_message_get_header (message,
reply_to_map[i].fallback);
addr = add_recipients_for_string (reply, config, addr = add_recipients_for_string (reply, config,
reply_to_map[i].recipient_type, reply_to_map[i].recipient_type,
recipients); recipients);