diff options
| author | Karl Heuer | 1994-10-06 22:30:47 +0000 |
|---|---|---|
| committer | Karl Heuer | 1994-10-06 22:30:47 +0000 |
| commit | aab808227e3e75dacde6b376545989bc0dac8cb5 (patch) | |
| tree | a099b6f9f944e3debd90bc16240c7b3af214ee9d /src/buffer.c | |
| parent | 838abf56705838a2cc26abcf442c9fd897937011 (diff) | |
| download | emacs-aab808227e3e75dacde6b376545989bc0dac8cb5.tar.gz emacs-aab808227e3e75dacde6b376545989bc0dac8cb5.zip | |
(init_buffer_once): Don't use XSETFASTINT when negative.
(reset_buffer_local_variables, Fbuffer_local_variables): Access
buffer_local_flags as Lisp_Object, not int.
Diffstat (limited to 'src/buffer.c')
| -rw-r--r-- | src/buffer.c | 38 |
1 files changed, 21 insertions, 17 deletions
diff --git a/src/buffer.c b/src/buffer.c index 0642742fe1c..61ece33ed86 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -358,10 +358,12 @@ reset_buffer_local_variables (b) | |||
| 358 | for (offset = (char *)&buffer_local_flags.name - (char *)&buffer_local_flags; | 358 | for (offset = (char *)&buffer_local_flags.name - (char *)&buffer_local_flags; |
| 359 | offset < sizeof (struct buffer); | 359 | offset < sizeof (struct buffer); |
| 360 | offset += sizeof (Lisp_Object)) /* sizeof EMACS_INT == sizeof Lisp_Object */ | 360 | offset += sizeof (Lisp_Object)) /* sizeof EMACS_INT == sizeof Lisp_Object */ |
| 361 | if (*(EMACS_INT *)(offset + (char *) &buffer_local_flags) > 0 | 361 | { |
| 362 | || *(EMACS_INT *)(offset + (char *) &buffer_local_flags) == -2) | 362 | int flag = XINT (*(Lisp_Object *)(offset + (char *)&buffer_local_flags)); |
| 363 | *(Lisp_Object *)(offset + (char *)b) = | 363 | if (flag > 0 || flag == -2) |
| 364 | *(Lisp_Object *)(offset + (char *)&buffer_defaults); | 364 | *(Lisp_Object *)(offset + (char *)b) = |
| 365 | *(Lisp_Object *)(offset + (char *)&buffer_defaults); | ||
| 366 | } | ||
| 365 | } | 367 | } |
| 366 | 368 | ||
| 367 | /* We split this away from generate-new-buffer, because rename-buffer | 369 | /* We split this away from generate-new-buffer, because rename-buffer |
| @@ -487,10 +489,12 @@ No argument or nil as argument means use current buffer as BUFFER.") | |||
| 487 | offset < sizeof (struct buffer); | 489 | offset < sizeof (struct buffer); |
| 488 | offset += (sizeof (EMACS_INT))) /* sizeof EMACS_INT == sizeof Lisp_Object */ | 490 | offset += (sizeof (EMACS_INT))) /* sizeof EMACS_INT == sizeof Lisp_Object */ |
| 489 | { | 491 | { |
| 490 | mask = *(EMACS_INT *)(offset + (char *) &buffer_local_flags); | 492 | mask = XINT (*(Lisp_Object *)(offset + (char *)&buffer_local_flags)); |
| 491 | if (mask == -1 || (buf->local_var_flags & mask)) | 493 | if (mask == -1 || (buf->local_var_flags & mask)) |
| 492 | if (SYMBOLP (*(Lisp_Object *)(offset + (char *)&buffer_local_symbols))) | 494 | if (SYMBOLP (*(Lisp_Object *)(offset |
| 493 | result = Fcons (Fcons (*(Lisp_Object *)(offset + (char *)&buffer_local_symbols), | 495 | + (char *)&buffer_local_symbols))) |
| 496 | result = Fcons (Fcons (*((Lisp_Object *) | ||
| 497 | (offset + (char *)&buffer_local_symbols)), | ||
| 494 | *(Lisp_Object *)(offset + (char *)buf)), | 498 | *(Lisp_Object *)(offset + (char *)buf)), |
| 495 | result); | 499 | result); |
| 496 | } | 500 | } |
| @@ -2486,16 +2490,16 @@ init_buffer_once () | |||
| 2486 | 2490 | ||
| 2487 | /* 0 means not a lisp var, -1 means always local, else mask */ | 2491 | /* 0 means not a lisp var, -1 means always local, else mask */ |
| 2488 | bzero (&buffer_local_flags, sizeof buffer_local_flags); | 2492 | bzero (&buffer_local_flags, sizeof buffer_local_flags); |
| 2489 | XSETFASTINT (buffer_local_flags.filename, -1); | 2493 | XSETINT (buffer_local_flags.filename, -1); |
| 2490 | XSETFASTINT (buffer_local_flags.directory, -1); | 2494 | XSETINT (buffer_local_flags.directory, -1); |
| 2491 | XSETFASTINT (buffer_local_flags.backed_up, -1); | 2495 | XSETINT (buffer_local_flags.backed_up, -1); |
| 2492 | XSETFASTINT (buffer_local_flags.save_length, -1); | 2496 | XSETINT (buffer_local_flags.save_length, -1); |
| 2493 | XSETFASTINT (buffer_local_flags.auto_save_file_name, -1); | 2497 | XSETINT (buffer_local_flags.auto_save_file_name, -1); |
| 2494 | XSETFASTINT (buffer_local_flags.read_only, -1); | 2498 | XSETINT (buffer_local_flags.read_only, -1); |
| 2495 | XSETFASTINT (buffer_local_flags.major_mode, -1); | 2499 | XSETINT (buffer_local_flags.major_mode, -1); |
| 2496 | XSETFASTINT (buffer_local_flags.mode_name, -1); | 2500 | XSETINT (buffer_local_flags.mode_name, -1); |
| 2497 | XSETFASTINT (buffer_local_flags.undo_list, -1); | 2501 | XSETINT (buffer_local_flags.undo_list, -1); |
| 2498 | XSETFASTINT (buffer_local_flags.mark_active, -1); | 2502 | XSETINT (buffer_local_flags.mark_active, -1); |
| 2499 | 2503 | ||
| 2500 | XSETFASTINT (buffer_local_flags.mode_line_format, 1); | 2504 | XSETFASTINT (buffer_local_flags.mode_line_format, 1); |
| 2501 | XSETFASTINT (buffer_local_flags.abbrev_mode, 2); | 2505 | XSETFASTINT (buffer_local_flags.abbrev_mode, 2); |