diff src/event-Xt.c @ 3142:77f5a5135b3a

[xemacs-hg @ 2005-12-17 19:46:57 by aidan] Fix self-insert-command with X11 input methods. Addresses Zhang Wei's problem of 871x118lc4.fsf@gmail.com.
author aidan
date Sat, 17 Dec 2005 19:47:03 +0000
parents ad2f4ae9895b
children 4cad7ff4a200
line wrap: on
line diff
--- a/src/event-Xt.c	Fri Dec 16 23:52:23 2005 +0000
+++ b/src/event-Xt.c	Sat Dec 17 19:47:03 2005 +0000
@@ -898,7 +898,16 @@
 	      int j;
 	      stderr_out (" chars=\"");
 	      for (j=0; j<len; j++)
-		stderr_out ("%c", bufptr[j]);
+		{
+		  if (040 <= bufptr[j] && bufptr[j] >= 0177)
+		    {
+		      stderr_out ("%c", bufptr[j]);
+		    }
+		  else
+		    {
+		      stderr_out ("\\%o", (unsigned)(bufptr[j]));
+		    }
+		}
 	      stderr_out ("\"");
 	    }
 	  else if (bufptr[0] <= 32 || bufptr[0] >= 127)
@@ -928,10 +937,18 @@
 
 	fb_instream = make_fixed_buffer_input_stream (bufptr, len);
 
-        /* #### Use get_coding_system_for_text_file (Vcomposed_input_coding_system, 0) */
+        /* [[ Use get_coding_system_for_text_file
+		(Vcomposed_input_coding_system, 0) ]] 
+
+	   Nope. If it is possible for the X libraries to have multiple IM
+	   connections on different DISPLAYs active at once, this should be
+	   a console-specific variable (like a TTY's coding system) but I've
+	   seen no evidence that that is possible. Aidan Kehoe,
+	   2005-12-17. */
+	
 	instream =
 	  make_coding_input_stream
-	    (XLSTREAM (fb_instream), Qundecided, CODING_DECODE, 0);
+	    (XLSTREAM (fb_instream), Qkeyboard, CODING_DECODE, 0);
 
 	istr = XLSTREAM (instream);