Commit | Line | Data |
---|---|---|
0a9482c5 RS |
1 | @c -*-texinfo-*- |
2 | @c This is part of the GNU Emacs Lisp Reference Manual. | |
8241495d | 3 | @c Copyright (C) 1999 Free Software Foundation, Inc. |
0a9482c5 | 4 | @c See the file elisp.texi for copying conditions. |
46600ab1 GM |
5 | |
6 | @c This node must have no pointers. | |
7 | ||
e23a63a5 | 8 | @node Antinews, GNU Free Documentation License, System Interface, Top |
8241495d | 9 | @appendix Emacs 20 Antinews |
0a9482c5 RS |
10 | |
11 | For those users who live backwards in time, here is information about | |
8241495d RS |
12 | downgrading to Emacs version 20.4. We hope you will enjoy the greater |
13 | simplicity that results from the absence of many Emacs 21 features. In | |
14 | the following section, we carry this information back to Emacs | |
15 | 20.3, for which the previous printed edition of this manual was made. | |
0a9482c5 | 16 | |
8241495d | 17 | @section Old Lisp Features in Emacs 20 |
0a9482c5 RS |
18 | |
19 | @itemize @bullet | |
20 | @item | |
8241495d | 21 | The @code{push} and @code{pop} macros are not defined. |
1dffc5db | 22 | Neither are @code{dolist} and @code{dotimes}. |
0a9482c5 RS |
23 | |
24 | @item | |
8241495d RS |
25 | You can't display images in buffers. (Emacs is meant for editing text.) |
26 | With no images, there are no display margins, and no tool bars. | |
0a9482c5 | 27 | |
0a9482c5 | 28 | @item |
8241495d RS |
29 | The @code{display} text property has no special meaning; you can use it |
30 | freely in Lisp programs, with no effects except what you implement for | |
31 | yourself. With no images, who needs the @code{display} text property? | |
0a9482c5 | 32 | |
6b5c0a2e | 33 | @item |
77ba49d8 RS |
34 | The @code{field} text property has no special meaning; buffers are no |
35 | longer subdivided into fields. (The division of information into | |
36 | fields is always rather arbitrary.) | |
6b5c0a2e | 37 | |
0a9482c5 | 38 | @item |
8241495d RS |
39 | Faces have fewer attributes. The attributes @code{:family}, |
40 | @code{:height}, @code{:width}, @code{:weight}, and @code{:slant}, | |
41 | have been replaced with a font name, a ``bold'' flag, and an | |
42 | ``italic'' flag. | |
0a9482c5 | 43 | |
6b5c0a2e GM |
44 | The attributes @code{:overline}, @code{:strike-through} and @code{:box} |
45 | have been eliminated too. Underlining now always has the same color as | |
46 | the text---using any other color would be bad taste. | |
0a9482c5 | 47 | |
8241495d RS |
48 | With fewer font attributes, there are no functions |
49 | @code{set-face-attribute} and @code{face-attribute}. Instead, you | |
50 | access these attributes using functions such as @code{face-font}, and | |
51 | set them with functions such as @code{set-face-font}. (These functions | |
52 | were available in Emacs 21, but are not as useful there.) | |
0a9482c5 | 53 | |
8241495d | 54 | @item |
6b5c0a2e GM |
55 | The standard faces @code{scroll-bar}, @code{menu}, @code{border}, |
56 | @code{cursor}, and @code{mouse} have been eliminated. They are rather | |
57 | strange, as faces, and therefore shouldn't really exist. You can use | |
58 | @code{set-border-color}, @code{set-cursor-color} and | |
59 | @code{set-mouse-color} to specify the colors for the frame border, the | |
60 | text cursor, and the mouse cursor. To specify menu colors, use X | |
61 | resources. | |
62 | ||
1dffc5db RS |
63 | @item |
64 | Colors and other face attributes are no longer supported on character | |
65 | terminals, so you no longer have to worry about terminals making faces | |
66 | at you. | |
67 | ||
6b5c0a2e GM |
68 | @item |
69 | Emacs will respect your peace and quiet, aside from occasional beeps, | |
70 | because there are no facilities for playing sounds. | |
0a9482c5 | 71 | |
1dffc5db RS |
72 | @item |
73 | Emacs 20 provides a complex and badly designed method for handling | |
74 | character composition for languages such as Thai that display several | |
75 | letters as a single combined image. We are too ashamed of it to tell | |
76 | you any more than that. | |
77 | ||
78 | @item | |
79 | @code{delete-and-extract-region} has been deleted; instead, use | |
80 | @code{buffer-substring} to extract the text, then use | |
81 | @code{delete-region} to delete it. | |
82 | ||
0a9482c5 | 83 | @item |
8241495d RS |
84 | Regular expressions do not support the POSIX character classes |
85 | such as @samp{[:alpha:]}. All characters are created equal. | |
0a9482c5 RS |
86 | |
87 | @item | |
8241495d | 88 | Hash tables have been eliminated; use alists instead. |
0a9482c5 RS |
89 | |
90 | @item | |
8241495d RS |
91 | The Lisp printer does not detect and report circular structure. That is |
92 | ok, because the Lisp reader cannot recreate circular structure anyway. | |
93 | However, there is a library @samp{cust-print.el} which can report | |
94 | circular structure. | |
0a9482c5 RS |
95 | |
96 | @item | |
8241495d RS |
97 | Emacs provides its own implementation of scroll bars, instead |
98 | of using those of the X toolkit. They always use the frame foreground | |
99 | and background colors, so you cannot specify different colors for | |
100 | the scroll bars. | |
0a9482c5 RS |
101 | |
102 | @item | |
75708135 | 103 | For simplicity, all @sc{ascii} characters now have the same height and width. |
080a57ba | 104 | (Certain characters, such as Chinese characters, always have twice |
8241495d | 105 | the standard width.) All characters are created equal. |
0a9482c5 | 106 | |
1dffc5db RS |
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 | ||
6b5c0a2e GM |
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 | ||
0a9482c5 | 120 | @item |
8241495d | 121 | Tooltips operate using ordinary Emacs frames. |
0a9482c5 RS |
122 | |
123 | @item | |
8241495d RS |
124 | Areas of the mode line are not mouse-sensitive; however, some mouse |
125 | commands are available for the mode line as a whole. | |
0a9482c5 RS |
126 | |
127 | @item | |
8241495d RS |
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. | |
0a9482c5 RS |
130 | |
131 | @item | |
8241495d | 132 | Plain dashes are the only separators you can use in a menu. |
0a9482c5 | 133 | |
8241495d RS |
134 | @item |
135 | Vertical fractional scrolling does not exist. | |
0a9482c5 | 136 | |
574efc83 | 137 | @item |
8241495d RS |
138 | The functions @code{format} and @code{message} ignore and discard text |
139 | properties. | |
0a9482c5 | 140 | |
1dffc5db RS |
141 | @item |
142 | The function @code{propertize} does not exist; | |
143 | you can get the job done using @code{set-text-properties}. | |
144 | ||
574efc83 | 145 | @item |
8241495d RS |
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 | |
6b5c0a2e | 148 | not needed, and have been eliminated. |
0a9482c5 | 149 | |
574efc83 | 150 | @item |
8241495d RS |
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}. | |
0a9482c5 | 154 | |
0a9482c5 | 155 | @item |
8241495d RS |
156 | Windows cannot be made fixed-width or fixed-height; |
157 | Emacs will adjust the size of all windows when it needs to. | |
0a9482c5 | 158 | |
a40d4712 PR |
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 | ||
0a9482c5 | 165 | @item |
8241495d RS |
166 | The minibuffer prompt does not actually appear in content of the |
167 | minibuffer; it is displayed specially in the minibuffer window. | |
0a9482c5 RS |
168 | |
169 | @item | |
8241495d RS |
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. | |
0a9482c5 | 173 | |
ec221d13 | 174 | @item |
8241495d RS |
175 | The function @code{buffer-size} always reports on the |
176 | current buffer. | |
0a9482c5 | 177 | |
ec221d13 | 178 | @item |
2153fe6e | 179 | The function @code{assq-delete-all} has itself been deleted. |
8241495d | 180 | So there! |
0a9482c5 | 181 | |
390538c3 RS |
182 | @item |
183 | The keyword @code{:set-after} no longer does anything in | |
184 | @code{defcustom}. | |
185 | ||
0a9482c5 | 186 | @item |
8241495d RS |
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. | |
0a9482c5 RS |
192 | |
193 | @item | |
fcad2463 RS |
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} | |
8241495d | 202 | has no special meaning. |
0a9482c5 | 203 | |
969fe9b5 | 204 | @item |
8241495d RS |
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. | |
969fe9b5 | 208 | |
0a9482c5 | 209 | @item |
8241495d RS |
210 | The variable @code{redisplay-dont-pause} |
211 | has no special meaning. | |
0a9482c5 RS |
212 | |
213 | @item | |
8241495d | 214 | The hook @code{calendar-move-hook} has been deleted. |
0a9482c5 RS |
215 | |
216 | @item | |
8241495d RS |
217 | The function @code{move-to-column} treats any non-@code{nil} |
218 | second argument just like @code{t}. | |
0a9482c5 RS |
219 | @end itemize |
220 | ||
8241495d | 221 | @section Old Lisp Features in Emacs 20.3 |
0a9482c5 | 222 | |
8241495d RS |
223 | Here are the most important of the features that you will learn |
224 | to do without in Emacs 20.3: | |
0a9482c5 | 225 | |
8241495d | 226 | Here are changes in the Lisp language itself: |
0a9482c5 | 227 | |
8241495d | 228 | @itemize @bullet |
0a9482c5 | 229 | @item |
8241495d RS |
230 | The functions @code{line-beginning-position} and @code{line-end-position} |
231 | have been eliminated. | |
0a9482c5 RS |
232 | |
233 | @item | |
8241495d RS |
234 | The functions @code{directory-files-and-attributes}, |
235 | @code{file-attributes-lessp}, and @code{file-expand-wildcards}, have | |
236 | been eliminated. | |
0a9482c5 RS |
237 | |
238 | @item | |
8241495d RS |
239 | The functions @code{decode-coding-region} and @code{encode-coding-region} |
240 | leave text properties untouched, in case that is useful. (It rarely makes | |
241 | any sense, though.) | |
0a9482c5 RS |
242 | |
243 | @item | |
8241495d RS |
244 | The functions @code{position-bytes} and @code{byte-to-position} have |
245 | been eliminated. | |
0a9482c5 RS |
246 | |
247 | @item | |
8241495d RS |
248 | Temporary buffers made with @code{with-output-to-temp-buffer} are now |
249 | modifiable by default, and use Fundamental mode rather than Help mode. | |
0a9482c5 RS |
250 | |
251 | @item | |
8241495d RS |
252 | The functions @code{sref} interprets its @var{index} argument as a |
253 | number of bytes, not a number of characters. And the function | |
254 | @code{char-bytes} actually tries to report on the number of bytes that a | |
255 | character occupies. | |
0a9482c5 | 256 | |
574efc83 | 257 | @item |
8241495d | 258 | The function @code{process-running-child-p} has been eliminated. |
0a9482c5 | 259 | |
574efc83 | 260 | @item |
8241495d RS |
261 | The function @code{interrupt-process} and similar functions no longer do |
262 | anything special when the second argument is @code{lambda}. | |
0a9482c5 | 263 | |
574efc83 | 264 | @item |
8241495d | 265 | The function @code{define-prefix-command} accepts only two arguments. |
0a9482c5 | 266 | |
574efc83 | 267 | @item |
8241495d RS |
268 | The meaning of the second argument to @code{read-char}, |
269 | @code{read-event}, and @code{read-char-exclusive} has been reversed: | |
270 | they use the current input method if the argument is if @code{nil}. | |
0a9482c5 | 271 | |
0a9482c5 | 272 | @item |
8241495d | 273 | The function @code{with-temp-message} has been eliminated. |
0a9482c5 RS |
274 | |
275 | @item | |
8241495d | 276 | The function @code{clear-this-command-keys} has been eliminated. |
0a9482c5 RS |
277 | |
278 | @item | |
8241495d | 279 | The functions @code{gap-position} and @code{gap-size} have been eliminated. |
0a9482c5 RS |
280 | |
281 | @item | |
8241495d RS |
282 | In @code{modify-face}, an argument of @code{(nil)} has no special |
283 | meaning. | |
0a9482c5 RS |
284 | |
285 | @item | |
8241495d | 286 | The base64 conversion functions have been eliminated. |
0a9482c5 RS |
287 | |
288 | @item | |
8241495d RS |
289 | Wildcard support has been eliminated from @code{find-file} |
290 | and allied functions. | |
0a9482c5 RS |
291 | |
292 | @item | |
8241495d RS |
293 | @code{file-attributes} returns the file size and the file inode number |
294 | only as a simple integer. | |
0a9482c5 | 295 | @end itemize |