]> git.notmuchmail.org Git - notmuch/blobdiff - notmuch-new.c
devel/check-out-of-tree-build.sh: consistent naming, consistent quoting
[notmuch] / notmuch-new.c
index c6a741fefa0361d85cc244638954e9ebb07d2cb5..50597b75c07e3419c8bccdbc1ab35b2143a1c2e4 100644 (file)
@@ -234,6 +234,12 @@ _entries_resemble_maildir (const char *path, struct dirent **entries, int count)
     return 0;
 }
 
+static notmuch_bool_t
+_special_directory (const char *entry)
+{
+    return strcmp (entry, ".") == 0 || strcmp (entry, "..") == 0;
+}
+
 /* Test if the file/directory is to be ignored.
  */
 static notmuch_bool_t
@@ -446,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
@@ -471,13 +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 (strcmp (entry->d_name, ".") == 0 ||
-           strcmp (entry->d_name, "..") == 0 ||
-           (is_maildir && strcmp (entry->d_name, "tmp") == 0) ||
+       if ((is_maildir && strcmp (entry->d_name, "tmp") == 0) ||
            strcmp (entry->d_name, ".notmuch") == 0)
            continue;
 
@@ -514,6 +521,10 @@ add_files (notmuch_database_t *notmuch,
     for (i = 0; i < num_fs_entries && ! interrupted; i++) {
         entry = fs_entries[i];
 
+       /* Ignore special directories early. */
+       if (_special_directory (entry->d_name))
+           continue;
+
        /* Ignore files & directories user has configured to be ignored */
        if (_entry_in_ignore_list (entry->d_name, state)) {
            if (state->debug)
@@ -738,8 +749,7 @@ count_files (const char *path, int *count, add_files_state_t *state)
        /* Ignore special directories to avoid infinite recursion.
         * Also ignore the .notmuch directory.
         */
-       if (strcmp (entry->d_name, ".") == 0 ||
-           strcmp (entry->d_name, "..") == 0 ||
+       if (_special_directory (entry->d_name) ||
            strcmp (entry->d_name, ".notmuch") == 0)
            continue;
 
@@ -949,12 +959,12 @@ notmuch_new_command (notmuch_config_t *config, int argc, char *argv[])
     notmuch_status_t status;
 
     notmuch_opt_desc_t options[] = {
-       { NOTMUCH_OPT_BOOLEAN,  &quiet, "quiet", 'q', 0 },
-       { NOTMUCH_OPT_BOOLEAN,  &verbose, "verbose", 'v', 0 },
-       { NOTMUCH_OPT_BOOLEAN,  &add_files_state.debug, "debug", 'd', 0 },
-       { NOTMUCH_OPT_BOOLEAN,  &no_hooks, "no-hooks", 'n', 0 },
-       { NOTMUCH_OPT_INHERIT, (void *) &notmuch_shared_options, NULL, 0, 0 },
-       { 0, 0, 0, 0, 0 }
+       { .opt_bool = &quiet, .name = "quiet" },
+       { .opt_bool = &verbose, .name = "verbose" },
+       { .opt_bool = &add_files_state.debug, .name = "debug" },
+       { .opt_bool = &no_hooks, .name = "no-hooks" },
+       { .opt_inherit = notmuch_shared_options },
+       { }
     };
 
     opt_index = parse_arguments (argc, argv, options, 1);