Function: local-variable-if-set-p
local-variable-if-set-p is a function defined in data.c.
Signature
(local-variable-if-set-p VARIABLE &optional BUFFER)
Documentation
Non-nil if VARIABLE is local in buffer BUFFER when set there.
BUFFER defaults to the current buffer.
More precisely, return non-nil if either VARIABLE already has a local
value in BUFFER, or if VARIABLE is automatically buffer-local (see
make-variable-buffer-local).
Source Code
// Defined in /usr/src/emacs/src/data.c
{
struct Lisp_Symbol *sym;
CHECK_SYMBOL (variable);
sym = XSYMBOL (variable);
start:
switch (sym->u.s.redirect)
{
case SYMBOL_VARALIAS: sym = SYMBOL_ALIAS (sym); goto start;
case SYMBOL_PLAINVAL: return Qnil;
case SYMBOL_LOCALIZED:
{
struct Lisp_Buffer_Local_Value *blv = SYMBOL_BLV (sym);
if (blv->local_if_set)
return Qt;
XSETSYMBOL (variable, sym); /* Update in case of aliasing. */
return Flocal_variable_p (variable, buffer);
}
case SYMBOL_FORWARDED:
/* All BUFFER_OBJFWD slots become local if they are set. */
return (BUFFER_OBJFWDP (SYMBOL_FWD (sym)) ? Qt : Qnil);
default: emacs_abort ();
}
}