X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=notmuch-reply.c;h=62ec176f7ea966c040a0d05c7e1ea9057f4a5a0c;hp=5cdf642be2ce276fd47630fec3df92cf4fa89e16;hb=582f255aeba3998428fa489dc22c735bd0b88143;hpb=fccebbaeef1e4b6489425afb13f419543d53d285 diff --git a/notmuch-reply.c b/notmuch-reply.c index 5cdf642b..62ec176f 100644 --- a/notmuch-reply.c +++ b/notmuch-reply.c @@ -75,10 +75,10 @@ format_part_reply (GMimeStream *stream, mime_node_t *node) GMIME_DISPOSITION_ATTACHMENT) == 0) { const char *filename = g_mime_part_get_filename (GMIME_PART (node->part)); g_mime_stream_printf (stream, "Attachment: %s (%s)\n", filename, - g_mime_content_type_to_string (content_type)); + g_mime_content_type_get_mime_type (content_type)); } else { g_mime_stream_printf (stream, "Non-text part: %s\n", - g_mime_content_type_to_string (content_type)); + g_mime_content_type_get_mime_type (content_type)); } } @@ -176,7 +176,7 @@ static unsigned int scan_address_list (InternetAddressList *list, notmuch_config_t *config, GMimeMessage *message, - GMimeRecipientType type, + GMimeAddressType type, const char **user_from) { InternetAddress *address; @@ -209,7 +209,7 @@ scan_address_list (InternetAddressList *list, if (user_from && *user_from == NULL) *user_from = addr; } else if (message) { - g_mime_message_add_recipient (message, type, name, addr); + g_mime_message_add_mailbox (message, type, name, addr); n++; } } @@ -285,8 +285,6 @@ static InternetAddressList *get_sender(GMimeMessage *message) */ if (! reply_to_header_is_redundant (message, reply_to_list)) return reply_to_list; - - g_mime_2_6_unref (G_OBJECT (reply_to_list)); } return g_mime_message_get_from (message); @@ -325,15 +323,9 @@ add_recipients_from_message (GMimeMessage *reply, GMimeMessage *message, bool reply_all) { - - /* There is a memory leak here with gmime-2.6 because get_sender - * returns a newly allocated list, while the others return - * references to libgmime owned data. This leak will be fixed with - * the transition to gmime-3.0. - */ struct { InternetAddressList * (*get_header)(GMimeMessage *message); - GMimeRecipientType recipient_type; + GMimeAddressType recipient_type; } reply_to_map[] = { { get_sender, GMIME_ADDRESS_TYPE_TO }, { get_to, GMIME_ADDRESS_TYPE_TO }, @@ -369,6 +361,14 @@ add_recipients_from_message (GMimeMessage *reply, } } + /* If no recipients were added but we found one of the user's + * addresses to use as a from address then the message is from the + * user to the user - add the discovered from address to the list + * of recipients so that the reply goes back to the user. + */ + if (n == 0 && from_addr) + g_mime_message_add_mailbox (reply, GMIME_ADDRESS_TYPE_TO, NULL, from_addr); + return from_addr; } @@ -704,8 +704,6 @@ notmuch_reply_command (notmuch_config_t *config, int argc, char *argv[]) }; int format = FORMAT_DEFAULT; int reply_all = true; - bool decrypt = false; - bool decrypt_set = false; notmuch_opt_desc_t options[] = { { .opt_keyword = &format, .name = "format", .keywords = @@ -719,7 +717,12 @@ notmuch_reply_command (notmuch_config_t *config, int argc, char *argv[]) (notmuch_keyword_t []){ { "all", true }, { "sender", false }, { 0, 0 } } }, - { .opt_bool = &decrypt, .name = "decrypt", .present = &decrypt_set }, + { .opt_keyword = (int*)(¶ms.crypto.decrypt), .name = "decrypt", + .keyword_no_arg_value = "true", .keywords = + (notmuch_keyword_t []){ { "false", NOTMUCH_DECRYPT_FALSE }, + { "auto", NOTMUCH_DECRYPT_AUTO }, + { "true", NOTMUCH_DECRYPT_NOSTASH }, + { 0, 0 } } }, { .opt_inherit = notmuch_shared_options }, { } }; @@ -729,8 +732,6 @@ notmuch_reply_command (notmuch_config_t *config, int argc, char *argv[]) return EXIT_FAILURE; notmuch_process_shared_options (argv[0]); - if (decrypt_set) - params.crypto.decrypt = decrypt ? NOTMUCH_DECRYPT_NOSTASH : NOTMUCH_DECRYPT_FALSE; notmuch_exit_if_unsupported_format (); @@ -745,10 +746,6 @@ notmuch_reply_command (notmuch_config_t *config, int argc, char *argv[]) return EXIT_FAILURE; } -#if (GMIME_MAJOR_VERSION < 3) - params.crypto.gpgpath = notmuch_config_get_crypto_gpg_path (config); -#endif - if (notmuch_database_open (notmuch_config_get_database_path (config), NOTMUCH_DATABASE_MODE_READ_ONLY, ¬much)) return EXIT_FAILURE;