X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=notmuch-new.c;h=c55dea7bc1b7188522b2f2805fdf6a93ca12bf68;hp=442a2f0ae2886c169881dab4ae9e35bf20f77bec;hb=60ac94fe58635f9c40724afa0f35965fc9ff1afc;hpb=847792ec29709f3d3c0e94cdd22b60a253e6de8a diff --git a/notmuch-new.c b/notmuch-new.c index 442a2f0a..c55dea7b 100644 --- a/notmuch-new.c +++ b/notmuch-new.c @@ -13,7 +13,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see http://www.gnu.org/licenses/ . + * along with this program. If not, see https://www.gnu.org/licenses/ . * * Author: Carl Worth */ @@ -281,6 +281,10 @@ add_file (notmuch_database_t *notmuch, const char *filename, fprintf (stderr, "Note: Ignoring non-mail file: %s\n", filename); break; /* Fatal issues. Don't process anymore. */ + case NOTMUCH_STATUS_FILE_ERROR: + fprintf (stderr, "Unexpected error with file %s\n", filename); + (void) print_status_database ("add_file", notmuch, status); + goto DONE; case NOTMUCH_STATUS_READ_ONLY_DATABASE: case NOTMUCH_STATUS_XAPIAN_EXCEPTION: case NOTMUCH_STATUS_OUT_OF_MEMORY: @@ -347,7 +351,6 @@ add_files (notmuch_database_t *notmuch, const char *path, add_files_state_t *state) { - DIR *dir = NULL; struct dirent *entry = NULL; char *next = NULL; time_t fs_mtime, db_mtime; @@ -445,7 +448,7 @@ add_files (notmuch_database_t *notmuch, */ if (_entry_in_ignore_list (entry->d_name, state)) { if (state->debug) - printf ("(D) add_files_recursive, pass 1: explicitly ignoring %s/%s\n", + printf ("(D) add_files, pass 1: explicitly ignoring %s/%s\n", path, entry->d_name); continue; } @@ -513,9 +516,8 @@ add_files (notmuch_database_t *notmuch, /* Ignore files & directories user has configured to be ignored */ 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); + printf ("(D) add_files, pass 2: explicitly ignoring %s/%s\n", + path, entry->d_name); continue; } @@ -529,7 +531,7 @@ add_files (notmuch_database_t *notmuch, notmuch_filenames_get (db_files)); if (state->debug) - printf ("(D) add_files_recursive, pass 2: queuing passed file %s for deletion from database\n", + printf ("(D) add_files, pass 2: queuing passed file %s for deletion from database\n", absolute); _filename_list_add (state->removed_files, absolute); @@ -547,7 +549,7 @@ add_files (notmuch_database_t *notmuch, char *absolute = talloc_asprintf (state->removed_directories, "%s/%s", path, filename); if (state->debug) - printf ("(D) add_files_recursive, pass 2: queuing passed directory %s for deletion from database\n", + printf ("(D) add_files, pass 2: queuing passed directory %s for deletion from database\n", absolute); _filename_list_add (state->removed_directories, absolute); @@ -618,7 +620,7 @@ add_files (notmuch_database_t *notmuch, "%s/%s", path, notmuch_filenames_get (db_files)); if (state->debug) - printf ("(D) add_files_recursive, pass 3: queuing leftover file %s for deletion from database\n", + printf ("(D) add_files, pass 3: queuing leftover file %s for deletion from database\n", absolute); _filename_list_add (state->removed_files, absolute); @@ -633,7 +635,7 @@ add_files (notmuch_database_t *notmuch, notmuch_filenames_get (db_subdirs)); if (state->debug) - printf ("(D) add_files_recursive, pass 3: queuing leftover directory %s for deletion from database\n", + printf ("(D) add_files, pass 3: queuing leftover directory %s for deletion from database\n", absolute); _filename_list_add (state->removed_directories, absolute); @@ -652,8 +654,6 @@ add_files (notmuch_database_t *notmuch, DONE: if (next) talloc_free (next); - if (dir) - closedir (dir); if (fs_entries) { for (i = 0; i < num_fs_entries; i++) free (fs_entries[i]); @@ -878,17 +878,11 @@ _remove_directory (void *ctx, goto DONE; } - /* - * XXX: The library does not have a function to remove a directory - * document for a path. Usually this doesn't matter except for a - * slight waste of space. However, if the directory gets added to - * the filesystem again, the old directory document is found with - * the old mtime. Reset the directory mtime to avoid problems. - */ - notmuch_directory_set_mtime (directory, 0); + status = notmuch_directory_delete (directory); DONE: - notmuch_directory_destroy (directory); + if (status) + notmuch_directory_destroy (directory); return status; } @@ -1048,7 +1042,7 @@ notmuch_new_command (notmuch_config_t *config, int argc, char *argv[]) } if (notmuch_database_dump (notmuch, backup_name, "", - DUMP_FORMAT_BATCH_TAG, TRUE)) { + DUMP_FORMAT_BATCH_TAG, DUMP_INCLUDE_DEFAULT, TRUE)) { fprintf (stderr, "Backup failed. Aborting upgrade."); return EXIT_FAILURE; }