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