diff options
Diffstat (limited to 'lispref/variables.texi')
-rw-r--r-- | lispref/variables.texi | 115 |
1 files changed, 9 insertions, 106 deletions
diff --git a/lispref/variables.texi b/lispref/variables.texi index 656224367ac..5c54701cdd4 100644 --- a/lispref/variables.texi +++ b/lispref/variables.texi @@ -726,7 +726,7 @@ has no local bindings. @end group @group -;; @r{Here the value of @code{abracadabra},} +;; @r{Here, the value of @code{abracadabra},} ;; @r{which is @code{foo},} ;; @r{is the symbol whose value is examined.} (let ((abracadabra 'foo)) @@ -858,105 +858,6 @@ always affects the most local existing binding. @end quotation @end defun - One other function for setting a variable is designed to add -an element to a list if it is not already present in the list. - -@defun add-to-list symbol element &optional append -This function sets the variable @var{symbol} by consing @var{element} -onto the old value, if @var{element} is not already a member of that -value. It returns the resulting list, whether updated or not. The -value of @var{symbol} had better be a list already before the call. -Membership is tested using @code{equal}. - -Normally, if @var{element} is added, it is added to the front of -@var{symbol}, but if the optional argument @var{append} is -non-@code{nil}, it is added at the end. - -The argument @var{symbol} is not implicitly quoted; @code{add-to-list} -is an ordinary function, like @code{set} and unlike @code{setq}. Quote -the argument yourself if that is what you want. -@end defun - -Here's a scenario showing how to use @code{add-to-list}: - -@example -(setq foo '(a b)) - @result{} (a b) - -(add-to-list 'foo 'c) ;; @r{Add @code{c}.} - @result{} (c a b) - -(add-to-list 'foo 'b) ;; @r{No effect.} - @result{} (c a b) - -foo ;; @r{@code{foo} was changed.} - @result{} (c a b) -@end example - - An equivalent expression for @code{(add-to-list '@var{var} -@var{value})} is this: - -@example -(or (member @var{value} @var{var}) - (setq @var{var} (cons @var{value} @var{var}))) -@end example - -@defun add-to-ordered-list symbol element &optional order -This function sets the variable @var{symbol} by inserting -@var{element} into the old value, which must be a list, at the -position specified by @var{order}. If @var{element} is already a -member of the list, its position in the list is adjusted according -to @var{order}. Membership is tested using @code{eq}. -This function returns the resulting list, whether updated or not. - -The @var{order} is typically a number (integer or float), and the -elements of the list are sorted in non-decreasing numerical order. - -@var{order} may also be omitted or @code{nil}. Then the numeric order -of @var{element} stays unchanged if it already has one; otherwise, -@var{element} has no numeric order. Elements without a numeric list -order are placed at the end of the list, in no particular order. - -Any other value for @var{order} removes the numeric order of @var{element} -if it already has one; otherwise, it is equivalent to @code{nil}. - -The argument @var{symbol} is not implicitly quoted; -@code{add-to-ordered-list} is an ordinary function, like @code{set} -and unlike @code{setq}. Quote the argument yourself if that is what -you want. - -The ordering information is stored in a hash table on @var{symbol}'s -@code{list-order} property. -@end defun - -Here's a scenario showing how to use @code{add-to-ordered-list}: - -@example -(setq foo '()) - @result{} nil - -(add-to-ordered-list 'foo 'a 1) ;; @r{Add @code{a}.} - @result{} (a) - -(add-to-ordered-list 'foo 'c 3) ;; @r{Add @code{c}.} - @result{} (a c) - -(add-to-ordered-list 'foo 'b 2) ;; @r{Add @code{b}.} - @result{} (a b c) - -(add-to-ordered-list 'foo 'b 4) ;; @r{Move @code{b}.} - @result{} (a c b) - -(add-to-ordered-list 'foo 'd) ;; @r{Append @code{d}.} - @result{} (a c b d) - -(add-to-ordered-list 'foo 'e) ;; @r{Add @code{e}}. - @result{} (a c b e d) - -foo ;; @r{@code{foo} was changed.} - @result{} (a c b e d) -@end example - @node Variable Scoping @section Scoping Rules for Variable Bindings @@ -1096,7 +997,7 @@ is no longer bound to the actual argument 2. @end example @cindex closures not available - Some Lisp dialects have ``closures'', objects that are like functions + Some Lisp dialects have ``closures,'' objects that are like functions but record additional variable bindings. Emacs Lisp does not have closures. @@ -1459,7 +1360,7 @@ buffer-local variables interactively. @defun kill-all-local-variables This function eliminates all the buffer-local variable bindings of the -current buffer except for variables marked as ``permanent''. As a +current buffer except for variables marked as ``permanent.'' As a result, the buffer will see the default values of most variables. This function also resets certain other information pertaining to the @@ -1744,10 +1645,12 @@ local bindings, we will provide it in a subsequent Emacs version. @node File Local Variables @section File Local Variables - This section describes the functions and variables that affect -processing of file local variables. @xref{File variables, , -Local Variables in Files, emacs, The GNU Emacs Manual}, for basic -information about file local variables. + A file can specify local variable values; Emacs uses these to create +buffer-local bindings for those variables in the buffer visiting that +file. @xref{File variables, , Local Variables in Files, emacs, The +GNU Emacs Manual}, for basic information about file local variables. +This section describes the functions and variables that affect +processing of file local variables. @defopt enable-local-variables This variable controls whether to process file local variables. A |