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