summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Worth <cworth@cworth.org>2009-11-13 10:50:52 -0800
committerCarl Worth <cworth@cworth.org>2009-11-13 10:50:52 -0800
commitf9f897ae27b4443bfa0f2d55600f5120fc1153ac (patch)
tree670ebb4af2aaa0b5f08680ef8b869480e9a709de
parentf4245aec94815176a52baae57a6c260b2bbae9c2 (diff)
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).
-rw-r--r--notmuch-reply.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/notmuch-reply.c b/notmuch-reply.c
index 86e9b3a..4206066 100644
--- a/notmuch-reply.c
+++ b/notmuch-reply.c
@@ -182,12 +182,13 @@ notmuch_reply_command (void *ctx, int argc, char *argv[])
char *reply_headers;
struct {
const char *header;
+ const char *fallback;
GMimeRecipientType recipient_type;
} reply_to_map[] = {
- { "from", GMIME_RECIPIENT_TYPE_TO },
- { "to", GMIME_RECIPIENT_TYPE_TO },
- { "cc", GMIME_RECIPIENT_TYPE_CC },
- { "bcc", GMIME_RECIPIENT_TYPE_BCC }
+ { "reply-to", "from", GMIME_RECIPIENT_TYPE_TO },
+ { "to", NULL, GMIME_RECIPIENT_TYPE_TO },
+ { "cc", NULL, GMIME_RECIPIENT_TYPE_CC },
+ { "bcc", NULL, GMIME_RECIPIENT_TYPE_BCC }
};
unsigned int i;
@@ -235,6 +236,10 @@ notmuch_reply_command (void *ctx, int argc, char *argv[])
recipients = notmuch_message_get_header (message,
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,
reply_to_map[i].recipient_type,
recipients);