X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=notmuch-reindex.c;h=5a39ade103de2f0fd6160639d2e56fa873784acd;hp=44223042f46c1dc8536726f3c64d8448a2694f30;hb=HEAD;hpb=e5beec39d6021c7b8c21e6d84050660ad6c69a96 diff --git a/notmuch-reindex.c b/notmuch-reindex.c index 44223042..e9a65456 100644 --- a/notmuch-reindex.c +++ b/notmuch-reindex.c @@ -13,7 +13,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see http://www.gnu.org/licenses/ . + * along with this program. If not, see https://www.gnu.org/licenses/ . * * Author: Daniel Kahn Gillmor */ @@ -26,7 +26,7 @@ static volatile sig_atomic_t interrupted; static void handle_sigint (unused (int sig)) { - static char msg[] = "Stopping... \n"; + static const char msg[] = "Stopping... \n"; /* This write is "opportunistic", so it's okay to ignore the * result. It is not required for correctness, and if it does @@ -40,7 +40,7 @@ handle_sigint (unused (int sig)) */ static int reindex_query (notmuch_database_t *notmuch, const char *query_string, - notmuch_param_t *indexopts) + notmuch_indexopts_t *indexopts) { notmuch_query_t *query; notmuch_messages_t *messages; @@ -49,11 +49,11 @@ reindex_query (notmuch_database_t *notmuch, const char *query_string, notmuch_status_t ret = NOTMUCH_STATUS_SUCCESS; - query = notmuch_query_create (notmuch, query_string); - if (query == NULL) { - fprintf (stderr, "Out of memory.\n"); + status = notmuch_query_create_with_syntax (notmuch, query_string, + shared_option_query_syntax (), + &query); + if (print_status_database ("notmuch reindex", notmuch, status)) return 1; - } /* reindexing is not interested in any special sort order */ notmuch_query_set_sort (query, NOTMUCH_SORT_UNSORTED); @@ -68,12 +68,13 @@ reindex_query (notmuch_database_t *notmuch, const char *query_string, notmuch_messages_move_to_next (messages)) { message = notmuch_messages_get (messages); - ret = notmuch_message_reindex(message, indexopts); + ret = notmuch_message_reindex (message, indexopts); if (ret != NOTMUCH_STATUS_SUCCESS) break; + notmuch_message_destroy (message); } - if (!ret) + if (! ret) ret = notmuch_database_end_atomic (notmuch); notmuch_query_destroy (query); @@ -82,14 +83,14 @@ reindex_query (notmuch_database_t *notmuch, const char *query_string, } int -notmuch_reindex_command (notmuch_config_t *config, int argc, char *argv[]) +notmuch_reindex_command (notmuch_database_t *notmuch, int argc, char *argv[]) { char *query_string = NULL; - notmuch_database_t *notmuch; struct sigaction action; int opt_index; int ret; - notmuch_param_t *indexopts = NULL; + notmuch_status_t status; + notmuch_indexopts_t *indexopts = notmuch_database_get_default_indexopts (notmuch); /* Set up our handler for SIGINT */ memset (&action, 0, sizeof (struct sigaction)); @@ -99,23 +100,25 @@ notmuch_reindex_command (notmuch_config_t *config, int argc, char *argv[]) sigaction (SIGINT, &action, NULL); notmuch_opt_desc_t options[] = { - { NOTMUCH_OPT_INHERIT, (void *) ¬much_shared_options, NULL, 0, 0 }, - { 0, 0, 0, 0, 0 } + { .opt_inherit = notmuch_shared_indexing_options }, + { .opt_inherit = notmuch_shared_options }, + { } }; opt_index = parse_arguments (argc, argv, options, 1); if (opt_index < 0) return EXIT_FAILURE; - notmuch_process_shared_options (argv[0]); + notmuch_process_shared_options (notmuch, argv[0]); - if (notmuch_database_open (notmuch_config_get_database_path (config), - NOTMUCH_DATABASE_MODE_READ_WRITE, ¬much)) + status = notmuch_process_shared_indexing_options (indexopts); + if (status != NOTMUCH_STATUS_SUCCESS) { + fprintf (stderr, "Error: Failed to process index options. (%s)\n", + notmuch_status_to_string (status)); return EXIT_FAILURE; + } - notmuch_exit_if_unmatched_db_uuid (notmuch); - - query_string = query_string_from_args (config, argc-opt_index, argv+opt_index); + query_string = query_string_from_args (notmuch, argc - opt_index, argv + opt_index); if (query_string == NULL) { fprintf (stderr, "Out of memory\n"); return EXIT_FAILURE; @@ -125,7 +128,7 @@ notmuch_reindex_command (notmuch_config_t *config, int argc, char *argv[]) fprintf (stderr, "Error: notmuch reindex requires at least one search term.\n"); return EXIT_FAILURE; } - + ret = reindex_query (notmuch, query_string, indexopts); notmuch_database_destroy (notmuch);