]> git.eshelyaron.com Git - emacs.git/commitdiff
Document 'default-toplevel-value' and 'set-default-toplevel-value'
authorEli Zaretskii <eliz@gnu.org>
Mon, 26 Dec 2016 17:10:49 +0000 (19:10 +0200)
committerEli Zaretskii <eliz@gnu.org>
Mon, 26 Dec 2016 17:10:49 +0000 (19:10 +0200)
* doc/lispref/variables.texi (Default Value): Document
'default-toplevel-value' and 'set-default-toplevel-value'.

doc/lispref/variables.texi

index ba31f8563692efe0b0768eec913aa17d1f4a3ef9..e231cbdfec101f3dc61509f0b6c484981c65036f 100644 (file)
@@ -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