[PATCH 3/6] cli/new: check for special directories earlier in pass 1

Jani Nikula jani at nikula.org
Fri Sep 1 08:53:08 PDT 2017


Avoid passing . and .. to ignore check. We don't need to check their
dirent type either.
---
 notmuch-new.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/notmuch-new.c b/notmuch-new.c
index faeb8f0a5896..378bf4c2a15a 100644
--- a/notmuch-new.c
+++ b/notmuch-new.c
@@ -452,6 +452,10 @@ add_files (notmuch_database_t *notmuch,
     for (i = 0; i < num_fs_entries && ! interrupted; i++) {
 	entry = fs_entries[i];
 
+	/* Ignore special directories to avoid infinite recursion. */
+	if (_special_directory (entry->d_name))
+	    continue;
+
 	/* Ignore any files/directories the user has configured to
 	 * ignore.  We do this before dirent_type both for performance
 	 * and because we don't care if dirent_type fails on entries
@@ -477,12 +481,10 @@ add_files (notmuch_database_t *notmuch,
 	    continue;
 	}
 
-	/* Ignore special directories to avoid infinite recursion.
-	 * Also ignore the .notmuch directory and any "tmp" directory
+	/* Ignore the .notmuch directory and any "tmp" directory
 	 * that appears within a maildir.
 	 */
-	if (_special_directory (entry->d_name) ||
-	    (is_maildir && strcmp (entry->d_name, "tmp") == 0) ||
+	if ((is_maildir && strcmp (entry->d_name, "tmp") == 0) ||
 	    strcmp (entry->d_name, ".notmuch") == 0)
 	    continue;
 
-- 
2.11.0



More information about the notmuch mailing list