summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/keyboard.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/keyboard.c b/src/keyboard.c
index 4c872016eb5..bf5643dba06 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -500,6 +500,8 @@ int timers_run;
extern Lisp_Object Vprint_level, Vprint_length;
+extern nonascii_insert_offset;
+
/* Address (if not 0) of EMACS_TIME to zero out if a SIGIO interrupt
happens. */
EMACS_TIME *input_available_clear_time;
@@ -1369,6 +1371,13 @@ command_loop_1 ()
= window_display_table (XWINDOW (selected_window));
int lose = c;
+ /* Add the offset to the character, for Finsert_char.
+ We pass internal_self_insert the unmodified character
+ because it itself does this offsetting. */
+ if (lose >= 0200 && lose <= 0377
+ && ! NILP (current_buffer->enable_multibyte_characters))
+ lose += nonascii_insert_offset;
+
if (dp)
{
Lisp_Object obj;