diff options
| author | Kim F. Storm | 2006-07-11 20:09:26 +0000 |
|---|---|---|
| committer | Kim F. Storm | 2006-07-11 20:09:26 +0000 |
| commit | 902b9b6dde55700238923e598e20bce33ed3bca8 (patch) | |
| tree | 5d6ded648a8fcb046b2c81f4c974d8c30344aa82 | |
| parent | 1223933d597a0e5828734b4a3067dc1337171539 (diff) | |
| download | emacs-902b9b6dde55700238923e598e20bce33ed3bca8.tar.gz emacs-902b9b6dde55700238923e598e20bce33ed3bca8.zip | |
(sit_for): Reduce number of args from 5 to 3.
Now just one TIMEOUT arg that can be a Lisp float or Lisp int.
Combine args DISPLAY and INITIAL_DISPLAY into one arg DO_DISPLAY.
Undo 2006-06-14 change for non-preemptive display if TIMEOUT < 0.
The rework of sit_for args also fixes several incorrect Qt args
which should have been 1.
(Fredisplay): Pass 1 instead of Qt to swallow_events and
detect_input_pending_run_timers.
| -rw-r--r-- | src/dispnew.c | 43 |
1 files changed, 28 insertions, 15 deletions
diff --git a/src/dispnew.c b/src/dispnew.c index 90376d05057..3519e2d64fe 100644 --- a/src/dispnew.c +++ b/src/dispnew.c | |||
| @@ -6495,27 +6495,40 @@ Emacs was built without floating point support. | |||
| 6495 | 6495 | ||
| 6496 | 6496 | ||
| 6497 | /* This is just like wait_reading_process_output, except that | 6497 | /* This is just like wait_reading_process_output, except that |
| 6498 | it does redisplay. */ | 6498 | it does redisplay. |
| 6499 | |||
| 6500 | TIMEOUT is number of seconds to wait (float or integer). | ||
| 6501 | READING is 1 if reading input. | ||
| 6502 | If DO_DISPLAY is >0 display process output while waiting. | ||
| 6503 | If DO_DISPLAY is >1 perform an initial redisplay before waiting. | ||
| 6504 | */ | ||
| 6499 | 6505 | ||
| 6500 | Lisp_Object | 6506 | Lisp_Object |
| 6501 | sit_for (sec, usec, reading, display, initial_display) | 6507 | sit_for (timeout, reading, do_display) |
| 6502 | int sec, usec, reading, display, initial_display; | 6508 | Lisp_Object timeout; |
| 6509 | int reading, do_display; | ||
| 6503 | { | 6510 | { |
| 6504 | int preempt = (sec > 0) || (sec == 0 && usec >= 0); | 6511 | int sec, usec; |
| 6505 | 6512 | ||
| 6506 | swallow_events (display); | 6513 | swallow_events (do_display); |
| 6507 | 6514 | ||
| 6508 | if ((detect_input_pending_run_timers (display) && preempt) | 6515 | if ((detect_input_pending_run_timers (do_display)) |
| 6509 | || !NILP (Vexecuting_kbd_macro)) | 6516 | || !NILP (Vexecuting_kbd_macro)) |
| 6510 | return Qnil; | 6517 | return Qnil; |
| 6511 | 6518 | ||
| 6512 | if (initial_display) | 6519 | if (do_display >= 2) |
| 6520 | redisplay_preserve_echo_area (2); | ||
| 6521 | |||
| 6522 | if (FLOATP (timeout)) | ||
| 6523 | { | ||
| 6524 | double seconds = XFLOAT_DATA (timeout); | ||
| 6525 | sec = (int) seconds; | ||
| 6526 | usec = (int) ((seconds - sec) * 1000000); | ||
| 6527 | } | ||
| 6528 | else | ||
| 6513 | { | 6529 | { |
| 6514 | int count = SPECPDL_INDEX (); | 6530 | sec = XFASTINT (timeout); |
| 6515 | if (!preempt) | 6531 | usec = 0; |
| 6516 | specbind (Qredisplay_dont_pause, Qt); | ||
| 6517 | redisplay_preserve_echo_area (2); | ||
| 6518 | unbind_to (count, Qnil); | ||
| 6519 | } | 6532 | } |
| 6520 | 6533 | ||
| 6521 | if (sec == 0 && usec == 0) | 6534 | if (sec == 0 && usec == 0) |
| @@ -6525,7 +6538,7 @@ sit_for (sec, usec, reading, display, initial_display) | |||
| 6525 | gobble_input (0); | 6538 | gobble_input (0); |
| 6526 | #endif | 6539 | #endif |
| 6527 | 6540 | ||
| 6528 | wait_reading_process_output (sec, usec, reading ? -1 : 1, display, | 6541 | wait_reading_process_output (sec, usec, reading ? -1 : 1, do_display, |
| 6529 | Qnil, NULL, 0); | 6542 | Qnil, NULL, 0); |
| 6530 | 6543 | ||
| 6531 | return detect_input_pending () ? Qnil : Qt; | 6544 | return detect_input_pending () ? Qnil : Qt; |
| @@ -6541,8 +6554,8 @@ perform a full redisplay even if input is available. */) | |||
| 6541 | { | 6554 | { |
| 6542 | int count; | 6555 | int count; |
| 6543 | 6556 | ||
| 6544 | swallow_events (Qt); | 6557 | swallow_events (1); |
| 6545 | if ((detect_input_pending_run_timers (Qt) | 6558 | if ((detect_input_pending_run_timers (1) |
| 6546 | && NILP (force) && !redisplay_dont_pause) | 6559 | && NILP (force) && !redisplay_dont_pause) |
| 6547 | || !NILP (Vexecuting_kbd_macro)) | 6560 | || !NILP (Vexecuting_kbd_macro)) |
| 6548 | return Qnil; | 6561 | return Qnil; |