mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-15 09:47:20 +00:00
249 lines
8.0 KiB
Plaintext
249 lines
8.0 KiB
Plaintext
@c -*-texinfo-*-
|
|
@c This is part of the GNU Emacs Lisp Reference Manual.
|
|
@c Copyright (C) 1998 Free Software Foundation, Inc.
|
|
@c See the file elisp.texi for copying conditions.
|
|
@node Antinews, Index, Standard Hooks, Top
|
|
@appendix Emacs 19 Antinews
|
|
|
|
For those users who live backwards in time, here is information about
|
|
downgrading to Emacs version 19.34. We hope you will enjoy the greater
|
|
simplicity that results from the absence of many Emacs 20 features. In
|
|
the following section, we carry this information back as far as Emacs
|
|
19.29, for which the previous printed edition of this manual was made.
|
|
|
|
@section Old Lisp Features in Emacs 19
|
|
|
|
Here are the most important of the features that you will learn
|
|
to do without in Emacs 19:
|
|
|
|
@itemize @bullet
|
|
@item
|
|
In a great simplification, Emacs 19 supports ASCII characters only.
|
|
There are no multibyte characters, character sets, language
|
|
environments, coding systems, or input methods; all the functions that
|
|
specifically relate to them are gone as well.
|
|
|
|
Valid character codes for text must be in the range 0 through 255.
|
|
Within this range, there are no invalid character codes.
|
|
|
|
@item
|
|
The Custom facility has been replaced with a much simpler and more
|
|
general method of defining user option variables. Instead of
|
|
@code{defcustom}, which requires you to specify each user option's data
|
|
type and classify options into groups, all you have to do is write a
|
|
@code{defvar}. You should still start the documentation string with
|
|
@samp{*}, though.
|
|
@end itemize
|
|
|
|
Here are changes in the Lisp language itself:
|
|
|
|
@itemize @bullet
|
|
@item
|
|
Symbols whose names start with @samp{:} are no longer special
|
|
in any way. They start out void, like most other symbols.
|
|
|
|
@item
|
|
The macros @code{when} and @code{unless} have been deleted.
|
|
|
|
@item
|
|
The functions @code{caar}, @code{cadr}, @code{cdar} and @code{cddr}
|
|
no longer exist.
|
|
|
|
@item
|
|
The function @code{functionp} is now gone. If you don't know
|
|
by now whether something is a function, Emacs can't tell you.
|
|
@end itemize
|
|
|
|
Here are changes in handling strings and text.
|
|
|
|
@itemize @bullet
|
|
@item
|
|
The function @code{substring} works only on strings, not on vectors.
|
|
|
|
@item
|
|
There are no more character categories.
|
|
|
|
@item
|
|
When you compare strings with @code{equal}, it now compares
|
|
their string properties as well as their text. All must match,
|
|
or the strings are not equal.
|
|
|
|
@item
|
|
@code{format-time-string} no longer supports specified field width
|
|
or specified padding.
|
|
|
|
@item
|
|
The functions @code{split-string} and @code{string} no longer exist.
|
|
Neither does @code{store-substring} or @code{sref}.
|
|
|
|
@item
|
|
All printing characters have the same width. Therefore, we have deleted
|
|
@code{char-width}, @code{string-width} and
|
|
@code{truncate-string-to-width}.
|
|
|
|
@item
|
|
We have eliminated the functions @code{next-char-property-change} and
|
|
@code{previous-char-property-change} also.
|
|
|
|
@item
|
|
Syntax parsing now determines the syntax of each character from the
|
|
syntax table alone---not from text properties. This makes the syntax
|
|
codes @samp{|} and @samp{!}, which were meant for use with text
|
|
properties, useless; so we have deleted them.
|
|
|
|
@item
|
|
In the function @code{parse-partial-sexp}, passing @code{syntax-table}
|
|
as the sixth argument @var{commentstop} no longer has any special meaning.
|
|
And the return value has only eight elements.
|
|
@end itemize
|
|
|
|
Here are changes in other areas of Emacs Lisp:
|
|
|
|
@itemize @bullet
|
|
@item
|
|
The macros @code{save-current-buffer}, @code{with-current-buffer},
|
|
@code{with-temp-buffer}, @code{with-temp-file}, @code{save-selected-window},
|
|
and @code{with-output-to-string} are gone.
|
|
|
|
@item
|
|
The easy-mmode facility for defining minor modes is gone too.
|
|
|
|
@item
|
|
Process filters and sentinels must explicitly save the match data, with
|
|
@code{save-match-data}, or they will clobber the match data and
|
|
something horrible will happen.
|
|
|
|
@item
|
|
As part of our effort to loosen up, @code{batch-byte-compile-file} no
|
|
longer returns a nonzero status code if there is a compilation error.
|
|
|
|
@item
|
|
The ``mail user agent'' feature is gone.
|
|
|
|
@item
|
|
We have removed the functions @code{add-to-invisibility-spec} and
|
|
@code{remove-from-invisibility-spec}, so you should manipulate
|
|
the value of @code{buffer-invisibility-spec} by hand.
|
|
|
|
@item
|
|
The functions @code{face-documentation}, @code{face-bold-p},
|
|
@code{face-italic-p}, @code{set-face-bold-p}, @code{set-face-italic-p}
|
|
are gone. Instead, use @code{make-face-bold} and friends.
|
|
|
|
@item
|
|
All the functions that operate on a file now discard an extra redundant
|
|
directory name from the beginning of the file name---just like
|
|
@code{substitute-in-file-name}.
|
|
|
|
@item
|
|
We have got rid of the function @code{access-file}.
|
|
|
|
@item
|
|
Most of the minibuffer input functions no longer take a default value as
|
|
an argument. Also, they do not discard text properties from the result.
|
|
This means that if you insert text with text properties into the minibuffer,
|
|
the minibuffer value really will contain text properties.
|
|
|
|
@item
|
|
Only the simple menu item format is supported (@pxref{Simple Menu Items}).
|
|
|
|
@item
|
|
You can still bind @code{x-resource-class} around a call to
|
|
@code{x-get-resource}, but it won't do anything special.
|
|
|
|
@item
|
|
Wave goodbye to the hooks @code{before-make-frame-hook},
|
|
@code{after-make-frame-functions}, and
|
|
@code{window-configuration-change-hook},
|
|
|
|
@item
|
|
The functions and variables that deal with MS Windows NT/95
|
|
have been renamed to start with @samp{win32-} instead of @samp{w32-}.
|
|
This is because we admire Microsoft more each day as we go back
|
|
into the past.
|
|
@end itemize
|
|
|
|
@section Onward into the Past!
|
|
|
|
Here we go even further back, as far as Emacs 19.29, for which the
|
|
previous printed edition of the Emacs Lisp manual was made.
|
|
|
|
@itemize @bullet
|
|
@item
|
|
There are no char-tables or bool-vectors. Syntax tables, display
|
|
tables, and case tables are all vectors now, and the value of
|
|
@code{keyboard-translate-table} should be a vector or a string.
|
|
|
|
@item
|
|
There is only one kind of marker. When you insert text at the place
|
|
where a marker points, the marker always ends up before that text,
|
|
unless you use @code{insert-before-markers}, which puts all the markers
|
|
after the inserted text.
|
|
|
|
@item
|
|
There is no function @code{overlays-in}.
|
|
|
|
@item
|
|
The variable @code{print-length} applies only to lists, not to
|
|
vectors or strings.
|
|
|
|
@item
|
|
The function @code{convert-standard-filename} no longer exists, so each
|
|
Lisp package must independently figure out which file names to use for
|
|
its initialization files on each kind of operating system.
|
|
|
|
@item
|
|
The macro @code{with-timeout} has been eliminated, along with the
|
|
function @code{y-or-n-p-with-timeout}. Idle timers don't exist at all;
|
|
instead, maybe you can use @code{post-command-idle-hook} to do some of
|
|
the same job.
|
|
|
|
@item
|
|
The functions @code{keymap-parent} and @code{set-keymap-parent} are
|
|
gone. We expect keymaps to recognize their own parents.
|
|
|
|
@item
|
|
When you delete text and then undo a deletion, markers that were
|
|
originally inside the deleted text end up either at the beginning
|
|
or the end of it---not back in their original places.
|
|
|
|
@item
|
|
The interactive specification @samp{N} is gone now.
|
|
|
|
@item
|
|
There is no more @code{safe-length}. Don't try to be so safe! Did you
|
|
expect to live forever?
|
|
|
|
@item
|
|
We got rid of @code{insert-file-contents-literally}, because
|
|
programmers are too literal-minded anyway.
|
|
|
|
@item
|
|
As part of our continuing effort to help Lisp programmers to relax, we
|
|
threw out the function @code{error-message-string}. Don't worry so much
|
|
about errors! We all make mistakes.
|
|
|
|
@item
|
|
The keymap @code{special-event-map} is gone, because Emacs has no more
|
|
special events. If you want to hold a party in Emacs, please let us
|
|
know.
|
|
|
|
@item
|
|
You can't do date arithmetic with @code{encode-time} any more.
|
|
|
|
@item
|
|
The functions @code{command-execute} and @code{call-interactively} no
|
|
longer accept the optional argument @var{keys}.
|
|
|
|
@item
|
|
@code{get-buffer-window-list} is gone as well.
|
|
|
|
@item
|
|
With the function @code{replace-match}, you can only replace the whole
|
|
match, not a subexpression of it.
|
|
|
|
@item
|
|
We eliminated the hooks @code{buffer-access-fontify-functions},
|
|
@code{window-scroll-functions}, and @code{redisplay-end-trigger-functions}.
|
|
@end itemize
|