On Sun, 28 Mar 2010, Sebastian Spaeth wrote: > On Sun, 28 Mar 2010 00:37:00 +0100, "Sebastian Spaeth" <Sebastian@SSpaeth.de> wrote: > > On Fri, 26 Mar 2010 22:18:13 +0100, Michal Sojka <sojkam1@fel.cvut.cz> wrote: > > > When Ctrl-C is pressed in a wrong time during notmuch new, it can lead > > > to removal of messages from the database even if the files were not > > > removed. > > CC -O2 notmuch-new.o > notmuch-new.c: In function 'add_files_recursive': > notmuch-new.c:519: error: 'add_files_state_t' has no member named 'interrupted' > make: *** [notmuch-new.o] Error 1 > > I have not checked the code yet, but simply applying this patch make the > compile fail. Oh, sorry. I thought it is so trivial, that I didn't even compile it for master. The right version is here: --8<---------------cut here---------------start------------->8--- >From 117de1fcc316a4792244a36b68e38215ff2a5bdc Mon Sep 17 00:00:00 2001 From: Michal Sojka <sojkam1@fel.cvut.cz> Date: Fri, 26 Mar 2010 22:16:26 +0100 Subject: [PATCH v2] Prevent data loss caused by SIGINT during notmuch new When Ctrl-C is pressed in a wrong time during notmuch new, it can lead to removal of messages from the database even if the files were not removed. It happened at least once to me. Signed-off-by: Michal Sojka <sojkam1@fel.cvut.cz> --- notmuch-new.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/notmuch-new.c b/notmuch-new.c index 44b50aa..109bef2 100644 --- a/notmuch-new.c +++ b/notmuch-new.c @@ -454,6 +454,9 @@ add_files_recursive (notmuch_database_t *notmuch, next = NULL; } + if (! interrupted) + goto DONE; + /* Now that we've walked the whole filesystem list, anything left * over in the database lists has been deleted. */ while (notmuch_filenames_valid (db_files)) -- 1.7.0.2