From: Austin Clements Date: Wed, 9 Feb 2011 01:56:31 +0000 (-0500) Subject: new: Don't lose messages on SIGINT. X-Git-Tag: 0.9_rc1~26 X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=commitdiff_plain;h=bdaee77e1b0853b0dab00565e4c5b6164248f85a;hp=73ed66a501537fc145b6b6250513ec94c7b7e659 new: Don't lose messages on SIGINT. Previously, message removals were always performed, even after a SIGINT. As a result, when a message was moved from one folder to another, a SIGINT between processing the directory the message was removed from and processing the directory it was added to would result in notmuch removing that message from the database. --- diff --git a/notmuch-new.c b/notmuch-new.c index 7d17793b..b734e5b9 100644 --- a/notmuch-new.c +++ b/notmuch-new.c @@ -868,7 +868,7 @@ notmuch_new_command (void *ctx, int argc, char *argv[]) removed_files = 0; renamed_files = 0; gettimeofday (&tv_start, NULL); - for (f = add_files_state.removed_files->head; f; f = f->next) { + 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++; @@ -883,7 +883,7 @@ notmuch_new_command (void *ctx, int argc, char *argv[]) } gettimeofday (&tv_start, NULL); - for (f = add_files_state.removed_directories->head, i = 0; f; f = f->next, i++) { + 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); if (do_print_progress) {