emacs/lispref/anti.texi

293 lines
9.4 KiB
Text
Raw Normal View History

1994-03-16 18:30:13 +00:00
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
1999-09-17 06:59:04 +00:00
@c Copyright (C) 1999 Free Software Foundation, Inc.
1994-03-16 18:30:13 +00:00
@c See the file elisp.texi for copying conditions.
1999-12-03 19:36:28 +00:00
@node Antinews, Tips, System Interface, Top
1999-09-17 06:59:04 +00:00
@appendix Emacs 20 Antinews
1994-03-16 18:30:13 +00:00
For those users who live backwards in time, here is information about
1999-09-17 06:59:04 +00:00
downgrading to Emacs version 20.4. We hope you will enjoy the greater
simplicity that results from the absence of many Emacs 21 features. In
the following section, we carry this information back to Emacs
20.3, for which the previous printed edition of this manual was made.
1994-03-16 18:30:13 +00:00
1999-09-17 06:59:04 +00:00
@section Old Lisp Features in Emacs 20
1994-03-16 18:30:13 +00:00
@itemize @bullet
@item
1999-09-17 06:59:04 +00:00
The @code{push} and @code{pop} macros are not defined.
2000-02-09 23:54:58 +00:00
Neither are @code{dolist} and @code{dotimes}.
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
You can't display images in buffers. (Emacs is meant for editing text.)
With no images, there are no display margins, and no tool bars.
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
The @code{display} text property has no special meaning; you can use it
freely in Lisp programs, with no effects except what you implement for
yourself. With no images, who needs the @code{display} text property?
1994-03-16 18:30:13 +00:00
1999-10-27 10:42:06 +00:00
@item
1999-12-08 19:01:55 +00:00
The @code{field} text property has no special meaning; buffers are no
longer subdivided into fields. (The division of information into
fields is always rather arbitrary.)
1999-10-27 10:42:06 +00:00
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
Faces have fewer attributes. The attributes @code{:family},
@code{:height}, @code{:width}, @code{:weight}, and @code{:slant},
have been replaced with a font name, a ``bold'' flag, and an
``italic'' flag.
1994-03-16 18:30:13 +00:00
1999-10-27 10:42:06 +00:00
The attributes @code{:overline}, @code{:strike-through} and @code{:box}
have been eliminated too. Underlining now always has the same color as
the text---using any other color would be bad taste.
1994-03-16 18:30:13 +00:00
1999-09-17 06:59:04 +00:00
With fewer font attributes, there are no functions
@code{set-face-attribute} and @code{face-attribute}. Instead, you
access these attributes using functions such as @code{face-font}, and
set them with functions such as @code{set-face-font}. (These functions
were available in Emacs 21, but are not as useful there.)
1994-03-16 18:30:13 +00:00
1999-09-17 06:59:04 +00:00
@item
1999-10-27 10:42:06 +00:00
The standard faces @code{scroll-bar}, @code{menu}, @code{border},
@code{cursor}, and @code{mouse} have been eliminated. They are rather
strange, as faces, and therefore shouldn't really exist. You can use
@code{set-border-color}, @code{set-cursor-color} and
@code{set-mouse-color} to specify the colors for the frame border, the
text cursor, and the mouse cursor. To specify menu colors, use X
resources.
2000-02-09 23:54:58 +00:00
@item
Colors and other face attributes are no longer supported on character
terminals, so you no longer have to worry about terminals making faces
at you.
1999-10-27 10:42:06 +00:00
@item
Emacs will respect your peace and quiet, aside from occasional beeps,
because there are no facilities for playing sounds.
1994-03-16 18:30:13 +00:00
2000-02-09 23:54:58 +00:00
@item
Emacs 20 provides a complex and badly designed method for handling
character composition for languages such as Thai that display several
letters as a single combined image. We are too ashamed of it to tell
you any more than that.
@item
@code{delete-and-extract-region} has been deleted; instead, use
@code{buffer-substring} to extract the text, then use
@code{delete-region} to delete it.
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
Regular expressions do not support the POSIX character classes
such as @samp{[:alpha:]}. All characters are created equal.
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
Hash tables have been eliminated; use alists instead.
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
The Lisp printer does not detect and report circular structure. That is
ok, because the Lisp reader cannot recreate circular structure anyway.
However, there is a library @samp{cust-print.el} which can report
circular structure.
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
Emacs provides its own implementation of scroll bars, instead
of using those of the X toolkit. They always use the frame foreground
and background colors, so you cannot specify different colors for
the scroll bars.
1994-03-16 18:30:13 +00:00
@item
2000-01-20 18:18:58 +00:00
For simplicity, all @sc{ascii} characters now have the same height and width.
2000-01-12 05:22:30 +00:00
(Certain characters, such as Chinese characters, always have twice
1999-09-17 06:59:04 +00:00
the standard width.) All characters are created equal.
1994-03-16 18:30:13 +00:00
2000-02-09 23:54:58 +00:00
@item
You can now resize any Emacs window, and size changes in one window can
propagate to all others. Windows can no longer use
@code{window-size-fixed} to get special privileges.
@item
The function @code{intern-soft} no longer accepts a symbol as argument.
1999-10-27 10:42:06 +00:00
@item
The function @code{bitmap-spec-p} has been renamed to
@code{pixmap-spec-p} to encourage users to practice Emacs' help system
while trying to find it.
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
Tooltips operate using ordinary Emacs frames.
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
Areas of the mode line are not mouse-sensitive; however, some mouse
commands are available for the mode line as a whole.
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
Windows cannot have header lines. Conversely, there is no way to turn
off the mode line of a window unless it is a minibuffer.
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
Plain dashes are the only separators you can use in a menu.
1994-03-16 18:30:13 +00:00
1999-09-17 06:59:04 +00:00
@item
Vertical fractional scrolling does not exist.
1994-03-16 18:30:13 +00:00
1994-05-21 02:28:15 +00:00
@item
1999-09-17 06:59:04 +00:00
The functions @code{format} and @code{message} ignore and discard text
properties.
1994-03-16 18:30:13 +00:00
2000-02-09 23:54:58 +00:00
@item
The function @code{propertize} does not exist;
you can get the job done using @code{set-text-properties}.
1994-05-21 02:28:15 +00:00
@item
1999-09-17 06:59:04 +00:00
Colors are supported only on window systems, not on text-only terminals.
So the support functions for colors on text-only terminals are
1999-10-27 10:42:06 +00:00
not needed, and have been eliminated.
1994-03-16 18:30:13 +00:00
1994-05-21 02:28:15 +00:00
@item
1999-09-17 06:59:04 +00:00
The functions @code{color-values}, @code{color-defined-p} and
@code{defined-colors} have been renamed to @code{x-color-values},
@code{x-color-defined-p} and @code{x-defined-colors}.
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
Windows cannot be made fixed-width or fixed-height;
Emacs will adjust the size of all windows when it needs to.
1994-03-16 18:30:13 +00:00
1999-10-05 23:26:05 +00:00
@item
The string used as the value of the @code{before-string} or
@code{after-string} property must contain only characters that display
as a single column---control characters, including tabs and newlines,
will give strange results.
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
The minibuffer prompt does not actually appear in content of the
minibuffer; it is displayed specially in the minibuffer window.
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
The ``exclusive open'' feature of @code{write-region}
has been eliminated; any non-@code{nil} value for the seventh
argument now means to ask the user for confirmation.
1994-03-16 18:30:13 +00:00
1994-05-28 14:52:37 +00:00
@item
1999-09-17 06:59:04 +00:00
The function @code{buffer-size} always reports on the
current buffer.
1994-03-16 18:30:13 +00:00
1994-05-28 14:52:37 +00:00
@item
1999-09-17 06:59:04 +00:00
The function @code{assoc-delete-all} has itself been deleted.
So there!
1994-03-16 18:30:13 +00:00
1999-12-13 04:42:21 +00:00
@item
The keyword @code{:set-after} no longer does anything in
@code{defcustom}.
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
The variable @code{small-temporary-file-directory} has no special
meaning. There's only one variable for specifying which directory to
use for temporary files, @code{temporary-file-directory}, but not all
Emacs features use it anyway. Some use the @code{TMP} environment
variable, and some use the @code{TMPDIR} environment variable.
1994-03-16 18:30:13 +00:00
@item
1999-12-08 18:45:56 +00:00
If the second argument of @code{save-some-buffers}, @var{pred}, is not
@code{nil}, then the precise value no longer matters. Any
non-@code{nil} value means the same as @code{t}: offer to save each
non-file buffer that has a non-@code{nil} value for
@code{buffer-offer-save}.
@item
The variable @code{inhibit-modification-hooks}
1999-09-17 06:59:04 +00:00
has no special meaning.
1994-03-16 18:30:13 +00:00
1998-04-20 17:43:57 +00:00
@item
1999-09-17 06:59:04 +00:00
The hook @code{fontification-functions} has been eliminated,
but there are other hooks, such as @code{window-scroll-functions},
that you can use to do a similar job.
1998-04-20 17:43:57 +00:00
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
The variable @code{redisplay-dont-pause}
has no special meaning.
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
The hook @code{calendar-move-hook} has been deleted.
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
The function @code{move-to-column} treats any non-@code{nil}
second argument just like @code{t}.
1994-03-16 18:30:13 +00:00
@end itemize
1999-09-17 06:59:04 +00:00
@section Old Lisp Features in Emacs 20.3
1994-03-16 18:30:13 +00:00
1999-09-17 06:59:04 +00:00
Here are the most important of the features that you will learn
to do without in Emacs 20.3:
1994-03-16 18:30:13 +00:00
1999-09-17 06:59:04 +00:00
Here are changes in the Lisp language itself:
1994-03-16 18:30:13 +00:00
1999-09-17 06:59:04 +00:00
@itemize @bullet
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
The functions @code{line-beginning-position} and @code{line-end-position}
have been eliminated.
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
The functions @code{directory-files-and-attributes},
@code{file-attributes-lessp}, and @code{file-expand-wildcards}, have
been eliminated.
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
The functions @code{decode-coding-region} and @code{encode-coding-region}
leave text properties untouched, in case that is useful. (It rarely makes
any sense, though.)
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
The functions @code{position-bytes} and @code{byte-to-position} have
been eliminated.
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
Temporary buffers made with @code{with-output-to-temp-buffer} are now
modifiable by default, and use Fundamental mode rather than Help mode.
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
The functions @code{sref} interprets its @var{index} argument as a
number of bytes, not a number of characters. And the function
@code{char-bytes} actually tries to report on the number of bytes that a
character occupies.
1994-03-16 18:30:13 +00:00
1994-05-21 02:28:15 +00:00
@item
1999-09-17 06:59:04 +00:00
The function @code{process-running-child-p} has been eliminated.
1994-03-16 18:30:13 +00:00
1994-05-21 02:28:15 +00:00
@item
1999-09-17 06:59:04 +00:00
The function @code{interrupt-process} and similar functions no longer do
anything special when the second argument is @code{lambda}.
1994-03-16 18:30:13 +00:00
1994-05-21 02:28:15 +00:00
@item
1999-09-17 06:59:04 +00:00
The function @code{define-prefix-command} accepts only two arguments.
1994-03-16 18:30:13 +00:00
1994-05-21 02:28:15 +00:00
@item
1999-09-17 06:59:04 +00:00
The meaning of the second argument to @code{read-char},
@code{read-event}, and @code{read-char-exclusive} has been reversed:
they use the current input method if the argument is if @code{nil}.
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
The function @code{with-temp-message} has been eliminated.
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
The function @code{clear-this-command-keys} has been eliminated.
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
The functions @code{gap-position} and @code{gap-size} have been eliminated.
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
In @code{modify-face}, an argument of @code{(nil)} has no special
meaning.
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
The base64 conversion functions have been eliminated.
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
Wildcard support has been eliminated from @code{find-file}
and allied functions.
1994-03-16 18:30:13 +00:00
@item
1999-09-17 06:59:04 +00:00
@code{file-attributes} returns the file size and the file inode number
only as a simple integer.
1994-03-16 18:30:13 +00:00
@end itemize