]> code.delx.au - gnu-emacs/blob - lispref/anti.texi
Trailing whitespace deleted.
[gnu-emacs] / lispref / anti.texi
1 @c -*-texinfo-*-
2 @c This is part of the GNU Emacs Lisp Reference Manual.
3 @c Copyright (C) 1999 Free Software Foundation, Inc.
4 @c See the file elisp.texi for copying conditions.
5
6 @c This node must have no pointers.
7
8 @node Antinews, GNU Free Documentation License, System Interface, Top
9 @appendix Emacs 20 Antinews
10
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
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.
16
17 @section Old Lisp Features in Emacs 20
18
19 @itemize @bullet
20 @item
21 The @code{push} and @code{pop} macros are not defined.
22 Neither are @code{dolist} and @code{dotimes}.
23
24 @item
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.
27
28 @item
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?
32
33 @item
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.)
37
38 @item
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.
43
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.
47
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.)
53
54 @item
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
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
68 @item
69 Emacs will respect your peace and quiet, aside from occasional beeps,
70 because there are no facilities for playing sounds.
71
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
83 @item
84 Regular expressions do not support the POSIX character classes
85 such as @samp{[:alpha:]}. All characters are created equal.
86
87 @item
88 Hash tables have been eliminated; use alists instead.
89
90 @item
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.
95
96 @item
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.
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
220
221 @section Old Lisp Features in Emacs 20.3
222
223 Here are the most important of the features that you will learn
224 to do without in Emacs 20.3:
225
226 Here are changes in the Lisp language itself:
227
228 @itemize @bullet
229 @item
230 The functions @code{line-beginning-position} and @code{line-end-position}
231 have been eliminated.
232
233 @item
234 The functions @code{directory-files-and-attributes},
235 @code{file-attributes-lessp}, and @code{file-expand-wildcards}, have
236 been eliminated.
237
238 @item
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.)
242
243 @item
244 The functions @code{position-bytes} and @code{byte-to-position} have
245 been eliminated.
246
247 @item
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.
250
251 @item
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.
256
257 @item
258 The function @code{process-running-child-p} has been eliminated.
259
260 @item
261 The function @code{interrupt-process} and similar functions no longer do
262 anything special when the second argument is @code{lambda}.
263
264 @item
265 The function @code{define-prefix-command} accepts only two arguments.
266
267 @item
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}.
271
272 @item
273 The function @code{with-temp-message} has been eliminated.
274
275 @item
276 The function @code{clear-this-command-keys} has been eliminated.
277
278 @item
279 The functions @code{gap-position} and @code{gap-size} have been eliminated.
280
281 @item
282 In @code{modify-face}, an argument of @code{(nil)} has no special
283 meaning.
284
285 @item
286 The base64 conversion functions have been eliminated.
287
288 @item
289 Wildcard support has been eliminated from @code{find-file}
290 and allied functions.
291
292 @item
293 @code{file-attributes} returns the file size and the file inode number
294 only as a simple integer.
295 @end itemize