]> git.notmuchmail.org Git - notmuch/blobdiff - notmuch-new.c
lib: Add missing value to notmuch_private_status_t enum.
[notmuch] / notmuch-new.c
index 6405cf0e5502c97893a30c46a577bb9f89be855b..501f04c967f996123981827ec4421d92db2566df 100644 (file)
@@ -35,8 +35,10 @@ static volatile sig_atomic_t interrupted;
 static void
 handle_sigint (unused (int sig))
 {
+    ssize_t ignored;
     static char msg[] = "Stopping...         \n";
-    write(2, msg, sizeof(msg)-1);
+
+    ignored = write(2, msg, sizeof(msg)-1);
     interrupted = 1;
 }
 
@@ -197,10 +199,21 @@ add_files_recursive (notmuch_database_t *notmuch,
        next = talloc_asprintf (notmuch, "%s/%s", path, entry->d_name);
 
        if (stat (next, st)) {
+           int err = errno;
+
+           switch (err) {
+           case ENOENT:
+               /* The file was removed between scandir and now... */
+           case EPERM:
+           case EACCES:
+               /* We can't read this file so don't add it to the cache. */
+               continue;
+           }
+
            fprintf (stderr, "Error reading %s: %s\n",
                     next, strerror (errno));
            ret = NOTMUCH_STATUS_FILE_ERROR;
-           continue;
+           goto DONE;
        }
 
        if (S_ISREG (st->st_mode)) {
@@ -472,7 +485,7 @@ notmuch_new_command (void *ctx, int argc, char *argv[])
        if (interrupted)
            return 1;
 
-       printf ("Found %d total files.     \n", count);
+       printf ("Found %d total files (that's not much mail).\n", count);
        notmuch = notmuch_database_create (db_path);
        add_files_state.ignore_read_only_directories = FALSE;
        add_files_state.total_files = count;
@@ -512,12 +525,12 @@ notmuch_new_command (void *ctx, int argc, char *argv[])
        }
     }
     if (add_files_state.added_messages) {
-       printf ("Added %d new %s to the database (not much, really).\n",
+       printf ("Added %d new %s to the database.\n",
                add_files_state.added_messages,
                add_files_state.added_messages == 1 ?
                "message" : "messages");
     } else {
-       printf ("No new mail---and that's not much.\n");
+       printf ("No new mail.\n");
     }
 
     if (elapsed > 1 && ! add_files_state.saw_read_only_directory) {