diff options
author | Richard M. Stallman <rms@gnu.org> | 1996-04-12 06:02:54 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1996-04-12 06:02:54 +0000 |
commit | 032b30332e7f1310aaa1d4a3f887033a184c8498 (patch) | |
tree | e55ce48d95c50fce9ac5ba36df8fce717166c723 | |
parent | 6c009eca4a41be806669030c4868343ccb254400 (diff) | |
download | emacs-032b30332e7f1310aaa1d4a3f887033a184c8498.tar.gz |
(wait_reading_process_input, both definitions):
Don't call detect_input_pending; use detect_input_pending_run_timers.
-rw-r--r-- | src/process.c | 54 |
1 files 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); |