(clone_per_buffer_values, reset_buffer_local_variables)

(Fbuffer_local_value, Fbuffer_local_variables): Don't forget undo_list.
This commit is contained in:
Stefan Monnier 2008-02-11 17:56:13 +00:00
parent 9ce376f9de
commit 3ee24aecf6
2 changed files with 17 additions and 4 deletions

View file

@ -1,3 +1,8 @@
2008-02-11 Stefan Monnier <monnier@iro.umontreal.ca>
* buffer.c (clone_per_buffer_values, reset_buffer_local_variables)
(Fbuffer_local_value, Fbuffer_local_variables): Don't forget undo_list.
2008-02-11 Juanma Barranquero <lekktu@gmail.com>
* w32menu.c (push_submenu_start, push_submenu_end)

View file

@ -496,7 +496,9 @@ clone_per_buffer_values (from, to)
XSETBUFFER (to_buffer, to);
for (offset = PER_BUFFER_VAR_OFFSET (name) + sizeof (Lisp_Object);
/* buffer-local Lisp variables start at `undo_list',
tho only the ones from `name' on are GC'd normally. */
for (offset = PER_BUFFER_VAR_OFFSET (undo_list) + sizeof (Lisp_Object);
offset < sizeof *to;
offset += sizeof (Lisp_Object))
{
@ -808,7 +810,9 @@ reset_buffer_local_variables (b, permanent_too)
/* For each slot that has a default value,
copy that into the slot. */
for (offset = PER_BUFFER_VAR_OFFSET (name);
/* buffer-local Lisp variables start at `undo_list',
tho only the ones from `name' on are GC'd normally. */
for (offset = PER_BUFFER_VAR_OFFSET (undo_list);
offset < sizeof *b;
offset += sizeof (Lisp_Object))
{
@ -940,7 +944,9 @@ is the default binding of the variable. */)
int found = 0;
/* Look in special slots */
for (offset = PER_BUFFER_VAR_OFFSET (name);
/* buffer-local Lisp variables start at `undo_list',
tho only the ones from `name' on are GC'd normally. */
for (offset = PER_BUFFER_VAR_OFFSET (undo_list);
offset < sizeof (struct buffer);
/* sizeof EMACS_INT == sizeof Lisp_Object */
offset += (sizeof (EMACS_INT)))
@ -1051,7 +1057,9 @@ No argument or nil as argument means use current buffer as BUFFER. */)
{
int offset, idx;
for (offset = PER_BUFFER_VAR_OFFSET (name);
/* buffer-local Lisp variables start at `undo_list',
tho only the ones from `name' on are GC'd normally. */
for (offset = PER_BUFFER_VAR_OFFSET (undo_list);
offset < sizeof (struct buffer);
/* sizeof EMACS_INT == sizeof Lisp_Object */
offset += (sizeof (EMACS_INT)))