mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-25 15:00:45 -08:00
(store_symval_forwarding) <Lisp_Misc_Buffer_Objfwd>:
If buffer_local_types has -1, this variable is read-only. (Fset_default) <BUFFER_OBJFWDP>: Unconditionally set the slot in buffer_defaults.
This commit is contained in:
parent
1bf08bafe7
commit
984ef137be
1 changed files with 7 additions and 1 deletions
|
|
@ -784,6 +784,9 @@ store_symval_forwarding (symbol, valcontents, newval)
|
|||
Lisp_Object type;
|
||||
|
||||
type = *(Lisp_Object *)(offset + (char *)&buffer_local_types);
|
||||
if (XINT (type) == -1)
|
||||
error ("Variable %s is read-only", XSYMBOL (symbol)->name->data);
|
||||
|
||||
if (! NILP (type) && ! NILP (newval)
|
||||
&& XTYPE (newval) != XINT (type))
|
||||
buffer_slot_type_mismatch (offset);
|
||||
|
|
@ -1146,9 +1149,12 @@ for this variable.")
|
|||
register int mask = XINT (*((Lisp_Object *)
|
||||
(idx + (char *)&buffer_local_flags)));
|
||||
|
||||
*(Lisp_Object *)(idx + (char *) &buffer_defaults) = value;
|
||||
|
||||
/* If this variable is not always local in all buffers,
|
||||
set it in the buffers that don't nominally have a local value. */
|
||||
if (mask > 0)
|
||||
{
|
||||
*(Lisp_Object *)(idx + (char *) &buffer_defaults) = value;
|
||||
for (b = all_buffers; b; b = b->next)
|
||||
if (!(b->local_var_flags & mask))
|
||||
*(Lisp_Object *)(idx + (char *) b) = value;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue