From 4db3b69b277a5cc39b6f826fc06bb2e1781c8b70 Mon Sep 17 00:00:00 2001
From: Frederic Culot <calcurse@culot.org>
Date: Sun, 9 Aug 2009 15:49:57 +0000
Subject: Remove calcurse lock file when running in interactive mode and
 SIGTERM is received.

---
 src/sigs.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

(limited to 'src')

diff --git a/src/sigs.c b/src/sigs.c
index 6f341e7..bfe6ee1 100755
--- a/src/sigs.c
+++ b/src/sigs.c
@@ -1,4 +1,4 @@
-/*	$calcurse: sigs.c,v 1.9 2009/07/19 16:51:36 culot Exp $	*/
+/*	$calcurse: sigs.c,v 1.10 2009/08/09 15:49:58 culot Exp $	*/
 
 /*
  * Calcurse - text-based organizer
@@ -38,6 +38,7 @@
 
 #include <sys/types.h>
 #include <sys/wait.h>
+#include <unistd.h>
 #include <errno.h>
 #include <string.h>
 
@@ -64,6 +65,14 @@ generic_hdlr (int sig)
       clearok (curscr, TRUE);
       (void)ungetch (KEY_RESIZE);
       break;
+    case SIGTERM:
+      if (unlink (path_cpid) != 0)
+        {
+          EXIT (_("Could not remove calcurse lock file: %s\n"),
+                    strerror (errno));
+        }
+      exit (EXIT_SUCCESS);
+      break;
     }
 }
 
@@ -92,6 +101,7 @@ sigs_init ()
 {
   if (!sigs_set_hdlr (SIGCHLD, generic_hdlr)
       || !sigs_set_hdlr (SIGWINCH, generic_hdlr)
+      || !sigs_set_hdlr (SIGTERM, generic_hdlr)      
       || !sigs_set_hdlr (SIGINT, SIG_IGN))
     exit_calcurse (1);
 }
-- 
cgit v1.2.3-70-g09d2