From a0acc6c756e59f6d0cef68dc703e660c9954ff60 Mon Sep 17 00:00:00 2001 From: Dave Love Date: Sat, 9 Nov 2002 12:48:26 +0000 Subject: [PATCH] (command_loop_1): Apply Vtranslation_table_for_input to self-inserting characters. (syms_of_keyboard) : Doc fix. --- src/keyboard.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/keyboard.c b/src/keyboard.c index ea1f82f563..2984a36973 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -412,7 +412,7 @@ Lisp_Object Vecho_keystrokes; /* 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 Fthis_command_keys (); 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 @@ command_loop_1 () 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 @@ Each character is looked up in this string and the contents used instead. 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, -- 2.20.1