From: Jani Nikula Date: Fri, 1 Sep 2017 15:53:08 +0000 (+0300) Subject: cli/new: check for special directories earlier in pass 1 X-Git-Tag: 0.26_rc0~131 X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=commitdiff_plain;h=23819e82d061502fce8d3876f3e606aa56ca6ea0 cli/new: check for special directories earlier in pass 1 Avoid passing . and .. to ignore check. We don't need to check their dirent type either. --- diff --git a/notmuch-new.c b/notmuch-new.c index faeb8f0a..378bf4c2 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;