From 279c564d2bb60747e56089658f66e848b7e88f55 Mon Sep 17 00:00:00 2001 From: Frederic Culot Date: Sun, 26 Jul 2009 20:38:35 +0000 Subject: Stop daemon when calcurse enters interactive mode. --- ChangeLog | 2 ++ src/calcurse.c | 4 +++- src/dmon.c | 19 ++++++++++++++++++- src/dmon.h | 3 ++- 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 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 */ -- cgit v1.2.3-54-g00ecf