changeset 14998:ffbd85603f91

(wait_reading_process_input, both definitions): Don't call detect_input_pending; use detect_input_pending_run_timers.
author Richard M. Stallman <rms@gnu.org>
date Fri, 12 Apr 1996 06:02:54 +0000
parents 51a773474d47
children 3bafb8029b86
files src/process.c
diffstat 1 files changed, 25 insertions(+), 29 deletions(-) [+]
line wrap: on
line diff
--- a/src/process.c	Fri Apr 12 06:01:29 1996 +0000
+++ b/src/process.c	Fri Apr 12 06:02:54 1996 +0000
@@ -2174,14 +2174,19 @@
 	    set_waiting_for_input (&timeout);
 	}
 
-      if (XINT (read_kbd) && detect_input_pending ())
-	{
-	  nfds = 0;
-	  FD_ZERO (&Available);
-	}
-      else
-	nfds = select (MAXDESC, &Available, (SELECT_TYPE *)0, (SELECT_TYPE *)0,
-		       &timeout);
+      {
+	int old_timers_run = timers_run;
+	if (XINT (read_kbd) && detect_input_pending_run_timers (do_display))
+	  {
+	    nfds = 0;
+	    FD_ZERO (&Available);
+	  }
+	else if (timers_run != old_timers_run)
+	  ;
+	else
+	  nfds = select (MAXDESC, &Available, (SELECT_TYPE *)0, (SELECT_TYPE *)0,
+			 &timeout);
+      }
 
       xerrno = errno;
 
@@ -2248,14 +2253,7 @@
       /* If there is any, return immediately
 	 to give it higher priority than subprocesses */
 
-      if (XINT (read_kbd) < 0 && detect_input_pending ())
-	{
-	  swallow_events (do_display);
-	  if (detect_input_pending ())
-	    break;
-	}
-
-      if ((XINT (read_kbd) > 0 || wait_for_cell)
+      if ((XINT (read_kbd) != 0 || wait_for_cell)
 	  && detect_input_pending_run_timers (do_display))
 	{
 	  swallow_events (do_display);
@@ -3930,11 +3928,16 @@
       if (frame_garbaged && do_display)
 	redisplay_preserve_echo_area ();
 
-      if (XINT (read_kbd) && detect_input_pending ())
-	nfds = 0;
-      else
-	nfds = select (1, &waitchannels, (SELECT_TYPE *)0, (SELECT_TYPE *)0,
-		       &timeout);
+      {
+	int old_timers_run = timers_run;
+	if (XINT (read_kbd) && detect_input_pending_run_timers (do_display))
+	  nfds = 0;
+	else if (timers_run != old_timers_run)
+	  ;
+	else
+	  nfds = select (1, &waitchannels, (SELECT_TYPE *)0, (SELECT_TYPE *)0,
+			 &timeout);
+      }
 
       xerrno = errno;
 
@@ -3969,14 +3972,7 @@
 
       /* Check for keyboard input */
 
-      if (XINT (read_kbd) < 0 && detect_input_pending ())
-	{
-	  swallow_events (do_display);
-	  if (detect_input_pending ())
-	    break;
-	}
-
-      if (XINT (read_kbd) > 0
+      if (XINT (read_kbd) != 0
 	  && detect_input_pending_run_timers (do_display))
 	{
 	  swallow_events (do_display);