chg: ignore SIGINT while waiting pager termination
authorYuya Nishihara <yuya@tcha.org>
Wed, 15 Jun 2016 23:49:56 +0900
changeset 29370 3ddf4d0c4170
parent 29369 85a18f3c0bdd
child 29371 1b699c7eb2b7
chg: ignore SIGINT while waiting pager termination Otherwise the terminal would be left with unclean state. This is what fcc4b55876c3 does.
contrib/chg/chg.c
--- a/contrib/chg/chg.c	Wed Jun 15 23:32:00 2016 +0900
+++ b/contrib/chg/chg.c	Wed Jun 15 23:49:56 2016 +0900
@@ -434,8 +434,6 @@
 
 	if (sigaction(SIGHUP, &sa, NULL) < 0)
 		goto error;
-	if (sigaction(SIGINT, &sa, NULL) < 0)
-		goto error;
 	if (sigaction(SIGTERM, &sa, NULL) < 0)
 		goto error;
 	if (sigaction(SIGWINCH, &sa, NULL) < 0)
@@ -445,6 +443,11 @@
 	if (sigaction(SIGTSTP, &sa, NULL) < 0)
 		goto error;
 
+	/* ignore Ctrl+C while shutting down to make pager exits cleanly */
+	sa.sa_handler = SIG_IGN;
+	if (sigaction(SIGINT, &sa, NULL) < 0)
+		goto error;
+
 	peerpid = 0;
 	return;