aboutsummaryrefslogtreecommitdiffstats
path: root/src/sigs.c
diff options
context:
space:
mode:
authorTim Hentenaar <tim@hentenaar.com>2014-10-10 01:55:14 +0200
committerLukas Fleischer <calcurse@cryptocrack.de>2014-10-10 09:33:57 +0200
commit7f62fb185c2617eb308f7ca5fe8b9e18828cb772 (patch)
treec20ac5e02a8767f0959507011b9886a971a31fd4 /src/sigs.c
parent7f06c25230db49e6a7dcf00692cc2d1bae9ec6ea (diff)
downloadcalcurse-7f62fb185c2617eb308f7ca5fe8b9e18828cb772.tar.gz
calcurse-7f62fb185c2617eb308f7ca5fe8b9e18828cb772.zip
Let SIGUSR1 trigger a reload
In an effort to better integrate the import process with external applications, it's desirable to have a mechanism by which external programs can trigger a reload of calcurse's data. This patch adds that functionality via SIGUSR1. The reload request is handled in the main loop. When the user is currently entering data, the request is delayed until the main loop is re-entered. Signed-off-by: Tim Hentenaar <tim@hentenaar.com> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
Diffstat (limited to 'src/sigs.c')
-rw-r--r--src/sigs.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/sigs.c b/src/sigs.c
index 18abcba..a95d9ab 100644
--- a/src/sigs.c
+++ b/src/sigs.c
@@ -86,6 +86,10 @@ static void generic_hdlr(int sig)
}
exit(EXIT_SUCCESS);
break;
+ case SIGUSR1:
+ want_reload = 1;
+ ungetch(KEY_RESIZE);
+ break;
}
}
@@ -112,6 +116,7 @@ void sigs_init()
if (!sigs_set_hdlr(SIGCHLD, generic_hdlr)
|| !sigs_set_hdlr(SIGWINCH, generic_hdlr)
|| !sigs_set_hdlr(SIGTERM, generic_hdlr)
+ || !sigs_set_hdlr(SIGUSR1, generic_hdlr)
|| !sigs_set_hdlr(SIGINT, SIG_IGN))
exit_calcurse(1);
}