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