Moved the SIGINT handler from casefile.c to main.c
authorJohn Darrington <john@darrington.wattle.id.au>
Thu, 13 Jan 2005 13:02:26 +0000 (13:02 +0000)
committerJohn Darrington <john@darrington.wattle.id.au>
Thu, 13 Jan 2005 13:02:26 +0000 (13:02 +0000)
src/ChangeLog
src/casefile.c
src/main.c

index 76e9576342644f3ac950b3b111bfb8c1bebe2d93..80654946d9c1ad56697cb83f930d98dabd78f234 100644 (file)
@@ -1,3 +1,8 @@
+Thu Jan 13 21:00:02 WST 2005 John Darrington <john@darrington.wattle.id.au>
+
+       * casefile.c main.c: Moved the SIGINT handler from casefile.c to
+       main.c. Removed the handler for SIGQUIT.
+
 Mon Jan 10 14:43:45 WST 2005 John Darrington <john@darrington.wattle.id.au>
 
        * casefile.c: Added a signal handler to delete temp files on SIGINT and SIGQUIT
index 242fc385c0ca7890e3017d3c239fdf72ebad6f08..5ad606a3f879e30d2d13ee440b328186e0d3a138 100644 (file)
@@ -32,7 +32,6 @@
 #include "misc.h"
 #include "settings.h"
 #include "var.h"
-#include "signal.h"
 
 #ifdef HAVE_VALGRIND_VALGRIND_H
 #include <valgrind/valgrind.h>
@@ -727,6 +726,7 @@ full_write (int fd, const void *buffer_, size_t size)
   return bytes_written;
 }
 
+
 /* Registers our exit handler with atexit() if it has not already
    been registered. */
 static void
@@ -736,12 +736,12 @@ register_atexit (void)
   if (!registered) 
     {
       registered = 1;
-      signal (SIGQUIT, (sighandler_t) exit_handler);
-      signal (SIGINT,  (sighandler_t) exit_handler);
       atexit (exit_handler);
     }
 }
 
+
+
 /* atexit() handler that closes and deletes our temporary
    files. */
 static void
index b09a200a66bcf6f23215f3fcad058b9270e637fe..c5f9c34f4478f743a06f6cb983194b6be8dd7034 100644 (file)
@@ -54,17 +54,26 @@ char curdate[12];
 /* If a segfault happens, issue a message to that effect and halt */
 void bug_handler(int sig);
 
+/* Handle quit/term/int signals */
+void interrupt_handler(int sig);
+
 /* Whether we're dropping down to interactive mode immediately because
    we hit end-of-file unexpectedly (or whatever). */
 int start_interactive;
 
 
+
+
+
+
 /* Program entry point. */
 int
 main (int argc, char **argv)
 {
+
   signal (SIGSEGV, bug_handler);
-  signal (SIGFPE, bug_handler);
+  signal (SIGFPE,  bug_handler);
+  signal (SIGINT,  interrupt_handler);
 
   gsl_set_error_handler_off();
 
@@ -199,3 +208,10 @@ bug_handler(int sig UNUSED)
       break;
     }
 }
+
+
+void 
+interrupt_handler(int sig UNUSED)
+{
+  err_hcf(0);
+}