make-variable-buffer-local
make-variable-buffer-local is an interactive built-in function in `C source code
'.
(make-variable-buffer-local VARIABLE)
Make VARIABLE become buffer-local whenever it is set.
At any time, the value for the current buffer is in effect,
unless the variable has never been set in this buffer,
in which case the default value is in effect.
Note that binding the variable with `let', or setting it while
a `let'-style binding made in this buffer is in effect,
does not make the variable buffer-local. Return VARIABLE.
This globally affects all uses of this variable, so it belongs together with
the variable declaration, rather than with its uses (if you just want to make
a variable local to the current buffer for one particular use, use
`make-local-variable'). Buffer-local bindings are normally cleared
while setting up a new major mode, unless they have a `permanent-local'
property.
The function `default-value' gets the default value and `set-default' sets it.