changeset 56454:1e0c70660fff

(not_single_kboard_state): New function. (stuff_buffered_input): Now no-op only if no SIGTSTP.
author Richard M. Stallman <rms@gnu.org>
date Sat, 17 Jul 2004 14:50:58 +0000
parents b8b142a8e2c6
children 66c2afb52fc1
files src/keyboard.c
diffstat 1 files changed, 17 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/keyboard.c	Sat Jul 17 14:45:01 2004 +0000
+++ b/src/keyboard.c	Sat Jul 17 14:50:58 2004 +0000
@@ -1089,6 +1089,17 @@
 #endif
 }
 
+/* If we're in single_kboard state for kboard KBOARD,
+   get out of it.  */
+
+void
+not_single_kboard_state (kboard)
+     KBOARD *kboard;
+{
+  if (kboard == current_kboard)
+    single_kboard = 0;
+}
+
 /* Maintain a stack of kboards, so other parts of Emacs
    can switch temporarily to the kboard of a given frame
    and then revert to the previous status.  */
@@ -10175,9 +10186,7 @@
 stuff_buffered_input (stuffstring)
      Lisp_Object stuffstring;
 {
-/* stuff_char works only in BSD, versions 4.2 and up.  */
-#ifdef BSD_SYSTEM
-#ifndef BSD4_1
+#ifdef SIGTSTP  /* stuff_char is defined if SIGTSTP.  */
   register unsigned char *p;
 
   if (STRINGP (stuffstring))
@@ -10193,7 +10202,10 @@
 
   /* Anything we have read ahead, put back for the shell to read.  */
   /* ?? What should this do when we have multiple keyboards??
-     Should we ignore anything that was typed in at the "wrong" kboard?  */
+     Should we ignore anything that was typed in at the "wrong" kboard?
+     
+     rms: we should stuff everything back into the kboard
+     it came from.  */
   for (; kbd_fetch_ptr != kbd_store_ptr; kbd_fetch_ptr++)
     {
 
@@ -10206,8 +10218,7 @@
     }
 
   input_pending = 0;
-#endif
-#endif /* BSD_SYSTEM and not BSD4_1 */
+#endif /* SIGTSTP */
 }
 
 void