aboutsummaryrefslogtreecommitdiffstats
path: root/src/process.c
diff options
context:
space:
mode:
authorJim Blandy <[email protected]>1992-04-24 08:11:54 +0000
committerJim Blandy <[email protected]>1992-04-24 08:11:54 +0000
commit4746118aca2d5cbdd054b4af4814d56550dfbc79 (patch)
tree370e07c6950794f936bc8d434cb0560d883e4a0b /src/process.c
parentd4327fecc103493bc8275c3580b05c06c9fcc019 (diff)
*** empty log message ***
Diffstat (limited to 'src/process.c')
-rw-r--r--src/process.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/process.c b/src/process.c
index 1bdc27be91..442cae6d15 100644
--- a/src/process.c
+++ b/src/process.c
@@ -403,7 +403,7 @@ status_message (status)
}
#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 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display)
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 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display)
*/
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 @@ send_process (proc, buf, len)
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