]> git.notmuchmail.org Git - notmuch/blobdiff - notmuch-new.c
get_timestamp: Ensure that return value is 0 in case of exception.
[notmuch] / notmuch-new.c
index 6264628a4b8b01aa2f6267038eac16257db69453..43cc4fb721012679c160b2f568f04714a8da6393 100644 (file)
@@ -101,7 +101,6 @@ static int ino_cmp(const struct dirent **a, const struct dirent **b)
 static notmuch_status_t
 add_files_recursive (notmuch_database_t *notmuch,
                     const char *path,
-                    const char *tag,
                     struct stat *st,
                     add_files_state_t *state)
 {
@@ -184,7 +183,6 @@ add_files_recursive (notmuch_database_t *notmuch,
                    case NOTMUCH_STATUS_SUCCESS:
                        state->added_messages++;
                        tag_inbox_and_unread (message);
-                       notmuch_message_add_tag (message, tag);
                        break;
                    /* Non-fatal issues (go on to next file) */
                    case NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID:
@@ -195,6 +193,7 @@ add_files_recursive (notmuch_database_t *notmuch,
                                 next);
                        break;
                    /* Fatal issues. Don't process anymore. */
+                   case NOTMUCH_STATUS_READONLY_DATABASE:
                    case NOTMUCH_STATUS_XAPIAN_EXCEPTION:
                    case NOTMUCH_STATUS_OUT_OF_MEMORY:
                        fprintf (stderr, "Error: %s. Halting processing.\n",
@@ -222,13 +221,7 @@ add_files_recursive (notmuch_database_t *notmuch,
                }
            }
        } else if (S_ISDIR (st->st_mode)) {
-               if ((strcmp (entry->d_name, "cur") == 0) ||
-                       (strcmp (entry->d_name, "new") == 0) ||
-                       (strcmp (entry->d_name, "tmp") == 0)) {
-                       status = add_files_recursive (notmuch, next, tag, st, state);
-               } else {
-                       status = add_files_recursive (notmuch, next, entry->d_name, st, state);
-               }
+           status = add_files_recursive (notmuch, next, st, state);
            if (status && ret == NOTMUCH_STATUS_SUCCESS)
                ret = status;
        }
@@ -292,7 +285,7 @@ add_files (notmuch_database_t *notmuch,
     timerval.it_value.tv_usec = 0;
     setitimer (ITIMER_REAL, &timerval, NULL);
 
-    status = add_files_recursive (notmuch, path, basename(path), &st, state);
+    status = add_files_recursive (notmuch, path, &st, state);
 
     /* Now stop the timer. */
     timerval.it_interval.tv_sec = 0;
@@ -420,7 +413,8 @@ notmuch_new_command (void *ctx,
        add_files_state.ignore_read_only_directories = FALSE;
        add_files_state.total_files = count;
     } else {
-       notmuch = notmuch_database_open (db_path);
+       notmuch = notmuch_database_open (db_path,
+                                        NOTMUCH_DATABASE_MODE_READ_WRITE);
        add_files_state.ignore_read_only_directories = TRUE;
        add_files_state.total_files = 0;
     }