]> git.deb.at Git - pkg/abook.git/blobdiff - abook.c
wide character support
[pkg/abook.git] / abook.c
diff --git a/abook.c b/abook.c
index 7ce99ae3366d9269b12bfb21d9ca49afd8b387ed..fe37f71469d861e444d1e3de3595af0daa99957e 100644 (file)
--- a/abook.c
+++ b/abook.c
@@ -6,9 +6,10 @@
  * 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>
@@ -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);
        }