summaryrefslogtreecommitdiffstats
path: root/meta/recipes-extended/man/man-1.6e/man-1.5m2-sigpipe.patch
blob: 81fb2d702a193853bf34ee91f0f1adb8ccaeb250 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
--- man-1.5m2/src/util.c_sigpipe	2006-12-09 13:43:21.000000000 +0100
+++ man-1.5m2/src/util.c	2006-12-09 13:53:13.000000000 +0100
@@ -116,11 +116,14 @@
 static int
 system1 (const char *command) {
 	void (*prev_handler)(int) = signal (SIGINT,catch_int);
+	signal (SIGPIPE,SIG_IGN);
 	int ret = system(command);
 
 	/* child terminated with signal? */
 	if (WIFSIGNALED(ret) &&
-	    (WTERMSIG(ret) == SIGINT || WTERMSIG(ret) == SIGQUIT))
+	    (WTERMSIG(ret) == SIGINT ||
+		 WTERMSIG(ret) == SIGPIPE ||
+		 WTERMSIG(ret) == SIGQUIT))
 		exit(1);
 
 	/* or we caught an interrupt? */
@@ -128,6 +131,7 @@
 		exit(1);
 
 	signal(SIGINT,prev_handler);
+	signal(SIGPIPE,SIG_DFL);
 	return ret;
 }