X-Git-Url: https://git.deb.at/w?a=blobdiff_plain;f=abook.c;h=51812032f7bd55af529028d24514908d05b10506;hb=5d50b3ba7f2e35013e2236219b11fcf75a058770;hp=7ce99ae3366d9269b12bfb21d9ca49afd8b387ed;hpb=e0e2b1ebd0bbc1728e7117ff88e5046f2870cfaa;p=pkg%2Fabook.git diff --git a/abook.c b/abook.c index 7ce99ae..5181203 100644 --- a/abook.c +++ b/abook.c @@ -137,12 +137,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 +158,7 @@ quit_abook() static void quit_abook_sig(int i) { - quit_abook(); + quit_abook(QUIT_SAVE); } int @@ -171,7 +174,7 @@ main(int argc, char **argv) get_commands(); - quit_abook(); + quit_abook(QUIT_SAVE); return 0; } @@ -577,7 +580,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 +598,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); }