6380
|
1 @c -*-texinfo-*-
|
|
2 @c This is part of the GNU Emacs Lisp Reference Manual.
|
49600
|
3 @c Copyright (C) 1999 Free Software Foundation, Inc.
|
6380
|
4 @c See the file elisp.texi for copying conditions.
|
29110
|
5
|
|
6 @c This node must have no pointers.
|
|
7
|
30904
|
8 @node Antinews, GNU Free Documentation License, System Interface, Top
|
25751
|
9 @appendix Emacs 20 Antinews
|
6380
|
10
|
|
11 For those users who live backwards in time, here is information about
|
25751
|
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.
|
6380
|
16
|
25751
|
17 @section Old Lisp Features in Emacs 20
|
6380
|
18
|
|
19 @itemize @bullet
|
|
20 @item
|
25751
|
21 The @code{push} and @code{pop} macros are not defined.
|
27654
|
22 Neither are @code{dolist} and @code{dotimes}.
|
25751
|
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
|
26770
|
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.)
|
26216
|
37
|
|
38 @item
|
25751
|
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
|
26216
|
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.
|
25751
|
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
|
26216
|
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
|
27654
|
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
|
26216
|
69 Emacs will respect your peace and quiet, aside from occasional beeps,
|
|
70 because there are no facilities for playing sounds.
|
25751
|
71
|
|
72 @item
|
27654
|
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
|
25751
|
84 Regular expressions do not support the POSIX character classes
|
|
85 such as @samp{[:alpha:]}. All characters are created equal.
|
6380
|
86
|
25751
|
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
|
52978
|
103 For simplicity, all @acronym{ASCII} characters now have the same height and width.
|
27301
|
104 (Certain characters, such as Chinese characters, always have twice
|
25751
|
105 the standard width.) All characters are created equal.
|
|
106
|
|
107 @item
|
27654
|
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
|
26216
|
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
|
25751
|
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.
|
6380
|
133
|
|
134 @item
|
25751
|
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
|
27654
|
142 The function @code{propertize} does not exist;
|
|
143 you can get the job done using @code{set-text-properties}.
|
|
144
|
|
145 @item
|
25751
|
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
|
26216
|
148 not needed, and have been eliminated.
|
25751
|
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
|
25875
|
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
|
25751
|
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
|
49600
|
179 The function @code{assq-delete-all} has itself been deleted.
|
25751
|
180 So there!
|
|
181
|
|
182 @item
|
26826
|
183 The keyword @code{:set-after} no longer does anything in
|
|
184 @code{defcustom}.
|
|
185
|
|
186 @item
|
25751
|
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
|
26769
|
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}
|
25751
|
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}.
|
6380
|
219 @end itemize
|
|
220
|
25751
|
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
|
21007
|
226 Here are changes in the Lisp language itself:
|
6380
|
227
|
|
228 @itemize @bullet
|
|
229 @item
|
25751
|
230 The functions @code{line-beginning-position} and @code{line-end-position}
|
|
231 have been eliminated.
|
6380
|
232
|
7601
|
233 @item
|
25751
|
234 The functions @code{directory-files-and-attributes},
|
|
235 @code{file-attributes-lessp}, and @code{file-expand-wildcards}, have
|
|
236 been eliminated.
|
21007
|
237
|
|
238 @item
|
25751
|
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.)
|
6380
|
242
|
7734
|
243 @item
|
25751
|
244 The functions @code{position-bytes} and @code{byte-to-position} have
|
|
245 been eliminated.
|
6380
|
246
|
|
247 @item
|
25751
|
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.
|
6380
|
250
|
|
251 @item
|
25751
|
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.
|
6380
|
256
|
|
257 @item
|
25751
|
258 The function @code{process-running-child-p} has been eliminated.
|
6380
|
259
|
7601
|
260 @item
|
25751
|
261 The function @code{interrupt-process} and similar functions no longer do
|
|
262 anything special when the second argument is @code{lambda}.
|
6380
|
263
|
7601
|
264 @item
|
25751
|
265 The function @code{define-prefix-command} accepts only two arguments.
|
6380
|
266
|
|
267 @item
|
25751
|
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}.
|
6380
|
271
|
|
272 @item
|
49600
|
273 The function @code{with-temp-message} has been eliminated.
|
6380
|
274
|
|
275 @item
|
49600
|
276 The function @code{clear-this-command-keys} has been eliminated.
|
6380
|
277
|
|
278 @item
|
49600
|
279 The functions @code{gap-position} and @code{gap-size} have been eliminated.
|
6380
|
280
|
|
281 @item
|
25751
|
282 In @code{modify-face}, an argument of @code{(nil)} has no special
|
|
283 meaning.
|
6380
|
284
|
|
285 @item
|
25751
|
286 The base64 conversion functions have been eliminated.
|
6380
|
287
|
|
288 @item
|
25751
|
289 Wildcard support has been eliminated from @code{find-file}
|
|
290 and allied functions.
|
6380
|
291
|
|
292 @item
|
25751
|
293 @code{file-attributes} returns the file size and the file inode number
|
|
294 only as a simple integer.
|
53108
|
295 Also @acronym{UID} and @acronym{GID} are always returned as integers.
|
6380
|
296 @end itemize
|
52401
|
297
|
|
298 @ignore
|
|
299 arch-tag: 1d0ef137-2bad-430e-ae8e-d820d569b5a6
|
|
300 @end ignore
|