aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorokan2020-03-23 20:14:27 +0000
committerWynn Wolf Arbor2020-03-26 20:12:46 +0100
commit6230ae9cbeb69c9ed040e112328552e339d36d96 (patch)
tree2f8136bb8f62979efbd5e928176ca73c4c7d64bf
parentc1ce4e9c788a61e2da6953047ec986cc898b583b (diff)
downloadcwm-6230ae9cbeb69c9ed040e112328552e339d36d96.tar.gz
Add support for SIGINT/SIGTERM.
-rw-r--r--calmwm.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/calmwm.c b/calmwm.c
index 6634d1a..002d3b2 100644
--- a/calmwm.c
+++ b/calmwm.c
@@ -15,7 +15,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
- * $OpenBSD: calmwm.c,v 1.112 2020/02/27 14:56:39 okan Exp $
+ * $OpenBSD: calmwm.c,v 1.113 2020/03/23 20:14:27 okan Exp $
*/
#include <sys/types.h>
@@ -89,11 +89,12 @@ main(int argc, char **argv)
argc -= optind;
argv += optind;
- if (signal(SIGCHLD, sighdlr) == SIG_ERR)
+ if (signal(SIGCHLD, sighdlr) == SIG_ERR ||
+ signal(SIGHUP, sighdlr) == SIG_ERR ||
+ signal(SIGINT, sighdlr) == SIG_ERR ||
+ signal(SIGTERM, sighdlr) == SIG_ERR)
err(1, "signal");
- if (signal(SIGHUP, sighdlr) == SIG_ERR)
- err(1, "signal");
-
+
if (parse_config(Conf.conf_file, &Conf) == -1) {
warnx("error parsing config file");
if (nflag)
@@ -216,6 +217,10 @@ sighdlr(int sig)
case SIGHUP:
cwm_status = CWM_EXEC_WM;
break;
+ case SIGINT:
+ case SIGTERM:
+ cwm_status = CWM_QUIT;
+ break;
}
errno = save_errno;