diff options
| author | Karl Heuer | 1996-02-21 21:08:31 +0000 |
|---|---|---|
| committer | Karl Heuer | 1996-02-21 21:08:31 +0000 |
| commit | 6ed6233b68b5d0d9b896a99383d00f3e78c54fad (patch) | |
| tree | 057b5c660ba69d12adf1640b812a8413a5de80bb /src | |
| parent | d9d4c147ce55dab6b824df03632ce439b48c9105 (diff) | |
| download | emacs-6ed6233b68b5d0d9b896a99383d00f3e78c54fad.tar.gz emacs-6ed6233b68b5d0d9b896a99383d00f3e78c54fad.zip | |
(wait_reading_process_input):
Pass new arg to swallow_events.
(wait_reading_process_input): If read_kbd is 1,
use detect_input_pending_run_timers instead of detect_input_pending.
Diffstat (limited to 'src')
| -rw-r--r-- | src/process.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/process.c b/src/process.c index 443da073337..2dd472b463e 100644 --- a/src/process.c +++ b/src/process.c | |||
| @@ -2193,7 +2193,7 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display) | |||
| 2193 | #endif | 2193 | #endif |
| 2194 | } | 2194 | } |
| 2195 | else | 2195 | else |
| 2196 | error("select error: %s", strerror (xerrno)); | 2196 | error ("select error: %s", strerror (xerrno)); |
| 2197 | } | 2197 | } |
| 2198 | #if defined(sun) && !defined(USG5_4) | 2198 | #if defined(sun) && !defined(USG5_4) |
| 2199 | else if (nfds > 0 && keyboard_bit_set (&Available) | 2199 | else if (nfds > 0 && keyboard_bit_set (&Available) |
| @@ -2212,16 +2212,21 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display) | |||
| 2212 | /* If there is any, return immediately | 2212 | /* If there is any, return immediately |
| 2213 | to give it higher priority than subprocesses */ | 2213 | to give it higher priority than subprocesses */ |
| 2214 | 2214 | ||
| 2215 | /* We used to do this if wait_for_cell, | 2215 | if (XINT (read_kbd) < 0 && detect_input_pending ()) |
| 2216 | but that caused infinite recursion in selection request events. */ | ||
| 2217 | if ((XINT (read_kbd) || wait_for_cell) | ||
| 2218 | && detect_input_pending ()) | ||
| 2219 | { | 2216 | { |
| 2220 | swallow_events (); | 2217 | swallow_events (do_display); |
| 2221 | if (detect_input_pending ()) | 2218 | if (detect_input_pending ()) |
| 2222 | break; | 2219 | break; |
| 2223 | } | 2220 | } |
| 2224 | 2221 | ||
| 2222 | if ((XINT (read_kbd) > 0 || wait_for_cell) | ||
| 2223 | && detect_input_pending_run_timers ()) | ||
| 2224 | { | ||
| 2225 | swallow_events (do_display); | ||
| 2226 | if (detect_input_pending_run_timers ()) | ||
| 2227 | break; | ||
| 2228 | } | ||
| 2229 | |||
| 2225 | /* Exit now if the cell we're waiting for became non-nil. */ | 2230 | /* Exit now if the cell we're waiting for became non-nil. */ |
| 2226 | if (wait_for_cell && ! NILP (*wait_for_cell)) | 2231 | if (wait_for_cell && ! NILP (*wait_for_cell)) |
| 2227 | break; | 2232 | break; |