From 3d6163992d1b84d9faed1b2053832f01adb2b516 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Fri, 12 Apr 1996 06:02:54 +0000 Subject: [PATCH] (wait_reading_process_input, both definitions): Don't call detect_input_pending; use detect_input_pending_run_timers. --- src/process.c | 54 ++++++++++++++++++++++++--------------------------- 1 file changed, 25 insertions(+), 29 deletions(-) diff --git a/src/process.c b/src/process.c index 81443094818..09d262f0c6f 100644 --- a/src/process.c +++ b/src/process.c @@ -2174,14 +2174,19 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display) set_waiting_for_input (&timeout); } - if (XINT (read_kbd) && detect_input_pending ()) - { - nfds = 0; - FD_ZERO (&Available); - } - else - nfds = select (MAXDESC, &Available, (SELECT_TYPE *)0, (SELECT_TYPE *)0, - &timeout); + { + int old_timers_run = timers_run; + if (XINT (read_kbd) && detect_input_pending_run_timers (do_display)) + { + nfds = 0; + FD_ZERO (&Available); + } + else if (timers_run != old_timers_run) + ; + else + nfds = select (MAXDESC, &Available, (SELECT_TYPE *)0, (SELECT_TYPE *)0, + &timeout); + } xerrno = errno; @@ -2248,14 +2253,7 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display) /* If there is any, return immediately to give it higher priority than subprocesses */ - if (XINT (read_kbd) < 0 && detect_input_pending ()) - { - swallow_events (do_display); - if (detect_input_pending ()) - break; - } - - if ((XINT (read_kbd) > 0 || wait_for_cell) + if ((XINT (read_kbd) != 0 || wait_for_cell) && detect_input_pending_run_timers (do_display)) { swallow_events (do_display); @@ -3930,11 +3928,16 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display) if (frame_garbaged && do_display) redisplay_preserve_echo_area (); - if (XINT (read_kbd) && detect_input_pending ()) - nfds = 0; - else - nfds = select (1, &waitchannels, (SELECT_TYPE *)0, (SELECT_TYPE *)0, - &timeout); + { + int old_timers_run = timers_run; + if (XINT (read_kbd) && detect_input_pending_run_timers (do_display)) + nfds = 0; + else if (timers_run != old_timers_run) + ; + else + nfds = select (1, &waitchannels, (SELECT_TYPE *)0, (SELECT_TYPE *)0, + &timeout); + } xerrno = errno; @@ -3969,14 +3972,7 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display) /* Check for keyboard input */ - if (XINT (read_kbd) < 0 && detect_input_pending ()) - { - swallow_events (do_display); - if (detect_input_pending ()) - break; - } - - if (XINT (read_kbd) > 0 + if (XINT (read_kbd) != 0 && detect_input_pending_run_timers (do_display)) { swallow_events (do_display); -- 2.39.2