710 |
} |
} |
711 |
|
|
712 |
|
|
713 |
DEFUN ("defvaralias", Fdefvaralias, Sdefvaralias, 2, 2, 0, |
DEFUN ("defvaralias", Fdefvaralias, Sdefvaralias, 2, 3, 0, |
714 |
doc: /* Make SYMBOL a variable alias for symbol ALIASED. |
doc: /* Make SYMBOL a variable alias for symbol ALIASED. |
715 |
Setting the value of SYMBOL will subsequently set the value of ALIASED, |
Setting the value of SYMBOL will subsequently set the value of ALIASED, |
716 |
and getting the value of SYMBOL will return the value ALIASED has. |
and getting the value of SYMBOL will return the value ALIASED has. |
717 |
ALIASED nil means remove the alias; SYMBOL is unbound after that. */) |
ALIASED nil means remove the alias; SYMBOL is unbound after that. |
718 |
(symbol, aliased) |
Third arg DOCSTRING, if non-nil, is documentation for SYMBOL. */) |
719 |
Lisp_Object symbol, aliased; |
(symbol, aliased, docstring) |
720 |
|
Lisp_Object symbol, aliased, docstring; |
721 |
{ |
{ |
722 |
struct Lisp_Symbol *sym; |
struct Lisp_Symbol *sym; |
723 |
|
|
724 |
CHECK_SYMBOL (symbol); |
CHECK_SYMBOL (symbol); |
725 |
CHECK_SYMBOL (aliased); |
CHECK_SYMBOL (aliased); |
726 |
|
|
732 |
sym->value = aliased; |
sym->value = aliased; |
733 |
sym->constant = SYMBOL_CONSTANT_P (aliased); |
sym->constant = SYMBOL_CONSTANT_P (aliased); |
734 |
LOADHIST_ATTACH (symbol); |
LOADHIST_ATTACH (symbol); |
735 |
|
if (!NILP (docstring)) |
736 |
|
Fput (symbol, Qvariable_documentation, docstring); |
737 |
|
|
738 |
return aliased; |
return aliased; |
739 |
} |
} |
740 |
|
|