* New primitives `process-hangup' and `pty-master-hangup' support
authorChris Hanson <org/chris-hanson/cph>
Thu, 14 Mar 1991 04:23:26 +0000 (04:23 +0000)
committerChris Hanson <org/chris-hanson/cph>
Thu, 14 Mar 1991 04:23:26 +0000 (04:23 +0000)
  sending of SIGHUP to subprocesses.

* Bug fixes for channel registering and selection.

12 files changed:
v7/src/microcode/osproc.h
v7/src/microcode/osterm.h
v7/src/microcode/prosio.c
v7/src/microcode/prosproc.c
v7/src/microcode/prosterm.c
v7/src/microcode/unxutl/ymkfile
v7/src/microcode/uxio.c
v7/src/microcode/uxproc.c
v7/src/microcode/uxterm.c
v7/src/microcode/version.h
v7/src/microcode/x11base.c
v8/src/microcode/version.h

index cded37efa248c3370281245c6b15e9147734f1bc..5938ffd4774159a0282bb5504fa347060a3b4648 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/osproc.h,v 1.4 1991/03/11 23:42:38 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/osproc.h,v 1.5 1991/03/14 04:22:35 cph Exp $
 
 Copyright (c) 1990-91 Massachusetts Institute of Technology
 
@@ -116,6 +116,7 @@ extern void EXFUN (OS_process_kill, (Tprocess process));
 extern void EXFUN (OS_process_stop, (Tprocess process));
 extern void EXFUN (OS_process_interrupt, (Tprocess process));
 extern void EXFUN (OS_process_quit, (Tprocess process));
+extern void EXFUN (OS_process_hangup, (Tprocess process));
 
 extern void EXFUN (OS_process_continue_background, (Tprocess process));
 extern void EXFUN (OS_process_continue_foreground, (Tprocess process));
index 1884fa778069e21db34fd64751eb8f933b09ce1a..35e151550151aa4f7f4661f251002da9096ed891 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/osterm.h,v 1.6 1991/03/08 01:41:34 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/osterm.h,v 1.7 1991/03/14 04:22:41 cph Exp $
 
 Copyright (c) 1990-91 Massachusetts Institute of Technology
 
@@ -64,5 +64,6 @@ extern void EXFUN (OS_pty_master_stop, (Tchannel channel));
 extern void EXFUN (OS_pty_master_continue, (Tchannel channel));
 extern void EXFUN (OS_pty_master_interrupt, (Tchannel channel));
 extern void EXFUN (OS_pty_master_quit, (Tchannel channel));
+extern void EXFUN (OS_pty_master_hangup, (Tchannel channel));
 
 #endif /* SCM_OSTERM_H */
index 0db50638d35ed96c8e55a9cf653f74ae58ee82b3..c5e4b55d870df33916a3d95afea4c659ca4d2274 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/prosio.c,v 1.5 1991/03/11 23:42:45 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/prosio.c,v 1.6 1991/03/14 04:22:45 cph Exp $
 
 Copyright (c) 1987-91 Massachusetts Institute of Technology
 
@@ -234,7 +234,7 @@ DEFINE_PRIMITIVE ("CHANNEL-UNREGISTER", Prim_channel_unregister, 1, 1,
 DEFINE_PRIMITIVE ("CHANNEL-SELECT-THEN-READ", Prim_channel_select_then_read, 4, 4,
   "Like CHANNEL-READ, but also watches registered input channels.\n\
 If there is no input on CHANNEL, but there is input on some other registered\n\
-channel, this procedure returns #T.")
+channel or some subprocess status changes, this procedure returns #T.")
 {
   PRIMITIVE_HEADER (4);
   CHECK_ARG (2, STRING_P);
index 61d816240fd86025cafd0cb4512c53809ba4110e..6c226d96da8fbc7c44876cba4e451f6f83299173 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/prosproc.c,v 1.7 1991/03/11 23:42:52 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/prosproc.c,v 1.8 1991/03/14 04:22:50 cph Exp $
 
 Copyright (c) 1990-91 Massachusetts Institute of Technology
 
@@ -336,6 +336,10 @@ DEFINE_PRIMITIVE ("PROCESS-QUIT", Prim_process_quit, 1, 1,
   "Sends the quit signal to process PROCESS-NUMBER (unix SIGQUIT).")
      PROCESS_SIGNALLING_PRIMITIVE (OS_process_quit)
 
+DEFINE_PRIMITIVE ("PROCESS-HANGUP", Prim_process_hangup, 1, 1,
+  "Sends the hangup signal to process PROCESS-NUMBER (unix SIGHUP).")
+     PROCESS_SIGNALLING_PRIMITIVE (OS_process_hangup)
+
 DEFINE_PRIMITIVE ("PROCESS-STOP", Prim_process_stop, 1, 1,
   "Stops process PROCESS-NUMBER (unix SIGTSTP).")
      PROCESS_SIGNALLING_PRIMITIVE (OS_process_stop)
index 7de20013583f17ee3e4cbc81ecf05f75b97180f2..359265d1057ad0311301e814f39d5d9ad5804643 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/prosterm.c,v 1.8 1991/03/08 01:41:38 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/prosterm.c,v 1.9 1991/03/14 04:22:54 cph Exp $
 
 Copyright (c) 1990-91 Massachusetts Institute of Technology
 
@@ -49,6 +49,15 @@ DEFUN (arg_terminal, (argument_number), int argument_number)
   return (channel);
 }
 
+static Tchannel
+DEFUN (arg_pty_master, (arg), unsigned int arg)
+{
+  Tchannel channel = (arg_channel (1));
+  if ((OS_channel_type (channel)) != channel_type_pty_master)
+    error_bad_range_arg (1);
+  return (channel);
+}
+
 DEFINE_PRIMITIVE ("TERMINAL-GET-ISPEED", Prim_terminal_get_ispeed, 1, 1, 0)
 {
   PRIMITIVE_HEADER (1);
@@ -81,12 +90,6 @@ DEFINE_PRIMITIVE ("BAUD-RATE->INDEX", Prim_baud_rate_to_index, 1, 1, 0)
   }
 }
 
