aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--notmuch-new.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/notmuch-new.c b/notmuch-new.c
index 4f3e52fb..cdf85135 100644
--- a/notmuch-new.c
+++ b/notmuch-new.c
@@ -308,9 +308,16 @@ add_files_recursive (notmuch_database_t *notmuch,
next = NULL;
}
- /* If this directory hasn't been modified since the last
- * "notmuch new", then we can skip the second pass entirely. */
- if (fs_mtime <= db_mtime)
+ /* If the directory's modification time in the filesystem is the
+ * same as what we recorded in the database the last time we
+ * scanned it, then we can skip the second pass entirely.
+ *
+ * We test for strict equality here to avoid a bug that can happen
+ * if the system clock jumps backward, (preventing new mail from
+ * being discovered until the clock catches up and the directory
+ * is modified again).
+ */
+ if (fs_mtime == db_mtime)
goto DONE;
/* Pass 2: Scan for new files, removed files, and removed directories. */