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