Mercurial > emacs
diff src/process.c @ 621:eca8812e61cd
*** empty log message ***
author | Jim Blandy <jimb@redhat.com> |
---|---|
date | Fri, 24 Apr 1992 08:11:54 +0000 |
parents | 63a8e7b3c547 |
children | 2bb7f23b7ea5 |
line wrap: on
line diff
--- a/src/process.c Fri Apr 24 08:11:28 1992 +0000 +++ b/src/process.c Fri Apr 24 08:11:54 1992 +0000 @@ -403,7 +403,7 @@ } #ifdef HAVE_PTYS -static pty_process; +static int pty_process; /* Open an available pty, returning a file descriptor. Return -1 on failure. @@ -1803,6 +1803,7 @@ if (read_kbd && detect_input_pending ()) break; +#ifdef SIGIO /* If we think we have keyboard input waiting, but didn't get SIGIO go read it. This can happen with X on BSD after logging out. In that case, there really is no input and no SIGIO, @@ -1813,6 +1814,7 @@ */ if (read_kbd && interrupt_input && (FD_ISSET (fileno (stdin), &Available))) kill (0, SIGIO); +#endif #ifdef vipc /* Check for connection from other process */ @@ -2106,12 +2108,14 @@ while (len > 0) { int this = len; + SIGTYPE (*old_sigpipe)(); + /* Don't send more than 500 bytes at a time. */ if (this > 500) this = 500; - signal (SIGPIPE, send_process_trap); + old_sigpipe = signal (SIGPIPE, send_process_trap); rv = write (XFASTINT (XPROCESS (proc)->outfd), buf, this); - signal (SIGPIPE, SIG_DFL); + signal (SIGPIPE, old_sigpipe); if (rv < 0) { if (0