changeset 4952:0c973730e476

(read_input_waiting): Don't mess with meta bit if read_socket_hook is nonzero. (LPASS8, LNOFLSH): Move definitions earlier. (child_setup_tty): Turn on LPASS8.
author Richard M. Stallman <rms@gnu.org>
date Wed, 10 Nov 1993 08:30:22 +0000
parents be690aaa7194
children 7545290052bf
files src/sysdep.c
diffstat 1 files changed, 20 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/src/sysdep.c	Wed Nov 10 08:29:34 1993 +0000
+++ b/src/sysdep.c	Wed Nov 10 08:30:22 1993 +0000
@@ -155,6 +155,15 @@
 #include "syssignal.h"
 #include "systime.h"
 
+/* LPASS8 is new in 4.3, and makes cbreak mode provide all 8 bits.  */
+#ifndef LPASS8
+#define LPASS8 0
+#endif
+
+#ifdef BSD4_1
+#define LNOFLSH 0100000
+#endif
+
 static int baud_convert[] =
 #ifdef BAUD_CONVERT
   BAUD_CONVERT;
@@ -496,6 +505,7 @@
 
   s.main.sg_flags &= ~(ECHO | CRMOD | ANYP | ALLDELAY | RAW | LCASE
 		       | CBREAK | TANDEM);
+  s.main.sg_flags |= LPASS8;
   s.main.sg_erase = 0377;
   s.main.sg_kill = 0377;
   s.lmode = LLITOUT | s.lmode;        /* Don't strip 8th bit */
@@ -1172,15 +1182,6 @@
 	  tty.tchars.t_stopc = '\023';
 	}
 
-/* LPASS8 is new in 4.3, and makes cbreak mode provide all 8 bits.  */
-#ifndef LPASS8
-#define LPASS8 0
-#endif
-
-#ifdef BSD4_1
-#define LNOFLSH 0100000
-#endif
-
       tty.lmode = LDECCTQ | LLITOUT | LPASS8 | LNOFLSH | old_tty.lmode;
 #ifdef ultrix
       /* Under Ultrix 4.2a, leaving this out doesn't seem to hurt
@@ -2118,11 +2119,16 @@
   e.modifiers = 0;
   for (i = 0; i < nread; i++)
     {
-      /* If the user says she has a meta key, then believe her. */
-      if (meta_key == 1 && (buf[i] & 0x80))
-	e.modifiers = meta_modifier;
-      if (meta_key != 2)
-	buf[i] &= ~0x80;
+      /* Convert chars > 0177 to meta events if desired.
+	 We do this under the same conditions that read_avail_input does.  */
+      if (read_socket_hook == 0)
+	{
+	  /* If the user says she has a meta key, then believe her. */
+	  if (meta_key == 1 && (buf[i] & 0x80))
+	    e.modifiers = meta_modifier;
+	  if (meta_key != 2)
+	    buf[i] &= ~0x80;
+	}
 
       XSET (e.code, Lisp_Int, buf[i]);
       kbd_buffer_store_event (&e);