aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/process.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/process.c b/src/process.c
index 9325728ba1b..c68309432b5 100644
--- a/src/process.c
+++ b/src/process.c
@@ -3776,7 +3776,7 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display)
3776 int do_display; 3776 int do_display;
3777{ 3777{
3778 EMACS_TIME end_time, timeout, *timeout_p; 3778 EMACS_TIME end_time, timeout, *timeout_p;
3779 int waitchannels; 3779 SELECT_TYPE waitchannels;
3780 3780
3781 /* What does time_limit really mean? */ 3781 /* What does time_limit really mean? */
3782 if (time_limit || microsecs) 3782 if (time_limit || microsecs)
@@ -3806,7 +3806,10 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display)
3806 { 3806 {
3807 int nfds; 3807 int nfds;
3808 3808
3809 waitchannels = XINT (read_kbd) ? 1 : 0; 3809 if (XINT (read_kbd))
3810 FD_SET (0, &waitchannels);
3811 else
3812 FD_ZERO (&waitchannels);
3810 3813
3811 /* If calling from keyboard input, do not quit 3814 /* If calling from keyboard input, do not quit
3812 since we want to return C-g as an input character. 3815 since we want to return C-g as an input character.
@@ -3849,7 +3852,7 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display)
3849 /* If the system call was interrupted, then go around the 3852 /* If the system call was interrupted, then go around the
3850 loop again. */ 3853 loop again. */
3851 if (errno == EINTR) 3854 if (errno == EINTR)
3852 waitchannels = 0; 3855 FD_ZERO (&waitchannels);
3853 } 3856 }
3854#ifdef sun 3857#ifdef sun
3855 else if (nfds > 0 && (waitchannels & 1) && interrupt_input) 3858 else if (nfds > 0 && (waitchannels & 1) && interrupt_input)