# HG changeset patch # User Kim F. Storm # Date 1150236382 0 # Node ID a8cbcce39bd0fa866ebb3132a886abb437879b4c # Parent 09e601998e1316f092814c5279959a48887ed78a (sit_for): Undo 2006-06-01 change. Instead, a negative time forces redisplay even when input is available. (Fsit_for): Doc fix. diff -r 09e601998e13 -r a8cbcce39bd0 src/dispnew.c --- a/src/dispnew.c Tue Jun 13 22:06:10 2006 +0000 +++ b/src/dispnew.c Tue Jun 13 22:06:22 2006 +0000 @@ -6495,15 +6495,22 @@ sit_for (sec, usec, reading, display, initial_display) int sec, usec, reading, display, initial_display; { + int preempt = (sec >= 0) || (sec == 0 && usec >= 0); + swallow_events (display); - if ((detect_input_pending_run_timers (display) - && !redisplay_dont_pause) + if ((detect_input_pending_run_timers (display) && preempt) || !NILP (Vexecuting_kbd_macro)) return Qnil; if (initial_display) - redisplay_preserve_echo_area (2); + { + int count = SPECPDL_INDEX (); + if (!preempt) + specbind (Qredisplay_dont_pause, Qt); + redisplay_preserve_echo_area (2); + unbind_to (count, Qnil); + } if (sec == 0 && usec == 0) return Qt; @@ -6529,8 +6536,7 @@ if input is available before it starts. Value is t if waited the full time with no input arriving. -Redisplay will occur even when input is available if you bind -`redisplay-dont-pause' to a non-nil value. +Redisplay will occur even when input is available if SECONDS is negative. An obsolete but still supported form is \(sit-for SECONDS &optional MILLISECONDS NODISP)