diff options
| author | Stefan Monnier | 2008-02-11 17:56:13 +0000 |
|---|---|---|
| committer | Stefan Monnier | 2008-02-11 17:56:13 +0000 |
| commit | 3ee24aecf63898e562772ed1e13b2b740937d057 (patch) | |
| tree | 30c705e44f9b9f2c5b38c5452a787ce12e797ebf /src/buffer.c | |
| parent | 9ce376f9dee9e184c4baf06908f05b45d4075a9f (diff) | |
| download | emacs-3ee24aecf63898e562772ed1e13b2b740937d057.tar.gz emacs-3ee24aecf63898e562772ed1e13b2b740937d057.zip | |
(clone_per_buffer_values, reset_buffer_local_variables)
(Fbuffer_local_value, Fbuffer_local_variables): Don't forget undo_list.
Diffstat (limited to 'src/buffer.c')
| -rw-r--r-- | src/buffer.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/buffer.c b/src/buffer.c index d056ce7dc48..c0162841c62 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -496,7 +496,9 @@ clone_per_buffer_values (from, to) | |||
| 496 | 496 | ||
| 497 | XSETBUFFER (to_buffer, to); | 497 | XSETBUFFER (to_buffer, to); |
| 498 | 498 | ||
| 499 | for (offset = PER_BUFFER_VAR_OFFSET (name) + sizeof (Lisp_Object); | 499 | /* buffer-local Lisp variables start at `undo_list', |
| 500 | tho only the ones from `name' on are GC'd normally. */ | ||
| 501 | for (offset = PER_BUFFER_VAR_OFFSET (undo_list) + sizeof (Lisp_Object); | ||
| 500 | offset < sizeof *to; | 502 | offset < sizeof *to; |
| 501 | offset += sizeof (Lisp_Object)) | 503 | offset += sizeof (Lisp_Object)) |
| 502 | { | 504 | { |
| @@ -808,7 +810,9 @@ reset_buffer_local_variables (b, permanent_too) | |||
| 808 | /* For each slot that has a default value, | 810 | /* For each slot that has a default value, |
| 809 | copy that into the slot. */ | 811 | copy that into the slot. */ |
| 810 | 812 | ||
| 811 | for (offset = PER_BUFFER_VAR_OFFSET (name); | 813 | /* buffer-local Lisp variables start at `undo_list', |
| 814 | tho only the ones from `name' on are GC'd normally. */ | ||
| 815 | for (offset = PER_BUFFER_VAR_OFFSET (undo_list); | ||
| 812 | offset < sizeof *b; | 816 | offset < sizeof *b; |
| 813 | offset += sizeof (Lisp_Object)) | 817 | offset += sizeof (Lisp_Object)) |
| 814 | { | 818 | { |
| @@ -940,7 +944,9 @@ is the default binding of the variable. */) | |||
| 940 | int found = 0; | 944 | int found = 0; |
| 941 | 945 | ||
| 942 | /* Look in special slots */ | 946 | /* Look in special slots */ |
| 943 | for (offset = PER_BUFFER_VAR_OFFSET (name); | 947 | /* buffer-local Lisp variables start at `undo_list', |
| 948 | tho only the ones from `name' on are GC'd normally. */ | ||
| 949 | for (offset = PER_BUFFER_VAR_OFFSET (undo_list); | ||
| 944 | offset < sizeof (struct buffer); | 950 | offset < sizeof (struct buffer); |
| 945 | /* sizeof EMACS_INT == sizeof Lisp_Object */ | 951 | /* sizeof EMACS_INT == sizeof Lisp_Object */ |
| 946 | offset += (sizeof (EMACS_INT))) | 952 | offset += (sizeof (EMACS_INT))) |
| @@ -1051,7 +1057,9 @@ No argument or nil as argument means use current buffer as BUFFER. */) | |||
| 1051 | { | 1057 | { |
| 1052 | int offset, idx; | 1058 | int offset, idx; |
| 1053 | 1059 | ||
| 1054 | for (offset = PER_BUFFER_VAR_OFFSET (name); | 1060 | /* buffer-local Lisp variables start at `undo_list', |
| 1061 | tho only the ones from `name' on are GC'd normally. */ | ||
| 1062 | for (offset = PER_BUFFER_VAR_OFFSET (undo_list); | ||
| 1055 | offset < sizeof (struct buffer); | 1063 | offset < sizeof (struct buffer); |
| 1056 | /* sizeof EMACS_INT == sizeof Lisp_Object */ | 1064 | /* sizeof EMACS_INT == sizeof Lisp_Object */ |
| 1057 | offset += (sizeof (EMACS_INT))) | 1065 | offset += (sizeof (EMACS_INT))) |