Mercurial > emacs
diff src/cmds.c @ 89483:2f877ed80fa6
*** empty log message ***
| author | Kenichi Handa <handa@m17n.org> |
|---|---|
| date | Mon, 08 Sep 2003 12:53:41 +0000 |
| parents | 375f2633d815 08f4bdc64a89 |
| children | 68c22ea6027c |
line wrap: on
line diff
--- a/src/cmds.c Mon Sep 08 11:56:09 2003 +0000 +++ b/src/cmds.c Mon Sep 08 12:53:41 2003 +0000 @@ -24,7 +24,7 @@ #include "lisp.h" #include "commands.h" #include "buffer.h" -#include "charset.h" +#include "character.h" #include "syntax.h" #include "window.h" #include "keyboard.h" @@ -326,11 +326,11 @@ CHECK_NUMBER (n); /* Barf if the key that invoked this was not a character. */ - if (!INTEGERP (last_command_char)) + if (!CHARACTERP (last_command_char)) bitch_at_user (); { int character = translate_char (Vtranslation_table_for_input, - XINT (last_command_char), 0, 0, 0); + XINT (last_command_char)); if (XINT (n) >= 2 && NILP (current_buffer->overwrite_mode)) { int modified_char = character; @@ -394,7 +394,6 @@ /* At first, get multi-byte form of C in STR. */ if (!NILP (current_buffer->enable_multibyte_characters)) { - c = unibyte_char_to_multibyte (c); len = CHAR_STRING (c, str); if (len == 1) /* If C has modifier bits, this makes C an appropriate @@ -471,10 +470,19 @@ } hairy = 2; } + + if (NILP (current_buffer->enable_multibyte_characters)) + MAKE_CHAR_MULTIBYTE (c); + synt = SYNTAX (c); + if (!NILP (current_buffer->abbrev_mode) - && SYNTAX (c) != Sword + && synt != Sword && NILP (current_buffer->read_only) - && PT > BEGV && SYNTAX (XFASTINT (Fprevious_char ())) == Sword) + && PT > BEGV + && (!NILP (current_buffer->enable_multibyte_characters) + ? SYNTAX (XFASTINT (Fprevious_char ())) == Sword + : (SYNTAX (unibyte_char_to_multibyte (XFASTINT (Fprevious_char ()))) + == Sword))) { int modiff = MODIFF; Lisp_Object sym; @@ -542,7 +550,6 @@ Vself_insert_face = Qnil; } - synt = SYNTAX (c); if ((synt == Sclose || synt == Smath) && !NILP (Vblink_paren_function) && INTERACTIVE && !noautofill)
