GNU Info

Info Node: (elisp)Antinews

(elisp)Antinews


Next: GNU Free Documentation License Prev: System Interface Up: Top
Enter node , (file) or (file)node

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.

Old Lisp Features in Emacs 20
=============================

   * The `push' and `pop' macros are not defined.  Neither are `dolist'
     and `dotimes'.

   * 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.

   * The `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 `display' text
     property?

   * The `field' text property has no special meaning; buffers are no
     longer subdivided into fields.  (The division of information into
     fields is always rather arbitrary.)

   * Faces have fewer attributes.  The attributes `:family', `:height',
     `:width', `:weight', and `:slant', have been replaced with a font
     name, a "bold" flag, and an "italic" flag.

     The attributes `:overline', `:strike-through' and `: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
     `set-face-attribute' and `face-attribute'.  Instead, you access
     these attributes using functions such as `face-font', and set them
     with functions such as `set-face-font'.  (These functions were
     available in Emacs 21, but are not as useful there.)

   * The standard faces `scroll-bar', `menu', `border', `cursor', and
     `mouse' have been eliminated.  They are rather strange, as faces,
     and therefore shouldn't really exist.  You can use
     `set-border-color', `set-cursor-color' and `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.

   * 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.

   * Emacs will respect your peace and quiet, aside from occasional
     beeps, because there are no facilities for playing sounds.

   * 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.

   * `delete-and-extract-region' has been deleted; instead, use
     `buffer-substring' to extract the text, then use `delete-region'
     to delete it.

   * Regular expressions do not support the POSIX character classes
     such as `[:alpha:]'.  All characters are created equal.

   * Hash tables have been eliminated; use alists instead.

   * 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 `cust-print.el'
     which can report circular structure.

   * 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.

   * For simplicity, all 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.

   * You can now resize any Emacs window, and size changes in one
     window can propagate to all others.  Windows can no longer use
     `window-size-fixed' to get special privileges.

   * The function `intern-soft' no longer accepts a symbol as argument.

   * The function `bitmap-spec-p' has been renamed to `pixmap-spec-p'
     to encourage users to practice Emacs' help system while trying to
     find it.

   * Tooltips operate using ordinary Emacs frames.

   * Areas of the mode line are not mouse-sensitive; however, some mouse
     commands are available for the mode line as a whole.

   * Windows cannot have header lines.  Conversely, there is no way to
     turn off the mode line of a window unless it is a minibuffer.

   * Plain dashes are the only separators you can use in a menu.

   * Vertical fractional scrolling does not exist.

   * The functions `format' and `message' ignore and discard text
     properties.

   * The function `propertize' does not exist; you can get the job done
     using `set-text-properties'.

   * 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.

   * The functions `color-values', `color-defined-p' and
     `defined-colors' have been renamed to `x-color-values',
     `x-color-defined-p' and `x-defined-colors'.

   * Windows cannot be made fixed-width or fixed-height; Emacs will
     adjust the size of all windows when it needs to.

   * The string used as the value of the `before-string' or
     `after-string' property must contain only characters that display
     as a single column--control characters, including tabs and
     newlines, will give strange results.

   * The minibuffer prompt does not actually appear in content of the
     minibuffer; it is displayed specially in the minibuffer window.

   * The "exclusive open" feature of `write-region' has been
     eliminated; any non-`nil' value for the seventh argument now means
     to ask the user for confirmation.

   * The function `buffer-size' always reports on the current buffer.

   * The function `assq-delete-all' has itself been deleted.  So there!

   * The keyword `:set-after' no longer does anything in `defcustom'.

   * The variable `small-temporary-file-directory' has no special
     meaning.  There's only one variable for specifying which directory
     to use for temporary files, `temporary-file-directory', but not all
     Emacs features use it anyway.  Some use the `TMP' environment
     variable, and some use the `TMPDIR' environment variable.

   * If the second argument of `save-some-buffers', PRED, is not `nil',
     then the precise value no longer matters.  Any non-`nil' value
     means the same as `t': offer to save each non-file buffer that has
     a non-`nil' value for `buffer-offer-save'.

   * The variable `inhibit-modification-hooks' has no special meaning.

   * The hook `fontification-functions' has been eliminated, but there
     are other hooks, such as `window-scroll-functions', that you can
     use to do a similar job.

   * The variable  `redisplay-dont-pause' has no special meaning.

   * The hook `calendar-move-hook' has been deleted.

   * The function `move-to-column' treats any non-`nil' second argument
     just like `t'.

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:

   * The functions `line-beginning-position' and `line-end-position'
     have been eliminated.

   * The functions `directory-files-and-attributes',
     `file-attributes-lessp', and `file-expand-wildcards', have been
     eliminated.

   * The functions `decode-coding-region' and `encode-coding-region'
     leave text properties untouched, in case that is useful.  (It
     rarely makes any sense, though.)

   * The functions `position-bytes' and `byte-to-position' have been
     eliminated.

   * Temporary buffers made with `with-output-to-temp-buffer' are now
     modifiable by default, and use Fundamental mode rather than Help
     mode.

   * The functions `sref' interprets its INDEX argument as a number of
     bytes, not a number of characters.  And the function `char-bytes'
     actually tries to report on the number of bytes that a character
     occupies.

   * The function `process-running-child-p' has been eliminated.

   * The function `interrupt-process' and similar functions no longer do
     anything special when the second argument is `lambda'.

   * The function `define-prefix-command' accepts only two arguments.

   * The meaning of the second argument to `read-char', `read-event',
     and `read-char-exclusive' has been reversed: they use the current
     input method if the argument is if `nil'.

   * The function `with-temp-message' has been eliminated.

   * The function `clear-this-command-keys' has been eliminated.

   * The functions `gap-position' and `gap-size' have been eliminated.

   * In `modify-face', an argument of `(nil)' has no special meaning.

   * The base64 conversion functions have been eliminated.

   * Wildcard support has been eliminated from `find-file' and allied
     functions.

   * `file-attributes' returns the file size and the file inode number
     only as a simple integer.


automatically generated by info2www version 1.2.2.9