changeset 48229:5d4678fa4feb

(command_loop_1): Apply Vtranslation_table_for_input to self-inserting characters. (syms_of_keyboard) <keyboard-translate-table>: Doc fix.
author Dave Love <fx@gnu.org>
date Sat, 09 Nov 2002 12:48:26 +0000
parents 461d780ae946
children c2ce8280fb97
files src/keyboard.c
diffstat 1 files changed, 11 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/keyboard.c	Sat Nov 09 12:46:25 2002 +0000
+++ b/src/keyboard.c	Sat Nov 09 12:48:26 2002 +0000
@@ -412,7 +412,7 @@
 /* Form to evaluate (if non-nil) when Emacs is started.  */
 Lisp_Object Vtop_level;
 
-/* User-supplied string to translate input characters through.  */
+/* User-supplied table to translate input characters.  */
 Lisp_Object Vkeyboard_translate_table;
 
 /* Keymap mapping ASCII function key sequences onto their preferred forms.  */
@@ -598,7 +598,7 @@
 Lisp_Object Qextended_command_history;
 EMACS_TIME timer_check ();
 
-extern Lisp_Object Vhistory_length;
+extern Lisp_Object Vhistory_length, Vtranslation_table_for_input;
 
 extern char *x_get_keysym_name ();
 
@@ -1629,10 +1629,12 @@
 		  goto directly_done;
 		}
 	      else if (EQ (Vthis_command, Qself_insert_command)
-		       /* Try this optimization only on ascii keystrokes.  */
-		       && INTEGERP (last_command_char))
+		       /* Try this optimization only on character keystrokes.  */
+		       && CHAR_VALID_P (last_command_char, 0))
 		{
-		  unsigned int c = XINT (last_command_char);
+		  unsigned int c =
+		    translate_char (Vtranslation_table_for_input,
+				    XINT (last_command_char), 0, 0, 0);
 		  int value;
 		  if (NILP (Vexecuting_macro)
 		      && !EQ (minibuf_window, selected_window))
@@ -10900,7 +10902,10 @@
 The value may be a string, a vector, or a char-table.
 If it is a string or vector of length N,
 character codes N and up are untranslated.
-In a vector or a char-table, an element which is nil means "no translation".  */);
+In a vector or a char-table, an element which is nil means "no translation".
+
+This is applied to the characters supplied to input methods, not their
+output.  See also `translation-table-for-input'.  */);
   Vkeyboard_translate_table = Qnil;
 
   DEFVAR_BOOL ("cannot-suspend", &cannot_suspend,