X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=notmuch-reply.c;h=31e2c87cfe07651dec79d7c5fdc3286c0d865e61;hb=394cb1c46d91a1bb28df9cc4a563e1115cc9af34;hp=86e9b3a29b1048b3371b734097cf49477656a2ac;hpb=93dcc3b695e19dd36cc8f638c6e01ecbbd9a447d;p=obsolete%2Fnotmuch-old diff --git a/notmuch-reply.c b/notmuch-reply.c index 86e9b3a2..31e2c87c 100644 --- a/notmuch-reply.c +++ b/notmuch-reply.c @@ -24,7 +24,7 @@ #include "gmime-filter-reply.h" static void -reply_part(GMimeObject *part, int *part_count) +reply_part (GMimeObject *part, int *part_count) { GMimeContentDisposition *disposition; GMimeContentType *content_type; @@ -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; @@ -195,16 +196,21 @@ notmuch_reply_command (void *ctx, int argc, char *argv[]) if (config == NULL) return 1; - notmuch = notmuch_database_open (notmuch_config_get_database_path (config)); - if (notmuch == NULL) - return 1; - query_string = query_string_from_args (ctx, argc, argv); if (query_string == NULL) { fprintf (stderr, "Out of memory\n"); return 1; } + if (*query_string == '\0') { + fprintf (stderr, "Error: notmuch reply requires at least one search term.\n"); + return 1; + } + + notmuch = notmuch_database_open (notmuch_config_get_database_path (config)); + if (notmuch == NULL) + return 1; + query = notmuch_query_create (notmuch, query_string); if (query == NULL) { fprintf (stderr, "Out of memory\n"); @@ -235,6 +241,10 @@ notmuch_reply_command (void *ctx, int argc, char *argv[]) recipients = notmuch_message_get_header (message, reply_to_map[i].header); + if ((recipients == NULL || recipients[0] == '\0') && 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);