-DEFINE_PRIMITIVE ("OS-JOB-CONTROL?", Prim_os_job_control_p, 0, 0, 0)
-{
-  PRIMITIVE_HEADER (0);
-  PRIMITIVE_RETURN (BOOLEAN_TO_OBJECT (OS_job_control_p ()));
-}
-\f
 DEFINE_PRIMITIVE ("TERMINAL-GET-STATE", Prim_terminal_get_state, 1, 1, 0)
 {
   PRIMITIVE_HEADER (1);
@@ -109,7 +112,7 @@ DEFINE_PRIMITIVE ("TERMINAL-SET-STATE", Prim_terminal_set_state, 2, 2, 0)
   }
   PRIMITIVE_RETURN (UNSPECIFIC);
 }
-
+\f
 DEFINE_PRIMITIVE ("TERMINAL-COOKED-OUTPUT?", Prim_terminal_cooked_output_p, 1, 1,
   "Return #F iff TERMINAL is not in cooked output mode.")
 {
@@ -133,7 +136,7 @@ DEFINE_PRIMITIVE ("TERMINAL-COOKED-OUTPUT", Prim_terminal_cooked_output, 1, 1,
   OS_terminal_cooked_output (arg_terminal (1));
   PRIMITIVE_RETURN (UNSPECIFIC);
 }
-\f
+
 DEFINE_PRIMITIVE ("TERMINAL-BUFFERED?", Prim_terminal_buffered_p, 1, 1,
   "Return #F iff TERMINAL is not in buffered mode.")
 {
@@ -181,6 +184,12 @@ DEFINE_PRIMITIVE ("TERMINAL-DRAIN-OUTPUT", Prim_terminal_drain_output, 1, 1,
   OS_terminal_drain_output (arg_terminal (1));
   PRIMITIVE_RETURN (UNSPECIFIC);
 }
+
+DEFINE_PRIMITIVE ("OS-JOB-CONTROL?", Prim_os_job_control_p, 0, 0, 0)
+{
+  PRIMITIVE_HEADER (0);
+  PRIMITIVE_RETURN (BOOLEAN_TO_OBJECT (OS_job_control_p ()));
+}
 \f
 DEFINE_PRIMITIVE ("HAVE-PTYS?", Prim_have_ptys_p, 0, 0, 0)
 {
@@ -211,15 +220,6 @@ Returns a vector #(CHANNEL MASTER-NAME SLAVE-NAME).")
   }
 }
 
-static Tchannel
-DEFUN (arg_pty_master, (arg), unsigned int arg)
-{
-  Tchannel channel = (arg_channel (1));
-  if ((OS_channel_type (channel)) != channel_type_pty_master)
-    error_bad_range_arg (1);
-  return (channel);
-}
-
 DEFINE_PRIMITIVE ("PTY-MASTER-SEND-SIGNAL", Prim_pty_master_send_signal, 2, 2,
   "Send a signal to PTY-MASTER; second arg says which one.")
 {
@@ -263,3 +263,10 @@ DEFINE_PRIMITIVE ("PTY-MASTER-QUIT", Prim_pty_master_quit, 1, 1, 0)
   OS_pty_master_quit (arg_pty_master (1));
   PRIMITIVE_RETURN (UNSPECIFIC);
 }
+
+DEFINE_PRIMITIVE ("PTY-MASTER-HANGUP", Prim_pty_master_hangup, 1, 1, 0)
+{
+  PRIMITIVE_HEADER (1);
+  OS_pty_master_hangup (arg_pty_master (1));
+  PRIMITIVE_RETURN (UNSPECIFIC);
+}
index 0f42de8ea1127340d464a1adb16924a4e7e35425..9b693771801749ab3e35d8d43b133205e5cf35ab 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/unxutl/Attic/ymkfile,v 1.41 1991/02/26 21:33:51 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/unxutl/Attic/ymkfile,v 1.42 1991/03/14 04:23:26 cph Exp $
 
 Copyright (c) 1989-91 Massachusetts Institute of Technology
 
@@ -626,7 +626,7 @@ dmpwrld.o : scheme.touch prims.h ux.h osfs.h \
        unexec.c unexhp9k800.c getpagesize.h
 
 x11base.o x11graph.o x11term.o starbasex.o : scheme.touch prims.h x11.h
-x11base.o : ux.h
+x11base.o : ux.h osio.h uxselect.h
 starbase.o : scheme.touch prims.h
 
 Sgraph.o Sgraph_xt.o SgX.o : scheme.touch prims.h Sgraph.h
@@ -652,7 +652,7 @@ uxctty.o : osctty.h
 uxenv.o : osenv.h
 uxfile.o : osfile.h osio.h uxio.h
 uxfs.o : osfs.h
-uxio.o : osio.h uxio.h
+uxio.o : osio.h uxio.h uxselect.h
 uxproc.o : osproc.h uxproc.h osio.h uxio.h osterm.h
 uxsig.o : ossig.h osctty.h ostty.h uxtrap.h uxutil.h critsec.h
 uxsock.o : uxsock.h osio.h uxio.h
index b550e9bbd27235d00b2000e3eee16938eacdccc4..4adf38fd9bac8e464b145056cfe7bfb61c5b6b09 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/uxio.c,v 1.10 1991/03/11 23:43:02 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/uxio.c,v 1.11 1991/03/14 04:22:59 cph Exp $
 
 Copyright (c) 1990-91 Massachusetts Institute of Technology
 
@@ -34,6 +34,7 @@ MIT in each case. */
 
 #include "ux.h"
 #include "uxio.h"
+#include "uxselect.h"
 \f
 size_t OS_channel_table_size;
 struct channel * channel_table;
@@ -123,7 +124,8 @@ DEFUN (OS_channel_close, (channel), Tchannel channel)
 {
   if (! (CHANNEL_INTERNAL (channel)))
     {
-      OS_channel_unregister (channel);
+      if (CHANNEL_REGISTERED (channel))
+       OS_channel_unregister (channel);
       STD_VOID_SYSTEM_CALL
        (syscall_close, (UX_close (CHANNEL_DESCRIPTOR (channel))));
       MARK_CHANNEL_CLOSED (channel);
@@ -135,7 +137,8 @@ DEFUN (OS_channel_close_noerror, (channel), Tchannel channel)
 {
   if (! (CHANNEL_INTERNAL (channel)))
     {
-      OS_channel_unregister (channel);
+      if (CHANNEL_REGISTERED (channel))
+       OS_channel_unregister (channel);
       UX_close (CHANNEL_DESCRIPTOR (channel));
       MARK_CHANNEL_CLOSED (channel);
     }
@@ -355,21 +358,43 @@ DEFUN (OS_channel_unregister, (channel), Tchannel channel)
       (CHANNEL_REGISTERED (channel)) = 0;
     }
 }
-
-int
+\f
+enum select_input
 DEFUN (UX_select_input, (fd, blockp), int fd AND int blockp)
 {
 #ifdef HAVE_SELECT
+  extern int EXFUN (UX_process_any_status_change, (void));
+  int status_change_p;
   int nfds;
   SELECT_TYPE readable = input_descriptors;
   FD_SET (fd, (&readable));
-  STD_UINT_SYSTEM_CALL
-    (syscall_select,
-     nfds,
-     (select (FD_SETSIZE, (&readable), 0, 0, (blockp ? 0 : (&zero_timeout)))));
-  return ((nfds > 0) && (! (FD_ISSET (fd, (&readable)))));
+  while (1)
+    {
+      status_change_p = 0;
+      INTERRUPTABLE_EXTENT
+       (nfds,
+        ((status_change_p = (UX_process_any_status_change ()))
+         ? ((errno = EINTR), (-1))
+         : (select (FD_SETSIZE, (&readable), 0, 0,
+                    (blockp ? 0 : (&zero_timeout))))));
+      if (nfds > 0)
+       return
+         ((FD_ISSET (fd, (&readable)))
+          ? select_input_argument
+          : select_input_other);
+      else if (nfds == 0)
+       {
+         if (!blockp)
+           return (select_input_none);
+       }
+      else if (errno != EINTR)
+       error_system_call (errno, syscall_select);
+      else if (status_change_p)
+       return (select_input_process_status);
+      deliver_pending_interrupts ();
+    }
 #else
-  return (0);
+  return (select_input_argument);
 #endif
 }
 
@@ -380,10 +405,16 @@ DEFUN (OS_channel_select_then_read, (channel, buffer, nbytes),
        size_t nbytes)
 {
 #ifdef HAVE_SELECT
-  if ((OS_channels_registered > ((CHANNEL_REGISTERED (channel)) ? 1 : 0))
-      && (UX_select_input ((CHANNEL_DESCRIPTOR (channel)),
-                          (CHANNEL_NONBLOCKING (channel)))))
-    return (-2);
+  if (OS_channels_registered > ((CHANNEL_REGISTERED (channel)) ? 1 : 0))
+    switch (UX_select_input ((CHANNEL_DESCRIPTOR (channel)),
+                            (! (CHANNEL_NONBLOCKING (channel)))))
+      {
+      case select_input_none:
+       return (-1);
+      case select_input_other:
+      case select_input_process_status:
+       return (-2);
+      }
 #endif
   return (OS_channel_read (channel, buffer, nbytes));
 }
index 53b71b159c42d0e07590ba0773f28164b0adca41..92fea1d84d15c4510efe54b718fe0e3f5578efdd 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/uxproc.c,v 1.9 1991/03/11 23:43:12 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/uxproc.c,v 1.10 1991/03/14 04:23:03 cph Exp $
 
 Copyright (c) 1990-91 Massachusetts Institute of Technology
 
@@ -422,7 +422,7 @@ DEFUN (OS_make_subprocess,
  kill_child:
   _exit (1);
 }
-\f
+
 #define DEFUN_PROCESS_ACCESSOR(name, result_type, accessor)            \
 result_type                                                            \
 DEFUN (name, (process), Tprocess process)                              \
@@ -435,7 +435,7 @@ DEFUN_PROCESS_ACCESSOR (OS_process_status, enum process_status, PROCESS_STATUS)
 DEFUN_PROCESS_ACCESSOR (OS_process_reason, unsigned short, PROCESS_REASON)
 DEFUN_PROCESS_ACCESSOR
   (OS_process_jc_status, enum process_jc_status, PROCESS_JC_STATUS)
-
+\f
 int
 DEFUN (OS_process_valid_p, (process), Tprocess process)
 {
@@ -502,6 +502,12 @@ DEFUN_VOID (OS_process_status_sync_all)
     return (result);
   }
 }
+
+int
+DEFUN_VOID (UX_process_any_status_change)
+{
+  return (process_tick != sync_tick);
+}
 \f
 void
 DEFUN (OS_process_send_signal, (process, sig), Tprocess process AND int sig)
@@ -538,6 +544,12 @@ DEFUN (OS_process_quit, (process), Tprocess process)
   OS_process_send_signal (process, SIGQUIT);
 }
 
