diff options
| author | Paul Eggert | 2017-01-01 01:02:47 -0800 |
|---|---|---|
| committer | Paul Eggert | 2017-01-01 01:02:47 -0800 |
| commit | 61848d2da32bb889d714fcddcb7dfd6dfa1b502d (patch) | |
| tree | bec14e4a5ad9051ad310273db7fcc1d2164488b7 /doc | |
| parent | bbb683f04aa0960422b12af5ef79679344fac19c (diff) | |
| parent | 697167b5432a89db009238cf5cbddc61e69ad339 (diff) | |
| download | emacs-61848d2da32bb889d714fcddcb7dfd6dfa1b502d.tar.gz emacs-61848d2da32bb889d714fcddcb7dfd6dfa1b502d.zip | |
Merge from origin/emacs-25
697167b ; Improve wording of previous change in variables.texi
d7973e8 Document 'default-toplevel-value' and 'set-default-toplevel-v...
8b71826 Don't modify minibuffer variables globally
5b5e036 Revert to pre-25.1 behavior in ffap
19994a1 * lisp/ffap.el: Fix obsolete comment referencing ffap-bug.
3ace730 Attempt to fix 64-bit AIX build
f69bd79 Clarify usage of 'ediff-cleanup-hook' (Bug#24675)
c04ac8a Document that variable binding order is unspecified
272554a * lisp/desktop.el (desktop-buffers-not-to-save): Doc fix.
08de101 Fix M-x hints on Mac port
86a297a Work around reporting a dpi change in apply_xft_settings
cf1f985 ; lisp/skeleton.el (skeleton-insert): Fix typo in last change
9e1209d Amend the version number of CC Mode 5.33 -> 5.32.99. Don't m...
88cdf14 Improve skeleton docstrings
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/lispref/variables.texi | 51 | ||||
| -rw-r--r-- | doc/misc/cl.texi | 5 | ||||
| -rw-r--r-- | doc/misc/ediff.texi | 11 |
3 files changed, 64 insertions, 3 deletions
diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi index d9096dac018..4936f7a921a 100644 --- a/doc/lispref/variables.texi +++ b/doc/lispref/variables.texi | |||
| @@ -223,6 +223,18 @@ Here is an example of this: @code{z} is bound to the old value of | |||
| 223 | @result{} (1 2) | 223 | @result{} (1 2) |
| 224 | @end group | 224 | @end group |
| 225 | @end example | 225 | @end example |
| 226 | |||
| 227 | On the other hand, the order of @emph{bindings} is unspecified: in the | ||
| 228 | following example, either 1 or 2 might be printed. | ||
| 229 | |||
| 230 | @example | ||
| 231 | (let ((x 1) | ||
| 232 | (x 2)) | ||
| 233 | (print x)) | ||
| 234 | @end example | ||
| 235 | |||
| 236 | Therefore, avoid binding a variable more than once in a single | ||
| 237 | @code{let} form. | ||
| 226 | @end defspec | 238 | @end defspec |
| 227 | 239 | ||
| 228 | @defspec let* (bindings@dots{}) forms@dots{} | 240 | @defspec let* (bindings@dots{}) forms@dots{} |
| @@ -1630,6 +1642,45 @@ an ordinary evaluated argument. | |||
| 1630 | @end example | 1642 | @end example |
| 1631 | @end defun | 1643 | @end defun |
| 1632 | 1644 | ||
| 1645 | A variable can be let-bound (@pxref{Local Variables}) to a value. | ||
| 1646 | This makes its global value shadowed by the binding; | ||
| 1647 | @code{default-value} will then return the value from that binding, not | ||
| 1648 | the global value, and @code{set-default} will be prevented from | ||
| 1649 | setting the global value (it will change the let-bound value instead). | ||
| 1650 | The following two functions allow to reference the global value even | ||
| 1651 | if it's shadowed by a let-binding. | ||
| 1652 | |||
| 1653 | @cindex top-level default value | ||
| 1654 | @defun default-toplevel-value symbol | ||
| 1655 | This function returns the @dfn{top-level} default value of | ||
| 1656 | @var{symbol}, which is its value outside of any let-binding. | ||
| 1657 | @end defun | ||
| 1658 | |||
| 1659 | @example | ||
| 1660 | @group | ||
| 1661 | (defvar variable 'global-value) | ||
| 1662 | @result{} variable | ||
| 1663 | @end group | ||
| 1664 | @group | ||
| 1665 | (let ((variable 'let-binding)) | ||
| 1666 | (default-value 'variable)) | ||
| 1667 | @result{} let-binding | ||
| 1668 | @end group | ||
| 1669 | @group | ||
| 1670 | (let ((variable 'let-binding)) | ||
| 1671 | (default-toplevel-value 'variable)) | ||
| 1672 | @result{} global-value | ||
| 1673 | @end group | ||
| 1674 | @end example | ||
| 1675 | |||
| 1676 | @defun set-default-toplevel-value symbol value | ||
| 1677 | This function sets the top-level default value of @var{symbol} to the | ||
| 1678 | specified @var{value}. This comes in handy when you want to set the | ||
| 1679 | global value of @var{symbol} regardless of whether your code runs in | ||
| 1680 | the context of @var{symbol}'s let-binding. | ||
| 1681 | @end defun | ||
| 1682 | |||
| 1683 | |||
| 1633 | @node File Local Variables | 1684 | @node File Local Variables |
| 1634 | @section File Local Variables | 1685 | @section File Local Variables |
| 1635 | @cindex file local variables | 1686 | @cindex file local variables |
diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi index 4f15cf53d4a..5af41a4465e 100644 --- a/doc/misc/cl.texi +++ b/doc/misc/cl.texi | |||
| @@ -1179,6 +1179,11 @@ behavior. (@code{point} and @code{point-marker} are equivalent | |||
| 1179 | as @code{setf} places; each will accept either an integer or a | 1179 | as @code{setf} places; each will accept either an integer or a |
| 1180 | marker as the stored value.) | 1180 | marker as the stored value.) |
| 1181 | 1181 | ||
| 1182 | Like in the case of @code{let}, the @var{value} forms are evaluated in | ||
| 1183 | the order they appear, but the order of bindings is unspecified. | ||
| 1184 | Therefore, avoid binding the same @var{place} more than once in a | ||
| 1185 | single @code{cl-letf} form. | ||
| 1186 | |||
| 1182 | Since generalized variables look like lists, @code{let}'s shorthand | 1187 | Since generalized variables look like lists, @code{let}'s shorthand |
| 1183 | of using @samp{foo} for @samp{(foo nil)} as a @var{binding} would | 1188 | of using @samp{foo} for @samp{(foo nil)} as a @var{binding} would |
| 1184 | be ambiguous in @code{cl-letf} and is not allowed. | 1189 | be ambiguous in @code{cl-letf} and is not allowed. |
diff --git a/doc/misc/ediff.texi b/doc/misc/ediff.texi index 376aaeea46e..896a6041e86 100644 --- a/doc/misc/ediff.texi +++ b/doc/misc/ediff.texi | |||
| @@ -1247,9 +1247,14 @@ merged (see @code{ediff-cleanup-hook}, below). | |||
| 1247 | @vindex ediff-cleanup-hook | 1247 | @vindex ediff-cleanup-hook |
| 1248 | This hook is run just before @code{ediff-quit-hook}. This is a good | 1248 | This hook is run just before @code{ediff-quit-hook}. This is a good |
| 1249 | place to do various cleanups, such as deleting the variant buffers. | 1249 | place to do various cleanups, such as deleting the variant buffers. |
| 1250 | Ediff provides a function, @code{ediff-janitor}, as one such possible | 1250 | Ediff provides a helper function, @code{ediff-janitor}, that you can |
| 1251 | hook, which you can add to @code{ediff-cleanup-hook} with | 1251 | invoke from a private hook function. For example: |
| 1252 | @code{add-hook}. | 1252 | |
| 1253 | @example | ||
| 1254 | (defun my-ediff-janitor () | ||
| 1255 | (ediff-janitor nil nil)) | ||
| 1256 | (add-hook 'ediff-cleanup-hook #'my-ediff-janitor) | ||
| 1257 | @end example | ||
| 1253 | 1258 | ||
| 1254 | @findex ediff-janitor | 1259 | @findex ediff-janitor |
| 1255 | This function kills buffers A, B, and, possibly, C, if these buffers aren't | 1260 | This function kills buffers A, B, and, possibly, C, if these buffers aren't |