emacs/lispref/anti.texi

249 lines
8 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.
1998-02-28 01:53:53 +00:00
@c Copyright (C) 1998 Free Software Foundation, Inc.
1994-03-16 18:30:13 +00:00
@c See the file elisp.texi for copying conditions.
@node Antinews, Index, Standard Hooks, Top
1998-02-28 01:53:53 +00:00
@appendix Emacs 19 Antinews
1994-03-16 18:30:13 +00:00
For those users who live backwards in time, here is information about
1998-02-28 01:53:53 +00:00
downgrading to Emacs version 19.34. We hope you will enjoy the greater
1998-05-19 03:45:57 +00:00
simplicity that results from the absence of many Emacs 20 features. In
1998-02-28 01:53:53 +00:00
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.
1994-03-16 18:30:13 +00:00
1998-02-28 01:53:53 +00:00
@section Old Lisp Features in Emacs 19
1994-03-16 18:30:13 +00:00
1998-02-28 01:53:53 +00:00
Here are the most important of the features that you will learn
to do without in Emacs 19:
1994-03-16 18:30:13 +00:00
@itemize @bullet
@item
1998-02-28 01:53:53 +00:00
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.
1994-03-16 18:30:13 +00:00
1998-02-28 01:53:53 +00:00
Valid character codes for text must be in the range 0 through 255.
Within this range, there are no invalid character codes.
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
The Custom facility has been replaced with a much simpler and more
general method of defining user option variables. Instead of
1998-05-19 03:45:57 +00:00
@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.
1994-03-16 18:30:13 +00:00
@end itemize
1998-02-28 01:53:53 +00:00
Here are changes in the Lisp language itself:
1994-03-16 18:30:13 +00:00
@itemize @bullet
@item
1998-02-28 01:53:53 +00:00
Symbols whose names start with @samp{:} are no longer special
in any way. They start out void, like most other symbols.
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
The macros @code{when} and @code{unless} have been deleted.
1994-03-16 18:30:13 +00:00
1994-05-21 02:28:15 +00:00
@item
1998-02-28 01:53:53 +00:00
The functions @code{caar}, @code{cadr}, @code{cdar} and @code{cddr}
no longer exist.
1994-03-16 18:30:13 +00:00
1994-05-21 02:28:15 +00:00
@item
1998-02-28 01:53:53 +00:00
The function @code{functionp} is now gone. If you don't know
by now whether something is a function, Emacs can't tell you.
1994-05-28 14:52:37 +00:00
@end itemize
1994-03-16 18:30:13 +00:00
1998-02-28 01:53:53 +00:00
Here are changes in handling strings and text.
1994-03-16 18:30:13 +00:00
@itemize @bullet
@item
1998-02-28 01:53:53 +00:00
The function @code{substring} works only on strings, not on vectors.
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
There are no more character categories.
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
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.
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
@code{format-time-string} no longer supports specified field width
or specified padding.
1994-03-16 18:30:13 +00:00
@item
1998-05-26 18:56:56 +00:00
The functions @code{split-string} and @code{string} no longer exist.
1998-02-28 01:53:53 +00:00
Neither does @code{store-substring} or @code{sref}.
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
All printing characters have the same width. Therefore, we have deleted
@code{char-width}, @code{string-width} and
@code{truncate-string-to-width}.
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
We have eliminated the functions @code{next-char-property-change} and
@code{previous-char-property-change} also.
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
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.
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
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.
1994-03-16 18:30:13 +00:00
@end itemize
1998-02-28 01:53:53 +00:00
Here are changes in other areas of Emacs Lisp:
1994-03-16 18:30:13 +00:00
1994-05-21 02:28:15 +00:00
@itemize @bullet
@item
1998-02-28 01:53:53 +00:00
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.
1994-03-16 18:30:13 +00:00
1994-05-21 02:28:15 +00:00
@item
1998-02-28 01:53:53 +00:00
The easy-mmode facility for defining minor modes is gone too.
1994-03-16 18:30:13 +00:00
1994-05-21 02:28:15 +00:00
@item
1998-02-28 01:53:53 +00:00
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.
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
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.
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
The ``mail user agent'' feature is gone.
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
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.
1994-03-16 18:30:13 +00:00
1994-05-28 14:52:37 +00:00
@item
1998-02-28 01:53:53 +00:00
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.
1994-03-16 18:30:13 +00:00
1994-05-28 14:52:37 +00:00
@item
1998-02-28 01:53:53 +00:00
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}.
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
We have got rid of the function @code{access-file}.
1994-03-16 18:30:13 +00:00
@item
1998-05-19 03:45:57 +00:00
Most of the minibuffer input functions no longer take a default value as
1998-02-28 01:53:53 +00:00
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.
1994-03-16 18:30:13 +00:00
1998-04-20 17:43:57 +00:00
@item
Only the simple menu item format is supported (@pxref{Simple Menu Items}).
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
You can still bind @code{x-resource-class} around a call to
@code{x-get-resource}, but it won't do anything special.
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
Wave goodbye to the hooks @code{before-make-frame-hook},
@code{after-make-frame-functions}, and
@code{window-configuration-change-hook},
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
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.
1994-03-16 18:30:13 +00:00
@end itemize
1998-02-28 01:53:53 +00:00
@section Onward into the Past!
1994-03-16 18:30:13 +00:00
1998-02-28 01:53:53 +00:00
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.
1994-03-16 18:30:13 +00:00
@itemize @bullet
@item
1998-02-28 01:53:53 +00:00
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.
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
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.
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
There is no function @code{overlays-in}.
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
The variable @code{print-length} applies only to lists, not to
vectors or strings.
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
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.
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
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.
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
The functions @code{keymap-parent} and @code{set-keymap-parent} are
gone. We expect keymaps to recognize their own parents.
1994-03-16 18:30:13 +00:00
1994-05-21 02:28:15 +00:00
@item
1998-02-28 01:53:53 +00:00
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.
1994-03-16 18:30:13 +00:00
1994-05-21 02:28:15 +00:00
@item
1998-02-28 01:53:53 +00:00
The interactive specification @samp{N} is gone now.
1994-03-16 18:30:13 +00:00
1994-05-21 02:28:15 +00:00
@item
1998-02-28 01:53:53 +00:00
There is no more @code{safe-length}. Don't try to be so safe! Did you
expect to live forever?
1994-03-16 18:30:13 +00:00
1994-05-21 02:28:15 +00:00
@item
1998-02-28 01:53:53 +00:00
We got rid of @code{insert-file-contents-literally}, because
programmers are too literal-minded anyway.
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
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.
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
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.
1994-03-16 18:30:13 +00:00
@item
1998-04-20 17:43:57 +00:00
You can't do date arithmetic with @code{encode-time} any more.
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
The functions @code{command-execute} and @code{call-interactively} no
longer accept the optional argument @var{keys}.
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
@code{get-buffer-window-list} is gone as well.
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
With the function @code{replace-match}, you can only replace the whole
match, not a subexpression of it.
1994-03-16 18:30:13 +00:00
@item
1998-02-28 01:53:53 +00:00
We eliminated the hooks @code{buffer-access-fontify-functions},
@code{window-scroll-functions}, and @code{redisplay-end-trigger-functions}.
1994-03-16 18:30:13 +00:00
@end itemize