diff src/event-msw.c @ 406:b8cc9ab3f761 r21-2-33

Import from CVS: tag r21-2-33
author cvs
date Mon, 13 Aug 2007 11:17:09 +0200
parents 2f8bb876ab1d
children 501cfd01ee6d
line wrap: on
line diff
--- a/src/event-msw.c	Mon Aug 13 11:16:09 2007 +0200
+++ b/src/event-msw.c	Mon Aug 13 11:17:09 2007 +0200
@@ -870,7 +870,7 @@
 /*
  * Add an emacs event to the proper dispatch queue
  */
-static void
+void
 mswindows_enqueue_dispatch_event (Lisp_Object event)
 {
   int user_p = mswindows_user_event_p (XEVENT(event));
@@ -1472,9 +1472,21 @@
 	      mswindows_waitable_handles [ix] =
 		mswindows_waitable_handles [--mswindows_waitable_count];
 	      kick_status_notify ();
-	      /* Have to return something: there may be no accompanying
-		 process event */
-	      mswindows_enqueue_magic_event (NULL, XM_BUMPQUEUE);
+	      /* We need to return a process event here so that
+		 (1) accept-process-output will return when called on this
+		 process, and (2) status notifications will happen in
+		 accept-process-output, sleep-for, and sit-for. */
+	      /* #### horrible kludge till my real process fixes go in.
+	       */
+	      if (!NILP (Vprocess_list))
+		{
+		  Lisp_Object vaffanculo = XCAR (Vprocess_list);
+		  mswindows_enqueue_process_event (XPROCESS (vaffanculo));
+		}
+	      else /* trash me soon. */
+		/* Have to return something: there may be no accompanying
+		   process event */
+		mswindows_enqueue_magic_event (NULL, XM_BUMPQUEUE);
 	    }
 	}
 #endif