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.
This commit is contained in:
Austin Clements 2011-02-08 20:56:31 -05:00 committed by David Bremner
parent 73ed66a501
commit bdaee77e1b

View file

@ -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) {