1 |
@c -*-texinfo-*- |
@c -*-texinfo-*- |
2 |
@c This is part of the GNU Emacs Lisp Reference Manual. |
@c This is part of the GNU Emacs Lisp Reference Manual. |
3 |
@c Copyright (C) 1999 Free Software Foundation, Inc. |
@c Copyright (C) 2005 Free Software Foundation, Inc. |
4 |
@c See the file elisp.texi for copying conditions. |
@c See the file elisp.texi for copying conditions. |
5 |
|
|
6 |
@c This node must have no pointers. |
@c This node must have no pointers. |
7 |
|
|
8 |
@node Antinews, GNU Free Documentation License, System Interface, Top |
@node Antinews, GNU Free Documentation License, System Interface, Top |
9 |
@appendix Emacs 20 Antinews |
@appendix Emacs 21 Antinews |
10 |
|
|
11 |
For those users who live backwards in time, here is information about |
For those users who live backwards in time, here is information about |
12 |
downgrading to Emacs version 20.4. We hope you will enjoy the greater |
downgrading to Emacs version 21.4. We hope you will enjoy the greater |
13 |
simplicity that results from the absence of many Emacs 21 features. In |
simplicity that results from the absence of many Emacs 22 features. |
|
the following section, we carry this information back to Emacs |
|
|
20.3, for which the previous printed edition of this manual was made. |
|
14 |
|
|
15 |
@section Old Lisp Features in Emacs 20 |
@section Old Lisp Features in Emacs 21 |
16 |
|
|
17 |
@itemize @bullet |
@itemize @bullet |
18 |
@item |
@item |
19 |
The @code{push} and @code{pop} macros are not defined. |
Many unnecessary features of redisplay have been eliminated. (The |
20 |
Neither are @code{dolist} and @code{dotimes}. |
earlier major release, Emacs 20, will have a completely rewritten |
21 |
|
redisplay engine, which will be even simpler.) |
22 |
|
|
23 |
|
@itemize @minus |
24 |
@item |
@item |
25 |
You can't display images in buffers. (Emacs is meant for editing text.) |
The function @code{force-window-update} has been removed. It |
26 |
With no images, there are no display margins, and no tool bars. |
shouldn't be needed, since changes in window contents are detected |
27 |
|
automatically. In case they aren't, call @code{redraw-display} to |
28 |
|
redraw everything. |
29 |
|
|
30 |
@item |
@item |
31 |
The @code{display} text property has no special meaning; you can use it |
Point no longer moves out from underneath invisible text at the end of |
32 |
freely in Lisp programs, with no effects except what you implement for |
each command. This allows the user to detect invisible text by moving |
33 |
yourself. With no images, who needs the @code{display} text property? |
the cursor around---if the cursor gets stuck, there is something |
34 |
|
invisible in the way. If you really want cursor motion to ignore the |
35 |
|
text, try marking it as intangible. |
36 |
|
|
37 |
@item |
@item |
38 |
The @code{field} text property has no special meaning; buffers are no |
Support for image maps and image slices has been removed. Emacs was |
39 |
longer subdivided into fields. (The division of information into |
always meant for editing text, anyway. |
|
fields is always rather arbitrary.) |
|
40 |
|
|
41 |
@item |
@item |
42 |
Faces have fewer attributes. The attributes @code{:family}, |
The mode line now accepts all text properties, as well as |
43 |
@code{:height}, @code{:width}, @code{:weight}, and @code{:slant}, |
@code{:propertize} and @code{:eval} forms, regardless of the |
44 |
have been replaced with a font name, a ``bold'' flag, and an |
@code{risky-local-variable} property. |
|
``italic'' flag. |
|
45 |
|
|
46 |
The attributes @code{:overline}, @code{:strike-through} and @code{:box} |
@item |
47 |
have been eliminated too. Underlining now always has the same color as |
The @code{line-height} and @code{line-spacing} properties no longer |
48 |
the text---using any other color would be bad taste. |
have any meaning for newline characters. Such properties wouldn't |
49 |
|
make sense, since newlines are not really characters; they just tell |
50 |
|
you where to break a line. |
51 |
|
|
52 |
With fewer font attributes, there are no functions |
@item |
53 |
@code{set-face-attribute} and @code{face-attribute}. Instead, you |
Considerable simplifications have been made to the display |
54 |
access these attributes using functions such as @code{face-font}, and |
specification @code{(space . @var{props})}, which is used for |
55 |
set them with functions such as @code{set-face-font}. (These functions |
displaying a space of specified width and height. Pixel-based |
56 |
were available in Emacs 21, but are not as useful there.) |
specifications and Lisp expressions are no longer accepted. |
57 |
|
|
58 |
@item |
@item |
59 |
The standard faces @code{scroll-bar}, @code{menu}, @code{border}, |
Many features associated with the fringe areas have been removed, to |
60 |
@code{cursor}, and @code{mouse} have been eliminated. They are rather |
encourage people to concentrate on the main editing area (the fringe |
61 |
strange, as faces, and therefore shouldn't really exist. You can use |
will be completely removed in Emacs 20.) Arbitrary bitmaps can no |
62 |
@code{set-border-color}, @code{set-cursor-color} and |
longer be displayed in the fringe; an overlay arrow can still be |
63 |
@code{set-mouse-color} to specify the colors for the frame border, the |
displayed, but there can only be one overlay arrow at a time (any more |
64 |
text cursor, and the mouse cursor. To specify menu colors, use X |
would be confusing.) The fringe widths cannot be adjusted, and |
65 |
resources. |
individual windows cannot have their own fringe settings. A mouse |
66 |
|
click on the fringe no longer generates a special event. |
67 |
|
|
68 |
@item |
@item |
69 |
Colors and other face attributes are no longer supported on character |
Individual windows cannot have their own scroll-bar settings. |
|
terminals, so you no longer have to worry about terminals making faces |
|
|
at you. |
|
70 |
|
|
71 |
@item |
@item |
72 |
Emacs will respect your peace and quiet, aside from occasional beeps, |
You can no longer use @samp{default} in a @code{defface} to specify |
73 |
because there are no facilities for playing sounds. |
defaults for subsequent faces. |
74 |
|
|
75 |
@item |
@item |
76 |
Emacs 20 provides a complex and badly designed method for handling |
The function @code{display-supports-face-attributes-p} has been |
77 |
character composition for languages such as Thai that display several |
removed. In @code{defface} specifications, the @code{supports} |
78 |
letters as a single combined image. We are too ashamed of it to tell |
predicate is no longer supported. |
|
you any more than that. |
|
79 |
|
|
80 |
@item |
@item |
81 |
@code{delete-and-extract-region} has been deleted; instead, use |
@code{face-attribute-relative-p} and @code{merge-face-attribute} have |
82 |
@code{buffer-substring} to extract the text, then use |
been removed. |
|
@code{delete-region} to delete it. |
|
83 |
|
|
84 |
@item |
@item |
85 |
Regular expressions do not support the POSIX character classes |
The priority of faces in a list supplied by the @code{:inherit} face |
86 |
such as @samp{[:alpha:]}. All characters are created equal. |
attribute has been reversed. We like to make changes like this once |
87 |
|
in a while, to keep Emacs Lisp programmers on their toes. |
88 |
|
|
89 |
@item |
@item |
90 |
Hash tables have been eliminated; use alists instead. |
The @code{min-colors} face attribute, used for tailoring faces to |
91 |
|
limited-color displays, does not exist. If in doubt, use colors like |
92 |
|
``white'' and ``black'', which ought to be defined everywhere. |
93 |
|
|
94 |
@item |
@item |
95 |
The Lisp printer does not detect and report circular structure. That is |
The @code{tty-color-mode} frame parameter does not exist. You should |
96 |
ok, because the Lisp reader cannot recreate circular structure anyway. |
just trust the terminal capabilities database. |
97 |
However, there is a library @samp{cust-print.el} which can report |
@end itemize |
|
circular structure. |
|
98 |
|
|
99 |
@item |
@item |
100 |
Emacs provides its own implementation of scroll bars, instead |
Several simplifications have been made to mouse support: |
|
of using those of the X toolkit. They always use the frame foreground |
|
|
and background colors, so you cannot specify different colors for |
|
|
the scroll bars. |
|
101 |
|
|
102 |
|
@itemize @minus |
103 |
@item |
@item |
104 |
For simplicity, all @acronym{ASCII} characters now have the same height and width. |
Clicking @kbd{mouse-1} won't follow links, as that is alien to the |
105 |
(Certain characters, such as Chinese characters, always have twice |
spirit of Emacs. Therefore, the @code{follow-link} property doesn't |
106 |
the standard width.) All characters are created equal. |
has any special meaning, and the function @code{mouse-on-link-p} has |
107 |
|
been removed. |
108 |
|
|
109 |
@item |
@item |
110 |
You can now resize any Emacs window, and size changes in one window can |
The variable @code{void-text-area-pointer} has been removed, so the |
111 |
propagate to all others. Windows can no longer use |
mouse pointer shape remains unchanged when moving between valid text |
112 |
@code{window-size-fixed} to get special privileges. |
areas and void text areas. The @code{pointer} image and text |
113 |
|
properties are no longer supported. |
114 |
|
|
115 |
@item |
@item |
116 |
The function @code{intern-soft} no longer accepts a symbol as argument. |
Mouse events will no longer specify the timestamp, the object clicked, |
117 |
|
equivalent buffer positions (for marginal or fringe areas), glyph |
118 |
|
coordinates, or relative pixel coordinates. |
119 |
|
@end itemize |
120 |
|
|
121 |
@item |
@item |
122 |
The function @code{bitmap-spec-p} has been renamed to |
Simplifications have also been made to the way Emacs handles keymaps |
123 |
@code{pixmap-spec-p} to encourage users to practice Emacs' help system |
and key sequences: |
|
while trying to find it. |
|
124 |
|
|
125 |
|
@itemize @minus |
126 |
@item |
@item |
127 |
Tooltips operate using ordinary Emacs frames. |
The @code{kbd} macro has been removed. It isn't that difficult to |
128 |
|
write key sequences using the string and vector representations, and |
129 |
|
we want to encourage users to learn. |
130 |
|
|
131 |
@item |
@item |
132 |
Areas of the mode line are not mouse-sensitive; however, some mouse |
Emacs no longer supports key remapping. You can do pretty much the |
133 |
commands are available for the mode line as a whole. |
same thing with @code{substitute-key-definition}, or by advising the |
134 |
|
relevant command. |
135 |
|
|
136 |
@item |
@item |
137 |
Windows cannot have header lines. Conversely, there is no way to turn |
The @code{keymap} text and overlay property is now overridden by minor |
138 |
off the mode line of a window unless it is a minibuffer. |
mode keymaps, and will not work at the ends of text properties and |
139 |
|
overlays. |
140 |
|
|
141 |
@item |
@item |
142 |
Plain dashes are the only separators you can use in a menu. |
The functions @code{map-keymap}, @code{keymap-prompt}, and |
143 |
|
@code{current-active-maps} have been removed. |
144 |
|
@end itemize |
145 |
|
|
146 |
@item |
@item |
147 |
Vertical fractional scrolling does not exist. |
Process support has been pared down to a functional minimum. The |
148 |
|
functions @code{call-process-shell-command} and @code{process-file} |
149 |
|
have been deleted. Processes no longer maintain property lists, and |
150 |
|
they won't ask any questions when the user tries to exit Emacs (which |
151 |
|
would simply be rude.) The function @code{signal-process} won't |
152 |
|
accept a process object, only the process id; determining the process |
153 |
|
id from a process object is left as an exercise to the programmer. |
154 |
|
|
155 |
@item |
@item |
156 |
The functions @code{format} and @code{message} ignore and discard text |
Networking has also been simplified: @code{make-network-process} and |
157 |
properties. |
its various associated function have all been replaced with a single |
158 |
|
easy-to-use function, @code{open-network-stream}, which can't use UDP, |
159 |
|
can't act as a server, and can't set up non-blocking connections. |
160 |
|
Also, deleting a network process with @code{delete-process} won't call |
161 |
|
the sentinel. |
162 |
|
|
163 |
@item |
@item |
164 |
The function @code{propertize} does not exist; |
Many programming shortcuts have been deleted, to provide you with the |
165 |
you can get the job done using @code{set-text-properties}. |
enjoyment of ``rolling your own''. The macros @code{while-no-input}, |
166 |
|
@code{with-local-quit}, @code{with-selected-window}, |
167 |
|
@code{dynamic-completion-table}, and @code{lazy-completion-table} no |
168 |
|
longer exist. Also, there are no built-in progress reporters. |
169 |
|
|
170 |
@item |
@item |
171 |
Colors are supported only on window systems, not on text-only terminals. |
Variable aliases are no longer supported. Aliases are for functions, |
172 |
So the support functions for colors on text-only terminals are |
not for variables. |
|
not needed, and have been eliminated. |
|
173 |
|
|
174 |
@item |
@item |
175 |
The functions @code{color-values}, @code{color-defined-p} and |
The variables @code{most-positive-fixnum} and |
176 |
@code{defined-colors} have been renamed to @code{x-color-values}, |
@code{most-negative-fixnum} do not exist. On 32 bit machines, the |
177 |
@code{x-color-defined-p} and @code{x-defined-colors}. |
most positive integer is probably 134217727, and the most negative |
178 |
|
integer is probably -134217728. |
179 |
|
|
180 |
@item |
@item |
181 |
Windows cannot be made fixed-width or fixed-height; |
The functions @code{eql} and @code{macroexpand-all} are no longer |
182 |
Emacs will adjust the size of all windows when it needs to. |
available. However, you can find similar functions in the @code{cl} |
183 |
|
package. |
184 |
|
|
185 |
@item |
@item |
186 |
The string used as the value of the @code{before-string} or |
The list returned by @code{split-string} won't include null substrings |
187 |
@code{after-string} property must contain only characters that display |
for separators at the beginning or end of a string. If you want to |
188 |
as a single column---control characters, including tabs and newlines, |
check for such separators, do it separately. |
|
will give strange results. |
|
189 |
|
|
190 |
@item |
@item |
191 |
The minibuffer prompt does not actually appear in content of the |
The function @code{assoc-string} has been removed. Use |
192 |
minibuffer; it is displayed specially in the minibuffer window. |
@code{assoc-ignore-case} or @code{assoc-ignore-representation} (which |
193 |
|
are no longer obsolete.) |
194 |
|
|
195 |
@item |
@item |
196 |
The ``exclusive open'' feature of @code{write-region} |
The escape sequence @samp{\s} is always interpreted as a super |
197 |
has been eliminated; any non-@code{nil} value for the seventh |
modifier, never a space. |
|
argument now means to ask the user for confirmation. |
|
198 |
|
|
199 |
@item |
@item |
200 |
The function @code{buffer-size} always reports on the |
The variable @code{buffer-save-without-query} has been removed, to |
201 |
current buffer. |
prevent Emacs from sneakily saving buffers. Also, the hook |
202 |
|
@code{before-save-hook} has been removed, so if you want something to |
203 |
|
be done before saving, advise or redefine @code{basic-save-buffer}. |
204 |
|
|
205 |
@item |
@item |
206 |
The function @code{assq-delete-all} has itself been deleted. |
The variable @code{buffer-auto-save-file-format} has been renamed to |
207 |
So there! |
@code{auto-save-file-format}, and is no longer a permanent local. |
208 |
|
|
209 |
@item |
@item |
210 |
The keyword @code{:set-after} no longer does anything in |
The function @code{visited-file-modtime} now returns a cons, instead |
211 |
@code{defcustom}. |
of a list of two integers. The primitive @code{set-file-times} has |
212 |
|
been eliminated. |
213 |
|
|
214 |
@item |
@item |
215 |
The variable @code{small-temporary-file-directory} has no special |
The function @code{file-remote-p} is no longer available. |
|
meaning. There's only one variable for specifying which directory to |
|
|
use for temporary files, @code{temporary-file-directory}, but not all |
|
|
Emacs features use it anyway. Some use the @code{TMP} environment |
|
|
variable, and some use the @code{TMPDIR} environment variable. |
|
216 |
|
|
217 |
@item |
@item |
218 |
If the second argument of @code{save-some-buffers}, @var{pred}, is not |
When determining the filename extension, a leading dot in a filename |
219 |
@code{nil}, then the precise value no longer matters. Any |
is no longer ignored. Thus, @file{.emacs} is considered to have |
220 |
non-@code{nil} value means the same as @code{t}: offer to save each |
extension @file{emacs}, rather than being extensionless. |
|
non-file buffer that has a non-@code{nil} value for |
|
|
@code{buffer-offer-save}. |
|
221 |
|
|
222 |
@item |
@item |
223 |
The variable @code{inhibit-modification-hooks} |
Emacs looks for special file handlers in a more efficient manner: it |
224 |
has no special meaning. |
will choose the first matching handler in |
225 |
|
@code{file-name-handler-alist}, rather than trying to figure out which |
226 |
|
provides the closest match. |
227 |
|
|
228 |
@item |
@item |
229 |
The hook @code{fontification-functions} has been eliminated, |
The @code{predicate} argument for @code{read-file-name} has been |
230 |
but there are other hooks, such as @code{window-scroll-functions}, |
removed, and so have the variables @code{read-file-name-function} and |
231 |
that you can use to do a similar job. |
@code{read-file-name-completion-ignore-case}. The function |
232 |
|
@code{read-directory-name} has also been removed. |
233 |
|
|
234 |
@item |
@item |
235 |
The variable @code{redisplay-dont-pause} |
The functions @code{all-completions} and @code{try-completion} will no |
236 |
has no special meaning. |
longer accept lists of strings or hash tables (it will still accept |
237 |
|
alists, obarrays, and functions.) In addition, the function |
238 |
|
@code{test-completion} is no longer available. |
239 |
|
|
240 |
@item |
@item |
241 |
The hook @code{calendar-move-hook} has been deleted. |
Arbitrary Lisp functions can no longer be recorded into |
242 |
|
@code{buffer-undo-list}. As a consequence, @code{yank-undo-function} |
243 |
|
is obsolete, and has been removed. |
244 |
|
|
245 |
@item |
@item |
246 |
The function @code{move-to-column} treats any non-@code{nil} |
Emacs will never complain about commands that accumulate too much undo |
247 |
second argument just like @code{t}. |
information, so you no longer have to worry about binding |
248 |
@end itemize |
@code{buffer-undo-list} to @code{t} for such commands (though you may |
249 |
|
want to do that anyway, to avoid taking up unnecessary memory space.) |
250 |
|
|
251 |
@section Old Lisp Features in Emacs 20.3 |
@item |
252 |
|
Atomic change groups are no longer supported. |
253 |
|
|
254 |
Here are the most important of the features that you will learn |
@item |
255 |
to do without in Emacs 20.3: |
The list returned by @code{(match-data t)} no longer records the |
256 |
|
buffer as a final element. |
257 |
|
|
258 |
Here are changes in the Lisp language itself: |
@item |
259 |
|
The function @code{looking-back} has been removed, so we no longer |
260 |
|
have the benefit of hindsight. |
261 |
|
|
|
@itemize @bullet |
|
262 |
@item |
@item |
263 |
The functions @code{line-beginning-position} and @code{line-end-position} |
The variable @code{search-spaces-regexp} does not exist. Spaces |
264 |
have been eliminated. |
always stand for themselves in regular expression searches. |
265 |
|
|
266 |
@item |
@item |
267 |
The functions @code{directory-files-and-attributes}, |
The functions @code{skip-chars-forward} and @code{skip-chars-backward} |
268 |
@code{file-attributes-lessp}, and @code{file-expand-wildcards}, have |
no longer accepts character classes such as @samp{[:alpha:]}. All |
269 |
been eliminated. |
characters are created equal. |
270 |
|
|
271 |
@item |
@item |
272 |
The functions @code{decode-coding-region} and @code{encode-coding-region} |
The @code{yank-handler} text property no longer has any meaning. |
273 |
leave text properties untouched, in case that is useful. (It rarely makes |
Also, @code{yank-excluded-properties}, @code{insert-for-yank}, and |
274 |
any sense, though.) |
@code{insert-buffer-substring-as-yank} have all been removed. |
275 |
|
|
276 |
@item |
@item |
277 |
The functions @code{position-bytes} and @code{byte-to-position} have |
The variable @code{char-property-alias-alist} has been deleted. |
278 |
been eliminated. |
Aliases are for functions, not for properties. |
279 |
|
|
280 |
@item |
@item |
281 |
Temporary buffers made with @code{with-output-to-temp-buffer} are now |
The function @code{get-char-property-and-overlay} has been deleted. |
282 |
modifiable by default, and use Fundamental mode rather than Help mode. |
If you want the properties at a point, find the text properties at the |
283 |
|
point; then, find the overlays at the point, and find the properties |
284 |
|
on those overlays. |
285 |
|
|
286 |
@item |
@item |
287 |
The functions @code{sref} interprets its @var{index} argument as a |
Font Lock mode only manages @code{face} properties; you can't use |
288 |
number of bytes, not a number of characters. And the function |
font-lock keywords to specify arbitrary text properties for it to |
289 |
@code{char-bytes} actually tries to report on the number of bytes that a |
manage. After all, it is called Font Lock mode, not Arbitrary |
290 |
character occupies. |
Properties Lock mode. |
291 |
|
|
292 |
@item |
@item |
293 |
The function @code{process-running-child-p} has been eliminated. |
The arguments to @code{remove-overlays} are no longer optional. |
294 |
|
|
295 |
@item |
@item |
296 |
The function @code{interrupt-process} and similar functions no longer do |
In @code{replace-match}, the replacement text now inherits properties |
297 |
anything special when the second argument is @code{lambda}. |
from the surrounding text. |
298 |
|
|
299 |
@item |
@item |
300 |
The function @code{define-prefix-command} accepts only two arguments. |
@code{mode-line-format} no longer supports the @code{:propertize}, |
301 |
|
@code{%i}, and @code{%I} constructs. The function |
302 |
|
@code{format-mode-line} has been removed. |
303 |
|
|
304 |
@item |
@item |
305 |
The meaning of the second argument to @code{read-char}, |
The functions @code{window-inside-edges} and @code{window-body-height} |
306 |
@code{read-event}, and @code{read-char-exclusive} has been reversed: |
have been removed. You should do the relevant calculations yourself, |
307 |
they use the current input method if the argument is if @code{nil}. |
starting with @code{window-width} and @code{window-height}. |
308 |
|
|
309 |
@item |
@item |
310 |
The function @code{with-temp-message} has been eliminated. |
The functions @code{window-pixel-edges} and |
311 |
|
@code{window-inside-pixel-edges} have been removed. We prefer to |
312 |
|
think in terms of lines and columns, not pixel coordinates. (Sometime |
313 |
|
in the distant past, we will do away with graphical terminals |
314 |
|
entirely, in favor of text terminals.) For similar reasons, the |
315 |
|
functions @code{posn-at-point}, @code{posn-at-x-y}, and |
316 |
|
@code{pos-visible-in-window-p} have been removed. |
317 |
|
|
318 |
@item |
@item |
319 |
The function @code{clear-this-command-keys} has been eliminated. |
The macro @code{save-selected-window} only saves the selected window |
320 |
|
of the selected frame, so don't try selecting windows in other frames. |
321 |
|
|
322 |
@item |
@item |
323 |
The functions @code{gap-position} and @code{gap-size} have been eliminated. |
The function @code{minibufferp} is no longer available. |
324 |
|
|
325 |
@item |
@item |
326 |
In @code{modify-face}, an argument of @code{(nil)} has no special |
The function @code{modify-all-frames-parameters} has been removed (we |
327 |
|
always suspected the name was ungrammatical, anyway.) |
328 |
|
|
329 |
|
@item |
330 |
|
The @code{line-spacing} variable no longer accepts float values. |
331 |
|
|
332 |
|
@item |
333 |
|
The function @code{tool-bar-local-item-from-menu} has been deleted. |
334 |
|
If you need to make an entry in the tool bar, you can still use |
335 |
|
@code{tool-bar-add-item-from-menu}, but that modifies the binding in |
336 |
|
the source keymap instead of copying it into the local keymap. |
337 |
|
|
338 |
|
@item |
339 |
|
When determining the major mode, the file name takes precedence over |
340 |
|
the interpreter magic line. The variable @code{magic-mode-alist}, |
341 |
|
which associates certain buffer beginnings with major modes, has been |
342 |
|
eliminated. |
343 |
|
|
344 |
|
@item |
345 |
|
The hook @code{after-change-major-mode-hook} is not defined, and |
346 |
|
neither are @code{run-mode-hooks} and @code{delay-mode-hooks}. |
347 |
|
|
348 |
|
@item |
349 |
|
The variable @code{minor-mode-list} has been removed. |
350 |
|
|
351 |
|
@item |
352 |
|
@code{define-derived-mode} will copy abbrevs from the parent mode's |
353 |
|
abbrev table, instead of creating a new, empty abbrev table. |
354 |
|
|
355 |
|
@item |
356 |
|
There are no ``system'' abbrevs. When the user saves into the abbrevs |
357 |
|
file, all abbrevs are saved. |
358 |
|
|
359 |
|
@item |
360 |
|
The Warnings facility has been removed. Just use @code{error}. |
361 |
|
|
362 |
|
@item |
363 |
|
Several hook variables have been renamed to flout the Emacs naming |
364 |
|
conventions. We feel that consistency is boring, and having |
365 |
|
non-standard hook names encourages users to check the documentation |
366 |
|
before using a hook. For instance, the normal hook |
367 |
|
@code{find-file-hook} has been renamed to @code{find-file-hooks}, and |
368 |
|
the abnormal hook @code{delete-frame-functions} has been renamed to |
369 |
|
@code{delete-frame-hook}. |
370 |
|
|
371 |
|
@item |
372 |
|
The function @code{symbol-file} does not exist. If you want to know |
373 |
|
which file defined a function or variable, try grepping for it. |
374 |
|
|
375 |
|
@item |
376 |
|
The variable @code{load-history} records function definitions just |
377 |
|
like variable definitions, instead of indicating which functions were |
378 |
|
previously autoloaded. |
379 |
|
|
380 |
|
@item |
381 |
|
There is a new variable, @code{recursive-load-depth-limit}, which |
382 |
|
specifies how many times files can recursively load themselves; it is |
383 |
|
50 by default, and nil means infinity. Previously, Emacs signalled an |
384 |
|
error after just 3 recursive loads, which was boring. |
385 |
|
|
386 |
|
@item |
387 |
|
Byte-compiler warnings and error messages will leave out the line and |
388 |
|
character positions, in order to exercise your debugging skills. |
389 |
|
Also, there is no @code{with-no-warnings} macro---instead of |
390 |
|
suppressing compiler warnings, fix your code to avoid them! |
391 |
|
|
392 |
|
@item |
393 |
|
The function @code{unsafep} has been removed. |
394 |
|
|
395 |
|
@item |
396 |
|
File local variables can now specify a string with text properties. |
397 |
|
Since arbitrary Lisp expressions can be embedded in text properties, |
398 |
|
this can provide you with a great deal of flexibility and power. On |
399 |
|
the other hand, @code{safe-local-eval-forms} and the |
400 |
|
@code{safe-local-eval-function} function property have no special |
401 |
meaning. |
meaning. |
402 |
|
|
403 |
@item |
@item |
404 |
The base64 conversion functions have been eliminated. |
You can no longer use @code{char-displayable-p} to test if Emacs can |
405 |
|
display a certain character. |
406 |
|
|
407 |
|
@item |
408 |
|
The function @code{string-to-multibyte} is no longer available. |
409 |
|
|
410 |
|
@item |
411 |
|
The @code{translation-table-for-input} translation table has been |
412 |
|
removed. Also, translation hash tables are no longer available, so we |
413 |
|
don't need the functions @code{lookup-character} and |
414 |
|
@code{lookup-integer}. |
415 |
|
|
416 |
|
@item |
417 |
|
The @code{table} argument to @code{translate-region} can no longer be |
418 |
|
a char-table; it has to be a string. |
419 |
|
|
420 |
|
@item |
421 |
|
The functions @code{merge-coding-systems} and |
422 |
|
@code{decode-coding-inserted-region}, and the variable |
423 |
|
@code{auto-coding-functions}, have been deleted. The |
424 |
|
@code{mime-text-unsuitable} coding system property no longer has any |
425 |
|
special meaning. |
426 |
|
|
427 |
@item |
@item |
428 |
Wildcard support has been eliminated from @code{find-file} |
If pure storage overflows while dumping, Emacs won't tell you how much |
429 |
and allied functions. |
additional pure storage it needs. Try adding in increments of 20000, |
430 |
|
until you have enough. |
431 |
|
|
432 |
@item |
@item |
433 |
@code{file-attributes} returns the file size and the file inode number |
The variables @code{gc-elapsed}, @code{gcs-done}, and |
434 |
only as a simple integer. |
@code{post-gc-hook} have been garbage-collected. |
|
Also @acronym{UID} and @acronym{GID} are always returned as integers. |
|
435 |
@end itemize |
@end itemize |
436 |
|
|
437 |
@ignore |
@ignore |