+void
+DEFUN (OS_process_hangup, (process), Tprocess process)
+{
+  OS_process_send_signal (process, SIGHUP);
+}
+
 void
 DEFUN (OS_process_continue_background, (process), Tprocess process)
 {
index cdcaf3ae16abbf93bd10a4b33b6e64ca22155abf..591ac6d0708e6fbacdb2a3cce9dff8bb4647cef6 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/uxterm.c,v 1.12 1991/03/08 01:41:42 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/uxterm.c,v 1.13 1991/03/14 04:23:08 cph Exp $
 
 Copyright (c) 1990-1 Massachusetts Institute of Technology
 
@@ -550,7 +550,7 @@ DEFUN (OS_open_pty_master, (master_fd, master_fname),
   error_external_return ();
   return (0);
 }
-
+\f
 void
 DEFUN (OS_pty_master_send_signal, (channel, sig), Tchannel channel AND int sig)
 {
@@ -624,3 +624,9 @@ DEFUN (OS_pty_master_quit, (channel), Tchannel channel)
 {
   OS_pty_master_send_signal (channel, SIGQUIT);
 }
+
+void
+DEFUN (OS_pty_master_hangup, (channel), Tchannel channel)
+{
+  OS_pty_master_send_signal (channel, SIGHUP);
+}
index dda3e2a28fa96dfde28827d03ea61608ccef73f0..7c556fa6790ad8ae33e6eede0d73236b06804291 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/Attic/version.h,v 11.67 1991/03/11 23:43:21 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/Attic/version.h,v 11.68 1991/03/14 04:23:15 cph Exp $
 
 Copyright (c) 1988-91 Massachusetts Institute of Technology
 
@@ -46,5 +46,5 @@ MIT in each case. */
 #define VERSION                11
 #endif
 #ifndef SUBVERSION
-#define SUBVERSION     67
+#define SUBVERSION     68
 #endif
index 08b2f686b3c0d245d4ab6cbc7e0244ead55a6412..88bb21935efb40fcd1b0630ff4ac37431ec28d04 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/x11base.c,v 1.16 1991/03/11 23:43:28 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/microcode/x11base.c,v 1.17 1991/03/14 04:23:20 cph Exp $
 
 Copyright (c) 1989-91 Massachusetts Institute of Technology
 
@@ -37,6 +37,8 @@ MIT in each case. */
 #include "scheme.h"
 #include "prims.h"
 #include "ux.h"
+#include "osio.h"
+#include "uxselect.h"
 #include "x11.h"
 
 int x_debug = 0;
@@ -699,8 +701,8 @@ DEFUN (x_event_to_object, (event), XEvent * event)
    entry that reads events -- or else that all other event readers
    cooperate with this strategy.  */
 
-extern unsigned int OS_channels_registered;
-extern int EXFUN (UX_select_input, (int fd, int blockp));
+/* The time_limit argument is currently ignored, because Edwin doesn't
+   use it.  */
 
 static SCHEME_OBJECT
 DEFUN (xd_process_events, (xd, time_limit_p, time_limit),
@@ -708,38 +710,38 @@ DEFUN (xd_process_events, (xd, time_limit_p, time_limit),
        int time_limit_p AND
        unsigned long time_limit)
 {
-  unsigned int events_queued = 0;
   Display * display = (XD_DISPLAY (xd));
+  int do_select = (OS_channels_registered > 0);
+  unsigned int events_queued;
   if (XD_CACHED_EVENT_P (xd))
-    goto restart;
+    {
+      events_queued = (XEventsQueued (display, QueuedAlready));
+      goto restart;
+    }
+  events_queued =
+    (do_select ? (XEventsQueued (display, QueuedAlready))
+     : time_limit_p ? (XEventsQueued (display, QueuedAfterReading))
+     : 0);
   while (1)
     {
-      extern unsigned long EXFUN (OS_real_time_clock, (void));
       XEvent event;
-      if (time_limit_p || (OS_channels_registered > 0))
-       {
-         if (events_queued > 0)
-           events_queued -= 1;
-         else
-           while (1)
-             {
-               events_queued = (XEventsQueued (display, QueuedAfterReading));
-               if (events_queued > 0)
-                 {
-                   events_queued -= 1;
-                   break;
-                 }
-               if (time_limit_p && ((OS_real_time_clock ()) >= time_limit))
-                 return (SHARP_F);
-               if (UX_select_input ((ConnectionNumber (display)),
-                                    (!time_limit_p)))
-                 /* No input is available from the display, but some
-                    other registered input channel has input.  Return a
-                    special value immediately so that input can be
-                    processed.  */
-                 return (SHARP_T);
-             }
-       }
+      if (events_queued > 0)
+       events_queued -= 1;
+      else if (do_select)
+       switch (UX_select_input ((ConnectionNumber (display)),
+                                (!time_limit_p)))
+         {
+         case select_input_none:
+           return (SHARP_F);
+         case select_input_other:
+         case select_input_process_status:
+           return (SHARP_T);
+         case select_input_argument:
+           events_queued = (XEventsQueued (display, QueuedAfterReading));
+           continue;
+         }
+      else if (time_limit_p)
+       return (SHARP_F);
       XNextEvent (display, (&event));
       if ((event . type) == KeymapNotify)
        continue;
index 15b63b0b3c9eb58b4aa6554d798929e3472bf65b..5f8a8e1341490662090afab248a73455804e46c9 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/microcode/version.h,v 11.67 1991/03/11 23:43:21 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/microcode/version.h,v 11.68 1991/03/14 04:23:15 cph Exp $
 
 Copyright (c) 1988-91 Massachusetts Institute of Technology
 
@@ -46,5 +46,5 @@ MIT in each case. */
 #define VERSION                11
 #endif
 #ifndef SUBVERSION
-#define SUBVERSION     67
+#define SUBVERSION     68
 #endif