# HG changeset patch # User Kim F. Storm # Date 1152575558 0 # Node ID c6e0c9217129af18f65681571a05247e3486296d # Parent 8837b6008e642055e7a01e667a1518c5686086a3 (Fredisplay): Add FORCE argument to force redisplay when input is available. Fix test for redisplay_dont_pause non-nil. Specbind redisplay-dont-pause to t if FORCE non-nil. diff -r 8837b6008e64 -r c6e0c9217129 src/dispnew.c --- a/src/dispnew.c Mon Jul 10 23:03:59 2006 +0000 +++ b/src/dispnew.c Mon Jul 10 23:52:38 2006 +0000 @@ -6532,19 +6532,26 @@ } -DEFUN ("redisplay", Fredisplay, Sredisplay, 0, 0, 0, - doc: /* Perform redisplay. -If input is available before this starts, redisplay is preempted -unless `redisplay-dont-pause' is non-nil. */) - () +DEFUN ("redisplay", Fredisplay, Sredisplay, 0, 1, 0, + doc: /* Perform redisplay if no input is available. +If optional arg FORCE is non-nil, perform a full redisplay even if +input is available. */) + (force) + Lisp_Object force; { + int count; + swallow_events (Qt); if ((detect_input_pending_run_timers (Qt) - && NILP (Qredisplay_dont_pause)) + && NILP (force) && !redisplay_dont_pause) || !NILP (Vexecuting_kbd_macro)) return Qnil; + count = SPECPDL_INDEX (); + if (!NILP (force) && !redisplay_dont_pause) + specbind (Qredisplay_dont_pause, Qt); redisplay_preserve_echo_area (2); + unbind_to (count, Qnil); return Qt; }