summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xChangeLog2
-rwxr-xr-xsrc/calcurse.c4
-rw-r--r--src/dmon.c19
-rw-r--r--src/dmon.h3
4 files changed, 25 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 6d36b03..02f3107 100755
--- a/ChangeLog
+++ b/ChangeLog
@@ -8,6 +8,8 @@
* src/args.c (status_arg): new function
* src/args.c: --status flag added
+
+ * src/dmon.c (dmon_stop): new function
2009-07-23 Frederic Culot <frederic@culot.org>
diff --git a/src/calcurse.c b/src/calcurse.c
index 0352e5d..051008d 100755
--- a/src/calcurse.c
+++ b/src/calcurse.c
@@ -1,4 +1,4 @@
-/* $calcurse: calcurse.c,v 1.84 2009/07/19 16:51:36 culot Exp $ */
+/* $calcurse: calcurse.c,v 1.85 2009/07/26 20:38:35 culot Exp $ */
/*
* Calcurse - text-based organizer
@@ -53,6 +53,7 @@
#include "args.h"
#include "notify.h"
#include "keys.h"
+#include "dmon.h"
/*
* Calcurse is a text-based personal organizer which helps keeping track
@@ -101,6 +102,7 @@ main (int argc, char **argv)
else
{
no_data_file = io_check_data_files ();
+ dmon_stop ();
io_set_lock ();
}
diff --git a/src/dmon.c b/src/dmon.c
index a52d7a5..0f0aff3 100644
--- a/src/dmon.c
+++ b/src/dmon.c
@@ -1,4 +1,4 @@
-/* $calcurse: dmon.c,v 1.3 2009/07/26 12:47:15 culot Exp $ */
+/* $calcurse: dmon.c,v 1.4 2009/07/26 20:38:36 culot Exp $ */
/*
* Calcurse - text-based organizer
@@ -180,3 +180,20 @@ dmon_start (int parent_exit_status)
(void)io_fprintln (path_dmon_log, _("awakened at %s\n"), nowstr ());
}
}
+
+/*
+ * Check if calcurse is running in background, and if yes, send a SIGINT
+ * signal to stop it.
+ */
+void
+dmon_stop (void)
+{
+ int dpid;
+
+ dpid = io_get_pid (path_dpid);
+ if (!dpid)
+ return;
+
+ if (kill ((pid_t)dpid, SIGINT) < 0)
+ EXIT (_("Could not stop calcurse daemon: %s\n"), strerror (errno));
+}
diff --git a/src/dmon.h b/src/dmon.h
index 9575705..7236360 100644
--- a/src/dmon.h
+++ b/src/dmon.h
@@ -1,4 +1,4 @@
-/* $calcurse: dmon.h,v 1.1 2009/07/20 19:44:04 culot Exp $ */
+/* $calcurse: dmon.h,v 1.2 2009/07/26 20:38:36 culot Exp $ */
/*
* Calcurse - text-based organizer
@@ -40,5 +40,6 @@
#define CALCURSE_DMON_H
void dmon_start (int);
+void dmon_stop (void);
#endif /* CALCURSE_DMON_H */