mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-28 10:56:36 +00:00
296 lines
9.4 KiB
Plaintext
296 lines
9.4 KiB
Plaintext
@c -*-texinfo-*-
|
|
@c This is part of the GNU Emacs Lisp Reference Manual.
|
|
@c Copyright (C) 1999 Free Software Foundation, Inc.
|
|
@c See the file elisp.texi for copying conditions.
|
|
|
|
@c This node must have no pointers.
|
|
|
|
@node Antinews, GNU Free Documentation License, System Interface, Top
|
|
@appendix Emacs 20 Antinews
|
|
|
|
For those users who live backwards in time, here is information about
|
|
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.
|
|
|
|
@section Old Lisp Features in Emacs 20
|
|
|
|
@itemize @bullet
|
|
@item
|
|
The @code{push} and @code{pop} macros are not defined.
|
|
Neither are @code{dolist} and @code{dotimes}.
|
|
|
|
@item
|
|
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.
|
|
|
|
@item
|
|
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?
|
|
|
|
@item
|
|
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.)
|
|
|
|
@item
|
|
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.
|
|
|
|
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.
|
|
|
|
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.)
|
|
|
|
@item
|
|
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.
|
|
|
|
@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.
|
|
|
|
@item
|
|
Emacs will respect your peace and quiet, aside from occasional beeps,
|
|
because there are no facilities for playing sounds.
|
|
|
|
@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.
|
|
|
|
@item
|
|
Regular expressions do not support the POSIX character classes
|
|
such as @samp{[:alpha:]}. All characters are created equal.
|
|
|
|
@item
|
|
Hash tables have been eliminated; use alists instead.
|
|
|
|
@item
|
|
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.
|
|
|
|
@item
|
|
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.
|
|
|
|
@item
|
|
For simplicity, all @sc{ascii} characters now have the same height and width.
|
|
(Certain characters, such as Chinese characters, always have twice
|
|
the standard width.) All characters are created equal.
|
|
|
|
@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.
|
|
|
|
@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.
|
|
|
|
@item
|
|
Tooltips operate using ordinary Emacs frames.
|
|
|
|
@item
|
|
Areas of the mode line are not mouse-sensitive; however, some mouse
|
|
commands are available for the mode line as a whole.
|
|
|
|
@item
|
|
Windows cannot have header lines. Conversely, there is no way to turn
|
|
off the mode line of a window unless it is a minibuffer.
|
|
|
|
@item
|
|
Plain dashes are the only separators you can use in a menu.
|
|
|
|
@item
|
|
Vertical fractional scrolling does not exist.
|
|
|
|
@item
|
|
The functions @code{format} and @code{message} ignore and discard text
|
|
properties.
|
|
|
|
@item
|
|
The function @code{propertize} does not exist;
|
|
you can get the job done using @code{set-text-properties}.
|
|
|
|
@item
|
|
Colors are supported only on window systems, not on text-only terminals.
|
|
So the support functions for colors on text-only terminals are
|
|
not needed, and have been eliminated.
|
|
|
|
@item
|
|
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}.
|
|
|
|
@item
|
|
Windows cannot be made fixed-width or fixed-height;
|
|
Emacs will adjust the size of all windows when it needs to.
|
|
|
|
@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.
|
|
|
|
@item
|
|
The minibuffer prompt does not actually appear in content of the
|
|
minibuffer; it is displayed specially in the minibuffer window.
|
|
|
|
@item
|
|
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.
|
|
|
|
@item
|
|
The function @code{buffer-size} always reports on the
|
|
current buffer.
|
|
|
|
@item
|
|
The function @code{assq-delete-all} has itself been deleted.
|
|
So there!
|
|
|
|
@item
|
|
The keyword @code{:set-after} no longer does anything in
|
|
@code{defcustom}.
|
|
|
|
@item
|
|
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.
|
|
|
|
@item
|
|
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}
|
|
has no special meaning.
|
|
|
|
@item
|
|
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.
|
|
|
|
@item
|
|
The variable @code{redisplay-dont-pause}
|
|
has no special meaning.
|
|
|
|
@item
|
|
The hook @code{calendar-move-hook} has been deleted.
|
|
|
|
@item
|
|
The function @code{move-to-column} treats any non-@code{nil}
|
|
second argument just like @code{t}.
|
|
@end itemize
|
|
|
|
@section Old Lisp Features in Emacs 20.3
|
|
|
|
Here are the most important of the features that you will learn
|
|
to do without in Emacs 20.3:
|
|
|
|
Here are changes in the Lisp language itself:
|
|
|
|
@itemize @bullet
|
|
@item
|
|
The functions @code{line-beginning-position} and @code{line-end-position}
|
|
have been eliminated.
|
|
|
|
@item
|
|
The functions @code{directory-files-and-attributes},
|
|
@code{file-attributes-lessp}, and @code{file-expand-wildcards}, have
|
|
been eliminated.
|
|
|
|
@item
|
|
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.)
|
|
|
|
@item
|
|
The functions @code{position-bytes} and @code{byte-to-position} have
|
|
been eliminated.
|
|
|
|
@item
|
|
Temporary buffers made with @code{with-output-to-temp-buffer} are now
|
|
modifiable by default, and use Fundamental mode rather than Help mode.
|
|
|
|
@item
|
|
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.
|
|
|
|
@item
|
|
The function @code{process-running-child-p} has been eliminated.
|
|
|
|
@item
|
|
The function @code{interrupt-process} and similar functions no longer do
|
|
anything special when the second argument is @code{lambda}.
|
|
|
|
@item
|
|
The function @code{define-prefix-command} accepts only two arguments.
|
|
|
|
@item
|
|
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}.
|
|
|
|
@item
|
|
The function @code{with-temp-message} has been eliminated.
|
|
|
|
@item
|
|
The function @code{clear-this-command-keys} has been eliminated.
|
|
|
|
@item
|
|
The functions @code{gap-position} and @code{gap-size} have been eliminated.
|
|
|
|
@item
|
|
In @code{modify-face}, an argument of @code{(nil)} has no special
|
|
meaning.
|
|
|
|
@item
|
|
The base64 conversion functions have been eliminated.
|
|
|
|
@item
|
|
Wildcard support has been eliminated from @code{find-file}
|
|
and allied functions.
|
|
|
|
@item
|
|
@code{file-attributes} returns the file size and the file inode number
|
|
only as a simple integer.
|
|
@end itemize
|