changeset 54169:8b5313e6b324

(w32_console_read_socket): Remove bufp_r and numcharsp args. Add hold_quit arg. Rework to use just one, local, inev input_event. Store inev directly in fifo using kbd_buffer_store_event_hold.
author Kim F. Storm <storm@cua.dk>
date Fri, 27 Feb 2004 23:48:59 +0000
parents 0827d50296b5
children 9f3ff0d515be
files src/w32inevt.c
diffstat 1 files changed, 14 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/src/w32inevt.c	Fri Feb 27 23:48:49 2004 +0000
+++ b/src/w32inevt.c	Fri Feb 27 23:48:59 2004 +0000
@@ -642,8 +642,7 @@
 }
 
 int
-w32_console_read_socket (int sd, struct input_event *bufp, int numchars,
-			 int expected)
+w32_console_read_socket (int sd, int expected, struct input_event *hold_quit)
 {
   BOOL no_events = TRUE;
   int nev, ret = 0, add;
@@ -670,27 +669,31 @@
 	  return nev;
         }
 
-      while (nev > 0 && numchars > 0)
+      while (nev > 0)
         {
+	  struct input_event inev;
+
+	  EVENT_INIT (inev);
+	  inev.kind = NO_EVENT;
+	  inev.arg = Qnil;
+
 	  switch (queue_ptr->EventType)
             {
             case KEY_EVENT:
-	      add = key_event (&queue_ptr->Event.KeyEvent, bufp, &isdead);
+	      add = key_event (&queue_ptr->Event.KeyEvent, &inev, &isdead);
 	      if (add == -1) /* 95.7.25 by himi */
 		{
 		  queue_ptr--;
 		  add = 1;
 		}
-	      bufp += add;
-	      ret += add;
-	      numchars -= add;
+	      if (add)
+		kbd_buffer_store_event_hold (&inev, hold_quit);
 	      break;
 
             case MOUSE_EVENT:
-	      add = do_mouse_event (&queue_ptr->Event.MouseEvent, bufp);
-	      bufp += add;
-	      ret += add;
-	      numchars -= add;
+	      add = do_mouse_event (&queue_ptr->Event.MouseEvent, &inev);
+	      if (add)
+		kbd_buffer_store_event_hold (&inev, hold_quit);
 	      break;
 
             case WINDOW_BUFFER_SIZE_EVENT: