summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--calmwm.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/calmwm.c b/calmwm.c
index 3900dbc..a9a9035 100644
--- a/calmwm.c
+++ b/calmwm.c
@@ -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;