diff options
author | Eli Zaretskii <eliz@gnu.org> | 2016-12-26 19:10:49 +0200 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2016-12-26 19:10:49 +0200 |
commit | d7973e808d54f1adf5224589c5cf770bb17453d2 (patch) | |
tree | 07bdabeaafff0cf5c674f2c0d6cd2d809e1d204d /doc | |
parent | 8b7182626e3dac556d1fc38a1193e7d5e386488e (diff) | |
download | emacs-d7973e808d54f1adf5224589c5cf770bb17453d2.tar.gz |
Document 'default-toplevel-value' and 'set-default-toplevel-value'
* doc/lispref/variables.texi (Default Value): Document
'default-toplevel-value' and 'set-default-toplevel-value'.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/lispref/variables.texi | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi index ba31f856369..e231cbdfec1 100644 --- a/doc/lispref/variables.texi +++ b/doc/lispref/variables.texi @@ -1580,6 +1580,44 @@ an ordinary evaluated argument. @end example @end defun + A variable can be let-bound (@pxref{Local Variables}) to a +non-default value; in that case, @code{default-value} will return the +value from that binding, not the global value, and @code{set-default} +will be prevented from setting the global value. The following two +functions allow to reference the global value even if it's masked by a +let-binding. + +@cindex top-level default value +@defun default-toplevel-value symbol +This function returns the @dfn{top-level} default value of +@var{symbol}, which is its value outside of any let-binding. +@end defun + +@example +@group +(defvar variable 'global-value) + @result{} variable +@end group +@group +(let ((variable 'let-binding)) + (default-value 'variable)) + @result{} let-binding +@end group +@group +(let ((variable 'let-binding)) + (default-toplevel-value 'variable)) + @result{} global-value +@end group +@end example + +@defun set-default-toplevel-value symbol value +This function sets the top-level default value of @var{symbol} to the +specified @var{value}. This comes in handy when you want to set the +global value of @var{symbol} regardless of whether your code runs in +the context of @var{symbol}'s let-binding. +@end defun + + @node File Local Variables @section File Local Variables @cindex file local variables |