X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=notmuch-new.c;h=c7dfbb748fb9d50f878795acaabedae22677a383;hb=1353dbe8642ebf5fc7e4ff562bb4b8f3a8e15132;hp=fb59d90c15f4646a9046cceab0bcecc661608ab3;hpb=fcd433709eff6b7f0fbbd1e5018ca0e37315ce26;p=notmuch diff --git a/notmuch-new.c b/notmuch-new.c index fb59d90c..c7dfbb74 100644 --- a/notmuch-new.c +++ b/notmuch-new.c @@ -42,7 +42,7 @@ typedef struct { int total_files; int processed_files; - int added_messages; + int added_messages, removed_messages, renamed_messages; struct timeval tv_start; _filename_list_t *removed_files; @@ -488,6 +488,7 @@ add_files_recursive (notmuch_database_t *notmuch, case NOTMUCH_STATUS_NULL_POINTER: case NOTMUCH_STATUS_TAG_TOO_LONG: case NOTMUCH_STATUS_UNBALANCED_FREEZE_THAW: + case NOTMUCH_STATUS_UNBALANCED_ATOMIC: case NOTMUCH_STATUS_LAST_STATUS: INTERNAL_ERROR ("add_message returned unexpected value: %d", status); goto DONE; @@ -729,8 +730,7 @@ static void _remove_directory (void *ctx, notmuch_database_t *notmuch, const char *path, - int *renamed_files, - int *removed_files) + add_files_state_t *add_files_state) { notmuch_directory_t *directory; notmuch_filenames_t *files, *subdirs; @@ -747,9 +747,9 @@ _remove_directory (void *ctx, notmuch_filenames_get (files)); status = notmuch_database_remove_message (notmuch, absolute); if (status == NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID) - *renamed_files = *renamed_files + 1; + add_files_state->renamed_messages++; else - *removed_files = *removed_files + 1; + add_files_state->removed_messages++; talloc_free (absolute); } @@ -759,7 +759,7 @@ _remove_directory (void *ctx, { absolute = talloc_asprintf (ctx, "%s/%s", path, notmuch_filenames_get (subdirs)); - _remove_directory (ctx, notmuch, absolute, renamed_files, removed_files); + _remove_directory (ctx, notmuch, absolute, add_files_state); talloc_free (absolute); } @@ -780,7 +780,6 @@ notmuch_new_command (void *ctx, int argc, char *argv[]) char *dot_notmuch_path; struct sigaction action; _filename_node_t *f; - int renamed_files, removed_files; notmuch_status_t status; int i; notmuch_bool_t timer_is_active = FALSE; @@ -853,6 +852,7 @@ notmuch_new_command (void *ctx, int argc, char *argv[]) add_files_state.processed_files = 0; add_files_state.added_messages = 0; + add_files_state.removed_messages = add_files_state.renamed_messages = 0; gettimeofday (&add_files_state.tv_start, NULL); add_files_state.removed_files = _filename_list_create (ctx); @@ -867,27 +867,24 @@ notmuch_new_command (void *ctx, int argc, char *argv[]) ret = add_files (notmuch, db_path, &add_files_state); - removed_files = 0; - renamed_files = 0; gettimeofday (&tv_start, NULL); for (f = add_files_state.removed_files->head; f && !interrupted; f = f->next) { status = notmuch_database_remove_message (notmuch, f->filename); if (status == NOTMUCH_STATUS_DUPLICATE_MESSAGE_ID) - renamed_files++; + add_files_state.renamed_messages++; else - removed_files++; + add_files_state.removed_messages++; if (do_print_progress) { do_print_progress = 0; generic_print_progress ("Cleaned up", "messages", - tv_start, removed_files + renamed_files, + tv_start, add_files_state.removed_messages + add_files_state.renamed_messages, add_files_state.removed_files->count); } } gettimeofday (&tv_start, NULL); for (f = add_files_state.removed_directories->head, i = 0; f && !interrupted; f = f->next, i++) { - _remove_directory (ctx, notmuch, f->filename, - &renamed_files, &removed_files); + _remove_directory (ctx, notmuch, f->filename, &add_files_state); if (do_print_progress) { do_print_progress = 0; generic_print_progress ("Cleaned up", "directories", @@ -964,16 +961,16 @@ notmuch_new_command (void *ctx, int argc, char *argv[]) printf ("No new mail."); } - if (removed_files) { + if (add_files_state.removed_messages) { printf (" Removed %d %s.", - removed_files, - removed_files == 1 ? "message" : "messages"); + add_files_state.removed_messages, + add_files_state.removed_messages == 1 ? "message" : "messages"); } - if (renamed_files) { + if (add_files_state.renamed_messages) { printf (" Detected %d file %s.", - renamed_files, - renamed_files == 1 ? "rename" : "renames"); + add_files_state.renamed_messages, + add_files_state.renamed_messages == 1 ? "rename" : "renames"); } printf ("\n");