]> git.eshelyaron.com Git - emacs.git/commitdiff
(wait_reading_process_input): Check for pending
authorGerd Moellmann <gerd@gnu.org>
Mon, 18 Dec 2000 10:53:51 +0000 (10:53 +0000)
committerGerd Moellmann <gerd@gnu.org>
Mon, 18 Dec 2000 10:53:51 +0000 (10:53 +0000)
input when running timers.

src/process.c

index 1394b6b8b3c194beb0cf6c0a52a1394d36c53668..729dc43e42938d5c038b0587acaa29930494fbef 100644 (file)
@@ -2436,18 +2436,19 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display)
       if (! wait_for_cell)
        {
          EMACS_TIME timer_delay;
-         int old_timers_run;
 
-       retry:
-         old_timers_run = timers_run;
-         timer_delay = timer_check (1);
-         if (timers_run != old_timers_run && do_display)
+         do
            {
-             redisplay_preserve_echo_area ();
-             /* We must retry, since a timer may have requeued itself
-                and that could alter the time_delay.  */
-             goto retry;
+             int old_timers_run = timers_run;
+             timer_delay = timer_check (1);
+             if (timers_run != old_timers_run && do_display)
+               /* We must retry, since a timer may have requeued itself
+                  and that could alter the time_delay.  */
+               redisplay_preserve_echo_area ();
+             else
+               break;
            }
+         while (!detect_input_pending ());
 
          /* If there is unread keyboard input, also return.  */
          if (XINT (read_kbd) != 0
@@ -4785,18 +4786,19 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display)
       if (! wait_for_cell)
        {
          EMACS_TIME timer_delay;
-         int old_timers_run;
 
-       retry:
-         old_timers_run = timers_run;
-         timer_delay = timer_check (1);
-         if (timers_run != old_timers_run && do_display)
+         do
            {
-             redisplay_preserve_echo_area ();
-             /* We must retry, since a timer may have requeued itself
-                and that could alter the time delay.  */
-             goto retry;
+             int old_timers_run = timers_run;
+             timer_delay = timer_check (1);
+             if (timers_run != old_timers_run && do_display)
+               /* We must retry, since a timer may have requeued itself
+                  and that could alter the time delay.  */
+               redisplay_preserve_echo_area ();
+             else
+               break;
            }
+         while (!detect_input_pending ());
 
          /* If there is unread keyboard input, also return.  */
          if (XINT (read_kbd) != 0