]> git.notmuchmail.org Git - notmuch/blobdiff - notmuch-new.c
test: move system includes to notmuch-test.h
[notmuch] / notmuch-new.c
index 8e2bf4a84babba4fe80e6b2ce72c2e4c8a6cefa1..5b8fa340f598e6af5ed19942dd3034fed3f28671 100644 (file)
@@ -45,6 +45,7 @@ typedef struct {
     const char *db_path;
     const char *mail_root;
 
+    notmuch_indexopts_t *indexopts;
     int output_is_a_tty;
     enum verbosity verbosity;
     bool debug;
@@ -81,7 +82,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
@@ -376,7 +377,7 @@ add_file (notmuch_database_t *notmuch, const char *filename,
     if (status)
        goto DONE;
 
-    status = notmuch_database_index_file (notmuch, filename, indexing_cli_choices.opts, &message);
+    status = notmuch_database_index_file (notmuch, filename, state->indexopts, &message);
     switch (status) {
     /* Success. */
     case NOTMUCH_STATUS_SUCCESS:
@@ -403,8 +404,11 @@ add_file (notmuch_database_t *notmuch, const char *filename,
        break;
     /* Non-fatal issues (go on to next file). */
     case NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID:
-       if (state->synchronize_flags)
-           notmuch_message_maildir_flags_to_tags (message);
+       if (state->synchronize_flags) {
+           status = notmuch_message_maildir_flags_to_tags (message);
+           if (print_status_message ("add_file", message, status))
+               goto DONE;
+       }
        break;
     case NOTMUCH_STATUS_FILE_NOT_EMAIL:
        fprintf (stderr, "Note: Ignoring non-mail file: %s\n", filename);
@@ -1104,8 +1108,7 @@ _maybe_upgrade (notmuch_database_t *notmuch, add_files_state_t *state)
 }
 
 int
-notmuch_new_command (unused(notmuch_config_t *config), notmuch_database_t *notmuch,
-                    int argc, char *argv[])
+notmuch_new_command (notmuch_database_t *notmuch, int argc, char *argv[])
 {
     add_files_state_t add_files_state = {
        .verbosity = VERBOSITY_NORMAL,
@@ -1140,7 +1143,7 @@ notmuch_new_command (unused(notmuch_config_t *config), notmuch_database_t *notmu
     if (opt_index < 0)
        return EXIT_FAILURE;
 
-    notmuch_process_shared_options (argv[0]);
+    notmuch_process_shared_options (notmuch, argv[0]);
 
     /* quiet trumps verbose */
     if (quiet)
@@ -1148,6 +1151,8 @@ notmuch_new_command (unused(notmuch_config_t *config), notmuch_database_t *notmu
     else if (verbose)
        add_files_state.verbosity = VERBOSITY_VERBOSE;
 
+    add_files_state.indexopts = notmuch_database_get_default_indexopts (notmuch);
+
     add_files_state.new_tags = notmuch_config_get_values (notmuch, NOTMUCH_CONFIG_NEW_TAGS);
 
     if (print_status_database (
@@ -1195,8 +1200,6 @@ notmuch_new_command (unused(notmuch_config_t *config), notmuch_database_t *notmu
            return EXIT_FAILURE;
     }
 
-    notmuch_exit_if_unmatched_db_uuid (notmuch);
-
     if (notmuch_database_get_revision (notmuch, NULL) == 0) {
        int count = 0;
        count_files (mail_root, &count, &add_files_state);
@@ -1217,7 +1220,7 @@ notmuch_new_command (unused(notmuch_config_t *config), notmuch_database_t *notmu
     if (notmuch == NULL)
        return EXIT_FAILURE;
 
-    status = notmuch_process_shared_indexing_options (notmuch);
+    status = notmuch_process_shared_indexing_options (add_files_state.indexopts);
     if (status != NOTMUCH_STATUS_SUCCESS) {
        fprintf (stderr, "Error: Failed to process index options. (%s)\n",
                 notmuch_status_to_string (status));