Trailing whitespace deleted.
[bpt/emacs.git] / lispref / anti.texi
CommitLineData
0a9482c5
RS
1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual.
177c0ea7 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
11For those users who live backwards in time, here is information about
8241495d
RS
12downgrading to Emacs version 20.4. We hope you will enjoy the greater
13simplicity that results from the absence of many Emacs 21 features. In
14the following section, we carry this information back to Emacs
1520.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 21The @code{push} and @code{pop} macros are not defined.
1dffc5db 22Neither are @code{dolist} and @code{dotimes}.
0a9482c5
RS
23
24@item
8241495d
RS
25You can't display images in buffers. (Emacs is meant for editing text.)
26With no images, there are no display margins, and no tool bars.
0a9482c5 27
0a9482c5 28@item
8241495d
RS
29The @code{display} text property has no special meaning; you can use it
30freely in Lisp programs, with no effects except what you implement for
31yourself. With no images, who needs the @code{display} text property?
0a9482c5 32
6b5c0a2e 33@item
77ba49d8
RS
34The @code{field} text property has no special meaning; buffers are no
35longer subdivided into fields. (The division of information into
36fields is always rather arbitrary.)
6b5c0a2e 37
0a9482c5 38@item
8241495d
RS
39Faces have fewer attributes. The attributes @code{:family},
40@code{:height}, @code{:width}, @code{:weight}, and @code{:slant},
41have been replaced with a font name, a ``bold'' flag, and an
42``italic'' flag.
0a9482c5 43
6b5c0a2e
GM
44The attributes @code{:overline}, @code{:strike-through} and @code{:box}
45have been eliminated too. Underlining now always has the same color as
46the text---using any other color would be bad taste.
0a9482c5 47
8241495d
RS
48With fewer font attributes, there are no functions
49@code{set-face-attribute} and @code{face-attribute}. Instead, you
50access these attributes using functions such as @code{face-font}, and
51set them with functions such as @code{set-face-font}. (These functions
52were available in Emacs 21, but are not as useful there.)
0a9482c5 53
8241495d 54@item
6b5c0a2e
GM
55The standard faces @code{scroll-bar}, @code{menu}, @code{border},
56@code{cursor}, and @code{mouse} have been eliminated. They are rather
57strange, 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
60text cursor, and the mouse cursor. To specify menu colors, use X
61resources.
62
1dffc5db
RS
63@item
64Colors and other face attributes are no longer supported on character
65terminals, so you no longer have to worry about terminals making faces
66at you.
67
6b5c0a2e
GM
68@item
69Emacs will respect your peace and quiet, aside from occasional beeps,
70because there are no facilities for playing sounds.
0a9482c5 71
1dffc5db
RS
72@item
73Emacs 20 provides a complex and badly designed method for handling
74character composition for languages such as Thai that display several
75letters as a single combined image. We are too ashamed of it to tell
76you 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
84Regular expressions do not support the POSIX character classes
85such as @samp{[:alpha:]}. All characters are created equal.
0a9482c5
RS
86
87@item
8241495d 88Hash tables have been eliminated; use alists instead.
0a9482c5
RS
89
90@item
8241495d
RS
91The Lisp printer does not detect and report circular structure. That is
92ok, because the Lisp reader cannot recreate circular structure anyway.
93However, there is a library @samp{cust-print.el} which can report
94circular structure.
0a9482c5
RS
95
96@item
8241495d
RS
97Emacs provides its own implementation of scroll bars, instead
98of using those of the X toolkit. They always use the frame foreground
99and background colors, so you cannot specify different colors for
100the scroll bars.
0a9482c5
RS
101
102@item
75708135 103For simplicity, all @sc{ascii} characters now have the same height and width.
080a57ba 104(Certain characters, such as Chinese characters, always have twice
8241495d 105the standard width.) All characters are created equal.
0a9482c5 106
1dffc5db
RS
107@item
108You can now resize any Emacs window, and size changes in one window can
109propagate to all others. Windows can no longer use
110@code{window-size-fixed} to get special privileges.
111
112@item
113The function @code{intern-soft} no longer accepts a symbol as argument.
114
6b5c0a2e
GM
115@item
116The function @code{bitmap-spec-p} has been renamed to
117@code{pixmap-spec-p} to encourage users to practice Emacs' help system
118while trying to find it.
119
0a9482c5 120@item
8241495d 121Tooltips operate using ordinary Emacs frames.
0a9482c5
RS
122
123@item
8241495d
RS
124Areas of the mode line are not mouse-sensitive; however, some mouse
125commands are available for the mode line as a whole.
0a9482c5
RS
126
127@item
8241495d
RS
128Windows cannot have header lines. Conversely, there is no way to turn
129off the mode line of a window unless it is a minibuffer.
0a9482c5
RS
130
131@item
8241495d 132Plain dashes are the only separators you can use in a menu.
0a9482c5 133
8241495d
RS
134@item
135Vertical fractional scrolling does not exist.
0a9482c5 136
574efc83 137@item
8241495d
RS
138The functions @code{format} and @code{message} ignore and discard text
139properties.
0a9482c5 140
1dffc5db
RS
141@item
142The function @code{propertize} does not exist;
143you can get the job done using @code{set-text-properties}.
144
574efc83 145@item
8241495d
RS
146Colors are supported only on window systems, not on text-only terminals.
147So the support functions for colors on text-only terminals are
6b5c0a2e 148not needed, and have been eliminated.
0a9482c5 149
574efc83 150@item
8241495d
RS
151The 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
156Windows cannot be made fixed-width or fixed-height;
157Emacs will adjust the size of all windows when it needs to.
0a9482c5 158
a40d4712
PR
159@item
160The string used as the value of the @code{before-string} or
161@code{after-string} property must contain only characters that display
162as a single column---control characters, including tabs and newlines,
163will give strange results.
164
0a9482c5 165@item
8241495d
RS
166The minibuffer prompt does not actually appear in content of the
167minibuffer; it is displayed specially in the minibuffer window.
0a9482c5
RS
168
169@item
8241495d
RS
170The ``exclusive open'' feature of @code{write-region}
171has been eliminated; any non-@code{nil} value for the seventh
172argument now means to ask the user for confirmation.
0a9482c5 173
ec221d13 174@item
8241495d
RS
175The function @code{buffer-size} always reports on the
176current buffer.
0a9482c5 177
ec221d13 178@item
177c0ea7 179The function @code{assq-delete-all} has itself been deleted.
8241495d 180So there!
0a9482c5 181
390538c3
RS
182@item
183The keyword @code{:set-after} no longer does anything in
184@code{defcustom}.
185
0a9482c5 186@item
8241495d
RS
187The variable @code{small-temporary-file-directory} has no special
188meaning. There's only one variable for specifying which directory to
189use for temporary files, @code{temporary-file-directory}, but not all
190Emacs features use it anyway. Some use the @code{TMP} environment
191variable, and some use the @code{TMPDIR} environment variable.
0a9482c5
RS
192
193@item
fcad2463
RS
194If the second argument of @code{save-some-buffers}, @var{pred}, is not
195@code{nil}, then the precise value no longer matters. Any
196non-@code{nil} value means the same as @code{t}: offer to save each
197non-file buffer that has a non-@code{nil} value for
198@code{buffer-offer-save}.
199
200@item
201The variable @code{inhibit-modification-hooks}
8241495d 202has no special meaning.
0a9482c5 203
969fe9b5 204@item
8241495d
RS
205The hook @code{fontification-functions} has been eliminated,
206but there are other hooks, such as @code{window-scroll-functions},
207that you can use to do a similar job.
969fe9b5 208
0a9482c5 209@item
8241495d
RS
210The variable @code{redisplay-dont-pause}
211has no special meaning.
0a9482c5
RS
212
213@item
8241495d 214The hook @code{calendar-move-hook} has been deleted.
0a9482c5
RS
215
216@item
8241495d
RS
217The function @code{move-to-column} treats any non-@code{nil}
218second 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
223Here are the most important of the features that you will learn
224to do without in Emacs 20.3:
0a9482c5 225
8241495d 226Here are changes in the Lisp language itself:
0a9482c5 227
8241495d 228@itemize @bullet
0a9482c5 229@item
8241495d
RS
230The functions @code{line-beginning-position} and @code{line-end-position}
231have been eliminated.
0a9482c5
RS
232
233@item
8241495d
RS
234The functions @code{directory-files-and-attributes},
235@code{file-attributes-lessp}, and @code{file-expand-wildcards}, have
236been eliminated.
0a9482c5
RS
237
238@item
8241495d
RS
239The functions @code{decode-coding-region} and @code{encode-coding-region}
240leave text properties untouched, in case that is useful. (It rarely makes
241any sense, though.)
0a9482c5
RS
242
243@item
8241495d
RS
244The functions @code{position-bytes} and @code{byte-to-position} have
245been eliminated.
0a9482c5
RS
246
247@item
8241495d
RS
248Temporary buffers made with @code{with-output-to-temp-buffer} are now
249modifiable by default, and use Fundamental mode rather than Help mode.
0a9482c5
RS
250
251@item
8241495d
RS
252The functions @code{sref} interprets its @var{index} argument as a
253number 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
255character occupies.
0a9482c5 256
574efc83 257@item
8241495d 258The function @code{process-running-child-p} has been eliminated.
0a9482c5 259
574efc83 260@item
8241495d
RS
261The function @code{interrupt-process} and similar functions no longer do
262anything special when the second argument is @code{lambda}.
0a9482c5 263
574efc83 264@item
8241495d 265The function @code{define-prefix-command} accepts only two arguments.
0a9482c5 266
574efc83 267@item
8241495d
RS
268The meaning of the second argument to @code{read-char},
269@code{read-event}, and @code{read-char-exclusive} has been reversed:
270they use the current input method if the argument is if @code{nil}.
0a9482c5 271
0a9482c5 272@item
177c0ea7 273The function @code{with-temp-message} has been eliminated.
0a9482c5
RS
274
275@item
177c0ea7 276The function @code{clear-this-command-keys} has been eliminated.
0a9482c5
RS
277
278@item
177c0ea7 279The functions @code{gap-position} and @code{gap-size} have been eliminated.
0a9482c5
RS
280
281@item
8241495d
RS
282In @code{modify-face}, an argument of @code{(nil)} has no special
283meaning.
0a9482c5
RS
284
285@item
8241495d 286The base64 conversion functions have been eliminated.
0a9482c5
RS
287
288@item
8241495d
RS
289Wildcard support has been eliminated from @code{find-file}
290and allied functions.
0a9482c5
RS
291
292@item
8241495d
RS
293@code{file-attributes} returns the file size and the file inode number
294only as a simple integer.
0a9482c5 295@end itemize