summaryrefslogtreecommitdiffstats
path: root/meta/recipes-extended/man/man-1.6e/man-1.5m2-sigpipe.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-extended/man/man-1.6e/man-1.5m2-sigpipe.patch')
-rw-r--r--meta/recipes-extended/man/man-1.6e/man-1.5m2-sigpipe.patch26
1 files changed, 26 insertions, 0 deletions
diff --git a/meta/recipes-extended/man/man-1.6e/man-1.5m2-sigpipe.patch b/meta/recipes-extended/man/man-1.6e/man-1.5m2-sigpipe.patch
new file mode 100644
index 0000000000..81fb2d702a
--- /dev/null
+++ b/meta/recipes-extended/man/man-1.6e/man-1.5m2-sigpipe.patch
@@ -0,0 +1,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;
+ }
+