X-Git-Url: https://git.deb.at/?a=blobdiff_plain;f=abook.c;h=fe37f71469d861e444d1e3de3595af0daa99957e;hb=4d2aca39cdd96958b3f0bbc6973f15aac5133cdc;hp=7ce99ae3366d9269b12bfb21d9ca49afd8b387ed;hpb=e0e2b1ebd0bbc1728e7117ff88e5046f2870cfaa;p=pkg%2Fabook.git diff --git a/abook.c b/abook.c index 7ce99ae..fe37f71 100644 --- a/abook.c +++ b/abook.c @@ -6,9 +6,10 @@ * Copyright (C) Jaakko Heinonen */ -#include +#include #include #include +#include #include #include #include @@ -137,12 +138,15 @@ init_abook() } void -quit_abook() +quit_abook(int save_db) { - if(opt_get_bool(BOOL_AUTOSAVE)) - save_database(); - else if(statusline_ask_boolean("Save database", TRUE)) - save_database(); + if(save_db) { + if(opt_get_bool(BOOL_AUTOSAVE)) + save_database(); + else if(statusline_ask_boolean("Save database", TRUE)) + save_database(); + } else if(!statusline_ask_boolean("Quit without saving", FALSE)) + return; free_opts(); close_database(); @@ -155,7 +159,7 @@ quit_abook() static void quit_abook_sig(int i) { - quit_abook(); + quit_abook(QUIT_SAVE); } int @@ -171,7 +175,7 @@ main(int argc, char **argv) get_commands(); - quit_abook(); + quit_abook(QUIT_SAVE); return 0; } @@ -577,7 +581,7 @@ abook_malloc(size_t size) if ( (ptr = malloc(size)) == NULL ) { if( is_ui_initialized() ) - quit_abook(); + quit_abook(QUIT_SAVE); perror("malloc() failed"); exit(1); } @@ -595,7 +599,7 @@ abook_realloc(void *ptr, size_t size) if(ptr == NULL) { if(is_ui_initialized()) - quit_abook(); + quit_abook(QUIT_SAVE); perror("realloc() failed"); exit(1); }