+# func_reset_sigpipe
+# Resets SIGPIPE to its default behaviour. SIGPIPE is signalled when a process
+# writes into a pipe with no readers, i.e. a pipe where all readers have
+# already closed their file descriptor that read from it or exited entirely.
+# The default behaviour is to terminate the current process without an error
+# message.
+# When "trap '' SIGPIPE" is in effect, the behaviour (at least with bash) is to
+# terminate the current process with an error message.
+# This function should be called at the beginning of a command that only
+# produces output to stdout (i.e. no side effects!), when the command that
+# will read from this pipe might prematurely exit or close its standard input
+# descriptor.
+if test -n "$BASH_VERSION"; then
+ # The problem has only been reported with bash.
+ # Note that Solaris sh does not understand "trap - SIGPIPE".
+ func_reset_sigpipe ()
+ {
+ trap - SIGPIPE
+ }
+else
+ func_reset_sigpipe ()
+ {
+ :
+ }
+fi
+