(send_process): Restore the SIGPIPE handler if we catch a SIGPIPE.
authorEli Zaretskii <eliz@gnu.org>
Sat, 21 May 2005 11:58:49 +0000 (11:58 +0000)
committerEli Zaretskii <eliz@gnu.org>
Sat, 21 May 2005 11:58:49 +0000 (11:58 +0000)
src/process.c

index aad9e70..db7d935 100644 (file)
@@ -5134,6 +5134,7 @@ send_process (proc, buf, len, object)
   int rv;
   struct coding_system *coding;
   struct gcpro gcpro1;
+  volatile SIGTYPE (*old_sigpipe)();
 
   GCPRO1 (object);
 
@@ -5258,7 +5259,6 @@ send_process (proc, buf, len, object)
       while (len > 0)
        {
          int this = len;
-         SIGTYPE (*old_sigpipe)();
 
          /* Decide how much data we can send in one batch.
             Long lines need to be split into multiple batches.  */
@@ -5401,6 +5401,7 @@ send_process (proc, buf, len, object)
 #endif /* not VMS */
   else
     {
+      signal (SIGPIPE, old_sigpipe);
 #ifndef VMS
       proc = process_sent_to;
       p = XPROCESS (proc);