typedef struct {
int output_is_a_tty;
int verbose;
+ int debug;
const char **new_tags;
size_t new_tags_length;
const char **new_ignore;
* if fs_mtime isn't the current wall-clock time.
*/
static notmuch_status_t
-add_files_recursive (notmuch_database_t *notmuch,
- const char *path,
- add_files_state_t *state)
+add_files (notmuch_database_t *notmuch,
+ const char *path,
+ add_files_state_t *state)
{
DIR *dir = NULL;
struct dirent *entry = NULL;
strcmp (entry->d_name, ".notmuch") == 0 ||
_entry_in_ignore_list (entry->d_name, state))
{
+ if (_entry_in_ignore_list (entry->d_name, state) && state->debug)
+ printf ("(D) add_files_recursive, pass 1: explicitly ignoring %s/%s\n",
+ path,
+ entry->d_name);
continue;
}
next = talloc_asprintf (notmuch, "%s/%s", path, entry->d_name);
- status = add_files_recursive (notmuch, next, state);
+ status = add_files (notmuch, next, state);
if (status) {
ret = status;
goto DONE;
entry = fs_entries[i];
/* Ignore files & directories user has configured to be ignored */
- if (_entry_in_ignore_list (entry->d_name, state))
+ if (_entry_in_ignore_list (entry->d_name, state)) {
+ if (state->debug)
+ printf ("(D) add_files_recursive, pass 2: explicitly ignoring %s/%s\n",
+ path,
+ entry->d_name);
continue;
+ }
/* Check if we've walked past any names in db_files or
* db_subdirs. If so, these have been deleted. */
}
-/* This is the top-level entry point for add_files. It does a couple
- * of error checks and then calls into the recursive function. */
-static notmuch_status_t
-add_files (notmuch_database_t *notmuch,
- const char *path,
- add_files_state_t *state)
-{
- return add_files_recursive (notmuch, path, state);
-}
-
/* XXX: This should be merged with the add_files function since it
* shares a lot of logic with it. */
/* Recursively count all regular files in path and all sub-directories
strcmp (entry->d_name, ".notmuch") == 0 ||
_entry_in_ignore_list (entry->d_name, state))
{
+ if (_entry_in_ignore_list (entry->d_name, state) && state->debug)
+ printf ("(D) count_files: explicitly ignoring %s/%s\n",
+ path,
+ entry->d_name);
continue;
}
notmuch_bool_t run_hooks = TRUE;
add_files_state.verbose = 0;
+ add_files_state.debug = 0;
add_files_state.output_is_a_tty = isatty (fileno (stdout));
argc--; argv++; /* skip subcommand argument */
for (i = 0; i < argc && argv[i][0] == '-'; i++) {
if (STRNCMP_LITERAL (argv[i], "--verbose") == 0) {
add_files_state.verbose = 1;
+ } else if (strcmp (argv[i], "--debug") == 0) {
+ add_files_state.debug = 1;
} else if (strcmp (argv[i], "--no-hooks") == 0) {
run_hooks = FALSE;
} else {