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