]> git.cworth.org Git - notmuch/commitdiff
CLI/show: complete conversion to new configuration framework.
authorDavid Bremner <david@tethera.net>
Sat, 6 Feb 2021 22:50:20 +0000 (18:50 -0400)
committerDavid Bremner <david@tethera.net>
Sat, 20 Mar 2021 01:06:19 +0000 (22:06 -0300)
In order to open the database in main() for this command, we may need
to re-open it in the (possibly less common) case where crypto options
require write access.

notmuch-show.c
notmuch.c
test/T035-read-config.sh

index b6b53991c652688e5d8108e357bbe8146623dded..481e5d540a6f2c2cff23b0e33548726da13ed891 100644 (file)
@@ -1225,10 +1225,9 @@ static const notmuch_show_format_t *formatters[] = {
 };
 
 int
-notmuch_show_command (notmuch_config_t *config, unused(notmuch_database_t *notmuch),
+notmuch_show_command (unused (notmuch_config_t *config), notmuch_database_t *notmuch,
                      int argc, char *argv[])
 {
-    notmuch_database_t *notmuch;
     notmuch_query_t *query;
     char *query_string;
     int opt_index, ret;
@@ -1245,7 +1244,7 @@ notmuch_show_command (notmuch_config_t *config, unused(notmuch_database_t *notmu
     bool entire_thread_set = false;
     bool single_message;
     bool unthreaded = FALSE;
-    char *status_string = NULL;
+    notmuch_status_t status;
 
     notmuch_opt_desc_t options[] = {
        { .opt_keyword = &format, .name = "format", .keywords =
@@ -1336,26 +1335,15 @@ notmuch_show_command (notmuch_config_t *config, unused(notmuch_database_t *notmu
                 "Warning: --include-html only implemented for format=text, format=json and format=sexp\n");
     }
 
-    notmuch_database_mode_t mode = NOTMUCH_DATABASE_MODE_READ_ONLY;
-
-    if (params.crypto.decrypt == NOTMUCH_DECRYPT_TRUE)
-       mode = NOTMUCH_DATABASE_MODE_READ_WRITE;
-    if (notmuch_database_open_with_config (NULL,
-                                          mode,
-                                          _notmuch_config_get_path (config),
-                                          NULL,
-                                          &notmuch,
-                                          &status_string)) {
-       if (status_string) {
-           fputs (status_string, stderr);
-           free (status_string);
+    if (params.crypto.decrypt == NOTMUCH_DECRYPT_TRUE) {
+       status = notmuch_database_reopen (notmuch, NOTMUCH_DATABASE_MODE_READ_WRITE);
+       if (status) {
+           fprintf (stderr, "Error reopening database for READ_WRITE: %s\n",
+                    notmuch_status_to_string (status));
+           return EXIT_FAILURE;
        }
-
-       return EXIT_FAILURE;
     }
 
-    config = NULL;
-
     notmuch_exit_if_unmatched_db_uuid (notmuch);
 
     query_string = query_string_from_args (notmuch, argc - opt_index, argv + opt_index);
index 5e56209b69a7d6b599763efb310294beb338c9fa..f2bf9c24a11fe03a5e6b02f62fa650f628d7d8b7 100644 (file)
--- a/notmuch.c
+++ b/notmuch.c
@@ -156,7 +156,7 @@ static command_t commands[] = {
       "Search for messages matching the given search terms." },
     { "address", notmuch_address_command, NOTMUCH_COMMAND_DATABASE_EARLY,
       "Get addresses from messages matching the given search terms." },
-    { "show", notmuch_show_command, NOTMUCH_COMMAND_CONFIG_OPEN,
+    { "show", notmuch_show_command, NOTMUCH_COMMAND_DATABASE_EARLY,
       "Show all messages matching the search terms." },
     { "count", notmuch_count_command, NOTMUCH_COMMAND_DATABASE_EARLY,
       "Count messages matching the search terms." },
index 205d1736fd9a4a74786e5c28cc5feb036dc71407..ac0f420b840f0f76cb59c3d85efcf6fd0842d1ec 100755 (executable)
@@ -378,7 +378,6 @@ restore_database
 test_expect_equal "$output" "OK"
 
 test_begin_subtest "show with alternate config (xdg)"
-test_subtest_known_broken
 backup_database
 notmuch tag -- +foobar17 '*'
 xdg_config
@@ -389,7 +388,6 @@ restore_config
 test_expect_equal "$output" "OK"
 
 test_begin_subtest "show with alternate config (xdg+profile)"
-test_subtest_known_broken
 backup_database
 notmuch tag -- +foobar17 '*'
 xdg_config foobar17