]> git.notmuchmail.org Git - notmuch/blobdiff - notmuch-new.c
configure: Generate more friendly Makefile.config with separated CFLAGS
[notmuch] / notmuch-new.c
index 72c6c58799a3a96b92e452592826b61d87b63db7..9d206167e997382d623934ce4dd1797751b2e950 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;
 }
 
@@ -87,7 +89,8 @@ static int ino_cmp(const struct dirent **a, const struct dirent **b)
  *
  * Return 1 if the directory looks like a Maildir and 0 otherwise.
  */
-static int is_maildir (struct dirent **entries, int count)
+static int
+is_maildir (struct dirent **entries, int count)
 {
     int i, found = 0;
 
@@ -98,7 +101,8 @@ static int is_maildir (struct dirent **entries, int count)
            strcmp(entries[i]->d_name, "tmp") == 0)
        {
            found++;
-           if (found == 3) return 1;
+           if (found == 3)
+               return 1;
        }
     }
 
@@ -195,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)) {