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