]> code.delx.au - gnu-emacs/blobdiff - src/bytecode.c
Merge from emacs--devo--0
[gnu-emacs] / src / bytecode.c
index c667ba3e54164aa7a982faf0efca4eb801c7c050..e2e3a7910d74c1299a4d581de5ebcb1535bd4a2b 100644 (file)
@@ -37,7 +37,7 @@ by Hallvard:
 #include <config.h>
 #include "lisp.h"
 #include "buffer.h"
-#include "charset.h"
+#include "character.h"
 #include "syntax.h"
 #include "window.h"
 
@@ -1394,10 +1394,17 @@ If the third argument is incorrect, Emacs may crash.  */)
          break;
 
        case Bchar_syntax:
-         BEFORE_POTENTIAL_GC ();
-         CHECK_NUMBER (TOP);
-         AFTER_POTENTIAL_GC ();
-         XSETFASTINT (TOP, syntax_code_spec[(int) SYNTAX (XINT (TOP))]);
+         {
+           int c;
+
+           BEFORE_POTENTIAL_GC ();
+           CHECK_CHARACTER (TOP);
+           AFTER_POTENTIAL_GC ();
+           c = XFASTINT (TOP);
+           if (NILP (current_buffer->enable_multibyte_characters))
+             MAKE_CHAR_MULTIBYTE (c);
+           XSETFASTINT (TOP, syntax_code_spec[(int) SYNTAX (c)]);
+         }
          break;
 
        case Bbuffer_substring: