diff options
| -rw-r--r-- | doc/lispref/ChangeLog | 6 | ||||
| -rw-r--r-- | doc/lispref/anti.texi | 190 | ||||
| -rw-r--r-- | etc/NEWS | 17 |
3 files changed, 100 insertions, 113 deletions
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index c0c355b0e83..86f0a91a33f 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2012-04-05 Chong Yidong <cyd@gnu.org> | ||
| 2 | |||
| 3 | * anti.texi (Antinews): Rewrite for Emacs 23. | ||
| 4 | |||
| 5 | * minibuf.texi (Programmed Completion): Document metadata method. | ||
| 6 | |||
| 1 | 2012-04-04 Chong Yidong <cyd@gnu.org> | 7 | 2012-04-04 Chong Yidong <cyd@gnu.org> |
| 2 | 8 | ||
| 3 | * minibuf.texi (Programmed Completion): Remove obsolete variable | 9 | * minibuf.texi (Programmed Completion): Remove obsolete variable |
diff --git a/doc/lispref/anti.texi b/doc/lispref/anti.texi index 2463d6535fd..547eed9407a 100644 --- a/doc/lispref/anti.texi +++ b/doc/lispref/anti.texi | |||
| @@ -11,145 +11,129 @@ | |||
| 11 | @c with the above version number. | 11 | @c with the above version number. |
| 12 | 12 | ||
| 13 | For those users who live backwards in time, here is information about | 13 | For those users who live backwards in time, here is information about |
| 14 | downgrading to Emacs version 22.3. We hope you will enjoy the greater | 14 | downgrading to Emacs version 23.4. We hope you will enjoy the greater |
| 15 | simplicity that results from the absence of many Emacs @value{EMACSVER} | 15 | simplicity that results from the absence of many Emacs @value{EMACSVER} |
| 16 | features. | 16 | features. |
| 17 | 17 | ||
| 18 | @section Old Lisp Features in Emacs 22 | 18 | @section Old Lisp Features in Emacs 23 |
| 19 | 19 | ||
| 20 | @itemize @bullet | 20 | @itemize @bullet |
| 21 | @item | 21 | @item |
| 22 | The internal character representation used by Emacs is not longer | 22 | Support for lexical scoping has been removed; all variables are |
| 23 | based on Unicode. In this representation, called @code{emacs-mule}, | 23 | dynamically scoped. The @code{lexical-binding} variable has been |
| 24 | each character belongs to one and only one script. Emacs makes no | 24 | removed, and so has the @var{lexical} argument to @code{eval}. The |
| 25 | attempt to distinguish between ``similar'' characters occurring in | 25 | @code{defvar} and @code{defconst} forms no longer mark variables as |
| 26 | different scripts. | 26 | dynamic, since all variables are dynamic. |
| 27 | 27 | ||
| 28 | @item | 28 | Having only dynamic binding follows the spirit of Emacs extensibility, |
| 29 | The @code{^} interactive spec code, the function | 29 | for it allows any Emacs code to access any defined variable with a |
| 30 | @code{handle-shift-selection}, and the variable | 30 | minimum of fuss. But @xref{Dynamic Binding Tips}, for tips to avoid |
| 31 | @code{this-command-keys-shift-translated} have all been removed. | 31 | making your programs hard to understand. |
| 32 | Shift-translated keys are no longer treated specially, making Emacs's | ||
| 33 | handling of keybindings much more consistent. | ||
| 34 | |||
| 35 | @item | ||
| 36 | Temporarily-active regions are not created by giving the variable | ||
| 37 | @code{transient-mark-mode} values of the form @code{(only | ||
| 38 | . @var{oldvar})}. We instead use a more complicated scheme: | ||
| 39 | setting @code{transient-mark-mode} to @code{only} enables Transient | ||
| 40 | Mark mode for the following command only, during which the value of | ||
| 41 | @code{transient-mark-mode} is set to @code{identity}; if it is still | ||
| 42 | @code{identity} at the end of the command, Transient Mark mode is | ||
| 43 | disabled. | ||
| 44 | |||
| 45 | @item | ||
| 46 | Many minibuffer functions, such as @code{read-file-name} and | ||
| 47 | @code{minibuffer-complete}, have been rewritten in C for greater | ||
| 48 | speed. The completion code has been considerably simplified; the | ||
| 49 | completion style can no longer be changed via | ||
| 50 | @code{completion-styles-alist}, and @code{completing-read} no longer | ||
| 51 | recognizes the special values @code{confirm-only} and | ||
| 52 | @code{confirm-after-completion} for its @var{require-match} argument. | ||
| 53 | |||
| 54 | @item | ||
| 55 | Emacs no longer supports explicitly-numbered groups in regular | ||
| 56 | expressions. | ||
| 57 | 32 | ||
| 58 | @item | 33 | @item |
| 59 | The @code{permanent-local-hook} function property has no special | 34 | Calling a minor mode function from Lisp with a nil or omitted argument |
| 60 | meaning. | 35 | does not enable the minor mode unconditionally; instead, it toggles |
| 36 | the minor mode---which is the straightforward thing to do, since that | ||
| 37 | is the behavior when invoked interactively. One downside is that it | ||
| 38 | is more troublesome to enable minor modes from hooks; you have to do | ||
| 39 | something like | ||
| 61 | 40 | ||
| 62 | @item | 41 | @example |
| 63 | The @code{functionp} function now returns @code{t} for special forms. | 42 | (add-hook 'foo-hook (lambda () (bar-mode 1))) |
| 43 | @end example | ||
| 64 | 44 | ||
| 65 | @item | 45 | @noindent |
| 66 | The @code{interactive-form} symbol property has no special meaning. | 46 | or define @code{turn-on-bar-mode} and call that from the hook. |
| 67 | Once you supply a function with an interactive form, the only way to | ||
| 68 | change it is to redefine the function. | ||
| 69 | 47 | ||
| 70 | @item | 48 | @item |
| 71 | The @code{ignore-errors} macro has been moved into the @code{cl} | 49 | The @code{prog-mode} dummy major mode has been removed. Instead of |
| 72 | package. | 50 | using it as a crutch to meet programming mode conventions, you should |
| 51 | explicitly ensure that your mode follows those conventions. | ||
| 52 | @xref{Major Mode Conventions}. | ||
| 73 | 53 | ||
| 74 | @item | 54 | @item |
| 75 | Variables can now be both buffer-local and frame-local; buffer-local | 55 | Emacs no longer supports bidirectional display and editing. Since |
| 76 | bindings take precedence over frame-local bindings. | 56 | there is no need to worry about the insertion of right-to-left text |
| 57 | messing up how lines and paragraphs are displayed, the function | ||
| 58 | @code{bidi-string-mark-left-to-right} has been removed; so have many | ||
| 59 | other functions and variables related to bidirectional display. | ||
| 60 | Unicode directionality characters like @code{U+200E} ("left-to-right | ||
| 61 | mark") have no special effect on display. | ||
| 77 | 62 | ||
| 78 | @item | 63 | @item |
| 79 | Faces can no longer be remapped. | 64 | Emacs windows now have most of their internal state hidden from Lisp. |
| 65 | Internal windows are no longer visible to Lisp; functions such as | ||
| 66 | @code{window-parent}, window parameters related to window arrangement, | ||
| 67 | and window-local buffer lists have all been removed. Functions for | ||
| 68 | resizing windows can delete windows if when they become too small. | ||
| 80 | 69 | ||
| 81 | @item | 70 | The @dfn{action function} feature for controlling buffer display has |
| 82 | Lisp programs now specify fonts by their names, which are strings | 71 | been removed, including @code{display-buffer-overriding-action} and |
| 83 | following the XLFD (X logical font descriptor) format. Fonts are no | 72 | related variables, as well as the @var{action} argument to |
| 84 | longer represented using a special set of ``font'' data types. The | 73 | @code{display-buffer} and other functions. The way to |
| 85 | various functions that act on these data types, such as @code{fontp}, | 74 | programmatically control how Emacs chooses a window to display a |
| 86 | @code{font-spec}, and @code{list-fonts}, have all been deleted. | 75 | buffer is to bind the right combination of |
| 76 | @code{special-display-regexps}, @code{pop-up-frames}, and other | ||
| 77 | variables. | ||
| 87 | 78 | ||
| 88 | @item | 79 | @item |
| 89 | Emacs does not recognize the @code{FontBackend} X resource and the | 80 | The standard completion interface has been simplified, eliminating the |
| 90 | @code{font-backend} frame parameter. On the X Window System, fonts | 81 | @code{completion-extra-properties} variable, the @code{metadata} |
| 91 | are always drawn using the X core font driver. | 82 | action flag for completion functions, and the concept of |
| 83 | @dfn{completion categories}. Lisp programmers may now find the choice | ||
| 84 | of methods for tuning completion less bewildering, but if a package | ||
| 85 | finds the streamlined interface insufficient for its needs, it must | ||
| 86 | implement its own specialized completion feature. | ||
| 92 | 87 | ||
| 93 | @item | 88 | @item |
| 94 | Display terminals are no longer represented using a ``terminal'' data | 89 | @code{copy-directory} now behaves the same whether or not the |
| 95 | type; this is not necessary, because we have removed the ability to | 90 | destination is an existing directory: if the destination exists, the |
| 96 | display on graphical and text terminals simultaneously. For the same | 91 | @emph{contents} of the first directory are copied into it (with |
| 97 | reason, the @code{window-system} variable is no longer frame-local, | 92 | subdirectories handled recursively), rather than copying the first |
| 98 | and the @code{window-system} function has been removed. | 93 | directory into a subdirectory. |
| 99 | 94 | ||
| 100 | @item | 95 | @item |
| 101 | The functions @code{list-system-processes} and | 96 | The @var{trash} arguments for @code{delete-file} and |
| 102 | @code{process-attributes} have been removed. To get information about | 97 | @code{delete-directory} have been removed. The variable |
| 103 | system processes, call an external program, such as @command{ps}. | 98 | @code{delete-by-moving-to-trash} must now be used with care; whenever |
| 99 | it is non-@code{nil}, all calls to @code{delete-file} or | ||
| 100 | @code{delete-directory} use the trash. | ||
| 104 | 101 | ||
| 105 | @item | 102 | @item |
| 106 | The function @code{locate-user-emacs-file} and the variable | 103 | Because Emacs no longer supports SELinux file contexts, the |
| 107 | @code{user-emacs-directory} have been removed. Instead, use | 104 | @var{preserve-selinux-context} argument to @code{copy-file} has been |
| 108 | hard-coded values pointing to @file{~/.emacs.d}. | 105 | removed. The return value of @code{backup-buffer} no longer has an |
| 106 | entry for the SELinux file context. | ||
| 109 | 107 | ||
| 110 | @item | 108 | @item |
| 111 | @code{vertical-motion} can no longer be told to move to a specific | 109 | For mouse click input events in the text area, the Y pixel coordinate |
| 112 | column; it always puts point on the first column of a line. | 110 | in the @var{position} list (@pxref{Click Events}) now counts from the |
| 111 | top of the header line, if there is one, rather than the top of the | ||
| 112 | text area. | ||
| 113 | 113 | ||
| 114 | @item | 114 | @item |
| 115 | Windows no longer have parameters. | 115 | Bindings in menu keymaps (@pxref{Format of Keymaps}) now sometimes get |
| 116 | an additional @var{cache} entry in their definitions, like this: | ||
| 116 | 117 | ||
| 117 | @item | 118 | @example |
| 118 | The @code{display-buffer} function has been rewritten in C. Its | 119 | (@var{type} @var{item-name} @var{cache} . @var{binding}) |
| 119 | window-splitting heuristics are a little less sophisticated, and a | 120 | @end example |
| 120 | little less documented. Window-splitting is handled internally, | ||
| 121 | instead of using @code{split-window-preferred-function} (which has | ||
| 122 | been removed). Windows are never split horizontally; the variable | ||
| 123 | @code{split-width-threshold} has been removed. | ||
| 124 | 121 | ||
| 125 | @item | 122 | @noindent |
| 126 | The @code{mode-name} variable now accepts only string values, and | 123 | The @var{cache} entry is used internally by Emacs to record equivalent |
| 127 | cannot take the form of a mode-line construct. | 124 | keyboard key sequences for invoking the same command; Lisp programs |
| 128 | 125 | should never use it. | |
| 129 | @item | ||
| 130 | The behavior of @code{map-char-table} has changed. It calls the | ||
| 131 | mapping function for every single character in the table, instead of | ||
| 132 | using cons cells to represent contiguous character code ranges. | ||
| 133 | 126 | ||
| 134 | @item | 127 | @item |
| 135 | Several keymaps have been eliminated: @code{input-decode-map}, | 128 | The @code{open-network-stream} function has been removed, and so has |
| 136 | @code{local-function-key-map}, @code{search-map}, | 129 | the @code{gnutls} library. Lisp programs that want an encrypted |
| 137 | @code{multi-query-replace-map}, and | 130 | network connection must now call external utilities such as |
| 138 | @code{minibuffer-local-shell-command-map}. | 131 | @command{starttls} or @command{gnutls-cli}. |
| 139 | 132 | ||
| 140 | @item | 133 | @item |
| 141 | Many functions have been removed, including: @code{buffer-swap-text}, | 134 | Tool bars can no longer display separators, which frees up several |
| 142 | @code{emacs-init-time}, @code{emacs-uptime}, @code{use-region-p}, | 135 | pixels of space on each graphical frame. |
| 143 | @code{region-active-p}, @code{start-file-process}, | ||
| 144 | @code{process-lines}, @code{image-refresh}, | ||
| 145 | @code{match-substitute-replacement}, @code{word-search-forward-lax}, | ||
| 146 | and @code{word-search-backward-lax}. | ||
| 147 | 136 | ||
| 148 | @item | 137 | @item |
| 149 | Many variables have been removed, including @code{read-circle}, | 138 | Many other functions and variables have been eliminated. |
| 150 | @code{after-init-time} and @code{before-init-time}, | ||
| 151 | @code{generate-autoload-cookie}, @code{file-local-variables-alist}, | ||
| 152 | @code{replace-search-function} and @code{replace-re-search-function}, | ||
| 153 | @code{inhibit-changing-match-data}, @code{wrap-prefix}, and | ||
| 154 | @code{line-prefix}, | ||
| 155 | @end itemize | 139 | @end itemize |
| @@ -82,8 +82,6 @@ Nextstep builds). | |||
| 82 | 82 | ||
| 83 | ** Completion | 83 | ** Completion |
| 84 | 84 | ||
| 85 | *** Shell mode uses pcomplete rules, with the standard completion UI. | ||
| 86 | |||
| 87 | *** Many packages now use the `completion-at-point' command, | 85 | *** Many packages now use the `completion-at-point' command, |
| 88 | rather than implementing separate completion commands. | 86 | rather than implementing separate completion commands. |
| 89 | 87 | ||
| @@ -313,6 +311,9 @@ corresponding way. | |||
| 313 | 311 | ||
| 314 | ** Window changes | 312 | ** Window changes |
| 315 | 313 | ||
| 314 | *** The `quit-window' command now restores the last buffer displayed | ||
| 315 | in the quitted window. | ||
| 316 | |||
| 316 | *** Resizing an Emacs frame now preserves proportional window sizes, | 317 | *** Resizing an Emacs frame now preserves proportional window sizes, |
| 317 | modulo restrictions like window minimum sizes and fixed-size windows. | 318 | modulo restrictions like window minimum sizes and fixed-size windows. |
| 318 | 319 | ||
| @@ -339,6 +340,10 @@ otherwise cannot be split because it's too small by stealing space from | |||
| 339 | other windows in the same combination. Subsequent resizing or deletion | 340 | other windows in the same combination. Subsequent resizing or deletion |
| 340 | of the window will resize all windows in the same combination as well. | 341 | of the window will resize all windows in the same combination as well. |
| 341 | 342 | ||
| 343 | *** New option `frame-auto-hide-function' lets you choose between | ||
| 344 | iconifying or deleting a frame when burying a buffer in a dedicated | ||
| 345 | frame, or quitting a window showing a buffer in a frame of its own. | ||
| 346 | |||
| 342 | *** New commands `maximize-window' and `minimize-window'. | 347 | *** New commands `maximize-window' and `minimize-window'. |
| 343 | These maximize and minimize the size of a window within its frame. | 348 | These maximize and minimize the size of a window within its frame. |
| 344 | 349 | ||
| @@ -1149,14 +1154,6 @@ are user-customizable variables. | |||
| 1149 | 1154 | ||
| 1150 | See the docstring of `display-buffer' for details. | 1155 | See the docstring of `display-buffer' for details. |
| 1151 | 1156 | ||
| 1152 | *** New behavior of `quit-window'. | ||
| 1153 | The behavior of `quit-window' has been changed in order to restore the | ||
| 1154 | state before the last buffer display operation in that window. | ||
| 1155 | |||
| 1156 | *** The new option `frame-auto-hide-function' lets you choose between | ||
| 1157 | iconifying or deleting a frame when burying a buffer shown in a dedicated | ||
| 1158 | frame or quitting a window showing a buffer in a frame of its own. | ||
| 1159 | |||
| 1160 | *** New functions `window-state-get' and `window-state-put'. | 1157 | *** New functions `window-state-get' and `window-state-put'. |
| 1161 | These functions allow to save and restore the state of an arbitrary | 1158 | These functions allow to save and restore the state of an arbitrary |
| 1162 | frame or window as an Elisp object. | 1159 | frame or window as an Elisp object. |