]> git.notmuchmail.org Git - notmuch/blobdiff - notmuch-reply.c
gmime-cleanup: use GMime 3.0 function names
[notmuch] / notmuch-reply.c
index 2c7cc4eba674c7cd761a5532ccb67dd55ad8a2b9..62ec176f7ea966c040a0d05c7e1ea9057f4a5a0c 100644 (file)
@@ -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;
 }
 
@@ -700,6 +700,7 @@ notmuch_reply_command (notmuch_config_t *config, int argc, char *argv[])
     int opt_index;
     notmuch_show_params_t params = {
        .part = -1,
+       .crypto = { .decrypt = NOTMUCH_DECRYPT_AUTO },
     };
     int format = FORMAT_DEFAULT;
     int reply_all = true;
@@ -716,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 = &params.crypto.decrypt, .name = "decrypt" },
+       { .opt_keyword = (int*)(&params.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 },
        { }
     };
@@ -740,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, &notmuch))
        return EXIT_FAILURE;