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.
This commit is contained in:
Jani Nikula 2017-09-01 18:53:08 +03:00 committed by David Bremner
parent 379de73603
commit 23819e82d0

View file

@ -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;