Commit 05ef7169 authored by Richard M. Stallman's avatar Richard M. Stallman
Browse files

(set_internal): New subroutine. New arg BINDFLAG.

Don't make a new buffer-local binding if BINDFLAG is 0.
(Fset): Use set_internal.
parent ab07bca0
......@@ -901,6 +901,19 @@ DEFUN ("set", Fset, Sset, 2, 2, 0,
"Set SYMBOL's value to NEWVAL, and return NEWVAL.")
(symbol, newval)
register Lisp_Object symbol, newval;
{
return set_internal (symbol, newval, 0);
}
/* Stpre the value NEWVAL into SYMBOL.
If BINDFLAG is zero, then if this symbol is supposed to become
local in every buffer where it is set, then we make it local.
If BINDFLAG is nonzero, we don't do that. */
Lisp_Object
set_internal (symbol, newval, bindflag)
register Lisp_Object symbol, newval;
int bindflag;
{
int voide = EQ (newval, Qunbound);
......@@ -978,13 +991,14 @@ DEFUN ("set", Fset, Sset, 2, 2, 0,
/* This buffer still sees the default value. */
/* If the variable is a Lisp_Some_Buffer_Local_Value,
or if this is `let' rather than `set',
make CURRENT-ALIST-ELEMENT point to itself,
indicating that we're seeing the default value. */
if (SOME_BUFFER_LOCAL_VALUEP (valcontents))
if (bindflag || SOME_BUFFER_LOCAL_VALUEP (valcontents))
tem1 = XCONS (XBUFFER_LOCAL_VALUE (valcontents)->cdr)->cdr;
/* If it's a Lisp_Buffer_Local_Value, give this buffer a
new assoc for a local value and set
/* If it's a Lisp_Buffer_Local_Value, being set not bound,
give this buffer a new assoc for a local value and set
CURRENT-ALIST-ELEMENT to point to that. */
else
{
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment