* Copyright (C) Jaakko Heinonen
*/
-#include <string.h>
+#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
+#include <string.h>
#include <sys/stat.h>
#include <signal.h>
#include <fcntl.h>
}
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();
static void
quit_abook_sig(int i)
{
- quit_abook();
+ quit_abook(QUIT_SAVE);
}
int
get_commands();
- quit_abook();
+ quit_abook(QUIT_SAVE);
return 0;
}
if ( (ptr = malloc(size)) == NULL ) {
if( is_ui_initialized() )
- quit_abook();
+ quit_abook(QUIT_SAVE);
perror("malloc() failed");
exit(1);
}
if(ptr == NULL) {
if(is_ui_initialized())
- quit_abook();
+ quit_abook(QUIT_SAVE);
perror("realloc() failed");
exit(1);
}