aboutsummaryrefslogtreecommitdiffstats
path: root/src/bytecode.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bytecode.c')
-rw-r--r--src/bytecode.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/bytecode.c b/src/bytecode.c
index c667ba3e541..e2e3a7910d7 100644
--- a/src/bytecode.c
+++ b/src/bytecode.c
@@ -37,7 +37,7 @@ by Hallvard:
37#include <config.h> 37#include <config.h>
38#include "lisp.h" 38#include "lisp.h"
39#include "buffer.h" 39#include "buffer.h"
40#include "charset.h" 40#include "character.h"
41#include "syntax.h" 41#include "syntax.h"
42#include "window.h" 42#include "window.h"
43 43
@@ -1394,10 +1394,17 @@ If the third argument is incorrect, Emacs may crash. */)
1394 break; 1394 break;
1395 1395
1396 case Bchar_syntax: 1396 case Bchar_syntax:
1397 BEFORE_POTENTIAL_GC (); 1397 {
1398 CHECK_NUMBER (TOP); 1398 int c;
1399 AFTER_POTENTIAL_GC (); 1399
1400 XSETFASTINT (TOP, syntax_code_spec[(int) SYNTAX (XINT (TOP))]); 1400 BEFORE_POTENTIAL_GC ();
1401 CHECK_CHARACTER (TOP);
1402 AFTER_POTENTIAL_GC ();
1403 c = XFASTINT (TOP);
1404 if (NILP (current_buffer->enable_multibyte_characters))
1405 MAKE_CHAR_MULTIBYTE (c);
1406 XSETFASTINT (TOP, syntax_code_spec[(int) SYNTAX (c)]);
1407 }
1401 break; 1408 break;
1402 1409
1403 case Bbuffer_substring: 1410 case Bbuffer_substring: