changeset 71203:25fa0038a52d

Reorganize NEWS and ONEWS.* files into NEWS for current major version and NEWS.21, NEWS.20, NEWS.19, NEWS.18, and NEWS.1-17 for older version. Update copyright notices.
author Kim F. Storm <storm@cua.dk>
date Sun, 04 Jun 2006 01:01:51 +0000
parents 86cedfd9ade6
children 9e79eef112d7
files etc/NEWS etc/NEWS.1-17 etc/NEWS.18 etc/NEWS.19 etc/NEWS.20 etc/NEWS.21 etc/ONEWS etc/ONEWS.1 etc/ONEWS.2 etc/ONEWS.3 etc/ONEWS.4
diffstat 11 files changed, 20116 insertions(+), 21644 deletions(-) [+]
line wrap: on
line diff
--- a/etc/NEWS	Sat Jun 03 22:51:32 2006 +0000
+++ b/etc/NEWS	Sun Jun 04 01:01:51 2006 +0000
@@ -1,12 +1,18 @@
-GNU Emacs NEWS -- history of user-visible changes.  2006-05-21
-Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+GNU Emacs NEWS -- history of user-visible changes.  2006-06-04
+Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
           Free Software Foundation, Inc.
 See the end for copying conditions.
 
 Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
-For older news, see the file ONEWS
-You can narrow news to the specific version by calling
-`view-emacs-news' with a prefix argument or by typing C-u C-h C-n.
+If possible, use M-x report-emacs-bug.
+
+This file is about changes in emacs version 22.
+
+See files NEWS.21, NEWS.20, NEWS.19, NEWS.18, and NEWS.1-17 for changes
+in older emacs versions.
+
+You can narrow news to a specific version by calling `view-emacs-news'
+with a prefix argument or by typing C-u C-h C-n.
 
 Temporary note:
  +++ indicates that the appropriate manual has already been updated.
@@ -5656,9345 +5662,14 @@
 return.  The macro `1value' suppresses a brown splotch for its argument.
 This macro is a no-op except during test-coverage -- then it signals
 an error if the argument actually returns differing values.
-
-* Installation changes in Emacs 21.3
-
-** Support for GNU/Linux on little-endian MIPS and on IBM S390 has
-been added.
-
-
-* Changes in Emacs 21.3
-
-** The obsolete C mode (c-mode.el) has been removed to avoid problems
-with Custom.
-
-** UTF-16 coding systems are available, encoding the same characters
-as mule-utf-8.
-
-** There is a new language environment for UTF-8 (set up automatically
-in UTF-8 locales).
-
-** Translation tables are available between equivalent characters in
-different Emacs charsets -- for instance `e with acute' coming from the
-Latin-1 and Latin-2 charsets.  User options `unify-8859-on-encoding-mode'
-and `unify-8859-on-decoding-mode' respectively turn on translation
-between ISO 8859 character sets (`unification') on encoding
-(e.g. writing a file) and decoding (e.g. reading a file).  Note that
-`unify-8859-on-encoding-mode' is useful and safe, but
-`unify-8859-on-decoding-mode' can cause text to change when you read
-it and write it out again without edits, so it is not generally advisable.
-By default `unify-8859-on-encoding-mode' is turned on.
-
-** In Emacs running on the X window system, the default value of
-`selection-coding-system' is now `compound-text-with-extensions'.
-
-If you want the old behavior, set selection-coding-system to
-compound-text, which may be significantly more efficient.  Using
-compound-text-with-extensions seems to be necessary only for decoding
-text from applications under XFree86 4.2, whose behavior is actually
-contrary to the compound text specification.
-
-
-* Installation changes in Emacs 21.2
-
-** Support for BSD/OS 5.0 has been added.
-
-** Support for AIX 5.1 was added.
-
-
-* Changes in Emacs 21.2
-
-** Emacs now supports compound-text extended segments in X selections.
-
-X applications can use `extended segments' to encode characters in
-compound text that belong to character sets which are not part of the
-list of approved standard encodings for X, e.g. Big5.  To paste
-selections with such characters into Emacs, use the new coding system
-compound-text-with-extensions as the value of selection-coding-system.
-
-** The default values of `tooltip-delay' and `tooltip-hide-delay'
-were changed.
-
-** On terminals whose erase-char is ^H (Backspace), Emacs
-now uses normal-erase-is-backspace-mode.
-
-** When the *scratch* buffer is recreated, its mode is set from
-initial-major-mode, which normally is lisp-interaction-mode,
-instead of using default-major-mode.
-
-** The new option `Info-scroll-prefer-subnodes' causes Info to behave
-like the stand-alone Info reader (from the GNU Texinfo package) as far
-as motion between nodes and their subnodes is concerned.  If it is t
-(the default), Emacs behaves as before when you type SPC in a menu: it
-visits the subnode pointed to by the first menu entry.  If this option
-is nil, SPC scrolls to the end of the current node, and only then goes
-to the first menu item, like the stand-alone reader does.
-
-This change was already in Emacs 21.1, but wasn't advertised in the
-NEWS.
-
-
-* Lisp Changes in Emacs 21.2
-
-** The meanings of scroll-up-aggressively and scroll-down-aggressively
-have been interchanged, so that the former now controls scrolling up,
-and the latter now controls scrolling down.
-
-** The variable `compilation-parse-errors-filename-function' can
-be used to transform filenames found in compilation output.
-
-
-* Installation Changes in Emacs 21.1
-
-See the INSTALL file for information on installing extra libraries and
-fonts to take advantage of the new graphical features and extra
-charsets in this release.
-
-** Support for GNU/Linux on IA64 machines has been added.
-
-** Support for LynxOS has been added.
-
-** There are new configure options associated with the support for
-images and toolkit scrollbars.  Use the --help option in `configure'
-to list them.
-
-** You can build a 64-bit Emacs for SPARC/Solaris systems which
-support 64-bit executables and also on Irix 6.5.  This increases the
-maximum buffer size.  See etc/MACHINES for instructions.  Changes to
-build on other 64-bit systems should be straightforward modulo any
-necessary changes to unexec.
-
-** There is a new configure option `--disable-largefile' to omit
-Unix-98-style support for large files if that is available.
-
-** There is a new configure option `--without-xim' that instructs
-Emacs to not use X Input Methods (XIM), if these are available.
-
-** `movemail' defaults to supporting POP.  You can turn this off using
-the --without-pop configure option, should that be necessary.
-
-** This version can be built for the Macintosh, but does not implement
-all of the new display features described below.  The port currently
-lacks unexec, asynchronous processes, and networking support.  See the
-"Emacs and the Mac OS" appendix in the Emacs manual, for the
-description of aspects specific to the Mac.
-
-** Note that the MS-Windows port does not yet implement various of the
-new display features described below.
-
-
-* Changes in Emacs 21.1
-
-** Emacs has a new redisplay engine.
-
-The new redisplay handles characters of variable width and height.
-Italic text can be used without redisplay problems.  Fonts containing
-oversized characters, i.e. characters larger than the logical height
-of a font can be used.  Images of various formats can be displayed in
-the text.
-
-** Emacs has a new face implementation.
-
-The new faces no longer fundamentally use X font names to specify the
-font.  Instead, each face has several independent attributes--family,
-height, width, weight and slant--that it may or may not specify.
-These attributes can be merged from various faces, and then together
-specify a font.
-
-Faces are supported on terminals that can display color or fonts.
-These terminal capabilities are auto-detected.  Details can be found
-under Lisp changes, below.
-
-** Emacs can display faces on TTY frames.
-
-Emacs automatically detects terminals that are able to display colors.
-Faces with a weight greater than normal are displayed extra-bright, if
-the terminal supports it.  Faces with a weight less than normal and
-italic faces are displayed dimmed, if the terminal supports it.
-Underlined faces are displayed underlined if possible.  Other face
-attributes such as `overline', `strike-through', and `box' are ignored
-on terminals.
-
-The command-line options `-fg COLOR', `-bg COLOR', and `-rv' are now
-supported on character terminals.
-
-Emacs automatically remaps all X-style color specifications to one of
-the colors supported by the terminal.  This means you could have the
-same color customizations that work both on a windowed display and on
-a TTY or when Emacs is invoked with the -nw option.
-
-** New default font is Courier 12pt under X.
-
-** Sound support
-
-Emacs supports playing sound files on GNU/Linux and FreeBSD (Voxware
-driver and native BSD driver, a.k.a. Luigi's driver).  Currently
-supported file formats are RIFF-WAVE (*.wav) and Sun Audio (*.au).
-You must configure Emacs with the option `--with-sound=yes' to enable
-sound support.
-
-** Emacs now resizes mini-windows if appropriate.
-
-If a message is longer than one line, or minibuffer contents are
-longer than one line, Emacs can resize the minibuffer window unless it
-is on a frame of its own.  You can control resizing and the maximum
-minibuffer window size by setting the following variables:
-
-- User option: max-mini-window-height
-
-Maximum height for resizing mini-windows.  If a float, it specifies a
-fraction of the mini-window frame's height.  If an integer, it
-specifies a number of lines.
-
-Default is 0.25.
-
-- User option: resize-mini-windows
-
-How to resize mini-windows.  If nil, don't resize.  If t, always
-resize to fit the size of the text.  If `grow-only', let mini-windows
-grow only, until they become empty, at which point they are shrunk
-again.
-
-Default is `grow-only'.
-
-** LessTif support.
-
-Emacs now runs with the LessTif toolkit (see
-<http://www.lesstif.org>).  You will need version 0.92.26, or later.
-
-** LessTif/Motif file selection dialog.
-
-When Emacs is configured to use LessTif or Motif, reading a file name
-from a menu will pop up a file selection dialog if `use-dialog-box' is
-non-nil.
-
-** File selection dialog on MS-Windows is supported.
-
-When a file is visited by clicking File->Open, the MS-Windows version
-now pops up a standard file selection dialog where you can select a
-file to visit.  File->Save As also pops up that dialog.
-
-** Toolkit scroll bars.
-
-Emacs now uses toolkit scroll bars if available.  When configured for
-LessTif/Motif, it will use that toolkit's scroll bar.  Otherwise, when
-configured for Lucid and Athena widgets, it will use the Xaw3d scroll
-bar if Xaw3d is available.  You can turn off the use of toolkit scroll
-bars by specifying `--with-toolkit-scroll-bars=no' when configuring
-Emacs.
-
-When you encounter problems with the Xaw3d scroll bar, watch out how
-Xaw3d is compiled on your system.  If the Makefile generated from
-Xaw3d's Imakefile contains a `-DNARROWPROTO' compiler option, and your
-Emacs system configuration file `s/your-system.h' does not contain a
-define for NARROWPROTO, you might consider adding it.  Take
-`s/freebsd.h' as an example.
-
-Alternatively, if you don't have access to the Xaw3d source code, take
-a look at your system's imake configuration file, for example in the
-directory `/usr/X11R6/lib/X11/config' (paths are different on
-different systems).  You will find files `*.cf' there.  If your
-system's cf-file contains a line like `#define NeedWidePrototypes NO',
-add a `#define NARROWPROTO' to your Emacs system configuration file.
-
-The reason for this is that one Xaw3d function uses `double' or
-`float' function parameters depending on the setting of NARROWPROTO.
-This is not a problem when Imakefiles are used because each system's
-imake configuration file contains the necessary information.  Since
-Emacs doesn't use imake, this has do be done manually.
-
-** Tool bar support.
-
-Emacs supports a tool bar at the top of a frame under X.  For details
-of how to define a tool bar, see the page describing Lisp-level
-changes.  Tool-bar global minor mode controls whether or not it is
-displayed and is on by default.  The appearance of the bar is improved
-if Emacs has been built with XPM image support.  Otherwise monochrome
-icons will be used.
-
-To make the tool bar more useful, we need contributions of extra icons
-for specific modes (with copyright assignments).
-
-** Tooltips.
-
-Tooltips are small X windows displaying a help string at the current
-mouse position.  The Lisp package `tooltip' implements them.  You can
-turn them off via the user option `tooltip-mode'.
-
-Tooltips also provides support for GUD debugging.  If activated,
-variable values can be displayed in tooltips by pointing at them with
-the mouse in source buffers.  You can customize various aspects of the
-tooltip display in the group `tooltip'.
-
-** Automatic Hscrolling
-
-Horizontal scrolling now happens automatically if
-`automatic-hscrolling' is set (the default).  This setting can be
-customized.
-
-If a window is scrolled horizontally with set-window-hscroll, or
-scroll-left/scroll-right (C-x <, C-x >), this serves as a lower bound
-for automatic horizontal scrolling.  Automatic scrolling will scroll
-the text more to the left if necessary, but won't scroll the text more
-to the right than the column set with set-window-hscroll etc.
-
-** When using a windowing terminal, each Emacs window now has a cursor
-of its own.  By default, when a window is selected, the cursor is
-solid; otherwise, it is hollow.  The user-option
-`cursor-in-non-selected-windows' controls how to display the
-cursor in non-selected windows.  If nil, no cursor is shown, if
-non-nil a hollow box cursor is shown.
-
-** Fringes to the left and right of windows are used to display
-truncation marks, continuation marks, overlay arrows and alike.  The
-foreground, background, and stipple of these areas can be changed by
-customizing face `fringe'.
-
-** The mode line under X is now drawn with shadows by default.
-You can change its appearance by modifying the face `mode-line'.
-In particular, setting the `:box' attribute to nil turns off the 3D
-appearance of the mode line.  (The 3D appearance makes the mode line
-occupy more space, and thus might cause the first or the last line of
-the window to be partially obscured.)
-
-The variable `mode-line-inverse-video', which was used in older
-versions of emacs to make the mode-line stand out, is now deprecated.
-However, setting it to nil will cause the `mode-line' face to be
-ignored, and mode-lines to be drawn using the default text face.
-
-** Mouse-sensitive mode line.
-
-Different parts of the mode line have been made mouse-sensitive on all
-systems which support the mouse.  Moving the mouse to a
-mouse-sensitive part in the mode line changes the appearance of the
-mouse pointer to an arrow, and help about available mouse actions is
-displayed either in the echo area, or in the tooltip window if you
-have enabled one.
-
-Currently, the following actions have been defined:
-
-- Mouse-1 on the buffer name in the mode line goes to the next buffer.
-
-- Mouse-3 on the buffer-name goes to the previous buffer.
-
-- Mouse-2 on the read-only or modified status in the mode line (`%' or
-`*') toggles the status.
-
-- Mouse-3 on the major mode name displays a major mode menu.
-
-- Mouse-3 on the mode name displays a minor-mode menu.
-
-** Hourglass pointer
-
-Emacs can optionally display an hourglass pointer under X.  You can
-turn the display on or off by customizing group `cursor'.
-
-** Blinking cursor
-
-M-x blink-cursor-mode toggles a blinking cursor under X and on
-terminals having terminal capabilities `vi', `vs', and `ve'.  Blinking
-and related parameters like frequency and delay can be customized in
-the group `cursor'.
-
-** New font-lock support mode `jit-lock-mode'.
-
-This support mode is roughly equivalent to `lazy-lock' but is
-generally faster.  It supports stealth and deferred fontification.
-See the documentation of the function `jit-lock-mode' for more
-details.
-
-Font-lock uses jit-lock-mode as default support mode, so you don't
-have to do anything to activate it.
-
-** The default binding of the Delete key has changed.
-
-The new user-option `normal-erase-is-backspace' can be set to
-determine the effect of the Delete and Backspace function keys.
-
-On window systems, the default value of this option is chosen
-according to the keyboard used.  If the keyboard has both a Backspace
-key and a Delete key, and both are mapped to their usual meanings, the
-option's default value is set to t, so that Backspace can be used to
-delete backward, and Delete can be used to delete forward.  On
-keyboards which either have only one key (usually labeled DEL), or two
-keys DEL and BS which produce the same effect, the option's value is
-set to nil, and these keys delete backward.
-
-If not running under a window system, setting this option accomplishes
-a similar effect by mapping C-h, which is usually generated by the
-Backspace key, to DEL, and by mapping DEL to C-d via
-`keyboard-translate'.  The former functionality of C-h is available on
-the F1 key.  You should probably not use this setting on a text-only
-terminal if you don't have both Backspace, Delete and F1 keys.
-
-Programmatically, you can call function normal-erase-is-backspace-mode
-to toggle the behavior of the Delete and Backspace keys.
-
-** The default for user-option `next-line-add-newlines' has been
-changed to nil, i.e. C-n will no longer add newlines at the end of a
-buffer by default.
-
-** The <home> and <end> keys now move to the beginning or end of the
-current line, respectively.  C-<home> and C-<end> move to the
-beginning and end of the buffer.
-
-** Emacs now checks for recursive loads of Lisp files.  If the
-recursion depth exceeds `recursive-load-depth-limit', an error is
-signaled.
-
-** When an error is signaled during the loading of the user's init
-file, Emacs now pops up the *Messages* buffer.
-
-** Emacs now refuses to load compiled Lisp files which weren't
-compiled with Emacs.  Set `load-dangerous-libraries' to t to change
-this behavior.
-
-The reason for this change is an incompatible change in XEmacs's byte
-compiler.  Files compiled with XEmacs can contain byte codes that let
-Emacs dump core.
-
-** Toggle buttons and radio buttons in menus.
-
-When compiled with LessTif (or Motif) support, Emacs uses toolkit
-widgets for radio and toggle buttons in menus.  When configured for
-Lucid, Emacs draws radio buttons and toggle buttons similar to Motif.
-
-** The menu bar configuration has changed.  The new configuration is
-more CUA-compliant.  The most significant change is that Options is
-now a separate menu-bar item, with Mule and Customize as its submenus.
-
-** Item Save Options on the Options menu allows saving options set
-using that menu.
-
-** Highlighting of trailing whitespace.
-
-When `show-trailing-whitespace' is non-nil, Emacs displays trailing
-whitespace in the face `trailing-whitespace'.  Trailing whitespace is
-defined as spaces or tabs at the end of a line.  To avoid busy
-highlighting when entering new text, trailing whitespace is not
-displayed if point is at the end of the line containing the
-whitespace.
-
-** C-x 5 1 runs the new command delete-other-frames which deletes
-all frames except the selected one.
-
-** The new user-option `confirm-kill-emacs' can be customized to
-let Emacs ask for confirmation before exiting.
-
-** The header line in an Info buffer is now displayed as an emacs
-header-line (which is like a mode-line, but at the top of the window),
-so that it remains visible even when the buffer has been scrolled.
-This behavior may be disabled by customizing the option
-`Info-use-header-line'.
-
-** Polish, Czech, German, and French translations of Emacs' reference card
-have been added.  They are named `pl-refcard.tex', `cs-refcard.tex',
-`de-refcard.tex' and `fr-refcard.tex'.  Postscript files are included.
-
-** An `Emacs Survival Guide', etc/survival.tex, is available.
-
-** A reference card for Dired has been added.  Its name is
-`dired-ref.tex'.  A French translation is available in
-`fr-drdref.tex'.
-
-** C-down-mouse-3 is bound differently.  Now if the menu bar is not
-displayed it pops up a menu containing the items which would be on the
-menu bar.  If the menu bar is displayed, it pops up the major mode
-menu or the Edit menu if there is no major mode menu.
-
-** Variable `load-path' is no longer customizable through Customize.
-
-You can no longer use `M-x customize-variable' to customize `load-path'
-because it now contains a version-dependent component.  You can still
-use `add-to-list' and `setq' to customize this variable in your
-`~/.emacs' init file or to modify it from any Lisp program in general.
-
-** C-u C-x = provides detailed information about the character at
-point in a pop-up window.
-
-** Emacs can now support 'wheeled' mice (such as the MS IntelliMouse)
-under XFree86.  To enable this, use the `mouse-wheel-mode' command, or
-customize the variable `mouse-wheel-mode'.
-
-The variables `mouse-wheel-follow-mouse' and `mouse-wheel-scroll-amount'
-determine where and by how much buffers are scrolled.
-
-** Emacs' auto-save list files are now by default stored in a
-sub-directory `.emacs.d/auto-save-list/' of the user's home directory.
-(On MS-DOS, this subdirectory's name is `_emacs.d/auto-save.list/'.)
-You can customize `auto-save-list-file-prefix' to change this location.
-
-** The function `getenv' is now callable interactively.
-
-** The new user-option `even-window-heights' can be set to nil
-to prevent `display-buffer' from evening out window heights.
-
-** The new command M-x delete-trailing-whitespace RET will delete the
-trailing whitespace within the current restriction.  You can also add
-this function to `write-file-hooks' or `local-write-file-hooks'.
-
-** When visiting a file with M-x find-file-literally, no newlines will
-be added to the end of the buffer even if `require-final-newline' is
-non-nil.
-
-** The new user-option `find-file-suppress-same-file-warnings' can be
-set to suppress warnings ``X and Y are the same file'' when visiting a
-file that is already visited under a different name.
-
-** The new user-option `electric-help-shrink-window' can be set to
-nil to prevent adjusting the help window size to the buffer size.
-
-** New command M-x describe-character-set reads a character set name
-and displays information about that.
-
-** The new variable `auto-mode-interpreter-regexp' contains a regular
-expression matching interpreters, for file mode determination.
-
-This regular expression is matched against the first line of a file to
-determine the file's mode in `set-auto-mode' when Emacs can't deduce a
-mode from the file's name.  If it matches, the file is assumed to be
-interpreted by the interpreter matched by the second group of the
-regular expression.  The mode is then determined as the mode
-associated with that interpreter in `interpreter-mode-alist'.
-
-** New function executable-make-buffer-file-executable-if-script-p is
-suitable as an after-save-hook as an alternative to `executable-chmod'.
-
-** The most preferred coding-system is now used to save a buffer if
-buffer-file-coding-system is `undecided' and it is safe for the buffer
-contents.  (The most preferred is set by set-language-environment or
-by M-x prefer-coding-system.)  Thus if you visit an ASCII file and
-insert a non-ASCII character from your current language environment,
-the file will be saved silently with the appropriate coding.
-Previously you would be prompted for a safe coding system.
-
-** The many obsolete language `setup-...-environment' commands have
-been removed -- use `set-language-environment'.
-
-** The new Custom option `keyboard-coding-system' specifies a coding
-system for keyboard input.
-
-** New variable `inhibit-iso-escape-detection' determines if Emacs'
-coding system detection algorithm should pay attention to ISO2022's
-escape sequences.  If this variable is non-nil, the algorithm ignores
-such escape sequences.  The default value is nil, and it is
-recommended not to change it except for the special case that you
-always want to read any escape code verbatim.  If you just want to
-read a specific file without decoding escape codes, use C-x RET c
-(`universal-coding-system-argument').  For instance, C-x RET c latin-1
-RET C-x C-f filename RET.
-
-** Variable `default-korean-keyboard' is initialized properly from the
-environment variable `HANGUL_KEYBOARD_TYPE'.
-
-** New command M-x list-charset-chars reads a character set name and
-displays all characters in that character set.
-
-** M-x set-terminal-coding-system (C-x RET t) now allows CCL-based
-coding systems such as cpXXX and cyrillic-koi8.
-
-** Emacs now attempts to determine the initial language environment
-and preferred and locale coding systems systematically from the
-LC_ALL, LC_CTYPE, and LANG environment variables during startup.
-
-** New language environments `Polish', `Latin-8' and `Latin-9'.
-Latin-8 and Latin-9 correspond respectively to the ISO character sets
-8859-14 (Celtic) and 8859-15 (updated Latin-1, with the Euro sign).
-GNU Intlfonts doesn't support these yet but recent X releases have
-8859-15.  See etc/INSTALL for information on obtaining extra fonts.
-There are new Leim input methods for Latin-8 and Latin-9 prefix (only)
-and Polish `slash'.
-
-** New language environments `Dutch' and `Spanish'.
-These new environments mainly select appropriate translations
-of the tutorial.
-
-** In Ethiopic language environment, special key bindings for
-function keys are changed as follows.  This is to conform to "Emacs
-Lisp Coding Convention".
-
-    new  command                            old-binding
-    ---  -------                            -----------
-    f3   ethio-fidel-to-sera-buffer         f5
-    S-f3 ethio-fidel-to-sera-region         f5
-    C-f3 ethio-fidel-to-sera-mail-or-marker f5
-
-    f4   ethio-sera-to-fidel-buffer         unchanged
-    S-f4 ethio-sera-to-fidel-region         unchanged
-    C-f4 ethio-sera-to-fidel-mail-or-marker unchanged
-
-    S-f5 ethio-toggle-punctuation           f3
-    S-f6 ethio-modify-vowel                 f6
-    S-f7 ethio-replace-space                f7
-    S-f8 ethio-input-special-character      f8
-    S-f9 ethio-replace-space                unchanged
-    C-f9 ethio-toggle-space                 f2
-
-** There are new Leim input methods.
-New input methods "turkish-postfix", "turkish-alt-postfix",
-"greek-mizuochi", "TeX", and "greek-babel" are now part of the Leim
-package.
-
-** The rule of input method "slovak" is slightly changed.  Now the
-rules for translating "q" and "Q" to "`" (backquote) are deleted, thus
-typing them inserts "q" and "Q" respectively.  Rules for translating
-"=q", "+q", "=Q", and "+Q" to "`" are also deleted.  Now, to input
-"`", you must type "=q".
-
-** When your terminal can't display characters from some of the ISO
-8859 character sets but can display Latin-1, you can display
-more-or-less mnemonic sequences of ASCII/Latin-1 characters instead of
-empty boxes (under a window system) or question marks (not under a
-window system).  Customize the option `latin1-display' to turn this
-on.
-
-** M-; now calls comment-dwim which tries to do something clever based
-on the context.  M-x kill-comment is now an alias to comment-kill,
-defined in newcomment.el.  You can choose different styles of region
-commenting with the variable `comment-style'.
-
-** New user options `display-time-mail-face' and
-`display-time-use-mail-icon' control the appearance of mode-line mail
-indicator used by the display-time package.  On a suitable display the
-indicator can be an icon and is mouse-sensitive.
-
-** On window-systems, additional space can be put between text lines
-on the display using several methods
-
-- By setting frame parameter `line-spacing' to PIXELS.  PIXELS must be
-a positive integer, and specifies that PIXELS number of pixels should
-be put below text lines on the affected frame or frames.
-
-- By setting X resource `lineSpacing', class `LineSpacing'.  This is
-equivalent to specifying the frame parameter.
-
-- By specifying `--line-spacing=N' or `-lsp N' on the command line.
-
-- By setting buffer-local variable `line-spacing'.  The meaning is
-the same, but applies to the a particular buffer only.
-
-** The new command `clone-indirect-buffer' can be used to create
-an indirect buffer that is a twin copy of the current buffer.  The
-command `clone-indirect-buffer-other-window', bound to C-x 4 c,
-does the same but displays the indirect buffer in another window.
-
-** New user options `backup-directory-alist' and
-`make-backup-file-name-function' control the placement of backups,
-typically in a single directory or in an invisible sub-directory.
-
-** New commands iso-iso2sgml and iso-sgml2iso convert between Latin-1
-characters and the corresponding SGML (HTML) entities.
-
-** New X resources recognized
-
-*** The X resource `synchronous', class `Synchronous', specifies
-whether Emacs should run in synchronous mode.  Synchronous mode
-is useful for debugging X problems.
-
-Example:
-
-  emacs.synchronous: true
-
-*** The X resource `visualClass, class `VisualClass', specifies the
-visual Emacs should use.  The resource's value should be a string of
-the form `CLASS-DEPTH', where CLASS is the name of the visual class,
-and DEPTH is the requested color depth as a decimal number.  Valid
-visual class names are
-
-  TrueColor
-  PseudoColor
-  DirectColor
-  StaticColor
-  GrayScale
-  StaticGray
-
-Visual class names specified as X resource are case-insensitive, i.e.
-`pseudocolor', `Pseudocolor' and `PseudoColor' all have the same
-meaning.
-
-The program `xdpyinfo' can be used to list the visual classes
-supported on your display, and which depths they have.  If
-`visualClass' is not specified, Emacs uses the display's default
-visual.
-
-Example:
-
-  emacs.visualClass: TrueColor-8
-
-*** The X resource `privateColormap', class `PrivateColormap',
-specifies that Emacs should use a private colormap if it is using the
-default visual, and that visual is of class PseudoColor.  Recognized
-resource values are `true' or `on'.
-
-Example:
-
-  emacs.privateColormap: true
-
-** Faces and frame parameters.
-
-There are four new faces `scroll-bar', `border', `cursor' and `mouse'.
-Setting the frame parameters `scroll-bar-foreground' and
-`scroll-bar-background' sets foreground and background color of face
-`scroll-bar' and vice versa.  Setting frame parameter `border-color'
-sets the background color of face `border' and vice versa.  Likewise
-for frame parameters `cursor-color' and face `cursor', and frame
-parameter `mouse-color' and face `mouse'.
-
-Changing frame parameter `font' sets font-related attributes of the
-`default' face and vice versa.  Setting frame parameters
-`foreground-color' or `background-color' sets the colors of the
-`default' face and vice versa.
-
-** New face `menu'.
-
-The face `menu' can be used to change colors and font of Emacs' menus.
-
-** New frame parameter `screen-gamma' for gamma correction.
-
-The new frame parameter `screen-gamma' specifies gamma-correction for
-colors.  Its value may be nil, the default, in which case no gamma
-correction occurs, or a number > 0, usually a float, that specifies
-the screen gamma of a frame's display.
-
-PC monitors usually have a screen gamma of 2.2.  smaller values result
-in darker colors.  You might want to try a screen gamma of 1.5 for LCD
-color displays.  The viewing gamma Emacs uses is 0.4545. (1/2.2).
-
-The X resource name of this parameter is `screenGamma', class
-`ScreenGamma'.
-
-** Tabs and variable-width text.
-
-Tabs are now displayed with stretch properties; the width of a tab is
-defined as a multiple of the normal character width of a frame, and is
-independent of the fonts used in the text where the tab appears.
-Thus, tabs can be used to line up text in different fonts.
-
-** Enhancements of the Lucid menu bar
-
-*** The Lucid menu bar now supports the resource "margin".
-
-	emacs.pane.menubar.margin: 5
-
-The default margin is 4 which makes the menu bar appear like the
-LessTif/Motif one.
-
-*** Arrows that indicate sub-menus are now drawn with shadows, as in
-LessTif and Motif.
-
-** A block cursor can be drawn as wide as the glyph under it under X.
-
-As an example: if a block cursor is over a tab character, it will be
-drawn as wide as that tab on the display.  To do this, set
-`x-stretch-cursor' to a non-nil value.
-
-** Empty display lines at the end of a buffer may be marked with a
-bitmap (this is similar to the tilde displayed by vi and Less).
-
-This behavior is activated by setting the buffer-local variable
-`indicate-empty-lines' to a non-nil value.  The default value of this
-variable is found in `default-indicate-empty-lines'.
-
-** There is a new "aggressive" scrolling method.
-
-When scrolling up because point is above the window start, if the
-value of the buffer-local variable `scroll-up-aggressively' is a
-number, Emacs chooses a new window start so that point ends up that
-fraction of the window's height from the top of the window.
-
-When scrolling down because point is below the window end, if the
-value of the buffer-local variable `scroll-down-aggressively' is a
-number, Emacs chooses a new window start so that point ends up that
-fraction of the window's height from the bottom of the window.
-
-** You can now easily create new *Info* buffers using either
-M-x clone-buffer, C-u m <entry> RET or C-u g <entry> RET.
-M-x clone-buffer can also be used on *Help* and several other special
-buffers.
-
-** The command `Info-search' now uses a search history.
-
-** Listing buffers with M-x list-buffers (C-x C-b) now shows
-abbreviated file names.  Abbreviations can be customized by changing
-`directory-abbrev-alist'.
-
-** A new variable, backup-by-copying-when-privileged-mismatch, gives
-the highest file uid for which backup-by-copying-when-mismatch will be
-forced on.  The assumption is that uids less than or equal to this
-value are special uids (root, bin, daemon, etc.--not real system
-users) and that files owned by these users should not change ownership,
-even if your system policy allows users other than root to edit them.
-
-The default is 200; set the variable to nil to disable the feature.
-
-** The rectangle commands now avoid inserting undesirable spaces,
-notably at the end of lines.
-
-All these functions have been rewritten to avoid inserting unwanted
-spaces, and an optional prefix now allows them to behave the old way.
-
-** The function `replace-rectangle' is an alias for `string-rectangle'.
-
-** The new command M-x string-insert-rectangle is like `string-rectangle',
-but inserts text instead of replacing it.
-
-** The new command M-x query-replace-regexp-eval acts like
-query-replace-regexp, but takes a Lisp expression which is evaluated
-after each match to get the replacement text.
-
-** M-x query-replace recognizes a new command `e' (or `E') that lets
-you edit the replacement string.
-
-** The new command mail-abbrev-complete-alias, bound to `M-TAB'
-(if you load the library `mailabbrev'), lets you complete mail aliases
-in the text, analogous to lisp-complete-symbol.
-
-** The variable `echo-keystrokes' may now have a floating point value.
-
-** If your init file is compiled (.emacs.elc), `user-init-file' is set
-to the source name (.emacs.el), if that exists, after loading it.
-
-** The help string specified for a menu-item whose definition contains
-the property `:help HELP' is now displayed under X, on MS-Windows, and
-MS-DOS, either in the echo area or with tooltips.  Many standard menus
-displayed by Emacs now have help strings.
-
---
-** New user option `read-mail-command' specifies a command to use to
-read mail from the menu etc.
-
-** The environment variable `EMACSLOCKDIR' is no longer used on MS-Windows.
-This environment variable was used when creating lock files.  Emacs on
-MS-Windows does not use this variable anymore.  This change was made
-before Emacs 21.1, but wasn't documented until now.
-
-** Highlighting of mouse-sensitive regions is now supported in the
-MS-DOS version of Emacs.
-
-** The new command `msdos-set-mouse-buttons' forces the MS-DOS version
-of Emacs to behave as if the mouse had a specified number of buttons.
-This comes handy with mice that don't report their number of buttons
-correctly.  One example is the wheeled mice, which report 3 buttons,
-but clicks on the middle button are not passed to the MS-DOS version
-of Emacs.
-
-** Customize changes
-
-*** Customize now supports comments about customized items.  Use the
-`State' menu to add comments, or give a prefix argument to
-M-x customize-set-variable or M-x customize-set-value.  Note that
-customization comments will cause the customizations to fail in
-earlier versions of Emacs.
-
-*** The new option `custom-buffer-done-function' says whether to kill
-Custom buffers when you've done with them or just bury them (the
-default).
-
-*** If Emacs was invoked with the `-q' or `--no-init-file' options, it
-does not allow you to save customizations in your `~/.emacs' init
-file.  This is because saving customizations from such a session would
-wipe out all the other customizationss you might have on your init
-file.
-
-** If Emacs was invoked with the `-q' or `--no-init-file' options, it
-does not save disabled and enabled commands for future sessions, to
-avoid overwriting existing customizations of this kind that are
-already in your init file.
-
-** New features in evaluation commands
-
-*** The commands to evaluate Lisp expressions, such as C-M-x in Lisp
-modes, C-j in Lisp Interaction mode, and M-:, now bind the variables
-print-level, print-length, and debug-on-error based on the new
-customizable variables eval-expression-print-level,
-eval-expression-print-length, and eval-expression-debug-on-error.
-
-The default values for the first two of these variables are 12 and 4
-respectively, which means that `eval-expression' now prints at most
-the first 12 members of a list and at most 4 nesting levels deep (if
-the list is longer or deeper than that, an ellipsis `...'  is
-printed).
-
-<RET> or <mouse-2> on the printed text toggles between an abbreviated
-printed representation and an unabbreviated one.
-
-The default value of eval-expression-debug-on-error is t, so any error
-during evaluation produces a backtrace.
-
-*** The function `eval-defun' (C-M-x) now loads Edebug and instruments
-code when called with a prefix argument.
-
-** CC mode changes.
-
-Note: This release contains changes that might not be compatible with
-current user setups (although it's believed that these
-incompatibilities will only show in very uncommon circumstances).
-However, since the impact is uncertain, these changes may be rolled
-back depending on user feedback.  Therefore there's no forward
-compatibility guarantee wrt the new features introduced in this
-release.
-
-*** The hardcoded switch to "java" style in Java mode is gone.
-CC Mode used to automatically set the style to "java" when Java mode
-is entered.  This has now been removed since it caused too much
-confusion.
-
-However, to keep backward compatibility to a certain extent, the
-default value for c-default-style now specifies the "java" style for
-java-mode, but "gnu" for all other modes (as before).  So you won't
-notice the change if you haven't touched that variable.
-
-*** New cleanups, space-before-funcall and compact-empty-funcall.
-Two new cleanups have been added to c-cleanup-list:
-
-space-before-funcall causes a space to be inserted before the opening
-parenthesis of a function call, which gives the style "foo (bar)".
-
-compact-empty-funcall causes any space before a function call opening
-parenthesis to be removed if there are no arguments to the function.
-It's typically useful together with space-before-funcall to get the
-style "foo (bar)" and "foo()".
-
-*** Some keywords now automatically trigger reindentation.
-Keywords like "else", "while", "catch" and "finally" have been made
-"electric" to make them reindent automatically when they continue an
-earlier statement.  An example:
-
-for (i = 0; i < 17; i++)
-  if (a[i])
-    res += a[i]->offset;
-else
-
-Here, the "else" should be indented like the preceding "if", since it
-continues that statement. CC Mode will automatically reindent it after
-the "else" has been typed in full, since it's not until then it's
-possible to decide whether it's a new statement or a continuation of
-the preceding "if".
-
-CC Mode uses Abbrev mode to achieve this, which is therefore turned on
-by default.
-
-*** M-a and M-e now moves by sentence in multiline strings.
-Previously these two keys only moved by sentence in comments, which
-meant that sentence movement didn't work in strings containing
-documentation or other natural language text.
-
-The reason it's only activated in multiline strings (i.e. strings that
-contain a newline, even when escaped by a '\') is to avoid stopping in
-the short strings that often reside inside statements.  Multiline
-strings almost always contain text in a natural language, as opposed
-to other strings that typically contain format specifications,
-commands, etc.  Also, it's not that bothersome that M-a and M-e misses
-sentences in single line strings, since they're short anyway.
-
-*** Support for autodoc comments in Pike mode.
-Autodoc comments for Pike are used to extract documentation from the
-source, like Javadoc in Java.  Pike mode now recognize this markup in
-comment prefixes and paragraph starts.
-
-*** The comment prefix regexps on c-comment-prefix may be mode specific.
-When c-comment-prefix is an association list, it specifies the comment
-line prefix on a per-mode basis, like c-default-style does.  This
-change came about to support the special autodoc comment prefix in
-Pike mode only.
-
-*** Better handling of syntactic errors.
-The recovery after unbalanced parens earlier in the buffer has been
-improved; CC Mode now reports them by dinging and giving a message
-stating the offending line, but still recovers and indent the
-following lines in a sane way (most of the time).  An "else" with no
-matching "if" is handled similarly.  If an error is discovered while
-indenting a region, the whole region is still indented and the error
-is reported afterwards.
-
-*** Lineup functions may now return absolute columns.
-A lineup function can give an absolute column to indent the line to by
-returning a vector with the desired column as the first element.
-
-*** More robust and warning-free byte compilation.
-Although this is strictly not a user visible change (well, depending
-on the view of a user), it's still worth mentioning that CC Mode now
-can be compiled in the standard ways without causing trouble.  Some
-code have also been moved between the subpackages to enhance the
-modularity somewhat.  Thanks to Martin Buchholz for doing the
-groundwork.
-
-*** c-style-variables-are-local-p now defaults to t.
-This is an incompatible change that has been made to make the behavior
-of the style system wrt global variable settings less confusing for
-non-advanced users.  If you know what this variable does you might
-want to set it to nil in your .emacs, otherwise you probably don't
-have to bother.
-
-Defaulting c-style-variables-are-local-p to t avoids the confusing
-situation that occurs when a user sets some style variables globally
-and edits both a Java and a non-Java file in the same Emacs session.
-If the style variables aren't buffer local in this case, loading of
-the second file will cause the default style (either "gnu" or "java"
-by default) to override the global settings made by the user.
-
-*** New initialization procedure for the style system.
-When the initial style for a buffer is determined by CC Mode (from the
-variable c-default-style), the global values of style variables now
-take precedence over the values specified by the chosen style.  This
-is different than the old behavior: previously, the style-specific
-settings would override the global settings.  This change makes it
-possible to do simple configuration in the intuitive way with
-Customize or with setq lines in one's .emacs file.
-
-By default, the global value of every style variable is the new
-special symbol set-from-style, which causes the value to be taken from
-the style system.  This means that in effect, only an explicit setting
-of a style variable will cause the "overriding" behavior described
-above.
-
-Also note that global settings override style-specific settings *only*
-when the initial style of a buffer is chosen by a CC Mode major mode
-function.  When a style is chosen in other ways --- for example, by a
-call like (c-set-style "gnu") in a hook, or via M-x c-set-style ---
-then the style-specific values take precedence over any global style
-values.  In Lisp terms, global values override style-specific values
-only when the new second argument to c-set-style is non-nil; see the
-function documentation for more info.
-
-The purpose of these changes is to make it easier for users,
-especially novice users, to do simple customizations with Customize or
-with setq in their .emacs files.  On the other hand, the new system is
-intended to be compatible with advanced users' customizations as well,
-such as those that choose styles in hooks or whatnot.  This new system
-is believed to be almost entirely compatible with current
-configurations, in spite of the changed precedence between style and
-global variable settings when a buffer's default style is set.
-
-(Thanks to Eric Eide for clarifying this explanation a bit.)
-
-**** c-offsets-alist is now a customizable variable.
-This became possible as a result of the new initialization behavior.
-
-This variable is treated slightly differently from the other style
-variables; instead of using the symbol set-from-style, it will be
-completed with the syntactic symbols it doesn't already contain when
-the style is first initialized.  This means it now defaults to the
-empty list to make all syntactic elements get their values from the
-style system.
-
-**** Compatibility variable to restore the old behavior.
-In case your configuration doesn't work with this change, you can set
-c-old-style-variable-behavior to non-nil to get the old behavior back
-as far as possible.
-
-*** Improvements to line breaking and text filling.
-CC Mode now handles this more intelligently and seamlessly wrt the
-surrounding code, especially inside comments.  For details see the new
-chapter about this in the manual.
-
-**** New variable to recognize comment line prefix decorations.
-The variable c-comment-prefix-regexp has been added to properly
-recognize the line prefix in both block and line comments.  It's
-primarily used to initialize the various paragraph recognition and
-adaptive filling variables that the text handling functions uses.
-
-**** New variable c-block-comment-prefix.
-This is a generalization of the now obsolete variable
-c-comment-continuation-stars to handle arbitrary strings.
-
-**** CC Mode now uses adaptive fill mode.
-This to make it adapt better to the paragraph style inside comments.
-
-It's also possible to use other adaptive filling packages inside CC
-Mode, notably Kyle E. Jones' Filladapt mode (http://wonderworks.com/).
-A new convenience function c-setup-filladapt sets up Filladapt for use
-inside CC Mode.
-
-Note though that the 2.12 version of Filladapt lacks a feature that
-causes it to work suboptimally when c-comment-prefix-regexp can match
-the empty string (which it commonly does).  A patch for that is
-available from the CC Mode web site (http://www.python.org/emacs/
-cc-mode/).
-
-**** The variables `c-hanging-comment-starter-p' and
-`c-hanging-comment-ender-p', which controlled how comment starters and
-enders were filled, are not used anymore.  The new version of the
-function `c-fill-paragraph' keeps the comment starters and enders as
-they were before the filling.
-
-**** It's now possible to selectively turn off auto filling.
-The variable c-ignore-auto-fill is used to ignore auto fill mode in
-specific contexts, e.g. in preprocessor directives and in string
-literals.
-
-**** New context sensitive line break function c-context-line-break.
-It works like newline-and-indent in normal code, and adapts the line
-prefix according to the comment style when used inside comments.  If
-you're normally using newline-and-indent, you might want to switch to
-this function.
-
-*** Fixes to IDL mode.
-It now does a better job in recognizing only the constructs relevant
-to IDL.  E.g. it no longer matches "class" as the beginning of a
-struct block, but it does match the CORBA 2.3 "valuetype" keyword.
-Thanks to Eric Eide.
-
-*** Improvements to the Whitesmith style.
-It now keeps the style consistently on all levels and both when
-opening braces hangs and when they don't.
-
-**** New lineup function c-lineup-whitesmith-in-block.
-
-*** New lineup functions c-lineup-template-args and c-indent-multi-line-block.
-See their docstrings for details.  c-lineup-template-args does a
-better job of tracking the brackets used as parens in C++ templates,
-and is used by default to line up continued template arguments.
-
-*** c-lineup-comment now preserves alignment with a comment on the
-previous line.  It used to instead preserve comments that started in
-the column specified by comment-column.
-
-*** c-lineup-C-comments handles "free form" text comments.
-In comments with a long delimiter line at the start, the indentation
-is kept unchanged for lines that start with an empty comment line
-prefix.  This is intended for the type of large block comments that
-contain documentation with its own formatting.  In these you normally
-don't want CC Mode to change the indentation.
-
-*** The `c' syntactic symbol is now relative to the comment start
-instead of the previous line, to make integers usable as lineup
-arguments.
-
-*** All lineup functions have gotten docstrings.
-
-*** More preprocessor directive movement functions.
-c-down-conditional does the reverse of c-up-conditional.
-c-up-conditional-with-else and c-down-conditional-with-else are
-variants of these that also stops at "#else" lines (suggested by Don
-Provan).
-
-*** Minor improvements to many movement functions in tricky situations.
-
-** Dired changes
-
-*** New variable `dired-recursive-deletes' determines if the delete
-command will delete non-empty directories recursively.  The default
-is, delete only empty directories.
-
-*** New variable `dired-recursive-copies' determines if the copy
-command will copy directories recursively.  The default is, do not
-copy directories recursively.
-
-*** In command `dired-do-shell-command' (usually bound to `!') a `?'
-in the shell command has a special meaning similar to `*', but with
-the difference that the command will be run on each file individually.
-
-*** The new command `dired-find-alternate-file' (usually bound to `a')
-replaces the Dired buffer with the buffer for an alternate file or
-directory.
-
-*** The new command `dired-show-file-type' (usually bound to `y') shows
-a message in the echo area describing what type of file the point is on.
-This command invokes the external program `file' do its work, and so
-will only work on systems with that program, and will be only as
-accurate or inaccurate as it is.
-
-*** Dired now properly handles undo changes of adding/removing `-R'
-from ls switches.
-
-*** Dired commands that prompt for a destination file now allow the use
-of the `M-n' command in the minibuffer to insert the source filename,
-which the user can then edit.  This only works if there is a single
-source file, not when operating on multiple marked files.
-
-** Gnus changes.
-
-The Gnus NEWS entries are short, but they reflect sweeping changes in
-four areas: Article display treatment, MIME treatment,
-internationalization and mail-fetching.
-
-*** The mail-fetching functions have changed.  See the manual for the
-many details.  In particular, all procmail fetching variables are gone.
-
-If you used procmail like in
-
-(setq nnmail-use-procmail t)
-(setq nnmail-spool-file 'procmail)
-(setq nnmail-procmail-directory "~/mail/incoming/")
-(setq nnmail-procmail-suffix "\\.in")
-
-this now has changed to
-
-(setq mail-sources
-      '((directory :path "~/mail/incoming/"
-		   :suffix ".in")))
-
-More information is available in the info doc at Select Methods ->
-Getting Mail -> Mail Sources
-
-*** Gnus is now a MIME-capable reader.  This affects many parts of
-Gnus, and adds a slew of new commands.  See the manual for details.
-Separate MIME packages like RMIME, mime-compose etc., will probably no
-longer work; remove them and use the native facilities.
-
-The FLIM/SEMI package still works with Emacs 21, but if you want to
-use the native facilities, you must remove any mailcap.el[c] that was
-installed by FLIM/SEMI version 1.13 or earlier.
-
-*** Gnus has also been multilingualized.  This also affects too many
-parts of Gnus to summarize here, and adds many new variables.  There
-are built-in facilities equivalent to those of gnus-mule.el, which is
-now just a compatibility layer.
-
-*** gnus-mule.el is now just a compatibility layer over the built-in
-Gnus facilities.
-
-*** gnus-auto-select-first can now be a function to be
-called to position point.
-
-*** The user can now decide which extra headers should be included in
-summary buffers and NOV files.
-
-*** `gnus-article-display-hook' has been removed.  Instead, a number
-of variables starting with `gnus-treat-' have been added.
-
-*** The Gnus posting styles have been redone again and now work in a
-subtly different manner.
-
-*** New web-based backends have been added: nnslashdot, nnwarchive
-and nnultimate.  nnweb has been revamped, again, to keep up with
-ever-changing layouts.
-
-*** Gnus can now read IMAP mail via nnimap.
-
-*** There is image support of various kinds and some sound support.
-
-** Changes in Texinfo mode.
-
-*** A couple of new key bindings have been added for inserting Texinfo
-macros
-
-  Key binding	Macro
-  -------------------------
-  C-c C-c C-s	@strong
-  C-c C-c C-e	@emph
-  C-c C-c u	@uref
-  C-c C-c q     @quotation
-  C-c C-c m	@email
-  C-c C-o       @<block> ... @end <block>
-  M-RET         @item
-
-*** The " key now inserts either " or `` or '' depending on context.
-
-** Changes in Outline mode.
-
-There is now support for Imenu to index headings.  A new command
-`outline-headers-as-kill' copies the visible headings in the region to
-the kill ring, e.g. to produce a table of contents.
-
-** Changes to Emacs Server
-
-*** The new option `server-kill-new-buffers' specifies what to do
-with buffers when done with them.  If non-nil, the default, buffers
-are killed, unless they were already present before visiting them with
-Emacs Server.  If nil, `server-temp-file-regexp' specifies which
-buffers to kill, as before.
-
-Please note that only buffers are killed that still have a client,
-i.e. buffers visited with `emacsclient --no-wait' are never killed in
-this way.
-
-** Both emacsclient and Emacs itself now accept command line options
-of the form +LINE:COLUMN in addition to +LINE.
-
-** Changes to Show Paren mode.
-
-*** Overlays used by Show Paren mode now use a priority property.
-The new user option show-paren-priority specifies the priority to
-use.  Default is 1000.
-
-** New command M-x check-parens can be used to find unbalanced paren
-groups and strings in buffers in Lisp mode (or other modes).
-
-** Changes to hideshow.el
-
-*** Generalized block selection and traversal
-
-A block is now recognized by its start and end regexps (both strings),
-and an integer specifying which sub-expression in the start regexp
-serves as the place where a `forward-sexp'-like function can operate.
-See the documentation of variable `hs-special-modes-alist'.
-
-*** During incremental search, if Hideshow minor mode is active,
-hidden blocks are temporarily shown.  The variable `hs-headline' can
-be used in the mode line format to show the line at the beginning of
-the open block.
-
-*** User option `hs-hide-all-non-comment-function' specifies a
-function to be called at each top-level block beginning, instead of
-the normal block-hiding function.
-
-*** The command `hs-show-region' has been removed.
-
-*** The key bindings have changed to fit the Emacs conventions,
-roughly imitating those of Outline minor mode.  Notably, the prefix
-for all bindings is now `C-c @'.  For details, see the documentation
-for `hs-minor-mode'.
-
-*** The variable `hs-show-hidden-short-form' has been removed, and
-hideshow.el now always behaves as if this variable were set to t.
-
-** Changes to Change Log mode and Add-Log functions
-
-*** If you invoke `add-change-log-entry' from a backup file, it makes
-an entry appropriate for the file's parent.  This is useful for making
-log entries by comparing a version with deleted functions.
-
-**** New command M-x change-log-merge merges another log into the
-current buffer.
-
-*** New command M-x change-log-redate fixes any old-style date entries
-in a log file.
-
-*** Change Log mode now adds a file's version number to change log
-entries if user-option `change-log-version-info-enabled' is non-nil.
-Unless the file is under version control the search for a file's
-version number is performed based on regular expressions from
-`change-log-version-number-regexp-list' which can be customized.
-Version numbers are only found in the first 10 percent of a file.
-
-*** Change Log mode now defines its own faces for font-lock highlighting.
-
-** Changes to cmuscheme
-
-*** The user-option `scheme-program-name' has been renamed
-`cmuscheme-program-name' due to conflicts with xscheme.el.
-
-** Changes in Font Lock
-
-*** The new function `font-lock-remove-keywords' can be used to remove
-font-lock keywords from the current buffer or from a specific major mode.
-
-*** Multi-line patterns are now supported.  Modes using this, should
-set font-lock-multiline to t in their font-lock-defaults.
-
-*** `font-lock-syntactic-face-function' allows major-modes to choose
-the face used for each string/comment.
-
-*** A new standard face `font-lock-doc-face'.
-Meant for Lisp docstrings, Javadoc comments and other "documentation in code".
-
-** Changes to Shell mode
-
-*** The `shell' command now accepts an optional argument to specify the buffer
-to use, which defaults to "*shell*".  When used interactively, a
-non-default buffer may be specified by giving the `shell' command a
-prefix argument (causing it to prompt for the buffer name).
-
-** Comint (subshell) changes
-
-These changes generally affect all modes derived from comint mode, which
-include shell-mode, gdb-mode, scheme-interaction-mode, etc.
-
-*** Comint now by default interprets some carriage-control characters.
-Comint now removes CRs from CR LF sequences, and treats single CRs and
-BSs in the output in a way similar to a terminal (by deleting to the
-beginning of the line, or deleting the previous character,
-respectively).  This is achieved by adding `comint-carriage-motion' to
-the `comint-output-filter-functions' hook by default.
-
-*** By default, comint no longer uses the variable `comint-prompt-regexp'
-to distinguish prompts from user-input.  Instead, it notices which
-parts of the text were output by the process, and which entered by the
-user, and attaches `field' properties to allow emacs commands to use
-this information.  Common movement commands, notably beginning-of-line,
-respect field boundaries in a fairly natural manner.  To disable this
-feature, and use the old behavior, customize the user option
-`comint-use-prompt-regexp-instead-of-fields'.
-
-*** Comint now includes new features to send commands to running processes
-and redirect the output to a designated buffer or buffers.
-
-*** The command M-x comint-redirect-send-command reads a command and
-buffer name from the mini-buffer.  The command is sent to the current
-buffer's process, and its output is inserted into the specified buffer.
-
-The command M-x comint-redirect-send-command-to-process acts like
-M-x comint-redirect-send-command but additionally reads the name of
-the buffer whose process should be used from the mini-buffer.
-
-*** Packages based on comint now highlight user input and program prompts,
-and support choosing previous input with mouse-2.  To control these features,
-see the user-options `comint-highlight-input' and `comint-highlight-prompt'.
-
-*** The new command `comint-write-output' (usually bound to `C-c C-s')
-saves the output from the most recent command to a file.  With a prefix
-argument, it appends to the file.
-
-*** The command `comint-kill-output' has been renamed `comint-delete-output'
-(usually bound to `C-c C-o'); the old name is aliased to it for
-compatibility.
-
-*** The new function `comint-add-to-input-history' adds commands to the input
-ring (history).
-
-*** The new variable `comint-input-history-ignore' is a regexp for
-identifying history lines that should be ignored, like tcsh time-stamp
-strings, starting with a `#'.  The default value of this variable is "^#".
-
-** Changes to Rmail mode
-
-*** The new user-option rmail-user-mail-address-regexp can be
-set to fine tune the identification of the correspondent when
-receiving new mail.  If it matches the address of the sender, the
-recipient is taken as correspondent of a mail.  If nil, the default,
-`user-login-name' and `user-mail-address' are used to exclude yourself
-as correspondent.
-
-Usually you don't have to set this variable, except if you collect
-mails sent by you under different user names.  Then it should be a
-regexp matching your mail addresses.
-
-*** The new user-option rmail-confirm-expunge controls whether and how
-to ask for confirmation before expunging deleted messages from an
-Rmail file.  You can choose between no confirmation, confirmation
-with y-or-n-p, or confirmation with yes-or-no-p.  Default is to ask
-for confirmation with yes-or-no-p.
-
-*** RET is now bound in the Rmail summary to rmail-summary-goto-msg,
-like `j'.
-
-*** There is a new user option `rmail-digest-end-regexps' that
-specifies the regular expressions to detect the line that ends a
-digest message.
-
-*** The new user option `rmail-automatic-folder-directives' specifies
-in which folder to put messages automatically.
-
-*** The new function `rmail-redecode-body' allows to fix a message
-with non-ASCII characters if Emacs happens to decode it incorrectly
-due to missing or malformed "charset=" header.
-
-** The new user-option `mail-envelope-from' can be used to specify
-an envelope-from address different from user-mail-address.
-
-** The variable mail-specify-envelope-from controls whether to
-use the -f option when sending mail.
-
-** The Rmail command `o' (`rmail-output-to-rmail-file') now writes the
-current message in the internal `emacs-mule' encoding, rather than in
-the encoding taken from the variable `buffer-file-coding-system'.
-This allows to save messages whose characters cannot be safely encoded
-by the buffer's coding system, and makes sure the message will be
-displayed correctly when you later visit the target Rmail file.
-
-If you want your Rmail files be encoded in a specific coding system
-other than `emacs-mule', you can customize the variable
-`rmail-file-coding-system' to set its value to that coding system.
-
-** Changes to TeX mode
-
-*** The default mode has been changed from `plain-tex-mode' to
-`latex-mode'.
-
-*** latex-mode now has a simple indentation algorithm.
-
-*** M-f and M-p jump around \begin...\end pairs.
-
-*** Added support for outline-minor-mode.
-
-** Changes to RefTeX mode
-
-*** RefTeX has new support for index generation.  Index entries can be
-    created with `C-c <', with completion available on index keys.
-    Pressing `C-c /' indexes the word at the cursor with a default
-    macro.  `C-c >' compiles all index entries into an alphabetically
-    sorted *Index* buffer which looks like the final index.  Entries
-    can be edited from that buffer.
-
-*** Label and citation key selection now allow to select several
-    items and reference them together (use `m' to mark items, `a' or
-    `A' to use all marked entries).
-
-*** reftex.el has been split into a number of smaller files to reduce
-    memory use when only a part of RefTeX is being used.
-
-*** a new command `reftex-view-crossref-from-bibtex' (bound to `C-c &'
-    in BibTeX-mode) can be called in a BibTeX database buffer in order
-    to show locations in LaTeX documents where a particular entry has
-    been cited.
-
-** Emacs Lisp mode now allows multiple levels of outline headings.
-The level of a heading is determined from the number of leading
-semicolons in a heading line.  Toplevel forms starting with a `('
-in column 1 are always made leaves.
-
-** The M-x time-stamp command (most commonly used on write-file-hooks)
-has the following new features:
-
-*** The patterns for finding the time stamp and for updating a pattern
-may match text spanning multiple lines.  For example, some people like
-to have the filename and date on separate lines.  The new variable
-time-stamp-inserts-lines controls the matching for multi-line patterns.
-
-*** More than one time stamp can be updated in the same file.  This
-feature is useful if you need separate time stamps in a program source
-file to both include in formatted documentation and insert in the
-compiled binary.  The same time-stamp will be written at each matching
-pattern.  The variable time-stamp-count enables this new feature; it
-defaults to 1.
-
-** Partial Completion mode now completes environment variables in
-file names.
-
-** Ispell changes
-
-*** The command `ispell' now spell-checks a region if
-transient-mark-mode is on, and the mark is active.  Otherwise it
-spell-checks the current buffer.
-
-*** Support for synchronous subprocesses - DOS/Windoze - has been
-added.
-
-*** An "alignment error" bug was fixed when a manual spelling
-correction is made and re-checked.
-
-*** Italian, Portuguese, and Slovak dictionary definitions have been added.
-
-*** Region skipping performance has been vastly improved in some
-cases.
-
-*** Spell checking HTML buffers has been improved and isn't so strict
-on syntax errors.
-
-*** The buffer-local words are now always placed on a new line at the
-end of the buffer.
-
-*** Spell checking now works in the MS-DOS version of Emacs.
-
-*** The variable `ispell-format-word' has been renamed to
-`ispell-format-word-function'.  The old name is still available as
-alias.
-
-** Makefile mode changes
-
-*** The mode now uses the abbrev table `makefile-mode-abbrev-table'.
-
-*** Conditionals and include statements are now highlighted when
-Fontlock mode is active.
-
-** Isearch changes
-
-*** Isearch now puts a call to `isearch-resume' in the command history,
-so that searches can be resumed.
-
-*** In Isearch mode, C-M-s and C-M-r are now bound like C-s and C-r,
-respectively, i.e. you can repeat a regexp isearch with the same keys
-that started the search.
-
-*** In Isearch mode, mouse-2 in the echo area now yanks the current
-selection into the search string rather than giving an error.
-
-*** There is a new lazy highlighting feature in incremental search.
-
-Lazy highlighting is switched on/off by customizing variable
-`isearch-lazy-highlight'.  When active, all matches for the current
-search string are highlighted.  The current match is highlighted as
-before using face `isearch' or `region'.  All other matches are
-highlighted using face `isearch-lazy-highlight-face' which defaults to
-`secondary-selection'.
-
-The extra highlighting makes it easier to anticipate where the cursor
-will end up each time you press C-s or C-r to repeat a pending search.
-Highlighting of these additional matches happens in a deferred fashion
-using "idle timers," so the cycles needed do not rob isearch of its
-usual snappy response.
-
-If `isearch-lazy-highlight-cleanup' is set to t, highlights for
-matches are automatically cleared when you end the search.  If it is
-set to nil, you can remove the highlights manually with `M-x
-isearch-lazy-highlight-cleanup'.
-
-** VC Changes
-
-VC has been overhauled internally.  It is now modular, making it
-easier to plug-in arbitrary version control backends.  (See Lisp
-Changes for details on the new structure.)  As a result, the mechanism
-to enable and disable support for particular version systems has
-changed: everything is now controlled by the new variable
-`vc-handled-backends'.  Its value is a list of symbols that identify
-version systems; the default is '(RCS CVS SCCS).  When finding a file,
-each of the backends in that list is tried in order to see whether the
-file is registered in that backend.
-
-When registering a new file, VC first tries each of the listed
-backends to see if any of them considers itself "responsible" for the
-directory of the file (e.g. because a corresponding subdirectory for
-master files exists).  If none of the backends is responsible, then
-the first backend in the list that could register the file is chosen.
-As a consequence, the variable `vc-default-back-end' is now obsolete.
-
-The old variable `vc-master-templates' is also obsolete, although VC
-still supports it for backward compatibility.  To define templates for
-RCS or SCCS, you should rather use the new variables
-vc-{rcs,sccs}-master-templates.  (There is no such feature under CVS
-where it doesn't make sense.)
-
-The variables `vc-ignore-vc-files' and `vc-handle-cvs' are also
-obsolete now, you must set `vc-handled-backends' to nil or exclude
-`CVS' from the list, respectively, to achieve their effect now.
-
-*** General Changes
-
-The variable `vc-checkout-carefully' is obsolete: the corresponding
-checks are always done now.
-
-VC Dired buffers are now kept up-to-date during all version control
-operations.
-
-`vc-diff' output is now displayed in `diff-mode'.
-`vc-print-log' uses `log-view-mode'.
-`vc-log-mode' (used for *VC-Log*) has been replaced by `log-edit-mode'.
-
-The command C-x v m (vc-merge) now accepts an empty argument as the
-first revision number.  This means that any recent changes on the
-current branch should be picked up from the repository and merged into
-the working file (``merge news'').
-
-The commands C-x v s (vc-create-snapshot) and C-x v r
-(vc-retrieve-snapshot) now ask for a directory name from which to work
-downwards.
-
-*** Multiple Backends
-
-VC now lets you register files in more than one backend.  This is
-useful, for example, if you are working with a slow remote CVS
-repository.  You can then use RCS for local editing, and occasionally
-commit your changes back to CVS, or pick up changes from CVS into your
-local RCS archives.
-
-To make this work, the ``more local'' backend (RCS in our example)
-should come first in `vc-handled-backends', and the ``more remote''
-backend (CVS) should come later.  (The default value of
-`vc-handled-backends' already has it that way.)
-
-You can then commit changes to another backend (say, RCS), by typing
-C-u C-x v v RCS RET (i.e. vc-next-action now accepts a backend name as
-a revision number).  VC registers the file in the more local backend
-if that hasn't already happened, and commits to a branch based on the
-current revision number from the more remote backend.
-
-If a file is registered in multiple backends, you can switch to
-another one using C-x v b (vc-switch-backend).  This does not change
-any files, it only changes VC's perspective on the file.  Use this to
-pick up changes from CVS while working under RCS locally.
-
-After you are done with your local RCS editing, you can commit your
-changes back to CVS using C-u C-x v v CVS RET.  In this case, the
-local RCS archive is removed after the commit, and the log entry
-buffer is initialized to contain the entire RCS change log of the file.
-
-*** Changes for CVS
-
-There is a new user option, `vc-cvs-stay-local'.  If it is `t' (the
-default), then VC avoids network queries for files registered in
-remote repositories.  The state of such files is then only determined
-by heuristics and past information.  `vc-cvs-stay-local' can also be a
-regexp to match against repository hostnames; only files from hosts
-that match it are treated locally.  If the variable is nil, then VC
-queries the repository just as often as it does for local files.
-
-If `vc-cvs-stay-local' is on, then VC also makes local backups of
-repository versions.  This means that ordinary diffs (C-x v =) and
-revert operations (C-x v u) can be done completely locally, without
-any repository interactions at all.  The name of a local version
-backup of FILE is FILE.~REV.~, where REV is the repository version
-number.  This format is similar to that used by C-x v ~
-(vc-version-other-window), except for the trailing dot.  As a matter
-of fact, the two features can each use the files created by the other,
-the only difference being that files with a trailing `.' are deleted
-automatically after commit.  (This feature doesn't work on MS-DOS,
-since DOS disallows more than a single dot in the trunk of a file
-name.)
-
-If `vc-cvs-stay-local' is on, and there have been changes in the
-repository, VC notifies you about it when you actually try to commit.
-If you want to check for updates from the repository without trying to
-commit, you can either use C-x v m RET to perform an update on the
-current file, or you can use C-x v r RET to get an update for an
-entire directory tree.
-
-The new user option `vc-cvs-use-edit' indicates whether VC should call
-"cvs edit" to make files writeable; it defaults to `t'.  (This option
-is only meaningful if the CVSREAD variable is set, or if files are
-"watched" by other developers.)
-
-The commands C-x v s (vc-create-snapshot) and C-x v r
-(vc-retrieve-snapshot) are now also implemented for CVS.  If you give
-an empty snapshot name to the latter, that performs a `cvs update',
-starting at the given directory.
-
-*** Lisp Changes in VC
-
-VC has been restructured internally to make it modular.  You can now
-add support for arbitrary version control backends by writing a
-library that provides a certain set of backend-specific functions, and
-then telling VC to use that library.  For example, to add support for
-a version system named SYS, you write a library named vc-sys.el, which
-provides a number of functions vc-sys-... (see commentary at the top
-of vc.el for a detailed list of them).  To make VC use that library,
-you need to put it somewhere into Emacs' load path and add the symbol
-`SYS' to the list `vc-handled-backends'.
-
-** The customizable EDT emulation package now supports the EDT
-SUBS command and EDT scroll margins.  It also works with more
-terminal/keyboard configurations and it now works under XEmacs.
-See etc/edt-user.doc for more information.
-
-** New modes and packages
-
-*** The new global minor mode `minibuffer-electric-default-mode'
-automatically hides the `(default ...)' part of minibuffer prompts when
-the default is not applicable.
-
-*** Artist is an Emacs lisp package that allows you to draw lines,
-rectangles and ellipses by using your mouse and/or keyboard.  The
-shapes are made up with the ascii characters |, -, / and \.
-
-Features are:
-
-- Intersecting: When a `|' intersects with a `-', a `+' is
-  drawn, like this:   |         \ /
-                    --+--        X
-                      |         / \
-
-- Rubber-banding: When drawing lines you can interactively see the
-  result while holding the mouse button down and moving the mouse.  If
-  your machine is not fast enough (a 386 is a bit too slow, but a
-  pentium is well enough), you can turn this feature off.  You will
-  then see 1's and 2's which mark the 1st and 2nd endpoint of the line
-  you are drawing.
-
-- Arrows: After having drawn a (straight) line or a (straight)
-  poly-line, you can set arrows on the line-ends by typing < or >.
-
-- Flood-filling: You can fill any area with a certain character by
-  flood-filling.
-
-- Cut copy and paste: You can cut, copy and paste rectangular
-  regions.  Artist also interfaces with the rect package (this can be
-  turned off if it causes you any trouble) so anything you cut in
-  artist can be yanked with C-x r y and vice versa.
-
-- Drawing with keys: Everything you can do with the mouse, you can
-  also do without the mouse.
-
-- Aspect-ratio: You can set the variable artist-aspect-ratio to
-  reflect the height-width ratio for the font you are using. Squares
-  and circles are then drawn square/round.  Note, that once your
-  ascii-file is shown with font with a different height-width ratio,
-  the squares won't be square and the circles won't be round.
-
-- Drawing operations: The following drawing operations are implemented:
-
-    lines		straight-lines
-    rectangles		squares
-    poly-lines		straight poly-lines
-    ellipses		circles
-    text (see-thru)	text (overwrite)
-    spray-can		setting size for spraying
-    vaporize line	vaporize lines
-    erase characters	erase rectangles
-
-  Straight lines are lines that go horizontally, vertically or
-  diagonally.  Plain lines go in any direction.  The operations in
-  the right column are accessed by holding down the shift key while
-  drawing.
-
-  It is possible to vaporize (erase) entire lines and connected lines
-  (rectangles for example) as long as the lines being vaporized are
-  straight and connected at their endpoints.  Vaporizing is inspired
-  by the drawrect package by Jari Aalto <jari.aalto@poboxes.com>.
-
-- Picture mode compatibility: Artist is picture mode compatible (this
-  can be turned off).
-
-*** The new package Eshell is an operating system command shell
-implemented entirely in Emacs Lisp.  Use `M-x eshell' to invoke it.
-It functions similarly to bash and zsh, and allows running of Lisp
-functions and external commands using the same syntax.  It supports
-history lists, aliases, extended globbing, smart scrolling, etc.  It
-will work on any platform Emacs has been ported to.  And since most of
-the basic commands -- ls, rm, mv, cp, ln, du, cat, etc. -- have been
-rewritten in Lisp, it offers an operating-system independent shell,
-all within the scope of your Emacs process.
-
-*** The new package timeclock.el is a mode is for keeping track of time
-intervals.  You can use it for whatever purpose you like, but the
-typical scenario is to keep track of how much time you spend working
-on certain projects.
-
-*** The new package hi-lock.el provides commands to highlight matches
-of interactively entered regexps.  For example,
-
-  M-x highlight-regexp RET clearly RET RET
-
-will highlight all occurrences of `clearly' using a yellow background
-face.  New occurrences of `clearly' will be highlighted as they are
-typed.  `M-x unhighlight-regexp RET' will remove the highlighting.
-Any existing face can be used for highlighting and a set of
-appropriate faces is provided.  The regexps can be written into the
-current buffer in a form that will be recognized the next time the
-corresponding file is read.  There are commands to highlight matches
-to phrases and to highlight entire lines containing a match.
-
-*** The new package zone.el plays games with Emacs' display when
-Emacs is idle.
-
-*** The new package tildify.el allows to add hard spaces or other text
-fragments in accordance with the current major mode.
-
-*** The new package xml.el provides a simple but generic XML
-parser. It doesn't parse the DTDs however.
-
-*** The comment operations are now provided by the newcomment.el
-package which allows different styles of comment-region and should
-be more robust while offering the same functionality.
-`comment-region' now doesn't always comment a-line-at-a-time, but only
-comments the region, breaking the line at point if necessary.
-
-*** The Ebrowse package implements a C++ class browser and tags
-facilities tailored for use with C++.  It is documented in a
-separate Texinfo file.
-
-*** The PCL-CVS package available by either running M-x cvs-examine or
-by visiting a CVS administrative directory (with a prefix argument)
-provides an alternative interface to VC-dired for CVS.  It comes with
-`log-view-mode' to view RCS and SCCS logs and `log-edit-mode' used to
-enter check-in log messages.
-
-*** The new package called `woman' allows to browse Unix man pages
-without invoking external programs.
-
-The command `M-x woman' formats manual pages entirely in Emacs Lisp
-and then displays them, like `M-x manual-entry' does.  Unlike
-`manual-entry', `woman' does not invoke any external programs, so it
-is useful on systems such as MS-DOS/MS-Windows where the `man' and
-Groff or `troff' commands are not readily available.
-
-The command `M-x woman-find-file' asks for the file name of a man
-page, then formats and displays it like `M-x woman' does.
-
-*** The new command M-x re-builder offers a convenient interface for
-authoring regular expressions with immediate visual feedback.
-
-The buffer from which the command was called becomes the target for
-the regexp editor popping up in a separate window.  Matching text in
-the target buffer is immediately color marked during the editing.
-Each sub-expression of the regexp will show up in a different face so
-even complex regexps can be edited and verified on target data in a
-single step.
-
-On displays not supporting faces the matches instead blink like
-matching parens to make them stand out.  On such a setup you will
-probably also want to use the sub-expression mode when the regexp
-contains such to get feedback about their respective limits.
-
-*** glasses-mode is a minor mode that makes
-unreadableIdentifiersLikeThis readable.  It works as glasses, without
-actually modifying content of a buffer.
-
-*** The package ebnf2ps translates an EBNF to a syntactic chart in
-PostScript.
-
-Currently accepts ad-hoc EBNF, ISO EBNF and Bison/Yacc.
-
-The ad-hoc default EBNF syntax has the following elements:
-
-    ;		comment (until end of line)
-    A		non-terminal
-    "C"		terminal
-    ?C?		special
-    $A		default non-terminal
-    $"C"	default terminal
-    $?C?	default special
-    A = B.	production (A is the header and B the body)
-    C D		sequence (C occurs before D)
-    C | D	alternative (C or D occurs)
-    A - B	exception (A excluding B, B without any non-terminal)
-    n * A	repetition (A repeats n (integer) times)
-    (C)		group (expression C is grouped together)
-    [C]		optional (C may or not occurs)
-    C+		one or more occurrences of C
-    {C}+	one or more occurrences of C
-    {C}*	zero or more occurrences of C
-    {C}		zero or more occurrences of C
-    C / D	equivalent to: C {D C}*
-    {C || D}+	equivalent to: C {D C}*
-    {C || D}*	equivalent to: [C {D C}*]
-    {C || D}	equivalent to: [C {D C}*]
-
-Please, see ebnf2ps documentation for EBNF syntax and how to use it.
-
-*** The package align.el will align columns within a region, using M-x
-align.  Its mode-specific rules, based on regular expressions,
-determine where the columns should be split.  In C and C++, for
-example, it will align variable names in declaration lists, or the
-equal signs of assignments.
-
-*** `paragraph-indent-minor-mode' is a new minor mode supporting
-paragraphs in the same style as `paragraph-indent-text-mode'.
-
-*** bs.el is a new package for buffer selection similar to
-list-buffers or electric-buffer-list.  Use M-x bs-show to display a
-buffer menu with this package.  See the Custom group `bs'.
-
-*** find-lisp.el is a package emulating the Unix find command in Lisp.
-
-*** calculator.el is a small calculator package that is intended to
-replace desktop calculators such as xcalc and calc.exe.  Actually, it
-is not too small - it has more features than most desktop calculators,
-and can be customized easily to get many more functions.  It should
-not be confused with "calc" which is a much bigger mathematical tool
-which answers different needs.
-
-*** The minor modes cwarn-mode and global-cwarn-mode highlights
-suspicious C and C++ constructions.  Currently, assignments inside
-expressions, semicolon following `if', `for' and `while' (except, of
-course, after a `do .. while' statement), and C++ functions with
-reference parameters are recognized.  The modes require font-lock mode
-to be enabled.
-
-*** smerge-mode.el provides `smerge-mode', a simple minor-mode for files
-containing diff3-style conflict markers, such as generated by RCS.
-
-*** 5x5.el is a simple puzzle game.
-
-*** hl-line.el provides `hl-line-mode', a minor mode to highlight the
-current line in the current buffer.  It also provides
-`global-hl-line-mode' to provide the same behavior in all buffers.
-
-*** ansi-color.el translates ANSI terminal escapes into text-properties.
-
-Please note: if `ansi-color-for-comint-mode' and
-`global-font-lock-mode' are non-nil, loading ansi-color.el will
-disable font-lock and add `ansi-color-apply' to
-`comint-preoutput-filter-functions' for all shell-mode buffers.  This
-displays the output of "ls --color=yes" using the correct foreground
-and background colors.
-
-*** delphi.el provides a major mode for editing the Delphi (Object
-Pascal) language.
-
-*** quickurl.el provides a simple method of inserting a URL based on
-the text at point.
-
-*** sql.el provides an interface to SQL data bases.
-
-*** fortune.el uses the fortune program to create mail/news signatures.
-
-*** whitespace.el is a package for warning about and cleaning bogus
-whitespace in a file.
-
-*** PostScript mode (ps-mode) is a new major mode for editing PostScript
-files. It offers: interaction with a PostScript interpreter, including
-(very basic) error handling; fontification, easily customizable for
-interpreter messages; auto-indentation; insertion of EPSF templates and
-often used code snippets; viewing of BoundingBox; commenting out /
-uncommenting regions; conversion of 8bit characters to PostScript octal
-codes. All functionality is accessible through a menu.
-
-*** delim-col helps to prettify columns in a text region or rectangle.
-
-Here is an example of columns:
-
-horse	apple	bus
-dog	pineapple	car	EXTRA
-porcupine	strawberry	airplane
-
-Doing the following settings:
-
-   (setq delimit-columns-str-before "[ ")
-   (setq delimit-columns-str-after " ]")
-   (setq delimit-columns-str-separator ", ")
-   (setq delimit-columns-separator "\t")
-
-
-Selecting the lines above and typing:
-
-   M-x delimit-columns-region
-
-It results:
-
-[ horse    , apple     , bus     ,       ]
-[ dog      , pineapple , car     , EXTRA ]
-[ porcupine, strawberry, airplane,       ]
-
-delim-col has the following options:
-
-   delimit-columns-str-before		Specify a string to be inserted
-					before all columns.
-
-   delimit-columns-str-separator	Specify a string to be inserted
-					between each column.
-
-   delimit-columns-str-after		Specify a string to be inserted
-					after all columns.
-
-   delimit-columns-separator		Specify a regexp which separates
-					each column.
-
-delim-col has the following commands:
-
-   delimit-columns-region	Prettify all columns in a text region.
-   delimit-columns-rectangle	Prettify all columns in a text rectangle.
-
-*** Recentf mode maintains a menu for visiting files that were
-operated on recently.  User option recentf-menu-filter specifies a
-menu filter function to change the menu appearance. For example, the
-recent file list can be displayed:
-
-- organized by major modes, directories or user defined rules.
-- sorted by file paths, file names, ascending or descending.
-- showing paths relative to the current default-directory
-
-The `recentf-filter-changer' menu filter function allows to
-dynamically change the menu appearance.
-
-*** elide-head.el provides a mechanism for eliding boilerplate header
-text.
-
-*** footnote.el provides `footnote-mode', a minor mode supporting use
-of footnotes.  It is intended for use with Message mode, but isn't
-specific to Message mode.
-
-*** diff-mode.el provides `diff-mode', a major mode for
-viewing/editing context diffs (patches).  It is selected for files
-with extension `.diff', `.diffs', `.patch' and `.rej'.
-
-*** EUDC, the Emacs Unified Directory Client, provides a common user
-interface to access directory servers using different directory
-protocols.  It has a separate manual.
-
-*** autoconf.el provides a major mode for editing configure.in files
-for Autoconf, selected automatically.
-
-*** windmove.el provides moving between windows.
-
-*** crm.el provides a facility to read multiple strings from the
-minibuffer with completion.
-
-*** todo-mode.el provides management of TODO lists and integration
-with the diary features.
-
-*** autoarg.el provides a feature reported from Twenex Emacs whereby
-numeric keys supply prefix args rather than self inserting.
-
-*** The function `turn-off-auto-fill' unconditionally turns off Auto
-Fill mode.
-
-*** pcomplete.el is a library that provides programmable completion
-facilities for Emacs, similar to what zsh and tcsh offer.  The main
-difference is that completion functions are written in Lisp, meaning
-they can be profiled, debugged, etc.
-
-*** antlr-mode is a new major mode for editing ANTLR grammar files.
-It is automatically turned on for files whose names have the extension
-`.g'.
-
-** Changes in sort.el
-
-The function sort-numeric-fields interprets numbers starting with `0'
-as octal and numbers starting with `0x' or `0X' as hexadecimal.  The
-new user-option sort-numeric-base can be used to specify a default
-numeric base.
-
-** Changes to Ange-ftp
-
-*** Ange-ftp allows you to specify of a port number in remote file
-names cleanly.  It is appended to the host name, separated by a hash
-sign, e.g. `/foo@bar.org#666:mumble'.  (This syntax comes from EFS.)
-
-*** If the new user-option `ange-ftp-try-passive-mode' is set, passive
-ftp mode will be used if the ftp client supports that.
-
-*** Ange-ftp handles the output of the w32-style clients which
-output ^M at the end of lines.
-
-** The recommended way of using Iswitchb is via the new global minor
-mode `iswitchb-mode'.
-
-** Just loading the msb package doesn't switch on Msb mode anymore.
-If you have `(require 'msb)' in your .emacs, please replace it with
-`(msb-mode 1)'.
-
-** Changes in Flyspell mode
-
-*** Flyspell mode has various new options.  See the `flyspell' Custom
-group.
-
-*** The variable `flyspell-generic-check-word-p' has been renamed
-to `flyspell-generic-check-word-predicate'.  The old name is still
-available as alias.
-
-** The user option `backward-delete-char-untabify-method' controls the
-behavior of `backward-delete-char-untabify'.  The following values
-are recognized:
-
-`untabify' -- turn a tab to many spaces, then delete one space;
-`hungry'   -- delete all whitespace, both tabs and spaces;
-`all'      -- delete all whitespace, including tabs, spaces and newlines;
-nil        -- just delete one character.
-
-Default value is `untabify'.
-
-[This change was made in Emacs 20.3 but not mentioned then.]
-
-** In Cperl mode `cperl-invalid-face' should now be a normal face
-symbol, not double-quoted.
-
-** Some packages are declared obsolete, to be removed in a future
-version.  They are:  auto-show, c-mode, hilit19, hscroll, ooutline,
-profile, rnews, rnewspost, and sc.  Their implementations have been
-moved to lisp/obsolete.
-
-** auto-compression mode is no longer enabled just by loading jka-compr.el.
-To control it, set `auto-compression-mode' via Custom or use the
-`auto-compression-mode' command.
-
-** `browse-url-gnome-moz' is a new option for
-`browse-url-browser-function', invoking Mozilla in GNOME, and
-`browse-url-kde' can be chosen for invoking the KDE browser.
-
-** The user-option `browse-url-new-window-p' has been renamed to
-`browse-url-new-window-flag'.
-
-** The functions `keep-lines', `flush-lines' and `how-many' now
-operate on the active region in Transient Mark mode.
-
-** `gnus-user-agent' is a new possibility for `mail-user-agent'.  It
-is like `message-user-agent', but with all the Gnus paraphernalia.
-
-** The Strokes package has been updated.  If your Emacs has XPM
-support, you can use it for pictographic editing.  In Strokes mode,
-use C-mouse-2 to compose a complex stoke and insert it into the
-buffer.  You can encode or decode a strokes buffer with new commands
-M-x strokes-encode-buffer and M-x strokes-decode-buffer.  There is a
-new command M-x strokes-list-strokes.
-
-** Hexl contains a new command `hexl-insert-hex-string' which inserts
-a string of hexadecimal numbers read from the mini-buffer.
-
-** Hexl mode allows to insert non-ASCII characters.
-
-The non-ASCII characters are encoded using the same encoding as the
-file you are visiting in Hexl mode.
-
-** Shell script mode changes.
-
-Shell script mode (sh-script) can now indent scripts for shells
-derived from sh and rc.  The indentation style is customizable, and
-sh-script can attempt to "learn" the current buffer's style.
-
-** Etags changes.
-
-*** In DOS, etags looks for file.cgz if it cannot find file.c.
-
-*** New option --ignore-case-regex is an alternative to --regex.  It is now
-possible to bind a regexp to a language, by prepending the regexp with
-{lang}, where lang is one of the languages that `etags --help' prints out.
-This feature is useful especially for regex files, where each line contains
-a regular expression.  The manual contains details.
-
-*** In C and derived languages, etags creates tags for function
-declarations when given the --declarations option.
-
-*** In C++, tags are created for "operator".  The tags have the form
-"operator+", without spaces between the keyword and the operator.
-
-*** You shouldn't generally need any more the -C or -c++ option: etags
-automatically switches to C++ parsing when it meets the `class' or
-`template' keywords.
-
-*** Etags now is able to delve at arbitrary deeps into nested structures in
-C-like languages.  Previously, it was limited to one or two brace levels.
-
-*** New language Ada: tags are functions, procedures, packages, tasks, and
-types.
-
-*** In Fortran, `procedure' is not tagged.
-
-*** In Java, tags are created for "interface".
-
-*** In Lisp, "(defstruct (foo", "(defun (operator" and similar constructs
-are now tagged.
-
-*** In makefiles, tags the targets.
-
-*** In Perl, the --globals option tags global variables.  my and local
-variables are tagged.
-
-*** New language Python: def and class at the beginning of a line are tags.
-
-*** .ss files are Scheme files, .pdb is Postscript with C syntax, .psw is
-for PSWrap.
-
-** Changes in etags.el
-
-*** The new user-option tags-case-fold-search can be used to make
-tags operations case-sensitive or case-insensitive.  The default
-is to use the same setting as case-fold-search.
-
-*** You can display additional output with M-x tags-apropos by setting
-the new variable tags-apropos-additional-actions.
-
-If non-nil, the variable's value should be a list of triples (TITLE
-FUNCTION TO-SEARCH).  For each triple, M-x tags-apropos processes
-TO-SEARCH and lists tags from it.  TO-SEARCH should be an alist,
-obarray, or symbol.  If it is a symbol, the symbol's value is used.
-
-TITLE is a string to use to label the list of tags from TO-SEARCH.
-
-FUNCTION is a function to call when an entry is selected in the Tags
-List buffer.  It is called with one argument, the selected symbol.
-
-A useful example value for this variable might be something like:
-
-  '(("Emacs Lisp" Info-goto-emacs-command-node obarray)
-    ("Common Lisp" common-lisp-hyperspec common-lisp-hyperspec-obarray)
-    ("SCWM" scwm-documentation scwm-obarray))
-
-*** The face tags-tag-face can be used to customize the appearance
-of tags in the output of M-x tags-apropos.
-
-*** Setting tags-apropos-verbose to a non-nil value displays the
-names of tags files in the *Tags List* buffer.
-
-*** You can now search for tags that are part of the filename itself.
-If you have tagged the files topfile.c subdir/subfile.c
-/tmp/tempfile.c, you can now search for tags "topfile.c", "subfile.c",
-"dir/sub", "tempfile", "tempfile.c".  If the tag matches the file name,
-point will go to the beginning of the file.
-
-*** Compressed files are now transparently supported if
-auto-compression-mode is active.  You can tag (with Etags) and search
-(with find-tag) both compressed and uncompressed files.
-
-*** Tags commands like M-x tags-search no longer change point
-in buffers where no match is found.  In buffers where a match is
-found, the original value of point is pushed on the marker ring.
-
-** Fortran mode has a new command `fortran-strip-sequence-nos' to
-remove text past column 72.  The syntax class of `\' in Fortran is now
-appropriate for C-style escape sequences in strings.
-
-** SGML mode's default `sgml-validate-command' is now `nsgmls'.
-
-** A new command `view-emacs-problems' (C-h P) displays the PROBLEMS file.
-
-** The Dabbrev package has a new user-option `dabbrev-ignored-regexps'
-containing a list of regular expressions.  Buffers matching a regular
-expression from that list, are not checked.
-
-** Emacs can now figure out modification times of remote files.
-When you do C-x C-f /user@host:/path/file RET and edit the file,
-and someone else modifies the file, you will be prompted to revert
-the buffer, just like for the local files.
-
-** The buffer menu (C-x C-b) no longer lists the *Buffer List* buffer.
-
-** When invoked with a prefix argument, the command `list-abbrevs' now
-displays local abbrevs, only.
-
-** Refill minor mode provides preliminary support for keeping
-paragraphs filled as you modify them.
-
-** The variable `double-click-fuzz' specifies how much the mouse
-may be moved between clicks that are recognized as a pair.  Its value
-is measured in pixels.
-
-** The new global minor mode `auto-image-file-mode' allows image files
-to be visited as images.
-
-** Two new user-options `grep-command' and `grep-find-command'
-were added to compile.el.
-
-** Withdrawn packages
-
-*** mldrag.el has been removed.  mouse.el provides the same
-functionality with aliases for the mldrag functions.
-
-*** eval-reg.el has been obsoleted by changes to edebug.el and removed.
-
-*** ph.el has been obsoleted by EUDC and removed.
-
-
-* Incompatible Lisp changes
-
-There are a few Lisp changes which are not backwards-compatible and
-may require changes to existing code. Here is a list for reference.
-See the sections below for details.
-
-** Since `format' preserves text properties, the idiom
-`(format "%s" foo)' no longer works to copy and remove properties.
-Use `copy-sequence' to copy the string, then use `set-text-properties'
-to remove the properties of the copy.
-
-** Since the `keymap' text property now has significance, some code
-which uses both `local-map' and `keymap' properties (for portability)
-may, for instance, give rise to duplicate menus when the keymaps from
-these properties are active.
-
-** The change in the treatment of non-ASCII characters in search
-ranges may affect some code.
-
-** A non-nil value for the LOCAL arg of add-hook makes the hook
-buffer-local even if `make-local-hook' hasn't been called, which might
-make a difference to some code.
-
-** The new treatment of the minibuffer prompt might affect code which
-operates on the minibuffer.
-
-** The new character sets `eight-bit-control' and `eight-bit-graphic'
-cause `no-conversion' and `emacs-mule-unix' coding systems to produce
-different results when reading files with non-ASCII characters
-(previously, both coding systems would produce the same results).
-Specifically, `no-conversion' interprets each 8-bit byte as a separate
-character.  This makes `no-conversion' inappropriate for reading
-multibyte text, e.g. buffers written to disk in their internal MULE
-encoding (auto-saving does that, for example).  If a Lisp program
-reads such files with `no-conversion', each byte of the multibyte
-sequence, including the MULE leading codes such as \201, is treated as
-a separate character, which prevents them from being interpreted in
-the buffer as multibyte characters.
-
-Therefore, Lisp programs that read files which contain the internal
-MULE encoding should use `emacs-mule-unix'.  `no-conversion' is only
-appropriate for reading truly binary files.
-
-** Code that relies on the obsolete `before-change-function' and
-`after-change-function' to detect buffer changes will now fail.  Use
-`before-change-functions' and `after-change-functions' instead.
-
-** Code that uses `concat' with integer args now gets an error, as
-long promised.  So does any code that uses derivatives of `concat',
-such as `mapconcat'.
-
-** The function base64-decode-string now always returns a unibyte
-string.
-
-** Not a Lisp incompatibility as such but, with the introduction of
-extra private charsets, there is now only one slot free for a new
-dimension-2 private charset.  User code which tries to add more than
-one extra will fail unless you rebuild Emacs with some standard
-charset(s) removed; that is probably inadvisable because it changes
-the emacs-mule encoding.  Also, files stored in the emacs-mule
-encoding using Emacs 20 with additional private charsets defined will
-probably not be read correctly by Emacs 21.
-
-** The variable `directory-sep-char' is slated for removal.
-Not really a change (yet), but a projected one that you should be
-aware of: The variable `directory-sep-char' is deprecated, and should
-not be used.  It was always ignored on GNU/Linux and Unix systems and
-on MS-DOS, but the MS-Windows port tried to support it by adapting the
-behavior of certain primitives to the value of this variable.  It
-turned out that such support cannot be reliable, so it was decided to
-remove this variable in the near future.  Lisp programs are well
-advised not to set it to anything but '/', because any different value
-will not have any effect when support for this variable is removed.
-
-
-* Lisp changes made after edition 2.6 of the Emacs Lisp Manual,
-(Display-related features are described in a page of their own below.)
-
-** Function assq-delete-all replaces function assoc-delete-all.
-
-** The new function animate-string, from lisp/play/animate.el
-allows the animated display of strings.
-
-** The new function `interactive-form' can be used to obtain the
-interactive form of a function.
-
-** The keyword :set-after in defcustom allows to specify dependencies
-between custom options.  Example:
-
-  (defcustom default-input-method nil
-    "*Default input method for multilingual text (a string).
-  This is the input method activated automatically by the command
-  `toggle-input-method' (\\[toggle-input-method])."
-    :group 'mule
-    :type '(choice (const nil) string)
-    :set-after '(current-language-environment))
-
-This specifies that default-input-method should be set after
-current-language-environment even if default-input-method appears
-first in a custom-set-variables statement.
-
-** The new hook `kbd-macro-termination-hook' is run at the end of
-function execute-kbd-macro.  Functions on this hook are called with no
-args.  The hook is run independent of how the macro was terminated
-(signal or normal termination).
-
-** Functions `butlast' and `nbutlast' for removing trailing elements
-from a list are now available without requiring the CL package.
-
-** The new user-option `even-window-heights' can be set to nil
-to prevent `display-buffer' from evening out window heights.
-
-** The user-option `face-font-registry-alternatives' specifies
-alternative font registry names to try when looking for a font.
-
-** Function `md5' calculates the MD5 "message digest"/"checksum".
-
-** Function `delete-frame' runs `delete-frame-hook' before actually
-deleting the frame.  The hook is called with one arg, the frame
-being deleted.
-
-** `add-hook' now makes the hook local if called with a non-nil LOCAL arg.
-
-** The treatment of non-ASCII characters in search ranges has changed.
-If a range in a regular expression or the arg of
-skip-chars-forward/backward starts with a unibyte character C and ends
-with a multibyte character C2, the range is divided into two: one is
-C..?\377, the other is C1..C2, where C1 is the first character of C2's
-charset.
-
-** The new function `display-message-or-buffer' displays a message in
-the echo area or pops up a buffer, depending on the length of the
-message.
-
-** The new macro `with-auto-compression-mode' allows evaluating an
-expression with auto-compression-mode enabled.
-
-** In image specifications, `:heuristic-mask' has been replaced
-with the more general `:mask' property.
-
-** Image specifications accept more `:conversion's.
-
-** A `?' can be used in a symbol name without escaping it with a
-backslash.
-
-** Reading from the mini-buffer now reads from standard input if Emacs
-is running in batch mode.  For example,
-
-  (message "%s" (read t))
-
-will read a Lisp expression from standard input and print the result
-to standard output.
-
-** The argument of `down-list', `backward-up-list', `up-list',
-`kill-sexp', `backward-kill-sexp' and `mark-sexp' is now optional.
-
-** If `display-buffer-reuse-frames' is set, function `display-buffer'
-will raise frames displaying a buffer, instead of creating a new
-frame or window.
-
-** Two new functions for removing elements from lists/sequences
-were added
-
-- Function: remove ELT SEQ
-
-Return a copy of SEQ with all occurrences of ELT removed.  SEQ must be
-a list, vector, or string.  The comparison is done with `equal'.
-
-- Function: remq ELT LIST
-
-Return a copy of LIST with all occurrences of ELT removed.  The
-comparison is done with `eq'.
-
-** The function `delete' now also works with vectors and strings.
-
-** The meaning of the `:weakness WEAK' argument of make-hash-table
-has been changed: WEAK can now have new values `key-or-value' and
-`key-and-value', in addition to `nil', `key', `value', and `t'.
-
-** Function `aset' stores any multibyte character in any string
-without signaling "Attempt to change char length of a string".  It may
-convert a unibyte string to multibyte if necessary.
-
-** The value of the `help-echo' text property is called as a function
-or evaluated, if it is not a string already, to obtain a help string.
-
-** Function `make-obsolete' now has an optional arg to say when the
-function was declared obsolete.
-
-** Function `plist-member' is renamed from `widget-plist-member' (which is
-retained as an alias).
-
-** Easy-menu's :filter now takes the unconverted form of the menu and
-the result is automatically converted to Emacs' form.
-
-** The new function `window-list' has been defined
-
-- Function: window-list &optional FRAME WINDOW MINIBUF
-
-Return a list of windows on FRAME, starting with WINDOW.  FRAME nil or
-omitted means use the selected frame.  WINDOW nil or omitted means use
-the selected window.  MINIBUF t means include the minibuffer window,
-even if it isn't active.  MINIBUF nil or omitted means include the
-minibuffer window only if it's active.  MINIBUF neither nil nor t
-means never include the minibuffer window.
-
-** There's a new function `get-window-with-predicate' defined as follows
-
-- Function: get-window-with-predicate PREDICATE &optional MINIBUF ALL-FRAMES DEFAULT
-
-Return a window satisfying PREDICATE.
-
-This function cycles through all visible windows using `walk-windows',
-calling PREDICATE on each one.  PREDICATE is called with a window as
-argument.  The first window for which PREDICATE returns a non-nil
-value is returned.  If no window satisfies PREDICATE, DEFAULT is
-returned.
-
-Optional second arg MINIBUF t means count the minibuffer window even
-if not active.  MINIBUF nil or omitted means count the minibuffer iff
-it is active.  MINIBUF neither t nor nil means not to count the
-minibuffer even if it is active.
-
-Several frames may share a single minibuffer; if the minibuffer
-counts, all windows on all frames that share that minibuffer count
-too.  Therefore, if you are using a separate minibuffer frame
-and the minibuffer is active and MINIBUF says it counts,
-`walk-windows' includes the windows in the frame from which you
-entered the minibuffer, as well as the minibuffer window.
-
-ALL-FRAMES is the optional third argument.
-ALL-FRAMES nil or omitted means cycle within the frames as specified above.
-ALL-FRAMES = `visible' means include windows on all visible frames.
-ALL-FRAMES = 0 means include windows on all visible and iconified frames.
-ALL-FRAMES = t means include windows on all frames including invisible frames.
-If ALL-FRAMES is a frame, it means include windows on that frame.
-Anything else means restrict to the selected frame.
-
-** The function `single-key-description' now encloses function key and
-event names in angle brackets.  When called with a second optional
-argument non-nil, angle brackets won't be printed.
-
-** If the variable `message-truncate-lines' is bound to t around a
-call to `message', the echo area will not be resized to display that
-message; it will be truncated instead, as it was done in 20.x.
-Default value is nil.
-
-** The user option `line-number-display-limit' can now be set to nil,
-meaning no limit.
-
-** The new user option `line-number-display-limit-width' controls
-the maximum width of lines in a buffer for which Emacs displays line
-numbers in the mode line.  The default is 200.
-
-** `select-safe-coding-system' now also checks the most preferred
-coding-system if buffer-file-coding-system is `undecided' and
-DEFAULT-CODING-SYSTEM is not specified,
-
-** The function `subr-arity' provides information about the argument
-list of a primitive.
-
-** `where-is-internal' now also accepts a list of keymaps.
-
-** The text property `keymap' specifies a key map which overrides the
-buffer's local map and the map specified by the `local-map' property.
-This is probably what most current uses of `local-map' want, rather
-than replacing the local map.
-
-** The obsolete variables `before-change-function' and
-`after-change-function' are no longer acted upon and have been
-removed.  Use `before-change-functions' and `after-change-functions'
-instead.
-
-** The function `apropos-mode' runs the hook `apropos-mode-hook'.
-
-** `concat' no longer accepts individual integer arguments,
-as promised long ago.
-
-** The new function `float-time' returns the current time as a float.
-
-** The new variable auto-coding-regexp-alist specifies coding systems
-for reading specific files, analogous to auto-coding-alist, but
-patterns are checked against file contents instead of file names.
-
-
-* Lisp changes in Emacs 21.1 (see following page for display-related features)
-
-** The new package rx.el provides an alternative sexp notation for
-regular expressions.
-
-- Function: rx-to-string SEXP
-
-Translate SEXP into a regular expression in string notation.
-
-- Macro: rx SEXP
-
-Translate SEXP into a regular expression in string notation.
-
-The following are valid subforms of regular expressions in sexp
-notation.
-
-STRING
-     matches string STRING literally.
-
-CHAR
-     matches character CHAR literally.
-
-`not-newline'
-     matches any character except a newline.
-			.
-`anything'
-     matches any character
-
-`(any SET)'
-     matches any character in SET.  SET may be a character or string.
-     Ranges of characters can be specified as `A-Z' in strings.
-
-'(in SET)'
-     like `any'.
-
-`(not (any SET))'
-     matches any character not in SET
-
-`line-start'
-     matches the empty string, but only at the beginning of a line
-     in the text being matched
-
-`line-end'
-     is similar to `line-start' but matches only at the end of a line
-
-`string-start'
-     matches the empty string, but only at the beginning of the
-     string being matched against.
-
-`string-end'
-     matches the empty string, but only at the end of the
-     string being matched against.
-
-`buffer-start'
-     matches the empty string, but only at the beginning of the
-     buffer being matched against.
-
-`buffer-end'
-     matches the empty string, but only at the end of the
-     buffer being matched against.
-
-`point'
-     matches the empty string, but only at point.
-
-`word-start'
-     matches the empty string, but only at the beginning or end of a
-     word.
-
-`word-end'
-     matches the empty string, but only at the end of a word.
-
-`word-boundary'
-     matches the empty string, but only at the beginning or end of a
-     word.
-
-`(not word-boundary)'
-     matches the empty string, but not at the beginning or end of a
-     word.
-
-`digit'
-     matches 0 through 9.
-
-`control'
-     matches ASCII control characters.
-
-`hex-digit'
-     matches 0 through 9, a through f and A through F.
-
-`blank'
-     matches space and tab only.
-
-`graphic'
-     matches graphic characters--everything except ASCII control chars,
-     space, and DEL.
-
-`printing'
-     matches printing characters--everything except ASCII control chars
-     and DEL.
-
-`alphanumeric'
-     matches letters and digits.  (But at present, for multibyte characters,
-     it matches anything that has word syntax.)
-
-`letter'
-     matches letters.  (But at present, for multibyte characters,
-     it matches anything that has word syntax.)
-
-`ascii'
-     matches ASCII (unibyte) characters.
-
-`nonascii'
-     matches non-ASCII (multibyte) characters.
-
-`lower'
-     matches anything lower-case.
-
-`upper'
-     matches anything upper-case.
-
-`punctuation'
-     matches punctuation.  (But at present, for multibyte characters,
-     it matches anything that has non-word syntax.)
-
-`space'
-     matches anything that has whitespace syntax.
-
-`word'
-     matches anything that has word syntax.
-
-`(syntax SYNTAX)'
-     matches a character with syntax SYNTAX.  SYNTAX must be one
-     of the following symbols.
-
-     `whitespace'		(\\s- in string notation)
-     `punctuation'		(\\s.)
-     `word'			(\\sw)
-     `symbol'			(\\s_)
-     `open-parenthesis'		(\\s()
-     `close-parenthesis'	(\\s))
-     `expression-prefix'	(\\s')
-     `string-quote'		(\\s\")
-     `paired-delimiter'		(\\s$)
-     `escape'			(\\s\\)
-     `character-quote'		(\\s/)
-     `comment-start'		(\\s<)
-     `comment-end'		(\\s>)
-
-`(not (syntax SYNTAX))'
-     matches a character that has not syntax SYNTAX.
-
-`(category CATEGORY)'
-     matches a character with category CATEGORY.  CATEGORY must be
-     either a character to use for C, or one of the following symbols.
-
-     `consonant'			(\\c0 in string notation)
-     `base-vowel'			(\\c1)
-     `upper-diacritical-mark'		(\\c2)
-     `lower-diacritical-mark'		(\\c3)
-     `tone-mark'		        (\\c4)
-     `symbol'			        (\\c5)
-     `digit'			        (\\c6)
-     `vowel-modifying-diacritical-mark'	(\\c7)
-     `vowel-sign'			(\\c8)
-     `semivowel-lower'			(\\c9)
-     `not-at-end-of-line'		(\\c<)
-     `not-at-beginning-of-line'		(\\c>)
-     `alpha-numeric-two-byte'		(\\cA)
-     `chinse-two-byte'			(\\cC)
-     `greek-two-byte'			(\\cG)
-     `japanese-hiragana-two-byte'	(\\cH)
-     `indian-two-byte'			(\\cI)
-     `japanese-katakana-two-byte'	(\\cK)
-     `korean-hangul-two-byte'		(\\cN)
-     `cyrillic-two-byte'		(\\cY)
-     `ascii'				(\\ca)
-     `arabic'				(\\cb)
-     `chinese'				(\\cc)
-     `ethiopic'				(\\ce)
-     `greek'				(\\cg)
-     `korean'				(\\ch)
-     `indian'				(\\ci)
-     `japanese'				(\\cj)
-     `japanese-katakana'		(\\ck)
-     `latin'				(\\cl)
-     `lao'				(\\co)
-     `tibetan'				(\\cq)
-     `japanese-roman'			(\\cr)
-     `thai'				(\\ct)
-     `vietnamese'			(\\cv)
-     `hebrew'				(\\cw)
-     `cyrillic'				(\\cy)
-     `can-break'			(\\c|)
-
-`(not (category CATEGORY))'
-     matches a character that has not category CATEGORY.
-
-`(and SEXP1 SEXP2 ...)'
-     matches what SEXP1 matches, followed by what SEXP2 matches, etc.
-
-`(submatch SEXP1 SEXP2 ...)'
-     like `and', but makes the match accessible with `match-end',
-     `match-beginning', and `match-string'.
-
-`(group SEXP1 SEXP2 ...)'
-     another name for `submatch'.
-
-`(or SEXP1 SEXP2 ...)'
-     matches anything that matches SEXP1 or SEXP2, etc.  If all
-     args are strings, use `regexp-opt' to optimize the resulting
-     regular expression.
-
-`(minimal-match SEXP)'
-     produce a non-greedy regexp for SEXP.  Normally, regexps matching
-     zero or more occurrences of something are \"greedy\" in that they
-     match as much as they can, as long as the overall regexp can
-     still match.  A non-greedy regexp matches as little as possible.
-
-`(maximal-match SEXP)'
-     produce a greedy regexp for SEXP.  This is the default.
-
-`(zero-or-more SEXP)'
-     matches zero or more occurrences of what SEXP matches.
-
-`(0+ SEXP)'
-     like `zero-or-more'.
-
-`(* SEXP)'
-     like `zero-or-more', but always produces a greedy regexp.
-
-`(*? SEXP)'
-     like `zero-or-more', but always produces a non-greedy regexp.
-
-`(one-or-more SEXP)'
-     matches one or more occurrences of A.
-
-`(1+ SEXP)'
-     like `one-or-more'.
-
-`(+ SEXP)'
-     like `one-or-more', but always produces a greedy regexp.
-
-`(+? SEXP)'
-     like `one-or-more', but always produces a non-greedy regexp.
-
-`(zero-or-one SEXP)'
-     matches zero or one occurrences of A.
-
-`(optional SEXP)'
-     like `zero-or-one'.
-
-`(? SEXP)'
-     like `zero-or-one', but always produces a greedy regexp.
-
-`(?? SEXP)'
-     like `zero-or-one', but always produces a non-greedy regexp.
-
-`(repeat N SEXP)'
-     matches N occurrences of what SEXP matches.
-
-`(repeat N M SEXP)'
-     matches N to M occurrences of what SEXP matches.
-
-`(eval FORM)'
-      evaluate FORM and insert result.  If result is a string,
-      `regexp-quote' it.
-
-`(regexp REGEXP)'
-      include REGEXP in string notation in the result.
-
-*** The features `md5' and `overlay' are now provided by default.
-
-*** The special form `save-restriction' now works correctly even if the
-buffer is widened inside the save-restriction and changes made outside
-the original restriction.  Previously, doing this would cause the saved
-restriction to be restored incorrectly.
-
-*** The functions `find-charset-region' and `find-charset-string' include
-`eight-bit-control' and/or `eight-bit-graphic' in the returned list
-when they find 8-bit characters.  Previously, they included `ascii' in a
-multibyte buffer and `unknown' in a unibyte buffer.
-
-*** The functions `set-buffer-multibyte', `string-as-multibyte' and
-`string-as-unibyte' change the byte sequence of a buffer or a string
-if it contains a character from the `eight-bit-control' character set.
-
-*** The handling of multibyte sequences in a multibyte buffer is
-changed.  Previously, a byte sequence matching the pattern
-[\200-\237][\240-\377]+ was interpreted as a single character
-regardless of the length of the trailing bytes [\240-\377]+.  Thus, if
-the sequence was longer than what the leading byte indicated, the
-extra trailing bytes were ignored by Lisp functions.  Now such extra
-bytes are independent 8-bit characters belonging to the charset
-eight-bit-graphic.
-
-** Fontsets are now implemented using char-tables.
-
-A fontset can now be specified for each independent character, for
-a group of characters or for a character set rather than just for a
-character set as previously.
-
-*** The arguments of the function `set-fontset-font' are changed.
-They are NAME, CHARACTER, FONTNAME, and optional FRAME.  The function
-modifies fontset NAME to use FONTNAME for CHARACTER.
-
-CHARACTER may be a cons (FROM . TO), where FROM and TO are non-generic
-characters.  In that case FONTNAME is used for all characters in the
-range FROM and TO (inclusive).  CHARACTER may be a charset.  In that
-case FONTNAME is used for all character in the charset.
-
-FONTNAME may be a cons (FAMILY . REGISTRY), where FAMILY is the family
-name of a font and REGISTRY is a registry name of a font.
-
-*** Variable x-charset-registry has been deleted.  The default charset
-registries of character sets are set in the default fontset
-"fontset-default".
-
-*** The function `create-fontset-from-fontset-spec' ignores the second
-argument STYLE-VARIANT.  It never creates style-variant fontsets.
-
-** The method of composing characters is changed.  Now character
-composition is done by a special text property `composition' in
-buffers and strings.
-
-*** Charset composition is deleted.  Emacs never creates a `composite
-character' which is an independent character with a unique character
-code.  Thus the following functions handling `composite characters'
-have been deleted: composite-char-component,
-composite-char-component-count, composite-char-composition-rule,
-composite-char-composition-rule and decompose-composite-char delete.
-The variables leading-code-composition and min-composite-char have
-also been deleted.
-
-*** Three more glyph reference points are added.  They can be used to
-specify a composition rule.  See the documentation of the variable
-`reference-point-alist' for more detail.
-
-*** The function `compose-region' takes new arguments COMPONENTS and
-MODIFICATION-FUNC.  With COMPONENTS, you can specify not only a
-composition rule but also characters to be composed.  Such characters
-may differ between buffer and string text.
-
-*** The function `compose-string' takes new arguments START, END,
-COMPONENTS, and MODIFICATION-FUNC.
-
-*** The function `compose-string' puts text property `composition'
-directly on the argument STRING instead of returning a new string.
-Likewise, the function `decompose-string' just removes text property
-`composition' from STRING.
-
-*** The new function `find-composition' returns information about
-a composition at a specified position in a buffer or a string.
-
-*** The function `decompose-composite-char' is now labeled as
-obsolete.
-
-** The new coding system `mac-roman' is primarily intended for use on
-the Macintosh but may be used generally for Macintosh-encoded text.
-
-** The new character sets `mule-unicode-0100-24ff',
-`mule-unicode-2500-33ff', and `mule-unicode-e000-ffff' have been
-introduced for Unicode characters in the range U+0100..U+24FF,
-U+2500..U+33FF, U+E000..U+FFFF respectively.
-
-Note that the character sets are not yet unified in Emacs, so
-characters which belong to charsets such as Latin-2, Greek, Hebrew,
-etc. and the same characters in the `mule-unicode-*' charsets are
-different characters, as far as Emacs is concerned.  For example, text
-which includes Unicode characters from the Latin-2 locale cannot be
-encoded by Emacs with ISO 8859-2 coding system.
-
-** The new coding system `mule-utf-8' has been added.
-It provides limited support for decoding/encoding UTF-8 text.  For
-details, please see the documentation string of this coding system.
-
-** The new character sets `japanese-jisx0213-1' and
-`japanese-jisx0213-2' have been introduced for the new Japanese
-standard JIS X 0213 Plane 1 and Plane 2.
-
-** The new character sets `latin-iso8859-14' and `latin-iso8859-15'
-have been introduced.
-
-** The new character sets `eight-bit-control' and `eight-bit-graphic'
-have been introduced for 8-bit characters in the ranges 0x80..0x9F and
-0xA0..0xFF respectively.  Note that the multibyte representation of
-eight-bit-control is never exposed; this leads to an exception in the
-emacs-mule coding system, which encodes everything else to the
-buffer/string internal representation.  Note that to search for
-eight-bit-graphic characters in a multibyte buffer, the search string
-must be multibyte, otherwise such characters will be converted to
-their multibyte equivalent.
-
-** If the APPEND argument of `write-region' is an integer, it seeks to
-that offset in the file before writing.
-
-** The function `add-minor-mode' has been added for convenience and
-compatibility with XEmacs (and is used internally by define-minor-mode).
-
-** The function `shell-command' now sets the default directory of the
-`*Shell Command Output*' buffer to the default directory of the buffer
-from which the command was issued.
-
-** The functions `query-replace', `query-replace-regexp',
-`query-replace-regexp-eval' `map-query-replace-regexp',
-`replace-string', `replace-regexp', and `perform-replace' take two
-additional optional arguments START and END that specify the region to
-operate on.
-
-** The new function `count-screen-lines' is a more flexible alternative
-to `window-buffer-height'.
-
-- Function: count-screen-lines &optional BEG END COUNT-FINAL-NEWLINE WINDOW
-
-Return the number of screen lines in the region between BEG and END.
-The number of screen lines may be different from the number of actual
-lines, due to line breaking, display table, etc.
-
-Optional arguments BEG and END default to `point-min' and `point-max'
-respectively.
-
-If region ends with a newline, ignore it unless optional third argument
-COUNT-FINAL-NEWLINE is non-nil.
-
-The optional fourth argument WINDOW specifies the window used for
-obtaining parameters such as width, horizontal scrolling, and so
-on. The default is to use the selected window's parameters.
-
-Like `vertical-motion', `count-screen-lines' always uses the current
-buffer, regardless of which buffer is displayed in WINDOW. This makes
-possible to use `count-screen-lines' in any buffer, whether or not it
-is currently displayed in some window.
-
-** The new function `mapc' is like `mapcar' but doesn't collect the
-argument function's results.
-
-** The functions base64-decode-region and base64-decode-string now
-signal an error instead of returning nil if decoding fails.  Also,
-`base64-decode-string' now always returns a unibyte string (in Emacs
-20, it returned a multibyte string when the result was a valid multibyte
-sequence).
-
-** The function sendmail-user-agent-compose now recognizes a `body'
-header in the list of headers passed to it.
-
-** The new function member-ignore-case works like `member', but
-ignores differences in case and text representation.
-
-** The buffer-local variable cursor-type can be used to specify the
-cursor to use in windows displaying a buffer.  Values are interpreted
-as follows:
-
-  t 		use the cursor specified for the frame (default)
-  nil		don't display a cursor
-  `bar'		display a bar cursor with default width
-  (bar . WIDTH)	display a bar cursor with width WIDTH
-  others	display a box cursor.
-
-** The variable open-paren-in-column-0-is-defun-start controls whether
-an open parenthesis in column 0 is considered to be the start of a
-defun.  If set, the default, it is considered a defun start.  If not
-set, an open parenthesis in column 0 has no special meaning.
-
-** The new function `string-to-syntax' can be used to translate syntax
-specifications in string form as accepted by `modify-syntax-entry' to
-the cons-cell form that is used for the values of the `syntax-table'
-text property, and in `font-lock-syntactic-keywords'.
-
-Example:
-
-  (string-to-syntax "()")
-    => (4 . 41)
-
-** Emacs' reader supports CL read syntax for integers in bases
-other than 10.
-
-*** `#BINTEGER' or `#bINTEGER' reads INTEGER in binary (radix 2).
-INTEGER optionally contains a sign.
-
-  #b1111
-    => 15
-  #b-1111
-    => -15
-
-*** `#OINTEGER' or `#oINTEGER' reads INTEGER in octal (radix 8).
-
-  #o666
-    => 438
-
-*** `#XINTEGER' or `#xINTEGER' reads INTEGER in hexadecimal (radix 16).
-
-  #xbeef
-    => 48815
-
-*** `#RADIXrINTEGER' reads INTEGER in radix RADIX, 2 <= RADIX <= 36.
-
-  #2R-111
-    => -7
-  #25rah
-    => 267
-
-** The function `documentation-property' now evaluates the value of
-the given property to obtain a string if it doesn't refer to etc/DOC
-and isn't a string.
-
-** If called for a symbol, the function `documentation' now looks for
-a `function-documentation' property of that symbol.  If it has a non-nil
-value, the documentation is taken from that value.  If the value is
-not a string, it is evaluated to obtain a string.
-
-** The last argument of `define-key-after' defaults to t for convenience.
-
-** The new function `replace-regexp-in-string' replaces all matches
-for a regexp in a string.
-
-** `mouse-position' now runs the abnormal hook
-`mouse-position-function'.
-
-** The function string-to-number now returns a float for numbers
-that don't fit into a Lisp integer.
-
-** The variable keyword-symbols-constants-flag has been removed.
-Keywords are now always considered constants.
-
-** The new function `delete-and-extract-region' deletes text and
-returns it.
-
-** The function `clear-this-command-keys' now also clears the vector
-returned by function `recent-keys'.
-
-** Variables `beginning-of-defun-function' and `end-of-defun-function'
-can be used to define handlers for the functions that find defuns.
-Major modes can define these locally instead of rebinding C-M-a
-etc. if the normal conventions for defuns are not appropriate for the
-mode.
-
-** easy-mmode-define-minor-mode now takes an additional BODY argument
-and is renamed `define-minor-mode'.
-
-** If an abbrev has a hook function which is a symbol, and that symbol
-has a non-nil `no-self-insert' property, the return value of the hook
-function specifies whether an expansion has been done or not.  If it
-returns nil, abbrev-expand also returns nil, meaning "no expansion has
-been performed."
-
-When abbrev expansion is done by typing a self-inserting character,
-and the abbrev has a hook with the `no-self-insert' property, and the
-hook function returns non-nil meaning expansion has been done,
-then the self-inserting character is not inserted.
-
-** The function `intern-soft' now accepts a symbol as first argument.
-In this case, that exact symbol is looked up in the specified obarray,
-and the function's value is nil if it is not found.
-
-** The new macro `with-syntax-table' can be used to evaluate forms
-with the syntax table of the current buffer temporarily set to a
-specified table.
-
-  (with-syntax-table TABLE &rest BODY)
-
-Evaluate BODY with syntax table of current buffer set to a copy of
-TABLE.  The current syntax table is saved, BODY is evaluated, and the
-saved table is restored, even in case of an abnormal exit.  Value is
-what BODY returns.
-
-** Regular expressions now support intervals \{n,m\} as well as
-Perl's shy-groups \(?:...\) and non-greedy *? +? and ?? operators.
-Also back-references like \2 are now considered as an error if the
-corresponding subgroup does not exist (or is not closed yet).
-Previously it would have been silently turned into `2' (ignoring the `\').
-
-** The optional argument BUFFER of function file-local-copy has been
-removed since it wasn't used by anything.
-
-** The file name argument of function `file-locked-p' is now required
-instead of being optional.
-
-** The new built-in error `text-read-only' is signaled when trying to
-modify read-only text.
-
-** New functions and variables for locales.
-
-The new variable `locale-coding-system' specifies how to encode and
-decode strings passed to low-level message functions like strerror and
-time functions like strftime.  The new variables
-`system-messages-locale' and `system-time-locale' give the system
-locales to be used when invoking these two types of functions.
-
-The new function `set-locale-environment' sets the language
-environment, preferred coding system, and locale coding system from
-the system locale as specified by the LC_ALL, LC_CTYPE, and LANG
-environment variables.  Normally, it is invoked during startup and need
-not be invoked thereafter.  It uses the new variables
-`locale-language-names', `locale-charset-language-names', and
-`locale-preferred-coding-systems' to make its decisions.
-
-** syntax tables now understand nested comments.
-To declare a comment syntax as allowing nesting, just add an `n'
-modifier to either of the characters of the comment end and the comment
-start sequences.
-
-** The function `pixmap-spec-p' has been renamed `bitmap-spec-p'
-because `bitmap' is more in line with the usual X terminology.
-
-** New function `propertize'
-
-The new function `propertize' can be used to conveniently construct
-strings with text properties.
-
-- Function: propertize STRING &rest PROPERTIES
-
-Value is a copy of STRING with text properties assigned as specified
-by PROPERTIES.  PROPERTIES is a sequence of pairs PROPERTY VALUE, with
-PROPERTY being the name of a text property and VALUE being the
-specified value of that property.  Example:
-
-  (propertize "foo" 'face 'bold 'read-only t)
-
-** push and pop macros.
-
-Simple versions of the push and pop macros of Common Lisp
-are now defined in Emacs Lisp.  These macros allow only symbols
-as the place that holds the list to be changed.
-
-(push NEWELT LISTNAME)  add NEWELT to the front of LISTNAME's value.
-(pop LISTNAME)          return first elt of LISTNAME, and remove it
-			(thus altering the value of LISTNAME).
-
-** New dolist and dotimes macros.
-
-Simple versions of the dolist and dotimes macros of Common Lisp
-are now defined in Emacs Lisp.
-
-(dolist (VAR LIST [RESULT]) BODY...)
-      Execute body once for each element of LIST,
-      using the variable VAR to hold the current element.
-      Then return the value of RESULT, or nil if RESULT is omitted.
-
-(dotimes (VAR COUNT [RESULT]) BODY...)
-      Execute BODY with VAR bound to successive integers running from 0,
-      inclusive, to COUNT, exclusive.
-      Then return the value of RESULT, or nil if RESULT is omitted.
-
-** Regular expressions now support Posix character classes such as
-[:alpha:], [:space:] and so on.  These must be used within a character
-class--for instance, [-[:digit:].+] matches digits or a period
-or a sign.
-
-[:digit:]  matches 0 through 9
-[:cntrl:]  matches ASCII control characters
-[:xdigit:]  matches 0 through 9, a through f and A through F.
-[:blank:]  matches space and tab only
-[:graph:]  matches graphic characters--everything except ASCII control chars,
-	   space, and DEL.
-[:print:]  matches printing characters--everything except ASCII control chars
-	   and DEL.
-[:alnum:]  matches letters and digits.
-	   (But at present, for multibyte characters,
-	    it matches anything that has word syntax.)
-[:alpha:]  matches letters.
-	   (But at present, for multibyte characters,
-	    it matches anything that has word syntax.)
-[:ascii:]  matches ASCII (unibyte) characters.
-[:nonascii:]  matches non-ASCII (multibyte) characters.
-[:lower:]  matches anything lower-case.
-[:punct:]  matches punctuation.
-	   (But at present, for multibyte characters,
-	    it matches anything that has non-word syntax.)
-[:space:]  matches anything that has whitespace syntax.
-[:upper:]  matches anything upper-case.
-[:word:]   matches anything that has word syntax.
-
-** Emacs now has built-in hash tables.
-
-The following functions are defined for hash tables:
-
-- Function: make-hash-table ARGS
-
-The argument list ARGS consists of keyword/argument pairs.  All arguments
-are optional.  The following arguments are defined:
-
-:test TEST
-
-TEST must be a symbol specifying how to compare keys.  Default is `eql'.
-Predefined are `eq', `eql' and `equal'.  If TEST is not predefined,
-it must have been defined with `define-hash-table-test'.
-
-:size SIZE
-
-SIZE must be an integer > 0 giving a hint to the implementation how
-many elements will be put in the hash table.  Default size is 65.
-
-:rehash-size REHASH-SIZE
-
-REHASH-SIZE specifies by how much to grow a hash table once it becomes
-full.  If REHASH-SIZE is an integer, add that to the hash table's old
-size to get the new size.  Otherwise, REHASH-SIZE must be a float >
-1.0, and the new size is computed by multiplying REHASH-SIZE with the
-old size.  Default rehash size is 1.5.
-
-:rehash-threshold THRESHOLD
-
-THRESHOLD must be a float > 0 and <= 1.0 specifying when to resize the
-hash table.  It is resized when the ratio of (number of entries) /
-(size of hash table) is >= THRESHOLD.  Default threshold is 0.8.
-
-:weakness WEAK
-
-WEAK must be either nil, one of the symbols `key, `value',
-`key-or-value', `key-and-value', or t, meaning the same as
-`key-and-value'.  Entries are removed from weak tables during garbage
-collection if their key and/or value are not referenced elsewhere
-outside of the hash table.  Default are non-weak hash tables.
-
-- Function: makehash &optional TEST
-
-Similar to make-hash-table, but only TEST can be specified.
-
-- Function: hash-table-p TABLE
-
-Returns non-nil if TABLE is a hash table object.
-
-- Function: copy-hash-table TABLE
-
-Returns a copy of TABLE.  Only the table itself is copied, keys and
-values are shared.
-
-- Function: hash-table-count TABLE
-
-Returns the number of entries in TABLE.
-
-- Function: hash-table-rehash-size TABLE
-
-Returns the rehash size of TABLE.
-
-- Function: hash-table-rehash-threshold TABLE
-
-Returns the rehash threshold of TABLE.
-
-- Function: hash-table-rehash-size TABLE
-
-Returns the size of TABLE.
-
-- Function: hash-table-test TABLE
-
-Returns the test TABLE uses to compare keys.
-
-- Function: hash-table-weakness TABLE
-
-Returns the weakness specified for TABLE.
-
-- Function: clrhash TABLE
-
-Clear TABLE.
-
-- Function: gethash KEY TABLE &optional DEFAULT
-
-Look up KEY in TABLE and return its associated VALUE or DEFAULT if
-not found.
-
-- Function: puthash KEY VALUE TABLE
-
-Associate KEY with VALUE in TABLE.  If KEY is already associated with
-another value, replace the old value with VALUE.
-
-- Function: remhash KEY TABLE
-
-Remove KEY from TABLE if it is there.
-
-- Function: maphash FUNCTION TABLE
-
-Call FUNCTION for all elements in TABLE.  FUNCTION must take two
-arguments KEY and VALUE.
-
-- Function: sxhash OBJ
-
-Return a hash code for Lisp object OBJ.
-
-- Function: define-hash-table-test NAME TEST-FN HASH-FN
-
-Define a new hash table test named NAME.  If NAME is specified as
-a test in `make-hash-table', the table created will use TEST-FN for
-comparing keys, and HASH-FN to compute hash codes for keys.  Test
-and hash function are stored as symbol property `hash-table-test'
-of NAME with a value of (TEST-FN HASH-FN).
-
-TEST-FN must take two arguments and return non-nil if they are the same.
-
-HASH-FN must take one argument and return an integer that is the hash
-code of the argument.  The function should use the whole range of
-integer values for hash code computation, including negative integers.
-
-Example: The following creates a hash table whose keys are supposed to
-be strings that are compared case-insensitively.
-
-  (defun case-fold-string= (a b)
-    (compare-strings a nil nil b nil nil t))
-
-  (defun case-fold-string-hash (a)
-    (sxhash (upcase a)))
-
-  (define-hash-table-test 'case-fold 'case-fold-string=
-                          'case-fold-string-hash))
-
-  (make-hash-table :test 'case-fold)
-
-** The Lisp reader handles circular structure.
-
-It now works to use the #N= and #N# constructs to represent
-circular structures.  For example, #1=(a . #1#) represents
-a cons cell which is its own cdr.
-
-** The Lisp printer handles circular structure.
-
-If you bind print-circle to a non-nil value, the Lisp printer outputs
-#N= and #N# constructs to represent circular and shared structure.
-
-** If the second argument to `move-to-column' is anything but nil or
-t, that means replace a tab with spaces if necessary to reach the
-specified column, but do not add spaces at the end of the line if it
-is too short to reach that column.
-
-** perform-replace has a new feature:  the REPLACEMENTS argument may
-now be a cons cell (FUNCTION . DATA).  This means to call FUNCTION
-after each match to get the replacement text.  FUNCTION is called with
-two arguments: DATA, and the number of replacements already made.
-
-If the FROM-STRING contains any upper-case letters,
-perform-replace also turns off `case-fold-search' temporarily
-and inserts the replacement text without altering case in it.
-
-** The function buffer-size now accepts an optional argument
-to specify which buffer to return the size of.
-
-** The calendar motion commands now run the normal hook
-calendar-move-hook after moving point.
-
-** The new variable small-temporary-file-directory specifies a
-directory to use for creating temporary files that are likely to be
-small.  (Certain Emacs features use this directory.)  If
-small-temporary-file-directory is nil, they use
-temporary-file-directory instead.
-
-** The variable `inhibit-modification-hooks', if non-nil, inhibits all
-the hooks that track changes in the buffer.  This affects
-`before-change-functions' and `after-change-functions', as well as
-hooks attached to text properties and overlay properties.
-
-** assq-delete-all is a new function that deletes all the
-elements of an alist which have a car `eq' to a particular value.
-
-** make-temp-file provides a more reliable way to create a temporary file.
-
-make-temp-file is used like make-temp-name, except that it actually
-creates the file before it returns.  This prevents a timing error,
-ensuring that no other job can use the same name for a temporary file.
-
-** New exclusive-open feature in `write-region'
-
-The optional seventh arg is now called MUSTBENEW.  If non-nil, it insists
-on a check for an existing file with the same name.  If MUSTBENEW
-is `excl', that means to get an error if the file already exists;
-never overwrite. If MUSTBENEW is neither nil nor `excl', that means
-ask for confirmation before overwriting, but do go ahead and
-overwrite the file if the user gives confirmation.
-
-If the MUSTBENEW argument in `write-region' is `excl',
-that means to use a special feature in the `open' system call
-to get an error if the file exists at that time.
-The error reported is `file-already-exists'.
-
-** Function `format' now handles text properties.
-
-Text properties of the format string are applied to the result string.
-If the result string is longer than the format string, text properties
-ending at the end of the format string are extended to the end of the
-result string.
-
-Text properties from string arguments are applied to the result
-string where arguments appear in the result string.
-
-Example:
-
-  (let ((s1 "hello, %s")
-        (s2 "world"))
-     (put-text-property 0 (length s1) 'face 'bold s1)
-     (put-text-property 0 (length s2) 'face 'italic s2)
-     (format s1 s2))
-
-results in a bold-face string with an italic `world' at the end.
-
-** Messages can now be displayed with text properties.
-
-Text properties are handled as described above for function `format'.
-The following example displays a bold-face message with an italic
-argument in it.
-
-  (let ((msg "hello, %s!")
-        (arg "world"))
-     (put-text-property 0 (length msg) 'face 'bold msg)
-     (put-text-property 0 (length arg) 'face 'italic arg)
-     (message msg arg))
-
-** Sound support
-
-Emacs supports playing sound files on GNU/Linux and the free BSDs
-(Voxware driver and native BSD driver, aka as Luigi's driver).
-
-Currently supported file formats are RIFF-WAVE (*.wav) and Sun Audio
-(*.au).  You must configure Emacs with the option `--with-sound=yes'
-to enable sound support.
-
-Sound files can be played by calling (play-sound SOUND).  SOUND is a
-list of the form `(sound PROPERTY...)'.  The function is only defined
-when sound support is present for the system on which Emacs runs.  The
-functions runs `play-sound-functions' with one argument which is the
-sound to play, before playing the sound.
-
-The following sound properties are supported:
-
-- `:file FILE'
-
-FILE is a file name.  If FILE isn't an absolute name, it will be
-searched relative to `data-directory'.
-
-- `:data DATA'
-
-DATA is a string containing sound data.  Either :file or :data
-may be present, but not both.
-
-- `:volume VOLUME'
-
-VOLUME must be an integer in the range 0..100 or a float in the range
-0..1.  This property is optional.
-
-- `:device DEVICE'
-
-DEVICE is a string specifying the system device on which to play the
-sound.  The default device is system-dependent.
-
-Other properties are ignored.
-
-An alternative interface is called as
-(play-sound-file FILE &optional VOLUME DEVICE).
-
-** `multimedia' is a new Finder keyword and Custom group.
-
-** keywordp is a new predicate to test efficiently for an object being
-a keyword symbol.
-
-** Changes to garbage collection
-
-*** The function garbage-collect now additionally returns the number
-of live and free strings.
-
-*** There is a new variable `strings-consed' holding the number of
-strings that have been consed so far.
-
-
-* Lisp-level Display features added after release 2.6 of the Emacs
-Lisp Manual
-
-** The user-option `resize-mini-windows' controls how Emacs resizes
-mini-windows.
-
-** The function `pos-visible-in-window-p' now has a third optional
-argument, PARTIALLY.  If a character is only partially visible, nil is
-returned, unless PARTIALLY is non-nil.
-
-** On window systems, `glyph-table' is no longer used.
-
-** Help strings in menu items are now used to provide `help-echo' text.
-
-** The function `image-size' can be used to determine the size of an
-image.
-
-- Function: image-size SPEC &optional PIXELS FRAME
-
-Return the size of an image as a pair (WIDTH . HEIGHT).
-
-SPEC is an image specification.  PIXELS non-nil means return sizes
-measured in pixels, otherwise return sizes measured in canonical
-character units (fractions of the width/height of the frame's default
-font).  FRAME is the frame on which the image will be displayed.
-FRAME nil or omitted means use the selected frame.
-
-** The function `image-mask-p' can be used to determine if an image
-has a mask bitmap.
-
-- Function: image-mask-p SPEC &optional FRAME
-
-Return t if image SPEC has a mask bitmap.
-FRAME is the frame on which the image will be displayed.  FRAME nil
-or omitted means use the selected frame.
-
-** The function `find-image' can be used to find a usable image
-satisfying one of a list of specifications.
-
-** The STRING argument of `put-image' and `insert-image' is now
-optional.
-
-** Image specifications may contain the property `:ascent center' (see
-below).
-
-
-* New Lisp-level Display features in Emacs 21.1
-
-** The function tty-suppress-bold-inverse-default-colors can be used
-to make Emacs avoid displaying text with bold black foreground on TTYs.
-
-Some terminals, notably PC consoles, emulate bold text by displaying
-text in brighter colors.  On such a console, a bold black foreground
-is displayed in a gray color.  If this turns out to be hard to read on
-your monitor---the problem occurred with the mode line on
-laptops---you can instruct Emacs to ignore the text's boldness, and to
-just display it black instead.
-
-This situation can't be detected automatically.  You will have to put
-a line like
-
-  (tty-suppress-bold-inverse-default-colors t)
-
-in your `.emacs'.
-
-** New face implementation.
-
-Emacs faces have been reimplemented from scratch.  They don't use XLFD
-font names anymore and face merging now works as expected.
-
-*** New faces.
-
-Each face can specify the following display attributes:
-
-   1. Font family or fontset alias name.
-
-   2. Relative proportionate width, aka character set width or set
-   width (swidth), e.g. `semi-compressed'.
-
-   3. Font height in 1/10pt
-
-   4. Font weight, e.g. `bold'.
-
-   5. Font slant, e.g. `italic'.
-
-   6. Foreground color.
-
-   7. Background color.
-
-   8. Whether or not characters should be underlined, and in what color.
-
-   9. Whether or not characters should be displayed in inverse video.
-
-   10. A background stipple, a bitmap.
-
-   11. Whether or not characters should be overlined, and in what color.
-
-   12. Whether or not characters should be strike-through, and in what
-   color.
-
-   13. Whether or not a box should be drawn around characters, its
-   color, the width of the box lines, and 3D appearance.
-
-Faces are frame-local by nature because Emacs allows to define the
-same named face (face names are symbols) differently for different
-frames.  Each frame has an alist of face definitions for all named
-faces.  The value of a named face in such an alist is a Lisp vector
-with the symbol `face' in slot 0, and a slot for each of the face
-attributes mentioned above.
-
-There is also a global face alist `face-new-frame-defaults'.  Face
-definitions from this list are used to initialize faces of newly
-created frames.
-
-A face doesn't have to specify all attributes.  Those not specified
-have a nil value.  Faces specifying all attributes are called
-`fully-specified'.
-
-*** Face merging.
-
-The display style of a given character in the text is determined by
-combining several faces.  This process is called `face merging'.  Any
-aspect of the display style that isn't specified by overlays or text
-properties is taken from the `default' face.  Since it is made sure
-that the default face is always fully-specified, face merging always
-results in a fully-specified face.
-
-*** Face realization.
-
-After all face attributes for a character have been determined by
-merging faces of that character, that face is `realized'.  The
-realization process maps face attributes to what is physically
-available on the system where Emacs runs.  The result is a `realized
-face' in form of an internal structure which is stored in the face
-cache of the frame on which it was realized.
-
-Face realization is done in the context of the charset of the
-character to display because different fonts and encodings are used
-for different charsets.  In other words, for characters of different
-charsets, different realized faces are needed to display them.
-
-Except for composite characters, faces are always realized for a
-specific character set and contain a specific font, even if the face
-being realized specifies a fontset.  The reason is that the result of
-the new font selection stage is better than what can be done with
-statically defined font name patterns in fontsets.
-
-In unibyte text, Emacs' charsets aren't applicable; function
-`char-charset' reports ASCII for all characters, including those >
-0x7f.  The X registry and encoding of fonts to use is determined from
-the variable `face-default-registry' in this case.  The variable is
-initialized at Emacs startup time from the font the user specified for
-Emacs.
-
-Currently all unibyte text, i.e. all buffers with
-`enable-multibyte-characters' nil are displayed with fonts of the same
-registry and encoding `face-default-registry'.  This is consistent
-with the fact that languages can also be set globally, only.
-
-**** Clearing face caches.
-
-The Lisp function `clear-face-cache' can be called to clear face caches
-on all frames.  If called with a non-nil argument, it will also unload
-unused fonts.
-
-*** Font selection.
-
-Font selection tries to find the best available matching font for a
-given (charset, face) combination.  This is done slightly differently
-for faces specifying a fontset, or a font family name.
-
-If the face specifies a fontset name, that fontset determines a
-pattern for fonts of the given charset.  If the face specifies a font
-family, a font pattern is constructed.  Charset symbols have a
-property `x-charset-registry' for that purpose that maps a charset to
-an XLFD registry and encoding in the font pattern constructed.
-
-Available fonts on the system on which Emacs runs are then matched
-against the font pattern.  The result of font selection is the best
-match for the given face attributes in this font list.
-
-Font selection can be influenced by the user.
-
-The user can specify the relative importance he gives the face
-attributes width, height, weight, and slant by setting
-face-font-selection-order (faces.el) to a list of face attribute
-names.  The default is (:width :height :weight :slant), and means
-that font selection first tries to find a good match for the font
-width specified by a face, then---within fonts with that width---tries
-to find a best match for the specified font height, etc.
-
-Setting `face-font-family-alternatives' allows the user to specify
-alternative font families to try if a family specified by a face
-doesn't exist.
-
-Setting `face-font-registry-alternatives' allows the user to specify
-all alternative font registry names to try for a face specifying a
-registry.
-
-Please note that the interpretations of the above two variables are
-slightly different.
-
-Setting face-ignored-fonts allows the user to ignore specific fonts.
-
-
-**** Scalable fonts
-
-Emacs can make use of scalable fonts but doesn't do so by default,
-since the use of too many or too big scalable fonts may crash XFree86
-servers.
-
-To enable scalable font use, set the variable
-`scalable-fonts-allowed'.  A value of nil, the default, means never use
-scalable fonts.  A value of t means any scalable font may be used.
-Otherwise, the value must be a list of regular expressions.  A
-scalable font may then be used if it matches a regular expression from
-that list.  Example:
-
-  (setq scalable-fonts-allowed '("muleindian-2$"))
-
-allows the use of scalable fonts with registry `muleindian-2'.
-
-*** Functions and variables related to font selection.
-
-- Function: x-family-fonts &optional FAMILY FRAME
-
-Return a list of available fonts of family FAMILY on FRAME.  If FAMILY
-is omitted or nil, list all families.  Otherwise, FAMILY must be a
-string, possibly containing wildcards `?' and `*'.
-
-If FRAME is omitted or nil, use the selected frame.  Each element of
-the result is a vector [FAMILY WIDTH POINT-SIZE WEIGHT SLANT FIXED-P
-FULL REGISTRY-AND-ENCODING].  FAMILY is the font family name.
-POINT-SIZE is the size of the font in 1/10 pt.  WIDTH, WEIGHT, and
-SLANT are symbols describing the width, weight and slant of the font.
-These symbols are the same as for face attributes.  FIXED-P is non-nil
-if the font is fixed-pitch.  FULL is the full name of the font, and
-REGISTRY-AND-ENCODING is a string giving the registry and encoding of
-the font.  The result list is sorted according to the current setting
-of the face font sort order.
-
-- Function: x-font-family-list
-
-Return a list of available font families on FRAME.  If FRAME is
-omitted or nil, use the selected frame.  Value is a list of conses
-(FAMILY . FIXED-P) where FAMILY is a font family, and FIXED-P is
-non-nil if fonts of that family are fixed-pitch.
-
-- Variable: font-list-limit
-
-Limit for font matching.  If an integer > 0, font matching functions
-won't load more than that number of fonts when searching for a
-matching font.  The default is currently 100.
-
-*** Setting face attributes.
-
-For the most part, the new face implementation is interface-compatible
-with the old one.  Old face attribute related functions are now
-implemented in terms of the new functions `set-face-attribute' and
-`face-attribute'.
-
-Face attributes are identified by their names which are keyword
-symbols.  All attributes can be set to `unspecified'.
-
-The following attributes are recognized:
-
-`:family'
-
-VALUE must be a string specifying the font family, e.g. ``courier'',
-or a fontset alias name.  If a font family is specified, wild-cards `*'
-and `?' are allowed.
-
-`:width'
-
-VALUE specifies the relative proportionate width of the font to use.
-It must be one of the symbols `ultra-condensed', `extra-condensed',
-`condensed', `semi-condensed', `normal', `semi-expanded', `expanded',
-`extra-expanded', or `ultra-expanded'.
-
-`:height'
-
-VALUE must be either an integer specifying the height of the font to use
-in 1/10 pt, a floating point number specifying the amount by which to
-scale any underlying face, or a function, which is called with the old
-height (from the underlying face), and should return the new height.
-
-`:weight'
-
-VALUE specifies the weight of the font to use.  It must be one of the
-symbols `ultra-bold', `extra-bold', `bold', `semi-bold', `normal',
-`semi-light', `light', `extra-light', `ultra-light'.
-
-`:slant'
-
-VALUE specifies the slant of the font to use.  It must be one of the
-symbols `italic', `oblique', `normal', `reverse-italic', or
-`reverse-oblique'.
-
-`:foreground', `:background'
-
-VALUE must be a color name, a string.
-
-`:underline'
-
-VALUE specifies whether characters in FACE should be underlined.  If
-VALUE is t, underline with foreground color of the face.  If VALUE is
-a string, underline with that color.  If VALUE is nil, explicitly
-don't underline.
-
-`:overline'
-
-VALUE specifies whether characters in FACE should be overlined.  If
-VALUE is t, overline with foreground color of the face.  If VALUE is a
-string, overline with that color.  If VALUE is nil, explicitly don't
-overline.
-
-`:strike-through'
-
-VALUE specifies whether characters in FACE should be drawn with a line
-striking through them.  If VALUE is t, use the foreground color of the
-face.  If VALUE is a string, strike-through with that color.  If VALUE
-is nil, explicitly don't strike through.
-
-`:box'
-
-VALUE specifies whether characters in FACE should have a box drawn
-around them.  If VALUE is nil, explicitly don't draw boxes.  If
-VALUE is t, draw a box with lines of width 1 in the foreground color
-of the face.  If VALUE is a string, the string must be a color name,
-and the box is drawn in that color with a line width of 1.  Otherwise,
-VALUE must be a property list of the form `(:line-width WIDTH
-:color COLOR :style STYLE)'.  If a keyword/value pair is missing from
-the property list, a default value will be used for the value, as
-specified below.  WIDTH specifies the width of the lines to draw; it
-defaults to 1.  COLOR is the name of the color to draw in, default is
-the foreground color of the face for simple boxes, and the background
-color of the face for 3D boxes.  STYLE specifies whether a 3D box
-should be draw.  If STYLE is `released-button', draw a box looking
-like a released 3D button.  If STYLE is `pressed-button' draw a box
-that appears like a pressed button.  If STYLE is nil, the default if
-the property list doesn't contain a style specification, draw a 2D
-box.
-
-`:inverse-video'
-
-VALUE specifies whether characters in FACE should be displayed in
-inverse video. VALUE must be one of t or nil.
-
-`:stipple'
-
-If VALUE is a string, it must be the name of a file of pixmap data.
-The directories listed in the `x-bitmap-file-path' variable are
-searched.  Alternatively, VALUE may be a list of the form (WIDTH
-HEIGHT DATA) where WIDTH and HEIGHT are the size in pixels, and DATA
-is a string containing the raw bits of the bitmap.  VALUE nil means
-explicitly don't use a stipple pattern.
-
-For convenience, attributes `:family', `:width', `:height', `:weight',
-and `:slant' may also be set in one step from an X font name:
-
-`:font'
-
-Set font-related face attributes from VALUE.  VALUE must be a valid
-XLFD font name.  If it is a font name pattern, the first matching font
-is used--this is for compatibility with the behavior of previous
-versions of Emacs.
-
-For compatibility with Emacs 20, keywords `:bold' and `:italic' can
-be used to specify that a bold or italic font should be used.  VALUE
-must be t or nil in that case.  A value of `unspecified' is not allowed."
-
-Please see also the documentation of `set-face-attribute' and
-`defface'.
-
-`:inherit'
-
-VALUE is the name of a face from which to inherit attributes, or a list
-of face names.  Attributes from inherited faces are merged into the face
-like an underlying face would be, with higher priority than underlying faces.
-
-*** Face attributes and X resources
-
-The following X resource names can be used to set face attributes
-from X resources:
-
-  Face attribute	X resource		class
------------------------------------------------------------------------
-  :family		attributeFamily .	Face.AttributeFamily
-  :width		attributeWidth		Face.AttributeWidth
-  :height		attributeHeight		Face.AttributeHeight
-  :weight		attributeWeight		Face.AttributeWeight
-  :slant		attributeSlant		Face.AttributeSlant
-   foreground		attributeForeground	Face.AttributeForeground
-  :background		attributeBackground .	Face.AttributeBackground
-  :overline		attributeOverline	Face.AttributeOverline
-  :strike-through	attributeStrikeThrough	Face.AttributeStrikeThrough
-  :box			attributeBox		Face.AttributeBox
-  :underline		attributeUnderline	Face.AttributeUnderline
-  :inverse-video	attributeInverse	Face.AttributeInverse
-  :stipple		attributeStipple	Face.AttributeStipple
-	or		attributeBackgroundPixmap
-						Face.AttributeBackgroundPixmap
-  :font			attributeFont		Face.AttributeFont
-  :bold			attributeBold		Face.AttributeBold
-  :italic		attributeItalic .	Face.AttributeItalic
-  :font			attributeFont		Face.AttributeFont
-
-*** Text property `face'.
-
-The value of the `face' text property can now be a single face
-specification or a list of such specifications.  Each face
-specification can be
-
-1. A symbol or string naming a Lisp face.
-
-2. A property list of the form (KEYWORD VALUE ...) where each
-   KEYWORD is a face attribute name, and VALUE is an appropriate value
-   for that attribute.  Please see the doc string of `set-face-attribute'
-   for face attribute names.
-
-3. Conses of the form (FOREGROUND-COLOR . COLOR) or
-   (BACKGROUND-COLOR . COLOR) where COLOR is a color name.  This is
-   for compatibility with previous Emacs versions.
-
-** Support functions for colors on text-only terminals.
-
-The function `tty-color-define' can be used to define colors for use
-on TTY and MSDOS frames.  It maps a color name to a color number on
-the terminal.  Emacs defines a couple of common color mappings by
-default.  You can get defined colors with a call to
-`defined-colors'.  The function `tty-color-clear' can be
-used to clear the mapping table.
-
-** Unified support for colors independent of frame type.
-
-The new functions `defined-colors', `color-defined-p', `color-values',
-and `display-color-p' work for any type of frame.  On frames whose
-type is neither x nor w32, these functions transparently map X-style
-color specifications to the closest colors supported by the frame
-display.  Lisp programs should use these new functions instead of the
-old `x-defined-colors', `x-color-defined-p', `x-color-values', and
-`x-display-color-p'.  (The old function names are still available for
-compatibility; they are now aliases of the new names.)  Lisp programs
-should no more look at the value of the variable window-system to
-modify their color-related behavior.
-
-The primitives `color-gray-p' and `color-supported-p' also work for
-any frame type.
-
-** Platform-independent functions to describe display capabilities.
-
-The new functions `display-mouse-p', `display-popup-menus-p',
-`display-graphic-p', `display-selections-p', `display-screens',
-`display-pixel-width', `display-pixel-height', `display-mm-width',
-`display-mm-height', `display-backing-store', `display-save-under',
-`display-planes', `display-color-cells', `display-visual-class', and
-`display-grayscale-p' describe the basic capabilities of a particular
-display.  Lisp programs should call these functions instead of testing
-the value of the variables `window-system' or `system-type', or calling
-platform-specific functions such as `x-display-pixel-width'.
-
-The new function `display-images-p' returns non-nil if a particular
-display can display image files.
-
-** The minibuffer prompt is now actually inserted in the minibuffer.
-
-This makes it possible to scroll through the prompt, if you want to.
-To disallow this completely (like previous versions of emacs), customize
-the variable `minibuffer-prompt-properties', and turn on the
-`Inviolable' option.
-
-The function `minibuffer-prompt-end' returns the current position of the
-end of the minibuffer prompt, if the minibuffer is current.
-Otherwise, it returns `(point-min)'.
-
-** New `field' abstraction in buffers.
-
-There is now code to support an abstraction called `fields' in emacs
-buffers.  A field is a contiguous region of text with the same `field'
-property (which can be a text property or an overlay).
-
-Many emacs functions, such as forward-word, forward-sentence,
-forward-paragraph, beginning-of-line, etc., stop moving when they come
-to the boundary between fields; beginning-of-line and end-of-line will
-not let the point move past the field boundary, but other movement
-commands continue into the next field if repeated.  Stopping at field
-boundaries can be suppressed programmatically by binding
-`inhibit-field-text-motion' to a non-nil value around calls to these
-functions.
-
-Now that the minibuffer prompt is inserted into the minibuffer, it is in
-a separate field from the user-input part of the buffer, so that common
-editing commands treat the user's text separately from the prompt.
-
-The following functions are defined for operating on fields:
-
-- Function: constrain-to-field NEW-POS OLD-POS &optional ESCAPE-FROM-EDGE ONLY-IN-LINE INHIBIT-CAPTURE-PROPERTY
-
-Return the position closest to NEW-POS that is in the same field as OLD-POS.
-
-A field is a region of text with the same `field' property.
-If NEW-POS is nil, then the current point is used instead, and set to the
-constrained position if that is different.
-
-If OLD-POS is at the boundary of two fields, then the allowable
-positions for NEW-POS depends on the value of the optional argument
-ESCAPE-FROM-EDGE: If ESCAPE-FROM-EDGE is nil, then NEW-POS is
-constrained to the field that has the same `field' char-property
-as any new characters inserted at OLD-POS, whereas if ESCAPE-FROM-EDGE
-is non-nil, NEW-POS is constrained to the union of the two adjacent
-fields.  Additionally, if two fields are separated by another field with
-the special value `boundary', then any point within this special field is
-also considered to be `on the boundary'.
-
-If the optional argument ONLY-IN-LINE is non-nil and constraining
-NEW-POS would move it to a different line, NEW-POS is returned
-unconstrained.  This useful for commands that move by line, like
-C-n or C-a, which should generally respect field boundaries
-only in the case where they can still move to the right line.
-
-If the optional argument INHIBIT-CAPTURE-PROPERTY is non-nil, and OLD-POS has
-a non-nil property of that name, then any field boundaries are ignored.
-
-Field boundaries are not noticed if `inhibit-field-text-motion' is non-nil.
-
-- Function: delete-field &optional POS
-
-Delete the field surrounding POS.
-A field is a region of text with the same `field' property.
-If POS is nil, the value of point is used for POS.
-
-- Function: field-beginning &optional POS ESCAPE-FROM-EDGE
-
-Return the beginning of the field surrounding POS.
-A field is a region of text with the same `field' property.
-If POS is nil, the value of point is used for POS.
-If ESCAPE-FROM-EDGE is non-nil and POS is at the beginning of its
-field, then the beginning of the *previous* field is returned.
-
-- Function: field-end &optional POS ESCAPE-FROM-EDGE
-
-Return the end of the field surrounding POS.
-A field is a region of text with the same `field' property.
-If POS is nil, the value of point is used for POS.
-If ESCAPE-FROM-EDGE is non-nil and POS is at the end of its field,
-then the end of the *following* field is returned.
-
-- Function: field-string &optional POS
-
-Return the contents of the field surrounding POS as a string.
-A field is a region of text with the same `field' property.
-If POS is nil, the value of point is used for POS.
-
-- Function: field-string-no-properties &optional POS
-
-Return the contents of the field around POS, without text-properties.
-A field is a region of text with the same `field' property.
-If POS is nil, the value of point is used for POS.
-
-** Image support.
-
-Emacs can now display images.  Images are inserted into text by giving
-strings or buffer text a `display' text property containing one of
-(AREA IMAGE) or IMAGE.  The display of the `display' property value
-replaces the display of the characters having that property.
-
-If the property value has the form (AREA IMAGE), AREA must be one of
-`(margin left-margin)', `(margin right-margin)' or `(margin nil)'.  If
-AREA is `(margin nil)', IMAGE will be displayed in the text area of a
-window, otherwise it will be displayed in the left or right marginal
-area.
-
-IMAGE is an image specification.
-
-*** Image specifications
-
-Image specifications are lists of the form `(image PROPS)' where PROPS
-is a property list whose keys are keyword symbols.  Each
-specifications must contain a property `:type TYPE' with TYPE being a
-symbol specifying the image type, e.g. `xbm'.  Properties not
-described below are ignored.
-
-The following is a list of properties all image types share.
-
-`:ascent ASCENT'
-
-ASCENT must be a number in the range 0..100, or the symbol `center'.
-If it is a number, it specifies the percentage of the image's height
-to use for its ascent.
-
-If not specified, ASCENT defaults to the value 50 which means that the
-image will be centered with the base line of the row it appears in.
-
-If ASCENT is `center' the image is vertically centered around a
-centerline which is the vertical center of text drawn at the position
-of the image, in the manner specified by the text properties and
-overlays that apply to the image.
-
-`:margin MARGIN'
-
-MARGIN must be either a number >= 0 specifying how many pixels to put
-as margin around the image, or a pair (X . Y) with X specifying the
-horizontal margin and Y specifying the vertical margin.  Default is 0.
-
-`:relief RELIEF'
-
-RELIEF is analogous to the `:relief' attribute of faces.  Puts a relief
-around an image.
-
-`:conversion ALGO'
-
-Apply an image algorithm to the image before displaying it.
-
-ALGO `laplace' or `emboss' means apply a Laplace or ``emboss''
-edge-detection algorithm to the image.
-
-ALGO `(edge-detection :matrix MATRIX :color-adjust ADJUST)' means
-apply a general edge-detection algorithm.  MATRIX must be either a
-nine-element list or a nine-element vector of numbers.  A pixel at
-position x/y in the transformed image is computed from original pixels
-around that position.  MATRIX specifies, for each pixel in the
-neighborhood of x/y, a factor with which that pixel will influence the
-transformed pixel; element 0 specifies the factor for the pixel at
-x-1/y-1, element 1 the factor for the pixel at x/y-1 etc. as shown
-below.
-
-  (x-1/y-1  x/y-1  x+1/y-1
-   x-1/y    x/y    x+1/y
-   x-1/y+1  x/y+1  x+1/y+1)
-
-The resulting pixel is computed from the color intensity of the color
-resulting from summing up the RGB values of surrounding pixels,
-multiplied by the specified factors, and dividing that sum by the sum
-of the factors' absolute values.
-
-Laplace edge-detection currently uses a matrix of
-
-  (1  0  0
-   0  0  0
-   9  9 -1)
-
-Emboss edge-detection uses a matrix of
-
-  ( 2 -1  0
-   -1  0  1
-    0  1 -2)
-
-ALGO `disabled' means transform the image so that it looks
-``disabled''.
-
-`:mask MASK'
-
-If MASK is `heuristic' or `(heuristic BG)', build a clipping mask for
-the image, so that the background of a frame is visible behind the
-image.  If BG is not specified, or if BG is t, determine the
-background color of the image by looking at the 4 corners of the
-image, assuming the most frequently occurring color from the corners is
-the background color of the image.  Otherwise, BG must be a list `(RED
-GREEN BLUE)' specifying the color to assume for the background of the
-image.
-
-If MASK is nil, remove a mask from the image, if it has one.  Images
-in some formats include a mask which can be removed by specifying
-`:mask nil'.
-
-`:file FILE'
-
-Load image from FILE.  If FILE is not absolute after expanding it,
-search for the image in `data-directory'.  Some image types support
-building images from data.  When this is done, no `:file' property
-may be present in the image specification.
-
-`:data DATA'
-
-Get image data from DATA.  (As of this writing, this is not yet
-supported for image type `postscript').  Either :file or :data may be
-present in an image specification, but not both.  All image types
-support strings as DATA, some types allow additional types of DATA.
-
-*** Supported image types
-
-**** XBM, image type `xbm'.
-
-XBM images don't require an external library.  Additional image
-properties supported are:
-
-`:foreground FG'
-
-FG must be a string specifying the image foreground color, or nil
-meaning to use the default.  Default is the frame's foreground color.
-
-`:background BG'
-
-BG must be a string specifying the image background color, or nil
-meaning to use the default.  Default is the frame's background color.
-
-XBM images can be constructed from data instead of file.  In this
-case, the image specification must contain the following properties
-instead of a `:file' property.
-
-`:width WIDTH'
-
-WIDTH specifies the width of the image in pixels.
-
-`:height HEIGHT'
-
-HEIGHT specifies the height of the image in pixels.
-
-`:data DATA'
-
-DATA must be either
-
-   1. a string large enough to hold the bitmap data, i.e. it must
-   have a size >= (WIDTH + 7) / 8 * HEIGHT
-
-   2. a bool-vector of size >= WIDTH * HEIGHT
-
-   3. a vector of strings or bool-vectors, one for each line of the
-   bitmap.
-
-   4. a string that's an in-memory XBM file.  Neither width nor
-   height may be specified in this case because these are defined
-   in the file.
-
-**** XPM, image type `xpm'
-
-XPM images require the external library `libXpm', package
-`xpm-3.4k.tar.gz', version 3.4k or later.  Make sure the library is
-found when Emacs is configured by supplying appropriate paths via
-`--x-includes' and `--x-libraries'.
-
-Additional image properties supported are:
-
-`:color-symbols SYMBOLS'
-
-SYMBOLS must be a list of pairs (NAME . COLOR), with NAME being the
-name of color as it appears in an XPM file, and COLOR being an X color
-name.
-
-XPM images can be built from memory instead of files.  In that case,
-add a `:data' property instead of a `:file' property.
-
-The XPM library uses libz in its implementation so that it is able
-to display compressed images.
-
-**** PBM, image type `pbm'
-
-PBM images don't require an external library.  Color, gray-scale and
-mono images are supported.  Additional image properties supported for
-mono images are:
-
-`:foreground FG'
-
-FG must be a string specifying the image foreground color, or nil
-meaning to use the default.  Default is the frame's foreground color.
-
-`:background FG'
-
-BG must be a string specifying the image background color, or nil
-meaning to use the default.  Default is the frame's background color.
-
-**** JPEG, image type `jpeg'
-
-Support for JPEG images requires the external library `libjpeg',
-package `jpegsrc.v6a.tar.gz', or later.  There are no additional image
-properties defined.
-
-**** TIFF, image type `tiff'
-
-Support for TIFF images requires the external library `libtiff',
-package `tiff-v3.4-tar.gz', or later.  There are no additional image
-properties defined.
-
-**** GIF, image type `gif'
-
-Support for GIF images requires the external library `libungif', package
-`libungif-4.1.0', or later.
-
-Additional image properties supported are:
-
-`:index INDEX'
-
-INDEX must be an integer >= 0.  Load image number INDEX from a
-multi-image GIF file.  If INDEX is too large, the image displays
-as a hollow box.
-
-This could be used to implement limited support for animated GIFs.
-For example, the following function displays a multi-image GIF file
-at point-min in the current buffer, switching between sub-images
-every 0.1 seconds.
-
-(defun show-anim (file max)
-  "Display multi-image GIF file FILE which contains MAX subimages."
-  (display-anim (current-buffer) file 0 max t))
-
-(defun display-anim (buffer file idx max first-time)
-  (when (= idx max)
-    (setq idx 0))
-  (let ((img (create-image file nil nil :index idx)))
-    (save-excursion
-      (set-buffer buffer)
-      (goto-char (point-min))
-      (unless first-time (delete-char 1))
-      (insert-image img "x"))
-    (run-with-timer 0.1 nil 'display-anim buffer file (1+ idx) max nil)))
-
-**** PNG, image type `png'
-
-Support for PNG images requires the external library `libpng',
-package `libpng-1.0.2.tar.gz', or later.  There are no additional image
-properties defined.
-
-**** Ghostscript, image type `postscript'.
-
-Additional image properties supported are:
-
-`:pt-width WIDTH'
-
-WIDTH is width of the image in pt (1/72 inch).  WIDTH must be an
-integer.  This is a required property.
-
-`:pt-height HEIGHT'
-
-HEIGHT specifies the height of the image in pt (1/72 inch).  HEIGHT
-must be a integer.  This is an required property.
-
-`:bounding-box BOX'
-
-BOX must be a list or vector of 4 integers giving the bounding box of
-the PS image, analogous to the `BoundingBox' comment found in PS
-files.  This is an required property.
-
-Part of the Ghostscript interface is implemented in Lisp.  See
-lisp/gs.el.
-
-*** Lisp interface.
-
-The variable `image-types' contains a list of those image types
-which are supported in the current configuration.
-
-Images are stored in an image cache and removed from the cache when
-they haven't been displayed for `image-cache-eviction-delay seconds.
-The function `clear-image-cache' can be used to clear the image cache
-manually.  Images in the cache are compared with `equal', i.e. all
-images with `equal' specifications share the same image.
-
-*** Simplified image API, image.el
-
-The new Lisp package image.el contains functions that simplify image
-creation and putting images into text.  The function `create-image'
-can be used to create images.  The macro `defimage' can be used to
-define an image based on available image types.  The functions
-`put-image' and `insert-image' can be used to insert an image into a
-buffer.
-
-** Display margins.
-
-Windows can now have margins which are used for special text
-and images.
-
-To give a window margins, either set the buffer-local variables
-`left-margin-width' and `right-margin-width', or call
-`set-window-margins'.  The function `window-margins' can be used to
-obtain the current settings.  To make `left-margin-width' and
-`right-margin-width' take effect, you must set them before displaying
-the buffer in a window, or use `set-window-buffer' to force an update
-of the display margins.
-
-You can put text in margins by giving it a `display' text property
-containing a pair of the form `(LOCATION . VALUE)', where LOCATION is
-one of `left-margin' or `right-margin' or nil.  VALUE can be either a
-string, an image specification or a stretch specification (see later
-in this file).
-
-** Help display
-
-Emacs displays short help messages in the echo area, when the mouse
-moves over a tool-bar item or a piece of text that has a text property
-`help-echo'.  This feature also applies to strings in the mode line
-that have a `help-echo' property.
-
-If the value of the `help-echo' property is a function, that function
-is called with three arguments WINDOW, OBJECT and POSITION.  WINDOW is
-the window in which the help was found.
-
-If OBJECT is a buffer, POS is the position in the buffer where the
-`help-echo' text property was found.
-
-If OBJECT is an overlay, that overlay has a `help-echo' property, and
-POS is the position in the overlay's buffer under the mouse.
-
-If OBJECT is a string (an overlay string or a string displayed with
-the `display' property), POS is the position in that string under the
-mouse.
-
-If the value of the `help-echo' property is neither a function nor a
-string, it is evaluated to obtain a help string.
-
-For tool-bar and menu-bar items, their key definition is used to
-determine the help to display.  If their definition contains a
-property `:help FORM', FORM is evaluated to determine the help string.
-For tool-bar items without a help form, the caption of the item is
-used as help string.
-
-The hook `show-help-function' can be set to a function that displays
-the help string differently.  For example, enabling a tooltip window
-causes the help display to appear there instead of in the echo area.
-
-** Vertical fractional scrolling.
-
-The display of text in windows can be scrolled smoothly in pixels.
-This is useful, for example, for making parts of large images visible.
-
-The function `window-vscroll' returns the current value of vertical
-scrolling, a non-negative fraction of the canonical character height.
-The function `set-window-vscroll' can be used to set the vertical
-scrolling value.  Here is an example of how these function might be
-used.
-
-  (global-set-key [A-down]
-    #'(lambda ()
-        (interactive)
-	(set-window-vscroll (selected-window)
-                            (+ 0.5 (window-vscroll)))))
-  (global-set-key [A-up]
-    #'(lambda ()
-	(interactive)
-	(set-window-vscroll (selected-window)
-	                    (- (window-vscroll) 0.5)))))
-
-** New hook `fontification-functions'.
-
-Functions from `fontification-functions' are called from redisplay
-when it encounters a region of text that is not yet fontified.  This
-variable automatically becomes buffer-local when set.  Each function
-is called with one argument, POS.
-
-At least one of the hook functions should fontify one or more
-characters starting at POS in the current buffer.  It should mark them
-as fontified by giving them a non-nil value of the `fontified' text
-property.  It may be reasonable for these functions to check for the
-`fontified' property and not put it back on, but they do not have to.
-
-** Tool bar support.
-
-Emacs supports a tool bar at the top of a frame under X.  The frame
-parameter `tool-bar-lines' (X resource "toolBar", class "ToolBar")
-controls how may lines to reserve for the tool bar.  A zero value
-suppresses the tool bar.  If the value is non-zero and
-`auto-resize-tool-bars' is non-nil the tool bar's size will be changed
-automatically so that all tool bar items are visible.
-
-*** Tool bar item definitions
-
-Tool bar items are defined using `define-key' with a prefix-key
-`tool-bar'.  For example `(define-key global-map [tool-bar item1] ITEM)'
-where ITEM is a list `(menu-item CAPTION BINDING PROPS...)'.
-
-CAPTION is the caption of the item, If it's not a string, it is
-evaluated to get a string.  The caption is currently not displayed in
-the tool bar, but it is displayed if the item doesn't have a `:help'
-property (see below).
-
-BINDING is the tool bar item's binding.  Tool bar items with keymaps as
-binding are currently ignored.
-
-The following properties are recognized:
-
-`:enable FORM'.
-
-FORM is evaluated and specifies whether the tool bar item is enabled
-or disabled.
-
-`:visible FORM'
-
-FORM is evaluated and specifies whether the tool bar item is displayed.
-
-`:filter FUNCTION'
-
-FUNCTION is called with one parameter, the same list BINDING in which
-FUNCTION is specified as the filter.  The value FUNCTION returns is
-used instead of BINDING to display this item.
-
-`:button (TYPE SELECTED)'
-
-TYPE must be one of `:radio' or `:toggle'.  SELECTED is evaluated
-and specifies whether the button is selected (pressed) or not.
-
-`:image IMAGES'
-
-IMAGES is either a single image specification or a vector of four
-image specifications.  If it is a vector, this table lists the
-meaning of each of the four elements:
-
-   Index	Use when item is
-   ----------------------------------------
-     0		enabled and selected
-     1		enabled and deselected
-     2		disabled and selected
-     3		disabled and deselected
-
-If IMAGE is a single image specification, a Laplace edge-detection
-algorithm is used on that image to draw the image in disabled state.
-
-`:help HELP-STRING'.
-
-Gives a help string to display for the tool bar item.  This help
-is displayed when the mouse is moved over the item.
-
-The function `toolbar-add-item' is a convenience function for adding
-toolbar items generally, and `tool-bar-add-item-from-menu' can be used
-to define a toolbar item with a binding copied from an item on the
-menu bar.
-
-The default bindings use a menu-item :filter to derive the tool-bar
-dynamically from variable `tool-bar-map' which may be set
-buffer-locally to override the global map.
-
-*** Tool-bar-related variables.
-
-If `auto-resize-tool-bar' is non-nil, the tool bar will automatically
-resize to show all defined tool bar items.  It will never grow larger
-than 1/4 of the frame's size.
-
-If `auto-raise-tool-bar-buttons' is non-nil, tool bar buttons will be
-raised when the mouse moves over them.
-
-You can add extra space between tool bar items by setting
-`tool-bar-button-margin' to a positive integer specifying a number of
-pixels, or a pair of integers (X . Y) specifying horizontal and
-vertical margins .  Default is 1.
-
-You can change the shadow thickness of tool bar buttons by setting
-`tool-bar-button-relief' to an integer.  Default is 3.
-
-*** Tool-bar clicks with modifiers.
-
-You can bind commands to clicks with control, shift, meta etc. on
-a tool bar item.  If
-
-  (define-key global-map [tool-bar shell]
-    '(menu-item "Shell" shell
-		:image (image :type xpm :file "shell.xpm")))
-
-is the original tool bar item definition, then
-
-  (define-key global-map [tool-bar S-shell] 'some-command)
-
-makes a binding to run `some-command' for a shifted click on the same
-item.
-
-** Mode line changes.
-
-*** Mouse-sensitive mode line.
-
-The mode line can be made mouse-sensitive by displaying strings there
-that have a `local-map' text property.  There are three ways to display
-a string with a `local-map' property in the mode line.
-
-1. The mode line spec contains a variable whose string value has
-a `local-map' text property.
-
-2. The mode line spec contains a format specifier (e.g. `%12b'), and
-that format specifier has a `local-map' property.
-
-3. The mode line spec contains a list containing `:eval FORM'.  FORM
-is evaluated.  If the result is a string, and that string has a
-`local-map' property.
-
-The same mechanism is used to determine the `face' and `help-echo'
-properties of strings in the mode line.  See `bindings.el' for an
-example.
-
-*** If a mode line element has the form `(:eval FORM)', FORM is
-evaluated and the result is used as mode line element.
-
-*** You can suppress mode-line display by setting the buffer-local
-variable mode-line-format to nil.
-
-*** A headerline can now be displayed at the top of a window.
-
-This mode line's contents are controlled by the new variable
-`header-line-format' and `default-header-line-format' which are
-completely analogous to `mode-line-format' and
-`default-mode-line-format'.  A value of nil means don't display a top
-line.
-
-The appearance of top mode lines is controlled by the face
-`header-line'.
-
-The function `coordinates-in-window-p' returns `header-line' for a
-position in the header-line.
-
-** Text property `display'
-
-The `display' text property is used to insert images into text,
-replace text with other text, display text in marginal area, and it is
-also used to control other aspects of how text displays.  The value of
-the `display' property should be a display specification, as described
-below, or a list or vector containing display specifications.
-
-*** Replacing text, displaying text in marginal areas
-
-To replace the text having the `display' property with some other
-text, use a display specification of the form `(LOCATION STRING)'.
-
-If LOCATION is `(margin left-margin)', STRING is displayed in the left
-marginal area, if it is `(margin right-margin)', it is displayed in
-the right marginal area, and if LOCATION is `(margin nil)' STRING
-is displayed in the text.  In the latter case you can also use the
-simpler form STRING as property value.
-
-*** Variable width and height spaces
-
-To display a space of fractional width or height, use a display
-specification of the form `(LOCATION STRECH)'.  If LOCATION is
-`(margin left-margin)', the space is displayed in the left marginal
-area, if it is `(margin right-margin)', it is displayed in the right
-marginal area, and if LOCATION is `(margin nil)' the space is
-displayed in the text.  In the latter case you can also use the
-simpler form STRETCH as property value.
-
-The stretch specification STRETCH itself is a list of the form `(space
-PROPS)', where PROPS is a property list which can contain the
-properties described below.
-
-The display of the fractional space replaces the display of the
-characters having the `display' property.
-
-- :width WIDTH
-
-Specifies that the space width should be WIDTH times the normal
-character width.  WIDTH can be an integer or floating point number.
-
-- :relative-width FACTOR
-
-Specifies that the width of the stretch should be computed from the
-first character in a group of consecutive characters that have the
-same `display' property.  The computation is done by multiplying the
-width of that character by FACTOR.
-
-- :align-to HPOS
-
-Specifies that the space should be wide enough to reach HPOS.  The
-value HPOS is measured in units of the normal character width.
-
-Exactly one of the above properties should be used.
-
-- :height HEIGHT
-
-Specifies the height of the space, as HEIGHT, measured in terms of the
-normal line height.
-
-- :relative-height FACTOR
-
-The height of the space is computed as the product of the height
-of the text having the `display' property and FACTOR.
-
-- :ascent ASCENT
-
-Specifies that ASCENT percent of the height of the stretch should be
-used for the ascent of the stretch, i.e. for the part above the
-baseline.  The value of ASCENT must be a non-negative number less or
-equal to 100.
-
-You should not use both `:height' and `:relative-height' together.
-
-*** Images
-
-A display specification for an image has the form `(LOCATION
-. IMAGE)', where IMAGE is an image specification.  The image replaces,
-in the display, the characters having this display specification in
-their `display' text property.  If LOCATION is `(margin left-margin)',
-the image will be displayed in the left marginal area, if it is
-`(margin right-margin)' it will be displayed in the right marginal
-area, and if LOCATION is `(margin nil)' the image will be displayed in
-the text.  In the latter case you can also use the simpler form IMAGE
-as display specification.
-
-*** Other display properties
-
-- (space-width FACTOR)
-
-Specifies that space characters in the text having that property
-should be displayed FACTOR times as wide as normal; FACTOR must be an
-integer or float.
-
-- (height HEIGHT)
-
-Display text having this property in a font that is smaller or larger.
-
-If HEIGHT is a list of the form `(+ N)', where N is an integer, that
-means to use a font that is N steps larger.  If HEIGHT is a list of
-the form `(- N)', that means to use a font that is N steps smaller.  A
-``step'' is defined by the set of available fonts; each size for which
-a font is available counts as a step.
-
-If HEIGHT is a number, that means to use a font that is HEIGHT times
-as tall as the frame's default font.
-
-If HEIGHT is a symbol, it is called as a function with the current
-height as argument.  The function should return the new height to use.
-
-Otherwise, HEIGHT is evaluated to get the new height, with the symbol
-`height' bound to the current specified font height.
-
-- (raise FACTOR)
-
-FACTOR must be a number, specifying a multiple of the current
-font's height.  If it is positive, that means to display the characters
-raised.  If it is negative, that means to display them lower down.  The
-amount of raising or lowering is computed without taking account of the
-`height' subproperty.
-
-*** Conditional display properties
-
-All display specifications can be conditionalized.  If a specification
-has the form `(when CONDITION . SPEC)', the specification SPEC applies
-only when CONDITION yields a non-nil value when evaluated.  During the
-evaluation, `object' is bound to the string or buffer having the
-conditional display property; `position' and `buffer-position' are
-bound to the position within `object' and the buffer position where
-the display property was found, respectively.  Both positions can be
-different when object is a string.
-
-The normal specification consisting of SPEC only is equivalent to
-`(when t . SPEC)'.
-
-** New menu separator types.
-
-Emacs now supports more than one menu separator type.  Menu items with
-item names consisting of dashes only (including zero dashes) are
-treated like before.  In addition, the following item names are used
-to specify other menu separator types.
-
-- `--no-line' or `--space', or `--:space', or `--:noLine'
-
-No separator lines are drawn, but a small space is inserted where the
-separator occurs.
-
-- `--single-line' or `--:singleLine'
-
-A single line in the menu's foreground color.
-
-- `--double-line' or `--:doubleLine'
-
-A double line in the menu's foreground color.
-
-- `--single-dashed-line' or `--:singleDashedLine'
-
-A single dashed line in the menu's foreground color.
-
-- `--double-dashed-line' or `--:doubleDashedLine'
-
-A double dashed line in the menu's foreground color.
-
-- `--shadow-etched-in' or `--:shadowEtchedIn'
-
-A single line with 3D sunken appearance.  This is the form
-displayed for item names consisting of dashes only.
-
-- `--shadow-etched-out' or `--:shadowEtchedOut'
-
-A single line with 3D raised appearance.
-
-- `--shadow-etched-in-dash' or `--:shadowEtchedInDash'
-
-A single dashed line with 3D sunken appearance.
-
-- `--shadow-etched-out-dash' or `--:shadowEtchedOutDash'
-
-A single dashed line with 3D raise appearance.
-
-- `--shadow-double-etched-in' or `--:shadowDoubleEtchedIn'
-
-Two lines with 3D sunken appearance.
-
-- `--shadow-double-etched-out' or `--:shadowDoubleEtchedOut'
-
-Two lines with 3D raised appearance.
-
-- `--shadow-double-etched-in-dash' or `--:shadowDoubleEtchedInDash'
-
-Two dashed lines with 3D sunken appearance.
-
-- `--shadow-double-etched-out-dash' or `--:shadowDoubleEtchedOutDash'
-
-Two dashed lines with 3D raised appearance.
-
-Under LessTif/Motif, the last four separator types are displayed like
-the corresponding single-line separators.
-
-** New frame parameters for scroll bar colors.
-
-The new frame parameters `scroll-bar-foreground' and
-`scroll-bar-background' can be used to change scroll bar colors.
-Their value must be either a color name, a string, or nil to specify
-that scroll bars should use a default color.  For toolkit scroll bars,
-default colors are toolkit specific.  For non-toolkit scroll bars, the
-default background is the background color of the frame, and the
-default foreground is black.
-
-The X resource name of these parameters are `scrollBarForeground'
-(class ScrollBarForeground) and `scrollBarBackground' (class
-`ScrollBarBackground').
-
-Setting these parameters overrides toolkit specific X resource
-settings for scroll bar colors.
-
-** You can set `redisplay-dont-pause' to a non-nil value to prevent
-display updates from being interrupted when input is pending.
-
-** Changing a window's width may now change its window start if it
-starts on a continuation line.  The new window start is computed based
-on the window's new width, starting from the start of the continued
-line as the start of the screen line with the minimum distance from
-the original window start.
-
-** The variable `hscroll-step' and the functions
-`hscroll-point-visible' and `hscroll-window-column' have been removed
-now that proper horizontal scrolling is implemented.
-
-** Windows can now be made fixed-width and/or fixed-height.
-
-A window is fixed-size if its buffer has a buffer-local variable
-`window-size-fixed' whose value is not nil.  A value of `height' makes
-windows fixed-height, a value of `width' makes them fixed-width, any
-other non-nil value makes them both fixed-width and fixed-height.
-
-The following code makes all windows displaying the current buffer
-fixed-width and fixed-height.
-
-  (set (make-local-variable 'window-size-fixed) t)
-
-A call to enlarge-window on a window gives an error if that window is
-fixed-width and it is tried to change the window's width, or if the
-window is fixed-height, and it is tried to change its height.  To
-change the size of a fixed-size window, bind `window-size-fixed'
-temporarily to nil, for example
-
-  (let ((window-size-fixed nil))
-     (enlarge-window 10))
-
-Likewise, an attempt to split a fixed-height window vertically,
-or a fixed-width window horizontally results in a error.
-
-** The cursor-type frame parameter is now supported on MS-DOS
-terminals.  When Emacs starts, it by default changes the cursor shape
-to a solid box, as it does on Unix.  The `cursor-type' frame parameter
-overrides this as it does on Unix, except that the bar cursor is
-horizontal rather than vertical (since the MS-DOS display doesn't
-support a vertical-bar cursor).
 
 
 
-* Emacs 20.7 is a bug-fix release with few user-visible changes
-
-** It is now possible to use CCL-based coding systems for keyboard
-input.
-
-** ange-ftp now handles FTP security extensions, like Kerberos.
-
-** Rmail has been extended to recognize more forms of digest messages.
-
-** Now, most coding systems set in keyboard coding system work not
-only for character input, but also in incremental search.  The
-exceptions are such coding systems that handle 2-byte character sets
-(e.g euc-kr, euc-jp) and that use ISO's escape sequence
-(e.g. iso-2022-jp).  They are ignored in incremental search.
-
-** Support for Macintosh PowerPC-based machines running GNU/Linux has
-been added.
-
-
-* Emacs 20.6 is a bug-fix release with one user-visible change
-
-** Support for ARM-based non-RISCiX machines has been added.
-
-
-
-* Emacs 20.5 is a bug-fix release with no user-visible changes.
-
-** Not new, but not mentioned before:
-M-w when Transient Mark mode is enabled disables the mark.
-
-* Changes in Emacs 20.4
-
-** Init file may be called .emacs.el.
-
-You can now call the Emacs init file `.emacs.el'.
-Formerly the name had to be `.emacs'.  If you use the name
-`.emacs.el', you can byte-compile the file in the usual way.
-
-If both `.emacs' and `.emacs.el' exist, the latter file
-is the one that is used.
-
-** shell-command, and shell-command-on-region, now return
-the exit code of the command (unless it is asynchronous).
-Also, you can specify a place to put the error output,
-separate from the command's regular output.
-Interactively, the variable shell-command-default-error-buffer
-says where to put error output; set it to a buffer name.
-In calls from Lisp, an optional argument ERROR-BUFFER specifies
-the buffer name.
-
-When you specify a non-nil error buffer (or buffer name), any error
-output is inserted before point in that buffer, with \f\n to separate
-it from the previous batch of error output.  The error buffer is not
-cleared, so error output from successive commands accumulates there.
-
-** Setting the default value of enable-multibyte-characters to nil in
-the .emacs file, either explicitly using setq-default, or via Custom,
-is now essentially equivalent to using --unibyte: all buffers
-created during startup will be made unibyte after loading .emacs.
-
-** C-x C-f now handles the wildcards * and ? in file names.  For
-example, typing C-x C-f c*.c RET visits all the files whose names
-match c*.c.  To visit a file whose name contains * or ?, add the
-quoting sequence /: to the beginning of the file name.
-
-** The M-x commands keep-lines, flush-lines and count-matches
-now have the same feature as occur and query-replace:
-if the pattern contains any upper case letters, then
-they never ignore case.
-
-** The end-of-line format conversion feature previously mentioned
-under `* Emacs 20.1 changes for MS-DOS and MS-Windows' actually
-applies to all operating systems.  Emacs recognizes from the contents
-of a file what convention it uses to separate lines--newline, CRLF, or
-just CR--and automatically converts the contents to the normal Emacs
-convention (using newline to separate lines) for editing.  This is a
-part of the general feature of coding system conversion.
-
-If you subsequently save the buffer, Emacs converts the text back to
-the same format that was used in the file before.
-
-You can turn off end-of-line conversion by setting the variable
-`inhibit-eol-conversion' to non-nil, e.g. with Custom in the MULE group.
-
-** The character set property `prefered-coding-system' has been
-renamed to `preferred-coding-system', for the sake of correct spelling.
-This is a fairly internal feature, so few programs should be affected.
-
-** Mode-line display of end-of-line format is changed.
-The indication of the end-of-line format of the file visited by a
-buffer is now more explicit when that format is not the usual one for
-your operating system.  For example, the DOS-style end-of-line format
-is displayed as "(DOS)" on Unix and GNU/Linux systems.  The usual
-end-of-line format is still displayed as a single character (colon for
-Unix, backslash for DOS and Windows, and forward slash for the Mac).
-
-The values of the variables eol-mnemonic-unix, eol-mnemonic-dos,
-eol-mnemonic-mac, and eol-mnemonic-undecided, which are strings,
-control what is displayed in the mode line for each end-of-line
-format.  You can now customize these variables.
-
-** In the previous version of Emacs, tar-mode didn't work well if a
-filename contained non-ASCII characters.  Now this is fixed.  Such a
-filename is decoded by file-name-coding-system if the default value of
-enable-multibyte-characters is non-nil.
-
-** The command temp-buffer-resize-mode toggles a minor mode
-in which temporary buffers (such as help buffers) are given
-windows just big enough to hold the whole contents.
-
-** If you use completion.el, you must now run the function
-dynamic-completion-mode to enable it.  Just loading the file
-doesn't have any effect.
-
-** In Flyspell mode, the default is now to make just one Ispell process,
-not one per buffer.
-
-** If you use iswitchb but do not call (iswitchb-default-keybindings) to
-use the default keybindings, you will need to add the following line:
-  (add-hook 'minibuffer-setup-hook 'iswitchb-minibuffer-setup)
-
-** Auto-show mode is no longer enabled just by loading auto-show.el.
-To control it, set `auto-show-mode' via Custom or use the
-`auto-show-mode' command.
-
-** Handling of X fonts' ascent/descent parameters has been changed to
-avoid redisplay problems.  As a consequence, compared with previous
-versions the line spacing and frame size now differ with some font
-choices, typically increasing by a pixel per line.  This change
-occurred in version 20.3 but was not documented then.
-
-** If you select the bar cursor style, it uses the frame's
-cursor-color, rather than the cursor foreground pixel.
-
-** In multibyte mode, Rmail decodes incoming MIME messages using the
-character set specified in the message.  If you want to disable this
-feature, set the variable rmail-decode-mime-charset to nil.
-
-** Not new, but not mentioned previously in NEWS: when you use #! at
-the beginning of a file to make it executable and specify an
-interpreter program, Emacs looks on the second line for the -*- mode
-and variable specification, as well as on the first line.
-
-** Support for IBM codepage encoding of non-ASCII characters.
-
-The new command M-x codepage-setup creates a special coding system
-that can be used to convert text between a specific IBM codepage and
-one of the character sets built into Emacs which matches that
-codepage.  For example, codepage 850 corresponds to Latin-1 character
-set, codepage 855 corresponds to Cyrillic-ISO character set, etc.
-
-Windows codepages 1250, 1251 and some others, where Windows deviates
-from the corresponding ISO character set, are also supported.
-
-IBM box-drawing characters and other glyphs which don't have
-equivalents in the corresponding ISO character set, are converted to
-a character defined by dos-unsupported-char-glyph on MS-DOS, and to
-`?' on other systems.
-
-IBM codepages are widely used on MS-DOS and MS-Windows, so this
-feature is most useful on those platforms, but it can also be used on
-Unix.
-
-Emacs compiled for MS-DOS automatically loads the support for the
-current codepage when it starts.
-
-** Mail changes
-
-*** When mail is sent using compose-mail (C-x m), and if
-`mail-send-nonascii' is set to the new default value `mime',
-appropriate MIME headers are added.  The headers are added only if
-non-ASCII characters are present in the body of the mail, and no other
-MIME headers are already present.  For example, the following three
-headers are added if the coding system used in the *mail* buffer is
-latin-1:
-
-  MIME-version: 1.0
-  Content-type: text/plain; charset=iso-8859-1
-  Content-Transfer-Encoding: 8bit
-
-*** The new variable default-sendmail-coding-system specifies the
-default way to encode outgoing mail.  This has higher priority than
-default-buffer-file-coding-system but has lower priority than
-sendmail-coding-system and the local value of
-buffer-file-coding-system.
-
-You should not set this variable manually.  Instead, set
-sendmail-coding-system to specify a fixed encoding for all outgoing
-mail.
-
-*** When you try to send a message that contains non-ASCII characters,
-if the coding system specified by those variables doesn't handle them,
-Emacs will ask you to select a suitable coding system while showing a
-list of possible coding systems.
-
-** CC Mode changes
-
-*** c-default-style can now take an association list that maps major
-modes to style names.  When this variable is an alist, Java mode no
-longer hardcodes a setting to "java" style.  See the variable's
-docstring for details.
-
-*** It's now possible to put a list as the offset on a syntactic
-symbol.  The list is evaluated recursively until a non-nil offset is
-found.  This is useful to combine several lineup functions to act in a
-prioritized order on a single line.  However, none of the supplied
-lineup functions use this feature currently.
-
-*** New syntactic symbol catch-clause, which is used on the "catch" and
-"finally" lines in try-catch constructs in C++ and Java.
-
-*** New cleanup brace-catch-brace on c-cleanup-list, which does for
-"catch" lines what brace-elseif-brace does for "else if" lines.
-
-*** The braces of Java anonymous inner classes are treated separately
-from the braces of other classes in auto-newline mode.  Two new
-symbols inexpr-class-open and inexpr-class-close may be used on
-c-hanging-braces-alist to control the automatic newlines used for
-anonymous classes.
-
-*** Support for the Pike language added, along with new Pike specific
-syntactic symbols: inlambda, lambda-intro-cont
-
-*** Support for Java anonymous classes via new syntactic symbol
-inexpr-class.  New syntactic symbol inexpr-statement for Pike
-support and gcc-style statements inside expressions.  New lineup
-function c-lineup-inexpr-block.
-
-*** New syntactic symbol brace-entry-open which is used in brace lists
-(i.e. static initializers) when a list entry starts with an open
-brace.  These used to be recognized as brace-list-entry's.
-c-electric-brace also recognizes brace-entry-open braces
-(brace-list-entry's can no longer be electrified).
-
-*** New command c-indent-line-or-region, not bound by default.
-
-*** `#' is only electric when typed in the indentation of a line.
-
-*** Parentheses are now electric (via the new command c-electric-paren)
-for auto-reindenting lines when parens are typed.
-
-*** In "gnu" style, inline-open offset is now set to zero.
-
-*** Uniform handling of the inclass syntactic symbol.  The indentation
-associated with it is now always relative to the class opening brace.
-This means that the indentation behavior has changed in some
-circumstances, but only if you've put anything besides 0 on the
-class-open syntactic symbol (none of the default styles do that).
-
-** Gnus changes.
-
-*** New functionality for using Gnus as an offline newsreader has been
-added.  A plethora of new commands and modes have been added.  See the
-Gnus manual for the full story.
-
-*** The nndraft backend has returned, but works differently than
-before.  All Message buffers are now also articles in the nndraft
-group, which is created automatically.
-
-*** `gnus-alter-header-function' can now be used to alter header
-values.
-
-*** `gnus-summary-goto-article' now accept Message-ID's.
-
-*** A new Message command for deleting text in the body of a message
-outside the region: `C-c C-v'.
-
-*** You can now post to component group in nnvirtual groups with
-`C-u C-c C-c'.
-
-*** `nntp-rlogin-program' -- new variable to ease customization.
-
-*** `C-u C-c C-c' in `gnus-article-edit-mode' will now inhibit
-re-highlighting of the article buffer.
-
-*** New element in `gnus-boring-article-headers' -- `long-to'.
-
-*** `M-i' symbolic prefix command.  See the section "Symbolic
-Prefixes" in the Gnus manual for details.
-
-*** `L' and `I' in the summary buffer now take the symbolic prefix
-`a' to add the score rule to the "all.SCORE" file.
-
-*** `gnus-simplify-subject-functions' variable to allow greater
-control over simplification.
-
-*** `A T' -- new command for fetching the current thread.
-
-*** `/ T' -- new command for including the current thread in the
-limit.
-
-*** `M-RET' is a new Message command for breaking cited text.
-
-*** \\1-expressions are now valid in `nnmail-split-methods'.
-
-*** The `custom-face-lookup' function has been removed.
-If you used this function in your initialization files, you must
-rewrite them to use `face-spec-set' instead.
-
-*** Canceling now uses the current select method.  Symbolic prefix
-`a' forces normal posting method.
-
-*** New command to translate M******** sm*rtq**t*s into proper text
--- `W d'.
-
-*** For easier debugging of nntp, you can set `nntp-record-commands'
-to a non-nil value.
-
-*** nntp now uses ~/.authinfo, a .netrc-like file, for controlling
-where and how to send AUTHINFO to NNTP servers.
-
-*** A command for editing group parameters from the summary buffer
-has been added.
-
-*** A history of where mails have been split is available.
-
-*** A new article date command has been added -- `article-date-iso8601'.
-
-*** Subjects can be simplified when threading by setting
-`gnus-score-thread-simplify'.
-
-*** A new function for citing in Message has been added --
-`message-cite-original-without-signature'.
-
-*** `article-strip-all-blank-lines' -- new article command.
-
-*** A new Message command to kill to the end of the article has
-been added.
-
-*** A minimum adaptive score can be specified by using the
-`gnus-adaptive-word-minimum' variable.
-
-*** The "lapsed date" article header can be kept continually
-updated by the `gnus-start-date-timer' command.
-
-*** Web listserv archives can be read with the nnlistserv backend.
-
-*** Old dejanews archives can now be read by nnweb.
-
-*** `gnus-posting-styles' has been re-activated.
-
-** Changes to TeX and LaTeX mode
-
-*** The new variable `tex-start-options-string' can be used to give
-options for the TeX run.  The default value causes TeX to run in
-nonstopmode.  For an interactive TeX run set it to nil or "".
-
-*** The command `tex-feed-input' sends input to the Tex Shell.  In a
-TeX buffer it is bound to the keys C-RET, C-c RET, and C-c C-m (some
-of these keys may not work on all systems).  For instance, if you run
-TeX interactively and if the TeX run stops because of an error, you
-can continue it without leaving the TeX buffer by typing C-RET.
-
-*** The Tex Shell Buffer is now in `compilation-shell-minor-mode'.
-All error-parsing commands of the Compilation major mode are available
-but bound to keys that don't collide with the shell.  Thus you can use
-the Tex Shell for command line executions like a usual shell.
-
-*** The commands `tex-validate-region' and `tex-validate-buffer' check
-the matching of braces and $'s.  The errors are listed in a *Occur*
-buffer and you can use C-c C-c or mouse-2 to go to a particular
-mismatch.
-
-** Changes to RefTeX mode
-
-*** The table of contents buffer can now also display labels and
-file boundaries in addition to sections. Use `l', `i', and `c' keys.
-
-*** Labels derived from context (the section heading) are now
-lowercase by default.  To make the label legal in LaTeX, latin-1
-characters will lose their accent.  All Mule characters will be
-removed from the label.
-
-*** The automatic display of cross reference information can also use
-a window instead of the echo area.  See variable `reftex-auto-view-crossref'.
-
-*** kpsewhich can be used by RefTeX to find TeX and BibTeX files.  See the
-customization group `reftex-finding-files'.
-
-*** The option `reftex-bibfile-ignore-list' has been renamed to
-`reftex-bibfile-ignore-regexps' and indeed can be fed with regular
-expressions.
-
-*** Multiple Selection buffers are now hidden buffers.
-
-** New/deleted modes and packages
-
-*** The package snmp-mode.el provides major modes for editing SNMP and
-SNMPv2 MIBs.  It has entries on `auto-mode-alist'.
-
-*** The package sql.el provides a major mode, M-x sql-mode, for
-editing SQL files, and M-x sql-interactive-mode for interacting with
-SQL interpreters.  It has an entry on `auto-mode-alist'.
-
-*** ispell4.el has been deleted.  It got in the way of ispell.el and
-this was hard to fix reliably.  It has long been obsolete -- use
-Ispell 3.1 and ispell.el.
-
-* MS-DOS changes in Emacs 20.4
-
-** Emacs compiled for MS-DOS now supports MULE features better.
-This includes support for display of all ISO 8859-N character sets,
-conversion to and from IBM codepage encoding of non-ASCII characters,
-and automatic setup of the MULE environment at startup.  For details,
-check out the section `MS-DOS and MULE' in the manual.
-
-The MS-DOS installation procedure automatically configures and builds
-Emacs with input method support if it finds an unpacked Leim
-distribution when the config.bat script is run.
-
-** Formerly, the value of lpr-command did not affect printing on
-MS-DOS unless print-region-function was set to nil, but now it
-controls whether an external program is invoked or output is written
-directly to a printer port.  Similarly, in the previous version of
-Emacs, the value of ps-lpr-command did not affect PostScript printing
-on MS-DOS unless ps-printer-name was set to something other than a
-string (eg. t or `pipe'), but now it controls whether an external
-program is used.  (These changes were made so that configuration of
-printing variables would be almost identical across all platforms.)
-
-** In the previous version of Emacs, PostScript and non-PostScript
-output was piped to external programs, but because most print programs
-available for MS-DOS and MS-Windows cannot read data from their standard
-input, on those systems the data to be output is now written to a
-temporary file whose name is passed as the last argument to the external
-program.
-
-An exception is made for `print', a standard program on Windows NT,
-and `nprint', a standard program on Novell Netware.  For both of these
-programs, the command line is constructed in the appropriate syntax
-automatically, using only the value of printer-name or ps-printer-name
-as appropriate--the value of the relevant `-switches' variable is
-ignored, as both programs have no useful switches.
-
-** The value of the variable dos-printer (cf. dos-ps-printer), if it has
-a value, overrides the value of printer-name (cf. ps-printer-name), on
-MS-DOS and MS-Windows only.  This has been true since version 20.3, but
-was not documented clearly before.
-
-** All the Emacs games now work on MS-DOS terminals.
-This includes Tetris and Snake.
-
-* Lisp changes in Emacs 20.4
-
-** New functions line-beginning-position and line-end-position
-return the position of the beginning or end of the current line.
-They both accept an optional argument, which has the same
-meaning as the argument to beginning-of-line or end-of-line.
-
-** find-file and allied functions now have an optional argument
-WILDCARD.  If this is non-nil, they do wildcard processing,
-and visit all files that match the wildcard pattern.
-
-** Changes in the file-attributes function.
-
-*** The file size returned by file-attributes may be an integer or a float.
-It is an integer if the size fits in a Lisp integer, float otherwise.
-
-*** The inode number returned by file-attributes may be an integer (if
-the number fits in a Lisp integer) or a cons cell containing two
-integers.
-
-** The new function directory-files-and-attributes returns a list of
-files in a directory and their attributes.  It accepts the same
-arguments as directory-files and has similar semantics, except that
-file names and attributes are returned.
-
-** The new function file-attributes-lessp is a helper function for
-sorting the list generated by directory-files-and-attributes.  It
-accepts two arguments, each a list of a file name and its attributes.
-It compares the file names of each according to string-lessp and
-returns the result.
-
-** The new function file-expand-wildcards expands a wildcard-pattern
-to produce a list of existing files that match the pattern.
-
-** New functions for base64 conversion:
-
-The function base64-encode-region converts a part of the buffer
-into the base64 code used in MIME.  base64-decode-region
-performs the opposite conversion.  Line-breaking is supported
-optionally.
-
-Functions base64-encode-string and base64-decode-string do a similar
-job on the text in a string.  They return the value as a new string.
-
-**
-The new function process-running-child-p
-will tell you if a subprocess has given control of its
-terminal to its own child process.
-
-** interrupt-process and such functions have a new feature:
-when the second argument is `lambda', they send a signal
-to the running child of the subshell, if any, but if the shell
-itself owns its terminal, no signal is sent.
-
-** There are new widget types `plist' and `alist' which can
-be used for customizing variables whose values are plists or alists.
-
-** easymenu.el now understands `:key-sequence' and `:style button'.
-:included is an alias for :visible.
-
-easy-menu-add-item now understands the values returned by
-easy-menu-remove-item and easy-menu-item-present-p.  This can be used
-to move or copy menu entries.
-
-** Multibyte editing changes
-
-*** The definitions of sref and char-bytes are changed.  Now, sref is
-an alias of aref and char-bytes always returns 1.  This change is to
-make some Emacs Lisp code which works on 20.2 and earlier also
-work on the latest Emacs.  Such code uses a combination of sref and
-char-bytes in a loop typically as below:
-	(setq char (sref str idx)
-	      idx (+ idx (char-bytes idx)))
-The byte-compiler now warns that this is obsolete.
-
-If you want to know how many bytes a specific multibyte character
-(say, CH) occupies in a multibyte buffer, use this code:
-	(charset-bytes (char-charset ch))
-
-*** In multibyte mode, when you narrow a buffer to some region, and the
-region is preceded or followed by non-ASCII codes, inserting or
-deleting at the head or the end of the region may signal this error:
-
-    Byte combining across boundary of accessible buffer text inhibited
-
-This is to avoid some bytes being combined together into a character
-across the boundary.
-
-*** The functions find-charset-region and find-charset-string include
-`unknown' in the returned list in the following cases:
-    o The current buffer or the target string is unibyte and
-      contains 8-bit characters.
-    o The current buffer or the target string is multibyte and
-      contains invalid characters.
-
-*** The functions decode-coding-region and encode-coding-region remove
-text properties of the target region.  Ideally, they should correctly
-preserve text properties, but for the moment, it's hard.  Removing
-text properties is better than preserving them in a less-than-correct
-way.
-
-*** prefer-coding-system sets EOL conversion of default coding systems.
-If the argument to prefer-coding-system specifies a certain type of
-end of line conversion, the default coding systems set by
-prefer-coding-system will specify that conversion type for end of line.
-
-*** The new function thai-compose-string can be used to properly
-compose Thai characters in a string.
-
-** The primitive `define-prefix-command' now takes an optional third
-argument NAME, which should be a string.  It supplies the menu name
-for the created keymap.  Keymaps created in order to be displayed as
-menus should always use the third argument.
-
-** The meanings of optional second arguments for read-char,
-read-event, and read-char-exclusive are flipped.  Now the second
-arguments are INHERIT-INPUT-METHOD.  These functions use the current
-input method (if any) if and only if INHERIT-INPUT-METHOD is non-nil.
-
-** The new function clear-this-command-keys empties out the contents
-of the vector that (this-command-keys) returns.  This is useful in
-programs that read passwords, to prevent the passwords from echoing
-inadvertently as part of the next command in certain cases.
-
-** The new macro `with-temp-message' displays a temporary message in
-the echo area, while executing some Lisp code.  Like `progn', it
-returns the value of the last form, but it also restores the previous
-echo area contents.
-
-   (with-temp-message MESSAGE &rest BODY)
-
-** The function `require' now takes an optional third argument
-NOERROR.  If it is non-nil, then there is no error if the
-requested feature cannot be loaded.
-
-** In the function modify-face, an argument of (nil) for the
-foreground color, background color or stipple pattern
-means to clear out that attribute.
-
-** The `outer-window-id' frame property of an X frame
-gives the window number of the outermost X window for the frame.
-
-** Temporary buffers made with with-output-to-temp-buffer are now
-read-only by default, and normally use the major mode Help mode
-unless you put them in some other non-Fundamental mode before the
-end of with-output-to-temp-buffer.
-
-** The new functions gap-position and gap-size return information on
-the gap of the current buffer.
-
-** The new functions position-bytes and byte-to-position provide a way
-to convert between character positions and byte positions in the
-current buffer.
-
-** vc.el defines two new macros, `edit-vc-file' and `with-vc-file', to
-facilitate working with version-controlled files from Lisp programs.
-These macros check out a given file automatically if needed, and check
-it back in after any modifications have been made.
-
-* Installation Changes in Emacs 20.3
-
-** The default value of load-path now includes most subdirectories of
-the site-specific directories /usr/local/share/emacs/site-lisp and
-/usr/local/share/emacs/VERSION/site-lisp, in addition to those
-directories themselves.  Both immediate subdirectories and
-subdirectories multiple levels down are added to load-path.
-
-Not all subdirectories are included, though.  Subdirectories whose
-names do not start with a letter or digit are excluded.
-Subdirectories named RCS or CVS are excluded.  Also, a subdirectory
-which contains a file named `.nosearch' is excluded.  You can use
-these methods to prevent certain subdirectories from being searched.
-
-Emacs finds these subdirectories and adds them to load-path when it
-starts up.  While it would be cleaner to find the subdirectories each
-time Emacs loads a file, that would be much slower.
-
-This feature is an incompatible change.  If you have stored some Emacs
-Lisp files in a subdirectory of the site-lisp directory specifically
-to prevent them from being used, you will need to rename the
-subdirectory to start with a non-alphanumeric character, or create a
-`.nosearch' file in it, in order to continue to achieve the desired
-results.
-
-** Emacs no longer includes an old version of the C preprocessor from
-GCC.  This was formerly used to help compile Emacs with C compilers
-that had limits on the significant length of an identifier, but in
-fact we stopped supporting such compilers some time ago.
-
-* Changes in Emacs 20.3
-
-** The new command C-x z (repeat) repeats the previous command
-including its argument.  If you repeat the z afterward,
-it repeats the command additional times; thus, you can
-perform many repetitions with one keystroke per repetition.
-
-** Emacs now supports "selective undo" which undoes only within a
-specified region.  To do this, set point and mark around the desired
-region and type C-u C-x u (or C-u C-_).  You can then continue undoing
-further, within the same region, by repeating the ordinary undo
-command C-x u or C-_.  This will keep undoing changes that were made
-within the region you originally specified, until either all of them
-are undone, or it encounters a change which crosses the edge of that
-region.
-
-In Transient Mark mode, undoing when a region is active requests
-selective undo.
-
-** If you specify --unibyte when starting Emacs, then all buffers are
-unibyte, except when a Lisp program specifically creates a multibyte
-buffer.  Setting the environment variable EMACS_UNIBYTE has the same
-effect.  The --no-unibyte option overrides EMACS_UNIBYTE and directs
-Emacs to run normally in multibyte mode.
-
-The option --unibyte does not affect the reading of Emacs Lisp files,
-though.  If you want a Lisp file to be read in unibyte mode, use
--*-unibyte: t;-*- on its first line.  That will force Emacs to
-load that file in unibyte mode, regardless of how Emacs was started.
-
-** toggle-enable-multibyte-characters no longer has a key binding and
-no longer appears in the menu bar.  We've realized that changing the
-enable-multibyte-characters variable in an existing buffer is
-something that most users not do.
-
-** You can specify a coding system to use for the next cut or paste
-operations through the window system with the command C-x RET X.
-The coding system can make a difference for communication with other
-applications.
-
-C-x RET x specifies a coding system for all subsequent cutting and
-pasting operations.
-
-** You can specify the printer to use for commands that do printing by
-setting the variable `printer-name'.  Just what a printer name looks
-like depends on your operating system.  You can specify a different
-printer for the Postscript printing commands by setting
-`ps-printer-name'.
-
-** Emacs now supports on-the-fly spell checking by the means of a
-minor mode.  It is called M-x flyspell-mode.  You don't have to remember
-any other special commands to use it, and you will hardly notice it
-except when you make a spelling error.  Flyspell works by highlighting
-incorrect words as soon as they are completed or as soon as the cursor
-hits a new word.
-
-Flyspell mode works with whichever dictionary you have selected for
-Ispell in Emacs.  In TeX mode, it understands TeX syntax so as not
-to be confused by TeX commands.
-
-You can correct a misspelled word by editing it into something
-correct.  You can also correct it, or accept it as correct, by
-clicking on the word with Mouse-2; that gives you a pop-up menu
-of various alternative replacements and actions.
-
-Flyspell mode also proposes "automatic" corrections.  M-TAB replaces
-the current misspelled word with a possible correction.  If several
-corrections are made possible, M-TAB cycles through them in
-alphabetical order, or in order of decreasing likelihood if
-flyspell-sort-corrections is nil.
-
-Flyspell mode also flags an error when a word is repeated, if
-flyspell-mark-duplications-flag is non-nil.
-
-** Changes in input method usage.
-
-Now you can use arrow keys (right, left, down, up) for selecting among
-the alternatives just the same way as you do by C-f, C-b, C-n, and C-p
-respectively.
-
-You can use the ENTER key to accept the current conversion.
-
-If you type TAB to display a list of alternatives, you can select one
-of the alternatives with Mouse-2.
-
-The meaning of the variable `input-method-verbose-flag' is changed so
-that you can set it to t, nil, `default', or `complex-only'.
-
-  If the value is nil, extra guidance is never given.
-
-  If the value is t, extra guidance is always given.
-
-  If the value is `complex-only', extra guidance is always given only
-  when you are using complex input methods such as chinese-py.
-
-  If the value is `default' (this is the default), extra guidance is
-  given in the following case:
-    o When you are using a complex input method.
-    o When you are using a simple input method but not in the minibuffer.
-
-If you are using Emacs through a very slow line, setting
-input-method-verbose-flag to nil or to complex-only is a good choice,
-and if you are using an input method you are not familiar with,
-setting it to t is helpful.
-
-The old command select-input-method is now called set-input-method.
-
-In the language environment "Korean", you can use the following
-keys:
-	Shift-SPC	toggle-korean-input-method
-	C-F9		quail-hangul-switch-symbol-ksc
-	F9		quail-hangul-switch-hanja
-These key bindings are canceled when you switch to another language
-environment.
-
-** The minibuffer history of file names now records the specified file
-names, not the entire minibuffer input.  For example, if the
-minibuffer starts out with /usr/foo/, you might type in /etc/passwd to
-get
-
-     /usr/foo//etc/passwd
-
-which stands for the file /etc/passwd.
-
-Formerly, this used to put /usr/foo//etc/passwd in the history list.
-Now this puts just /etc/passwd in the history list.
-
-** If you are root, Emacs sets backup-by-copying-when-mismatch to t
-at startup, so that saving a file will be sure to preserve
-its owner and group.
-
-** find-func.el can now also find the place of definition of Emacs
-Lisp variables in user-loaded libraries.
-
-** C-x r t (string-rectangle) now deletes the existing rectangle
-contents before inserting the specified string on each line.
-
-** There is a new command delete-whitespace-rectangle
-which deletes whitespace starting from a particular column
-in all the lines on a rectangle.  The column is specified
-by the left edge of the rectangle.
-
-** You can now store a number into a register with C-u NUMBER C-x r n REG,
-increment it by INC with C-u INC C-x r + REG (to increment by one, omit
-C-u INC), and insert it in the buffer with C-x r g REG.  This is useful
-for writing keyboard macros.
-
-** The new command M-x speedbar displays a frame in which directories,
-files, and tags can be displayed, manipulated, and jumped to.  The
-frame defaults to 20 characters in width, and is the same height as
-the frame that it was started from.  Some major modes define
-additional commands for the speedbar, including Rmail, GUD/GDB, and
-info.
-
-** query-replace-regexp is now bound to C-M-%.
-
-** In Transient Mark mode, when the region is active, M-x
-query-replace and the other replace commands now operate on the region
-contents only.
-
-** M-x write-region, when used interactively, now asks for
-confirmation before overwriting an existing file.  When you call
-the function from a Lisp program, a new optional argument CONFIRM
-says whether to ask for confirmation in this case.
-
-** If you use find-file-literally and the file is already visited
-non-literally, the command asks you whether to revisit the file
-literally.  If you say no, it signals an error.
-
-** Major modes defined with the "derived mode" feature
-now use the proper name for the mode hook: WHATEVER-mode-hook.
-Formerly they used the name WHATEVER-mode-hooks, but that is
-inconsistent with Emacs conventions.
-
-** shell-command-on-region (and shell-command) reports success or
-failure if the command produces no output.
-
-** Set focus-follows-mouse to nil if your window system or window
-manager does not transfer focus to another window when you just move
-the mouse.
-
-** mouse-menu-buffer-maxlen has been renamed to
-mouse-buffer-menu-maxlen to be consistent with the other related
-function and variable names.
-
-** The new variable auto-coding-alist specifies coding systems for
-reading specific files.  This has higher priority than
-file-coding-system-alist.
-
-** If you set the variable unibyte-display-via-language-environment to
-t, then Emacs displays non-ASCII characters are displayed by
-converting them to the equivalent multibyte characters according to
-the current language environment.  As a result, they are displayed
-according to the current fontset.
-
-** C-q's handling of codes in the range 0200 through 0377 is changed.
-
-The codes in the range 0200 through 0237 are inserted as one byte of
-that code regardless of the values of nonascii-translation-table and
-nonascii-insert-offset.
-
-For the codes in the range 0240 through 0377, if
-enable-multibyte-characters is non-nil and nonascii-translation-table
-nor nonascii-insert-offset can't convert them to valid multibyte
-characters, they are converted to Latin-1 characters.
-
-** If you try to find a file that is not read-accessible, you now get
-an error, rather than an empty buffer and a warning.
-
-** In the minibuffer history commands M-r and M-s, an upper case
-letter in the regular expression forces case-sensitive search.
-
-** In the *Help* buffer, cross-references to commands and variables
-are inferred and hyperlinked.  Use C-h m in Help mode for the relevant
-command keys.
-
-** M-x apropos-command, with a prefix argument, no longer looks for
-user option variables--instead it looks for noninteractive functions.
-
-Meanwhile, the command apropos-variable normally searches for
-user option variables; with a prefix argument, it looks at
-all variables that have documentation.
-
-** When you type a long line in the minibuffer, and the minibuffer
-shows just one line, automatically scrolling works in a special way
-that shows you overlap with the previous line of text.  The variable
-minibuffer-scroll-overlap controls how many characters of overlap
-it should show; the default is 20.
-
-Meanwhile, Resize Minibuffer mode is still available; in that mode,
-the minibuffer grows taller (up to a point) as needed to show the whole
-of your input.
-
-** The new command M-x customize-changed-options lets you customize
-all the options whose meanings or default values have changed in
-recent Emacs versions.  You specify a previous Emacs version number as
-argument, and the command creates a customization buffer showing all
-the customizable options which were changed since that version.
-Newly added options are included as well.
-
-If you don't specify a particular version number argument,
-then the customization buffer shows all the customizable options
-for which Emacs versions of changes are recorded.
-
-This function is also bound to the Changed Options entry in the
-Customize menu.
-
-** When you run M-x grep with a prefix argument, it figures out
-the tag around point and puts that into the default grep command.
-
-** The new command M-* (pop-tag-mark) pops back through a history of
-buffer positions from which M-. or other tag-finding commands were
-invoked.
-
-** The new variable comment-padding specifies the number of spaces
-that `comment-region' will insert before the actual text of the comment.
-The default is 1.
-
-** In Fortran mode the characters `.', `_' and `$' now have symbol
-syntax, not word syntax.  Fortran mode now supports `imenu' and has
-new commands fortran-join-line (M-^) and fortran-narrow-to-subprogram
-(C-x n d).  M-q can be used to fill a statement or comment block
-sensibly.
-
-** GUD now supports jdb, the Java debugger, and pdb, the Python debugger.
-
-** If you set the variable add-log-keep-changes-together to a non-nil
-value, the command `C-x 4 a' will automatically notice when you make
-two entries in one day for one file, and combine them.
-
-** You can use the command M-x diary-mail-entries to mail yourself a
-reminder about upcoming diary entries.  See the documentation string
-for a sample shell script for calling this function automatically
-every night.
-
-** Desktop changes
-
-*** All you need to do to enable use of the Desktop package, is to set
-the variable desktop-enable to t with Custom.
-
-*** Minor modes are now restored.  Which minor modes are restored
-and how modes are restored is controlled by `desktop-minor-mode-table'.
-
-** There is no need to do anything special, now, to enable Gnus to
-read and post multi-lingual articles.
-
-** Outline mode has now support for showing hidden outlines when
-doing an isearch.  In order for this to happen search-invisible should
-be set to open (the default).  If an isearch match is inside a hidden
-outline the outline is made visible.  If you continue pressing C-s and
-the match moves outside the formerly invisible outline, the outline is
-made invisible again.
-
-** Mail reading and sending changes
-
-*** The Rmail e command now switches to displaying the whole header of
-the message before it lets you edit the message.  This is so that any
-changes you make in the header will not be lost if you subsequently
-toggle.
-
-*** The w command in Rmail, which writes the message body into a file,
-now works in the summary buffer as well.  (The command to delete the
-summary buffer is now Q.)  The default file name for the w command, if
-the message has no subject, is stored in the variable
-rmail-default-body-file.
-
-*** Most of the commands and modes that operate on mail and netnews no
-longer depend on the value of mail-header-separator.  Instead, they
-handle whatever separator the buffer happens to use.
-
-*** If you set mail-signature to a value which is not t, nil, or a string,
-it should be an expression.  When you send a message, this expression
-is evaluated to insert the signature.
-
-*** The new Lisp library feedmail.el (version 8) enhances processing of
-outbound email messages.  It works in coordination with other email
-handling packages (e.g., rmail, VM, gnus) and is responsible for
-putting final touches on messages and actually submitting them for
-transmission.  Users of the emacs program "fakemail" might be
-especially interested in trying feedmail.
-
-feedmail is not enabled by default.  See comments at the top of
-feedmail.el for set-up instructions.  Among the bigger features
-provided by feedmail are:
-
-**** you can park outgoing messages into a disk-based queue and
-stimulate sending some or all of them later (handy for laptop users);
-there is also a queue for draft messages
-
-**** you can get one last look at the prepped outbound message and
-be prompted for confirmation
-
-**** does smart filling of address headers
-
-**** can generate a MESSAGE-ID: line and a DATE: line; the date can be
-the time the message was written or the time it is being sent; this
-can make FCC copies more closely resemble copies that recipients get
-
-**** you can specify an arbitrary function for actually transmitting
-the message; included in feedmail are interfaces for /bin/[r]mail,
-/usr/lib/sendmail, and Emacs Lisp smtpmail; it's easy to write a new
-function for something else (10-20 lines of Lisp code).
-
-** Dired changes
-
-*** The Dired function dired-do-toggle, which toggles marked and unmarked
-files, is now bound to "t" instead of "T".
-
-*** dired-at-point has been added to ffap.el.  It allows one to easily
-run Dired on the directory name at point.
-
-*** Dired has a new command: %g.  It searches the contents of
-files in the directory and marks each file that contains a match
-for a specified regexp.
-
-** VC Changes
-
-*** New option vc-ignore-vc-files lets you turn off version control
-conveniently.
-
-*** VC Dired has been completely rewritten.  It is now much
-faster, especially for CVS, and works very similar to ordinary
-Dired.
-
-VC Dired is invoked by typing C-x v d and entering the name of the
-directory to display.  By default, VC Dired gives you a recursive
-listing of all files at or below the given directory which are
-currently locked (for CVS, all files not up-to-date are shown).
-
-You can change the listing format by setting vc-dired-recurse to nil,
-then it shows only the given directory, and you may also set
-vc-dired-terse-display to nil, then it shows all files under version
-control plus the names of any subdirectories, so that you can type `i'
-on such lines to insert them manually, as in ordinary Dired.
-
-All Dired commands operate normally in VC Dired, except for `v', which
-is redefined as the version control prefix.  That means you may type
-`v l', `v =' etc. to invoke `vc-print-log', `vc-diff' and the like on
-the file named in the current Dired buffer line.  `v v' invokes
-`vc-next-action' on this file, or on all files currently marked.
-
-The new command `v t' (vc-dired-toggle-terse-mode) allows you to
-toggle between terse display (only locked files) and full display (all
-VC files plus subdirectories).  There is also a special command,
-`* l', to mark all files currently locked.
-
-Giving a prefix argument to C-x v d now does the same thing as in
-ordinary Dired: it allows you to supply additional options for the ls
-command in the minibuffer, to fine-tune VC Dired's output.
-
-*** Under CVS, if you merge changes from the repository into a working
-file, and CVS detects conflicts, VC now offers to start an ediff
-session to resolve them.
-
-Alternatively, you can use the new command `vc-resolve-conflicts' to
-resolve conflicts in a file at any time.  It works in any buffer that
-contains conflict markers as generated by rcsmerge (which is what CVS
-uses as well).
-
-*** You can now transfer changes between branches, using the new
-command vc-merge (C-x v m).  It is implemented for RCS and CVS.  When
-you invoke it in a buffer under version-control, you can specify
-either an entire branch or a pair of versions, and the changes on that
-branch or between the two versions are merged into the working file.
-If this results in any conflicts, they may be resolved interactively,
-using ediff.
-
-** Changes in Font Lock
-
-*** The face and variable previously known as font-lock-reference-face
-are now called font-lock-constant-face to better reflect their typical
-use for highlighting constants and labels.  (Its face properties are
-unchanged.)  The variable font-lock-reference-face remains for now for
-compatibility reasons, but its value is font-lock-constant-face.
-
-** Frame name display changes
-
-*** The command set-frame-name lets you set the name of the current
-frame.  You can use the new command select-frame-by-name to select and
-raise a frame; this is mostly useful on character-only terminals, or
-when many frames are invisible or iconified.
-
-*** On character-only terminal (not a window system), changing the
-frame name is now reflected on the mode line and in the Buffers/Frames
-menu.
-
-** Comint (subshell) changes
-
-*** In Comint modes, the commands to kill, stop or interrupt a
-subjob now also kill pending input.  This is for compatibility
-with ordinary shells, where the signal characters do this.
-
-*** There are new commands in Comint mode.
-
-C-c C-x fetches the "next" line from the input history;
-that is, the line after the last line you got.
-You can use this command to fetch successive lines, one by one.
-
-C-c SPC accumulates lines of input.  More precisely, it arranges to
-send the current line together with the following line, when you send
-the following line.
-
-C-c C-a if repeated twice consecutively now moves to the process mark,
-which separates the pending input from the subprocess output and the
-previously sent input.
-
-C-c M-r now runs comint-previous-matching-input-from-input;
-it searches for a previous command, using the current pending input
-as the search string.
-
-*** New option compilation-scroll-output can be set to scroll
-automatically in compilation-mode windows.
-
-** C mode changes
-
-*** Multiline macros are now handled, both as they affect indentation,
-and as recognized syntax.  New syntactic symbol cpp-macro-cont is
-assigned to second and subsequent lines of a multiline macro
-definition.
-
-*** A new style "user" which captures all non-hook-ified
-(i.e. top-level) .emacs file variable settings and customizations.
-Style "cc-mode" is an alias for "user" and is deprecated.  "gnu"
-style is still the default however.
-
-*** "java" style now conforms to Sun's JDK coding style.
-
-*** There are new commands c-beginning-of-defun, c-end-of-defun which
-are alternatives which you could bind to C-M-a and C-M-e if you prefer
-them.  They do not have key bindings by default.
-
-*** New and improved implementations of M-a (c-beginning-of-statement)
-and M-e (c-end-of-statement).
-
-*** C++ namespace blocks are supported, with new syntactic symbols
-namespace-open, namespace-close, and innamespace.
-
-*** File local variable settings of c-file-style and c-file-offsets
-makes the style variables local to that buffer only.
-
-*** New indentation functions c-lineup-close-paren,
-c-indent-one-line-block, c-lineup-dont-change.
-
-*** Improvements (hopefully!) to the way CC Mode is loaded.  You
-should now be able to do a (require 'cc-mode) to get the entire
-package loaded properly for customization in your .emacs file.  A new
-variable c-initialize-on-load controls this and is t by default.
-
-** Changes to hippie-expand.
-
-*** New customization variable `hippie-expand-dabbrev-skip-space'. If
-non-nil, trailing spaces may be included in the abbreviation to search for,
-which then gives the same behavior as the original `dabbrev-expand'.
-
-*** New customization variable `hippie-expand-dabbrev-as-symbol'. If
-non-nil, characters of syntax '_' is considered part of the word when
-expanding dynamically.
-
-*** New customization variable `hippie-expand-no-restriction'. If
-non-nil, narrowed buffers are widened before they are searched.
-
-*** New customization variable `hippie-expand-only-buffers'. If
-non-empty, buffers searched are restricted to the types specified in
-this list. Useful for example when constructing new special-purpose
-expansion functions with `make-hippie-expand-function'.
-
-*** Text properties of the expansion are no longer copied.
-
-** Changes in BibTeX mode.
-
-*** Any titleword matching a regexp in the new variable
-bibtex-autokey-titleword-ignore (case sensitive) is ignored during
-automatic key generation.  This replaces variable
-bibtex-autokey-titleword-first-ignore, which only checked for matches
-against the first word in the title.
-
-*** Autokey generation now uses all words from the title, not just
-capitalized words.  To avoid conflicts with existing customizations,
-bibtex-autokey-titleword-ignore is set up such that words starting with
-lowerkey characters will still be ignored.  Thus, if you want to use
-lowercase words from the title, you will have to overwrite the
-bibtex-autokey-titleword-ignore standard setting.
-
-*** Case conversion of names and title words for automatic key
-generation is more flexible.  Variable bibtex-autokey-preserve-case is
-replaced by bibtex-autokey-titleword-case-convert and
-bibtex-autokey-name-case-convert.
-
-** Changes in vcursor.el.
-
-*** Support for character terminals is available: there is a new keymap
-and the vcursor will appear as an arrow between buffer text.  A
-variable `vcursor-interpret-input' allows input from the vcursor to be
-entered exactly as if typed.  Numerous functions, including
-`vcursor-compare-windows', have been rewritten to improve consistency
-in the selection of windows and corresponding keymaps.
-
-*** vcursor options can now be altered with M-x customize under the
-Editing group once the package is loaded.
-
-*** Loading vcursor now does not define keys by default, as this is
-generally a bad side effect.  Use M-x customize to set
-vcursor-key-bindings to t to restore the old behavior.
-
-*** vcursor-auto-disable can be `copy', which turns off copying from the
-vcursor, but doesn't disable it, after any non-vcursor command.
-
-** Ispell changes.
-
-*** You can now spell check comments and strings in the current
-buffer with M-x ispell-comments-and-strings.  Comments and strings
-are identified by syntax tables in effect.
-
-*** Generic region skipping implemented.
-A single buffer can be broken into a number of regions where text will
-and will not be checked.  The definitions of the regions can be user
-defined.  New applications and improvements made available by this
-include:
-
-    o URLs are automatically skipped
-    o EMail message checking is vastly improved.
-
-*** Ispell can highlight the erroneous word even on non-window terminals.
-
-** Changes to RefTeX mode
-
-RefTeX has been updated in order to make it more usable with very
-large projects (like a several volume math book).  The parser has been
-re-written from scratch.  To get maximum speed from RefTeX, check the
-section `Optimizations' in the manual.
-
-*** New recursive parser.
-
-The old version of RefTeX created a single large buffer containing the
-entire multifile document in order to parse the document.  The new
-recursive parser scans the individual files.
-
-*** Parsing only part of a document.
-
-Reparsing of changed document parts can now be made faster by enabling
-partial scans.  To use this feature, read the documentation string of
-the variable `reftex-enable-partial-scans' and set the variable to t.
-
-    (setq reftex-enable-partial-scans t)
-
-*** Storing parsing information in a file.
-
-This can improve startup times considerably.  To turn it on, use
-
-    (setq reftex-save-parse-info t)
-
-*** Using multiple selection buffers
-
-If the creation of label selection buffers is too slow (this happens
-for large documents), you can reuse these buffers by setting
-
-    (setq reftex-use-multiple-selection-buffers t)
-
-*** References to external documents.
-
-The LaTeX package `xr' allows to cross-reference labels in external
-documents.  RefTeX can provide information about the external
-documents as well.  To use this feature, set up the \externaldocument
-macros required by the `xr' package and rescan the document with
-RefTeX.  The external labels can then be accessed with the `x' key in
-the selection buffer provided by `reftex-reference' (bound to `C-c )').
-The `x' key also works in the table of contents buffer.
-
-*** Many more labeled LaTeX environments are recognized by default.
-
-The built-in command list now covers all the standard LaTeX commands,
-and all of the major packages included in the LaTeX distribution.
-
-Also, RefTeX now understands the \appendix macro and changes
-the enumeration of sections in the *toc* buffer accordingly.
-
-*** Mouse support for selection and *toc* buffers
-
-The mouse can now be used to select items in the selection and *toc*
-buffers.  See also the new option `reftex-highlight-selection'.
-
-*** New keymaps for selection and table of contents modes.
-
-The selection processes for labels and citation keys, and the table of
-contents buffer now have their own keymaps: `reftex-select-label-map',
-`reftex-select-bib-map', `reftex-toc-map'.  The selection processes
-have a number of new keys predefined.  In particular, TAB lets you
-enter a label with completion.  Check the on-the-fly help (press `?'
-at the selection prompt) or read the Info documentation to find out
-more.
-
-*** Support for the varioref package
-
-The `v' key in the label selection buffer toggles \ref versus \vref.
-
-*** New hooks
-
-Three new hooks can be used to redefine the way labels, references,
-and citations are created. These hooks are
-`reftex-format-label-function', `reftex-format-ref-function',
-`reftex-format-cite-function'.
-
-*** Citations outside LaTeX
-
-The command `reftex-citation' may also be used outside LaTeX (e.g. in
-a mail buffer).  See the Info documentation for details.
-
-*** Short context is no longer fontified.
-
-The short context in the label menu no longer copies the
-fontification from the text in the buffer.  If you prefer it to be
-fontified, use
-
-   (setq reftex-refontify-context t)
-
-** file-cache-minibuffer-complete now accepts a prefix argument.
-With a prefix argument, it does not try to do completion of
-the file name within its directory; it only checks for other
-directories that contain the same file name.
-
-Thus, given the file name Makefile, and assuming that a file
-Makefile.in exists in the same directory, ordinary
-file-cache-minibuffer-complete will try to complete Makefile to
-Makefile.in and will therefore never look for other directories that
-have Makefile.  A prefix argument tells it not to look for longer
-names such as Makefile.in, so that instead it will look for other
-directories--just as if the name were already complete in its present
-directory.
-
-** New modes and packages
-
-*** There is a new alternative major mode for Perl, Cperl mode.
-It has many more features than Perl mode, and some people prefer
-it, but some do not.
-
-*** There is a new major mode, M-x vhdl-mode, for editing files of VHDL
-code.
-
-*** M-x which-function-mode enables a minor mode that displays the
-current function name continuously in the mode line, as you move
-around in a buffer.
-
-Which Function mode is effective in major modes which support Imenu.
-
-*** Gametree is a major mode for editing game analysis trees.  The author
-uses it for keeping notes about his postal Chess games, but it should
-be helpful for other two-player games as well, as long as they have an
-established system of notation similar to Chess.
-
-*** The new minor mode checkdoc-minor-mode provides Emacs Lisp
-documentation string checking for style and spelling.  The style
-guidelines are found in the Emacs Lisp programming manual.
-
-*** The net-utils package makes some common networking features
-available in Emacs.  Some of these functions are wrappers around
-system utilities (ping, nslookup, etc.); others are implementations of
-simple protocols (finger, whois) in Emacs Lisp.  There are also
-functions to make simple connections to TCP/IP ports for debugging and
-the like.
-
-*** highlight-changes-mode is a minor mode that uses colors to
-identify recently changed parts of the buffer text.
-
-*** The new package `midnight' lets you specify things to be done
-within Emacs at midnight--by default, kill buffers that you have not
-used in a considerable time.  To use this feature, customize
-the user option `midnight-mode' to t.
-
-*** The file generic-x.el defines a number of simple major modes.
-
-  apache-generic-mode: For Apache and NCSA httpd configuration files
-  samba-generic-mode: Samba configuration files
-  fvwm-generic-mode: For fvwm initialization files
-  x-resource-generic-mode: For X resource files
-  hosts-generic-mode: For hosts files (.rhosts, /etc/hosts, etc.)
-  mailagent-rules-generic-mode: For mailagent .rules files
-  javascript-generic-mode: For JavaScript files
-  vrml-generic-mode: For VRML files
-  java-manifest-generic-mode: For Java MANIFEST files
-  java-properties-generic-mode: For Java property files
-  mailrc-generic-mode: For .mailrc files
-
-  Platform-specific modes:
-
-  prototype-generic-mode: For Solaris/Sys V prototype files
-  pkginfo-generic-mode: For Solaris/Sys V pkginfo files
-  alias-generic-mode: For C shell alias files
-  inf-generic-mode: For MS-Windows INF files
-  ini-generic-mode: For MS-Windows INI files
-  reg-generic-mode: For MS-Windows Registry files
-  bat-generic-mode: For MS-Windows BAT scripts
-  rc-generic-mode: For MS-Windows Resource files
-  rul-generic-mode: For InstallShield scripts
-
-* Lisp changes in Emacs 20.3 since the Emacs Lisp Manual was published
-
-** If you want a Lisp file to be read in unibyte mode,
-use -*-unibyte: t;-*- on its first line.
-That will force Emacs to read that file in unibyte mode.
-Otherwise, the file will be loaded and byte-compiled in multibyte mode.
-
-Thus, each lisp file is read in a consistent way regardless of whether
-you started Emacs with --unibyte, so that a Lisp program gives
-consistent results regardless of how Emacs was started.
-
-** The new function assoc-default is useful for searching an alist,
-and using a default value if the key is not found there.  You can
-specify a comparison predicate, so this function is useful for
-searching comparing a string against an alist of regular expressions.
-
-** The functions unibyte-char-to-multibyte and
-multibyte-char-to-unibyte convert between unibyte and multibyte
-character codes, in a way that is appropriate for the current language
-environment.
-
-** The functions read-event, read-char and read-char-exclusive now
-take two optional arguments.  PROMPT, if non-nil, specifies a prompt
-string.  SUPPRESS-INPUT-METHOD, if non-nil, says to disable the
-current input method for reading this one event.
-
-** Two new variables print-escape-nonascii and print-escape-multibyte
-now control whether to output certain characters as
-backslash-sequences.  print-escape-nonascii applies to single-byte
-non-ASCII characters; print-escape-multibyte applies to multibyte
-characters.  Both of these variables are used only when printing
-in readable fashion (prin1 uses them, princ does not).
-
-* Lisp changes in Emacs 20.3 before the Emacs Lisp Manual was published
-
-** Compiled Emacs Lisp files made with the modified "MBSK" version
-of Emacs 20.2 do not work in Emacs 20.3.
-
-** Buffer positions are now measured in characters, as they were
-in Emacs 19 and before.  This means that (forward-char 1)
-always increases point by 1.
-
-The function chars-in-region now just subtracts its arguments.  It is
-considered obsolete.  The function char-boundary-p has been deleted.
-
-See below for additional changes relating to multibyte characters.
-
-** defcustom, defface and defgroup now accept the keyword `:version'.
-Use this to specify in which version of Emacs a certain variable's
-default value changed.  For example,
-
-   (defcustom foo-max 34 "*Maximum number of foo's allowed."
-     :type 'integer
-     :group 'foo
-     :version "20.3")
-
-   (defgroup foo-group nil "The foo group."
-     :version "20.3")
-
-If an entire new group is added or the variables in it have the
-default values changed, then just add a `:version' to that group. It
-is recommended that new packages added to the distribution contain a
-`:version' in the top level group.
-
-This information is used to control the customize-changed-options command.
-
-** It is now an error to change the value of a symbol whose name
-starts with a colon--if it is interned in the standard obarray.
-
-However, setting such a symbol to its proper value, which is that
-symbol itself, is not an error.  This is for the sake of programs that
-support previous Emacs versions by explicitly setting these variables
-to themselves.
-
-If you set the variable keyword-symbols-constant-flag to nil,
-this error is suppressed, and you can set these symbols to any
-values whatever.
-
-** There is a new debugger command, R.
-It evaluates an expression like e, but saves the result
-in the buffer *Debugger-record*.
-
-** Frame-local variables.
-
-You can now make a variable local to various frames.  To do this, call
-the function make-variable-frame-local; this enables frames to have
-local bindings for that variable.
-
-These frame-local bindings are actually frame parameters: you create a
-frame-local binding in a specific frame by calling
-modify-frame-parameters and specifying the variable name as the
-parameter name.
-
-Buffer-local bindings take precedence over frame-local bindings.
-Thus, if the current buffer has a buffer-local binding, that binding is
-active; otherwise, if the selected frame has a frame-local binding,
-that binding is active; otherwise, the default binding is active.
-
-It would not be hard to implement window-local bindings, but it is not
-clear that this would be very useful; windows tend to come and go in a
-very transitory fashion, so that trying to produce any specific effect
-through a window-local binding would not be very robust.
-
-** `sregexq' and `sregex' are two new functions for constructing
-"symbolic regular expressions."  These are Lisp expressions that, when
-evaluated, yield conventional string-based regexps.  The symbolic form
-makes it easier to construct, read, and maintain complex patterns.
-See the documentation in sregex.el.
-
-** parse-partial-sexp's return value has an additional element which
-is used to pass information along if you pass it to another call to
-parse-partial-sexp, starting its scan where the first call ended.
-The contents of this field are not yet finalized.
-
-** eval-region now accepts a fourth optional argument READ-FUNCTION.
-If it is non-nil, that function is used instead of `read'.
-
-** unload-feature by default removes the feature's functions from
-known hooks to avoid trouble, but a package providing FEATURE can
-define a hook FEATURE-unload-hook to be run by unload-feature instead.
-
-** read-from-minibuffer no longer returns the argument DEFAULT-VALUE
-when the user enters empty input.  It now returns the null string, as
-it did in Emacs 19.  The default value is made available in the
-history via M-n, but it is not applied here as a default.
-
-The other, more specialized minibuffer-reading functions continue to
-return the default value (not the null string) when the user enters
-empty input.
-
-** The new variable read-buffer-function controls which routine to use
-for selecting buffers.  For example, if you set this variable to
-`iswitchb-read-buffer', iswitchb will be used to read buffer names.
-Other functions can also be used if they accept the same arguments as
-`read-buffer' and return the selected buffer name as a string.
-
-** The new function read-passwd reads a password from the terminal,
-echoing a period for each character typed.  It takes three arguments:
-a prompt string, a flag which says "read it twice to make sure", and a
-default password to use if the user enters nothing.
-
-** The variable fill-nobreak-predicate gives major modes a way to
-specify not to break a line at certain places.  Its value is a
-function which is called with no arguments, with point located at the
-place where a break is being considered.  If the function returns
-non-nil, then the line won't be broken there.
-
-** window-end now takes an optional second argument, UPDATE.
-If this is non-nil, then the function always returns an accurate
-up-to-date value for the buffer position corresponding to the
-end of the window, even if this requires computation.
-
-** other-buffer now takes an optional argument FRAME
-which specifies which frame's buffer list to use.
-If it is nil, that means use the selected frame's buffer list.
-
-** The new variable buffer-display-time, always local in every buffer,
-holds the value of (current-time) as of the last time that a window
-was directed to display this buffer.
-
-** It is now meaningful to compare two window-configuration objects
-with `equal'.  Two window-configuration objects are equal if they
-describe equivalent arrangements of windows, in the same frame--in
-other words, if they would give the same results if passed to
-set-window-configuration.
-
-** compare-window-configurations is a new function that compares two
-window configurations loosely.  It ignores differences in saved buffer
-positions and scrolling, and considers only the structure and sizes of
-windows and the choice of buffers to display.
-
-** The variable minor-mode-overriding-map-alist allows major modes to
-override the key bindings of a minor mode.  The elements of this alist
-look like the elements of minor-mode-map-alist: (VARIABLE . KEYMAP).
-
-If the VARIABLE in an element of minor-mode-overriding-map-alist has a
-non-nil value, the paired KEYMAP is active, and totally overrides the
-map (if any) specified for the same variable in minor-mode-map-alist.
-
-minor-mode-overriding-map-alist is automatically local in all buffers,
-and it is meant to be set by major modes.
-
-** The function match-string-no-properties is like match-string
-except that it discards all text properties from the result.
-
-** The function load-average now accepts an optional argument
-USE-FLOATS.  If it is non-nil, the load average values are returned as
-floating point numbers, rather than as integers to be divided by 100.
-
-** The new variable temporary-file-directory specifies the directory
-to use for creating temporary files.  The default value is determined
-in a reasonable way for your operating system; on GNU and Unix systems
-it is based on the TMP and TMPDIR environment variables.
-
-** Menu changes
-
-*** easymenu.el now uses the new menu item format and supports the
-keywords :visible and :filter.  The existing keyword :keys is now
-better supported.
-
-The variable `easy-menu-precalculate-equivalent-keybindings' controls
-a new feature which calculates keyboard equivalents for the menu when
-you define the menu.  The default is t.  If you rarely use menus, you
-can set the variable to nil to disable this precalculation feature;
-then the calculation is done only if you use the menu bar.
-
-*** A new format for menu items is supported.
-
-In a keymap, a key binding that has the format
- (STRING . REAL-BINDING) or (STRING HELP-STRING . REAL-BINDING)
-defines a menu item. Now a menu item definition may also be a list that
-starts with the symbol `menu-item'.
-
-The format is:
- (menu-item ITEM-NAME) or
- (menu-item ITEM-NAME REAL-BINDING . ITEM-PROPERTY-LIST)
-where ITEM-NAME is an expression which evaluates to the menu item
-string, and ITEM-PROPERTY-LIST has the form of a property list.
-The supported properties include
-
-:enable FORM      Evaluate FORM to determine whether the
-		  item is enabled.
-:visible FORM     Evaluate FORM to determine whether the
-		  item should appear in the menu.
-:filter FILTER-FN
-		  FILTER-FN is a function of one argument,
-		  which will be REAL-BINDING.
-		  It should return a binding to use instead.
-:keys DESCRIPTION
-		  DESCRIPTION is a string that describes an equivalent keyboard
-                  binding for REAL-BINDING.  DESCRIPTION is expanded with
-                  `substitute-command-keys' before it is used.
-:key-sequence KEY-SEQUENCE
-		  KEY-SEQUENCE is a key-sequence for an equivalent
-                  keyboard binding.
-:key-sequence nil
-	          This means that the command normally has no
-		  keyboard equivalent.
-:help HELP	  HELP is the extra help string (not currently used).
-:button (TYPE . SELECTED)
-		  TYPE is :toggle or :radio.
-		  SELECTED is a form, to be evaluated, and its
-		  value says whether this button is currently selected.
-
-Buttons are at the moment only simulated by prefixes in the menu.
-Eventually ordinary X-buttons may be supported.
-
-(menu-item ITEM-NAME) defines unselectable item.
-
-** New event types
-
-*** The new event type `mouse-wheel' is generated by a wheel on a
-mouse (such as the MS Intellimouse).  The event contains a delta that
-corresponds to the amount and direction that the wheel is rotated,
-which is typically used to implement a scroll or zoom.  The format is:
-
-  (mouse-wheel POSITION DELTA)
-
-where POSITION is a list describing the position of the event in the
-same format as a mouse-click event, and DELTA is a signed number
-indicating the number of increments by which the wheel was rotated.  A
-negative DELTA indicates that the wheel was rotated backwards, towards
-the user, and a positive DELTA indicates that the wheel was rotated
-forward, away from the user.
-
-As of now, this event type is generated only on MS Windows.
-
-*** The new event type `drag-n-drop' is generated when a group of
-files is selected in an application outside of Emacs, and then dragged
-and dropped onto an Emacs frame.  The event contains a list of
-filenames that were dragged and dropped, which are then typically
-loaded into Emacs.  The format is:
-
-  (drag-n-drop POSITION FILES)
-
-where POSITION is a list describing the position of the event in the
-same format as a mouse-click event, and FILES is the list of filenames
-that were dragged and dropped.
-
-As of now, this event type is generated only on MS Windows.
-
-** Changes relating to multibyte characters.
-
-*** The variable enable-multibyte-characters is now read-only;
-any attempt to set it directly signals an error.  The only way
-to change this value in an existing buffer is with set-buffer-multibyte.
-
-*** In a string constant, `\ ' now stands for "nothing at all".  You
-can use it to terminate a hex escape which is followed by a character
-that could otherwise be read as part of the hex escape.
-
-*** String indices are now measured in characters, as they were
-in Emacs 19 and before.
-
-The function chars-in-string has been deleted.
-The function concat-chars has been renamed to `string'.
-
-*** The function set-buffer-multibyte sets the flag in the current
-buffer that says whether the buffer uses multibyte representation or
-unibyte representation.  If the argument is nil, it selects unibyte
-representation.  Otherwise it selects multibyte representation.
-
-This function does not change the contents of the buffer, viewed
-as a sequence of bytes.  However, it does change the contents
-viewed as characters; a sequence of two bytes which is treated as
-one character when the buffer uses multibyte representation
-will count as two characters using unibyte representation.
-
-This function sets enable-multibyte-characters to record which
-representation is in use.  It also adjusts various data in the buffer
-(including its markers, overlays and text properties) so that they are
-consistent with the new representation.
-
-*** string-make-multibyte takes a string and converts it to multibyte
-representation.  Most of the time, you don't need to care
-about the representation, because Emacs converts when necessary;
-however, it makes a difference when you compare strings.
-
-The conversion of non-ASCII characters works by adding the value of
-nonascii-insert-offset to each character, or by translating them
-using the table nonascii-translation-table.
-
-*** string-make-unibyte takes a string and converts it to unibyte
-representation.  Most of the time, you don't need to care about the
-representation, but it makes a difference when you compare strings.
-
-The conversion from multibyte to unibyte representation
-loses information; the only time Emacs performs it automatically
-is when inserting a multibyte string into a unibyte buffer.
-
-*** string-as-multibyte takes a string, and returns another string
-which contains the same bytes, but treats them as multibyte.
-
-*** string-as-unibyte takes a string, and returns another string
-which contains the same bytes, but treats them as unibyte.
-
-*** The new function compare-strings lets you compare
-portions of two strings.  Unibyte strings are converted to multibyte,
-so that a unibyte string can match a multibyte string.
-You can specify whether to ignore case or not.
-
-*** assoc-ignore-case now uses compare-strings so that
-it can treat unibyte and multibyte strings as equal.
-
-*** Regular expression operations and buffer string searches now
-convert the search pattern to multibyte or unibyte to accord with the
-buffer or string being searched.
-
-One consequence is that you cannot always use \200-\377 inside of
-[...] to match all non-ASCII characters.  This does still work when
-searching or matching a unibyte buffer or string, but not when
-searching or matching a multibyte string.  Unfortunately, there is no
-obvious choice of syntax to use within [...] for that job.  But, what
-you want is just to match all non-ASCII characters, the regular
-expression [^\0-\177] works for it.
-
-*** Structure of coding system changed.
-
-All coding systems (including aliases and subsidiaries) are named
-by symbols; the symbol's `coding-system' property is a vector
-which defines the coding system.  Aliases share the same vector
-as the principal name, so that altering the contents of this
-vector affects the principal name and its aliases.  You can define
-your own alias name of a coding system by the function
-define-coding-system-alias.
-
-The coding system definition includes a property list of its own.  Use
-the new functions `coding-system-get' and `coding-system-put' to
-access such coding system properties as post-read-conversion,
-pre-write-conversion, character-translation-table-for-decode,
-character-translation-table-for-encode, mime-charset, and
-safe-charsets.  For instance, (coding-system-get 'iso-latin-1
-'mime-charset) gives the corresponding MIME-charset parameter
-`iso-8859-1'.
-
-Among the coding system properties listed above, safe-charsets is new.
-The value of this property is a list of character sets which this
-coding system can correctly encode and decode.  For instance:
-(coding-system-get 'iso-latin-1 'safe-charsets) => (ascii latin-iso8859-1)
-
-Here, "correctly encode" means that the encoded character sets can
-also be handled safely by systems other than Emacs as far as they
-are capable of that coding system.  Though, Emacs itself can encode
-the other character sets and read it back correctly.
-
-*** The new function select-safe-coding-system can be used to find a
-proper coding system for encoding the specified region or string.
-This function requires a user interaction.
-
-*** The new functions find-coding-systems-region and
-find-coding-systems-string are helper functions used by
-select-safe-coding-system.  They return a list of all proper coding
-systems to encode a text in some region or string.  If you don't want
-a user interaction, use one of these functions instead of
-select-safe-coding-system.
-
-*** The explicit encoding and decoding functions, such as
-decode-coding-region and encode-coding-string, now set
-last-coding-system-used to reflect the actual way encoding or decoding
-was done.
-
-*** The new function detect-coding-with-language-environment can be
-used to detect a coding system of text according to priorities of
-coding systems used by some specific language environment.
-
-*** The functions detect-coding-region and detect-coding-string always
-return a list if the arg HIGHEST is nil.  Thus, if only ASCII
-characters are found, they now return a list of single element
-`undecided' or its subsidiaries.
-
-*** The new functions coding-system-change-eol-conversion and
-coding-system-change-text-conversion can be used to get a different
-coding system than what specified only in how end-of-line or text is
-converted.
-
-*** The new function set-selection-coding-system can be used to set a
-coding system for communicating with other X clients.
-
-*** The function `map-char-table' now passes as argument only valid
-character codes, plus generic characters that stand for entire
-character sets or entire subrows of a character set.  In other words,
-each time `map-char-table' calls its FUNCTION argument, the key value
-either will be a valid individual character code, or will stand for a
-range of characters.
-
-*** The new function `char-valid-p' can be used for checking whether a
-Lisp object is a valid character code or not.
-
-*** The new function `charset-after' returns a charset of a character
-in the current buffer at position POS.
-
-*** Input methods are now implemented using the variable
-input-method-function.  If this is non-nil, its value should be a
-function; then, whenever Emacs reads an input event that is a printing
-character with no modifier bits, it calls that function, passing the
-event as an argument.  Often this function will read more input, first
-binding input-method-function to nil.
-
-The return value should be a list of the events resulting from input
-method processing.  These events will be processed sequentially as
-input, before resorting to unread-command-events.  Events returned by
-the input method function are not passed to the input method function,
-not even if they are printing characters with no modifier bits.
-
-The input method function is not called when reading the second and
-subsequent events of a key sequence.
-
-*** You can customize any language environment by using
-set-language-environment-hook and exit-language-environment-hook.
-
-The hook `exit-language-environment-hook' should be used to undo
-customizations that you made with set-language-environment-hook.  For
-instance, if you set up a special key binding for a specific language
-environment by set-language-environment-hook, you should set up
-exit-language-environment-hook to restore the normal key binding.
-
-* Changes in Emacs 20.1
-
-** Emacs has a new facility for customization of its many user
-options.  It is called M-x customize.  With this facility you can look
-at the many user options in an organized way; they are grouped into a
-tree structure.
-
-M-x customize also knows what sorts of values are legitimate for each
-user option and ensures that you don't use invalid values.
-
-With M-x customize, you can set options either for the present Emacs
-session or permanently.  (Permanent settings are stored automatically
-in your .emacs file.)
-
-** Scroll bars are now on the left side of the window.
-You can change this with M-x customize-option scroll-bar-mode.
-
-** The mode line no longer includes the string `Emacs'.
-This makes more space in the mode line for other information.
-
-** When you select a region with the mouse, it is highlighted
-immediately afterward.  At that time, if you type the DELETE key, it
-kills the region.
-
-The BACKSPACE key, and the ASCII character DEL, do not do this; they
-delete the character before point, as usual.
-
-** In an incremental search the whole current match is highlighted
-on terminals which support this.  (You can disable this feature
-by setting search-highlight to nil.)
-
-** In the minibuffer, in some cases, you can now use M-n to
-insert the default value into the minibuffer as text.  In effect,
-the default value (if the minibuffer routines know it) is tacked
-onto the history "in the future".  (The more normal use of the
-history list is to use M-p to insert minibuffer input used in the
-past.)
-
-** In Text mode, now only blank lines separate paragraphs.
-This makes it possible to get the full benefit of Adaptive Fill mode
-in Text mode, and other modes derived from it (such as Mail mode).
-TAB in Text mode now runs the command indent-relative; this
-makes a practical difference only when you use indented paragraphs.
-
-As a result, the old Indented Text mode is now identical to Text mode,
-and is an alias for it.
-
-If you want spaces at the beginning of a line to start a paragraph,
-use the new mode, Paragraph Indent Text mode.
-
-** Scrolling changes
-
-*** Scroll commands to scroll a whole screen now preserve the screen
-position of the cursor, if scroll-preserve-screen-position is non-nil.
-
-In this mode, if you scroll several screens back and forth, finishing
-on the same screen where you started, the cursor goes back to the line
-where it started.
-
-*** If you set scroll-conservatively to a small number, then when you
-move point a short distance off the screen, Emacs will scroll the
-screen just far enough to bring point back on screen, provided that
-does not exceed `scroll-conservatively' lines.
-
-*** The new variable scroll-margin says how close point can come to the
-top or bottom of a window.  It is a number of screen lines; if point
-comes within that many lines of the top or bottom of the window, Emacs
-recenters the window.
-
-** International character set support (MULE)
-
-Emacs now supports a wide variety of international character sets,
-including European variants of the Latin alphabet, as well as Chinese,
-Devanagari (Hindi and Marathi), Ethiopian, Greek, IPA, Japanese,
-Korean, Lao, Russian, Thai, Tibetan, and Vietnamese scripts.  These
-features have been merged from the modified version of Emacs known as
-MULE (for "MULti-lingual Enhancement to GNU Emacs")
-
-Users of these scripts have established many more-or-less standard
-coding systems for storing files.  Emacs uses a single multibyte
-character encoding within Emacs buffers; it can translate from a wide
-variety of coding systems when reading a file and can translate back
-into any of these coding systems when saving a file.
-
-Keyboards, even in the countries where these character sets are used,
-generally don't have keys for all the characters in them.  So Emacs
-supports various "input methods", typically one for each script or
-language, to make it possible to type them.
-
-The Emacs internal multibyte encoding represents a non-ASCII
-character as a sequence of bytes in the range 0200 through 0377.
-
-The new prefix key C-x RET is used for commands that pertain
-to multibyte characters, coding systems, and input methods.
-
-You can disable multibyte character support as follows:
-
-  (setq-default enable-multibyte-characters nil)
-
-Calling the function standard-display-european turns off multibyte
-characters, unless you specify a non-nil value for the second
-argument, AUTO.  This provides compatibility for people who are
-already using standard-display-european to continue using unibyte
-characters for their work until they want to change.
-
-*** Input methods
-
-An input method is a kind of character conversion which is designed
-specifically for interactive input.  In Emacs, typically each language
-has its own input method (though sometimes several languages which use
-the same characters can share one input method).  Some languages
-support several input methods.
-
-The simplest kind of input method works by mapping ASCII letters into
-another alphabet.  This is how the Greek and Russian input methods
-work.
-
-A more powerful technique is composition: converting sequences of
-characters into one letter.  Many European input methods use
-composition to produce a single non-ASCII letter from a sequence which
-consists of a letter followed by diacritics.  For example, a' is one
-sequence of two characters that might be converted into a single
-letter.
-
-The input methods for syllabic scripts typically use mapping followed
-by conversion.  The input methods for Thai and Korean work this way.
-First, letters are mapped into symbols for particular sounds or tone
-marks; then, sequences of these which make up a whole syllable are
-mapped into one syllable sign--most often a "composite character".
-
-None of these methods works very well for Chinese and Japanese, so
-they are handled specially.  First you input a whole word using
-phonetic spelling; then, after the word is in the buffer, Emacs
-converts it into one or more characters using a large dictionary.
-
-Since there is more than one way to represent a phonetically spelled
-word using Chinese characters, Emacs can only guess which one to use;
-typically these input methods give you a way to say "guess again" if
-the first guess is wrong.
-
-*** The command C-x RET m (toggle-enable-multibyte-characters)
-turns multibyte character support on or off for the current buffer.
-
-If multibyte character support is turned off in a buffer, then each
-byte is a single character, even codes 0200 through 0377--exactly as
-they did in Emacs 19.34.  This includes the features for support for
-the European characters, ISO Latin-1 and ISO Latin-2.
-
-However, there is no need to turn off multibyte character support to
-use ISO Latin-1 or ISO Latin-2; the Emacs multibyte character set
-includes all the characters in these character sets, and Emacs can
-translate automatically to and from either one.
-
-*** Visiting a file in unibyte mode.
-
-Turning off multibyte character support in the buffer after visiting a
-file with multibyte code conversion will display the multibyte
-sequences already in the buffer, byte by byte.  This is probably not
-what you want.
-
-If you want to edit a file of unibyte characters (Latin-1, for
-example), you can do it by specifying `no-conversion' as the coding
-system when reading the file.  This coding system also turns off
-multibyte characters in that buffer.
-
-If you turn off multibyte character support entirely, this turns off
-character conversion as well.
-
-*** Displaying international characters on X Windows.
-
-A font for X typically displays just one alphabet or script.
-Therefore, displaying the entire range of characters Emacs supports
-requires using many fonts.
-
-Therefore, Emacs now supports "fontsets".  Each fontset is a
-collection of fonts, each assigned to a range of character codes.
-
-A fontset has a name, like a font.  Individual fonts are defined by
-the X server; fontsets are defined within Emacs itself.  But once you
-have defined a fontset, you can use it in a face or a frame just as
-you would use a font.
-
-If a fontset specifies no font for a certain character, or if it
-specifies a font that does not exist on your system, then it cannot
-display that character.  It will display an empty box instead.
-
-The fontset height and width are determined by the ASCII characters
-(that is, by the font in the fontset which is used for ASCII
-characters).
-
-*** Defining fontsets.
-
-Emacs does not use any fontset by default.  Its default font is still
-chosen as in previous versions.  You can tell Emacs to use a fontset
-with the `-fn' option or the `Font' X resource.
-
-Emacs creates a standard fontset automatically according to the value
-of standard-fontset-spec.  This fontset's short name is
-`fontset-standard'.  Bold, italic, and bold-italic variants of the
-standard fontset are created automatically.
-
-If you specify a default ASCII font with the `Font' resource or `-fn'
-argument, a fontset is generated from it.  This works by replacing the
-FOUNDARY, FAMILY, ADD_STYLE, and AVERAGE_WIDTH fields of the font name
-with `*' then using this to specify a fontset.  This fontset's short
-name is `fontset-startup'.
-
-Emacs checks resources of the form Fontset-N where N is 0, 1, 2...
-The resource value should have this form:
-	FONTSET-NAME, [CHARSET-NAME:FONT-NAME]...
-FONTSET-NAME should have the form of a standard X font name, except:
-	* most fields should be just the wild card "*".
-	* the CHARSET_REGISTRY field should be "fontset"
-	* the CHARSET_ENCODING field can be any nickname of the fontset.
-The construct CHARSET-NAME:FONT-NAME can be repeated any number
-of times; each time specifies the font for one character set.
-CHARSET-NAME should be the name of a character set, and FONT-NAME
-should specify an actual font to use for that character set.
-
-Each of these fontsets has an alias which is made from the
-last two font name fields, CHARSET_REGISTRY and CHARSET_ENCODING.
-You can refer to the fontset by that alias or by its full name.
-
-For any character sets that you don't mention, Emacs tries to choose a
-font by substituting into FONTSET-NAME.  For instance, with the
-following resource,
-	Emacs*Fontset-0: -*-fixed-medium-r-normal-*-24-*-*-*-*-*-fontset-24
-the font for ASCII is generated as below:
-	-*-fixed-medium-r-normal-*-24-*-ISO8859-1
-Here is the substitution rule:
-    Change CHARSET_REGISTRY and CHARSET_ENCODING to that of the charset
-    defined in the variable x-charset-registries.  For instance, ASCII has
-    the entry (ascii . "ISO8859-1") in this variable.  Then, reduce
-    sequences of wild cards -*-...-*- with a single wildcard -*-.
-    (This is to prevent use of auto-scaled fonts.)
-
-The function which processes the fontset resource value to create the
-fontset is called create-fontset-from-fontset-spec.  You can also call
-that function explicitly to create a fontset.
-
-With the X resource Emacs.Font, you can specify a fontset name just
-like an actual font name.  But be careful not to specify a fontset
-name in a wildcard resource like Emacs*Font--that tries to specify the
-fontset for other purposes including menus, and they cannot handle
-fontsets.
-
-*** The command M-x set-language-environment sets certain global Emacs
-defaults for a particular choice of language.
-
-Selecting a language environment typically specifies a default input
-method and which coding systems to recognize automatically when
-visiting files.  However, it does not try to reread files you have
-already visited; the text in those buffers is not affected.  The
-language environment may also specify a default choice of coding
-system for new files that you create.
-
-It makes no difference which buffer is current when you use
-set-language-environment, because these defaults apply globally to the
-whole Emacs session.
-
-For example, M-x set-language-environment RET Latin-1 RET
-chooses the Latin-1 character set.  In the .emacs file, you can do this
-with (set-language-environment "Latin-1").
-
-*** The command C-x RET f (set-buffer-file-coding-system)
-specifies the file coding system for the current buffer.  This
-specifies what sort of character code translation to do when saving
-the file.  As an argument, you must specify the name of one of the
-coding systems that Emacs supports.
-
-*** The command C-x RET c (universal-coding-system-argument)
-lets you specify a coding system when you read or write a file.
-This command uses the minibuffer to read a coding system name.
-After you exit the minibuffer, the specified coding system
-is used for *the immediately following command*.
-
-So if the immediately following command is a command to read or
-write a file, it uses the specified coding system for that file.
-
-If the immediately following command does not use the coding system,
-then C-x RET c ultimately has no effect.
-
-For example, C-x RET c iso-8859-1 RET C-x C-f temp RET
-visits the file `temp' treating it as ISO Latin-1.
-
-*** You can specify the coding system for a file using the -*-
-construct.  Include `coding: CODINGSYSTEM;' inside the -*-...-*-
-to specify use of coding system CODINGSYSTEM.  You can also
-specify the coding system in a local variable list at the end
-of the file.
-
-*** The command C-x RET t (set-terminal-coding-system) specifies
-the coding system for terminal output.  If you specify a character
-code for terminal output, all characters output to the terminal are
-translated into that character code.
-
-This feature is useful for certain character-only terminals built in
-various countries to support the languages of those countries.
-
-By default, output to the terminal is not translated at all.
-
-*** The command C-x RET k (set-keyboard-coding-system) specifies
-the coding system for keyboard input.
-
-Character code translation of keyboard input is useful for terminals
-with keys that send non-ASCII graphic characters--for example,
-some terminals designed for ISO Latin-1 or subsets of it.
-
-By default, keyboard input is not translated at all.
-
-Character code translation of keyboard input is similar to using an
-input method, in that both define sequences of keyboard input that
-translate into single characters.  However, input methods are designed
-to be convenient for interactive use, while the code translations are
-designed to work with terminals.
-
-*** The command C-x RET p (set-buffer-process-coding-system)
-specifies the coding system for input and output to a subprocess.
-This command applies to the current buffer; normally, each subprocess
-has its own buffer, and thus you can use this command to specify
-translation to and from a particular subprocess by giving the command
-in the corresponding buffer.
-
-By default, process input and output are not translated at all.
-
-*** The variable file-name-coding-system specifies the coding system
-to use for encoding file names before operating on them.
-It is also used for decoding file names obtained from the system.
-
-*** The command C-\ (toggle-input-method) activates or deactivates
-an input method.  If no input method has been selected before, the
-command prompts for you to specify the language and input method you
-want to use.
-
-C-u C-\ (select-input-method) lets you switch to a different input
-method.  C-h C-\ (or C-h I) describes the current input method.
-
-*** Some input methods remap the keyboard to emulate various keyboard
-layouts commonly used for particular scripts.  How to do this
-remapping properly depends on your actual keyboard layout.  To specify
-which layout your keyboard has, use M-x quail-set-keyboard-layout.
-
-*** The command C-h C (describe-coding-system) displays
-the coding systems currently selected for various purposes, plus
-related information.
-
-*** The command C-h h (view-hello-file) displays a file called
-HELLO, which has examples of text in many languages, using various
-scripts.
-
-*** The command C-h L (describe-language-support) displays
-information about the support for a particular language.
-You specify the language as an argument.
-
-*** The mode line now contains a letter or character that identifies
-the coding system used in the visited file.  It normally follows the
-first dash.
-
-A dash indicates the default state of affairs: no code conversion
-(except CRLF => newline if appropriate).  `=' means no conversion
-whatsoever.  The ISO 8859 coding systems are represented by digits
-1 through 9.  Other coding systems are represented by letters:
-
-    A alternativnyj (Russian)
-    B big5 (Chinese)
-    C cn-gb-2312 (Chinese)
-    C iso-2022-cn (Chinese)
-    D in-is13194-devanagari (Indian languages)
-    E euc-japan (Japanese)
-    I iso-2022-cjk or iso-2022-ss2 (Chinese, Japanese, Korean)
-    J junet (iso-2022-7) or old-jis (iso-2022-jp-1978-irv)  (Japanese)
-    K euc-korea (Korean)
-    R koi8 (Russian)
-    Q tibetan
-    S shift_jis (Japanese)
-    T lao
-    T tis620 (Thai)
-    V viscii or vscii (Vietnamese)
-    i iso-2022-lock (Chinese, Japanese, Korean)
-    k iso-2022-kr (Korean)
-    v viqr (Vietnamese)
-    z hz (Chinese)
-
-When you are using a character-only terminal (not a window system),
-two additional characters appear in between the dash and the file
-coding system.  These two characters describe the coding system for
-keyboard input, and the coding system for terminal output.
-
-*** The new variable rmail-file-coding-system specifies the code
-conversion to use for RMAIL files.  The default value is nil.
-
-When you read mail with Rmail, each message is decoded automatically
-into Emacs' internal format.  This has nothing to do with
-rmail-file-coding-system.  That variable controls reading and writing
-Rmail files themselves.
-
-*** The new variable sendmail-coding-system specifies the code
-conversion for outgoing mail.  The default value is nil.
-
-Actually, there are three different ways of specifying the coding system
-for sending mail:
-
-- If you use C-x RET f in the mail buffer, that takes priority.
-- Otherwise, if you set sendmail-coding-system non-nil, that specifies it.
-- Otherwise, the default coding system for new files is used,
-  if that is non-nil.  That comes from your language environment.
-- Otherwise, Latin-1 is used.
-
-*** The command C-h t (help-with-tutorial) accepts a prefix argument
-to specify the language for the tutorial file.  Currently, English,
-Japanese, Korean and Thai are supported.  We welcome additional
-translations.
-
-** An easy new way to visit a file with no code or format conversion
-of any kind: Use M-x find-file-literally.  There is also a command
-insert-file-literally which inserts a file into the current buffer
-without any conversion.
-
-** C-q's handling of octal character codes is changed.
-You can now specify any number of octal digits.
-RET terminates the digits and is discarded;
-any other non-digit terminates the digits and is then used as input.
-
-** There are new commands for looking up Info documentation for
-functions, variables and file names used in your programs.
-
-Type M-x info-lookup-symbol to look up a symbol in the buffer at point.
-Type M-x info-lookup-file to look up a file in the buffer at point.
-
-Precisely which Info files are used to look it up depends on the major
-mode.  For example, in C mode, the GNU libc manual is used.
-
-** M-TAB in most programming language modes now runs the command
-complete-symbol.  This command performs completion on the symbol name
-in the buffer before point.
-
-With a numeric argument, it performs completion based on the set of
-symbols documented in the Info files for the programming language that
-you are using.
-
-With no argument, it does completion based on the current tags tables,
-just like the old binding of M-TAB (complete-tag).
-
-** File locking works with NFS now.
-
-The lock file for FILENAME is now a symbolic link named .#FILENAME,
-in the same directory as FILENAME.
-
-This means that collision detection between two different machines now
-works reasonably well; it also means that no file server or directory
-can become a bottleneck.
-
-The new method does have drawbacks.  It means that collision detection
-does not operate when you edit a file in a directory where you cannot
-create new files.  Collision detection also doesn't operate when the
-file server does not support symbolic links.  But these conditions are
-rare, and the ability to have collision detection while using NFS is
-so useful that the change is worth while.
-
-When Emacs or a system crashes, this may leave behind lock files which
-are stale.  So you may occasionally get warnings about spurious
-collisions.  When you determine that the collision is spurious, just
-tell Emacs to go ahead anyway.
-
-** If you wish to use Show Paren mode to display matching parentheses,
-it is no longer sufficient to load paren.el.  Instead you must call
-show-paren-mode.
-
-** If you wish to use Delete Selection mode to replace a highlighted
-selection when you insert new text, it is no longer sufficient to load
-delsel.el.  Instead you must call the function delete-selection-mode.
-
-** If you wish to use Partial Completion mode to complete partial words
-within symbols or filenames, it is no longer sufficient to load
-complete.el.  Instead you must call the function partial-completion-mode.
-
-** If you wish to use uniquify to rename buffers for you,
-it is no longer sufficient to load uniquify.el.  You must also
-set uniquify-buffer-name-style to one of the non-nil legitimate values.
-
-** Changes in View mode.
-
-*** Several new commands are available in View mode.
-Do H in view mode for a list of commands.
-
-*** There are two new commands for entering View mode:
-view-file-other-frame and view-buffer-other-frame.
-
-*** Exiting View mode does a better job of restoring windows to their
-previous state.
-
-*** New customization variable view-scroll-auto-exit. If non-nil,
-scrolling past end of buffer makes view mode exit.
-
-*** New customization variable view-exits-all-viewing-windows.  If
-non-nil, view-mode will at exit restore all windows viewing buffer,
-not just the selected window.
-
-*** New customization variable view-read-only.  If non-nil, visiting a
-read-only file automatically enters View mode, and toggle-read-only
-turns View mode on or off.
-
-*** New customization variable view-remove-frame-by-deleting controls
-how to remove a not needed frame at view mode exit. If non-nil,
-delete the frame, if nil make an icon of it.
-
-** C-x v l, the command to print a file's version control log,
-now positions point at the entry for the file's current branch version.
-
-** C-x v =, the command to compare a file with the last checked-in version,
-has a new feature.  If the file is currently not locked, so that it is
-presumably identical to the last checked-in version, the command now asks
-which version to compare with.
-
-** When using hideshow.el, incremental search can temporarily show hidden
-blocks if a match is inside the block.
-
-The block is hidden again if the search is continued and the next match
-is outside the block.  By customizing the variable
-isearch-hide-immediately you can choose to hide all the temporarily
-shown blocks only when exiting from incremental search.
-
-By customizing the variable hs-isearch-open you can choose what kind
-of blocks to temporarily show during isearch: comment blocks, code
-blocks, all of them or none.
-
-** The new command C-x 4 0 (kill-buffer-and-window) kills the
-current buffer and deletes the selected window.  It asks for
-confirmation first.
-
-** C-x C-w, which saves the buffer into a specified file name,
-now changes the major mode according to that file name.
-However, the mode will not be changed if
-(1) a local variables list or the `-*-' line specifies a major mode, or
-(2) the current major mode is a "special" mode,
-    not suitable for ordinary files, or
-(3) the new file name does not particularly specify any mode.
-
-This applies to M-x set-visited-file-name as well.
-
-However, if you set change-major-mode-with-file-name to nil, then
-these commands do not change the major mode.
-
-** M-x occur changes.
-
-*** If the argument to M-x occur contains upper case letters,
-it performs a case-sensitive search.
-
-*** In the *Occur* buffer made by M-x occur,
-if you type g or M-x revert-buffer, this repeats the search
-using the same regular expression and the same buffer as before.
-
-** In Transient Mark mode, the region in any one buffer is highlighted
-in just one window at a time.  At first, it is highlighted in the
-window where you set the mark.  The buffer's highlighting remains in
-that window unless you select to another window which shows the same
-buffer--then the highlighting moves to that window.
-
-** The feature to suggest key bindings when you use M-x now operates
-after the command finishes.  The message suggesting key bindings
-appears temporarily in the echo area.  The previous echo area contents
-come back after a few seconds, in case they contain useful information.
-
-** Each frame now independently records the order for recently
-selected buffers, so that the default for C-x b is now based on the
-buffers recently selected in the selected frame.
-
-** Outline mode changes.
-
-*** Outline mode now uses overlays (this is the former noutline.el).
-
-*** Incremental searches skip over invisible text in Outline mode.
-
-** When a minibuffer window is active but not the selected window, if
-you try to use the minibuffer, you used to get a nested minibuffer.
-Now, this not only gives an error, it also cancels the minibuffer that
-was already active.
-
-The motive for this change is so that beginning users do not
-unknowingly move away from minibuffers, leaving them active, and then
-get confused by it.
-
-If you want to be able to have recursive minibuffers, you must
-set enable-recursive-minibuffers to non-nil.
-
-** Changes in dynamic abbrevs.
-
-*** Expanding dynamic abbrevs with M-/ is now smarter about case
-conversion.  If the expansion has mixed case not counting the first
-character, and the abbreviation matches the beginning of the expansion
-including case, then the expansion is copied verbatim.
-
-The expansion is also copied verbatim if the abbreviation itself has
-mixed case.  And using SPC M-/ to copy an additional word always
-copies it verbatim except when the previous copied word is all caps.
-
-*** The values of `dabbrev-case-replace' and `dabbrev-case-fold-search'
-are no longer Lisp expressions.  They have simply three possible
-values.
-
-`dabbrev-case-replace' has these three values: nil (don't preserve
-case), t (do), or `case-replace' (do like M-x query-replace).
-`dabbrev-case-fold-search' has these three values: nil (don't ignore
-case), t (do), or `case-fold-search' (do like search).
-
-** Minibuffer history lists are truncated automatically now to a
-certain length.  The variable history-length specifies how long they
-can be.  The default value is 30.
-
-** Changes in Mail mode.
-
-*** The key C-x m no longer runs the `mail' command directly.
-Instead, it runs the command `compose-mail', which invokes the mail
-composition mechanism you have selected with the variable
-`mail-user-agent'.  The default choice of user agent is
-`sendmail-user-agent', which gives behavior compatible with the old
-behavior.
-
-C-x 4 m now runs compose-mail-other-window, and C-x 5 m runs
-compose-mail-other-frame.
-
-*** While composing a reply to a mail message, from Rmail, you can use
-the command C-c C-r to cite just the region from the message you are
-replying to.  This copies the text which is the selected region in the
-buffer that shows the original message.
-
-*** The command C-c C-i inserts a file at the end of the message,
-with separator lines around the contents.
-
-*** The command M-x expand-mail-aliases expands all mail aliases
-in suitable mail headers.  Emacs automatically extracts mail alias
-definitions from your mail alias file (e.g., ~/.mailrc).  You do not
-need to expand mail aliases yourself before sending mail.
-
-*** New features in the mail-complete command.
-
-**** The mail-complete command now inserts the user's full name,
-for local users or if that is known.  The variable mail-complete-style
-controls the style to use, and whether to do this at all.
-Its values are like those of mail-from-style.
-
-**** The variable mail-passwd-command lets you specify a shell command
-to run to fetch a set of password-entries that add to the ones in
-/etc/passwd.
-
-**** The variable mail-passwd-file now specifies a list of files to read
-to get the list of user ids.  By default, one file is used:
-/etc/passwd.
-
-** You can "quote" a file name to inhibit special significance of
-special syntax, by adding `/:' to the beginning.  Thus, if you have a
-directory named `/foo:', you can prevent it from being treated as a
-reference to a remote host named `foo' by writing it as `/:/foo:'.
-
-Emacs uses this new construct automatically when necessary, such as
-when you start it with a working directory whose name might otherwise
-be taken to be magic.
-
-** There is a new command M-x grep-find which uses find to select
-files to search through, and grep to scan them.  The output is
-available in a Compile mode buffer, as with M-x grep.
-
-M-x grep now uses the -e option if the grep program supports that.
-(-e prevents problems if the search pattern starts with a dash.)
-
-** In Dired, the & command now flags for deletion the files whose names
-suggest they are probably not needed in the long run.
-
-In Dired, * is now a prefix key for mark-related commands.
-
-new key		dired.el binding		old key
--------		----------------		-------
-  * c		dired-change-marks		c
-  * m		dired-mark			m
-  * *		dired-mark-executables		*  (binding deleted)
-  * /		dired-mark-directories		/  (binding deleted)
-  * @		dired-mark-symlinks		@  (binding deleted)
-  * u		dired-unmark			u
-  * DEL		dired-unmark-backward		DEL
-  * ?		dired-unmark-all-files		C-M-?
-  * !		dired-unmark-all-marks
-  * %		dired-mark-files-regexp		% m
-  * C-n		dired-next-marked-file		M-}
-  * C-p		dired-prev-marked-file		M-{
-
-** Rmail changes.
-
-*** When Rmail cannot convert your incoming mail into Babyl format, it
-saves the new mail in the file RMAILOSE.n, where n is an integer
-chosen to make a unique name.  This way, Rmail will not keep crashing
-each time you run it.
-
-*** In Rmail, the variable rmail-summary-line-count-flag now controls
-whether to include the line count in the summary.  Non-nil means yes.
-
-*** In Rmail summary buffers, d and C-d (the commands to delete
-messages) now take repeat counts as arguments.  A negative argument
-means to move in the opposite direction.
-
-*** In Rmail, the t command now takes an optional argument which lets
-you specify whether to show the message headers in full or pruned.
-
-*** In Rmail, the new command w (rmail-output-body-to-file) writes
-just the body of the current message into a file, without the headers.
-It takes the file name from the message subject, by default, but you
-can edit that file name in the minibuffer before it is actually used
-for output.
-
-** Gnus changes.
-
-*** nntp.el has been totally rewritten in an asynchronous fashion.
-
-*** Article prefetching functionality has been moved up into
-Gnus.
-
-*** Scoring can now be performed with logical operators like
-`and', `or', `not', and parent redirection.
-
-*** Article washing status can be displayed in the
-article mode line.
-
-*** gnus.el has been split into many smaller files.
-
-*** Suppression of duplicate articles based on Message-ID.
-
-(setq gnus-suppress-duplicates t)
-
-*** New variables for specifying what score and adapt files
-are to be considered home score and adapt files.  See
-`gnus-home-score-file' and `gnus-home-adapt-files'.
-
-*** Groups can inherit group parameters from parent topics.
-
-*** Article editing has been revamped and is now usable.
-
-*** Signatures can be recognized in more intelligent fashions.
-See `gnus-signature-separator' and `gnus-signature-limit'.
-
-*** Summary pick mode has been made to look more nn-like.
-Line numbers are displayed and the `.' command can be
-used to pick articles.
-
-*** Commands for moving the .newsrc.eld from one server to
-another have been added.
-
-    `M-x gnus-change-server'
-
-*** A way to specify that "uninteresting" fields be suppressed when
-generating lines in buffers.
-
-*** Several commands in the group buffer can be undone with
-`C-M-_'.
-
-*** Scoring can be done on words using the new score type `w'.
-
-*** Adaptive scoring can be done on a Subject word-by-word basis:
-
-    (setq gnus-use-adaptive-scoring '(word))
-
-*** Scores can be decayed.
-
-    (setq gnus-decay-scores t)
-
-*** Scoring can be performed using a regexp on the Date header.  The
-Date is normalized to compact ISO 8601 format first.
-
-*** A new command has been added to remove all data on articles from
-the native server.
-
-   `M-x gnus-group-clear-data-on-native-groups'
-
-*** A new command for reading collections of documents
-(nndoc with nnvirtual on top) has been added -- `C-M-d'.
-
-*** Process mark sets can be pushed and popped.
-
-*** A new mail-to-news backend makes it possible to post
-even when the NNTP server doesn't allow posting.
-
-*** A new backend for reading searches from Web search engines
-(DejaNews, Alta Vista, InReference) has been added.
-
-    Use the `G w' command in the group buffer to create such
-    a group.
-
-*** Groups inside topics can now be sorted using the standard
-sorting functions, and each topic can be sorted independently.
-
-    See the commands under the `T S' submap.
-
-*** Subsets of the groups can be sorted independently.
-
-    See the commands under the `G P' submap.
-
-*** Cached articles can be pulled into the groups.
-
-    Use the `Y c' command.
-
-*** Score files are now applied in a more reliable order.
-
-*** Reports on where mail messages end up can be generated.
-
-    `M-x nnmail-split-history'
-
-*** More hooks and functions have been added to remove junk
-from incoming mail before saving the mail.
-
-    See `nnmail-prepare-incoming-header-hook'.
-
-*** The nnml mail backend now understands compressed article files.
-
-*** To enable Gnus to read/post multi-lingual articles, you must execute
-the following code, for instance, in your .emacs.
-
-	(add-hook 'gnus-startup-hook 'gnus-mule-initialize)
-
-Then, when you start Gnus, it will decode non-ASCII text automatically
-and show appropriate characters.  (Note: if you are using gnus-mime
-from the SEMI package, formerly known as TM, you should NOT add this
-hook to gnus-startup-hook; gnus-mime has its own method of handling
-this issue.)
-
-Since it is impossible to distinguish all coding systems
-automatically, you may need to specify a choice of coding system for a
-particular news group.  This can be done by:
-
-	(gnus-mule-add-group NEWSGROUP 'CODING-SYSTEM)
-
-Here NEWSGROUP should be a string which names a newsgroup or a tree
-of newsgroups.  If NEWSGROUP is "XXX.YYY", all news groups under
-"XXX.YYY" (including "XXX.YYY.ZZZ") will use the specified coding
-system.  CODING-SYSTEM specifies which coding system to use (for both
-for reading and posting).
-
-CODING-SYSTEM can also be a cons cell of the form
-  (READ-CODING-SYSTEM . POST-CODING-SYSTEM)
-Then READ-CODING-SYSTEM is used when you read messages from the
-newsgroups, while POST-CODING-SYSTEM is used when you post messages
-there.
-
-Emacs knows the right coding systems for certain newsgroups by
-default.  Here are some of these default settings:
-
-	(gnus-mule-add-group "fj" 'iso-2022-7)
-	(gnus-mule-add-group "alt.chinese.text" 'hz-gb-2312)
-	(gnus-mule-add-group "alt.hk" 'hz-gb-2312)
-	(gnus-mule-add-group "alt.chinese.text.big5" 'cn-big5)
-	(gnus-mule-add-group "soc.culture.vietnamese" '(nil . viqr))
-
-When you reply by mail to an article, these settings are ignored;
-the mail is encoded according to sendmail-coding-system, as usual.
-
-** CC mode changes.
-
-*** If you edit primarily one style of C (or C++, Objective-C, Java)
-code, you may want to make the CC Mode style variables have global
-values so that you can set them directly in your .emacs file.  To do
-this, set c-style-variables-are-local-p to nil in your .emacs file.
-Note that this only takes effect if you do it *before* cc-mode.el is
-loaded.
-
-If you typically edit more than one style of C (or C++, Objective-C,
-Java) code in a single Emacs session, you may want to make the CC Mode
-style variables have buffer local values.  By default, all buffers
-share the same style variable settings; to make them buffer local, set
-c-style-variables-are-local-p to t in your .emacs file.  Note that you
-must do this *before* CC Mode is loaded.
-
-*** The new variable c-indentation-style holds the C style name
-of the current buffer.
-
-*** The variable c-block-comments-indent-p has been deleted, because
-it is no longer necessary.  C mode now handles all the supported styles
-of block comments, with no need to say which one you will use.
-
-*** There is a new indentation style "python", which specifies the C
-style that the Python developers like.
-
-*** There is a new c-cleanup-list option: brace-elseif-brace.
-This says to put ...} else if (...) {... on one line,
-just as brace-else-brace says to put ...} else {... on one line.
-
-** VC Changes [new]
-
-*** In vc-retrieve-snapshot (C-x v r), if you don't specify a snapshot
-name, it retrieves the *latest* versions of all files in the current
-directory and its subdirectories (aside from files already locked).
-
-This feature is useful if your RCS directory is a link to a common
-master directory, and you want to pick up changes made by other
-developers.
-
-You can do the same thing for an individual file by typing C-u C-x C-q
-RET in a buffer visiting that file.
-
-*** VC can now handle files under CVS that are being "watched" by
-other developers.  Such files are made read-only by CVS.  To get a
-writable copy, type C-x C-q in a buffer visiting such a file.  VC then
-calls "cvs edit", which notifies the other developers of it.
-
-*** vc-version-diff (C-u C-x v =) now suggests reasonable defaults for
-version numbers, based on the current state of the file.
-
-** Calendar changes.
-
-*** A new function, list-holidays, allows you list holidays or
-subclasses of holidays for ranges of years.  Related menu items allow
-you do this for the year of the selected date, or the
-following/previous years.
-
-*** There is now support for the Baha'i calendar system.  Use `pb' in
-the *Calendar* buffer to display the current Baha'i date.  The Baha'i
-calendar, or "Badi calendar" is a system of 19 months with 19 days
-each, and 4 intercalary days (5 during a Gregorian leap year).  The
-calendar begins May 23, 1844, with each of the months named after a
-supposed attribute of God.
-
-** ps-print changes
-
-There are some new user variables and subgroups for customizing the page
-layout.
-
-*** Headers & Footers (subgroup)
-
-Some printer systems print a header page and force the first page to
-be printed on the back of the header page when using duplex.  If your
-printer system has this behavior, set variable
-`ps-banner-page-when-duplexing' to t.
-
-If variable `ps-banner-page-when-duplexing' is non-nil, it prints a
-blank page as the very first printed page.  So, it behaves as if the
-very first character of buffer (or region) were a form feed ^L (\014).
-
-The variable `ps-spool-config' specifies who is responsible for
-setting duplex mode and page size.  Valid values are:
-
- lpr-switches    duplex and page size are configured by `ps-lpr-switches'.
-		 Don't forget to set `ps-lpr-switches' to select duplex
-		 printing for your printer.
-
- setpagedevice   duplex and page size are configured by ps-print using the
-		 setpagedevice PostScript operator.
-
- nil             duplex and page size are configured by ps-print *not* using
-		 the setpagedevice PostScript operator.
-
-The variable `ps-spool-tumble' specifies how the page images on
-opposite sides of a sheet are oriented with respect to each other.  If
-`ps-spool-tumble' is nil, ps-print produces output suitable for
-bindings on the left or right.  If `ps-spool-tumble' is non-nil,
-ps-print produces output suitable for bindings at the top or bottom.
-This variable takes effect only if `ps-spool-duplex' is non-nil.
-The default value is nil.
-
-The variable `ps-header-frame-alist' specifies a header frame
-properties alist.  Valid frame properties are:
-
-  fore-color	Specify the foreground frame color.
-		Value should be a float number between 0.0 (black
-		color) and 1.0 (white color), or a string which is a
-		color name, or a list of 3 float numbers which
-		correspond to the Red Green Blue color scale, each
-		float number between 0.0 (dark color) and 1.0 (bright
-		color).  The default is 0 ("black").
-
-  back-color	Specify the background frame color (similar to fore-color).
-		The default is 0.9 ("gray90").
-
-  shadow-color	Specify the shadow color (similar to fore-color).
-		The default is 0 ("black").
-
-  border-color	Specify the border color (similar to fore-color).
-		The default is 0 ("black").
-
-  border-width	Specify the border width.
-		The default is 0.4.
-
-Any other property is ignored.
-
-Don't change this alist directly; instead use Custom, or the
-`ps-value', `ps-get', `ps-put' and `ps-del' functions (see there for
-documentation).
-
-Ps-print can also print footers.  The footer variables are:
-`ps-print-footer', `ps-footer-offset', `ps-print-footer-frame',
-`ps-footer-font-family', `ps-footer-font-size', `ps-footer-line-pad',
-`ps-footer-lines', `ps-left-footer', `ps-right-footer' and
-`ps-footer-frame-alist'.  These variables are similar to those
-controlling headers.
-
-*** Color management (subgroup)
-
-If `ps-print-color-p' is non-nil, the buffer's text will be printed in
-color.
-
-*** Face Management (subgroup)
-
-If you need to print without worrying about face background colors,
-set the variable `ps-use-face-background' which specifies if face
-background should be used.  Valid values are:
-
- t		always use face background color.
- nil		never use face background color.
- (face...)	list of faces whose background color will be used.
-
-*** N-up printing (subgroup)
-
-The variable `ps-n-up-printing' specifies the number of pages per
-sheet of paper.
-
-The variable `ps-n-up-margin' specifies the margin in points (pt)
-between the sheet border and the n-up printing.
-
-If variable `ps-n-up-border-p' is non-nil, a border is drawn around
-each page.
-
-The variable `ps-n-up-filling' specifies how the page matrix is filled
-on each sheet of paper.  Following are the valid values for
-`ps-n-up-filling' with a filling example using a 3x4 page matrix:
-
-   `left-top'   1  2  3  4         `left-bottom'    9  10 11 12
-		5  6  7  8                          5  6  7  8
-		9  10 11 12                         1  2  3  4
-
-   `right-top'  4  3  2  1         `right-bottom'   12 11 10 9
-		8  7  6  5                          8  7  6  5
-		12 11 10 9                          4  3  2  1
-
-   `top-left'   1  4  7  10        `bottom-left'    3  6  9  12
-		2  5  8  11                         2  5  8  11
-		3  6  9  12                         1  4  7  10
-
-   `top-right'  10 7  4  1         `bottom-right'   12 9  6  3
-		11 8  5  2                          11 8  5  2
-		12 9  6  3                          10 7  4  1
-
-Any other value is treated as `left-top'.
-
-*** Zebra stripes (subgroup)
-
-The variable `ps-zebra-color' controls the zebra stripes grayscale or
-RGB color.
-
-The variable `ps-zebra-stripe-follow' specifies how zebra stripes
-continue on next page.  Visually, valid values are (the character `+'
-to the right of each column indicates that a line is printed):
-
-		   `nil'        `follow'        `full'        `full-follow'
-   Current Page --------     -----------     ---------     ----------------
-		1  XXXXX +   1  XXXXXXXX +   1  XXXXXX +   1  XXXXXXXXXXXXX +
-		2  XXXXX +   2  XXXXXXXX +   2  XXXXXX +   2  XXXXXXXXXXXXX +
-		3  XXXXX +   3  XXXXXXXX +   3  XXXXXX +   3  XXXXXXXXXXXXX +
-		4        +   4           +   4         +   4                +
-		5        +   5           +   5         +   5                +
-		6        +   6           +   6         +   6                +
-		7  XXXXX +   7  XXXXXXXX +   7  XXXXXX +   7  XXXXXXXXXXXXX +
-		8  XXXXX +   8  XXXXXXXX +   8  XXXXXX +   8  XXXXXXXXXXXXX +
-		9  XXXXX +   9  XXXXXXXX +   9  XXXXXX +   9  XXXXXXXXXXXXX +
-		10       +   10          +
-		11       +   11          +
-		--------     -----------     ---------     ----------------
-      Next Page --------     -----------     ---------     ----------------
-		12 XXXXX +   12          +   10 XXXXXX +   10               +
-		13 XXXXX +   13 XXXXXXXX +   11 XXXXXX +   11               +
-		14 XXXXX +   14 XXXXXXXX +   12 XXXXXX +   12               +
-		15       +   15 XXXXXXXX +   13        +   13 XXXXXXXXXXXXX +
-		16       +   16          +   14        +   14 XXXXXXXXXXXXX +
-		17       +   17          +   15        +   15 XXXXXXXXXXXXX +
-		18 XXXXX +   18          +   16 XXXXXX +   16               +
-		19 XXXXX +   19 XXXXXXXX +   17 XXXXXX +   17               +
-		20 XXXXX +   20 XXXXXXXX +   18 XXXXXX +   18               +
-		21       +   21 XXXXXXXX +
-		22       +   22          +
-		--------     -----------     ---------     ----------------
-
-Any other value is treated as `nil'.
-
-
-*** Printer management (subgroup)
-
-The variable `ps-printer-name-option' determines the option used by
-some utilities to indicate the printer name; it's used only when
-`ps-printer-name' is a non-empty string.  If you're using the lpr
-utility to print, for example, `ps-printer-name-option' should be set
-to "-P".
-
-The variable `ps-manual-feed' indicates if the printer requires manual
-paper feeding.  If it's nil, automatic feeding takes place.  If it's
-non-nil, manual feeding takes place.
-
-The variable `ps-end-with-control-d' specifies whether C-d (\x04)
-should be inserted at end of the generated PostScript.  Non-nil means
-do so.
-
-*** Page settings (subgroup)
-
-If variable `ps-warn-paper-type' is nil, it's *not* treated as an
-error if the PostScript printer doesn't have a paper with the size
-indicated by `ps-paper-type'; the default paper size will be used
-instead.  If `ps-warn-paper-type' is non-nil, an error is signaled if
-the PostScript printer doesn't support a paper with the size indicated
-by `ps-paper-type'.  This is used when `ps-spool-config' is set to
-`setpagedevice'.
-
-The variable `ps-print-upside-down' determines the orientation for
-printing pages: nil means `normal' printing, non-nil means
-`upside-down' printing (that is, the page is rotated by 180 degrees).
-
-The variable `ps-selected-pages' specifies which pages to print.  If
-it's nil, all pages are printed.  If it's a list, list elements may be
-integers specifying a single page to print, or cons cells (FROM . TO)
-specifying to print from page FROM to TO.  Invalid list elements, that
-is integers smaller than one, or elements whose FROM is greater than
-its TO, are ignored.
-
-The variable `ps-even-or-odd-pages' specifies how to print even/odd
-pages.  Valid values are:
-
-   nil		print all pages.
-
-   `even-page'	print only even pages.
-
-   `odd-page'	print only odd pages.
-
-   `even-sheet'	print only even sheets.
-		That is, if `ps-n-up-printing' is 1, it behaves like
-		`even-page', but for values greater than 1, it'll
-		print only the even sheet of paper.
-
-   `odd-sheet'	print only odd sheets.
-		That is, if `ps-n-up-printing' is 1, it behaves like
-		`odd-page'; but for values greater than 1, it'll print
-		only the odd sheet of paper.
-
-Any other value is treated as nil.
-
-If you set `ps-selected-pages' (see there for documentation), pages
-are filtered by `ps-selected-pages', and then by
-`ps-even-or-odd-pages'.  For example, if we have:
-
-   (setq ps-selected-pages '(1 4 (6 . 10) (12 . 16) 20))
-
-and we combine this with `ps-even-or-odd-pages' and
-`ps-n-up-printing', we get:
-
-`ps-n-up-printing' = 1:
-   `ps-even-or-odd-pages'	PAGES PRINTED
-	nil			1, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 20
-	even-page		4, 6, 8, 10, 12, 14, 16, 20
-	odd-page		1, 7, 9, 13, 15
-	even-sheet		4, 6, 8, 10, 12, 14, 16, 20
-	odd-sheet		1, 7, 9, 13, 15
-
-`ps-n-up-printing' = 2:
-   `ps-even-or-odd-pages'	PAGES PRINTED
-	nil			1/4, 6/7, 8/9, 10/12, 13/14, 15/16, 20
-	even-page		4/6, 8/10, 12/14, 16/20
-	odd-page		1/7, 9/13, 15
-	even-sheet		6/7, 10/12, 15/16
-	odd-sheet		1/4, 8/9, 13/14, 20
-
-*** Miscellany (subgroup)
-
-The variable `ps-error-handler-message' specifies where error handler
-messages should be sent.
-
-It is also possible to add a user-defined PostScript prologue code in
-front of all generated prologue code by setting the variable
-`ps-user-defined-prologue'.
-
-The variable `ps-line-number-font' specifies the font for line numbers.
-
-The variable `ps-line-number-font-size' specifies the font size in
-points for line numbers.
-
-The variable `ps-line-number-color' specifies the color for line
-numbers.  See `ps-zebra-color' for documentation.
-
-The variable `ps-line-number-step' specifies the interval in which
-line numbers are printed.  For example, if `ps-line-number-step' is set
-to 2, the printing will look like:
-
-   1 one line
-     one line
-   3 one line
-     one line
-   5 one line
-     one line
-     ...
-
-Valid values are:
-
-integer		an integer specifying the interval in which line numbers are
-		printed.  If it's smaller than or equal to zero, 1
-		is used.
-
-`zebra'		specifies that only the line number of the first line in a
-		zebra stripe is to be printed.
-
-Any other value is treated as `zebra'.
-
-The variable `ps-line-number-start' specifies the starting point in
-the interval given by `ps-line-number-step'.  For example, if
-`ps-line-number-step' is set to 3, and `ps-line-number-start' is set to
-3, the output will look like:
-
-     one line
-     one line
-   3 one line
-     one line
-     one line
-   6 one line
-     one line
-     one line
-   9 one line
-     one line
-     ...
-
-The variable `ps-postscript-code-directory' specifies the directory
-where the PostScript prologue file used by ps-print is found.
-
-The variable `ps-line-spacing' determines the line spacing in points,
-for ordinary text, when generating PostScript (similar to
-`ps-font-size').
-
-The variable `ps-paragraph-spacing' determines the paragraph spacing,
-in points, for ordinary text, when generating PostScript (similar to
-`ps-font-size').
-
-The variable `ps-paragraph-regexp' specifies the paragraph delimiter.
-
-The variable `ps-begin-cut-regexp' and `ps-end-cut-regexp' specify the
-start and end of a region to cut out when printing.
-
-** hideshow changes.
-
-*** now supports hiding of blocks of single line comments (like // for
-C++, ; for lisp).
-
-*** Support for java-mode added.
-
-*** When doing `hs-hide-all' it is now possible to also hide the comments
-in the file if `hs-hide-comments-when-hiding-all' is set.
-
-*** The new function `hs-hide-initial-comment' hides the comments at
-the beginning of the files.  Finally those huge RCS logs don't stay in your
-way!  This is run by default when entering the `hs-minor-mode'.
-
-*** Now uses overlays instead of `selective-display', so is more
-robust and a lot faster.
-
-*** A block beginning can span multiple lines.
-
-*** The new variable `hs-show-hidden-short-form' if t, directs hideshow
-to show only the beginning of a block when it is hidden.  See the
-documentation for more details.
-
-** Changes in Enriched mode.
-
-*** When you visit a file in enriched-mode, Emacs will make sure it is
-filled to the current fill-column.  This behavior is now independent
-of the size of the window.  When you save the file, the fill-column in
-use is stored as well, so that the whole buffer need not be refilled
-the next time unless the fill-column is different.
-
-*** use-hard-newlines is now a minor mode.  When it is enabled, Emacs
-distinguishes between hard and soft newlines, and treats hard newlines
-as paragraph boundaries.  Otherwise all newlines inserted are marked
-as soft, and paragraph boundaries are determined solely from the text.
-
-** Font Lock mode
-
-*** Custom support
-
-The variables font-lock-face-attributes, font-lock-display-type and
-font-lock-background-mode are now obsolete; the recommended way to specify
-the faces to use for Font Lock mode is with M-x customize-group on the new
-custom group font-lock-faces.  If you set font-lock-face-attributes in your
-~/.emacs file, Font Lock mode will respect its value.  However, you should
-consider converting from setting that variable to using M-x customize.
-
-You can still use X resources to specify Font Lock face appearances.
-
-*** Maximum decoration
-
-Fontification now uses the maximum level of decoration supported by
-default.  Previously, fontification used a mode-specific default level
-of decoration, which is typically the minimum level of decoration
-supported.  You can set font-lock-maximum-decoration to nil
-to get the old behavior.
-
-*** New support
-
-Support is now provided for Java, Objective-C, AWK and SIMULA modes.
-
-Note that Font Lock mode can be turned on without knowing exactly what modes
-support Font Lock mode, via the command global-font-lock-mode.
-
-*** Configurable support
-
-Support for C, C++, Objective-C and Java can be more easily configured for
-additional types and classes via the new variables c-font-lock-extra-types,
-c++-font-lock-extra-types, objc-font-lock-extra-types and, you guessed it,
-java-font-lock-extra-types.  These value of each of these variables should be a
-list of regexps matching the extra type names.  For example, the default value
-of c-font-lock-extra-types is ("\\sw+_t") which means fontification follows the
-convention that C type names end in _t.  This results in slower fontification.
-
-Of course, you can change the variables that specify fontification in whatever
-way you wish, typically by adding regexps.  However, these new variables make
-it easier to make specific and common changes for the fontification of types.
-
-*** Adding highlighting patterns to existing support
-
-You can use the new function font-lock-add-keywords to add your own
-highlighting patterns, such as for project-local or user-specific constructs,
-for any mode.
-
-For example, to highlight `FIXME:' words in C comments, put:
-
- (font-lock-add-keywords 'c-mode '(("\\<FIXME:" 0 font-lock-warning-face t)))
-
-in your ~/.emacs.
-
-*** New faces
-
-Font Lock now defines two new faces, font-lock-builtin-face and
-font-lock-warning-face.  These are intended to highlight builtin keywords,
-distinct from a language's normal keywords, and objects that should be brought
-to user attention, respectively.  Various modes now use these new faces.
-
-*** Changes to fast-lock support mode
-
-The fast-lock package, one of the two Font Lock support modes, can now process
-cache files silently.  You can use the new variable fast-lock-verbose, in the
-same way as font-lock-verbose, to control this feature.
-
-*** Changes to lazy-lock support mode
-
-The lazy-lock package, one of the two Font Lock support modes, can now fontify
-according to the true syntactic context relative to other lines.  You can use
-the new variable lazy-lock-defer-contextually to control this feature.  If
-non-nil, changes to the buffer will cause subsequent lines in the buffer to be
-refontified after lazy-lock-defer-time seconds of idle time.  If nil, then only
-the modified lines will be refontified; this is the same as the previous Lazy
-Lock mode behavior and the behavior of Font Lock mode.
-
-This feature is useful in modes where strings or comments can span lines.
-For example, if a string or comment terminating character is deleted, then if
-this feature is enabled subsequent lines in the buffer will be correctly
-refontified to reflect their new syntactic context.  Previously, only the line
-containing the deleted character would be refontified and you would have to use
-the command M-o M-o (font-lock-fontify-block) to refontify some lines.
-
-As a consequence of this new feature, two other variables have changed:
-
-Variable `lazy-lock-defer-driven' is renamed `lazy-lock-defer-on-scrolling'.
-Variable `lazy-lock-defer-time' can now only be a time, i.e., a number.
-Buffer modes for which on-the-fly deferral applies can be specified via the
-new variable `lazy-lock-defer-on-the-fly'.
-
-If you set these variables in your ~/.emacs, then you may have to change those
-settings.
-
-** Ada mode changes.
-
-*** There is now better support for using find-file.el with Ada mode.
-If you switch between spec and body, the cursor stays in the same
-procedure (modulo overloading).  If a spec has no body file yet, but
-you try to switch to its body file, Ada mode now generates procedure
-stubs.
-
-*** There are two new commands:
- - `ada-make-local'   : invokes gnatmake on the current buffer
- - `ada-check-syntax' : check syntax of current buffer.
-
-The user options `ada-compiler-make', `ada-make-options',
-`ada-language-version', `ada-compiler-syntax-check', and
-`ada-compile-options' are used within these commands.
-
-*** Ada mode can now work with Outline minor mode.  The outline level
-is calculated from the indenting, not from syntactic constructs.
-Outlining does not work if your code is not correctly indented.
-
-*** The new function `ada-gnat-style' converts the buffer to the style of
-formatting used in GNAT.  It places two blanks after a comment start,
-places one blank between a word end and an opening '(', and puts one
-space between a comma and the beginning of a word.
-
-** Scheme mode changes.
-
-*** Scheme mode indentation now uses many of the facilities of Lisp
-mode; therefore, the variables to customize it are the variables used
-for Lisp mode which have names starting with `lisp-'.  The variables
-with names starting with `scheme-' which used to do this no longer
-have any effect.
-
-If you want to use different indentation for Scheme and Lisp, this is
-still possible, but now you must do it by adding a hook to
-scheme-mode-hook, which could work by setting the `lisp-' indentation
-variables as buffer-local variables.
-
-*** DSSSL mode is a variant of Scheme mode, for editing DSSSL scripts.
-Use M-x dsssl-mode.
-
-** Changes to the emacsclient program
-
-*** If a socket can't be found, and environment variables LOGNAME or
-USER are set, emacsclient now looks for a socket based on the UID
-associated with the name.  That is an emacsclient running as root
-can connect to an Emacs server started by a non-root user.
-
-*** The emacsclient program now accepts an option --no-wait which tells
-it to return immediately without waiting for you to "finish" the
-buffer in Emacs.
-
-*** The new option --alternate-editor allows to specify an editor to
-use if Emacs is not running.  The environment variable
-ALTERNATE_EDITOR can be used for the same effect; the command line
-option takes precedence.
-
-** M-x eldoc-mode enables a minor mode in which the echo area
-constantly shows the parameter list for function being called at point
-(in Emacs Lisp and Lisp Interaction modes only).
-
-** C-x n d now runs the new command narrow-to-defun,
-which narrows the accessible parts of the buffer to just
-the current defun.
-
-** Emacs now handles the `--' argument in the standard way; all
-following arguments are treated as ordinary file names.
-
-** On MSDOS and Windows, the bookmark file is now called _emacs.bmk,
-and the saved desktop file is now called _emacs.desktop (truncated if
-necessary).
-
-** When you kill a buffer that visits a file,
-if there are any registers that save positions in the file,
-these register values no longer become completely useless.
-If you try to go to such a register with C-x j, then you are
-asked whether to visit the file again.  If you say yes,
-it visits the file and then goes to the same position.
-
-** When you visit a file that changes frequently outside Emacs--for
-example, a log of output from a process that continues to run--it may
-be useful for Emacs to revert the file without querying you whenever
-you visit the file afresh with C-x C-f.
-
-You can request this behavior for certain files by setting the
-variable revert-without-query to a list of regular expressions.  If a
-file's name matches any of these regular expressions, find-file and
-revert-buffer revert the buffer without asking for permission--but
-only if you have not edited the buffer text yourself.
-
-** set-default-font has been renamed to set-frame-font
-since it applies only to the current frame.
-
-** In TeX mode, you can use the variable tex-main-file to specify the
-file for tex-file to run TeX on.  (By default, tex-main-file is nil,
-and tex-file runs TeX on the current visited file.)
-
-This is useful when you are editing a document that consists of
-multiple files.  In each of the included files, you can set up a local
-variable list which specifies the top-level file of your document for
-tex-main-file.  Then tex-file will run TeX on the whole document
-instead of just the file you are editing.
-
-** RefTeX mode
-
-RefTeX mode is a new minor mode with special support for \label, \ref
-and \cite macros in LaTeX documents.  RefTeX distinguishes labels of
-different environments (equation, figure, ...) and has full support for
-multifile documents.  To use it, select a buffer with a LaTeX document and
-turn the mode on with M-x reftex-mode.  Here are the main user commands:
-
-C-c (    reftex-label
-   Creates a label semi-automatically.  RefTeX is context sensitive and
-   knows which kind of label is needed.
-
-C-c )    reftex-reference
-   Offers in a menu all labels in the document, along with context of the
-   label definition.  The selected label is referenced as \ref{LABEL}.
-
-C-c [    reftex-citation
-   Prompts for a regular expression and displays a list of matching BibTeX
-   database entries.  The selected entry is cited with a \cite{KEY} macro.
-
-C-c &    reftex-view-crossref
-   Views the cross reference of a \ref or \cite command near point.
-
-C-c =    reftex-toc
-   Shows a table of contents of the (multifile) document.  From there you
-   can quickly jump to every section.
-
-Under X, RefTeX installs a "Ref" menu in the menu bar, with additional
-commands.  Press `?' to get help when a prompt mentions this feature.
-Full documentation and customization examples are in the file
-reftex.el.  You can use the finder to view the file documentation:
-C-h p --> tex --> reftex.el
-
-** Changes in BibTeX mode.
-
-*** Info documentation is now available.
-
-*** Don't allow parentheses in string constants anymore.  This confused
-both the BibTeX program and Emacs BibTeX mode.
-
-*** Renamed variable bibtex-mode-user-optional-fields to
-bibtex-user-optional-fields.
-
-*** Removed variable bibtex-include-OPTannote
-(use bibtex-user-optional-fields instead).
-
-*** New interactive functions to copy and kill fields and complete
-entries to the BibTeX kill ring, from where they can be yanked back by
-appropriate functions.
-
-*** New interactive functions for repositioning and marking of
-entries. They are bound by default to C-M-l and C-M-h.
-
-*** New hook bibtex-clean-entry-hook. It is called after entry has
-been cleaned.
-
-*** New variable bibtex-field-delimiters, which replaces variables
-bibtex-field-{left|right}-delimiter.
-
-*** New variable bibtex-entry-delimiters to determine how entries
-shall be delimited.
-
-*** Allow preinitialization of fields. See documentation of
-bibtex-user-optional-fields, bibtex-entry-field-alist, and
-bibtex-include-OPTkey for details.
-
-*** Book and InBook entries require either an author or an editor
-field. This is now supported by bibtex.el. Alternative fields are
-prefixed with `ALT'.
-
-*** New variable bibtex-entry-format, which replaces variable
-bibtex-clean-entry-zap-empty-opts and allows specification of many
-formatting options performed on cleaning an entry (see variable
-documentation).
-
-*** Even more control on how automatic keys are generated. See
-documentation of bibtex-generate-autokey for details. Transcriptions
-for foreign languages other than German are now handled, too.
-
-*** New boolean user option bibtex-comma-after-last-field to decide if
-comma should be inserted at end of last field.
-
-*** New boolean user option bibtex-align-at-equal-sign to determine if
-alignment should be made at left side of field contents or at equal
-signs. New user options to control entry layout (e.g. indentation).
-
-*** New function bibtex-fill-entry to realign entries.
-
-*** New function bibtex-reformat to reformat region or buffer.
-
-*** New function bibtex-convert-alien to convert a BibTeX database
-from alien sources.
-
-*** New function bibtex-complete-key (similar to bibtex-complete-string)
-to complete prefix to a key defined in buffer. Mainly useful in
-crossref entries.
-
-*** New function bibtex-count-entries to count entries in buffer or
-region.
-
-*** Added support for imenu.
-
-*** The function `bibtex-validate' now checks current region instead
-of buffer if mark is active. Now it shows all errors of buffer in a
-`compilation mode' buffer. You can use the normal commands (e.g.
-`next-error') for compilation modes to jump to errors.
-
-*** New variable `bibtex-string-file-path' to determine where the files
-from `bibtex-string-files' are searched.
-
-** Iso Accents mode now supports Latin-3 as an alternative.
-
-** The command next-error now opens blocks hidden by hideshow.
-
-** The function using-unix-filesystems has been replaced by the
-functions add-untranslated-filesystem and remove-untranslated-filesystem.
-Each of these functions takes the name of a drive letter or directory
-as an argument.
-
-When a filesystem is added as untranslated, all files on it are read
-and written in binary mode (no cr/lf translation is performed).
-
-** browse-url changes
-
-*** New methods for: Grail (browse-url-generic), MMM (browse-url-mmm),
-Lynx in a separate xterm (browse-url-lynx-xterm) or in an Emacs window
-(browse-url-lynx-emacs), remote W3 (browse-url-w3-gnudoit), generic
-non-remote-controlled browsers (browse-url-generic) and associated
-customization variables.
-
-*** New commands `browse-url-of-region' and `browse-url'.
-
-*** URLs marked up with <URL:...> (RFC1738) work if broken across
-lines.  Browsing methods can be associated with URL regexps
-(e.g. mailto: URLs) via `browse-url-browser-function'.
-
-** Changes in Ediff
-
-*** Clicking Mouse-2 on a brief command description in Ediff control panel
-pops up the Info file for this command.
-
-*** There is now a variable, ediff-autostore-merges, which controls whether
-the result of a merge is saved in a file. By default, this is done only when
-merge is done from a session group (eg, when merging files in two different
-directories).
-
-*** Since Emacs 19.31 (this hasn't been announced before), Ediff can compare
-and merge groups of files residing in different directories, or revisions of
-files in the same directory.
-
-*** Since Emacs 19.31, Ediff can apply multi-file patches interactively.
-The patches must be in the context format or GNU unified format.  (The bug
-related to the GNU format has now been fixed.)
-
-** Changes in Viper
-
-*** The startup file is now .viper instead of .vip
-*** All variable/function names have been changed to start with viper-
-    instead of vip-.
-*** C-\ now simulates the meta-key in all Viper states.
-*** C-z in Insert state now escapes to Vi for the duration of the next
-Viper command. In Vi and Insert states, C-z behaves as before.
-*** C-c \ escapes to Vi for one command if Viper is in Insert or Emacs states.
-*** _ is no longer the meta-key in Vi state.
-*** The variable viper-insert-state-cursor-color can be used to change cursor
-color when Viper is in insert state.
-*** If search lands the cursor near the top or the bottom of the window,
-Viper pulls the window up or down to expose more context. The variable
-viper-adjust-window-after-search controls this behavior.
-
-** Etags changes.
-
-*** In C, C++, Objective C and Java, Etags tags global variables by
-default.  The resulting tags files are inflated by 30% on average.
-Use --no-globals to turn this feature off.  Etags can also tag
-variables which are members of structure-like constructs, but it does
-not by default.  Use --members to turn this feature on.
-
-*** C++ member functions are now recognized as tags.
-
-*** Java is tagged like C++.  In addition, "extends" and "implements"
-constructs are tagged.  Files are recognized by the extension .java.
-
-*** Etags can now handle programs written in Postscript.  Files are
-recognized by the extensions .ps and .pdb (Postscript with C syntax).
-In Postscript, tags are lines that start with a slash.
-
-*** Etags now handles Objective C and Objective C++ code.  The usual C and
-C++ tags are recognized in these languages; in addition, etags
-recognizes special Objective C syntax for classes, class categories,
-methods and protocols.
-
-*** Etags also handles Cobol.  Files are recognized by the extension
-.cobol.  The tagged lines are those containing a word that begins in
-column 8 and ends in a full stop, i.e. anything that could be a
-paragraph name.
-
-*** Regexps in Etags now support intervals, as in ed or grep.  The syntax of
-an interval is \{M,N\}, and it means to match the preceding expression
-at least M times and as many as N times.
-
-** The format for specifying a custom format for time-stamp to insert
-in files has changed slightly.
-
-With the new enhancements to the functionality of format-time-string,
-time-stamp-format will change to be eventually compatible with it.
-This conversion is being done in two steps to maintain compatibility
-with old time-stamp-format values.
-
-In the new scheme, alternate case is signified by the number-sign
-(`#') modifier, rather than changing the case of the format character.
-This feature is as yet incompletely implemented for compatibility
-reasons.
-
-In the old time-stamp-format, all numeric fields defaulted to their
-natural width.  (With format-time-string, each format has a
-fixed-width default.)  In this version, you can specify the colon
-(`:') modifier to a numeric conversion to mean "give me the historical
-time-stamp-format width default."  Do not use colon if you are
-specifying an explicit width, as in "%02d".
-
-Numbers are no longer truncated to the requested width, except in the
-case of "%02y", which continues to give a two-digit year.  Digit
-truncation probably wasn't being used for anything else anyway.
-
-The new formats will work with old versions of Emacs.  New formats are
-being recommended now to allow time-stamp-format to change in the
-future to be compatible with format-time-string.  The new forms being
-recommended now will continue to work then.
-
-See the documentation string for the variable time-stamp-format for
-details.
-
-** There are some additional major modes:
-
-dcl-mode, for editing VMS DCL files.
-m4-mode, for editing files of m4 input.
-meta-mode, for editing MetaFont and MetaPost source files.
-
-** In Shell mode, the command shell-copy-environment-variable lets you
-copy the value of a specified environment variable from the subshell
-into Emacs.
-
-** New Lisp packages include:
-
-*** battery.el displays battery status for laptops.
-
-*** M-x bruce (named after Lenny Bruce) is a program that might
-be used for adding some indecent words to your email.
-
-*** M-x crisp-mode enables an emulation for the CRiSP editor.
-
-*** M-x dirtrack arranges for better tracking of directory changes
-in shell buffers.
-
-*** The new library elint.el provides for linting of Emacs Lisp code.
-See the documentation for `elint-initialize', `elint-current-buffer'
-and `elint-defun'.
-
-*** M-x expand-add-abbrevs defines a special kind of abbrev which is
-meant for programming constructs.  These abbrevs expand like ordinary
-ones, when you type SPC, but only at the end of a line and not within
-strings or comments.
-
-These abbrevs can act as templates: you can define places within an
-abbrev for insertion of additional text.  Once you expand the abbrev,
-you can then use C-x a p and C-x a n to move back and forth to these
-insertion points.  Thus you can conveniently insert additional text
-at these points.
-
-*** filecache.el remembers the location of files so that you
-can visit them by short forms of their names.
-
-*** find-func.el lets you find the definition of the user-loaded
-Emacs Lisp function at point.
-
-*** M-x handwrite converts text to a "handwritten" picture.
-
-*** M-x iswitchb-buffer is a command for switching to a buffer, much like
-switch-buffer, but it reads the argument in a more helpful way.
-
-*** M-x landmark implements a neural network for landmark learning.
-
-*** M-x locate provides a convenient interface to the `locate' program.
-
-*** M4 mode is a new mode for editing files of m4 input.
-
-*** mantemp.el creates C++ manual template instantiations
-from the GCC error messages which indicate which instantiations are needed.
-
-*** mouse-copy.el provides a one-click copy and move feature.
-You can drag a region with M-mouse-1, and it is automatically
-inserted at point.  M-Shift-mouse-1 deletes the text from its
-original place after inserting the copy.
-
-*** mouse-drag.el lets you do scrolling by dragging Mouse-2
-on the buffer.
-
-You click the mouse and move; that distance either translates into the
-velocity to scroll (with mouse-drag-throw) or the distance to scroll
-(with mouse-drag-drag).  Horizontal scrolling is enabled when needed.
-
-Enable mouse-drag with:
-    (global-set-key [down-mouse-2] 'mouse-drag-throw)
--or-
-    (global-set-key [down-mouse-2] 'mouse-drag-drag)
-
-*** mspools.el is useful for determining which mail folders have
-mail waiting to be read in them.  It works with procmail.
-
-*** Octave mode is a major mode for editing files of input for Octave.
-It comes with a facility for communicating with an Octave subprocess.
-
-*** ogonek
-
-The ogonek package provides functions for changing the coding of
-Polish diacritic characters in buffers.  Codings known from various
-platforms are supported such as ISO8859-2, Mazovia, IBM Latin2, and
-TeX.  For example, you can change the coding from Mazovia to
-ISO8859-2.  Another example is a change of coding from ISO8859-2 to
-prefix notation (in which `/a' stands for the aogonek character, for
-instance) and vice versa.
-
-To use this package load it using
-    M-x load-library [enter] ogonek
-Then, you may get an explanation by calling one of
-    M-x ogonek-jak        -- in Polish
-    M-x ogonek-how        -- in English
-The info specifies the commands and variables provided as well as the
-ways of customization in `.emacs'.
-
-*** Interface to ph.
-
-Emacs provides a client interface to CCSO Nameservers (ph/qi)
-
-The CCSO nameserver is used in many universities to provide directory
-services about people.  ph.el provides a convenient Emacs interface to
-these servers.
-
-*** uce.el is useful for replying to unsolicited commercial email.
-
-*** vcursor.el implements a "virtual cursor" feature.
-You can move the virtual cursor with special commands
-while the real cursor does not move.
-
-*** webjump.el is a "hot list" package which you can set up
-for visiting your favorite web sites.
-
-*** M-x winner-mode is a minor mode which saves window configurations,
-so you can move back to other configurations that you have recently used.
-
-** movemail change
-
-Movemail no longer needs to be installed setuid root in order for POP
-mail retrieval to function properly.  This is because it no longer
-supports the RPOP (reserved-port POP) protocol; instead, it uses the
-user's POP password to authenticate to the mail server.
-
-This change was made earlier, but not reported in NEWS before.
-
-* Emacs 20.1 changes for MS-DOS and MS-Windows.
-
-** Changes in handling MS-DOS/MS-Windows text files.
-
-Emacs handles three different conventions for representing
-end-of-line: CRLF for MSDOS, LF for Unix and GNU, and CR (used on the
-Macintosh).  Emacs determines which convention is used in a specific
-file based on the contents of that file (except for certain special
-file names), and when it saves the file, it uses the same convention.
-
-To save the file and change the end-of-line convention, you can use
-C-x RET f (set-buffer-file-coding-system) to specify a different
-coding system for the buffer.  Then, when you save the file, the newly
-specified coding system will take effect.  For example, to save with
-LF, specify undecided-unix (or some other ...-unix coding system); to
-save with CRLF, specify undecided-dos.
-
-* Lisp Changes in Emacs 20.1
-
-** Byte-compiled files made with Emacs 20 will, in general, work in
-Emacs 19 as well, as long as the source code runs in Emacs 19.  And
-vice versa: byte-compiled files made with Emacs 19 should also run in
-Emacs 20, as long as the program itself works in Emacs 20.
-
-** Windows-specific functions and variables have been renamed
-to start with w32- instead of win32-.
-
-In hacker language, calling something a "win" is a form of praise.  We
-don't want to praise a non-free Microsoft system, so we don't call it
-"win".
-
-** Basic Lisp changes
-
-*** A symbol whose name starts with a colon now automatically
-evaluates to itself.  Therefore such a symbol can be used as a constant.
-
-*** The defined purpose of `defconst' has been changed.  It should now
-be used only for values that should not be changed whether by a program
-or by the user.
-
-The actual behavior of defconst has not been changed.
-
-*** There are new macros `when' and `unless'
-
-(when CONDITION BODY...)  is short for  (if CONDITION (progn BODY...))
-(unless CONDITION BODY...)  is short for  (if CONDITION nil BODY...)
-
-*** Emacs now defines functions caar, cadr, cdar and cddr with their
-usual Lisp meanings.  For example, caar returns the car of the car of
-its argument.
-
-*** equal, when comparing strings, now ignores their text properties.
-
-*** The new function `functionp' tests whether an object is a function.
-
-*** arrayp now returns t for char-tables and bool-vectors.
-
-*** Certain primitives which use characters (as integers) now get an
-error if the integer is not a valid character code.  These primitives
-include insert-char, char-to-string, and the %c construct in the
-`format' function.
-
-*** The `require' function now insists on adding a suffix, either .el
-or .elc, to the file name.  Thus, (require 'foo) will not use a file
-whose name is just foo.  It insists on foo.el or foo.elc.
-
-*** The `autoload' function, when the file name does not contain
-either a directory name or the suffix .el or .elc, insists on
-adding one of these suffixes.
-
-*** string-to-number now takes an optional second argument BASE
-which specifies the base to use when converting an integer.
-If BASE is omitted, base 10 is used.
-
-We have not implemented other radices for floating point numbers,
-because that would be much more work and does not seem useful.
-
-*** substring now handles vectors as well as strings.
-
-*** The Common Lisp function eql is no longer defined normally.
-You must load the `cl' library to define it.
-
-*** The new macro `with-current-buffer' lets you evaluate an expression
-conveniently with a different current buffer.  It looks like this:
-
-  (with-current-buffer BUFFER BODY-FORMS...)
-
-BUFFER is the expression that says which buffer to use.
-BODY-FORMS say what to do in that buffer.
-
-*** The new primitive `save-current-buffer' saves and restores the
-choice of current buffer, like `save-excursion', but without saving or
-restoring the value of point or the mark.  `with-current-buffer'
-works using `save-current-buffer'.
-
-*** The new macro `with-temp-file' lets you do some work in a new buffer and
-write the output to a specified file.  Like `progn', it returns the value
-of the last form.
-
-*** The new macro `with-temp-buffer' lets you do some work in a new buffer,
-which is discarded after use.  Like `progn', it returns the value of the
-last form.  If you wish to return the buffer contents, use (buffer-string)
-as the last form.
-
-*** The new function split-string takes a string, splits it at certain
-characters, and returns a list of the substrings in between the
-matches.
-
-For example, (split-string "foo bar lose" " +") returns ("foo" "bar" "lose").
-
-*** The new macro with-output-to-string executes some Lisp expressions
-with standard-output set up so that all output feeds into a string.
-Then it returns that string.
-
-For example, if the current buffer name is `foo',
-
-(with-output-to-string
-  (princ "The buffer is ")
-  (princ (buffer-name)))
-
-returns "The buffer is foo".
-
-** Non-ASCII characters are now supported, if enable-multibyte-characters
-is non-nil.
-
-These characters have character codes above 256.  When inserted in the
-buffer or stored in a string, they are represented as multibyte
-characters that occupy several buffer positions each.
-
-*** When enable-multibyte-characters is non-nil, a single character in
-a buffer or string can be two or more bytes (as many as four).
-
-Buffers and strings are still made up of unibyte elements;
-character positions and string indices are always measured in bytes.
-Therefore, moving forward one character can increase the buffer
-position by 2, 3 or 4.  The function forward-char moves by whole
-characters, and therefore is no longer equivalent to
-  (lambda (n) (goto-char (+ (point) n))).
-
-ASCII characters (codes 0 through 127) are still single bytes, always.
-Sequences of byte values 128 through 255 are used to represent
-non-ASCII characters.  These sequences are called "multibyte
-characters".
-
-The first byte of a multibyte character is always in the range 128
-through 159 (octal 0200 through 0237).  These values are called
-"leading codes".  The second and subsequent bytes are always in the
-range 160 through 255 (octal 0240 through 0377).  The first byte, the
-leading code, determines how many bytes long the sequence is.
-
-*** The function forward-char moves over characters, and therefore
-(forward-char 1) may increase point by more than 1 if it moves over a
-multibyte character.  Likewise, delete-char always deletes a
-character, which may be more than one buffer position.
-
-This means that some Lisp programs, which assume that a character is
-always one buffer position, need to be changed.
-
-However, all ASCII characters are always one buffer position.
-
-*** The regexp [\200-\377] no longer matches all non-ASCII characters,
-because when enable-multibyte-characters is non-nil, these characters
-have codes that are not in the range octal 200 to octal 377.  However,
-the regexp [^\000-\177] does match all non-ASCII characters,
-guaranteed.
-
-*** The function char-boundary-p returns non-nil if position POS is
-between two characters in the buffer (not in the middle of a
-character).
-
-When the value is non-nil, it says what kind of character follows POS:
-
- 0 if POS is at an ASCII character or at the end of range,
- 1 if POS is before a 2-byte length multi-byte form,
- 2 if POS is at a head of 3-byte length multi-byte form,
- 3 if POS is at a head of 4-byte length multi-byte form,
- 4 if POS is at a head of multi-byte form of a composite character.
-
-*** The function char-bytes returns how many bytes the character CHAR uses.
-
-*** Strings can contain multibyte characters.  The function
-`length' returns the string length counting bytes, which may be
-more than the number of characters.
-
-You can include a multibyte character in a string constant by writing
-it literally.  You can also represent it with a hex escape,
-\xNNNNNNN..., using as many digits as necessary.  Any character which
-is not a valid hex digit terminates this construct.  If you want to
-follow it with a character that is a hex digit, write backslash and
-newline in between; that will terminate the hex escape.
-
-*** The function concat-chars takes arguments which are characters
-and returns a string containing those characters.
-
-*** The function sref access a multibyte character in a string.
-(sref STRING INDX) returns the character in STRING at INDEX.  INDEX
-counts from zero.  If INDEX is at a position in the middle of a
-character, sref signals an error.
-
-*** The function chars-in-string returns the number of characters
-in a string.  This is less than the length of the string, if the
-string contains multibyte characters (the length counts bytes).
-
-*** The function chars-in-region returns the number of characters
-in a region from BEG to END.  This is less than (- END BEG) if the
-region contains multibyte characters (the length counts bytes).
-
-*** The function string-to-list converts a string to a list of
-the characters in it.  string-to-vector converts a string
-to a vector of the characters in it.
-
-*** The function store-substring alters part of the contents
-of a string.  You call it as follows:
-
-   (store-substring STRING IDX OBJ)
-
-This says to alter STRING, by storing OBJ starting at index IDX in
-STRING.  OBJ may be either a character or a (smaller) string.
-This function really does alter the contents of STRING.
-Since it is impossible to change the length of an existing string,
-it is an error if OBJ doesn't fit within STRING's actual length.
-
-*** char-width returns the width (in columns) of the character CHAR,
-if it were displayed in the current buffer and the selected window.
-
-*** string-width returns the width (in columns) of the text in STRING,
-if it were displayed in the current buffer and the selected window.
-
-*** truncate-string-to-width shortens a string, if necessary,
-to fit within a certain number of columns.  (Of course, it does
-not alter the string that you give it; it returns a new string
-which contains all or just part of the existing string.)
-
-(truncate-string-to-width STR END-COLUMN &optional START-COLUMN PADDING)
-
-This returns the part of STR up to column END-COLUMN.
-
-The optional argument START-COLUMN specifies the starting column.
-If this is non-nil, then the first START-COLUMN columns of the string
-are not included in the resulting value.
-
-The optional argument PADDING, if non-nil, is a padding character to be added
-at the beginning and end the resulting string, to extend it to exactly
-WIDTH columns.  If PADDING is nil, that means do not pad; then, if STRING
-is narrower than WIDTH, the value is equal to STRING.
-
-If PADDING and START-COLUMN are both non-nil, and if there is no clean
-place in STRING that corresponds to START-COLUMN (because one
-character extends across that column), then the padding character
-PADDING is added one or more times at the beginning of the result
-string, so that its columns line up as if it really did start at
-column START-COLUMN.
-
-*** When the functions in the list after-change-functions are called,
-the third argument is the number of bytes in the pre-change text, not
-necessarily the number of characters.  It is, in effect, the
-difference in buffer position between the beginning and the end of the
-changed text, before the change.
-
-*** The characters Emacs uses are classified in various character
-sets, each of which has a name which is a symbol.  In general there is
-one character set for each script, not for each language.
-
-**** The function charsetp tests whether an object is a character set name.
-
-**** The variable charset-list holds a list of character set names.
-
-**** char-charset, given a character code, returns the name of the character
-set that the character belongs to.  (The value is a symbol.)
-
-**** split-char, given a character code, returns a list containing the
-name of the character set, followed by one or two byte-values
-which identify the character within that character set.
-
-**** make-char, given a character set name and one or two subsequent
-byte-values, constructs a character code.  This is roughly the
-opposite of split-char.
-
-**** find-charset-region returns a list of the character sets
-of all the characters between BEG and END.
-
-**** find-charset-string returns a list of the character sets
-of all the characters in a string.
-
-*** Here are the Lisp facilities for working with coding systems
-and specifying coding systems.
-
-**** The function coding-system-list returns a list of all coding
-system names (symbols).  With optional argument t, it returns a list
-of all distinct base coding systems, not including variants.
-(Variant coding systems are those like latin-1-dos, latin-1-unix
-and latin-1-mac which specify the end-of-line conversion as well
-as what to do about code conversion.)
-
-**** coding-system-p tests a symbol to see if it is a coding system
-name.  It returns t if so, nil if not.
-
-**** file-coding-system-alist specifies which coding systems to use
-for certain file names.  It works like network-coding-system-alist,
-except that the PATTERN is matched against the file name.
-
-Each element has the format (PATTERN . VAL), where PATTERN determines
-which file names the element applies to.  PATTERN should be a regexp
-to match against a file name.
-
-VAL is a coding system, a cons cell containing two coding systems, or
-a function symbol.  If VAL is a coding system, it is used for both
-decoding what received from the network stream and encoding what sent
-to the network stream.  If VAL is a cons cell containing two coding
-systems, the car specifies the coding system for decoding, and the cdr
-specifies the coding system for encoding.
-
-If VAL is a function symbol, the function must return a coding system
-or a cons cell containing two coding systems, which is used as above.
-
-**** The variable network-coding-system-alist specifies
-the coding system to use for network sockets.
-
-Each element has the format (PATTERN . VAL), where PATTERN determines
-which network sockets the element applies to.  PATTERN should be
-either a port number or a regular expression matching some network
-service names.
-
-VAL is a coding system, a cons cell containing two coding systems, or
-a function symbol.  If VAL is a coding system, it is used for both
-decoding what received from the network stream and encoding what sent
-to the network stream.  If VAL is a cons cell containing two coding
-systems, the car specifies the coding system for decoding, and the cdr
-specifies the coding system for encoding.
-
-If VAL is a function symbol, the function must return a coding system
-or a cons cell containing two coding systems, which is used as above.
-
-**** process-coding-system-alist specifies which coding systems to use
-for certain subprocess.  It works like network-coding-system-alist,
-except that the PATTERN is matched against the program name used to
-start the subprocess.
-
-**** The variable default-process-coding-system specifies the coding
-systems to use for subprocess (and net connection) input and output,
-when nothing else specifies what to do.  The value is a cons cell
-(OUTPUT-CODING . INPUT-CODING).  OUTPUT-CODING applies to output
-to the subprocess, and INPUT-CODING applies to input from it.
-
-**** The variable coding-system-for-write, if non-nil, specifies the
-coding system to use for writing a file, or for output to a synchronous
-subprocess.
-
-It also applies to any asynchronous subprocess or network connection,
-but in a different way: the value of coding-system-for-write when you
-start the subprocess or connection affects that subprocess or
-connection permanently or until overridden.
-
-The variable coding-system-for-write takes precedence over
-file-coding-system-alist, process-coding-system-alist and
-network-coding-system-alist, and all other methods of specifying a
-coding system for output.  But most of the time this variable is nil.
-It exists so that Lisp programs can bind it to a specific coding
-system for one operation at a time.
-
-**** coding-system-for-read applies similarly to input from
-files, subprocesses or network connections.
-
-**** The function process-coding-system tells you what
-coding systems(s) an existing subprocess is using.
-The value is a cons cell,
- (DECODING-CODING-SYSTEM . ENCODING-CODING-SYSTEM)
-where DECODING-CODING-SYSTEM is used for decoding output from
-the subprocess, and ENCODING-CODING-SYSTEM is used for encoding
-input to the subprocess.
-
-**** The function set-process-coding-system can be used to
-change the coding systems in use for an existing subprocess.
-
-** Emacs has a new facility to help users manage the many
-customization options.  To make a Lisp program work with this facility,
-you need to use the new macros defgroup and defcustom.
-
-You use defcustom instead of defvar, for defining a user option
-variable.  The difference is that you specify two additional pieces of
-information (usually): the "type" which says what values are
-legitimate, and the "group" which specifies the hierarchy for
-customization.
-
-Thus, instead of writing
-
-    (defvar foo-blurgoze nil
-      "*Non-nil means that foo will act very blurgozely.")
-
-you would now write this:
-
-    (defcustom foo-blurgoze nil
-      "*Non-nil means that foo will act very blurgozely."
-      :type 'boolean
-      :group foo)
-
-The type `boolean' means that this variable has only
-two meaningful states: nil and non-nil.  Other type values
-describe other possibilities; see the manual for Custom
-for a description of them.
-
-The "group" argument is used to specify a group which the option
-should belong to.  You define a new group like this:
-
-    (defgroup ispell nil
-      "Spell checking using Ispell."
-      :group 'processes)
-
-The "group" argument in defgroup specifies the parent group.  The root
-group is called `emacs'; it should not contain any variables itself,
-but only other groups.  The immediate subgroups of `emacs' correspond
-to the keywords used by C-h p.  Under these subgroups come
-second-level subgroups that belong to individual packages.
-
-Each Emacs package should have its own set of groups.  A simple
-package should have just one group; a more complex package should
-have a hierarchy of its own groups.  The sole or root group of a
-package should be a subgroup of one or more of the "keyword"
-first-level subgroups.
-
-** New `widget' library for inserting UI components in buffers.
-
-This library, used by the new custom library, is documented in a
-separate manual that accompanies Emacs.
-
-** easy-mmode
-
-The easy-mmode package provides macros and functions that make
-developing minor modes easier.  Roughly, the programmer has to code
-only the functionality of the minor mode.  All the rest--toggles,
-predicate, and documentation--can be done in one call to the macro
-`easy-mmode-define-minor-mode' (see the documentation).  See also
-`easy-mmode-define-keymap'.
-
-** Text property changes
-
-*** The `intangible' property now works on overlays as well as on a
-text property.
-
-*** The new functions next-char-property-change and
-previous-char-property-change scan through the buffer looking for a
-place where either a text property or an overlay might change.  The
-functions take two arguments, POSITION and LIMIT.  POSITION is the
-starting position for the scan.  LIMIT says where to stop the scan.
-
-If no property change is found before LIMIT, the value is LIMIT.  If
-LIMIT is nil, scan goes to the beginning or end of the accessible part
-of the buffer.  If no property change is found, the value is the
-position of the beginning or end of the buffer.
-
-*** In the `local-map' text property or overlay property, the property
-value can now be a symbol whose function definition is a keymap.  This
-is an alternative to using the keymap itself.
-
-** Changes in invisibility features
-
-*** Isearch can now temporarily show parts of the buffer which are
-hidden by an overlay with a invisible property, when the search match
-is inside that portion of the buffer.  To enable this the overlay
-should have a isearch-open-invisible property which is a function that
-would be called having the overlay as an argument, the function should
-make the overlay visible.
-
-During incremental search the overlays are shown by modifying the
-invisible and intangible properties, if beside this more actions are
-needed the overlay should have a isearch-open-invisible-temporary
-which is a function. The function is called with 2 arguments: one is
-the overlay and the second is nil when it should show the overlay and
-t when it should hide it.
-
-*** add-to-invisibility-spec, remove-from-invisibility-spec
-
-Modes that use overlays to hide portions of a buffer should set the
-invisible property of the overlay to the mode's name (or another symbol)
-and modify the `buffer-invisibility-spec' to include that symbol.
-Use  `add-to-invisibility-spec' and `remove-from-invisibility-spec' to
-manipulate the `buffer-invisibility-spec'.
-Here is an example of how to do this:
-
- ;; If we want to display an ellipsis:
- (add-to-invisibility-spec '(my-symbol . t))
- ;; If you don't want ellipsis:
- (add-to-invisibility-spec 'my-symbol)
-
-  ...
- (overlay-put  (make-overlay beginning end)  'invisible 'my-symbol)
-
- ...
- ;; When done with the overlays:
- (remove-from-invisibility-spec '(my-symbol . t))
- ;; Or respectively:
- (remove-from-invisibility-spec 'my-symbol)
-
-** Changes in syntax parsing.
-
-*** The syntax-directed buffer-scan functions (such as
-`parse-partial-sexp', `forward-word' and similar functions) can now
-obey syntax information specified by text properties, if the variable
-`parse-sexp-lookup-properties' is non-nil.
-
-If the value of `parse-sexp-lookup-properties' is nil, the behavior
-is as before: the syntax-table of the current buffer is always
-used to determine the syntax of the character at the position.
-
-When `parse-sexp-lookup-properties' is non-nil, the syntax of a
-character in the buffer is calculated thus:
-
-	a) if the `syntax-table' text-property of that character
-	   is a cons, this cons becomes the syntax-type;
-
-	   Valid values of `syntax-table' text-property are: nil, a valid
-	   syntax-table, and a valid syntax-table element, i.e.,
-	   a cons cell of the form (SYNTAX-CODE . MATCHING-CHAR).
-
-	b) if the character's `syntax-table' text-property
-	   is a syntax table, this syntax table is used
-	   (instead of the syntax-table of the current buffer) to
-	   determine the syntax type of the character.
-
-	c) otherwise the syntax-type is determined by the syntax-table
-	   of the current buffer.
-
-*** The meaning of \s in regular expressions is also affected by the
-value of `parse-sexp-lookup-properties'.  The details are the same as
-for the syntax-directed buffer-scan functions.
-
-*** There are two new syntax-codes, `!' and `|' (numeric values 14
-and 15).  A character with a code `!' starts a comment which is ended
-only by another character with the same code (unless quoted).  A
-character with a code `|' starts a string which is ended only by
-another character with the same code (unless quoted).
-
-These codes are mainly meant for use as values of the `syntax-table'
-text property.
-
-*** The function `parse-partial-sexp' has new semantics for the sixth
-arg COMMENTSTOP.  If it is `syntax-table', parse stops after the start
-of a comment or a string, or after end of a comment or a string.
-
-*** The state-list which the return value from `parse-partial-sexp'
-(and can also be used as an argument) now has an optional ninth
-element: the character address of the start of last comment or string;
-nil if none.  The fourth and eighth elements have special values if the
-string/comment is started by a "!"  or "|" syntax-code.
-
-*** Since new features of `parse-partial-sexp' allow a complete
-syntactic parsing, `font-lock' no longer supports
-`font-lock-comment-start-regexp'.
-
-** Changes in face features
-
-*** The face functions are now unconditionally defined in Emacs, even
-if it does not support displaying on a device that supports faces.
-
-*** The function face-documentation returns the documentation string
-of a face (or nil if it doesn't have one).
-
-*** The function face-bold-p returns t if a face should be bold.
-set-face-bold-p sets that flag.
-
-*** The function face-italic-p returns t if a face should be italic.
-set-face-italic-p sets that flag.
-
-*** You can now specify foreground and background colors for text
-by adding elements of the form (foreground-color . COLOR-NAME)
-and (background-color . COLOR-NAME) to the list of faces in
-the `face' property (either the character's text property or an
-overlay property).
-
-This means that you no longer need to create named faces to use
-arbitrary colors in a Lisp package.
-
-** Changes in file-handling functions
-
-*** File-access primitive functions no longer discard an extra redundant
-directory name from the beginning of the file name.  In other words,
-they no longer do anything special with // or /~.  That conversion
-is now done only in substitute-in-file-name.
-
-This makes it possible for a Lisp program to open a file whose name
-begins with ~.
-
-*** If copy-file is unable to set the date of the output file,
-it now signals an error with the condition file-date-error.
-
-*** The inode number returned by file-attributes may be an integer (if
-the number fits in a Lisp integer) or a list of integers.
-
-*** insert-file-contents can now read from a special file,
-as long as the arguments VISIT and REPLACE are nil.
-
-*** The RAWFILE arg to find-file-noselect, if non-nil, now suppresses
-character code conversion as well as other things.
-
-Meanwhile, this feature does work with remote file names
-(formerly it did not).
-
-*** Lisp packages which create temporary files should use the TMPDIR
-environment variable to decide which directory to put them in.
-
-*** interpreter-mode-alist elements now specify regexps
-instead of constant strings.
-
-*** expand-file-name no longer treats `//' or `/~' specially.  It used
-to delete all the text of a file name up through the first slash of
-any `//' or `/~' sequence.  Now it passes them straight through.
-
-substitute-in-file-name continues to treat those sequences specially,
-in the same way as before.
-
-*** The variable `format-alist' is more general now.
-The FROM-FN and TO-FN in a format definition can now be strings
-which specify shell commands to use as filters to perform conversion.
-
-*** The new function access-file tries to open a file, and signals an
-error if that fails.  If the open succeeds, access-file does nothing
-else, and returns nil.
-
-*** The function insert-directory now signals an error if the specified
-directory cannot be listed.
-
-** Changes in minibuffer input
-
-*** The functions read-buffer, read-variable, read-command, read-string
-read-file-name, read-from-minibuffer and completing-read now take an
-additional argument which specifies the default value.  If this
-argument is non-nil, it should be a string; that string is used in two
-ways:
-
-  It is returned if the user enters empty input.
-  It is available through the history command M-n.
-
-*** The functions read-string, read-from-minibuffer,
-read-no-blanks-input and completing-read now take an additional
-argument INHERIT-INPUT-METHOD.  If this is non-nil, then the
-minibuffer inherits the current input method and the setting of
-enable-multibyte-characters from the previously current buffer.
-
-In an interactive spec, you can use M instead of s to read an
-argument in this way.
-
-*** All minibuffer input functions discard text properties
-from the text you enter in the minibuffer, unless the variable
-minibuffer-allow-text-properties is non-nil.
-
-** Echo area features
-
-*** Clearing the echo area now runs the normal hook
-echo-area-clear-hook.  Note that the echo area can be used while the
-minibuffer is active; in that case, the minibuffer is still active
-after the echo area is cleared.
-
-*** The function current-message returns the message currently displayed
-in the echo area, or nil if there is none.
-
-** Keyboard input features
-
-*** tty-erase-char is a new variable that reports which character was
-set up as the terminal's erase character when time Emacs was started.
-
-*** num-nonmacro-input-events is the total number of input events
-received so far from the terminal.  It does not count those generated
-by keyboard macros.
-
-** Frame-related changes
-
-*** make-frame runs the normal hook before-make-frame-hook just before
-creating a frame, and just after creating a frame it runs the abnormal
-hook after-make-frame-functions with the new frame as arg.
-
-*** The new hook window-configuration-change-hook is now run every time
-the window configuration has changed.  The frame whose configuration
-has changed is the selected frame when the hook is run.
-
-*** Each frame now independently records the order for recently
-selected buffers, in its buffer-list frame parameter, so that the
-value of other-buffer is now based on the buffers recently displayed
-in the selected frame.
-
-*** The value of the frame parameter vertical-scroll-bars
-is now `left', `right' or nil.  A non-nil value specifies
-which side of the window to put the scroll bars on.
-
-** X Windows features
-
-*** You can examine X resources for other applications by binding
-x-resource-class around a call to x-get-resource.  The usual value of
-x-resource-class is "Emacs", which is the correct value for Emacs.
-
-*** In menus, checkboxes and radio buttons now actually work.
-The menu displays the current status of the box or button.
-
-*** The function x-list-fonts now takes an optional fourth argument
-MAXIMUM which sets a limit on how many matching fonts to return.
-A smaller value of MAXIMUM makes the function faster.
-
-If the only question is whether *any* font matches the pattern,
-it is good to supply 1 for this argument.
-
-** Subprocess features
-
-*** A reminder: it is no longer necessary for subprocess filter
-functions and sentinels to do save-match-data, because Emacs does this
-automatically.
-
-*** The new function shell-command-to-string executes a shell command
-and returns the output from the command as a string.
-
-*** The new function process-contact returns t for a child process,
-and (HOSTNAME SERVICE) for a net connection.
-
-** An error in running pre-command-hook or post-command-hook
-does clear the variable to nil.  The documentation was wrong before.
-
-** In define-key-after, if AFTER is t, the new binding now always goes
-at the end of the keymap.  If the keymap is a menu, this means it
-goes after the other menu items.
-
-** If you have a program that makes several changes in the same area
-of the buffer, you can use the macro combine-after-change-calls
-around that Lisp code to make it faster when after-change hooks
-are in use.
-
-The macro arranges to call the after-change functions just once for a
-series of several changes--if that seems safe.
-
-Don't alter the variables after-change-functions and
-after-change-function within the body of a combine-after-change-calls
-form.
-
-** If you define an abbrev (with define-abbrev) whose EXPANSION
-is not a string, then the abbrev does not expand in the usual sense,
-but its hook is still run.
-
-** Normally, the Lisp debugger is not used (even if you have enabled it)
-for errors that are handled by condition-case.
-
-If you set debug-on-signal to a non-nil value, then the debugger is called
-regardless of whether there is a handler for the condition.  This is
-useful for debugging problems that happen inside of a condition-case.
-
-This mode of operation seems to be unreliable in other ways.  Errors that
-are normal and ought to be handled, perhaps in timers or process
-filters, will instead invoke the debugger.  So don't say you weren't
-warned.
-
-** The new variable ring-bell-function lets you specify your own
-way for Emacs to "ring the bell".
-
-** If run-at-time's TIME argument is t, the action is repeated at
-integral multiples of REPEAT from the epoch; this is useful for
-functions like display-time.
-
-** You can use the function locate-library to find the precise file
-name of a Lisp library.  This isn't new, but wasn't documented before.
-
-** Commands for entering view mode have new optional arguments that
-can be used from Lisp.  Low-level entrance to and exit from view mode
-is done by functions view-mode-enter and view-mode-exit.
-
-** batch-byte-compile-file now makes Emacs return a nonzero status code
-if there is an error in compilation.
-
-** pop-to-buffer, switch-to-buffer-other-window and
-switch-to-buffer-other-frame now accept an additional optional
-argument NORECORD, much like switch-to-buffer.  If it is non-nil,
-they don't put the buffer at the front of the buffer list.
-
-** If your .emacs file leaves the *scratch* buffer non-empty,
-Emacs does not display the startup message, so as to avoid changing
-the *scratch* buffer.
-
-** The new function regexp-opt returns an efficient regexp to match a string.
-The arguments are STRINGS and (optionally) PAREN.  This function can be used
-where regexp matching or searching is intensively used and speed is important,
-e.g., in Font Lock mode.
-
-** The variable buffer-display-count is local to each buffer,
-and is incremented each time the buffer is displayed in a window.
-It starts at 0 when the buffer is created.
-
-** The new function compose-mail starts composing a mail message
-using the user's chosen mail composition agent (specified with the
-variable mail-user-agent).  It has variants compose-mail-other-window
-and compose-mail-other-frame.
-
-** The `user-full-name' function now takes an optional parameter which
-can either be a number (the UID) or a string (the login name).  The
-full name of the specified user will be returned.
-
-** Lisp packages that load files of customizations, or any other sort
-of user profile, should obey the variable init-file-user in deciding
-where to find it.  They should load the profile of the user name found
-in that variable.  If init-file-user is nil, meaning that the -q
-option was used, then Lisp packages should not load the customization
-files at all.
-
-** format-time-string now allows you to specify the field width
-and type of padding.  This works as in printf: you write the field
-width as digits in the middle of a %-construct.  If you start
-the field width with 0, it means to pad with zeros.
-
-For example, %S normally specifies the number of seconds since the
-minute; %03S means to pad this with zeros to 3 positions, %_3S to pad
-with spaces to 3 positions.  Plain %3S pads with zeros, because that
-is how %S normally pads to two positions.
-
-** thing-at-point now supports a new kind of "thing": url.
-
-** imenu.el changes.
-
-You can now specify a function to be run when selecting an
-item from menu created by imenu.
-
-An example of using this feature: if we define imenu items for the
-#include directives in a C file, we can open the included file when we
-select one of those items.
-
-* For older news, see the file ONEWS
-
 ----------------------------------------------------------------------
 Copyright information:
 
-Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
-   2005, 2006 Free Software Foundation, Inc.
+Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
+	  Free Software Foundation, Inc.
 
    Permission is granted to anyone to make or distribute verbatim copies
    of this document as received, in any medium, provided that the
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/NEWS.1-17	Sun Jun 04 01:01:51 2006 +0000
@@ -0,0 +1,2530 @@
+GNU Emacs NEWS -- history of user-visible changes.  26-Mar-1986
+Copyright (C) 1985, 1986, 2006 Richard M. Stallman.
+See the end for copying conditions.
+
+This file is about changes in emacs versions 1 through 17.
+
+
+
+Changes in Emacs 17
+
+* Frustrated?
+
+Try M-x doctor.
+
+* Bored?
+
+Try M-x hanoi.
+
+* Brain-damaged?
+
+Try M-x yow.
+
+* Sun3, Tahoe, Apollo, HP9000s300, Celerity, NCR Tower 32,
+  Sequent, Stride, Encore, Plexus and AT&T 7300 machines supported.
+
+The Tahoe, Sun3, Sequent and Celerity use 4.2.  In regard to the
+Apollo, see the file APOLLO in this directory.  NCR Tower32,
+HP9000s300, Stride and Nu run forms of System V.  System V rel 2 also
+works on Vaxes now.  See etc/MACHINES.
+
+* System V Unix supported, including subprocesses.
+
+It should be possible now to bring up Emacs on a machine running
+mere unameliorated system V Unix with no major work; just possible bug
+fixes.  But you can expect to find a handful of those on any machine
+that Emacs has not been run on before.
+
+* Berkeley 4.1 Unix supported.
+
+See etc/MACHINES.
+
+* Portable `alloca' provided.
+
+Emacs can now run on machines that do not and cannot support the library
+subroutine `alloca' in the canonical fashion, using an `alloca' emulation
+written in C.
+
+* On-line manual.
+
+Info now contains an Emacs manual, with essentially the same text
+as in the printed manual.
+
+The manual can now be printed with a standard TeX.
+
+Nicely typeset and printed copies of the manual are available
+from the Free Software Foundation.
+
+* Backup file version numbers.
+
+Emacs now supports version numbers in backup files.
+
+The first time you save a particular file in one editing session,
+the old file is copied or renamed to serve as a backup file.
+In the past, the name for the backup file was made by appending `~'
+to the end of the original file name.
+
+Now the backup file name can instead be made by appending ".~NN~" to
+the original file name, where NN stands for a numeric version.  Each
+time this is done, the new version number is one higher than the
+highest previously used.
+
+Thus, the active, current file does not have a version number.
+Only the backups have them.
+
+This feature is controlled by the variable `version-control'.  If it
+is `nil', as normally, then numbered backups are made only for files
+that already have numbered backups.  Backup names with just `~' are
+used for files that have no numbered backups.
+
+If `version-control' is `never', then the backup file's name is
+made with just `~' in any case.
+
+If `version-control' is not `nil' or `never', numbered backups are
+made unconditionally.
+
+To prevent unlimited consumption of disk space, Emacs can delete
+old backup versions automatically.  Generally Emacs keeps the first
+few backups and the latest few backups, deleting any in between.
+This happens every time a new backup is made.  The two variables that
+control the deletion are `kept-old-versions' and `kept-new-versions'.
+Their values are, respectively, the number of oldest backups to keep
+and the number of newest ones to keep, each time a new backup is made.
+The value of `kept-new-versions' includes the backup just created.
+By default, both values are 2.
+
+If `trim-versions-without-asking' is non-`nil', the excess middle versions
+are deleted without a murmur.  If it is `nil', the default, then you
+are asked whether the excess middle versions should really be deleted.
+
+Dired has a new command `.' which marks for deletion all but the latest
+and oldest few of every numeric series of backups.  `kept-old-versions'
+controls the number of oldest versions to keep, and `dired-kept-versions'
+controls the number of latest versions to keep.  A numeric argument to
+the `.' command, if positive, specifies the number of latest versions
+to keep, overriding `dired-kept-versions'.  A negative argument specifies
+the number of oldest versions to keep, using minus the argument to override
+`kept-old-versions'.
+
+* Immediate conflict detection.
+
+Emacs now locks the files it is modifying, so that if
+you start to modify within Emacs a file that is being
+modified in another Emacs, you get an immediate warning.
+
+The warning gives you three choices:
+1. Give up, and do not make any changes.
+2. Make changes anyway at your own risk.
+3. Make changes anyway, and record yourself as
+ the person locking the file (instead of whoever
+ was previously recorded.)
+
+Just visiting a file does not lock it.  It is locked
+when you try to change the buffer that is visiting the file.
+Saving the file unlocks it until you make another change.
+
+Locking is done by writing a lock file in a special designated
+directory.  If such a directory is not provided and told to
+Emacs as part of configuring it for your machine, the lock feature
+is turned off.
+
+* M-x recover-file.
+
+This command is used to get a file back from an auto-save
+(after a system crash, for example).  It takes a file name
+as argument and visits that file, but gets the data from the
+file's last auto save rather than from the file itself.
+
+* M-x normal-mode.
+
+This command resets the current buffer's major mode and local
+variables to be as specified by the visit filename, the -*- line
+and/or the Local Variables: block at the end of the buffer.
+It is the same thing normally done when a file is first visited.
+
+* Echo area messages disappear shortly if minibuffer is in use.
+
+Any message in the echo area disappears after 2 seconds
+if the minibuffer is active.  This allows the minibuffer
+to become visible again.
+
+* C-z on System V runs a subshell.
+
+On systems which do not allow programs to be suspended, the C-z command
+forks a subshell that talks directly to the terminal, and then waits
+for the subshell to exit.  This gets almost the effect of suspending
+in that you can run other programs and then return to Emacs.  However,
+you cannot log out from the subshell.
+
+* C-c is always a prefix character.
+
+Also, subcommands of C-c which are letters are always
+reserved for the user.  No standard Emacs major mode
+defines any of them.
+
+* Picture mode C-c commands changed.
+
+The old C-c k command is now C-c C-w.
+The old C-c y command is now C-c C-x.
+
+* Shell mode commands changed.
+
+All the special commands of Shell mode are now moved onto
+the C-c prefix.  Most are not changed aside from that.
+Thus, the old Shell mode C-c command (kill current job)
+is now C-c C-c; the old C-z (suspend current job) is now C-c C-z,
+etc.
+
+The old C-x commands are now C-c commands.  C-x C-k (kill output)
+is now C-c C-o, and C-x C-v (show output) is now C-c C-r.
+
+The old M-= (copy previous input) command is now C-c C-y.
+
+* Shell mode recognizes aliases for `pushd', `popd' and `cd'.
+
+Shell mode now uses the variable `shell-pushd-regexp' as a
+regular expression to recognize any command name that is
+equivalent to a `pushd' command.  By default it is set up
+to recognize just `pushd' itself.  If you use aliases for
+`pushd', change the regexp to recognize them as well.
+
+There are also `shell-popd-regexp' to recognize commands
+with the effect of a `popd', and `shell-cd-regexp' to recognize
+commands with the effect of a `cd'.
+
+* "Exit" command in certain modes now C-c C-c.
+
+These include electric buffer menu mode, electric command history
+mode, Info node edit mode, and Rmail edit mode.  In all these
+modes, the command to exit used to be just C-c.
+
+* Outline mode changes.
+
+Lines that are not heading lines are now called "body" lines.
+The command `hide-text' is renamed to `hide-body'.
+The key M-H is renamed to C-c C-h.
+The key M-S is renamed to C-c C-s.
+The key M-s is renamed to C-c C-i.
+
+Changes of line visibility are no longer undoable.  As a result,
+they no longer use up undo memory and no longer interfere with
+undoing earlier commands.
+
+* Rmail changes.
+
+The s and q commands now both expunge deleted messages before saving;
+use C-x C-s to save without expunging.
+
+The u command now undeletes the current message if it is deleted;
+otherwise, it backs up as far as necessary to reach a deleted message,
+and undeletes that one.  The u command in the summary behaves likewise,
+but considers only messages listed in the summary.  The M-u command
+has been eliminated.
+
+The o and C-o keys' meanings are interchanged.
+o now outputs to an Rmail file, and C-o to a Unix mail file.
+
+The F command (rmail-find) is renamed to M-s (rmail-search).
+Various new commands and features exist; see the Emacs manual.
+
+* Local bindings described first in describe-bindings.
+
+* [...], {...} now balance in Fundamental mode.
+
+* Nroff mode and TeX mode.
+
+The are two new major modes for editing nroff input and TeX input.
+See the Emacs manual for full information.
+
+* New C indentation style variable `c-brace-imaginary-offset'.
+
+The value of `c-brace-imaginary-offset', normally zero, controls the
+indentation of a statement inside a brace-group where the open-brace
+is not the first thing on a line.  The value says where the open-brace
+is imagined to be, relative to the first nonblank character on the line.
+
+* Dired improvements.
+
+Dired now normally keeps the cursor at the beginning of the file name,
+not at the beginning of the line.  The most used motion commands are
+redefined in Dired to position the cursor this way.
+
+`n' and `p' are now equivalent in dired to `C-n' and `C-p'.
+
+If any files to be deleted cannot be deleted, their names are
+printed in an error message.
+
+If the `v' command is invoked on a file which is a directory,
+dired is run on that directory.
+
+* `visit-tag-table' renamed `visit-tags-table'.
+
+This is so apropos of `tags' finds everything you need to
+know about in connection with Tags.
+
+* `mh-e' library uses C-c as prefix.
+
+All the special commands of `mh-rmail' now are placed on a
+C-c prefix rather than on the C-x prefix.  This is for
+consistency with other special modes with their own commands.
+
+* M-$ or `spell-word' checks word before point.
+
+It used to check the word after point.
+
+* Quitting during autoloading no longer causes trouble.
+
+Now, when a file is autoloaded, all function redefinitions
+and `provide' calls are recorded and are undone if you quit
+before the file is finished loading.
+
+As a result, it no longer happens that some of the entry points
+which are normally autoloading have been defined already, but the
+entire file is not really present to support them.
+
+* `else' can now be indented correctly in C mode.
+
+TAB in C mode now knows which `if' statement an `else' matches
+up with, and can indent the `else' correctly under the `if',
+even if the `if' contained such things as another `if' statement,
+or a `while' or `for' statement, with no braces around it.
+
+* `batch-byte-compile'
+
+Runs byte-compile-file on the files specified on the command line.
+All the rest of the command line arguments are taken as files to
+compile (or, if directories, to do byte-recompile-directory on).
+Must be used only with -batch, and kills emacs on completion.
+Each file will be processed even if an error occurred previously.
+For example, invoke `emacs -batch -f batch-byte-compile *.el'.
+
+* `-batch' changes.
+
+`-batch' now implies `-q': no init file is loaded by Emacs when
+`-batch' is used.  Also, no `term/TERMTYPE.el' file is loaded.  Auto
+saving is not done except in buffers in which it is explicitly
+requested.  Also, many echo-area printouts describing what is going on
+are inhibited in batch mode, so that the only output you get is the
+output you program specifically.
+
+One echo-area message that is not suppressed is the one that says
+that a file is being loaded.  That is because you can prevent this
+message by passing `t' as the third argument to `load'.
+
+* Display of search string in incremental search.
+
+Now, when you type C-s or C-r to reuse the previous search
+string, that search string is displayed immediately in the echo area.
+
+Three dots are displayed after the search string while search
+is actually going on.
+
+* View commands.
+
+The commands C-x ], C-x [, C-x /, C-x j and C-x o are now
+available inside `view-buffer' and `view-file', with their
+normal meanings.
+
+* Full-width windows preferred.
+
+The ``other-window'' commands prefer other full width windows,
+and will split only full width windows.
+
+* M-x rename-file can copy if necessary.
+
+When used between different file systems, since actual renaming does
+not work, the old file will be copied and deleted.
+
+* Within C-x ESC, you can pick the command to repeat.
+
+While editing a previous command to be repeated, inside C-x ESC,
+you can now use the commands M-p and M-n to pick an earlier or
+later command to repeat.  M-n picks the next earlier command
+and M-p picks the next later one.  The new command appears in
+the minibuffer, and you can go ahead and edit it, and repeat it
+when you exit the minibuffer.
+
+Using M-n or M-p within C-x ESC is like having used a different
+numeric argument when you ran C-x ESC in the first place.
+
+The command you finally execute using C-x ESC is added to the
+front of the command history, unless it is identical with the
+first thing in the command history.
+
+* Use C-c C-c to exit from editing within Info.
+
+It used to be C-z for this.  Somehow this use of C-z was
+left out when all the others were moved.  The intention is that
+C-z should always suspend Emacs.
+
+* Default arg to C-x < and C-x > now window width minus 2.
+
+These commands, which scroll the current window horizontally
+by a specified number of columns, now scroll a considerable
+distance rather than a single column if used with no argument.
+
+* Auto Save Files Deleted.
+
+The default value of `delete-auto-save-files' is now `t', so that
+when you save a file for real, its auto save file is deleted.
+
+* Rnews changes.
+
+The N, P and J keys in Rnews are renamed to M-n, M-p and M-j.
+These keys move among newsgroups.
+
+The n and p keys for moving sequentially between news articles now
+accept repeat count arguments, and the + and - keys, made redundant by
+this change, are eliminated.
+
+The s command for outputting the current article to a file
+is renamed as o, to be compatible with Rmail.
+
+* Sendmail changes.
+
+If you have a ~/.mailrc file, Emacs searches it for mailing address
+aliases, and these aliases are expanded when you send mail in Emacs.
+
+Fcc fields can now be used in the headers in the *mail* buffer
+to specify files in which copies of the message should be put.
+The message is written into those files in Unix mail file format.
+The message as sent does not contain any Fcc fields in its header.
+You can use any number of Fcc fields, but only one file name in each one.
+The variable `mail-archive-file-name', if non-`nil', can be a string
+which is a file name; an Fcc to that file will be inserted in every
+message when you begin to compose it.
+
+A new command C-c q now exists in Mail mode.  It fills the
+paragraphs of an old message that had been inserted with C-c y.
+
+When the *mail* buffer is put in Mail mode, text-mode-hook
+is now run in addition to mail-mode-hook.  text-mode-hook
+is run first.
+
+The new variable `mail-header-separator' now specifies the string
+to use on the line that goes between the headers and the message text.
+By default it is still "--text follows this line--".
+
+* Command history truncated automatically.
+
+Just before each garbage collection, all but the last 30 elements
+of the command history are discarded.
+
+
+Incompatible Lisp Programming Changes in Emacs 17
+
+* `&quote' no longer supported.
+
+This feature, which allowed Lisp functions to take arguments
+that were not evaluated, has been eliminated, because it is
+inescapably hard to make the compiler work properly with such
+functions.
+
+You should use macros instead.  A simple way to change any
+code that uses `&quote' is to replace
+
+   (defun foo (&quote x y z) ...
+
+with
+
+   (defmacro foo (x y z)
+     (list 'foo-1 (list 'quote x) (list 'quote y) (list 'quote z)))
+
+   (defun foo-1 (x y z) ...
+
+* Functions `region-to-string' and `region-around-match' removed.
+
+These functions were made for compatibility with Gosling Emacs, but it
+turns out to be undesirable to use them in GNU Emacs because they use
+the mark.  They have been eliminated from Emacs proper, but are
+present in mlsupport.el for the sake of converted mocklisp programs.
+
+If you were using `region-to-string', you should instead use
+`buffer-substring'; then you can pass the bounds as arguments and
+can avoid setting the mark.
+
+If you were using `region-around-match', you can use instead
+the two functions `match-beginning' and `match-end'.  These give
+you one bound at a time, as a numeric value, without changing
+point or the mark.
+
+* Function `function-type' removed.
+
+This just appeared not to be very useful.  It can easily be written in
+Lisp if you happen to want it.  Just use `symbol-function' to get the
+function definition of a symbol, and look at its data type or its car
+if it is a list.
+
+* Variable `buffer-number' removed.
+
+You can still use the function `buffer-number' to find out
+a buffer's unique number (assigned in order of creation).
+
+* Variable `executing-macro' renamed `executing-kbd-macro'.
+
+This variable is the currently executing keyboard macro, as
+a string, or `nil' when no keyboard macro is being executed.
+
+* Loading term/$TERM.
+
+The library term/$TERM (where $TERM get replaced by your terminal
+type), which is done by Emacs automatically when it starts up, now
+happens after the user's .emacs file is loaded.
+
+In previous versions of Emacs, these files had names of the form
+term-$TERM; thus, for example, term-vt100.el, but now they live
+in a special subdirectory named term, and have names like
+term/vt100.el.
+
+* `command-history' format changed.
+
+The elements of this list are now Lisp expressions which can
+be evaluated directly to repeat a command.
+
+* Unused editing commands removed.
+
+The functions `forward-to-word', `backward-to-word',
+`upcase-char', `mark-beginning-of-buffer' and `mark-end-of-buffer'
+have been removed.  Their definitions can be found in file
+lisp/unused.el if you need them.
+
+
+Upward Compatible Lisp Programming Changes in Emacs 17
+
+* You can now continue after errors and quits.
+
+When the debugger is entered because of a C-g, due to
+a non-`nil' value of `debug-on-quit', the `c' command in the debugger
+resumes execution of the code that was running when the quit happened.
+Use the `q' command to go ahead and quit.
+
+The same applies to some kinds of errors, but not all.  Errors
+signaled with the Lisp function `signal' can be continued; the `c'
+command causes `signal' to return.  The `r' command causes `signal' to
+return the value you specify.  The `c' command is equivalent to `r'
+with the value `nil'.
+
+For a `wrong-type-argument' error, the value returned with the `r'
+command is used in place of the invalid argument.  If this new value
+is not valid, another error occurs.
+
+Errors signaled with the function `error' cannot be continued.
+If you try to continue, the error just happens again.
+
+* `dot' renamed `point'.
+
+The word `dot' has been replaced with `point' in all
+function and variable names, including:
+
+  point, point-min, point-max,
+  point-marker, point-min-marker, point-max-marker,
+  window-point, set-window-point,
+  point-to-register, register-to-point,
+  exchange-point-and-mark.
+
+The old names are still supported, for now.
+
+* `string-match' records position of end of match.
+
+After a successful call to `string-match', `(match-end 0)' will
+return the index in the string of the first character after the match.
+Also, `match-begin' and `match-end' with nonzero arguments can be
+used to find the indices of beginnings and ends of substrings matched
+by subpatterns surrounded by parentheses.
+
+* New function `insert-before-markers'.
+
+This function is just like `insert' except in the handling of any
+relocatable markers that are located at the point of insertion.
+With `insert', such markers end up pointing before the inserted text.
+With `insert-before-markers', they end up pointing after the inserted
+text.
+
+* New function `copy-alist'.
+
+This function takes one argument, a list, and makes a disjoint copy
+of the alist structure.  The list itself is copied, and each element
+that is a cons cell is copied, but the cars and cdrs of elements
+remain shared with the original argument.
+
+This is what it takes to get two alists disjoint enough that changes
+in one do not change the result of `assq' on the other.
+
+* New function `copy-keymap'.
+
+This function takes a keymap as argument and returns a new keymap
+containing initially the same bindings.  Rebindings in either one of
+them will not alter the bindings in the other.
+
+* New function `copy-syntax-table'.
+
+This function takes a syntax table as argument and returns a new
+syntax table containing initially the same syntax settings.  Changes
+in either one of them will not alter the other.
+
+* Randomizing the random numbers.
+
+`(random t)' causes the random number generator's seed to be set
+based on the current time and Emacs's process id.
+
+* Third argument to `modify-syntax-entry'.
+
+The optional third argument to `modify-syntax-entry', if specified
+should be a syntax table.  The modification is made in that syntax table
+rather than in the current syntax table.
+
+* New function `run-hooks'.
+
+This function takes any number of symbols as arguments.
+It processes the symbols in order.  For each symbol which
+has a value (as a variable) that is non-nil, the value is
+called as a function, with no arguments.
+
+This is useful in major mode commands.
+
+* Second arg to `switch-to-buffer'.
+
+If this function is given a non-`nil' second argument, then the
+selection being done is not recorded on the selection history.
+The buffer's position in the history remains unchanged.  This
+feature is used by the view commands, so that the selection history
+after exiting from viewing is the same as it was before.
+
+* Second arg to `display-buffer' and `pop-to-buffer'.
+
+These two functions both accept an optional second argument which
+defaults to `nil'.  If the argument is not `nil', it means that
+another window (not the selected one) must be found or created to
+display the specified buffer in, even if it is already shown in
+the selected window.
+
+This feature is used by `switch-to-buffer-other-window'.
+
+* New variable `completion-ignore-case'.
+
+If this variable is non-`nil', completion allows strings
+in different cases to be considered matching.  The global value
+is `nil'
+
+This variable exists for the sake of commands that are completing
+an argument in which case is not significant.  It is possible
+to change the value globally, but you might not like the consequences
+in the many situations (buffer names, command names, file names)
+where case makes a difference.
+
+* Major modes related to Text mode call text-mode-hook, then their own hooks.
+
+For example, turning on Outline mode first calls the value of
+`text-mode-hook' as a function, if it exists and is non-`nil',
+and then does likewise for the variable `outline-mode-hook'.
+
+* Defining new command line switches.
+
+You can define a new command line switch in your .emacs file
+by putting elements on the value of `command-switch-alist'.
+Each element of this list should look like
+      (SWITCHSTRING . FUNCTION)
+where SWITCHSTRING is a string containing the switch to be
+defined, such as "-foo", and FUNCTION is a function to be called
+if such an argument is found in the command line.  FUNCTION
+receives the command line argument, a string, as its argument.
+
+To implement a switch that uses up one or more following arguments,
+use the fact that the remaining command line arguments are kept
+as a list in the variable `command-line-args'.  FUNCTION can
+examine this variable, and do
+    (setq command-line-args (cdr command-line-args)
+to "use up" an argument.
+
+* New variable `load-in-progress'.
+
+This variable is non-`nil' when a file of Lisp code is being read
+and executed by `load'.
+
+* New variable `print-length'.
+
+The value of this variable is normally `nil'.  It may instead be
+a number; in that case, when a list is printed by `prin1' or
+`princ' only that many initial elements are printed; the rest are
+replaced by `...'.
+
+* New variable `find-file-not-found-hook'.
+
+If `find-file' or any of its variants is used on a nonexistent file,
+the value of `find-file-not-found-hook' is called (if it is not `nil')
+with no arguments, after creating an empty buffer.  The file's name
+can be found as the value of `buffer-file-name'.
+
+* Processes without buffers.
+
+In the function `start-process', you can now specify `nil' as
+the process's buffer.  You can also set a process's buffer to `nil'
+using `set-process-buffer'.
+
+The reason you might want to do this is to prevent the process
+from being killed because any particular buffer is killed.
+When a process has a buffer, killing that buffer kills the
+process too.
+
+When a process has no buffer, its output is lost unless it has a
+filter, and no indication of its being stopped or killed is given
+unless it has a sentinel.
+
+* New function `user-variable-p'.  `v' arg prompting changed.
+
+This function takes a symbol as argument and returns `t' if
+the symbol is defined as a user option variable.  This means
+that it has a `variable-documentation' property whose value is
+a string starting with `*'.
+
+Code `v' in an interactive arg reading string now accepts
+user variables only, and completion is limited to the space of
+user variables.
+
+The function `read-variable' also now accepts and completes
+over user variables only.
+
+* CBREAK mode input is the default in Unix 4.3 bsd.
+
+In Berkeley 4.3 Unix, there are sufficient features for Emacs to
+work fully correctly using CBREAK mode and not using SIGIO.
+Therefore, this mode is the default when running under 4.3.
+This mode corresponds to `nil' as the first argument to
+`set-input-mode'.  You can still select either mode by calling
+that function.
+
+* Information on memory usage.
+
+The new variable `data-bytes-used' contains the number
+of bytes of impure space allocated in Emacs.
+`data-bytes-free' contains the number of additional bytes
+Emacs could allocate.  Note that space formerly allocated
+and freed again still counts as `used', since it is still
+in Emacs's address space.
+
+* No limit on size of output from `format'.
+
+The string output from `format' used to be truncated to
+100 characters in length.  Now it can have any length.
+
+* New errors `void-variable' and `void-function' replace `void-symbol'.
+
+This change makes it possible to have error messages that
+clearly distinguish undefined variables from undefined functions.
+It also allows `condition-case' to handle one case without the other.
+
+* `replace-match' handling of `\'.
+
+In `replace-match', when the replacement is not literal,
+`\' in the replacement string is always treated as an
+escape marker.  The only two special `\' constructs
+are `\&' and `\DIGIT', so `\' followed by anything other than
+`&' or a digit has no effect.  `\\' is necessary to include
+a `\' in the replacement text.
+
+This level of escaping is comparable with what goes on in
+a regular expression.  It is over and above the level of `\'
+escaping that goes on when strings are read in Lisp syntax.
+
+* New error `invalid-regexp'.
+
+A regexp search signals this type of error if the argument does
+not meet the rules for regexp syntax.
+
+* `kill-emacs' with argument.
+
+If the argument is a number, it is returned as the exit status code
+of the Emacs process.  If the argument is a string, its contents
+are stuffed as pending terminal input, to be read by another program
+after Emacs is dead.
+
+* New fifth argument to `subst-char-in-region'.
+
+This argument is optional and defaults to `nil'.  If it is not `nil',
+then the substitutions made by this function are not recorded
+in the Undo mechanism.
+
+This feature should be used with great care.  It is now used
+by Outline mode to make lines visible or invisible.
+
+* ` *Backtrace*' buffer renamed to `*Backtrace*'.
+
+As a result, you can now reselect this buffer easily if you switch to
+another while in the debugger.
+
+Exiting from the debugger kills the `*Backtrace*' buffer, so you will
+not try to give commands in it when no longer really in the debugger.
+
+* New function `switch-to-buffer-other-window'.
+
+This is the new primitive to select a specified buffer (the
+argument)  in another window.  It is not quite the same as
+`pop-to-buffer', because it is guaranteed to create another
+window (assuming there is room on the screen) so that it can
+leave the current window's old buffer displayed as well.
+
+All functions to select a buffer in another window should
+do so by calling this new function.
+
+* New variable `minibuffer-help-form'.
+
+At entry to the minibuffer, the variable `help-form' is bound
+to the value of `minibuffer-help-form'.
+
+`help-form' is expected at all times to contain either `nil'
+or an expression to be executed when C-h is typed (overriding
+teh definition of C-h as a command).  `minibuffer-help-form'
+can be used to provide a different default way of handling
+C-h while in the minibuffer.
+
+* New \{...} documentation construct.
+
+It is now possible to set up the documentation string for
+a major mode in such a way that it always describes the contents
+of the major mode's keymap, as it has been customized.
+To do this, include in the documentation string the characters `\{'
+followed by the name of the variable containing the keymap,
+terminated with `}'.  (The `\' at the beginning probably needs to
+be quoted with a second `\', to include it in the doc string.)
+This construct is normally used on a line by itself, with no blank
+lines before or after.
+
+For example, the documentation string for the function `c-mode' contains
+    ...
+    Paragraphs are separated by blank lines only.
+    Delete converts tabs to spaces as it moves back.
+    \\{c-mode-map}
+    Variables controlling indentation style:
+    ...
+
+* New character syntax class "punctuation".
+
+Punctuation characters behave like whitespace in word and
+list parsing, but can be distinguished in regexps and in the
+function `char-syntax'.  Punctuation syntax is represented by
+a period in `modify-syntax-entry'.
+
+* `auto-mode-alist' no longer needs entries for backup-file names,
+
+Backup suffixes of all kinds are now stripped from a file's name
+before searching `auto-mode-alist'.
+
+
+
+Changes in Emacs 16
+
+* No special code for Ambassadors, VT-100's and Concept-100's.
+
+Emacs now controls these terminals based on the termcap entry, like
+all other terminals.  Formerly it did not refer to the termcap entries
+for those terminal types, and often the termcap entries for those
+terminals are wrong or inadequate.  If you experience worse behavior
+on these terminals than in version 15, you can probably correct it by
+fixing up the termcap entry.  See ./TERMS for more info.
+
+See ./TERMS in any case if you find that some terminal does not work
+right with Emacs now.
+
+* Minibuffer default completion character is TAB (and not ESC).
+
+So that ESC can be used in minibuffer for more useful prefix commands.
+
+* C-z suspends Emacs in all modes.
+
+Formerly, C-z was redefined for other purposes by certain modes,
+such as Buffer Menu mode.  Now other keys are used for those purposes,
+to keep the meaning of C-z uniform.
+
+* C-x ESC (repeat-complex-command) allows editing the command it repeats.
+
+Instead of asking for confirmation to re-execute a command from the
+command history, the command is placed, in its Lisp form, into the
+minibuffer for editing.  You can confirm by typing RETURN, change some
+arguments and then confirm, or abort with C-g.
+
+* Incremental search does less redisplay on slow terminals.
+
+If the terminal baud rate is <= the value of `isearch-slow-speed',
+incremental searching outside the text on the screen creates
+a single-line window and uses that to display the line on which
+a match has been found.  Exiting or quitting the search restores
+the previous window configuration and redisplays the window you
+were searching in.
+
+The initial value of `isearch-slow-speed' is 1200.
+
+This feature is courtesy of crl@purdue.
+
+* Recursive minibuffers not allowed.
+
+If the minibuffer window is selected, most commands that would
+use the minibuffer gets an error instead.  (Specific commands
+may override this feature and therefore still be allowed.)
+
+Strictly speaking, recursive entry to the minibuffer is still
+possible, because you can switch to another window after
+entering the minibuffer, and then minibuffer-using commands
+are allowed.  This is still allowed by a deliberate decision:
+if you know enough to switch windows while in the minibuffer,
+you can probably understand recursive minibuffers.
+
+This may be overridden by binding the variable
+`enable-recursive-minibuffers' to t.
+
+* New major mode Emacs-Lisp mode, for editing Lisp code to run in Emacs.
+
+The mode in which emacs lisp files is edited is now called emacs-lisp-mode
+and is distinct from lisp-mode.  The latter is intended for use with
+lisps external to emacs.
+
+The hook which is funcalled (if non-nil) on entry to elisp-mode is now
+called emacs-lisp-mode-hook.  A consequence of this changes is that
+.emacs init files which set the value of lisp-mode-hook may need to be
+changed to use the new names.
+
+* Correct matching of parentheses is checked on insertion.
+
+When you insert a close-paren, the matching open-paren
+is checked for validity.  The close paren must be the kind
+of close-paren that the open-paren says it should match.
+Otherwise, a warning message is printed.  close-paren immediately
+preceded by quoting backslash syntax character is not matched.
+
+This feature was originally written by shane@mit-ajax.
+
+* M-x list-command-history
+* M-x command-history-mode
+* M-x electric-command-history
+
+`list-command-history' displays forms from the command history subject
+to user controlled filtering and limit on number of forms.  It leaves
+the buffer in `command-history-mode'.  M-x command-history-mode
+recomputes the command history each time it is invoked via
+`list-command-history'.  It is like Emacs-Lisp mode except that characters
+don't insert themselves and provision is made for re-evaluating an
+expression from the list.  `electric-command-history' pops up a type
+out window with the command history displayed.  If the very next
+character is Space, the window goes away and the previous window
+configuration is restored.  Otherwise you can move around in the
+history and select an expression for evaluation *inside* the buffer
+which invoked `electric-command-history'.  The original window
+configuration is restored on exit unless the command selected changes
+it.
+
+* M-x edit-picture
+
+Enters a temporary major mode (the previous major mode is remembered
+and can is restored on exit) designed for editing pictures and tables.
+Printing characters replace rather than insert themselves with motion
+afterwards that is user controlled (you can specify any of the 8
+compass directions).  Special commands for movement are provided.
+Special commands for hacking tabs and tab stops are provided.  Special
+commands for killing rectangles and overlaying them are provided.  See
+the documentation of function  edit-picture  for more details.
+
+Calls value of `edit-picture-hook' on entry if non-nil.
+
+* Stupid C-s/C-q `flow control' supported.
+
+Do (set-input-mode nil t) to tell Emacs to use CBREAK mode and interpret
+C-s and C-q as flow control commands.  (set-input-mode t nil) switches
+back to interrupt-driven input.  (set-input-mode nil nil) uses CBREAK
+mode but no `flow control'; this may make it easier to run Emacs under
+certain debuggers that have trouble dealing with inferiors that use SIGIO.
+
+CBREAK mode has certain inherent disadvantages, which are why it is
+not the default:
+
+     Meta-keys are ignored; CBREAK mode discards the 8th bit of
+     input characters.
+
+     Control-G as keyboard input discards buffered output,
+     and therefore can cause incorrect screen updating.
+
+The use of `flow control' has its own additional disadvantage: the
+characters C-s and C-q are not available as editing commands.  You can
+partially compensate for this by setting up a keyboard-translate-table
+(see file ONEWS) that maps two other characters (such as C-^ and C-\) into
+C-s and C-q.  Of course, C-^ and C-\ are commonly used as escape
+characters in remote-terminal programs.  You really can't win except
+by getting rid of this sort of `flow control.'
+
+The configuration switch CBREAK_INPUT is now eliminated.
+INTERRUPT_INPUT exists only to specify the default mode of operation;
+#define it to make interrupt-driven input the default.
+
+* Completion of directory names provides a slash.
+
+If file name completion yields the name of a directory,
+a slash is appended to it.
+
+* Undo can clear modified-flag.
+
+If you undo changes in a buffer back to a state in which the
+buffer was not considered "modified", then it is labelled as
+once again "unmodified".
+
+* M-x run-lisp.
+
+This command creates an inferior Lisp process whose input and output
+appear in the Emacs buffer named `*lisp*'.  That buffer uses a major mode
+called inferior-lisp-mode, which has many of the commands of lisp-mode
+and those of shell-mode.   Calls the value of shell-mode-hook and
+lisp-mode-hook, in that order, if non-nil.
+
+Meanwhile, in lisp-mode, the command C-M-x is defined to
+send the current defun as input to the `*lisp*' subprocess.
+
+* Mode line says `Narrow' when buffer is clipped.
+
+If a buffer has a clipping restriction (made by `narrow-to-region')
+then its mode line contains the word `Narrow' after the major and
+minor modes.
+
+* Mode line says `Abbrev' when abbrev mode is on.
+
+* add-change-log-entry takes prefix argument
+
+Giving a prefix argument makes it prompt for login name, full name,
+and site name, with defaults.  Otherwise the defaults are used
+with no confirmation.
+
+* M-x view-buffer and M-x view-file
+
+view-buffer selects the named buffer, view-file finds the named file; the
+resulting buffer is placed into view-mode (a recursive edit).  The normal
+emacs commands are not available.  Instead a set of special commands is
+provided which faclitate moving around in the buffer, searching and
+scrolling by screenfuls.  Exiting view-mode returns to the buffer in which
+the view-file or view-buffer command was given.
+Type ? or h when viewing for a complete list of view commands.
+Each calls value of `view-hook' if non-nil on entry.
+
+written by shane@mit-ajax.
+
+* New key commands in dired.
+
+`v' views (like more) the file on the current line.
+`#' marks auto-save files for deletion.
+`~' marks backup files for deletion.
+`r' renames a file and updates the directory listing if the
+file is renamed to same directory.
+`c' copies a file and updates the directory listing if the file is
+copied to the same directory.
+
+* New function `electric-buffer-list'.
+
+This pops up a buffer describing the set of emacs buffers.
+Immediately typing space makes the buffer list go away and returns
+to the buffer and window which were previously selected.
+
+Otherwise one may use the c-p and c-n commands to move around in the
+buffer-list buffer and type Space or C-z to select the buffer on the
+cursor's line.  There are a number of other commands which are the same
+as those of buffer-menu-mode.
+
+This is a useful thing to bind to c-x c-b in your `.emacs' file if the
+rather non-standard `electric' behaviour of the buffer list suits your taste.
+Type C-h after invoking electric-buffer-list for more information.
+
+Calls value of `electric-buffer-menu-mode-hook' if non-nil on entry.
+Calls value of `after-electric-buffer-menu' on exit (select) if non-nil.
+
+Changes in version 16 for mail reading and sending
+
+* sendmail prefix character is C-c (and not C-z).  New command C-c w.
+
+For instance C-c C-c (or C-c C-s) sends mail now rather than C-z C-z.
+C-c w inserts your `signature' (contents of ~/.signature) at the end
+of mail.
+
+* New feature in C-c y command in sending mail.
+
+C-c y is the command to insert the message being replied to.
+Normally it deletes most header fields and indents everything
+by three spaces.
+
+Now, C-c y does not delete header fields or indent.
+C-c y with any other numeric argument does delete most header
+fields, but indents by the amount specified in the argument.
+
+* C-r command in Rmail edits current message.
+
+It does this by switching to a different major mode
+which is nearly the same as Text mode.  The only difference
+between it and text mode are the two command C-c and C-].
+C-c is defined to switch back to Rmail mode, and C-]
+is defined to restore the original contents of the message
+and then switch back to Rmail mode.
+
+C-c and C-] are the only ways "back into Rmail", but you
+can switch to other buffers and edit them as usual.
+C-r in Rmail changes only the handling of the Rmail buffer.
+
+* Rmail command `t' toggles header display.
+
+Normally Rmail reformats messages to hide most header fields.
+`t' switches to display of all the header fields of the
+current message, as long as it remains current.
+Another `t' switches back to the usual display.
+
+* Rmail command '>' goes to the last message.
+
+* Rmail commands `a' and `k' set message attributes.
+`a' adds an attribute and `k' removes one.  You specify
+the attrbute by name.  You can specify either a built-in
+flag such as "deleted" or "filed", or a user-defined keyword
+(anything not recognized as built-in).
+
+* Rmail commands `l' and `L' summarize by attributes.
+
+These commands create a summary with one line per message,
+like `h', but they list only some of the messages.  You
+specify which attribute (for `l') or attributes (for `L')
+the messages should have.
+
+* Rmail can parse mmdf mail files.
+
+* Interface to MH mail system.
+
+mh-e is a front end for GNU emacs and the MH mail system.  It
+provides a friendly and convient interface to the MH commands.
+
+To read mail, invoke mh-rmail.  This will inc new mail and display the
+scan listing on the screen.  To see a summary of the mh-e commands,
+type ?.  Help is available through the usual facilities.
+
+To send mail, invoke mh-smail.
+
+mh-e requires a copy of MH.5 that has been compiled with the MHE
+compiler switch.
+
+From larus@berkeley.
+
+New hooks and parameters in version 16
+
+* New variable `blink-matching-paren-distance'.
+
+This is the maximum number of characters to search for
+an open-paren to match an inserted close-paren.
+The matching open-paren is shown and checked if it is found
+within this distance.
+
+`nil' means search all the way to the beginning of the buffer.
+In this case, a warning message is printed if no matching
+open-paren is found.
+
+This feature was originally written by shane@mit-ajax.
+
+* New variable `find-file-run-dired'
+
+If nil, find-file will report an error if an attempt to visit a
+directory is detected; otherwise, it runs dired on that directory.
+The default is t.
+
+* Variable `dired-listing-switches' holds switches given to `ls' by dired.
+
+The value should be a string containing `-' followed by letters.
+The letter `l' had better be included and letter 'F' had better be excluded!
+The default is "-al".
+
+This feature was originally written by shane@mit-ajax.
+
+* New variable `display-time-day-and-date'.
+
+If this variable is set non-`nil', the function M-x display-time
+displays the day and date, as well as the time.
+
+* New parameter `c-continued-statement-indent'.
+
+This controls the extra indentation given to a line
+that continues a C statement started on the previous line.
+By default it is 2, which is why you would see
+
+	if (foo)
+	  bar ();
+
+
+* Changed meaning of `c-indent-level'.
+
+The value of `c-brace-offset' used to be
+subtracted from the value of `c-indent-level' whenever
+that value was used.  Now it is not.
+
+As a result, `c-indent-level' is now the offset of
+statements within a block, relative to the line containing
+the open-brace that starts the block.
+
+* turn-on-auto-fill is useful value for text-mode-hook.
+
+(setq text-mode-hook 'turn-on-auto-fill)
+is all you have to do to make sure Auto Fill mode is turned
+on whenever you enter Text mode.
+
+* Parameter explicit-shell-file-name for M-x shell.
+
+This variable, if non-nil, specifies the file name to use
+for the shell to run if you do M-x shell.
+
+Changes in version 16 affecting Lisp programming:
+
+* Documentation strings adapt to customization.
+
+Often the documentation string for a command wants to mention
+another command.  Simply stating the other command as a
+character sequence has a disadvantage: if the user customizes
+Emacs by moving that function to a different command, the
+cross reference in the documentation becomes wrong.
+
+A new feature allows you to write the documentation string
+using a function name, and the command to run that function
+is looked up when the documentation is printed.
+
+If a documentation string contains `\[' (two characters) then
+the following text, up to the next `]', is taken as a function name.
+Instead of printing that function name, the command that runs it is printed.
+(M-x is used to construct a command if no shorter one exists.)
+
+For example, instead of putting `C-n' in a documentation string
+to refer to the C-n command, put in `\[next-line]'.  (In practice
+you will need to quote the backslash with another backslash,
+due to the syntax for strings in Lisp and C.)
+
+To include the literal characters `\[' in a documentation string,
+precede them with `\='.  To include the characters `\=', precede
+them with `\='.  For example, "\\=\\= is the way to quote \\=\\["
+will come out as `\= is the way to quote \['.
+
+The new function `substitute-command-keys' takes a string possibly
+contaning \[...] constructs and replaces those constructs with
+the key sequences they currently stand for.
+
+* Primitives `find-line-comment' and `find-line-comment-body' flushed.
+
+Search for the value of `comment-start-skip' if you want to find
+whether and where a line has a comment.
+
+* New function `auto-save-file-name-p'
+
+Should return non-`nil' iff given a string which is the name of an
+auto-save file (sans directory name).  If you redefine
+`make-auto-save-file-name', you should redefine this accordingly.  By
+default, this function returns `t' for filenames beginning with
+character `#'.
+
+* The value of `exec-directory' now ends in a slash.
+
+This is to be compatible with most directory names in GNU Emacs.
+
+* Dribble files and termscript files.
+
+(open-dribble-file FILE) opens a dribble file named FILE.  When a
+dribble file is open, every character Emacs reads from the terminal is
+written to the dribble file.
+
+(open-termscript FILE) opens a termscript file named FILE.  When a
+termscript file is open, all characters sent to the terminal by Emacs
+are also written in the termscript file.
+
+The two of these together are very useful for debugging Emacs problems
+in redisplay.
+
+* Upper case command characters by default are same as lower case.
+
+If a character in a command is an upper case letter, and is not defined,
+Emacs uses the definition of the corresponding lower case letter.
+For example, if C-x U is not directly undefined, it is treated as
+a synonym for C-x u (undo).
+
+* Undefined function errors versus undefined variable errors.
+
+Void-symbol errors now say "boundp" if the symbol's value was void
+or "fboundp" if the function definition was void.
+
+* New function `bury-buffer'.
+
+The new function `bury-buffer' takes one argument, a buffer object,
+and puts that buffer at the end of the internal list of buffers.
+So it is the least preferred candidate for use as the default value
+of C-x b, or for other-buffer to return.
+
+* Already-displayed buffers have low priority for display.
+
+When a buffer is chosen automatically for display, or to be the
+default in C-x b, buffers already displayed in windows have lower
+priority than buffers not currently visible.
+
+* `set-window-start' accepts a third argument NOFORCE.
+
+This argument, if non-nil, prevents the window's force_start flag
+from being set.  Setting the force_start flag causes the next
+redisplay to insist on starting display at the specified starting
+point, even if dot must be moved to get it onto the screen.
+
+* New function `send-string-to-terminal'.
+
+This function takes one argument, a string, and outputs its contents
+to the terminal exactly as specified: control characters, escape
+sequences, and all.
+
+* Keypad put in command mode.
+
+The terminal's keypad is now put into command mode, as opposed to
+numeric mode, while Emacs is running.  This is done by means of the
+termcap `ks' and `ke' strings.
+
+* New function `generate-new-buffer'
+
+This function takes a string as an argument NAME and looks for a
+creates and returns a buffer called NAME if one did not already exist.
+Otherwise, it successively tries appending suffixes of the form "<1>",
+"<2>" etc to NAME until it creates a string which does not name an
+existing buffer.  A new buffer with that name is the created and returned.
+
+* New function `prin1-to-string'
+This function takes one argument, a lisp object, and returns a string
+containing that object's printed representation, such as `prin1'
+would output.
+
+* New function `read-from-minibuffer'
+Lets you supply a prompt, initial-contents, a keymap, and specify
+whether the result should be interpreted as a string or a lisp object.
+
+Old functions `read-minibuffer', `eval-minibuffer', `read-string' all
+take second optional string argument which is initial contents of
+minibuffer.
+
+* minibuffer variable names changed (names of keymaps)
+
+minibuf-local-map -> minibuffer-local-map
+minibuf-local-ns-map -> minibuffer-local-ns-map
+minibuf-local-completion-map -> minibuffer-local-completion-map
+minibuf-local-must-match-map -> minibuffer-local-must-match-map
+
+Changes in version 16 affecting configuring and building Emacs
+
+* Configuration switch VT100_INVERSE eliminated.
+
+You can control the use of inverse video on any terminal by setting
+the variable `inverse-video', or by changing the termcap entry.  If
+you like, set `inverse-video' in your `.emacs' file based on
+examination of (getenv "TERM").
+
+* New switch `-batch' makes Emacs run noninteractively.
+
+If the switch `-batch' is used, Emacs treats its standard output
+and input like ordinary files (even if they are a terminal).
+It does not display buffers or windows; the only output to standard output
+is what would appear as messages in the echo area, and each
+message is followed by a newline.
+
+The terminal modes are not changed, so that C-z and C-c retain
+their normal Unix meanings.  Emacs does still read commands from
+the terminal, but the idea of `-batch' is that you use it with
+other command line arguments that tell Emacs a complete task to perform,
+including killing itself.  `-kill' used as the last argument is a good
+way to accomplish this.
+
+The Lisp variable `noninteractive' is now defined, to be `nil'
+except when `-batch' has been specified.
+
+* Emacs can be built with output redirected to a file.
+
+This is because -batch (see above) is now used in building Emacs.
+
+
+
+Changes in Emacs 15
+
+* Emacs now runs on Sun and Megatest 68000 systems;
+ also on at least one 16000 system running 4.2.
+
+* Emacs now alters the output-start and output-stop characters
+ to prevent C-s and C-q from being considered as flow control
+ by cretinous rlogin software in 4.2.
+
+* It is now possible convert Mocklisp code (for Gosling Emacs) to Lisp code
+ that can run in GNU Emacs.  M-x convert-mocklisp-buffer
+ converts the contents of the current buffer from Mocklisp to
+ GNU Emacs Lisp.  You should then save the converted buffer with C-x C-w
+ under a name ending in ".el"
+
+ There are probably some Mocklisp constructs that are not handled.
+ If you encounter one, feel free to report the failure as a bug.
+ The construct will be handled in a future Emacs release, if that is not
+ not too hard to do.
+
+ Note that lisp code converted from Mocklisp code will not necessarily
+ run as fast as code specifically written for GNU Emacs, nor will it use
+ the many features of GNU Emacs which are not present in Gosling's emacs.
+ (In particular, the byte-compiler (m-x byte-compile-file) knows little
+ about compilation of code directly converted from mocklisp.)
+ It is envisaged that old mocklisp code will be incrementally converted
+ to GNU lisp code, with M-x convert-mocklisp-buffer being the first
+ step in this process.
+
+* Control-x n (narrow-to-region) is now by default a disabled command.
+
+ This means that, if you issue this command, it will ask whether
+ you really mean it.  You have the opportunity to enable the
+ command permanently at that time, so you will not be asked again.
+ This will place the form "(put 'narrow-to-region 'disabled nil)" in your
+ .emacs file.
+
+* Tags now prompts for the tag table file name to use.
+
+ All the tags commands ask for the tag table file name
+ if you have not yet specified one.
+
+ Also, the command M-x visit-tag-table can now be used to
+ specify the tag table file name initially, or to switch
+ to a new tag table.
+
+* If truncate-partial-width-windows is non-nil (as it intially is),
+ all windows less than the full screen width (that is,
+ made by side-by-side splitting) truncate lines rather than continuing
+ them.
+
+* Emacs now checks for Lisp stack overflow to avoid fatal errors.
+ The depth in eval, apply and funcall may not exceed max-lisp-eval-depth.
+ The depth in variable bindings and unwind-protects may not exceed
+ max-specpdl-size.  If either limit is exceeded, an error occurs.
+ You can set the limits to larger values if you wish, but if you make them
+ too large, you are vulnerable to a fatal error if you invoke
+ Lisp code that does infinite recursion.
+
+* New hooks  find-file-hook  and  write-file-hook.
+ Both of these variables if non-nil should be functions of no arguments.
+ At the time they are called (current-buffer) will be the buffer being
+ read or written respectively.
+
+ find-file-hook  is called whenever a file is read into its own buffer,
+ such as by calling  find-file,  revert-buffer, etc.  It is not called by
+ functions such as  insert-file  which do not read the file into a buffer of
+ its own.
+ find-file-hook  is called after the file has been read in and its
+ local variables (if any) have been processed.
+
+ write-file-hook  is called just before writing out a file from a buffer.
+
+* The initial value of shell-prompt-pattern is now  "^[^#$%>]*[#$%>] *"
+
+* If the .emacs file sets inhibit-startup-message to non-nil,
+ the messages normally printed by Emacs at startup time
+ are inhibited.
+
+* Facility for run-time conditionalization on the basis of emacs features.
+
+ The new variable  features  is a list of symbols which represent "features"
+ of the executing emacs, for use in run-time conditionalization.
+
+ The function  featurep  of one argument may be used to test for the
+ presence of a feature. It is just the same as
+ (not (null (memq FEATURE features))) where FEATURE is its argument.
+ For example, (if (featurep 'magic-window-hack)
+		  (transmogrify-window 'vertical)
+		(split-window-vertically))
+
+ The function  provide  of one argument "announces" that FEATURE is present.
+ It is much the same as (if (not (featurep FEATURE))
+			    (setq features (cons FEATURE features)))
+
+ The function  require  with arguments FEATURE and FILE-NAME loads FILE-NAME
+ (which should contain the form (provide FEATURE)) unless FEATURE is present.
+ It is much the same as (if (not (featurep FEATURE))
+			    (progn (load FILE-NAME)
+				   (if (not featurep FEATURE) (error ...))))
+ FILE-NAME is optional and defaults to FEATURE.
+
+* New function load-average.
+
+ This returns a list of three integers, which are
+ the current 1 minute, 5 minute and 15 minute load averages,
+ each multiplied by a hundred (since normally they are floating
+ point numbers).
+
+* Per-terminal libraries loaded automatically.
+
+ Emacs when starting up on terminal type T automatically loads
+ a library named term-T.  T is the value of the TERM environment variable.
+ Thus, on terminal type vt100, Emacs would do (load "term-vt100" t t).
+ Such libraries are good places to set the character translation table.
+
+ It is a bad idea to redefine lots of commands in a per-terminal library,
+ since this affects all users.  Instead, define a command to do the
+ redefinitions and let the user's init file, which is loaded later,
+ call that command or not, as the user prefers.
+
+* Programmer's note: detecting killed buffers.
+
+ Buffers are eliminated by explicitly killing them, using
+ the function kill-buffer.  This does not eliminate or affect
+ the pointers to the buffer which may exist in list structure.
+ If you have a pointer to a buffer and wish to tell whether
+ the buffer has been killed, use the function buffer-name.
+ It returns nil on a killed buffer, and a string on a live buffer.
+
+* New ways to access the last command input character.
+
+ The function last-key-struck, which used to return the last
+ input character that was read by command input, is eliminated.
+ Instead, you can find this information as the value of the
+ variable last-command-char.  (This variable used to be called
+ last-key).
+
+ Another new variable, last-input-char, holds the last character
+ read from the command input stream regardless of what it was
+ read for.  last-input-char and last-command-char are different
+ only inside a command that has called read-char to read input.
+
+* The new switch -kill causes Emacs to exit after processing the
+ preceding command line arguments.  Thus,
+    emacs -l lib data -e do-it -kill
+ means to load lib, find file data, call do-it on no arguments,
+ and then exit.
+
+* The config.h file has been modularized.
+
+ Options that depend on the machine you are running on are defined
+ in a file whose name starts with "m-", such as m-vax.h.
+ Options that depend on the operating system software version you are
+ running on are defined in a file whose name starts with "s-",
+ such as s-bsd4.2.h.
+
+ config.h includes one m- file and one s- file.  It also defines a
+ few other options whose values do not follow from the machine type
+ and system type being used.  Installers normally will have to
+ select the correct m- and s- files but will never have to change their
+ contents.
+
+* Termcap AL and DL strings are understood.
+
+ If the termcap entry defines AL and DL strings, for insertion
+ and deletion of multiple lines in one blow, Emacs now uses them.
+ This matters most on certain bit map display terminals for which
+ scrolling is comparatively slow.
+
+* Bias against scrolling screen far on fast terminals.
+
+ Emacs now prefers to redraw a few lines rather than
+ shift them a long distance on the screen, when the terminal is fast.
+
+* New major mode, mim-mode.
+
+ This major mode is for editing MDL code.  Perhaps a MDL
+ user can explain why it is not called mdl-mode.
+ You must load the library mim-mode explicitly to use this.
+
+* GNU documentation formatter `texinfo'.
+
+ The `texinfo' library defines a format for documentation
+ files which can be passed through Tex to make a printed manual
+ or passed through texinfo to make an Info file.  Texinfo is
+ documented fully by its own Info file; compare this file
+ with its source, texinfo.texinfo, for additional guidance.
+
+ All documentation files for GNU utilities should be written
+ in texinfo input format.
+
+ Tex processing of texinfo files requires the Botex macro package.
+ This is not ready for distribution yet, but will appear at
+ a later time.
+
+* New function read-from-string (emacs 15.29)
+
+ read-from-string takes three arguments: a string to read from,
+ and optionally start and end indices which delimit a substring
+ from which to read.  (They default to 0 and the length of the string,
+ respectively.)
+
+ This function returns a cons cell whose car is the object produced
+ by reading from the string and whose cdr is a number giving the
+ index in the string of the first character not read. That index may
+ be passed as the second argument to a later call to  read-from-string
+ to read the next form represented by the string.
+
+ In addition, the function  read  now accepts a string as its argument.
+ In this case, it calls  read-from-string  on the whole string, and
+ returns the car of the result. (ie the actual object read.)
+
+
+
+Changes in Emacs 14
+
+* Completion now prints various messages such as [Sole Completion]
+ or [Next Character Not Unique] to describe the results obtained.
+ These messages appear after the text in the minibuffer, and remain
+ on the screen until a few seconds go by or you type a key.
+
+* The buffer-read-only flag is implemented.
+ Setting or binding this per-buffer variable to a non-nil value
+ makes illegal any operation which would modify the textual content of
+ the buffer.  (Such operations signal a  buffer-read-only  error)
+ The read-only state of a buffer may be altered using toggle-read-only
+ (C-x C-q)
+ The buffers used by Rmail, Dired, Rnews, and Info are now read-only
+ by default to prevent accidental damage to the information in those
+ buffers.
+
+* Functions car-safe and cdr-safe.
+ These functions are like car and cdr when the argument is a cons.
+ Given an argument not a cons, car-safe always returns nil, with
+ no error; the same for cdr-safe.
+
+* The new function user-real-login-name returns the name corresponding
+ to the real uid of the Emacs process.  This is usually the same
+ as what user-login-name returns; however, when Emacs is invoked
+ from su, user-real-login-name returns "root" but user-login-name
+ returns the name of the user who invoked su.
+
+
+
+Changes in Emacs 13
+
+* There is a new version numbering scheme.
+
+ What used to be the first version number, which was 1,
+ has been discarded since it does not seem that I need three
+ levels of version number.
+
+ However, a new third version number has been added to represent
+ changes by user sites.  This number will always be zero in
+ Emacs when I distribute it; it will be incremented each time
+ Emacs is built at another site.
+
+* There is now a reader syntax for Meta characters:
+ \M-CHAR means CHAR or'ed with the Meta bit.  For example:
+
+    ?\M-x   is   (+ ?x 128)
+    ?\M-\n  is   (+ ?\n 128)
+    ?\M-\^f is   (+ ?\^f 128)
+
+ This syntax can be used in strings too.  Note, however, that
+ Meta characters are not meaningful in key sequences being passed
+ to define-key or lookup-key; you must use ESC characters (\e)
+ in them instead.
+
+ ?\C- can be used likewise for control characters.  (13.9)
+
+* Installation change
+ The string "../lisp" now adds to the front of the load-path
+ used for searching for Lisp files during Emacs initialization.
+ It used to replace the path specified in paths.h entirely.
+ Now the directory ../lisp is searched first and the directoris
+ specified in paths.h are searched afterward.
+
+
+
+Changes in Emacs 1.12
+
+* There is a new installation procedure.
+ See the file INSTALL that comes in the top level
+ directory in the tar file or tape.
+
+* The Meta key is now supported on terminals that have it.
+ This is a shift key which causes the high bit to be turned on
+ in all input characters typed while it is held down.
+
+ read-char now returns a value in the range 128-255 if
+ a Meta character is typed.  When interpreted as command
+ input, a Meta character is equivalent to a two character
+ sequence, the meta prefix character followed by the un-metized
+ character (Meta-G unmetized is G).
+
+ The meta prefix character
+ is specified by the value of the variable meta-prefix-char.
+ If this character (normally Escape) has been redefined locally
+ with a non-prefix definition (such as happens in completing
+ minibuffers) then the local redefinition is suppressed when
+ the character is not the last one in a key sequence.
+ So the local redefinition is effective if you type the character
+ explicitly, but not effective if the character comes from
+ the use of the Meta key.
+
+* `-' is no longer a completion command in the minibuffer.
+ It is an ordinary self-inserting character.
+
+* The list load-path of directories load to search for Lisp files
+ is now controlled by the EMACSLOADPATH environment variable
+[[ Note this was originally EMACS-LOAD-PATH and has been changed
+ again; sh does not deal properly with hyphens in env variable names]]
+ rather than the EPATH environment variable.  This is to avoid
+ conflicts with other Emacses.
+
+ While Emacs is being built initially, the load-path
+ is now just ("../lisp"), ignoring paths.h.  It does not
+ ignore EMACSLOADPATH, however; you should avoid having
+ this variable set while building Emacs.
+
+* You can now specify a translation table for keyboard
+ input characters, as a way of exchanging or substituting
+ keys on the keyboard.
+
+ If the value of keyboard-translate-table is a string,
+ every character received from the keyboard is used as an
+ index in that string, and the character at that index in
+ the string is used as input instead of what was actually
+ typed.  If the actual input character is >= the length of
+ the string, it is used unchanged.
+
+ One way this feature can be used is to fix bad keyboard
+ designes.  For example, on some terminals, Delete is
+ Shift-Underscore.  Since Delete is a more useful character
+ than Underscore, it is an improvement to make the unshifted
+ character Delete and the shifted one Underscore.  This can
+ be done with
+
+  ;; First make a translate table that does the identity translation.
+  (setq keyboard-translate-table (make-string 128 0))
+  (let ((i 0))
+    (while (< i 128)
+      (aset keyboard-translate-table i i)
+      (setq i (1+ i))))
+
+  ;; Now alter translations of some characters.
+  (aset keyboard-translate-table ?\_ ?\^?)
+  (aset keyboard-translate-table ?\^? ?\_)
+
+ If your terminal has a Meta key and can therefore send
+ codes up to 255, Meta characters are translated through
+ elements 128 through 255 of the translate table, and therefore
+ are translated independently of the corresponding non-Meta
+ characters.  You must therefore establish translations
+ independently for the Meta characters if you want them too:
+
+  ;; First make a translate table that does the identity translation.
+  (setq keyboard-translate-table (make-string 256 0))
+  (let ((i 0))
+    (while (< i 256)
+      (aset keyboard-translate-table i i)
+      (setq i (1+ i))))
+
+  ;; Now alter translations of some characters.
+  (aset keyboard-translate-table ?\_ ?\^?)
+  (aset keyboard-translate-table ?\^? ?\_)
+
+  ;; Now alter translations of some Meta characters.
+  (aset keyboard-translate-table (+ 128 ?\_) (+ 128 ?\^?))
+  (aset keyboard-translate-table (+ 128 ?\^?) (+ 128 ?\_))
+
+* (process-kill-without-query PROCESS)
+
+This marks the process so that, when you kill Emacs,
+you will not on its account be queried about active subprocesses.
+
+
+
+Changes in Emacs 1.11
+
+* The commands C-c and C-z have been interchanged,
+ for greater compatibility with normal Unix usage.
+ C-z now runs suspend-emacs and C-c runs exit-recursive-edit.
+
+* The value returned by file-name-directory now ends
+ with a slash.  (file-name-directory "foo/bar") => "foo/".
+ This avoids confusing results when dealing with files
+ in the root directory.
+
+ The value of the per-buffer variable default-directory
+ is also supposed to have a final slash now.
+
+* There are now variables to control the switches passed to
+ `ls' by the C-x C-d command (list-directory).
+ list-directory-brief-switches is a string, initially "-CF",
+ used for brief listings, and list-directory-verbose-switches
+ is a string, initially "-l", used for verbose ones.
+
+* For Ann Arbor Ambassador terminals, the termcap "ti" string
+ is now used to initialize the screen geometry on entry to Emacs,
+ and the "te" string is used to set it back on exit.
+ If the termcap entry does not define the "ti" or "te" string,
+ Emacs does what it used to do.
+
+
+
+Changes in Emacs 1.10
+
+* GNU Emacs has been made almost 1/3 smaller.
+ It now dumps out as only 530kbytes on Vax 4.2bsd.
+
+* The term "checkpoint" has been replaced by "auto save"
+ throughout the function names, variable names and documentation
+ of GNU Emacs.
+
+* The function load now tries appending ".elc" and ".el"
+ to the specified filename BEFORE it tries the filename
+ without change.
+
+* rmail now makes the mode line display the total number
+ of messages and the current message number.
+ The "f" command now means forward a message to another user.
+ The command to search through all messages for a string is now "F".
+ The "u" command now means to move back to the previous
+ message and undelete it.  To undelete the selected message, use Meta-u.
+
+* The hyphen character is now equivalent to a Space while
+ in completing minibuffers.  Both mean to complete an additional word.
+
+* The Lisp function error now takes args like format
+ which are used to construct the error message.
+
+* Redisplay will refuse to start its display at the end of the buffer.
+ It will pick a new place to display from, rather than use that.
+
+* The value returned by garbage-collect has been changed.
+ Its first element is no longer a number but a cons,
+ whose car is the number of cons cells now in use,
+ and whose cdr is the number of cons cells that have been
+ made but are now free.
+ The second element is similar but describes symbols rather than cons cells.
+ The third element is similar but describes markers.
+
+* The variable buffer-name has been eliminated.
+ The function buffer-name still exists.  This is to prevent
+ user programs from changing buffer names without going
+ through the rename-buffer function.
+
+
+
+Changes in Emacs 1.9
+
+* When a fill prefix is in effect, paragraphs are started
+ or separated by lines that do not start with the fill prefix.
+ Also, a line which consists of the fill prefix followed by
+ white space separates paragraphs.
+
+* C-x C-v runs the new function find-alternate-file.
+ It finds the specified file, switches to that buffer,
+ and kills the previous current buffer.  (It requires
+ confirmation if that buffer had changes.)  This is
+ most useful after you find the wrong file due to a typo.
+
+* Exiting the minibuffer moves the cursor to column 0,
+ to show you that it has really been exited.
+
+* Meta-g (fill-region) now fills each paragraph in the
+ region individually.  To fill the region as if it were
+ a single paragraph (for when the paragraph-delimiting mechanism
+ does the wrong thing), use fill-region-as-paragraph.
+
+* Tab in text mode now runs the function tab-to-tab-stop.
+ A new mode called indented-text-mode is like text-mode
+ except that in it Tab runs the function indent-relative,
+ which indents the line under the previous line.
+ If auto fill is enabled while in indented-text-mode,
+ the new lines that it makes are indented.
+
+* Functions kill-rectangle and yank-rectangle.
+ kill-rectangle deletes the rectangle specified by dot and mark
+ (or by two arguments) and saves it in the variable killed-rectangle.
+ yank-rectangle inserts the rectangle in that variable.
+
+ Tab characters in a rectangle being saved are replaced
+ by spaces in such a way that their appearance will
+ not be changed if the rectangle is later reinserted
+ at a different column position.
+
+* `+' in a regular expression now means
+ to repeat the previous expression one or more times.
+ `?' means to repeat it zero or one time.
+ They are in all regards like `*' except for the
+ number of repetitions they match.
+
+ \< in a regular expression now matches the null string
+ when it is at the beginning of a word; \> matches
+ the null string at the end of a word.
+
+* C-x p narrows the buffer so that only the current page
+ is visible.
+
+* C-x ) with argument repeats the kbd macro just
+ defined that many times, counting the definition
+ as one repetition.
+
+* C-x ( with argument begins defining a kbd macro
+ starting with the last one defined.  It executes that
+ previous kbd macro initially, just as if you began
+ by typing it over again.
+
+* C-x q command queries the user during kbd macro execution.
+ With prefix argument, enters recursive edit,
+  reading keyboard commands even within a kbd macro.
+  You can give different commands each time the macro executes.
+ Without prefix argument, reads a character.  Your options are:
+  Space -- execute the rest of the macro.
+  Delete -- skip the rest of the macro; start next repetition.
+  C-d -- skip rest of the macro and don't repeat it any more.
+  C-r -- enter a recursive edit, then on exit ask again for a character
+  C-l -- redisplay screen and ask again."
+
+* write-kbd-macro and append-kbd-macro are used to save
+ a kbd macro definition in a file (as Lisp code to
+ redefine the macro when the file is loaded).
+ These commands differ in that write-kbd-macro
+ discards the previous contents of the file.
+ If given a prefix argument, both commands
+ record the keys which invoke the macro as well as the
+ macro's definition.
+
+* The variable global-minor-modes is used to display
+ strings in the mode line of all buffers.  It should be
+ a list of elements thaht are conses whose cdrs are strings
+ to be displayed.  This complements the variable
+ minor-modes, which has the same effect but has a separate
+ value in each buffer.
+
+* C-x = describes horizontal scrolling in effect, if any.
+
+* Return now auto-fills the line it is ending, in auto fill mode.
+ Space with zero as argument auto-fills the line before it
+ just like Space without an argument.
+
+
+
+Changes in Emacs 1.8
+
+This release mostly fixes bugs.  There are a few new features:
+
+* apropos now sorts the symbols before displaying them.
+ Also, it returns a list of the symbols found.
+
+ apropos now accepts a second arg PRED which should be a function
+ of one argument; if PRED is non-nil, each symbol is tested
+ with PRED and only symbols for which PRED returns non-nil
+ appear in the output or the returned list.
+
+ If the third argument to apropos is non-nil, apropos does not
+ display anything; it merely returns the list of symbols found.
+
+ C-h a now runs the new function command-apropos rather than
+ apropos, and shows only symbols with definitions as commands.
+
+* M-x shell sends the command
+    if (-f ~/.emacs_NAME)source ~/.emacs_NAME
+ invisibly to the shell when it starts.  Here NAME
+ is replaced by the name of shell used,
+ as it came from your ESHELL or SHELL environment variable
+ but with directory name, if any, removed.
+
+* M-, now runs the command tags-loop-continue, which is used
+ to resume a terminated tags-search or tags-query-replace.
+
+
+
+Changes in Emacs 1.7
+
+It's Beat CCA Week.
+
+* The initial buffer is now called "*scratch*" instead of "scratch",
+ so that all buffer names used automatically by Emacs now have *'s.
+
+* Undo information is now stored separately for each buffer.
+ The Undo command (C-x u) always applies to the current
+ buffer only.
+
+ C-_ is now a synonym for C-x u.
+
+ (buffer-flush-undo BUFFER) causes undo information not to
+ be kept for BUFFER, and frees the space that would have
+ been used to hold it.  In any case, no undo information is
+ kept for buffers whose names start with spaces.  (These
+ buffers also do not appear in the C-x C-b display.)
+
+* Rectangle operations are now implemented.
+ C-x r stores the rectangle described by dot and mark
+ into a register; it reads the register name from the keyboard.
+ C-x g, the command to insert the contents of a register,
+ can be used to reinsert the rectangle elsewhere.
+
+ Other rectangle commands include
+  open-rectangle:
+    insert a blank rectangle in the position and size
+    described by dot and mark, at its corners;
+    the existing text is pushed to the right.
+  clear-rectangle:
+    replace the rectangle described by dot ane mark
+    with blanks.  The previous text is deleted.
+  delete-rectangle:
+    delete the text of the specified rectangle,
+    moving the text beyond it on each line leftward.
+
+* Side-by-side windows are allowed.  Use C-x 5 to split the
+ current window into two windows side by side.
+ C-x } makes the selected window ARG columns wider at the
+ expense of the windows at its sides.  C-x { makes the selected
+ window ARG columns narrower.  An argument to C-x 5 specifies
+ how many columns to give to the leftmost of the two windows made.
+
+ C-x 2 now accepts a numeric argument to specify the number of
+ lines to give to the uppermost of the two windows it makes.
+
+* Horizontal scrolling of the lines in a window is now implemented.
+ C-x < (scroll-left) scrolls all displayed lines left,
+ with the numeric argument (default 1) saying how far to scroll.
+ When the window is scrolled left, some amount of the beginning
+ of each nonempty line is replaced by an "$".
+ C-x > scrolls right.  If a window has no text hidden at the left
+ margin, it cannot be scrolled any farther right than that.
+ When nonzero leftwards scrolling is in effect in a window.
+ lines are automatically truncated at the window's right margin
+ regardless of the value of the variable truncate-lines in the
+ buffer being displayed.
+
+* C-x C-d now uses the default output format of `ls',
+ which gives just file names in multiple columns.
+ C-u C-x C-d passes the -l switch to `ls'.
+
+* C-t at the end of a line now exchanges the two preceding characters.
+
+ All the transpose commands now interpret zero as an argument
+ to mean to transpose the textual unit after or around dot
+ with the one after or around the mark.
+
+* M-! executes a shell command in an inferior shell
+ and displays the output from it.  With a prefix argument,
+ it inserts the output in the current buffer after dot
+ and sets the mark after the output.  The shell command
+ gets /dev/null as its standard input.
+
+ M-| is like M-! but passes the contents of the region
+ as input to the shell command.  A prefix argument makes
+ the output from the command replace the contents of the region.
+
+* The mode line will now say "Def" after the major mode
+ while a keyboard macro is being defined.
+
+* The variable fill-prefix is now used by Meta-q.
+ Meta-q removes the fill prefix from lines that start with it
+ before filling, and inserts the fill prefix on each line
+ after filling.
+
+ The command C-x . sets the fill prefix equal to the text
+ on the current line before dot.
+
+* The new command Meta-j (indent-new-comment-line),
+ is like Linefeed (indent-new-line) except when dot is inside a comment;
+ in that case, Meta-j inserts a comment starter on the new line,
+ indented under the comment starter above.  It also inserts
+ a comment terminator at the end of the line above,
+ if the language being edited calls for one.
+
+* Rmail should work correctly now, and has some C-h m documentation.
+
+
+
+Changes in Emacs 1.6
+
+* save-buffers-kill-emacs is now on C-x C-c
+ while C-x C-z does suspend-emacs.  This is to make
+ C-x C-c like the normal Unix meaning of C-c
+ and C-x C-z linke the normal Unix meaning of C-z.
+
+* M-ESC (eval-expression) is now a disabled command by default.
+ This prevents users who type ESC ESC accidentally from
+ getting confusing results.  Put
+    (put 'eval-expression 'disabled nil)
+ in your ~/.emacs file to enable the command.
+
+* Self-inserting text is grouped into bunches for undoing.
+ Each C-x u command undoes up to 20 consecutive self-inserting
+ characters.
+
+* Help f now uses as a default the function being called
+ in the innermost Lisp expression that dot is in.
+ This makes it more convenient to use while writing
+ Lisp code to run in Emacs.
+ (If the text around dot does not appear to be a call
+ to a Lisp function, there is no default.)
+
+ Likewise, Help v uses the symbol around or before dot
+ as a default, if that is a variable name.
+
+* Commands that read filenames now insert the default
+ directory in the minibuffer, to become part of your input.
+ This allows you to see what the default is.
+ You may type a filename which goes at the end of the
+ default directory, or you may edit the default directory
+ as you like to create the input you want to give.
+ You may also type an absolute pathname (starting with /)
+ or refer to a home directory (input starting with ~)
+ after the default; the presence of // or /~ causes
+ everything up through the slash that precedes your
+ type-in to be ignored.
+
+ Returning the default directory without change,
+ including the terminating slash, requests the use
+ of the default file name (usually the visited file's name).
+
+ Set the variable insert-default-directory to nil
+ to turn off this feature.
+
+* M-x shell now uses the environment variable ESHELL,
+ if it exists, as the file name of the shell to run.
+ If there is no ESHELL variable, the SHELL variable is used.
+ This is because some shells do not work properly as inferiors
+ of Emacs (or anything like Emacs).
+
+* A new variable minor-modes now exists, with a separate value
+ in each buffer.  Its value should be an alist of elements
+ (MODE-FUNCTION-SYMBOL . PRETTY-NAME-STRING), one for each
+ minor mode that is turned on in the buffer.  The pretty
+ name strings are displayed in the mode line after the name of the
+ major mode (with spaces between them).  The mode function
+ symbols should be symbols whose function definitions will
+ turn on the minor mode if given 1 as an argument; they are present
+ so that Help m can find their documentation strings.
+
+* The format of tag table files has been changed.
+ The new format enables Emacs to find tags much faster.
+
+ A new program, etags, exists to make the kind of
+ tag table that Emacs wants.  etags is invoked just
+ like ctags; in fact, if you give it any switches,
+ it does exactly what ctags would do.  Give it the
+ empty switch ("-") to make it act like ctags with no switches.
+
+ etags names the tag table file "TAGS" rather than "tags",
+ so that these tag tables and the standard Unix ones
+ can coexist.
+
+ The tags library can no longer use standard ctags-style
+ tag tables files.
+
+* The file of Lisp code Emacs reads on startup is now
+ called ~/.emacs rather than ~/.emacs_pro.
+
+* copy-file now gives the copied file the same mode bits
+ as the original file.
+
+* Output from a process inserted into the process's buffer
+ no longer sets the buffer's mark.  Instead it sets a
+ marker associated with the process to point to the end
+ of the inserted text.  You can access this marker with
+    (process-mark PROCESS)
+ and then either examine its position with marker-position
+ or set its position with set-marker.
+
+* completing-read takes a new optional fifth argument which,
+ if non-nil, should be a string of text to insert into
+ the minibuffer before reading user commands.
+
+* The Lisp function elt now exists:
+ (elt ARRAY N) is like (aref ARRAY N),
+ (elt LIST N) is like (nth N LIST).
+
+* rplaca is now a synonym for setcar, and rplacd for setcdr.
+ eql is now a synonym for eq; it turns out that the Common Lisp
+ distinction between eq and eql is insignificant in Emacs.
+ numberp is a new synonym for integerp.
+
+* auto-save has been renamed to auto-save-mode.
+
+* Auto save file names for buffers are now created by the
+ function make-auto-save-file-name.  This is so you can
+ redefine that function to change the way auto save file names
+ are chosen.
+
+* expand-file-name no longer discards a final slash.
+    (expand-file-name "foo" "/lose") => "/lose/foo"
+    (expand-file-name "foo/" "/lose") => "/lose/foo/"
+
+ Also, expand-file-name no longer substitutes $ constructs.
+ A new function substitute-in-file-name does this.  Reading
+ a file name with read-file-name or the `f' or`F' option
+ of interactive calling uses substitute-in-file-name
+ on the file name that was read and returns the result.
+
+ All I/O primitives including insert-file-contents and
+ delete-file call expand-file-name on the file name supplied.
+ This change makes them considerably faster in the usual case.
+
+* Interactive calling spec strings allow the new code letter 'D'
+ which means to read a directory name.  It is like 'f' except
+ that the default if the user makes no change in the minibuffer
+ is to return the current default directory rather than the
+ current visited file name.
+
+
+
+Changes in Emacs 1.5
+
+* suspend-emacs now accepts an optional argument
+ which is a string to be stuffed as terminal input
+ to be read by Emacs's superior shell after Emacs exits.
+
+ A library called ledit exists which uses this feature
+ to transmit text to a Lisp job running as a sibling of
+ Emacs.
+
+* If find-file is given the name of a directory,
+ it automatically invokes dired on that directory
+ rather than reading in the binary data that make up
+ the actual contents of the directory according to Unix.
+
+* Saving an Emacs buffer now preserves the file modes
+ of any previously existing file with the same name.
+ This works using new Lisp functions file-modes and
+ set-file-modes, which can be used to read or set the mode
+ bits of any file.
+
+* The Lisp function  cond  now exists, with its traditional meaning.
+
+* defvar and defconst now permit the documentation string
+ to be omitted.  defvar also permits the initial value
+ to be omitted; then it acts only as a comment.
+
+
+
+Changes in Emacs 1.4
+
+* Auto-filling now normally indents the new line it creates
+ by calling indent-according-to-mode.  This function, meanwhile,
+ has in Fundamental and Text modes the effect of making the line
+ have an indentation of the value of left-margin, a per-buffer variable.
+
+ Tab no longer precisely does indent-according-to-mode;
+ it does that in all modes that supply their own indentation routine,
+ but in Fundamental, Text and allied modes it inserts a tab character.
+
+* The command M-x grep now invokes grep (on arguments
+ supplied by the user) and reads the output from grep
+ asynchronously into a buffer.  The command C-x ` can
+ be used to move to the lines that grep has found.
+ This is an adaptation of the mechanism used for
+ running compilations and finding the loci of error messages.
+
+ You can now use C-x ` even while grep or compilation
+ is proceeding; as more matches or error messages arrive,
+ C-x ` will parse them and be able to find them.
+
+* M-x mail now provides a command to send the message
+ and "exit"--that is, return to the previously selected
+ buffer.  It is C-z C-z.
+
+* Tab in C mode now tries harder to adapt to all indentation styles.
+ If the line being indented is a statement that is not the first
+ one in the containing compound-statement, it is aligned under
+ the beginning of the first statement.
+
+* The functions screen-width and screen-height return the
+ total width and height of the screen as it is now being used.
+ set-screen-width and set-screen-height tell Emacs how big
+ to assume the screen is; they each take one argument,
+ an integer.
+
+* The Lisp function 'function' now exists.  function is the
+ same as quote, except that it serves as a signal to the
+ Lisp compiler that the argument should be compiled as
+ a function.  Example:
+   (mapcar (function (lambda (x) (+ x 5))) list)
+
+* The function set-key has been renamed to global-set-key.
+ undefine-key and local-undefine-key has been renamed to
+ global-unset-key and local-unset-key.
+
+* Emacs now collects input from asynchronous subprocesses
+ while waiting in the functions sleep-for and sit-for.
+
+* Shell mode's Newline command attempts to distinguish subshell
+ prompts from user input when issued in the middle of the buffer.
+ It no longer reexecutes from dot to the end of the line;
+ it reeexecutes the entire line minus any prompt.
+ The prompt is recognized by searching for the value of
+ shell-prompt-pattern, starting from the beginning of the line.
+ Anything thus skipped is not reexecuted.
+
+
+
+Changes in Emacs 1.3
+
+* An undo facility exists now.  Type C-x u to undo a batch of
+ changes (usually one command's changes, but some commands
+ such as query-replace divide their changes into multiple
+ batches.  You can repeat C-x u to undo further.  As long
+ as no commands other than C-x u intervene, each one undoes
+ another batch.  A numeric argument to C-x u acts as a repeat
+ count.
+
+ If you keep on undoing, eventually you may be told that
+ you have used up all the recorded undo information.
+ Some actions, such as reading in files, discard all
+ undo information.
+
+ The undo information is not currently stored separately
+ for each buffer, so it is mainly good if you do something
+ totally spastic.  [This has since been fixed.]
+
+* A learn-by-doing tutorial introduction to Emacs now exists.
+ Type C-h t to enter it.
+
+* An Info documentation browser exists.  Do M-x info to enter it.
+ It contains a tutorial introduction so that no more documentation
+ is needed here.  As of now, the only documentation in it
+ is that of Info itself.
+
+* Help k and Help c are now different.  Help c prints just the
+ name of the function which the specified key invokes.  Help k
+ prints the documentation of the function as well.
+
+* A document of the differences between GNU Emacs and Twenex Emacs
+ now exists.  It is called DIFF, in the same directory as this file.
+
+* C mode can now indent comments better, including multi-line ones.
+ Meta-Control-q now reindents comment lines within the expression
+ being aligned.
+
+* Insertion of a close-parenthesis now shows the matching open-parenthesis
+ even if it is off screen, by printing the text following it on its line
+ in the minibuffer.
+
+* A file can now contain a list of local variable values
+ to be in effect when the file is edited.  See the file DIFF
+ in the same directory as this file for full details.
+
+* A function nth is defined.  It means the same thing as in Common Lisp.
+
+* The function install-command has been renamed to set-key.
+ It now takes the key sequence as the first argument
+ and the definition for it as the second argument.
+ Likewise, local-install-command has been renamed to local-set-key.
+
+
+
+Changes in Emacs 1.2
+
+* A Lisp single-stepping and debugging facility exists.
+ To cause the debugger to be entered when an error
+ occurs, set the variable debug-on-error non-nil.
+
+ To cause the debugger to be entered whenever function foo
+ is called, do (debug-on-entry 'foo).  To cancel this,
+ do (cancel-debug-on-entry 'foo).  debug-on-entry does
+ not work for primitives (written in C), only functions
+ written in Lisp.  Most standard Emacs commands are in Lisp.
+
+ When the debugger is entered, the selected window shows
+ a buffer called " *Backtrace" which displays a series
+ of stack frames, most recently entered first.  For each
+ frame, the function name called is shown, usually followed
+ by the argument values unless arguments are still being
+ calculated.  At the beginning of the buffer is a description
+ of why the debugger was entered: function entry, function exit,
+ error, or simply that the user called the function `debug'.
+
+ To exit the debugger and return to top level, type `q'.
+
+ In the debugger, you can evaluate Lisp expressions by
+ typing `e'.  This is equivalent to `M-ESC'.
+
+ When the debugger is entered due to an error, that is
+ all you can do.  When it is entered due to function entry
+ (such as, requested by debug-on-entry), you have two
+ options:
+  Continue execution and reenter debugger after the
+    completion of the function being entered.  Type `c'.
+  Continue execution but enter the debugger before
+    the next subexpression.  Type `d'.
+
+ You will see that some stack frames are marked with *.
+ This means the debugger will be entered when those
+ frames exit.  You will see the value being returned
+ in the first line of the backtrace buffer.  Your options:
+  Continue execution, and return that value.  Type `c'.
+  Continue execution, and return a specified value.  Type `r'.
+
+ You can mark a frame to enter the debugger on exit
+ with the `b' command, or clear such a mark with `u'.
+
+* Lisp macros now exist.
+ For example, you can write
+    (defmacro cadr (arg) (list 'car (list 'cdr arg)))
+ and then the expression
+    (cadr foo)
+ will expand into
+    (car (cdr foo))
+
+
+
+Changes in Emacs 1.1
+
+* The initial buffer is now called "scratch" and is in a
+ new major mode, Lisp Interaction mode.  This mode is
+ intended for typing Lisp expressions, evaluating them,
+ and having the values printed into the buffer.
+
+  Type Linefeed after a Lisp expression, to evaluate the
+ expression and have its value printed into the buffer,
+ advancing dot.
+
+ The other commands of Lisp mode are available.
+
+* The C-x C-e command for evaluating the Lisp expression
+ before dot has been changed to print the value in the
+ minibuffer line rather than insert it in the buffer.
+ A numeric argument causes the printed value to appear
+ in the buffer instead.
+
+* In Lisp mode, the command M-C-x evaluates the defun
+ containing or following dot.  The value is printed in
+ the minibuffer.
+
+* The value of a Lisp expression evaluated using M-ESC
+ is now printed in the minibuffer.
+
+* M-q now runs fill-paragraph, independent of major mode.
+
+* C-h m now prints documentation on the current buffer's
+ major mode.  What it prints is the documentation of the
+ major mode name as a function.  All major modes have been
+ equipped with documentation that describes all commands
+ peculiar to the major mode, for this purpose.
+
+* You can display a Unix manual entry with
+ the M-x manual-entry command.
+
+* You can run a shell, displaying its output in a buffer,
+ with the M-x shell command.  The Return key sends input
+ to the subshell.  Output is printed inserted automatically
+ in the buffer.  Commands C-c, C-d, C-u, C-w and C-z are redefined
+ for controlling the subshell and its subjobs.
+ "cd", "pushd" and "popd" commands are recognized as you
+ enter them, so that the default directory of the Emacs buffer
+ always remains the same as that of the subshell.
+
+* C-x $ (that's a real dollar sign) controls line-hiding based
+ on indentation.  With a numeric arg N > 0, it causes all lines
+ indented by N or more columns to become invisible.
+ They are, effectively, tacked onto the preceding line, where
+ they are represented by " ..." on the screen.
+ (The end of the preceding visible line corresponds to a
+ screen cursor position before the "...".  Anywhere in the
+ invisible lines that follow appears on the screen as a cursor
+ position after the "...".)
+ Currently, all editing commands treat invisible lines just
+ like visible ones, except for C-n and C-p, which have special
+ code to count visible lines only.
+ C-x $ with no argument turns off this mode, which in any case
+ is remembered separately for each buffer.
+
+* Outline mode is another form of selective display.
+ It is a major mode invoked with M-x outline-mode.
+ It is intended for editing files that are structured as
+ outlines, with heading lines (lines that begin with one
+ or more asterisks) and text lines (all other lines).
+ The number of asterisks in a heading line are its level;
+ the subheadings of a heading line are all following heading
+ lines at higher levels, until but not including the next
+ heading line at the same or a lower level, regardless
+ of intervening text lines.
+
+  In outline mode, you have commands to hide (remove from display)
+ or show the text or subheadings under each heading line
+ independently.  Hidden text or subheadings are invisibly
+ attached to the end of the preceding heading line, so that
+ if you kill the hading line and yank it back elsewhere
+ all the invisible lines accompany it.
+
+  All editing commands treat hidden outline-mode lines
+ as part of the preceding visible line.
+
+* C-x C-z runs save-buffers-kill-emacs
+ offers to save each file buffer, then exits.
+
+* C-c's function is now called suspend-emacs.
+
+* The command C-x m runs mail, which switches to a buffer *mail*
+ and lets you compose a message to send.  C-x 4 m runs mail in
+ another window.  Type C-z C-s in the mail buffer to send the
+ message according to what you have entered in the buffer.
+
+  You must separate the headers from the message text with
+ an empty line.
+
+* You can now dired partial directories (specified with names
+ containing *'s, etc, all processed by the shell).  Also, you
+ can dired more than one directory; dired names the buffer
+ according to the filespec or directory name.  Reinvoking
+ dired on a directory already direded just switches back to
+ the same directory used last time; do M-x revert if you want
+ to read in the current contents of the directory.
+
+  C-x d runs dired, and C-x 4 d runs dired in another window.
+
+  C-x C-d (list-directory) also allows partial directories now.
+
+
+Lisp programming changes
+
+* t as an output stream now means "print to the minibuffer".
+ If there is already text in the minibuffer printed via t
+ as an output stream, the new text is appended to the old
+ (or is truncated and lost at the margin).  If the minibuffer
+ contains text put there for some other reason, it is cleared
+ first.
+
+  t is now the top-level value of standard-output.
+
+  t as an input stream now means "read via the minibuffer".
+ The minibuffer is used to read a line of input, with editing,
+ and this line is then parsed.  Any excess not used by `read'
+ is ignored; each `read' from t reads fresh input.
+ t is now the top-level value of standard-input.
+
+* A marker may be used as an input stream or an output stream.
+ The effect is to grab input from where the marker points,
+ advancing it over the characters read, or to insert output
+ at the marker and advance it.
+
+* Output from an asynchronous subprocess is now inserted at
+ the end of the associated buffer, not at the buffer's dot,
+ and the buffer's mark is set to the end of the inserted output
+ each time output is inserted.
+
+* (pos-visible-in-window-p POS WINDOW)
+ returns t if position POS in WINDOW's buffer is in the range
+ that is being displayed in WINDOW; nil if it is scrolled
+ vertically out of visibility.
+
+  If display in WINDOW is not currently up to date, this function
+ calculates carefully whether POS would appear if display were
+ done immediately based on the current (window-start WINDOW).
+
+  POS defaults to (dot), and WINDOW to (selected-window).
+
+* Variable buffer-alist replaced by function (buffer-list).
+ The actual alist of buffers used internally by Emacs is now
+ no longer accessible, to prevent the user from crashing Emacs
+ by modifying it.  The function buffer-list returns a list
+ of all existing buffers.  Modifying this list cannot hurt anything
+ as a new list is constructed by each call to buffer-list.
+
+* load now takes an optional third argument NOMSG which, if non-nil,
+ prevents load from printing a message when it starts and when
+ it is done.
+
+* byte-recompile-directory is a new function which finds all
+ the .elc files in a directory, and regenerates each one which
+ is older than the corresponding .el (Lisp source) file.
+
+
+
+----------------------------------------------------------------------
+Copyright information:
+
+Copyright (C) 1985, 1986, 2006 Richard M. Stallman
+
+   Permission is granted to anyone to make or distribute verbatim copies
+   of this document as received, in any medium, provided that the
+   copyright notice and this permission notice are preserved,
+   thus giving the recipient permission to redistribute in turn.
+
+   Permission is granted to distribute modified versions
+   of this document, or of portions of it,
+   under the above conditions, provided also that they
+   carry prominent notices stating who last changed them.
+
+Local variables:
+mode: text
+end:
+
+arch-tag: 33dc900d-9c58-473b-87c9-b6d7222323ea
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/NEWS.18	Sun Jun 04 01:01:51 2006 +0000
@@ -0,0 +1,1620 @@
+GNU Emacs NEWS -- history of user-visible changes.  17-Aug-1988
+Copyright (C) 1988, 2006 Free Software Foundation, Inc.
+See the end for copying conditions.
+
+This file is about changes in emacs version 18.
+
+
+
+Changes in version 18.52.
+
+* X windows version 10 is supported under system V.
+
+* Pop-up menus are now supported with the same Lisp interface in
+both version 10 and 11 of X windows.
+
+* C-x 4 a is a new command to edit a change-log entry in another window.
+
+* The emacs client program now allows an option +NNN to specify the
+line number to go to in the file whose name follows.  Thus,
+    emacsclient foo.c +45 bar.c
+will find the files `foo.c' and `bar.c', going to line 45 in `bar.c'.
+
+* Dired allows empty directories to be deleted like files.
+
+* When the terminal type is used to find a terminal-specific file to
+run, Emacs now tries the entire terminal type first.  If that doesn't
+yield a file that exists, the last hyphen and what follows it is
+stripped.  If that doesn't yield a file that exists, the previous
+hyphen is stripped, and so on until all hyphens are gone.  For
+example, if the terminal type is `aaa-48-foo', Emacs will try first
+`term/aaa-48-foo.el', then `term/aaa-48.el' and finally `term/aaa.el'.
+
+Underscores now receive the same treatment as hyphens.
+
+* Texinfo features: @defun, etc.  texinfo-show-structure.
+New template commands.  texinfo-format-region.
+
+* The special "local variable" `eval' is now ignored if you are running
+as root.
+
+* New command `c-macro-expand' shows the result of C macro expansion
+in the region.  It works using the C preprocessor, so its results
+are completely accurate.
+
+* Errors in trying to auto save now flash error messages for a few seconds.
+
+* Killing a buffer now sends SIGHUP to the buffer's process.
+
+* New hooks.
+
+** `spell-region' now allows you to filter the text before spelling-checking.
+If the value of `spell-filter' is non-nil, it is called, with no arguments,
+looking at a temporary buffer containing a copy of the text to be checked.
+It can alter the text freely before the spell program sees it.
+
+** The variable `lpr-command' now specifies the command to be used when
+you use the commands to print text (such as M-x print-buffer).
+
+** Posting netnews now calls the value of `news-inews-hook' (if not nil)
+as a function of no arguments before the actual posting.
+
+** Rmail now calls the value of `rmail-show-message-hook' (if not nil)
+as a function of no arguments, each time a new message is selected.
+
+** `kill-emacs' calls the value of `kill-emacs-hook' as a function of no args.
+
+* New libraries.
+See the source code of each library for more information.
+
+** icon.el: a major mode for editing programs written in Icon.
+
+** life.el: a simulator for the cellular automaton "life".  Load the
+library and run M-x life.
+
+** doctex.el: a library for converting the Emacs `etc/DOC' file of
+documentation strings into TeX input.
+
+** saveconf.el: a library which records the arrangement of windows and
+buffers when you exit Emacs, and automatically recreates the same
+setup the next time you start Emacs.
+
+** uncompress.el: a library that automatically uncompresses files
+when you visit them.
+
+** c-fill.el: a mode for editing filled comments in C.
+
+** kermit.el: an extended version of shell-mode designed for running kermit.
+
+** spook.el: a library for adding some "distract the NSA" keywords to every
+message you send.
+
+** hideif.el: a library for hiding parts of a C program based on preprocessor
+conditionals.
+
+** autoinsert.el: a library to put in some initial text when you visit
+a nonexistent file.  The text used depends on the major mode, and
+comes from a directory of files created by you.
+
+* New programming features.
+
+** The variable `window-system-version' now contains the version number
+of the window system you are using (if appropriate).  When using X windows,
+its value is either 10 or 11.
+
+** (interactive "N") uses the prefix argument if any; otherwise, it reads
+a number using the minibuffer.
+
+** VMS: there are two new functions `vms-system-info' and `shrink-to-icon'.
+The former allows you to get many kinds of system status information.
+See its self-documentation for full details.
+The second is used with the window system: it iconifies the Emacs window.
+
+** VMS: the new function `define-logical-name' allows you to create
+job-wide logical names.  The old function `define-dcl-symbol' has been
+removed.
+
+
+
+Changes in version 18.50.
+
+* X windows version 11 is supported.
+
+Define X11 in config.h if you want X version 11 instead of version 10.
+
+* The command M-x gdb runs the GDB debugger as an inferior.
+It asks for the filename of the executable you want to debug.
+
+GDB runs as an inferior with I/O through an Emacs buffer.  All the
+facilities of Shell mode are available.  In addition, each time your
+program stops, and each time you select a new stack frame, the source
+code is displayed in another window with an arrow added to the line
+where the program is executing.
+
+Special GDB-mode commands include M-s, M-n, M-i, M-u, M-d, and C-c C-f
+which send the GDB commands `step', `next', `stepi', `up', `down'
+and `finish'.
+
+In any source file, the commands C-x SPC tells GDB to set a breakpoint
+on the current line.
+
+* M-x calendar displays a three-month calendar.
+
+* C-u 0 C-x C-s never makes a backup file.
+
+This is a way you can explicitly request not to make a backup.
+
+* `term-setup-hook' is for users only.
+
+Emacs never uses this variable for internal purposes, so you can freely
+set it in your `.emacs' file to make Emacs do something special after
+loading any terminal-specific setup file from `lisp/term'.
+
+* `copy-keymap' now copies recursive submaps.
+
+* New overlay-arrow feature.
+
+If you set the variable `overlay-arrow-string' to a string
+and `overlay-arrow-position' to a marker, that string is displayed on
+the screen at the position of that marker, hiding whatever text would
+have appeared there.  If that position isn't on the screen, or if
+the buffer the marker points into isn't displayed, there is no effect.
+
+* -batch mode can read from the terminal.
+
+It now works to use `read-char' to do terminal input in a noninteractive
+Emacs run.  End of file causes Emacs to exit.
+
+* Variables `data-bytes-used' and `data-bytes-free' removed.
+
+These variables cannot really work because the 24-bit range of an
+integer in (most ports of) GNU Emacs is not large enough to hold their
+values on many systems.
+
+
+
+Changes in version 18.45, since version 18.41.
+
+* C indentation parameter `c-continued-brace-offset'.
+
+This parameter's value is added to the indentation of any
+line that is in a continuation context and starts with an open-brace.
+For example, it applies to the open brace shown here:
+
+     if (x)
+       {
+
+The default value is zero.
+
+* Dabbrev expansion (Meta-/) preserves case.
+
+When you use Meta-/ to search the buffer for an expansion of an
+abbreviation, if the expansion found is all lower case except perhaps
+for its first letter, then the case pattern of the abbreviation
+is carried over to the expansion that replaces it.
+
+* TeX-mode syntax.
+
+\ is no longer given "escape character" syntax in TeX mode.  It now
+has the syntax of an ordinary punctuation character.  As a result,
+\[...\] and such like are considered to balance each other.
+
+* Mail-mode automatic Reply-to field.
+
+If the variable `mail-default-reply-to' is non-`nil', then each time
+you start to compose a message, a Reply-to field is inserted with
+its contents taken from the value of `mail-default-reply-to'.
+
+* Where is your .emacs file?
+
+If you run Emacs under `su', so your real and effective uids are
+different, Emacs uses the home directory associated with the real uid
+(the name you actually logged in under) to find the .emacs file.
+
+Otherwise, Emacs uses the environment variable HOME to find the .emacs
+file.
+
+The .emacs file is not loaded at all if -batch is specified.
+
+* Prolog mode is the default for ".pl" files.
+
+* File names are not case-sensitive on VMS.
+
+On VMS systems, all file names that you specify are converted to upper
+case.  You can use either upper or lower case indiscriminately.
+
+* VMS-only function 'define-dcl-symbol'.
+
+This is a new name for the function formerly called
+`define-logical-name'.
+
+
+
+Editing Changes in Emacs 18
+
+* Additional systems and machines are supported.
+
+GNU Emacs now runs on Vax VMS.  However, many facilities that are normally
+implemented by running subprocesses do not work yet.  This includes listing
+a directory and sending mail.  There are features for running subprocesses
+but they are incompatible with those on Unix.  I hope that some of
+the VMS users can reimplement these features for VMS (compatibly for
+the user, if possible).
+
+VMS wizards are also asked to work on making the subprocess facilities
+more upward compatible with those on Unix, and also to rewrite their
+internals to use the same Lisp objects that are used on Unix to
+represent processes.
+
+In addition, the TI Nu machine running Unix system V, the AT&T 3b, and
+the Wicat, Masscomp, Integrated Solutions, Alliant, Amdahl uts, Mips,
+Altos 3068 and Gould Unix systems are now supported.  The IBM PC-RT is
+supported under 4.2, but not yet under system V.  The GEC 93 is close
+to working.  The port for the Elxsi is partly merged.  See the file
+MACHINES for full status information and machine-specific installation
+advice.
+
+* Searching is faster.
+
+Forward search for a text string, or for a regexp that is equivalent
+to a text string, is now several times faster.  Motion by lines and
+counting lines is also faster.
+
+* Memory usage improvements.
+
+It is no longer possible to run out of memory during garbage
+collection.  As a result, running out of memory is never fatal.  This
+is due to a new garbage collection algorithm which compactifies
+strings in place rather than copying them.  Another consequence of the
+change is a reduction in total memory usage and a slight increase in
+garbage collection speed.
+
+* Display changes.
+
+** Editing above top of screen.
+
+When you delete or kill or alter text that reaches to the top of the
+screen or above it, so that display would start in the middle of a
+line, Emacs will usually attempt to scroll the text so that display
+starts at the beginning of a line again.
+
+** Yanking in the minibuffer.
+
+The message "Mark Set" is no longer printed when the minibuffer is
+active.  This is convenient with many commands, including C-y, that
+normally print such a message.
+
+** Cursor appears in last line during y-or-n questions.
+
+Questions that want a `y' or `n' answer now move the cursor
+to the last line, following the question.
+
+* Library loading changes.
+
+`load' now considers all possible suffixes (`.elc', `.el' and none)
+for each directory in `load-path' before going on to the next directory.
+It now accepts an optional fourth argument which, if non-nil, says to
+use no suffixes; then the file name must be given in full.  The search
+of the directories in `load-path' goes on as usual in this case, but
+it too can be prevented by passing an absolute file name.
+
+The value of `load-path' no longer by default includes nil (meaning to
+look in the current default directory).  The idea is that `load' should
+be used to search the path only for libraries to be found in the standard
+places.  If you want to override system libraries with your own, place
+your own libraries in one special directory and add that directory to the
+front of `load-path'.
+
+The function `load' is no longer a command; that is to say, `M-x load'
+is no longer allowed.  Instead, there are two commands for loading files.
+`M-x load-library' is equivalent to the old meaning of `M-x load'.
+`M-x load-file' reads a file name with completion and defaulting
+and then loads exactly that file, with no searching and no suffixes.
+
+* Emulation of other editors.
+
+** `edt-emulation-on' starts emulating DEC's EDT editor.
+
+Do `edt-emulation-off' to return Emacs to normal.
+
+** `vi-mode' and `vip-mode' starts emulating vi.
+
+These are two different vi emulations provided by GNU Emacs users.
+We are interested in feedback as to which emulation is preferable.
+
+See the documentation and source code for these functions
+for more information.
+
+** `set-gosmacs-bindings' emulates Gosling Emacs.
+
+This command changes many global bindings to resemble those of
+Gosling Emacs.  The previous bindings are saved and can be restored using
+`set-gnu-bindings'.
+
+* Emulation of a display terminal.
+
+Within Emacs it is now possible to run programs (such as emacs or
+supdup) which expect to do output to a visual display terminal.
+
+See the function `terminal-emulator' for more information.
+
+* New support for keypads and function keys.
+
+There is now a first attempt at terminal-independent support for
+keypad and function keys.
+
+Emacs now defines a standard set of key-names for function and keypad
+keys, and provides standard hooks for defining them.  Most of the
+standard key-names have default definitions built into Emacs; you can
+override these in a terminal-independent manner.  The default definitions
+and the conventions for redefining them are in the file `lisp/keypad.el'.
+
+These keys on the terminal normally work by sending sequences of
+characters starting with ESC.  The exact sequences used vary from
+terminal to terminal.  Emacs interprets them in two stages:
+in the first stage, terminal-dependent sequences are mapped into
+the standard key-names; then second stage maps the standard key-names
+into their definitions in a terminal-independent fashion.
+
+The terminal-specific file `term/$TERM.el' now is responsible only for
+establishing the mapping from the terminal's escape sequences into
+standard key-names.  It no longer knows what Emacs commands are
+assigned to the standard key-names.
+
+One other change in terminal-specific files: if the value of the TERM
+variable contains a hyphen, only the part before the first hyphen is
+used in forming the name of the terminal-specific file.  Thus, for
+terminal type `aaa-48', the file loaded is now `term/aaa.el' rather
+than `term/aaa-48.el'.
+
+* New startup command line options.
+
+`-i FILE' or `-insert FILE' in the command line to Emacs tells Emacs to
+insert the contents of FILE into the current buffer at that point in
+command line processing.  This is like using the command M-x insert-file.
+
+`-funcall', `-load', `-user' and `-no-init-file' are new synonyms for
+`-f', `-l', `-u' and `-q'.
+
+`-nw' means don't use a window system.  If you are using a terminal
+emulator on the X window system and you want to run Emacs to work through
+the terminal emulator instead of working directly with the window system,
+use this switch.
+
+* Buffer-sorting commands.
+
+Various M-x commands whose names start with `sort-' sort parts of
+the region:
+
+sort-lines	divides the region into lines and sorts them alphabetically.
+sort-pages	divides into pages and sorts them alphabetically.
+sort-paragraphs	divides into paragraphs and sorts them alphabetically.
+sort-fields	divides into lines and sorts them alphabetically
+		according to one field in the line.
+		The numeric argument specifies which field (counting
+		from field 1 at the beginning of the line).  Fields in a line
+		are separated by whitespace.
+sort-numeric-fields
+		is similar but converts the specified fields to numbers
+		and sorts them numerically.
+sort-columns	divides into lines and sorts them according to the contents
+		of a specified range of columns.
+
+Refer to the self-documentation of these commands for full usage information.
+
+* Changes in various commands.
+
+** `tags-query-replace' and `tags-search' change.
+
+These functions now display the name of the file being searched at the moment.
+
+** `occur' output now serves as a menu.  `occur-menu' command deleted.
+
+`M-x occur' now allows you to move quickly to any of the occurrences
+listed.  Select the `*Occur*' buffer that contains the output of `occur',
+move point to the occurrence you want, and type C-c C-c.
+This will move point to the same occurrence in the buffer that the
+occurrences were found in.
+
+The command `occur-menu' is thus obsolete, and has been deleted.
+
+One way to get a list of matching lines without line numbers is to
+copy the text to another buffer and use the command `keep-lines'.
+
+** Incremental search changes.
+
+Ordinary and regexp incremental searches now have distinct default
+search strings.  Thus, regexp searches recall only previous regexp
+searches.
+
+If you exit an incremental search when the search string is empty,
+the old default search string is kept.  The default does not become
+empty.
+
+Reversing the direction of an incremental search with C-s or C-r
+when the search string is empty now does not get the default search
+string.  It leaves the search string empty.  A second C-s or C-r
+will get the default search string.  As a result, you can do a reverse
+incremental regexp search with C-M-s C-r.
+
+If you add a `*', `?' or `\|' to an incremental search regexp,
+point will back up if that is appropriate.  For example, if
+you have searched for `ab' and add a `*', point moves to the
+first match for `ab*', which may be before the match for `ab'
+that was previously found.
+
+If an incremental search is failing and you ask to repeat it,
+it will start again from the beginning of the buffer (or the end,
+if it is a backward search).
+
+The search-controlling parameters `isearch-slow-speed' and
+`isearch-slow-window-lines' have now been renamed to start with
+`search' instead of `isearch'.  Now all the parameters' names start
+with `search'.
+
+If `search-slow-window-lines' is negative, the slow search window
+is put at the top of the screen, and the absolute value or the
+negative number specifies the height of it.
+
+** Undo changes
+
+The undo command now will mark the buffer as unmodified only when it is
+identical to the contents of the visited file.
+
+** C-M-v in minibuffer.
+
+If while in the minibuffer you request help in a way that uses a
+window to display something, then until you exit the minibuffer C-M-v
+in the minibuffer window scrolls the window of help.
+
+For example, if you request a list of possible completions, C-M-v can
+be used reliably to scroll the completion list.
+
+** M-TAB command.
+
+Meta-TAB performs completion on the Emacs Lisp symbol names.  The sexp
+in the buffer before point is compared against all existing nontrivial
+Lisp symbols and completed as far as is uniquely determined by them.
+Nontrivial symbols are those with either function definitions, values
+or properties.
+
+If there are multiple possibilities for the very next character, a
+list of possible completions is displayed.
+
+** Dynamic abbreviation package.
+
+The new command Meta-/ expands an abbreviation in the buffer before point
+by searching the buffer for words that start with the abbreviation.
+
+** Changes in saving kbd macros.
+
+The commands `write-kbd-macro' and `append-kbd-macro' have been
+deleted.  The way to save a keyboard macro is to use the new command
+`insert-kbd-macro', which inserts Lisp code to define the macro as
+it is currently defined into the buffer before point.  Visit a Lisp
+file such as your Emacs init file `~/.emacs', insert the macro
+definition (perhaps deleting an old definition for the same macro)
+and then save the file.
+
+** C-x ' command.
+
+The new command C-x ' (expand-abbrev) expands the word before point as
+an abbrev, even if abbrev-mode is not turned on.
+
+** Sending to inferior Lisp.
+
+The command C-M-x in Lisp mode, which sends the current defun to
+an inferior Lisp process, now works by writing the text into a temporary
+file and actually sending only a `load'-form to load the file.
+As a result, it avoids the Unix bugs that used to strike when the
+text was above a certain length.
+
+With a prefix argument, this command now makes the inferior Lisp buffer
+appear on the screen and scrolls it so that the bottom is showing.
+
+Two variables `inferior-lisp-load-command' and `inferior-lisp-prompt',
+exist to customize these feature for different Lisp implementations.
+
+** C-x p now disabled.
+
+The command C-x p, a nonrecomended command which narrows to the current
+page, is now initially disabled like C-x n.
+
+* Dealing with files.
+
+** C-x C-v generalized
+
+This command is now allowed even if the current buffer is not visiting
+a file.  As usual, it kills the current buffer and replaces it with a
+newly found file.
+
+** M-x recover-file improved; auto save file names changed.
+
+M-x recover-file now checks whether the last auto-save file is more
+recent than the real visited file before offering to read in the
+auto-save file.  If the auto-save file is newer, a directory listing
+containing the two files is displayed while you are asked whether you
+want the auto save file.
+
+Visiting a file also makes this check.  If the auto-save file is more recent,
+a message is printed suggesting that you consider using M-x recover file.
+
+Auto save file names now by default have a `#' at the end as well
+as at the beginning.  This is so that `*.c' in a shell command
+will never match auto save files.
+
+On VMS, auto save file names are made by appending `_$' at the front
+and `$' at the end.
+
+When you change the visited file name of a buffer, the auto save file
+is now renamed to belong to the new visited file name.
+
+You can customize the way auto save file names are made by redefining
+the two functions `make-auto-save-file-name' and `auto-save-file-name-p',
+both of which are defined in `files.el'.
+
+** Modifying a buffer whose file is changed on disk is detected instantly.
+
+On systems where clash detection (locking of files being edited) is
+implemented, Emacs also checks the first time you modify a buffer
+whether the file has changed on disk since it was last visited or saved.
+If it has, you are asked to confirm that you want to change the buffer.
+
+** Exiting Emacs offers to save `*mail*'.
+
+Emacs can now know about buffers that it should offer to save on exit
+even though they are not visiting files.  This is done for any buffer
+which has a non-nil local value of `buffer-offer-save'.  By default,
+Mail mode provides such a local value.
+
+** Backup file changes.
+
+If a backup file cannot be written in the directory of the visited file
+due to fascist file protection, a backup file is now written in your home
+directory as `~/%backup%~'.  Only one such file is made, ever, so only
+the most recently made such backup is available.
+
+When backup files are made by copying, the last-modification time of the
+original file is now preserved in the backup copy.
+
+** Visiting remote files.
+
+On an internet host, you can now visit and save files on any other
+internet host directly from Emacs with the commands M-x ftp-find-file
+and M-x ftp-write-file.  Specify an argument of the form HOST:FILENAME.
+Since standard internet FTP is used, the other host may be any kind
+of machine and is not required to have any special facilities.
+
+The first time any one remote host is accessed, you will be asked to
+give the user name and password for use on that host.  FTP is reinvoked
+each time you ask to use it, but previously specified user names and
+passwords are remembered automatically.
+
+** Dired `g' command.
+
+`g' in Dired mode is equivalent to M-x revert-buffer; it causes the
+current contents of the same directory to be read in.
+
+* Changes in major modes.
+
+** C mode indentation change.
+
+The binding of Linefeed is no longer changed by C mode.  It once again
+has its normal meaning, which is to insert a newline and then indent
+afterward.
+
+The old definition did one additional thing: it reindented the line
+before the new newline.  This has been removed because it made the
+command twice as slow.  The only time it was really useful was after the
+insertion of an `else', since the fact of starting with `else' may change
+the way that line is indented.  Now you will have to type TAB again
+yourself to reindent the `else' properly.
+
+If the variable `c-tab-always-indent' is set to `nil', the TAB command
+in C mode, with no argument, will just insert a tab character if there
+is non-whitespace preceding point on the current line.  Giving it a
+prefix argument will force reindentation of the line (as well as
+of the compound statement that begins after point, if any).
+
+** Fortran mode now exists.
+
+This mode provides commands for motion and indentation of Fortran code,
+plus built-in abbrevs for Fortran keywords.  For details, see the manual
+or the on-line documentation of the command `fortran-mode'.
+
+** Scribe mode now exists.
+
+This mode does something useful for editing files of Scribe input.
+It is used automatically for files with names ending in ".mss".
+
+** Modula2 and Prolog modes now exist.
+
+These modes are for editing programs in the languages of the same names.
+They can be selected with M-x modula-2-mode and M-x prolog-mode.
+
+** Telnet mode changes.
+
+The telnet mode special commands have now been assigned to C-c keys.
+Most of them are the same as in Shell mode.
+
+** Picture mode changes.
+
+The special picture-mode commands to specify the direction of cursor
+motion after insertion have been moved to C-c keys.  The commands to
+specify diagonal motion were already C-c keys; they are unchanged.
+The keys to specify horizontal or vertical motion are now
+C-c < (left), C-c > (right), C-c ^ (up) and C-c . (down).
+
+** Nroff mode comments.
+
+Comments are now supported in Nroff mode.  The standard comment commands
+such as M-; and C-x ; know how to insert, align and delete comments
+that start with backslash-doublequote.
+
+** LaTeX mode.
+
+LaTeX mode now exists.  Use M-x latex-mode to select this mode, and
+M-x plain-tex-mode to select the previously existing mode for Plain
+TeX.  M-x tex-mode attempts to examine the contents of the buffer and
+choose between latex-mode and plain-tex-mode accordingly; if the
+buffer is empty or it cannot tell, the variable `TeX-default-mode'
+controls the choice.  Its value should be the symbol for the mode to
+be used.
+
+The facilities for running TeX on all or part of the buffer
+work with LaTeX as well.
+
+Some new commands available in both modes:
+
+C-c C-l		recenter the window showing the TeX output buffer
+		 so most recent line of output can be seen.
+C-c C-k		kill the TeX subprocess.
+C-c C-q		show the printer queue.
+C-c C-f		close a block (appropriate for LaTeX only).
+		 If the current line contains a \begin{...},
+		 this inserts an \end{...} on the following line
+		 and puts point on a blank line between them.
+
+** Outline mode changes.
+
+Invisible lines in outline mode are now indicated by `...' at the
+end of the previous visible line.
+
+The special outline heading motion commands are now all on C-c keys.
+A few new ones have been added.  Here is a full list:
+
+C-c C-n   Move to next visible heading (formerly M-})
+C-c C-p   Move to previous visible heading (formerly M-{)
+C-c C-f   Move to next visible heading at the same level.
+	   Thus, if point is on a level-2 heading line,
+	   this command moves to the next visible level-2 heading.
+C-c C-b   Move to previous visible heading at the same level.
+C-c C-u   Move up to previous visible heading at a higher level.
+
+The variable `outline-regexp' now controls recognition of heading lines.
+Any line whose beginning matches this regexp is a heading line.
+The depth in outline structure is determined by the length of
+the string that matches.
+
+A line starting with a ^L (formfeed) is now by default considered
+a header line.
+
+* Mail reading and sending.
+
+** MH-E changes.
+
+MH-E has been extensively modified and improved since the v17 release.
+It contains many new features, including commands to: extracted failed
+messages, kill a draft message, undo changes to a mail folder, monitor
+delivery of a letter, print multiple messages, page digests backwards,
+insert signatures, and burst digests.  Also, many commands have been
+made to able to deal with named sequences of messages, instead of
+single messages.  MH-E also has had numerous bugs fixed and commands
+made to run faster.  Furthermore, its keybindings have been changed to
+be compatible with Rmail and the rest of GNU Emacs.
+
+** Mail mode changes.
+
+The C-c commands of mail mode have been rearranged:
+
+C-c s, C-c c, C-c t and C-c b (move point to various header fields)
+have been reassigned as C-c C-f C-s, C-c C-f C-c, C-c C-f C-t and C-c
+C-f C-b.  C-c C-f is for "field".
+
+C-c y, C-c w and C-c q have been changed to C-c C-y, C-c C-w and C-c C-q.
+
+Thus, C-c LETTER is always unassigned.
+
+** Rmail C-r command changed to w.
+
+The Rmail command to edit the current message is now `w'.  This change
+has been made because people frequently type C-r while in Rmail hoping
+to do a reverse incremental search.  That now works.
+
+* Rnews changes.
+
+** Caesar rotation added.
+
+The function news-caesar-buffer-body performs encryption and
+decryption of the body of a news message.  It defaults to the USENET
+standard of 13, and accepts any numeric arg between 1 to 25 and -25 to -1.
+The function is bound to C-c C-r in both news-mode and news-reply-mode.
+
+** rmail-output command added.
+
+The C-o command has been bound to rmail-output in news-mode.
+This allows one to append an article to a file which is in either Unix
+mail or RMAIL format.
+
+** news-reply-mode changes.
+
+The C-c commands of news reply mode have been rearranged and changed,
+so that C-c LETTER is always unassigned:
+
+C-c y, C-c w and C-c q have been changed to C-c C-y, C-c C-w and C-c C-q.
+
+C-c c, C-c t, and C-c b (move to various mail header fields) have been
+deleted (they make no sense for posting and replying to USENET).
+
+C-c s (move to Subject: header field) has been reassigned as C-c C-f
+C-s.  C-c C-f is for "field".  Several additional move to news header
+field commands have been added.
+
+The local news-reply-mode bindings now look like this:
+
+C-c C-s  news-inews (post the message)    C-c C-c  news-inews
+C-c C-f	 move to a header field (and create it if there isn't):
+	 C-c C-f C-n  move to Newsgroups:	C-c C-f C-s  move to Subj:
+	 C-c C-f C-f  move to Followup-To:      C-c C-f C-k  move to Keywords:
+	 C-c C-f C-d  move to Distribution:	C-c C-f C-a  move to Summary:
+C-c C-y  news-reply-yank-original (insert current message, in NEWS).
+C-c C-q  mail-fill-yanked-message (fill what was yanked).
+C-c C-r  caesar rotate all letters by 13 places in the article's body (rot13).
+
+* Existing Emacs usable as a server.
+
+Programs such as mailers that invoke "the editor" as an inferior
+to edit some text can now be told to use an existing Emacs process
+instead of creating a new editor.
+
+To do this, you must have an Emacs process running and capable of
+doing terminal I/O at the time you want to invoke it.  This means that
+either you are using a window system and give Emacs a separate window
+or you run the other programs as inferiors of Emacs (such as, using
+M-x shell).
+
+First prepare the existing Emacs process by loading the `server'
+library and executing M-x server-start.  (Your .emacs can do this
+automatically.)
+
+Now tell the other programs to use, as "the editor", the Emacs client
+program (etc/emacsclient, located in the same directory as this file).
+This can be done by setting the environment variable EDITOR.
+
+When another program invokes the emacsclient as "the editor", the
+client actually transfers the file names to be edited to the existing
+Emacs, which automatically visits the files.
+
+When you are done editing a buffer for a client, do C-x # (server-edit).
+This marks that buffer as done, and selects the next buffer that the client
+asked for.  When all the buffers requested by a client are marked in this
+way, Emacs tells the client program to exit, so that the program that
+invoked "the editor" will resume execution.
+
+You can only have one server Emacs at a time, but multiple client programs
+can put in requests at the same time.
+
+The client/server work only on Berkeley Unix, since they use the Berkeley
+sockets mechanism for their communication.
+
+
+Changes in Lisp programming in Emacs version 18.
+
+* Init file changes.
+
+** Suffixes no longer accepted on `.emacs'.
+
+Emacs will no longer load a file named `.emacs.el' or `emacs.elc'
+in place of `.emacs'.  This is so that it will take less time to
+find `.emacs'.  If you want to compile your init file, give it another
+name and make `.emacs' a link to the `.elc' file, or make it contain
+a call to `load' to load the `.elc' file.
+
+** `default-profile' renamed to `default', and loaded after `.emacs'.
+
+It used to be the case that the file `default-profile' was loaded if
+and only if `.emacs' was not found.
+
+Now the name `default-profile' is not used at all.  Instead, a library
+named `default' is loaded after the `.emacs' file.  `default' is loaded
+whether the `.emacs' file exists or not.  However, loading of `default'
+can be prevented if the `.emacs' file sets `inhibit-default-init' to non-nil.
+
+In fact, you would call the default file `default.el' and probably would
+byte-compile it to speed execution.
+
+Note that for most purposes you are better off using a `site-init' library
+since that will be loaded before the runnable Emacs is dumped.  By using
+a `site-init' library, you avoid taking up time each time Emacs is started.
+
+** inhibit-command-line has been eliminated.
+
+This variable used to exist for .emacs files to set.  It has been
+eliminated because you can get the same effect by setting
+command-line-args to nil and setting inhibit-startup-message to t.
+
+* `apply' is more general.
+
+`apply' now accepts any number of arguments.  The first one is a function;
+the rest are individual arguments to pass to that function, except for the
+last, which is a list of arguments to pass.
+
+Previously, `apply' required exactly two arguments.  Its old behavior
+follows as a special case of the new definition.
+
+* New code-letter for `interactive'.
+
+(interactive "NFoo: ") is like (interactive "nFoo: ") in reading
+a number using the minibuffer to serve as the argument; however,
+if a prefix argument was specified, it uses the prefix argument
+value as the argument, and does not use the minibuffer at all.
+
+This is used by the `goto-line' and `goto-char' commands.
+
+* Semantics of variables.
+
+** Built-in per-buffer variables improved.
+
+Several built-in variables which in the past had a different value in
+each buffer now behave exactly as if `make-variable-buffer-local' had
+been done to them.
+
+These variables are `tab-width', `ctl-arrow', `truncate-lines',
+`fill-column', `left-margin', `mode-line-format', `abbrev-mode',
+`overwrite-mode', `case-fold-search', `auto-fill-hook',
+`selective-display', `selective-display-ellipses'.
+
+To be precise, each variable has a default value which shows through
+in most buffers and can be accessed with `default-value' and set with
+`set-default'.  Setting the variable with `setq' makes the variable
+local to the current buffer.  Changing the default value has retroactive
+effect on all buffers in which the variable is not local.
+
+The variables `default-case-fold-search', etc., are now obsolete.
+They now refer to the default value of the variable, which is not
+quite the same behavior as before, but it should enable old init files
+to continue to work.
+
+** New per-buffer variables.
+
+The variables `fill-prefix', `comment-column' and `indent-tabs-mode'
+are now per-buffer.  They work just like `fill-column', etc.
+
+** New function `setq-default'.
+
+`setq-default' sets the default value of a variable, and uses the
+same syntax that `setq' accepts: the variable name is not evaluated
+and need not be quoted.
+
+`(setq-default case-fold-search nil)' would make searches case-sensitive
+in all buffers that do not have local values for `case-fold-search'.
+
+** Functions `global-set' and `global-value' deleted.
+
+These functions were never used except by mistake by users expecting
+the functionality of `set-default' and `default-value'.
+
+* Changes in defaulting of major modes.
+
+When `default-major-mode' is `nil', new buffers are supposed to
+get their major mode from the buffer that is current.  However,
+certain major modes (such as Dired mode, Rmail mode, Rmail Summary mode,
+and others) are not reasonable to use in this way.
+
+Now such modes' names have been given non-`nil' `mode-class' properties.
+If the current buffer's mode has such a property, Fundamental mode is
+used as the default for newly created buffers.
+
+* `where-is-internal' requires additional arguments.
+
+This function now accepts three arguments, two of them required:
+DEFINITION, the definition to search for; LOCAL-KEYMAP, the keymap
+to use as the local map when doing the searching, and FIRST-ONLY,
+which is nonzero to return only the first key found.
+
+This function returns a list of keys (strings) whose definitions
+(in the LOCAL-KEYMAP or the current global map) are DEFINITION.
+
+If FIRST-ONLY is non-nil, it returns a single key (string).
+
+This function has changed incompatibly in that now two arguments
+are required when previously only one argument was allowed.  To get
+the old behavior of this function, write `(current-local-map)' as
+the expression for the second argument.
+
+The incompatibility is sad, but `nil' is a legitimate value for the
+second argument (it means there is no local keymap), so it cannot also
+serve as a default meaning to use the current local keymap.
+
+* Abbrevs with hooks.
+
+When an abbrev defined with a hook is expanded, it now performs the
+usual replacement of the abbrev with the expansion before running the
+hook.  Previously the abbrev itself was deleted but the expansion was
+not inserted.
+
+* Function `scan-buffer' deleted.
+
+Use `search-forward' or `search-backward' in place of `scan-buffer'.
+You will have to rearrange the arguments.
+
+* X window interface improvements.
+
+** Detect release of mouse buttons.
+
+Button-up events can now be detected.  See the file `lisp/x-mouse.el'
+for details.
+
+** New pop-up menu facility.
+
+The new function `x-popup-menu' pops up a menu (in a X window)
+and returns an indication of which selection the user made.
+For more information, see its self-documentation.
+
+* M-x disassemble.
+
+This command prints the disassembly of a byte-compiled Emacs Lisp function.
+
+Would anyone like to interface this to the debugger?
+
+* `insert-buffer-substring' can insert part of the current buffer.
+
+The old restriction that the text being inserted had to come from
+a different buffer is now lifted.
+
+When inserting text from the current buffer, the text to be inserted
+is determined from the specified bounds before any copying takes place.
+
+* New function `substitute-key-definition'.
+
+This is a new way to replace one command with another command as the
+binding of whatever keys may happen to refer to it.
+
+(substitute-key-definition OLDDEF NEWDEF KEYMAP) looks through KEYMAP
+for keys defined to run OLDDEF, and rebinds those keys to run NEWDEF
+instead.
+
+* New function `insert-char'.
+
+Insert a specified character, a specified number of times.
+
+* `mark-marker' changed.
+
+When there is no mark, this now returns a marker that points
+nowhere, rather than `nil'.
+
+* `ding' accepts argument.
+
+When given an argument, the function `ding' does not terminate
+execution of a keyboard macro.  Normally, `ding' does terminate
+all macros that are currently executing.
+
+* New function `minibuffer-depth'.
+
+This function returns the current depth in minibuffer activations.
+The value is zero when the minibuffer is not in use.
+Values greater than one are possible if the user has entered the
+minibuffer recursively.
+
+* New function `documentation-property'.
+
+(documentation-property SYMBOL PROPNAME) is like (get SYMBOL PROPNAME),
+except that if the property value is a number `documentation-property'
+will take that number (or its absolute value) as a character position
+in the DOC file and return the string found there.
+
+(documentation-property VAR 'variable-documentation) is the proper
+way for a Lisp program to get the documentation of variable VAR.
+
+* New documentation-string expansion feature.
+
+If a documentation string (for a variable or function) contains text
+of the form `\<FOO>', it means that all command names specified in
+`\[COMMAND]' construct from that point on should be turned into keys
+using the value of the variable FOO as the local keymap.  Thus, for example,
+
+  `\<emacs-lisp-mode-map>\[eval-defun] evaluates the defun containing point.'
+
+will expand into
+
+  "ESC C-x evaluates the defun containing point."
+
+regardless of the current major mode, because ESC C-x is defined to
+run `eval-defun' in the keymap `emacs-lisp-mode-map'.  The effect is
+to show the key for `eval-defun' in Emacs Lisp mode regardless of the
+current major mode.
+
+The `\<...>' construct applies to all `\[...]' constructs that follow it,
+up to the end of the documentation string or the next `\<...>'.
+
+Without `\<...>', the keys for commands specified in `\[...]' are found
+in the current buffer's local map.
+
+The current global keymap is always searched second, whether `\<...>'
+has been used or not.
+
+* Multiple hooks allowed in certain contexts.
+
+The old hook variables `find-file-hook', `find-file-not-found-hook' and
+`write-file-hook' have been replaced.
+
+The replacements are `find-file-hooks', `find-file-not-found-hooks'
+and `write-file-hooks'.  Each holds a list of functions to be called;
+by default, `nil', for no functions.  The functions are called in
+order of appearance in the list.
+
+In the case of `find-file-hooks', all the functions are executed.
+
+In the case of `find-file-not-found-hooks', if any of the functions
+returns non-`nil', the rest of the functions are not called.
+
+In the case of `write-file-hooks', if any of the functions returns
+non-`nil', the rest of the functions are not called, and the file is
+considered to have been written already; so actual writing in the
+usual way is not done.  If `write-file-hooks' is local to a buffer,
+it is set to its global value if `set-visited-file-name' is called
+(and thus by C-x C-w as well).
+
+`find-file-not-found-hooks' and `write-file-hooks' can be used
+together to implement editing of files that are not stored as Unix
+files: stored in archives, or inside version control systems, or on
+other machines running other operating systems and accessible via ftp.
+
+* New hooks for suspending Emacs.
+
+Suspending Emacs runs the hook `suspend-hook' before suspending
+and the hook `suspend-resume-hook' if the suspended Emacs is resumed.
+Running a hook is done by applying the variable's value to no arguments
+if the variable has a non-`nil' value.  If `suspend-hook' returns
+non-`nil', then suspending is inhibited and so is running the
+`suspend-resume-hook'.  The non-`nil' value means that the `suspend-hook'
+has done whatever suspending is required.
+
+* Disabling commands can print a special message.
+
+A command is disabled by giving it a non-`nil' `disabled' property.
+Now, if this property is a string, it is included in the message
+printed when the user tries to run the command.
+
+* Emacs can open TCP connections.
+
+The function `open-network-stream' opens a TCP connection to
+a specified host and service.  Its value is a Lisp object that represents
+the connection.  The object is a kind of "subprocess", and I/O are
+done like I/O to subprocesses.
+
+* Display-related changes.
+
+** New mode-line control features.
+
+The display of the mode line used to be controlled by a format-string
+that was the value of the variable `mode-line-format'.
+
+This variable still exists, but it now allows more general values,
+not just strings.  Lists, cons cells and symbols are also meaningful.
+
+The mode line contents are created by outputting various mode elements
+one after the other.  Here are the kinds of objects that can be
+used as mode elements, and what they do in the display:
+
+  string        the contents of the string are output to the mode line,
+		and %-constructs are replaced by other text.
+
+  t or nil	ignored; no output results.
+
+  symbol	the symbol's value is used.  If the value is a string,
+		the string is output verbatim to the mode line
+		(so %-constructs are not interpreted).  Otherwise,
+		the symbol's value is processed as a mode element.
+
+  list (whose first element is a string or list or cons cell)
+		the elements of the list are treated as as mode elements,
+		so that the output they generate is concatenated,
+
+  list (whose car is a symbol)
+		if the symbol's value is non-nil, the second element of the
+		list is treated as a mode element.  Otherwise, the third
+		element (if any) of the list is treated as a mode element.
+
+  cons (whose car is a positive integer)
+		the cdr of the cons is used as a mode element, but
+		the text it produces is padded, if necessary, to have
+		at least the width specified by the integer.
+
+  cons (whose car is a negative integer)
+		the cdr of the cons is used as a mode element, but
+		the text it produces is truncated, if necessary, to have
+		at most the width specified by the integer.
+
+There is always one mode element to start with, that being the value of
+`mode-line-format', but if this value is a list then it leads to several
+more mode elements, which can lead to more, and so on.
+
+There is one new %-construct for mode elements that are strings:
+`%n' displays ` Narrow' for a buffer that is narrowed.
+
+The default value of `mode-line-format' refers to several other variables.
+These variables are `mode-name', `mode-line-buffer-identification',
+`mode-line-process', `mode-line-modified', `global-mode-string' and
+`minor-mode-alist'.  The first four are local in every buffer in which they
+are changed from the default.
+
+mode-name	Name of buffer's major mode.  Local in every buffer.
+
+mode-line-buffer-identification
+		Normally the list ("Emacs: %17b"), it is responsible
+		for displaying text to indicate what buffer is being shown
+		and what kind of editing it is doing.  `Emacs' means
+		that a file of characters is being edited.  Major modes
+		such as Info and Dired which edit or view other kinds
+		of data often change this value.  This variables becomes
+		local to the current buffer if it is setq'd.
+
+mode-line-process
+		Normally nil, this variable is responsible for displaying
+		information about the process running in the current buffer.
+		M-x shell-mode and M-x compile alter this variable.
+
+mode-line-modified
+		This variable is responsible for displaying the indication
+		of whether the current buffer is modified or read-only.
+		By default its value is `("--%*%*-")'.
+
+minor-mode-alist
+		This variable is responsible for displaying text for those
+		minor modes that are currently enabled.  Its value
+		is a list of elements of the form (VARIABLE STRING),
+		where STRING is to be displayed if VARIABLE's value
+		(in the buffer whose mode line is being displayed)
+		is non-nil.  This variable is not made local to particular
+		buffers, but loading some libraries may add elements to it.
+
+global-mode-string
+		This variable is used to display the time, if you ask
+		for that.
+
+The idea of these variables is to eliminate the need for major modes
+to alter mode-line-format itself.
+
+** `window-point' valid for selected window.
+
+The value returned by `window-point' used to be incorrect when its
+argument was the selected window.  Now the value is correct.
+
+** Window configurations may be saved as Lisp objects.
+
+The function `current-window-configuration' returns a special type of
+Lisp object that represents the current layout of windows: the
+sizes and positions of windows, which buffers appear in them, and
+which parts of the buffers appear on the screen.
+
+The function `set-window-configuration' takes one argument, which must
+be a window configuration object, and restores that configuration.
+
+** New hook `temp-output-buffer-show-hook'.
+
+This hook allows you to control how help buffers are displayed.
+Whenever `with-output-to-temp-buffer' has executed its body and wants
+to display the temp buffer, if this variable is bound and non-`nil'
+then its value is called with one argument, the temp buffer.
+The hook function is solely responsible for displaying the buffer.
+The standard manner of display--making the buffer appear in a window--is
+used only if there is no hook function.
+
+** New function `minibuffer-window'.
+
+This function returns the window used (sometimes) for displaying
+the minibuffer.  It can be used even when the minibuffer is not active.
+
+** New feature to `next-window'.
+
+If the optional second argument is neither `nil' nor `t', the minibuffer
+window is omitted from consideration even when active; if the starting
+window was the last non-minibuffer window, the value will be the first
+non-minibuffer window.
+
+** New variable `minibuffer-scroll-window'.
+
+When this variable is non-`nil', the command `scroll-other-window'
+uses it as the window to be scrolled.  Displays of completion-lists
+set this variable to the window containing the display.
+
+** New argument to `sit-for'.
+
+A non-nil second argument to `sit-for' means do not redisplay;
+just wait for the specified time or until input is available.
+
+** Deleted function `set-minor-mode'; minor modes must be changed.
+
+The function `set-minor-mode' has been eliminated.  The display
+of minor mode names in the mode line is now controlled by the
+variable `minor-mode-alist'.  To specify display of a new minor
+mode, it is sufficient to add an element to this list.  Once that
+is done, you can turn the mode on and off just by setting a variable,
+and the display will show its status automatically.
+
+** New variable `cursor-in-echo-area'.
+
+If this variable is non-nil, the screen cursor appears on the
+last line of the screen, at the end of the text displayed there.
+
+Binding this variable to t is useful at times when reading single
+characters of input with `read-char'.
+
+** New per-buffer variable `selective-display-ellipses'.
+
+If this variable is non-nil, an ellipsis (`...') appears on the screen
+at the end of each text line that is followed by invisible text.
+
+If this variable is nil, no ellipses appear.  Then there is no sign
+on the screen that invisible text is present.
+
+Text is made invisible under the control of the variable
+`selective-display'; this is how Outline mode and C-x $ work.
+
+** New variable `no-redraw-on-reenter'.
+
+If you set this variable non-nil, Emacs will not clear the screen when
+you resume it after suspending it.  This is for the sake of terminals
+with multiple screens of memory, where the termcap entry has been set
+up to switch between screens when Emacs is suspended and resumed.
+
+** New argument to `set-screen-height' or `set-screen-width'.
+
+These functions now take an optional second argument which says
+what significance the newly specified height or width has.
+
+If the argument is nil, or absent, it means that Emacs should
+believe that the terminal height or width really is as just specified.
+
+If the argument is t, it means Emacs should not believe that the
+terminal really is this high or wide, but it should use the
+specific height or width as the number of lines or columns to display.
+Thus, you could display only 24 lines on a screen known to have 48 lines.
+
+What practical difference is there between using only 24 lines for display
+and really believing that the terminal has 24 lines?
+
+1. The ``real'' height of the terminal says what the terminal command
+to move the cursor to the last line will do.
+
+2. The ``real'' height of the terminal determines how much padding is
+needed.
+
+* File-related changes.
+
+** New parameter `backup-by-copying-when-mismatch'.
+
+If this variable is non-`nil', then when Emacs is about to save a
+file, it will create the backup file by copying if that would avoid
+changing the file's uid or gid.
+
+The default value of this variable is `nil', because usually it is
+useful to have the uid of a file change according to who edited it
+last.  I recommend thet this variable be left normally `nil' and
+changed with a local variables list in those particular files where
+the uid needs to be preserved.
+
+** New parameter `file-precious-flag'.
+
+If this variable is non-`nil', saving the buffer tries to avoid
+leaving an incomplete file due to disk full or other I/O errors.
+It renames the old file before saving.  If saving is successful,
+the renamed file is deleted; if saving gets an error, the renamed
+file is renamed back to the name you visited.
+
+Backups are always made by copying for such files.
+
+** New variable `buffer-offer-save'.
+
+If the value of this variable is non-`nil' in a buffer then exiting
+Emacs will offer to save the buffer (if it is modified and nonempty)
+even if the buffer is not visiting a file.  This variable is
+automatically made local to the current buffer whenever it is set.
+
+** `rename-file', `copy-file', `add-name-to-file' and `make-symbolic-link'.
+
+The third argument to these functions used to be `t' or `nil'; `t'
+meaning go ahead even if the specified new file name already has a file,
+and `nil' meaning to get an error.
+
+Now if the third argument is a number it means to ask the user for
+confirmation in this case.
+
+** New optional argument to `copy-file'.
+
+If `copy-file' receives a non-nil fourth argument, it attempts
+to give the new copy the same time-of-last-modification that the
+original file has.
+
+** New function `file-newer-than-file-p'.
+
+(file-newer-than-file-p FILE1 FILE2) returns non-nil if FILE1 has been
+modified more recently than FILE2.  If FILE1 does not exist, the value
+is always nil; otherwise, if FILE2 does not exist, the value is t.
+This is meant for use when FILE2 depends on FILE1, to see if changes
+in FILE1 make it necessary to recompute FILE2 from it.
+
+** Changed function `file-exists-p'.
+
+This function is no longer the same as `file-readable-p'.
+`file-exists-p' can now return t for a file that exists but which
+the fascists won't allow you to read.
+
+** New function `file-locked-p'.
+
+This function receives a file name as argument and returns `nil'
+if the file is not locked, `t' if locked by this Emacs, or a
+string giving the name of the user who has locked it.
+
+** New function `file-name-sans-versions'.
+
+(file-name-sans-versions NAME) returns a substring of NAME, with any
+version numbers or other backup suffixes deleted from the end.
+
+** New functions for directory names.
+
+Although a directory is really a kind of file, specifying a directory
+uses a somewhat different syntax from specifying a file.
+In Emacs, a directory name is used as part of a file name.
+
+On Unix, the difference is small: a directory name ends in a slash,
+while a file name does not: thus, `/usr/rms/' to name a directory,
+while `/usr/rms' names the file which holds that directory.
+
+On VMS, the difference is considerable: `du:[rms.foo]' specifies a
+directory, but the name of the file that holds that directory is
+`du:[rms]foo.dir'.
+
+There are two new functions for converting between directory names
+and file names.  `directory-file-name' takes a directory name and
+returns the name of the file in which that directory's data is stored.
+`file-name-as-directory' takes the name of a file and returns
+the corresponding directory name.  These always understand Unix file name
+syntax; on VMS, they understand VMS syntax as well.
+
+For example, (file-name-as-directory "/usr/rms") returns "/usr/rms/"
+and (directory-file-name "/usr/rms/") returns "/usr/rms".
+On VMS, (file-name-as-directory "du:[rms]foo.dir") returns "du:[rms.foo]"
+and (directory-file-name "du:[rms.foo]") returns "du:[rms]foo.dir".
+
+** Value of `file-attributes' changed.
+
+The function file-attributes returns a list containing many kinds of
+information about a file.  Now the list has eleven elements.
+
+The tenth element is `t' if deleting the file and creating another
+file of the same name would result in a change in the file's group;
+`nil' if there would be no change.  You can also think of this as
+comparing the file's group with the default group for files created in
+the same directory by you.
+
+The eleventh element is the inode number of the file.
+
+** VMS-only function `file-name-all-versions'.
+
+This function returns a list of all the completions, including version
+number, of a specified version-number-less file name.  This is like
+`file-name-all-completions', except that the latter returns values
+that do not include version numbers.
+
+** VMS-only variable `vms-stmlf-recfm'.
+
+On a VMS system, if this variable is non-nil, Emacs will give newly
+created files the record format `stmlf'.  This is necessary for files
+that must contain lines of arbitrary length, such as compiled Emacs
+Lisp.
+
+When writing a new version of an existing file, Emacs always keeps
+the same record format as the previous version; so this variable has
+no effect.
+
+This variable has no effect on Unix systems.
+
+** `insert-file-contents' on an empty file.
+
+This no longer sets the buffer's "modified" flag.
+
+** New function (VMS only) `define-logical-name':
+
+(define-logical-name LOGICAL TRANSLATION) defines a VMS logical name
+LOGICAL whose translation is TRANSLATION.  The new name applies to
+the current process only.
+
+** Deleted variable `ask-about-buffer-names'.
+
+If you want buffer names for files to be generated in a special way,
+you must redefine `create-file-buffer'.
+
+* Subprocess-related changes.
+
+** New function `process-list'.
+
+This function takes no arguments and returns a list of all
+of Emacs's asynchronous subprocesses.
+
+** New function `process-exit-status'.
+
+This function, given a process, process name or buffer as argument,
+returns the exit status code or signal number of the process.
+If the process has not yet exited or died, this function returns 0.
+
+** Process output ignores `buffer-read-only'.
+
+Output from a process will go into the process's buffer even if the
+buffer is read only.
+
+** Switching buffers in filter functions and sentinels.
+
+Emacs no longer saves and restore the current buffer around calling
+the filter and sentinel functions, so these functions can now
+permanently alter the selected buffer in a straightforward manner.
+
+** Specifying environment variables for subprocesses.
+
+When a subprocess is started with `start-process' or `call-process',
+the value of the variable `process-environment' is taken to
+specify the environment variables to give the subprocess.  The
+value should be a list of strings, each of the form "VAR=VALUE".
+
+`process-environment' is initialized when Emacs starts up
+based on Emacs's environment.
+
+** New variable `process-connection-type'.
+
+If this variable is `nil', when a subprocess is created, Emacs uses
+a pipe rather than a pty to communicate with it.  Normally this
+variable is `t', telling Emacs to use a pty if ptys are supported
+and one is available.
+
+** New function `waiting-for-user-input-p'.
+
+This function, given a subprocess as argument, returns `t' if that
+subprocess appears to be waiting for input sent from Emacs,
+or `nil' otherwise.
+
+** New hook `shell-set-directory-error-hook'.
+
+The value of this variable is called, with no arguments, whenever
+Shell mode gets an error trying to keep track of directory-setting
+commands (such as `cd' and `pushd') used in the shell buffer.
+
+* New functions `user-uid' and `user-real-uid'.
+
+These functions take no arguments and return, respectively,
+the effective uid and the real uid of the Emacs process.
+The value in each case is an integer.
+
+* New variable `print-escape-newlines' controls string printing.
+
+If this variable is non-`nil', then when a Lisp string is printed
+by the Lisp printing function `prin1' or `print', newline characters
+are printed as `\n' rather than as a literal newline.
+
+* New function `sysnetunam' on HPUX.
+
+This function takes two arguments, a network address PATH and a
+login string LOGIN, and executes the system call `netunam'.
+It returns `t' if the call succeeds, otherwise `nil'.
+
+News regarding installation:
+
+* Many `s-...' file names changed.
+
+Many `s-...' files have been renamed.  All periods in such names,
+except the ones just before the final `h', have been changed to
+hyphens.  Thus, `s-bsd4.2.h' has been renamed to `s-bsd4-2.h'.
+
+This is so a Unix distribution can be moved mechanically to VMS.
+
+* `DOCSTR...' file now called `DOC-...'.
+
+The file of on-line documentation strings, that used to be
+`DOCSTR.mm.nn.oo' in this directory, is now called `DOC-mm.nn.oo'.
+This is so that it can port to VMS using the standard conventions
+for translating filenames for VMS.
+
+This file also now contains the doc strings for variables as
+well as functions.
+
+* Emacs no longer uses floating point arithmetic.
+
+This may make it easier to port to some machines.
+
+* Macros `XPNTR' and `XSETPNTR'; flag `DATA_SEG_BITS'.
+
+These macros exclusively are used to unpack a pointer from a Lisp_Object
+and to insert a pointer into a Lisp_Object.  Redefining them may help
+port Emacs to machines in which all pointers to data objects have
+certain high bits set.
+
+If `DATA_SEG_BITS' is defined, it should be a number which contains
+the high bits to be inclusive or'ed with pointers that are unpacked.
+
+* New flag `HAVE_X_MENU'.
+
+Define this flag in `config.h' in addition to `HAVE_X_WINDOWS'
+to enable use of the Emacs interface to X Menus.  On some operating
+systems, the rest of the X interface works properly but X Menus
+do not work; hence this separate flag.  See the file `src/xmenu.c'
+for more information.
+
+* Macros `ARRAY_MARK_FLAG' and `DONT_COPY_FLAG'.
+
+* `HAVE_ALLOCA' prevents assembly of `alloca.s'.
+
+* `SYSTEM_MALLOC' prevents use of GNU `malloc.c'.
+
+SYSTEM_MALLOC, if defined, means use the system's own `malloc' routines
+rather than those that come with Emacs.
+
+Use this only if absolutely necessary, because if it is used you do
+not get warnings when space is getting low.
+
+* New flags to control unexec.
+
+See the file `unexec.c' for a long comment on the compilation
+switches that suffice to make it work on many machines.
+
+* `PNTR_COMPARISON_TYPE'
+
+Pointers that need to be compared for ordering are converted to this type
+first.  Normally this is `unsigned int'.
+
+* `HAVE_VFORK', `HAVE_DUP2' and `HAVE_GETTIMEOFDAY'.
+
+These flags just say whether certain system calls are available.
+
+* New macros control compiler switches, linker switches and libraries.
+
+The m- and s- files can now control in a modular fashion the precise
+arguments passed to `cc' and `ld'.
+
+LIBS_STANDARD defines the standard C libraries.  Default is `-lc'.
+LIBS_DEBUG defines the extra libraries to use when debugging.  Default `-lg'.
+LIBS_SYSTEM can be defined by the s- file to specify extra libraries.
+LIBS_MACHINE can be defined by the m- file to specify extra libraries.
+LIBS_TERMCAP defines the libraries for Termcap or Terminfo.
+  It is defined by default in a complicated fashion but the m- or s- file
+  can override it.
+
+LD_SWITCH_SYSTEM can be defined by the s- file to specify extra `ld' switches.
+  The default is `-X' on BSD systems except those few that use COFF object files.
+LD_SWITCH_MACHINE can be defined by the m- file to specify extra `ld' switches.
+
+C_DEBUG_SWITCH defines the switches to give `cc' when debugging.  Default `-g'.
+C_OPTIMIZE_SWITCH defines the switches to give `cc' to optimize.  Default `-O'.
+C_SWITCH_MACHINE can be defined by the m- file to specify extra `cc' switches.
+
+
+
+----------------------------------------------------------------------
+Copyright information:
+
+Copyright (C) 1988, 2006 Free Software Foundation, Inc.
+
+   Permission is granted to anyone to make or distribute verbatim copies
+   of this document as received, in any medium, provided that the
+   copyright notice and this permission notice are preserved,
+   thus giving the recipient permission to redistribute in turn.
+
+   Permission is granted to distribute modified versions
+   of this document, or of portions of it,
+   under the above conditions, provided also that they
+   carry prominent notices stating who last changed them.
+
+Local variables:
+mode: text
+end:
+
+arch-tag: 8fed393b-c9c5-47d1-afbb-c0e7a135094a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/NEWS.19	Sun Jun 04 01:01:51 2006 +0000
@@ -0,0 +1,6540 @@
+GNU Emacs NEWS -- history of user-visible changes.  1992.
+Copyright (C) 1993, 1994, 1995, 2001, 2006 Free Software Foundation, Inc.
+See the end for copying conditions.
+
+This file is about changes in emacs versions 19.
+
+
+
+* Emacs 19.34 is a bug-fix release with no user-visible changes.
+
+
+
+* Changes in Emacs 19.33.
+
+** Bibtex mode no longer turns on Auto Fill automatically.  (No major
+mode should do that--it is the user's choice.)
+
+** The variable normal-auto-fill-function specifies the function to
+use for auto-fill-function, if and when Auto Fill is turned on.
+Major modes can set this locally to alter how Auto Fill works.
+
+
+
+* Editing Changes in Emacs 19.32
+
+** C-x f with no argument now signals an error.
+To set the fill column at the current column, use C-u C-x f.
+
+** Expanding dynamic abbrevs with M-/ is now smarter about case
+conversion.  If you type the abbreviation with mixed case, and it
+matches the beginning of the expansion including case, then the
+expansion is copied verbatim.  Using SPC M-/ to copy an additional
+word always copies it verbatim except when the previous copied word is
+all caps.
+
+** On a non-windowing terminal, which can display only one Emacs frame
+at a time, creating a new frame with C-x 5 2 also selects that frame.
+
+When using a display that can show multiple frames at once, C-x 5 2
+does make the frame visible, but does not select it.  This is the same
+as in previous Emacs versions.
+
+** You can use C-x 5 2 to create multiple frames on MSDOS, just as on a
+non-X terminal on Unix.  Of course, only one frame is visible at any
+time, since your terminal doesn't have the ability to display multiple
+frames.
+
+** On Windows, set win32-pass-alt-to-system to a non-nil value
+if you would like tapping the Alt key to invoke the Windows menu.
+This feature is not enabled by default; since the Alt key is also the
+Meta key, it is too easy and painful to activate this feature by
+accident.
+
+** The command apply-macro-to-region-lines repeats the last defined
+keyboard macro once for each complete line within the current region.
+It does this line by line, by moving point to the beginning of that
+line and then executing the macro.
+
+This command is not new, but was never documented before.
+
+** You can now use Mouse-1 to place the region around a string constant
+(something surrounded by doublequote characters or other delimiter
+characters of like syntax) by double-clicking on one of the delimiting
+characters.
+
+** Font Lock mode
+
+*** Font Lock support modes
+
+Font Lock can be configured to use Fast Lock mode and Lazy Lock mode (see
+below) in a flexible way.  Rather than adding the appropriate function to the
+hook font-lock-mode-hook, you can use the new variable font-lock-support-mode
+to control which modes have Fast Lock mode or Lazy Lock mode turned on when
+Font Lock mode is enabled.
+
+For example, to use Fast Lock mode when Font Lock mode is turned on, put:
+
+ (setq font-lock-support-mode 'fast-lock-mode)
+
+in your ~/.emacs.
+
+*** lazy-lock
+
+The lazy-lock package speeds up Font Lock mode by making fontification occur
+only when necessary, such as when a previously unfontified part of the buffer
+becomes visible in a window.  When you create a buffer with Font Lock mode and
+Lazy Lock mode turned on, the buffer is not fontified.  When certain events
+occur (such as scrolling), Lazy Lock makes sure that the visible parts of the
+buffer are fontified.  Lazy Lock also defers on-the-fly fontification until
+Emacs has been idle for a given amount of time.
+
+To use this package, put in your ~/.emacs:
+
+ (setq font-lock-support-mode 'lazy-lock-mode)
+
+To control the package behavior, see the documentation for `lazy-lock-mode'.
+
+** Changes in BibTeX mode.
+
+*** For all entries allow spaces and tabs between opening brace or
+paren and key.
+
+*** Non-escaped double-quoted characters (as in `Sch"of') are now
+supported.
+
+** Gnus changes.
+
+Gnus, the Emacs news reader, has undergone further rewriting.  Many new
+commands and variables have been added.  There should be no
+significant incompatibilities between this Gnus version and the
+previously released version, except in the message composition area.
+
+Below is a list of the more user-visible changes.  Coding changes
+between Gnus 5.1 and 5.2 are more extensive.
+
+*** A new message composition mode is used.  All old customization
+variables for mail-mode, rnews-reply-mode and gnus-msg are now
+obsolete.
+
+*** Gnus is now able to generate "sparse" threads -- threads where
+missing articles are represented by empty nodes.
+
+    (setq gnus-build-sparse-threads 'some)
+
+*** Outgoing articles are stored on a special archive server.
+
+    To disable this:  (setq gnus-message-archive-group nil)
+
+*** Partial thread regeneration now happens when articles are
+referred.
+
+*** Gnus can make use of GroupLens predictions:
+
+    (setq gnus-use-grouplens t)
+
+*** A trn-line tree buffer can be displayed.
+
+    (setq gnus-use-trees t)
+
+*** An nn-like pick-and-read minor mode is available for the summary
+buffers.
+
+    (add-hook 'gnus-summary-mode-hook 'gnus-pick-mode)
+
+*** In binary groups you can use a special binary minor mode:
+
+    `M-x gnus-binary-mode'
+
+*** Groups can be grouped in a folding topic hierarchy.
+
+    (add-hook 'gnus-group-mode-hook 'gnus-topic-mode)
+
+*** Gnus can re-send and bounce mail.
+
+    Use the `S D r' and `S D b'.
+
+*** Groups can now have a score, and bubbling based on entry frequency
+is possible.
+
+    (add-hook 'gnus-summary-exit-hook 'gnus-summary-bubble-group)
+
+*** Groups can be process-marked, and commands can be performed on
+groups of groups.
+
+*** Caching is possible in virtual groups.
+
+*** nndoc now understands all kinds of digests, mail boxes, rnews news
+batches, ClariNet briefs collections, and just about everything else.
+
+*** Gnus has a new backend (nnsoup) to create/read SOUP packets.
+
+*** The Gnus cache is much faster.
+
+*** Groups can be sorted according to many criteria.
+
+    For instance: (setq gnus-group-sort-function 'gnus-group-sort-by-rank)
+
+*** New group parameters have been introduced to set list-address and
+expiration times.
+
+*** All formatting specs allow specifying faces to be used.
+
+*** There are several more commands for setting/removing/acting on
+process marked articles on the `M P' submap.
+
+*** The summary buffer can be limited to show parts of the available
+articles based on a wide range of criteria.  These commands have been
+bound to keys on the `/' submap.
+
+*** Articles can be made persistent -- as an alternative to saving
+articles with the `*' command.
+
+*** All functions for hiding article elements are now toggles.
+
+*** Article headers can be buttonized.
+
+    (add-hook 'gnus-article-display-hook 'gnus-article-add-buttons-to-head)
+
+*** All mail backends support fetching articles by Message-ID.
+
+*** Duplicate mail can now be treated properly.  See the
+`nnmail-treat-duplicates' variable.
+
+*** All summary mode commands are available directly from the article
+buffer.
+
+*** Frames can be part of `gnus-buffer-configuration'.
+
+*** Mail can be re-scanned by a daemonic process.
+
+*** Gnus can make use of NoCeM files to filter spam.
+
+    (setq gnus-use-nocem t)
+
+*** Groups can be made permanently visible.
+
+    (setq gnus-permanently-visible-groups "^nnml:")
+
+*** Many new hooks have been introduced to make customizing easier.
+
+*** Gnus respects the Mail-Copies-To header.
+
+*** Threads can be gathered by looking at the References header.
+
+    (setq gnus-summary-thread-gathering-function
+          'gnus-gather-threads-by-references)
+
+*** Read articles can be stored in a special backlog buffer to avoid
+refetching.
+
+    (setq gnus-keep-backlog 50)
+
+*** A clean copy of the current article is always stored in a separate
+buffer to allow easier treatment.
+
+*** Gnus can suggest where to save articles.  See `gnus-split-methods'.
+
+*** Gnus doesn't have to do as much prompting when saving.
+
+    (setq gnus-prompt-before-saving t)
+
+*** gnus-uu can view decoded files asynchronously while fetching
+articles.
+
+    (setq gnus-uu-grabbed-file-functions 'gnus-uu-grab-view)
+
+*** Filling in the article buffer now works properly on cited text.
+
+*** Hiding cited text adds buttons to toggle hiding, and how much
+cited text to hide is now customizable.
+
+    (setq gnus-cited-lines-visible 2)
+
+*** Boring headers can be hidden.
+
+    (add-hook 'gnus-article-display-hook 'gnus-article-hide-boring-headers)
+
+*** Default scoring values can now be set from the menu bar.
+
+*** Further syntax checking of outgoing articles have been added.
+
+The Gnus manual has been expanded.  It explains all these new features
+in greater detail.
+
+
+* Lisp Changes in Emacs 19.32
+
+** The function set-visited-file-name now accepts an optional
+second argument NO-QUERY.  If it is non-nil, then the user is not
+asked for confirmation in the case where the specified file already
+exists.
+
+** The variable print-length applies to printing vectors and bitvectors,
+as well as lists.
+
+** The new function keymap-parent returns the parent keymap
+of a given keymap.
+
+** The new function set-keymap-parent specifies a new parent for a
+given keymap.  The arguments are KEYMAP and PARENT.  PARENT must be a
+keymap or nil.
+
+** Sometimes menu keymaps use a command name, a symbol, which is really
+an automatically generated alias for some other command, the "real"
+name.  In such a case, you should give that alias symbol a non-nil
+menu-alias property.  That property tells the menu system to look for
+equivalent keys for the real name instead of equivalent keys for the
+alias.
+
+
+
+* Editing Changes in Emacs 19.31
+
+** Freedom of the press restricted in the United States.
+
+Emacs has been censored in accord with the Communications Decency Act.
+This includes removing some features of the doctor program.  That law
+was described by its supporters as a ban on pornography, but it bans
+far more than that.  The Emacs distribution has never contained any
+pornography, but parts of it were nonetheless prohibited.
+
+For information on US government censorship of the Internet, and what
+you can do to bring back freedom of the press, see the web site
+`http://www.vtw.org/'.
+
+** A note about C mode indentation customization.
+
+The old (Emacs 19.29) ways of specifying a C indentation style
+do not normally work in the new implementation of C mode.
+It has its own methods of customizing indentation, which are
+much more powerful than the old C mode.  See the Editing Programs
+chapter of the manual for details.
+
+However, you can load the library cc-compat to make the old
+customization variables take effect.
+
+** Marking with the mouse.
+
+When you mark a region with the mouse, the region now remains
+highlighted until the next input event, regardless of whether you are
+using M-x transient-mark-mode.
+
+** Improved Windows NT/95 support.
+
+*** Emacs now supports scroll bars on Windows NT and Windows 95.
+
+*** Emacs now supports subprocesses on Windows 95.  (Subprocesses used
+to work on NT only and not on 95.)
+
+*** There are difficulties with subprocesses, though, due to problems
+in Windows, beyond the control of Emacs.  They work fine as long as
+you run Windows applications.  The problems arise when you run a DOS
+application in a subprocesses.  Since current shells run as DOS
+applications, these problems are significant.
+
+If you run a DOS application in a subprocess, then the application is
+likely to busy-wait, which means that your machine will be 100% busy.
+However, if you don't mind the temporary heavy load, the subprocess
+will work OK as long as you tell it to terminate before you start any
+other DOS application as a subprocess.
+
+Emacs is unable to terminate or interrupt a DOS subprocess.
+You have to do this by providing input directly to the subprocess.
+
+If you run two DOS applications at the same time in two separate
+subprocesses, even if one of them is asynchronous, you will probably
+have to reboot your machine--until then, it will remain 100% busy.
+Windows simply does not cope when one Windows process tries to run two
+separate DOS subprocesses.  Typing CTL-ALT-DEL and then choosing
+Shutdown seems to work although it may take a few minutes.
+
+** M-x resize-minibuffer-mode.
+
+This command, not previously mentioned in NEWS, toggles a mode in
+which the minibuffer window expands to show as many lines as the
+minibuffer contains.
+
+** `title' frame parameter and resource.
+
+The `title' X resource now specifies just the frame title, nothing else.
+It does not affect the name used for looking up other X resources.
+It works by setting the new `title' frame parameter, which likewise
+affects just the displayed title of the frame.
+
+The `name' parameter continues to do what it used to do:
+it specifies the frame name for looking up X resources,
+and also serves as the default for the displayed title
+when the `title' parameter is unspecified or nil.
+
+** Emacs now uses the X toolkit by default, if you have a new
+enough version of X installed (X11R5 or newer).
+
+** When you compile Emacs with the Motif widget set, Motif handles the
+F10 key by activating the menu bar.  To avoid confusion, the usual
+Emacs binding of F10 is replaced with a no-op when using Motif.
+
+If you want to be able to use F10 in Emacs, you can rebind the Motif
+menubar to some other key which you don't use.  To do so, add
+something like this to your X resources file.  This example rebinds
+the Motif menu bar activation key to S-F12:
+
+   Emacs*defaultVirtualBindings:  osfMenuBar : Shift<Key>F12
+
+** In overwrite mode, DEL now inserts spaces in most cases
+to replace the characters it "deletes".
+
+** The Rmail summary now shows the number of lines in each message.
+
+** Rmail has a new command M-x unforward-rmail-message, which extracts
+a forwarded message from the message that forwarded it.  To use it,
+select a message which contains a forwarded message and then type the command.
+It inserts the forwarded message as a separate Rmail message
+immediately after the selected one.
+
+This command also undoes the textual modifications that are standardly
+made, as part of forwarding, by Rmail and other mail reader programs.
+
+** Turning off saving of .saves-... files in your home directory.
+
+Each Emacs session writes a file named .saves-... in your home
+directory to record which files M-x recover-session should recover.
+If you exit Emacs normally with C-x C-c, it deletes that file.  If
+Emacs or the operating system crashes, the file remains for M-x
+recover-session.
+
+You can turn off the writing of these files by setting
+auto-save-list-file-name to nil.  If you do this, M-x recover-session
+will not work.
+
+Some previous Emacs versions failed to delete these files even on
+normal exit.  This is fixed now.  If you are thinking of turning off
+this feature because of past experiences with versions that had this
+bug, it would make sense to check whether you still want to do so
+now that the bug is fixed.
+
+** Changes to Version Control (VC)
+
+There is a new variable, vc-follow-symlinks.  It indicates what to do
+when you visit a link to a file that is under version control.
+Editing the file through the link bypasses the version control system,
+which is dangerous and probably not what you want.
+
+If this variable is t, VC follows the link and visits the real file,
+telling you about it in the echo area.  If it is `ask' (the default),
+VC asks for confirmation whether it should follow the link.  If nil,
+the link is visited and a warning displayed.
+
+** iso-acc.el now lets you specify a choice of language.
+Languages include "latin-1" (the default) and "latin-2" (which
+is designed for entering ISO Latin-2 characters).
+
+There are also choices for specific human languages such as French and
+Portuguese.  These are subsets of Latin-1, which differ in that they
+enable only the accent characters needed for particular language.
+The other accent characters, not needed for the chosen language,
+remain normal.
+
+** Posting articles and sending mail now has M-TAB completion on various
+header fields (Newsgroups, To, CC, ...).
+
+Completion in the Newsgroups header depends on the list of groups
+known to your news reader.  Completion in the Followup-To header
+offers those groups which are in the Newsgroups header, since
+Followup-To usually just holds one of those.
+
+Completion in fields that hold mail addresses works based on the list
+of local users plus your aliases.  Additionally, if your site provides
+a mail directory or a specific host to use for any unrecognized user
+name, you can arrange to query that host for completion also.  (See the
+documentation of variables `mail-directory-process' and
+`mail-directory-stream'.)
+
+** A greatly extended sgml-mode offers new features such as (to be configured)
+skeletons with completing read for tags and attributes, typing named
+characters including optionally all 8bit characters, making tags invisible
+with optional alternate display text, skipping and deleting tag(pair)s.
+
+Note: since Emacs' syntax feature cannot limit the special meaning of ', " and
+- to inside <>, for some texts the result, especially of font locking, may be
+wrong (see `sgml-specials' if you get wrong results).
+
+The derived html-mode configures this with tags and attributes more or
+less HTML3ish.  It also offers optional quick keys like C-c 1 for
+headline or C-c u for unordered list (see `html-quick-keys').  Edit /
+Text Properties / Face or M-g combinations create tags as applicable.
+Outline minor mode is supported and level 1 font-locking tries to
+fontify tag contents (which only works when they fit on one line, due
+to a limitation in font-lock).
+
+External viewing via browse-url can occur automatically upon saving.
+
+** M-x imenu-add-to-menubar now adds to the menu bar for the current
+buffer only.  If you want to put an Imenu item in the menu bar for all
+buffers that use a particular major mode, use the mode hook, as in
+this example:
+
+    (add-hook 'emacs-lisp-mode-hook
+	      '(lambda () (imenu-add-to-menubar "Index")))
+
+** Changes in BibTeX mode.
+
+*** Field names may now contain digits, hyphens, and underscores.
+
+*** Font Lock mode is now supported.
+
+*** bibtex-make-optional-field is no longer interactive.
+
+*** If bibtex-maintain-sorted-entries is non-nil, inserting new
+entries is now done with a faster algorithm.  However, inserting
+will fail in this case if the buffer contains invalid entries or
+isn't in sorted order, so you should finish each entry with C-c C-c
+(bibtex-close-entry) after you have inserted or modified it.
+The default value of bibtex-maintain-sorted-entries is nil.
+
+*** Function `show-all' is no longer bound to a key, since C-u C-c C-q
+does the same job.
+
+*** Entries with quotes inside quote-delimited fields (as `author =
+"Stefan Sch{\"o}f"') are now supported.
+
+*** Case in field names doesn't matter anymore when searching for help
+text.
+
+** Font Lock mode
+
+*** Global Font Lock mode
+
+Font Lock mode can be turned on globally, in buffers that support it, by the
+new command global-font-lock-mode.  You can use the new variable
+font-lock-global-modes to control which modes have Font Lock mode automagically
+turned on.  By default, this variable is set so that Font Lock mode is turned
+on globally where the buffer mode supports it.
+
+For example, to automagically turn on Font Lock mode where supported, put:
+
+ (global-font-lock-mode t)
+
+in your ~/.emacs.
+
+*** Local Refontification
+
+In Font Lock mode, editing a line automatically refontifies that line only.
+However, if your change alters the syntactic context for following lines,
+those lines remain incorrectly fontified.  To refontify them, use the new
+command M-g M-g (font-lock-fontify-block).
+
+In certain major modes, M-g M-g refontifies the entire current function.
+(The variable font-lock-mark-block-function controls how to find the
+current function.)  In other major modes, M-g M-g refontifies 16 lines
+above and below point.
+
+With a prefix argument N, M-g M-g refontifies N lines above and below point.
+
+** Follow mode
+
+Follow mode is a new minor mode combining windows showing the same
+buffer into one tall "virtual window".  The windows are typically two
+side-by-side windows.  Follow mode makes them scroll together as if
+they were a unit.  To use it, go to a frame with just one window,
+split it into two side-by-side windows using C-x 3, and then type M-x
+follow-mode.
+
+M-x follow-mode turns off Follow mode if it is already enabled.
+
+To display two side-by-side windows and activate Follow mode, use the
+command M-x follow-delete-other-windows-and-split.
+
+** hide-show changes.
+
+The hooks hs-hide-hooks and hs-show-hooks have been renamed
+to hs-hide-hook and hs-show-hook, to follow the convention for
+normal hooks.
+
+** Simula mode now has a menu containing the most important commands.
+The new command simula-indent-exp is bound to C-M-q.
+
+** etags can now handle programs written in Erlang.  Files are
+recognised by the extensions .erl and .hrl.  The tagged lines are
+those that begin a function, record, or macro.
+
+** MSDOS Changes
+
+*** It is now possible to compile Emacs with the version 2 of DJGPP.
+Compilation with DJGPP version 1 also still works.
+
+*** The documentation of DOS-specific aspects of Emacs was rewritten
+and expanded; see the ``MS-DOS'' node in the on-line docs.
+
+*** Emacs now uses ~ for backup file names, not .bak.
+
+*** You can simulate mouse-3 on two-button mice by simultaneously
+pressing both mouse buttons.
+
+*** A number of packages and commands which previously failed or had
+restricted functionality on MS-DOS, now work.  The most important ones
+are:
+
+**** Printing (both with `M-x lpr-buffer' and with `ps-print' package)
+now works.
+
+**** `Ediff' works (in a single-frame mode).
+
+**** `M-x display-time' can be used on MS-DOS (due to the new
+implementation of Emacs timers, see below).
+
+**** `Dired' supports Unix-style shell wildcards.
+
+**** The `c-macro-expand' command now works as on other platforms.
+
+**** `M-x recover-session' works.
+
+**** `M-x list-colors-display' displays all the available colors.
+
+**** The `TPU-EDT' package works.
+
+
+* Lisp changes in Emacs 19.31.
+
+** The function using-unix-filesystems on Windows NT and Windows 95
+tells Emacs to read and write files assuming that they reside on a
+remote Unix filesystem.  No CR/LF translation is done on any files in
+this case.  Invoking using-unix-filesystems with t activates this
+behavior, and invoking it with any other value deactivates it.
+
+** Change in system-type and system-configuration values.
+
+The value of system-type on a Linux-based GNU system is now `lignux',
+not `linux'.  This means that some programs which use `system-type'
+need to be changed.  The value of `system-configuration' will also
+be different.
+
+It is generally recommended to use `system-configuration' rather
+than `system-type'.
+
+See the file LINUX-GNU in this directory for more about this.
+
+** The functions shell-command and dired-call-process
+now run file name handlers for default-directory, if it has them.
+
+** Undoing the deletion of text now restores the positions of markers
+that pointed into or next to the deleted text.
+
+** Timers created with run-at-time now work internally to Emacs, and
+no longer use a separate process.  Therefore, they now work more
+reliably and can be used for shorter time delays.
+
+The new function run-with-timer is a convenient way to set up a timer
+to run a specified amount of time after the present.  A call looks
+like this:
+
+  (run-with-timer SECS REPEAT FUNCTION ARGS...)
+
+SECS says how many seconds should elapse before the timer happens.
+It may be an integer or a floating point number.  When the timer
+becomes ripe, the action is to call FUNCTION with arguments ARGS.
+
+REPEAT gives the interval for repeating the timer (measured in
+seconds).  It may be an integer or a floating point number.  nil or 0
+means don't repeat at all--call FUNCTION just once.
+
+*** with-timeout provides an easy way to do something but give
+up if too much time passes.
+
+  (with-timeout (SECONDS TIMEOUT-FORMS...) BODY...)
+
+This executes BODY, but gives up after SECONDS seconds.
+If it gives up, it runs the TIMEOUT-FORMS and returns the value
+of the last one of them.  Normally it returns the value of the last
+form in BODY.
+
+*** You can now arrange to call a function whenever Emacs is idle for
+a certain length of time.  To do this, call run-with-idle-timer.  A
+call looks like this:
+
+  (run-with-idle-timer SECS REPEAT FUNCTION ARGS...)
+
+SECS says how many seconds of idleness should elapse before the timer
+runs.  It may be an integer or a floating point number.  When the
+timer becomes ripe, the action is to call FUNCTION with arguments
+ARGS.
+
+Emacs becomes idle whenever it finishes executing a keyboard or mouse
+command.  It remains idle until it receives another keyboard or mouse
+command.
+
+REPEAT, if non-nil, means this timer should be activated again each
+time Emacs becomes idle and remains idle for SECS seconds The timer
+does not repeat if Emacs *remains* idle; it runs at most once after
+each time Emacs becomes idle.
+
+If REPEAT is nil, the timer runs just once, the first time Emacs is
+idle for SECS seconds.
+
+*** post-command-idle-hook is now obsolete; you shouldn't use it at
+all, because it interferes with the idle timer mechanism.  If your
+programs use post-command-idle-hook, convert them to use idle timers
+instead.
+
+*** y-or-n-p-with-timeout lets you ask a question but give up if
+there is no answer within a certain time.
+
+  (y-or-n-p-with-timeout PROMPT SECONDS DEFAULT-VALUE)
+
+asks the question PROMPT (just like y-or-n-p).  If the user answers
+within SECONDS seconds, it returns the answer that the user gave.
+Otherwise it gives up after SECONDS seconds, and returns DEFAULT-VALUE.
+
+** Minor change to `encode-time': you can now pass more than seven
+arguments.  If you do that, the first six arguments have the usual
+meaning, the last argument is interpreted as the time zone, and the
+arguments in between are ignored.
+
+This means that it works to use the list returned by `decode-time' as
+the list of arguments for `encode-time'.
+
+** The default value of load-path now includes the directory
+/usr/local/share/emacs/VERSION/site-lisp In addition to
+/usr/local/share/emacs/site-lisp.  You can use this new directory for
+site-specific Lisp packages that belong with a particular Emacs
+version.
+
+It is not unusual for a Lisp package that works well in one Emacs
+version to cause trouble in another.  Sometimes packages need updating
+for incompatible changes; sometimes they look at internal data that
+has changed; sometimes the package has been installed in Emacs itself
+and the installed version should be used.  Whatever the reason for the
+problem, this new feature makes it easier to solve.
+
+** When your program contains a fixed file name (like .completions or
+.abbrev.defs), the file name usually needs to be different on operating
+systems with limited file name syntax.
+
+Now you can avoid ad-hoc conditionals by using the function
+convert-standard-filename to convert the file name to a proper form
+for each operating system.  Here is an example of use, from the file
+completions.el:
+
+(defvar save-completions-file-name
+        (convert-standard-filename "~/.completions")
+  "*The filename to save completions to.")
+
+This sets the variable save-completions-file-name to a value that
+depends on the operating system, because the definition of
+convert-standard-filename depends on the operating system.  On
+Unix-like systems, it returns the specified file name unchanged.  On
+MS-DOS, it adapts the name to fit the limitations of that system.
+
+** The interactive spec N now returns the numeric prefix argument
+rather than the raw prefix argument.  (It still reads a number using the
+minibuffer if there is no prefix argument at all.)
+
+** When a process is deleted, this no longer disconnects the process
+marker from its buffer position.
+
+** The variable garbage-collection-messages now controls whether
+Emacs displays a message at the beginning and end of garbage collection.
+The default is nil, meaning there are no messages.
+
+** The variable debug-ignored-errors specifies certain kinds of errors
+that should not enter the debugger.  Its value is a list of error
+condition symbols and/or regular expressions.  If the error has any
+of the condition symbols listed, or if any of the regular expressions
+matches the error message, then that error does not enter the debugger,
+regardless of the value of debug-on-error.
+
+This variable is initialized to match certain common but uninteresting
+errors that happen often during editing.
+
+** The new function error-message-string converts an error datum
+into its error message.  The error datum is what condition-case
+puts into the variable, to describe the error that happened.
+
+** Anything that changes which buffer appears in a given window
+now runs the window-scroll-functions for that window.
+
+** The new function get-buffer-window-list returns a list of windows displaying
+a buffer.  The function is called with the buffer (a buffer object or a buffer
+name) and two optional arguments specifying the minibuffer windows and frames
+to search.  Therefore this function takes optional args like next-window etc.,
+and not get-buffer-window.
+
+** buffer-substring now runs the hook buffer-access-fontify-functions,
+calling each function with two arguments--the range of the buffer
+being accessed.  buffer-substring-no-properties does not call them.
+
+If you use this feature, you should set the variable
+buffer-access-fontified-property to a non-nil symbol, which is a
+property name.  Then, if all the characters in the buffer range have a
+non-nil value for that property, the buffer-access-fontify-functions
+are not called.  When called, these functions should put a non-nil
+property on the text that they fontify, so that they won't get called
+over and over for the same text.
+
+** Changes in lisp-mnt.el
+
+*** The lisp-mnt package can now recognize file headers that are written
+in the formats used by the `what' command and the RCS `ident' command:
+
+;; @(#) HEADER: text
+;; $HEADER: text $
+
+in addition to the normal
+
+;; HEADER: text
+
+*** The commands lm-verify and lm-synopsis are now interactive.  lm-verify
+checks that the library file has proper sections and headers, and
+lm-synopsis extracts first line "synopsis'"information.
+
+
+
+* Editing Changes in Emacs 19.30.
+
+** Be sure to recompile your byte-compiled Emacs Lisp files
+if you last compiled them with Emacs 19.28 or earlier.
+You can use M-x byte-force-recompile to recompile all the .elc files
+in a specified directory.
+
+** Emacs now provides multiple-frame support on Windows NT
+and Windows 95.
+
+** M-x column-number-mode toggles a minor mode which displays
+the current column number in the mode line.
+
+** Line Number mode is now enabled by default.
+
+** M-x what-line now displays the line number in the accessible
+portion of the buffer as well as the line number in the full buffer,
+when narrowing is in effect.
+
+** If you type a M-x command that has an equivalent key binding,
+the equivalent is shown in the minibuffer before the command executes.
+This feature is enabled by default for the sake of beginning users.
+You can turn the feature off by setting suggest-key-bindings to nil.
+
+** The menu bar is now visible on text-only terminals.  To choose a
+command from the menu bar when you have no mouse, type M-`
+(Meta-Backquote) or F10.  To turn off menu bar display,
+do (menu-bar-mode -1).
+
+** Whenever you invoke a minibuffer, it appears in the minibuffer
+window that the current frame uses.
+
+Emacs can only use one minibuffer window at a time.  If you activate
+the minibuffer while a minibuffer window is active in some other
+frame, the outer minibuffer window disappears while the inner one is
+active.
+
+** Echo area messages always appear in the minibuffer window that the
+current frame uses.  If a minibuffer is active in some other frame,
+the echo area message does not hide it even temporarily.
+
+** The minibuffer now has a menu-bar menu.  You can use it to exit or
+abort the minibuffer, or to ask for completion.
+
+** Dead-key and composite character processing is done in the standard
+X11R6 manner (through the default "input method" using the
+/usr/lib/X11/locale/*/Compose databases of key combinations).  I.e. if
+it works in xterm, it should also work in emacs now.
+
+** Mouse changes
+
+*** You can now use the mouse when running Emacs in an xterm.
+Use M-x xterm-mouse-mode to let emacs take control over the mouse.
+
+*** C-mouse-1 now once again provides a menu of buffers to select.
+S-mouse-1 is now the way to select a default font for the frame.
+
+*** There is a new mouse-scroll-min-lines variable to control the
+minimum number of lines scrolled by dragging the mouse outside a
+window's edge.
+
+*** Dragging mouse-1 on a vertical line that separates windows
+now moves the line, thus changing the widths of the two windows.
+(This feature is available only if you don't have vertical scroll bars.
+If you do use them, a scroll bar separates two side-by-side windows.)
+
+*** Double-click mouse-1 on a character with "symbol" syntax (such as
+underscore, in C mode) selects the entire symbol surrounding that
+character.  (Double-click mouse-1 on a letter selects a whole word.)
+
+** When incremental search wraps around to the beginning (or end) of
+the buffer, if you keep on searching until you go past the original
+starting point of the search, the echo area changes from "Wrapped" to
+"Overwrapped".  That tells you that you are revisiting matches that
+you have already seen.
+
+** Filling changes.
+
+*** If the variable colon-double-space is non-nil, the explicit fill
+commands put two spaces after a colon.
+
+*** Auto-Fill mode now supports Adaptive Fill mode just as the
+explicit fill commands do.  The variable adaptive-fill-regexp
+specifies a regular expression to match text at the beginning of
+a line that should be the fill prefix.
+
+*** Adaptive Fill mode can take a fill prefix from the first line of a
+paragraph, *provided* that line is not a paragraph-starter line.
+
+Paragraph-starter lines are indented lines that start a new
+paragraph because they are indented.  This indentation shouldn't
+be copied to additional lines.
+
+Whether indented lines are paragraph lines depends on the value of the
+variable paragraph-start.  Some major modes set this; you can set it
+by hand or in mode hooks as well.  For editing text in which paragraph
+first lines are not indented, and which contains paragraphs in which
+all lines are indented, you should use Indented Text mode or arrange
+for paragraph-start not to match these lines.
+
+*** You can specify more complex ways of choosing a fill prefix
+automatically by setting `adaptive-fill-function'.  This function
+is called with point after the left margin of a line, and it should
+return the appropriate fill prefix based on that line.
+If it returns nil, that means it sees no fill prefix in that line.
+
+** Gnus changes.
+
+Gnus, the Emacs news reader, has been rewritten and expanded.  Most
+things that worked with the old version should still work with the new
+version.  Code that relies heavily on Gnus internals is likely to
+fail, though.
+
+*** Incompatibilities with the old GNUS.
+
+**** All interactive commands have kept their names, but many internal
+functions have changed names.
+
+**** The summary mode gnus-uu commands have been moved from the `C-c
+C-v' keymap to the `X' keymap.
+
+**** There can now be several summary buffers active at once.
+Variables that are relevant to each summary buffer are buffer-local to
+that buffer.
+
+**** Old hilit code doesn't work at all.  Gnus performs its own
+highlighting based not only on what's visible in the buffer, but on
+other data structures.
+
+**** Old packages like `expire-kill' will no longer work.
+
+**** `C-c C-l' in the group buffer no longer switches to a different
+buffer, but instead lists killed groups in the group buffer.
+
+*** New features.
+
+**** The look of all buffers can be changed by setting format-like
+variables.
+
+**** Local spool and several NNTP servers can be used at once.
+
+**** Groups can be combined into virtual groups.
+
+**** Different mail formats can be read much the same way as one would
+read newsgroups.  All the mail backends implement mail expiry schemes.
+
+**** Gnus can use various strategies for gathering threads that have
+lost their roots (thereby gathering loose sub-threads into one thread)
+or it can go back and retrieve enough headers to build a complete
+thread.
+
+**** Killed groups can be read.
+
+**** Gnus can do partial group updates - you do not have to retrieve
+the entire active file just to check for new articles in a few groups.
+
+**** Gnus implements a sliding scale of subscribedness to groups.
+
+**** You can score articles according to any number of criteria.  You
+can get Gnus to score articles for you using adaptive scoring.
+
+**** Gnus maintains a dribble buffer that is auto-saved the normal
+Emacs manner, so it should be difficult to lose much data on what you
+have read if your machine should go down.
+
+**** Gnus now has its own startup file (`.gnus.el') to avoid
+cluttering up the `.emacs' file.
+
+**** You can set the process mark on both groups and articles and
+perform operations on all the marked items.
+
+**** You can grep through a subset of groups and create a group from
+the results.
+
+**** You can list subsets of groups using matches on group names or
+group descriptions.
+
+**** You can browse foreign servers and subscribe to groups from those
+servers.
+
+**** Gnus can pre-fetch articles asynchronously on a second connection
+to the servers.
+
+**** You can cache articles locally.
+
+**** Gnus can fetch FAQs to and descriptions of groups.
+
+**** Digests (and other files) can be used as the basis for groups.
+
+**** Articles can be highlighted and customized.
+
+** Changes to Version Control (VC)
+
+*** General changes (all backends).
+
+VC directory listings (C-x v d) are now kept up to date when you do a
+vc-next-action (C-x v v) on the marked files.  The `g' command updates
+the buffer properly.  `=' in a VC dired buffer produces a version
+control diff, not an ordinary diff.
+
+*** CVS changes.
+
+Under CVS, you no longer need to type C-x C-q before you can edit a
+file.  VC doesn't write-protect unmodified buffers anymore; you can
+freely change them at any time.  The mode line keeps track of the
+file status.
+
+If you do want unmodified files to be write-protected, set your
+CVSREAD environment variable.  VC sees this and behaves accordingly;
+that will give you the behavior of Emacs 19.29, similar to that under
+RCS and SCCS.  In this mode, if the variable vc-mistrust-permissions
+is nil, VC learns the modification state from the file permissions.
+When setting CVSREAD for the first time, you should check out the
+whole module anew, so that the file permissions are set correctly.
+
+VC also works with remote repositories now.  When you visit a file, it
+doesn't run "cvs status" anymore, so there shouldn't be any long delays.
+
+Directory listings under VC/CVS have been enhanced.  Type C-x v d, and
+you get a list of all files in or below the current directory that are
+not up-to-date.  The actual status (modified, merge, conflict, ...) is
+displayed for each file.  If you give a prefix argument (C-u C-x v d),
+up-to-date files are also listed.  You can mark any number of files,
+and execute the next logical version control command on them (C-x v v).
+
+*** Starting a new branch.
+
+If you try to lock a version that is not the latest on its branch,
+VC asks for confirmation in the minibuffer.  If you say no, it offers
+to lock the latest version instead.
+
+*** RCS non-strict locking.
+
+VC can now handle RCS non-strict locking, too.  In this mode, working
+files are always writable and you needn't lock the file before making
+changes, similar to the default mode under CVS.  To enable non-strict
+locking for a file, use the "rcs -U" command.
+
+*** Sharing RCS master files.
+
+If you share RCS subdirs with other users (through symbolic links),
+and you always want to work on the latest version, set
+vc-consult-headers to nil and vc-mistrust-permissions to `t'.
+Then you see the state of the *latest* version on the mode line, not
+that of your working file.  When you do a check out, VC overwrites
+your working file with the latest version from the master.
+
+*** RCS customization.
+
+There is a new variable vc-consult-headers.  If it is t (the default),
+VC searches for RCS headers in working files (like `$Id$') and
+determines the state of the file from them, not from the master file.
+This is fast and more reliable when you use branches.  (The variable
+was already present in Emacs 19.29, but didn't get mentioned in the
+NEWS.)
+
+** Calendar changes.
+
+*** New calendars supported: Chinese, Coptic, Ethiopic
+
+Here are the commands for converting to and from these calendars:
+
+   gC: calendar-goto-chinese-date
+   gk: calendar-goto-coptic-date
+   ge: calendar-goto-ethiopic-date
+
+   pC: calendar-print-chinese-date
+   pk: calendar-print-coptic-date
+   pe: calendar-print-ethiopic-date
+
+*** Printed calendars
+
+Calendar mode now has commands to produce fancy printed calendars via
+LaTeX.  You can ask for a calendar for one or more days, weeks, months
+or years.  The commands all start with `t'; see the manual for a list
+of them.
+
+*** New sexp diary entry type
+
+Reminders that apply in the days leading up to an event.
+
+** The CC-mode package now provides the default C and C++ modes.
+See the manual for documentation of its features.
+
+** The uniquify package chooses buffer names differently when you
+visit multiple files with the same name (in different directories).
+
+** RMAIL now always uses the movemail program when it renames an
+inbox file, so that it can interlock properly with the mailer
+no matter where it is delivering mail.
+
+** tex-start-of-header and tex-end-of-header are now regular expressions,
+not strings.
+
+** To enable automatic uncompression of compressed files,
+type M-x auto-compression-mode.  (This command used to be called
+toggle-auto-compression, but was not documented before.)  In Lisp,
+you can do
+
+   (auto-compression-mode 1)
+
+to turn the mode on.
+
+** The new pc-select package emulates the key bindings for cutting and
+pasting, and selection of regions, found in Windows, Motif, and the
+Macintosh.
+
+** Help buffers now use a special major mode, Help mode.  This mode
+normally turns on View mode; it also provides a hook, help-mode-hook,
+which you can use for other customization.
+
+** Apropos now uses faces for enhanced legibility.  It now describes
+symbol properties as well as their function definitions and variable
+values.  You can use Mouse-2 or RET to get more information about a
+function definition, variable, or property.
+
+** Font Lock mode
+
+*** Supports Scheme, TCL and Help modes
+
+For example, to automatically turn on Font Lock mode in the *Help*
+buffer, put:
+
+ (add-hook 'help-mode-hook 'turn-on-font-lock)
+
+in your ~/.emacs.
+
+*** Enhanced fontification
+
+The structure of font-lock-keywords is extended to allow "anchored" keywords.
+Typically, a keyword item of font-lock-keywords comprises a regexp to search
+for and information to specify how the regexp should be highlighted.  However,
+the highlighting information is extended so that it can be another keyword
+item.  This keyword item, its regexp and highlighting information, is processed
+before resuming with the keyword item of which it is part.
+
+For example, a typical keyword item might be:
+
+ ("\\<anchor\\>" (0 anchor-face))
+
+which fontifies each occurrence of the discrete word "anchor" in the value of
+the variable anchor-face.  However, the highlighting information can be used to
+fontify text that is anchored to the word "anchor".  For example:
+
+ ("\\<anchor\\>" (0 anchor-face) ("\\=[ ,]*\\(item\\)" nil nil (1 item-face)))
+
+which fontifies each occurrence of "anchor" as above, but for each occurrence
+of "anchor", each occurrence of "item", in any following comma separated list,
+is fontified in the value of the variable item-face.  Thus the "item" text is
+anchored to the "anchor" text.  See the variable documentation for further
+information.
+
+This feature is used to extend the level and quality of fontification in a
+number of modes.  For example, C/C++ modes now have level 3 decoration that
+includes the fontification of variable and function names in declaration lists.
+In this instance, the "anchor" described in the above example is a type or
+class name, and an "item" is a variable or function name.
+
+*** Fontification levels
+
+The variables font-lock-maximum-decoration and font-lock-maximum-size are
+extended to specify levels and sizes for specific modes.  The variable
+font-lock-maximum-decoration specifies the preferred level of fontification for
+modes that provide multiple levels (typically from "subdued" to "gaudy").  The
+variable font-lock-maximum-size specifies the buffer size for which buffer
+fontification is suppressed when Font Lock mode is turned on (typically because
+it would take too long).
+
+These variables can now specify values for individual modes, by supplying
+lists of mode names and values.  For example, to use the above mentioned level
+3 decoration for buffers in C/C++ modes, and default decoration otherwise, put:
+
+ (setq font-lock-maximum-decoration '((c-mode . 3) (c++-mode . 3)))
+
+in your ~/.emacs.  Maximum buffer size values for individual modes are
+specified in the same way with the variable font-lock-maximum-size.
+
+*** Font Lock configuration
+
+The mechanism to provide default settings for Font Lock mode are the variables
+font-lock-defaults and font-lock-maximum-decoration.  Typically, you should
+only need to change the value of font-lock-maximum-decoration.  However, to
+support Font Lock mode for buffers in modes that currently do not support Font
+Lock mode, you should set a buffer local value of font-lock-defaults for that
+mode, typically via its mode hook.
+
+These variables are used by Font Lock mode to set the values of the variables
+font-lock-keywords, font-lock-keywords-only, font-lock-syntax-table,
+font-lock-beginning-of-syntax-function and font-lock-keywords-case-fold-search.
+
+You need not set these variables directly, and should not set them yourself
+since the underlining mechanism may change in future.
+
+** Archive mode is now the default mode for various sorts of
+archive files (files whose names end with .arc, .lzh, .zip, and .zoo).
+
+** You can automatically update the years in copyright notice by
+means of (add-hook 'write-file-hooks 'copyright-update).
+Optionally it can update the GPL version as well.
+
+** Scripts of various languages (Shell, AWK, Perl, makefiles ...) can
+be automatically provided with a magic number and be made executable
+by their respective modes under control of various user variables.
+The mode must call (executable-set-magic "perl") or
+(executable-set-magic "make" "-f").  The latter for example has no
+effect on [Mm]akefile.
+
+** Shell script mode now supports over 15 different shells.  The new
+command C-c ! executes the region, and optionally beginning of script
+as well, by passing them to the shell.
+
+Cases such as `sh' being a `bash' are now accounted for.
+Fontification now also does variables, the magic number and all
+builtin commands.  Shell script mode no longer mingles `tab-width' and
+indentation style.  The variable `sh-tab-width' has been renamed to
+`sh-indentation'.  Empty lines are now indented like previous
+non-empty line, rather than just previous line.
+
+The annoying $ variable prompting has been eliminated.  Instead, shell
+script mode uses `comint-dynamic-completion' for commands, variables
+and filenames.
+
+** Two-column mode now automatically scrolls both buffers together,
+which makes it possible to eliminate the special scrolling commands
+that used to do so.
+
+The commands that operate in two-column mode are no longer bound to
+keys outside that mode.  f2 o will now position at the same point in
+associated buffer.
+
+the new command f2 RET inserts a newline in both buffers, at point and
+at the corresponding position in the associated buffer.
+
+** Skeleton commands now work smoothly as abbrev definitions.  The
+element < no longer exists, ' is a new element.
+
+** The autoinsert insert facility for prefilling empty files as soon
+as they are found has been extended to accommodate skeletons or calling
+functions.  See the function auto-insert.
+
+** TPU-edt Changes
+
+Loading tpu-edt no longer turns on tpu-edt mode.  In fact, it is no
+longer necessary to explicitly load tpu-edt.  All you need to do to
+turn on tpu-edt is run the tpu-edt function.  Here's how to run
+tpu-edt instead of loading the file:
+
+  Running Emacs:   Type      emacs -f tpu-edt
+                    not      emacs -l tpu-edt
+
+  Within Emacs:    Type      M-x tpu-edt <ret>
+                    not      M-x load-library <ret> tpu-edt <ret>
+
+  In .emacs:       Use       (tpu-edt)
+                   not       (load "tpu-edt")
+
+The default name of the tpu-edt X key definition file has changed from
+~/.tpu-gnu-keys to ~/.tpu-keys.  If you don't rename the file yourself,
+tpu-edt will offer to rename it the first time you invoke it under
+x-windows.
+
+** MS-DOS Enhancements:
+
+*** Better mouse control by adding the following functions [in dosfns.c]
+msdos-mouse-enable, msdos-mouse-disable, msdos-mouse-init.
+
+*** If another foreground/background color than the default is setup in
+your ~/_emacs, then the screen briefly flickers with the default
+colors before changing to the colors you have specified.  To avoid
+this, the EMACSCOLORS environment variable exists.  It shall be
+defined as a string with the following elements:
+
+    set EMACSCOLORS=fb;fb
+
+The first set of "fb" defines the initial foreground and background
+colors using standard dos color numbers (0=black,.., 7=white).
+If specified, the second set of "fb" defines the colors which are
+restored when you leave emacs.
+
+*** The new SUSPEND environment variable can now be set as the shell to
+use when suspending emacs.  This can be used to override the stupid
+limitation on the environment of sub-shells in MS-DOS (they are just
+large enough to hold the currently defined variables, not leaving
+room for more); to overcome this limitation, add this to autoexec.bat:
+
+    set SUSPEND=%COMSPEC% /E:2000
+
+** The escape character can now be displayed on X frames.  Try
+this:
+    (aset standard-display-table 27 (vector 27))
+after first creating a display table (you can do that by loading
+the disp-table library).
+
+** The new command-line option --eval specifies an expression to evaluate
+from the command line.
+
+** etags has now the ability to tag Perl files.  They are recognised
+either by the .pm and .pl suffixes or by a first line which starts
+with `#!' and specifies a Perl interpreter.  The tagged lines are
+those beginning with the `sub' keyword.
+
+New suffixes recognised are .hpp for C++; .f90 for Fortran; .bib,
+.ltx, .TeX for TeX (.bbl, .dtx removed); .ml for Lisp; .prolog for
+prolog (.pl is now Perl).
+
+** The files etc/termcap.dat and etc/termcap.ucb have been replaced
+with a new, merged, and much more comprehensive termcap file.  The
+new file should include all the special entries from the old one.
+This new file is under active development as part of the ncurses
+project.  If you have any questions about this file, or problems with
+an entry in it, email terminfo@ccil.org.
+
+
+* Lisp changes in Emacs 19.30.
+
+** New Data Types
+
+*** There is a new data type called a char-table which is an array
+indexed by a character.  Currently this is mostly equivalent to a
+vector of length 256, but in the future, when a wider character set is
+in use, it will be different.  To create one, call
+   (make-char-table SUBTYPE INITIAL-VALUE)
+
+SUBTYPE is a symbol that identifies the specific use of this
+character table.  It can be any of these values:
+
+  syntax-table
+  display-table
+  keyboard-translate-table
+  case-table
+
+The function `char-table-subtype' returns the subtype of a char-table.
+You cannot alter the subtype of an existing char-table.
+
+A char-table has an element for each character code.  It also has some
+"extra slots".  The number of extra slots depends on the subtype and
+their use depends on the subtype.  (Each subtype symbol has a
+`char-table-extra-slots' property that says how many extra slots to
+make.)  Use (char-table-extra-slot TABLE N) to access extra slot N and
+(set-char-table-extra-slot TABLE N VALUE) to store VALUE in slot N.
+
+A char-table T can have a parent, which should be another char-table
+P.  If you look for the value in T for character C, and the table T
+actually holds nil, P's element for character C is used instead.
+The functions `char-table-parent' and `set-char-table-parent'
+let you read or set the parent of a char-table.
+
+To scan all the values in a char-table, do not try to loop through all
+possible character codes.  That would work for now, but will not work
+in the future.  Instead, call map-char-table.  (map-char-table
+FUNCTION TABLE) calls FUNCTION once for each character or character
+set that has a distinct value in TABLE.  FUNCTION gets two arguments,
+RANGE and VALUE.  RANGE specifies a range of TABLE that has one
+uniform value, and VALUE is the value in TABLE for that range.
+
+Currently, RANGE is always a vector containing a single character
+and it refers to that character alone.  In the future, other kinds
+of ranges will occur.  You can set the value for a given range
+with (set-char-table-range TABLE RANGE VALUE) and examine the value
+for a range with (char-table-range TABLE RANGE).
+
+*** Syntax tables are now represented as char-tables.
+All syntax tables other than the standard syntax table
+normally have the standard syntax table as their parent.
+Their subtype is `syntax-table'.
+
+*** Display tables are now represented as char-tables.
+Their subtype is `display-table'.
+
+*** Case tables are now represented as char-tables.
+Their subtype is `case-table'.
+
+*** The value of keyboard-translate-table may now be a char-table
+instead of a string.  Normally the char-tables used for this purpose
+have the subtype `keyboard-translate-table', but that is not required.
+
+*** A new data type called a bool-vector is a vector of values
+that are either t or nil.  To create one, do
+   (make-bool-vector LENGTH INITIAL-VALUE)
+
+** You can now specify, for each marker, how it should relocate when
+text is inserted at the place where the marker points.  This is called
+the "insertion type" of the marker.
+
+To set the insertion type, do (set-marker-insertion-type MARKER TYPE).
+If TYPE is t, it means the marker advances when text is inserted.  If
+TYPE is nil, it means the marker does not advance.  (In Emacs 19.29,
+markers did not advance.)
+
+The function marker-insertion-type reports the insertion type of a
+given marker.  The function copy-marker takes a second argument TYPE
+which specifies the insertion type of the new copied marker.
+
+** When you create an overlay, you can specify the insertion type of
+the beginning and of the end.  To do this, you can use two new
+arguments to make-overlay: front-advance and rear-advance.
+
+** The new function overlays-in returns a list of the overlays that
+overlap a specified range of the buffer.  The returned list includes
+empty overlays at the beginning of this range, as well as within the
+range.
+
+** The new hook window-scroll-functions is run when a window has been
+scrolled.  The functions in this list are called just before
+redisplay, after the new window-start has been computed.  Each function
+is called with two arguments--the window that has been scrolled, and its
+new window-start position.
+
+This hook is useful for on-the-fly fontification and other features
+that affect how the redisplayed text will look when it is displayed.
+
+The window-end value of the window is not valid when these functions
+are called.  The computation of window-end is byproduct of actual
+redisplay of the window contents, which means it has not yet happened
+when the hook is run.  Computing window-end specially in advance for
+the sake of these functions would cause a slowdown.
+
+The hook functions can determine where the text on the window will end
+by calling vertical-motion starting with the window-start position.
+
+** The new hook redisplay-end-trigger-functions is run whenever
+redisplay in window uses text that extends past a specified end
+trigger position.  You set the end trigger position with the function
+set-window-redisplay-end-trigger.  The functions are called with two
+arguments: the window, and the end trigger position.  Storing nil for
+the end trigger position turns off the feature, and the trigger value
+is automatically reset to nil just after the hook is run.
+
+You can use the function window-redisplay-end-trigger to read a
+window's current end trigger value.
+
+** The new function insert-file-contents-literally inserts the
+contents of a file without any character set translation or decoding.
+
+** The new function safe-length computes the length of a list.
+It never gets an error--it treats any non-list like nil.
+If given a circular list, it returns an upper bound for the number
+of elements before the circularity.
+
+** replace-match now takes a fifth argument, SUBEXP.  If SUBEXP is
+non-nil, that says to replace just subexpression number SUBEXP of the
+regexp that was matched, not the entire match.  For example, after
+matching `foo \(ba*r\)' calling replace-match with 1 as SUBEXP means
+to replace just the text that matched `\(ba*r\)'.
+
+** The new keymap special-event-map defines bindings for certain
+events that should be handled at a very low level--as soon as they
+are read.  The read-event function processes these events itself,
+and never returns them.
+
+Events that are handled in this way do not echo, they are never
+grouped into key sequences, and they never appear in the value of
+last-command-event or (this-command-keys).  They do not discard a
+numeric argument, they cannot be unread with unread-command-events,
+they may not appear in a keyboard macro, and they are not recorded
+in a keyboard macro while you are defining one.
+
+These events do, however, appear in last-input-event immediately after
+they are read, and this is the way for the event's definition to find
+the actual event.
+
+The events types iconify-frame, make-frame-visible and delete-frame
+are normally handled in this way.
+
+** encode-time now supports simple date arithmetic by means of
+out-of-range values for its SEC, MINUTE, HOUR, DAY, and MONTH
+arguments; for example, day 0 means the day preceding the given month.
+Also, the ZONE argument can now be a TZ-style string.
+
+** command-execute and call-interactively now accept an optional third
+argument KEYS.  If specified and non-nil, this specifies the key
+sequence containing the events that were used to invoke the command.
+
+** The environment variable NAME, if set, now specifies the value of
+(user-full-name), when Emacs starts up.
+
+
+
+* User Editing Changes in Emacs 19.29
+
+** If you run out of memory.
+
+If you get the error message "Virtual memory exhausted", type C-x s.
+That way of saving files has the least additional memory needs.  Emacs
+19.29 keeps a reserve of memory which it makes available when this
+error happens; that is to ensure that C-x s can complete its work.
+
+Once you have saved your data, you can exit and restart Emacs, or use
+M-x kill-some-buffers to free up space.  If you kill buffers
+containing a substantial amount of text, you can go on editing.
+
+Do not use M-x buffer-menu to save or kill buffers when you are out of
+memory, because that needs a fair amount memory itself and you may not
+have enough to get it started.
+
+** The format of compiled files has changed incompatibly.
+
+Byte-compiled files made with Emacs 19.29 normally use a new format
+that will not work in older Emacs versions.  You can compile files
+in the old format if you wish; see "Changes in compilation," below.
+
+** Emacs 19.29 supports the DEC Alpha.
+
+** Emacs runs on Windows NT.
+
+This port does not yet support windowing features.  It works like a
+text-only terminal, but it does support a mouse.
+
+In general, support for non-GNU-like operating systems is not a high
+priority for the GNU project.  We merged in the support for Windows NT
+because that system is expected to be very widely used.
+
+** Emacs supports Motif widgets.
+
+You can build Emacs with Motif widgets by specifying --with-x-toolkit=motif
+when you run configure.
+
+Motif defines collections of windows called "tab groups", and uses the
+tab key and the cursor keys to move between windows in a tab group.
+Emacs naturally does not support this--it has other uses for the tab
+key and cursor keys.  Emacs does not support Motif accelerators either,
+because it uses its normal keymap event binding features.
+
+We give higher priority to operation with a free widget set than to
+operation with a proprietary one.
+
+** If Emacs or the computer crashes, you can recover all the files you
+were editing from their auto save files by typing M-x recover-session.
+This first shows you a list of recorded interrupted sessions.  Move
+point to the one you choose, and type C-c C-c.
+
+Then recover-session asks about each of the files that were being
+edited during that session, asking whether to recover that file.  If
+you answer y, it calls recover-file, which works in its normal
+fashion.  It shows the dates of the original file and its auto-save
+file and asks once again whether to recover that file.
+
+When recover-session is done, the files you've chosen to recover
+are present in Emacs buffers.  You should then save them.
+Only this--saving them--updates the files themselves.
+
+** Menu bar menus now stay up if you click on the menu bar item and
+release the mouse button within a certain amount of time.  This is in
+the X Toolkit version.
+
+** The menu bar menus have been rearranged and split up to make for a
+better organization.  Two new menu bar menus, Tools and Search,
+contain items that were formerly in the Files and Edit menus, as well
+as some that did not exist in the menu bar menus before.
+
+** Emacs can now display on more than one X display at the same time.
+Use the command make-frame-on-display to create a frame, specifying
+which display to use.
+
+** M-x talk-connect sets up a multi-user talk connection
+via Emacs.  Specify the X display of the person you want to talk to.
+You can talk to any number of people (within reason) by using
+this command repeatedly to specify different people.
+
+Emacs does not make a fuss about security; the people who you talk to
+can use all Emacs features, including visiting and editing files.  If
+this frightens you, don't use M-x talk-connect.
+
+** The range of integer values is now at least 2**28 on all machines.
+This means the maximum size of a buffer is at least 2**27-1,
+or 134,217,727.
+
+** When you start Emacs, you can now specify option names in
+long GNU form (starting with `--') and you can abbreviate the names.
+
+You can now specify the options in any order.
+The previous requirements about the order of options
+have been eliminated.
+
+The -L or --directory option lets you specify an additional
+directory to search for Lisp libraries (including libraries
+that you specify with the -l or --load options).
+
+** Incremental search in Transient Mark mode, if the mark is already
+active, now leaves the mark active and does not change its position.
+You can make incremental search deactivate the mark once again with
+this expression.
+
+    (add-hook 'isearch-mode-hook 'deactivate-mark)
+
+** C-delete now deletes a word backwards.  This is for compatibility
+with some editors in the PC world.  (This key is not available on
+ordinary ASCII terminals, because C-delete is not a distinct character
+on those terminals.)
+
+** ESC ESC ESC is now a command to escape from various temporary modes
+and states.
+
+** M-x pc-bindings-mode sets up bindings compatible with many PC editors.
+In particular, Delete and its variants delete forward instead of backward.
+Use Backspace to delete backward.
+
+C-Backspace kills backward a word (as C-Delete normally would).
+M-Backspace does undo.
+Home and End move to beginning and end of line
+C-Home and C-End move to beginning and end of buffer.
+
+** The key sequence for evaluating a Lisp expression using the minibuffer
+is now ESC :.  It used to be ESC ESC, but we moved it to make way for
+the ESC ESC ESC feature, on the grounds that people who evaluate Lisp
+expressions are experienced users and can cope with a change.
+If you prefer the old ESC ESC binding, put in your `~/.emacs':
+
+	(global-set-key "\e\e" 'eval-expression)
+
+** The f1 function key is now equivalent to the help key.  This is
+done with key-translation-map; delete the binding for f1 in that map
+if you want to use f1 for something else.
+
+** Mouse-3, in the simplest case, still sets the region.  But now, it
+places the mark where point was, and sets point where you click.
+(It used to set the mark where you click and leave point alone.)
+
+If you position point with Mouse-1, then scroll with the scroll bar
+and use Mouse-3, Mouse-3 uses the position you specified with Mouse-1
+even if it has scrolled off the screen (and point is no longer there).
+This makes it easier to select a region with the mouse which is bigger
+than a screenful.
+
+Any editing of the buffer, and any cursor motion or scrolling for any
+reason other than the scroll bar, cancels the special state set up by
+Mouse-1--so that a subsequent Mouse-3 click will use the actual value
+of point.
+
+** C-mouse-3 now pops up a mode-specific menu of commands--normally
+the same ones available in the mode's own menu bar menus.
+
+** C-mouse-2 now pops up a menu of faces, indentation, justification,
+and certain other text properties.  This menu is also available
+through the menu-bar Edit menu.  It is meant for use with Enriched
+mode.
+
+*** You can use this menu to change the face of the region.
+You can also set the face of the region with the new M-g command.
+
+*** The menu also includes commands for indenting the region,
+which locally changes the values of left-margin and fill-column that
+are used.
+
+*** All fill functions now indent every line to the left-margin.  If
+there is also a fill-prefix, that goes after the margin indentation.
+
+*** Open-line and newline also make sure that the lines they create
+are indented to the left margin.
+
+*** It also allows you to set the "justification" of the region:
+whether it should be centered, flush right, and so forth.  The fill
+functions (including auto-fill-mode) will maintain the justification
+and indentation that you request.
+
+*** The new function `list-colors-display' shows you what colors are
+available.  This is also accessible from the C-mouse-2 menu.
+
+** You can now save and load files including their faces and other
+text-properties by using Enriched-mode.  Files are saved in an
+extended version of the MIME text/enriched format.  You can use the
+menus described above, or M-g and other keyboard commands, to
+alter the formatting information.
+
+** C-mouse-1 now pops up the menu for changing the frame's default font.
+
+** You can input Hyper, Super, Meta, and Alt characters, as well as
+non-ASCII control characters, on an ASCII-only terminal.
+To do this, use
+
+  C-x @ h  --  hyper
+  C-x @ s  --  super
+  C-x @ m  --  meta
+  C-x @ a  --  alt
+  C-x @ S  --  shift
+  C-x @ c  --  control
+
+These are not ordinary key sequences; they operate through
+function-key-map, which means they can be used even in the
+middle of an ordinary key sequence.
+
+** Outline minor mode and Hideif mode now use C-c @ as their prefix
+character.
+
+** Echo area messages are now logged in the "*Messages*" buffer.  The
+size of this buffer is limited to message-log-max lines.
+
+** RET in various special modes for read-only buffers that contain
+lists of items now selects the item point is on.  These modes include
+Dired, Compilation buffers, Buffer-menu, Tar mode, and Occur mode.
+(In Info, RET follows the reference near point; in completion list
+buffers, RET chooses the completion around point.)
+
+** set-background-color now updates the modeline face in a special
+way.  If that face was previously set up to be reverse video, the
+reverse of the default face, then set-background-color updates it so
+that it remains the reverse of the default face.
+
+** The functions raise-frame and lower-frame are now commands.
+When used interactively, they apply to the selected frame.
+
+** M-x buffer-menu now displays the buffer list in the selected window.
+Use M-x buffer-menu-other-window to display it in another window.
+
+** M-w followed by a kill command now *does not* append the text in
+the kill ring.  In consequence, M-w followed by C-w works as you would
+expect: it leaves the top of the kill ring matching the region that
+you killed.
+
+** In Lisp mode, the C-M-x command now executes defvar forms in a
+special way: it unconditionally sets the variable to the specified
+default value, if there is one.  Normal execution of defvar does not
+alter the variable if it already has a non-void value.
+
+** In completion list buffers, the left and right arrow keys run the
+new commands previous-completion and next-completion.  They move one
+completion at a time.
+
+** While doing completion in the minibuffer, the `prior' or `pageup'
+key switches to the completion list window.
+
+** When you exit the minibuffer with empty contents, the empty string
+is not put in the minibuffer history.
+
+** The default buffer for insert-buffer is now the "first" buffer
+other than the current one.  If you have more than one window, this
+is a buffer visible in another window.  (Usually it is the buffer
+that C-M-v would scroll.)
+
+** The etags program is now capable of recording tags based on regular
+expressions provided on the command line.
+
+This new feature allows easy support for constructs not normally
+handled by etags, such as the macros frequently used in big C/C++
+projects to define project-specific structures.  It also enables the
+use of etags and TAGS files for languages not supported by etags.
+
+The Emacs manual section on Tags contains explanations and examples
+for Emacs's DEFVAR, VHDL, Cobol, Postscript and TCL.
+
+** Various mode-specific commands that used to be bound to C-c LETTER
+have been moved.
+
+*** In gnus-uu mode, gnus-uu-interactive-scan-directory is now on C-c C-d,
+and gnus-uu-interactive-save-current-file is on C-c C-z.
+
+*** In Scribe mode, scribe-insert-environment is now on C-c C-v,
+scribe-chapter is on C-c C-c, scribe-subsection is on C-c C-s,
+scribe-section is on C-c C-t, scribe-bracket-region-be is on C-c C-e,
+scribe-italicize-word is on C-c C-i, scribe-bold-word is on C-c C-b,
+and scribe-underline-word is on C-c C-u.
+
+*** In Gomoku mode, gomoku-human-takes-back is now on C-c C-b,
+gomoku-human-plays is on C-c C-p, gomoku-human-resigns is on C-c C-r,
+and gomoku-emacs-plays is on C-c C-e.
+
+*** In the Outline mode defined in allout.el,
+outline-rebullet-current-heading is now on C-c *.
+
+** M-s in Info now searches through the nodes of the Info file,
+just like s.  The alias M-s was added so that you can use the same
+command for searches in both Info and Rmail.
+
+** iso-acc.el now lets you enter inverted-! and inverted-?
+with the sequences ~! and ~?.
+
+** M-x compare-windows now pushes mark in both windows before
+it starts moving point.
+
+** There are two new commands in Dired, A (dired-do-search)
+and Q (dired-do-query-replace).  These are similar to tags-search and
+tags-query-replace, but instead of searching the list of files that
+appears in a tags table, they search all the files marked in Dired.
+
+** Changes to dabbrev.
+
+A new function, `dabbrev-completion' (bound to M-C-/), expands the
+unique part of an abbreviation.
+
+Dabbrev now looks for expansions in other buffers, looks for symbols
+instead of words and it works in the minibuffer.
+
+Dabbrev can be customized to work for shell scripts, with variables
+that sometimes have and sometimes haven't a leading "$".  See the
+variable 'dabbrev-abbrev-skip-leading-regexp'.
+
+** In Rmail, the command rmail-input-menu has been eliminated.  The
+feature of selecting an Rmail file from a menu is now implemented in
+another way.
+
+** Bookmarks changes.
+
+*** It now works to set bookmarks in Info nodes.
+
+*** Bookmarks can have annotations; type "C-h m" after doing
+"M-x list-bookmarks", for more information on annotations.
+
+*** The bookmark-jump popup menu function is now `bookmark-menu-jump', for
+those who bind it to a mouse click.
+
+*** The default bookmarks file name is now "~/.emacs.bmk".  If you
+already have a bookmarks file, it will be renamed automagically when
+you next load it.
+
+** New package, ps-print.
+
+The ps-print package generates PostScript printouts of buffers or
+regions, and includes face attributes such as color, underlining,
+boldface and italics in the printed output.
+
+** New package, msb.
+
+The msb package provides a buffer-menu in the menubar with separate
+menus for different types of buffers.
+
+** `cpp.el' is a new library that can highlight or hide parts of a C
+file according to C preprocessor conditionals.  To try it, run the
+command M-x cpp-highlight-buffer.
+
+** Changes in CC mode.
+
+*** c-set-offset and related functions and variables can now accept
+variable symbols.  Also ++ and -- which mean 2* positive and negative
+c-basic-offset respectively.
+
+*** New variable, c-recognize-knr-p, which controls whether K&R C
+constructs will be recognized.  Trying to recognize K&R constructs is a
+time hog so if you're programming strictly in ANSI C, set this
+variable to nil (it should already be nil in c++-mode).
+
+*** New variable, c-hanging-comment-ender-p for controlling
+c-fill-paragraph's behavior.
+
+*** New syntactic symbol: statement-case-open.  This is assigned to lines
+containing an open brace just after a case/default label.
+
+*** New variable, c-progress-interval, which controls minibuffer update
+message displays during long re-indention.  This is a new feature
+which prints percentage complete messages at specified intervals.
+
+** Makefile mode changes.
+
+*** The electric keys are not enabled by default.
+
+*** There is now a mode-specific menu bar menu.
+
+*** The mode supports font-lock, add-log, and imenu.
+
+*** The command M-TAB does completion of target names and variable names.
+
+** icomplete.el now works more like a minor mode.  Use M-x icomplete-mode
+to turn it on and off.
+
+Icomplete now supports an `icomplete-minibuffer-setup-hook', which is
+run on minibuffer setup whenever icompletion will be occurring.  This
+hook can be used to customize interoperation of icomplete with other
+minibuffer-specific packages, eg rsz-mini.  See the doc string for
+more info.
+
+** Ediff change.
+
+Use ediff-revision instead of vc-ediff.  It also replaces rcs-ediff,
+for those who use that; if you want to use a version control package
+other than vc.el, you must set the variable
+ediff-version-control-package to specify which package.
+
+** VC now supports branches with RCS.
+
+You can use C-u C-x C-q to select any branch or version by number.
+It reads the version number or branch number with the minibuffer,
+then checks out the file unlocked.
+
+Type C-x C-q again to lock the selected branch or version.
+When you check in changes to that branch or version, there are two
+possibilities:
+
+-- If you've selected a branch, or a version at the tip of a branch,
+then the new version adds to that branch.  If you wish to create a
+new branch, use C-u C-x C-q to specify a version number when you check
+in the new version.
+
+-- If you've selected an inner version which is not the latest in its
+branch, then the new version automatically creates a new branch.
+
+** VC now supports CVS as well as RCS and SCCS.
+
+Since there are no locks in CVS, some things behave slightly
+different when the backend is CVS.  When vc-next-action is invoked
+in a directory handled by CVS, it does the following:
+
+   If the file is not already registered, this registers it for version
+control.  This does a "cvs add", but no "cvs commit".
+   If the file is added but not committed, it is committed.
+   If the file has not been changed, neither in your working area or
+in the repository, a message is printed and nothing is done.
+   If your working file is changed, but the repository file is
+unchanged, this pops up a buffer for entry of a log message; when you
+finish the log message with C-c C-c, that checks in the resulting
+changes along with the log message as change commentary.  A writable
+file remains in existence.
+
+   If vc-next-action changes the repository file, it asks you
+whether to merge in the changes into your working copy.
+
+vc-directory, when started in a CVS file hierarchy, reports
+all files that are modified (and thus need to be committed).
+(When the backend is RCS or SCCS vc-directory reports all
+locked files).
+
+VC has no support for running the initial "cvs checkout" to get a
+working copy of a module.  You can only use VC in a working copy of
+a module.
+
+You can disable the CVS support as follows:
+
+  (setq vc-master-templates (delq 'vc-find-cvs-master vc-master-templates))
+
+or by setting vc-handle-cvs to nil.
+
+This may be desirable if you run a non-standard version of CVS, or
+if CVS was compiled with FORCE_USE_EDITOR or (possibly)
+RELATIVE_REPOS.
+
+** Comint and shell mode changes:
+
+*** Completion works with file names containing quoted characters.
+
+File names containing special characters (such as " ", "!", etc.) that are
+quoted with a "\" character are recognised during completion.  Special
+characters are quoted when they are inserted during completion.
+
+*** You can use M-x comint-truncate-buffer to truncate the buffer.
+
+When this command is run, the buffer is truncated to a maximum number
+of lines, specified by the variable comint-buffer-maximum-size.  Just
+like the command comint-strip-ctrl-m, this can be run automatically
+during process output by doing this:
+
+(add-hook 'comint-output-filter-functions
+	  'comint-truncate-buffer)
+
+** Telnet mode buffer name changed.
+
+The buffer name for a Telnet buffer is now *telnet-HOST*, not
+ *HOST-telnet*.  This is for consistency with other Emacs packages.
+
+** M-x man (man) is now faster and more robust.  On systems where the
+entire man page is indented, the indentation is removed.
+
+The user option names that used to end in -p now end in -flag.  The
+new names are: Man-reuse-okay-flag, Man-downcase-section-letters-flag,
+Man-circular-pages-flag.  The Man-notify user option has been renamed to
+Man-notify-method and accepts one more value, `pushy', that just
+switches the current buffer to the manpage buffer, without switching
+frames nor changing your windows configuration.
+
+A new user option Man-fontify-manpage-flag disables fontification
+(thus speeding up man) when set to nil.  Default is to fontify if a
+window system is used.  Two new user options Man-overstrike-face
+(default 'bold) and Man-underline-face (default 'underline) can be set
+to the preferred faces to be used for the words that man overstrikes
+and underlines.  Useful for those who like coloured man pages.
+
+Two new interactive functions are provided: Man-cleanup-manpage and
+Man-fontify-manpage.  Both can be used on a buffer that contains the
+output of a `rsh host man manpage' command, or the output of an
+`nroff -man -Tman manpage' command to make them readable.
+Man-cleanup-manpage is faster, but does not fontify.
+
+** The new function modify-face makes it easy to specify
+all the attributes of a face, all at once.
+
+** Faces now support background stippling.
+
+Use the command set-face-stipple to specify the stipple-pattern for a
+face.  Use face-stipple to access the specified stipple pattern.  The
+existing face functions now handle the stipple pattern when
+appropriate.
+
+If you specify one of the standard gray colors as a face background
+color, and your display doesn't handle gray, Emacs automatically uses
+stipple instead to get the same effect.
+
+** Changes in Font Lock mode.
+
+*** Fontification
+
+Two new default faces are provided; `font-lock-variable-name-face' and
+`font-lock-reference-face'.  The face `font-lock-doc-string-face' has
+been removed since it is the same as the existing
+`font-lock-string-face'.  Where appropriate, fontification
+automatically uses these new faces.
+
+Fontification via commands `font-lock-mode' and
+`font-lock-fontify-buffer' is now cleanly interruptible (i.e., with
+C-g).  If you interrupt during the fontification process, the buffer
+remains in its previous modified state and all highlighting is removed
+from the buffer.
+
+For C/C++ modes, Font Lock mode is much faster but highlights much
+more.  Other modes are faster/more extensive/more discriminatory, or a
+combination of these.
+
+To enable Font Lock mode, add the new function `turn-on-font-lock' in
+one of the following ways:
+
+ (add-hook 'c-mode-hook 'turn-on-font-lock)
+
+Or for any visited file with:
+
+ (add-hook 'find-file-hooks 'turn-on-font-lock)
+
+*** Supports color and grayscale displays
+
+Font Lock mode supports different ways of highlighting, depending on
+the type of display and background shade.  Attributes (face color,
+bold, italic and underline, and display type and background mode) can
+be controlled either from Emacs Lisp or X resources.
+
+See the new variables `font-lock-display-type' and
+`font-lock-face-attributes'.
+
+*** Supports more modes
+
+The following modes are directly supported:
+
+ada-mode, asm-mode, bibtex-mode, c++-c-mode, c++-mode, c-mode,
+change-log-mode, compilation-mode, dired-mode, emacs-lisp-mode,
+fortran-mode, latex-mode, lisp-mode, mail-mode, makefile-mode,
+outline-mode, pascal-mode, perl-mode, plain-tex-mode, rmail-mode,
+rmail-summary-mode, scheme-mode, shell-mode, slitex-mode, tex-mode,
+texinfo-mode.
+
+See the new variables `font-lock-defaults-alist' and
+`font-lock-defaults'.
+
+Some modes support different levels of fontification.  You can choose
+to use the minimum or maximum available decoration by changing the
+value of the new variable `font-lock-maximum-decoration'.
+
+Programmers are urged to make available to the community their own
+keywords for modes not yet supported.  See font-lock.el for
+information about efficiency.
+
+*** fast-lock
+
+The fast-lock package speeds up Font Lock mode by saving font choices
+in associated cache files.  When you visit a file with Font Lock mode
+and Fast Lock mode turned on for the first time, the file's buffer is
+fontified as normal.  When certain events occur (such as exiting
+Emacs), Fast Lock saves the highlighting in a cache file.  When you
+subsequently visit this file, its cache is used to restore the
+highlighting.
+
+To use this package, put in your `~/.emacs':
+
+ (add-hook 'font-lock-mode-hook 'turn-on-fast-lock)
+
+To control the use of caches, see the documentation for `fast-lock-mode'.
+
+** You can tell pop-to-buffer to display certain buffers in the selected
+window rather than finding some other window to display them in.
+There are two variables you can use to specify these buffers.
+
+same-window-buffer-names holds a list of buffer names; if a buffer's
+name appears in this list, pop-to-buffer puts it in the selected window.
+
+same-window-regexps holds a list of regexps--if any one of them
+matches a buffer's name, then pop-to-buffer puts that buffer in the
+selected window.
+
+The default values of these variables are not nil: they list various
+buffers that normally appear, when you as for them, in the selected
+window.  These include shell buffers, mail buffers, telnet buffers,
+and others.  By removing elements from these variables, you can ask
+Emacs to display those buffers in separate windows.
+
+** The special-display-buffer-names and special-display-regexps lists
+have been generalized.  An element may now be a list.  The car of the list
+is the buffer name or regular expression for matching buffer names.
+
+The cdr of the list can be an alist specifying additional frame
+parameters for use in constructing the special display frame.
+
+Alternatively, the cdr can have this form:
+
+  (FUNCTION ARGS...)
+
+where FUNCTION is a symbol.  Then the frame is constructed by calling
+FUNCTION; its first argument is the buffer, and its remaining
+arguments are ARGS.
+
+** If the environment variable REPLYTO is set, its value is the default
+for mail-default-reply-to.
+
+** When you send a message in Emacs, if you specify an Rmail file with
+the FCC: header field, Emacs converts the message to Rmail format
+before writing it.  Thus, the file never contains anything but Rmail
+format messages.
+
+** The new variable mail-from-style controls whether the From: header
+should include the sender's full name, and if so, which format to use.
+
+** The new variable mail-personal-alias-file specifies the name of the
+user's personal aliases.  This defaults to the file ~/.mailrc.
+mailabbrev.el used to have its own variable for this purpose
+(mail-abbrev-mailrc-file).  That variable is no longer used.
+
+** In Buffer-Menu mode, the d and C-d commands (which mark buffers for
+deletion) now accept a prefix argument which serves as a repeat count.
+
+** Changes in BibTeX mode.
+
+*** Reference keys can now be entered with TAB completion.  All
+reference keys defined in that buffer and all labels that appear in
+crossreference entries are object to completion.
+
+*** Braces are supported as field delimiters in addition to quotes.
+BibTeX entries may have brace-delimited and quote-delimited fields
+intermixed.  The delimiters generated for new entries are specified by
+the variables bibtex-field-left-delimiter and
+bibtex-field-right-delimiter on a buffer-local basis. Those variables
+default to braces, since it is easier to put quote accented characters
+(as the german umlauts) into a brace-delimited entry.
+
+*** The function bibtex-clean-entry can now be invoked with a prefix
+argument.  In this case, a label is automatically generated from
+various fields in the record.  If bibtex-clean-entry is invoked on a
+record without label, a label is also generated automatically.
+Various variables (all beginning with `bibtex-autokey-') control the
+creation of that key.  The variable bibtex-autokey-edit-before-use
+determines, if the user is allowed to edit auto-generated reference
+keys before they are used.
+
+*** A New function bibtex-complete-string completes strings with
+respect to the strings defined in this buffer and a set of predefined
+strings (initialized to the string macros defined in the standard
+BibTeX style files) in the same way in which ispell-complete-word
+works with respect to words in a dictionary.  Candidates for
+bibtex-complete-string are initialized from variable
+bibtex-predefined-strings and by parsing the files found in
+bibtex-string-files for @String definitions.
+
+*** Every reference/field pair has now attached a comment which
+appears in the echo area when this field is edited.  These comments
+should provide useful hints for BibTeX usage, especially for BibTeX
+beginners.  New variable bibtex-help-message determines if these help
+messages are to appear in the minibuffer when moving to a text entry.
+
+*** Inscriptions of menu bar changed from "Entry Types" to
+"Entry-Types" and "Bibtex Edit" to "BibTeX-Edit".
+
+*** The variable bibtex-include-OPTcrossref is now not longer a binary
+switch but a list of reference names which should contain a crossref
+field.  E.g., you can tell bibtex-mode you want a crossref field for
+@InProceedings and @InBook entries but for no other.
+
+*** The function validate-bibtex-buffer was completely rewritten to
+validate if a buffer is syntactically correct.  find-bibtex-duplicates
+is no longer a function itself but was moved into
+validate-bibtex-buffer.
+
+*** Cleaning a BibTeX entry tests, if necessary fields are there.
+E.g., if you tell bibtex-mode to include a crossref entry, some fields
+are optional which would be required without the crossref entry.  If
+you now leave the crossref entry empty and do a bibtex-clean-entry
+with some now required fields left empty, version 2.0 of bibtex.el
+complains about the absence of these fields, whereas version 1.3
+didn't.
+
+*** Default value for variables bibtex-maintain-sorted-entries and
+bibtex-sort-ignore-string-entries is now t.
+
+*** All interactive functions are renamed to begin with `bibtex-'.
+
+*** Keybindings with \C-c\C-e entry changed for unification.  Often
+used reference types are now on control-modified keys, mediocre used
+types are on unmodified keys, seldom used types are on shift-modified
+keys and almost never used types on meta-modified keys.
+
+
+* Configuration Changes in Emacs 19.29
+
+** Emacs now uses directory /usr/local/share for most of its installed
+files.  This follows a GNU convention for directory usage.
+
+** The option --with-x11 is no longer supported.
+X11 is the only version of X that Emacs 19.29 supports;
+use --with-x if you need to request X support explicitly.
+(Normally this should not be necessary, since configure should
+automatically enable X support if X is installed on your machine.)
+
+** If you use the site-init.el file to set the variable
+mail-host-address to a string in the dumped Emacs, that string becomes
+the default host address for initializing user-mail-address.
+It is used instead of the value of (system-name).
+
+
+* Lisp-Level Changes in Emacs 19.29
+
+** Basic Lisp
+
+*** The range of integer values is now at least 2**28 on all machines.
+This means the maximum size of a buffer is at least 2**27-1,
+or 134,217,727.
+
+*** You can now use Common Lisp syntax for the backquote and comma
+macros.  Thus, you can now write `(x ,y z) instead of (` (x (, y) z)).
+
+The old syntax is still accepted.
+
+*** The new function rassoc is like assoc, except that it compares the
+key against the cdr of each alist element, where assoc would compare
+it against the car of each alist element.
+
+*** The new function unintern deletes a symbol from an obarray.  The
+first argument can be the symbol to delete, or a string giving its
+name.  The second argument specifies the obarray (nil means the
+current default obarray).
+
+If the specified symbol is not in the obarray, or if there's no symbol
+in the obarray matching the specified string, unintern does nothing
+and returns nil.  If it does delete a symbol, it returns t.
+
+*** You can specify an alternative read function for use by load and
+eval-region by binding the variable load-read-function to some other
+function.  This function should accept one argument just like read.
+If load-read-function is nil, load and eval-region use ordinary read.
+
+*** The new function `type-of' takes any object as argument, and
+returns a symbol identifying the type of that object--one of `symbol',
+`integer', `float', `string', `cons', `vector', `marker', `overlay',
+`window', `buffer', `subr', `compiled-function',
+`window-configuration', `process'.
+
+*** When you use eval-after-load for a file that is already loaded, it
+executes the FORM right away.  As before, if the file is not yet
+loaded, it arranges to execute FORM if and when the file is loaded
+later.  The result is: if you have called eval-after-load for a file,
+and if that file has been loaded, then regardless of the order of
+these two events, the specified form has been evaluated.
+
+*** The Lisp construct #@NUMBER now skips the next NUMBER characters,
+treating them as a comment.
+
+You would not want to use this in a file you edit by hand, but it is
+useful for commenting out parts of machine-generated files.
+
+*** Two new functions, `plist-get' and `plist-put',
+allow you to modify and retrieve values from lists formatted as property-lists.
+They work like `get' and `put', but operate on any list.
+`plist-put' returns the modified property-list; you must store it
+back where you got it.
+
+*** The new function add-to-list is called with two elements,
+a variable that holds a list and a new element.
+It adds the element to the list unless it is already present.
+It compares elements using `equal'.  Here is an example:
+
+(setq foo '(a b)) => (a b)
+
+(add-to-list 'foo 'c) => (c a b)
+
+(add-to-list 'foo 'b) => (c a b)
+
+foo => (c a b)
+
+** Changes in compilation.
+
+Functions and variables loaded from a byte-compiled file
+now refer to the file for their doc strings.
+
+This has a few consequences:
+
+-- Loading the file is faster and uses less memory.
+-- Reference to doc strings is a little slower (the same speed
+   as reference to the doc strings of primitive and preloaded functions).
+-- The compiled files will not work in old versions of Emacs.
+-- If you move the compiled file after loading it, Emacs can no longer
+   find these doc strings.
+-- If you alter the compiled file (such as by compiling a new
+   version), then further access to documentation strings will get
+   nonsense results.
+
+The byte compiler now optionally supports lazy loading of compiled
+functions' definitions.  If you enable this feature when you compile,
+loading the compiled file does not actually bring the function
+definitions into core.  Instead it creates references to the compiled
+file, and brings each function's definition into core the first time
+you call that function, or when you force it with the new function
+`fetch-bytecode'.
+
+Using the lazy loading feature has a few consequences:
+
+-- Loading the file is faster and uses less memory.
+-- Calling any function in the file for the first time is slower.
+-- If you move the compiled file after loading it, Emacs can no longer
+   find the function definitions.
+-- If you alter the compiled file (such as by compiling a new
+   version), then further access to functions not already loaded
+   will get nonsense results.
+
+To enable the lazy loading feature, set up a non-nil file local
+variable binding for the variable `byte-compile-dynamic' in the Lisp
+source file.  For example, put this on the first line:
+
+    -*-byte-compile-dynamic: t;-*-
+
+It's a good idea to use the lazy loading feature for a file that
+contains many functions, most of which are not actually used by a
+given user in a given session.
+
+To turn off the basic feature of referring to the file for doc
+strings, set byte-compile-dynamic-docstrings to nil.  You can do this
+globally, or for one source file by adding this to the first line:
+
+    -*-byte-compile-dynamic-docstrings: nil;-*-
+
+** Strings
+
+*** Do not pass integer arguments to `concat' (or `vconcat' or
+`append').  We are phasing out the old unrecommended support for
+integers as arguments to these functions, in preparation for treating
+numbers as single characters in a future release.  To concatenate
+numbers in string form, use `number-to-string' first, or rewrite the
+call to use `format' instead of `concat'.
+
+*** The new function match-string returns the string of text matched at
+the given parenthesized expression by the last regexp search, or nil
+if there was no match.  If the last match was by `string-match' on a
+string, the string must be given.  Therefore, this function can be
+used in place of `buffer-substring' and `substring', when using
+`match-beginning' and `match-end' to find match positions.
+
+   (match-string N)   or   (match-string N STRING)
+
+*** The function replace-match now accepts an optional fourth argument,
+STRING.  Use this after performing string-match on STRING, to replace
+the portion of STRING that was matched.  When used in this way,
+replace-match returns a newly created string which is the same as
+STRING except for the matched portion.
+
+*** The new function buffer-substring-no-properties
+is like buffer-substring except that the string it returns
+has no text properties.
+
+*** The function `equal' now considers two strings to be different
+if they don't have the same text properties.
+
+** Completion
+
+*** all-completions now takes an optional fourth argument.
+If that argument is non-nil, completions that start with a space
+are ignored unless the initial string also starts with a space.
+(This used to happen unconditionally.)
+
+** Local Variables
+
+*** Local hook variables.
+
+There is now a clean way to give a hook variable a buffer-local value.
+Call the function `make-local-hook' to do this.
+
+Once a hook variable is buffer-local, you can add hooks to it either
+globally or locally.  run-hooks runs the local hook functions
+of the current buffer, then all the global hook functions.
+
+The functions add-hook and remove-hook take an additional optional
+argument LOCAL which says whether to add (or remove) a local hook
+function or a global one.
+
+Local hooks use t as an element of the (local) value of the hook
+variable as a flag meaning to use the global value also.
+
+*** The new function local-variable-p tells you whether a particular
+variable is buffer-local in the current buffer or a specified buffer.
+
+** Editing Facilities
+
+*** The function copy-region-as-kill no longer sets this-command;
+as a result, a following kill command will not normally append
+to the text saved by copy-region-as-kill.
+
+*** Regular expression searching and matching no longer performs full
+Posix backtracking by default.  They now stop with the first match found
+instead of looking for the longest match--just as they did in Emacs 18.
+The reason for this change is to get higher speed.
+
+There are new functions you can use if you really want to search or
+match with Posix behavior: posix-search-forward,
+posix-search-backward, posix-looking-at, and posix-string-match.  Call
+these just like re-search-forward, re-search-backward, looking-at, and
+string-match.
+
+** Files
+
+*** The new variable `format-alist' defines file formats,
+which are ways of translating between the data in a file and things
+(text, text-properties, and possibly other information) in a buffer.
+
+`format-alist' has one element for each format.  Each element is a
+list like this:
+  (NAME DOC-STRING REGEXP FROM-FN TO-FN MODIFY MODE-FN)
+containing the name of the format, a documentation string, a regular
+expression which is used to recognize files in that format, a decoding
+function, an encoding function, a flag that indicates whether the
+encoding function modifies the buffer, and a mode function.
+
+FROM-FN is called to decode files in that format; it gets two args, BEGIN
+        and END, and can make any modifications it likes, returning the new
+        end position.  It must make sure that the beginning of the file no
+	longer matches REGEXP, or else it will get called again.
+TO-FN   is called to encode a region into that format; it is also passed BEGIN
+        and END, and either returns a list of annotations as in
+        `write-region-annotate-functions', or modifies the region and returns
+        the new end position.
+MODIFY, if non-nil, means the TO-FN modifies the region.  If nil, TO-FN may
+        not make any changes and should return a list of annotations.
+
+`insert-file-contents' checks the beginning of the file that it is
+inserting to see if it matches one of the regexps.  If so, then it
+calls the decoding function, and then looks for another match.  When
+visiting a file, it also calls the mode function, and sets the
+variable `buffer-file-format' to the list of formats that the file
+used.
+
+`write-region' calls the encoding functions for each format in
+`buffer-file-format' before it writes the file.  To save a file in a
+different format, either set `buffer-file-format' to a different
+value, or call the new function `format-write-file'.
+
+Since some encoding functions may be slow, you can request that
+auto-save use a format different from the buffer's default by setting
+the variable `auto-save-file-format' to the desired format.  This will
+determine the format of all auto-save files.
+
+*** The new function file-ownership-preserved-p tells you whether
+deleting a file and recreating it would keep the file's owner
+unchanged.
+
+*** The new function file-regular-p returns t if a file
+is a "regular" file (not a directory, symlink, named pipe,
+terminal, or other I/O device).
+
+*** The new function file-name-sans-extension discards the extension
+of a file name.  You call it with a file name, and returns a string
+lacking the extension.
+
+*** The variable path-separator is a string which says which
+character separates directories in a search path.  It is ":"
+for Unix and GNU systems, ";" for MSDOG and Windows NT.
+
+** Commands and Key Sequences
+
+*** Key sequences consisting of C-c followed by {, }, <, >, : or ; are
+now reserved for major modes.  Sequences consisting of C-c followed by
+any other punctuation character are now meant for minor modes.  We don't
+plan to convert all existing major modes to stop using those sequences,
+but we hope to keep them to a minimum.
+
+*** When the post-command-hook or the pre-command-hook gets an error, the error
+is silently ignored.  Emacs no longer sets the hook variable to nil when this
+happens.  Meanwhile, the hook functions can now alter the hook variable in
+a normal fashion; there is no need to do anything special.
+
+*** define-key, lookup-key, and various other functions for changing or
+looking up key bindings now let you write an event type with a list
+like (ctrl meta newline) or (meta ?d), as in XEmacs.  (ctrl meta newline)
+is equivalent to the event type symbol C-M-newline, and (meta ?d)
+is equivalent to the character ?\M-d.
+
+*** The function event-convert-list converts a list such as
+(meta ?d) into the corresponding event type (a symbol or integer).
+
+*** In an interactive spec, `k' means to read a key sequence.  In this
+key sequence, upper case characters and shifted function keys which
+have no bindings are converted to lower case if that makes them
+defined.
+
+The new interactive code `K' reads a key sequence similarly, but does
+not convert the last event.  `K' is useful for reading a key sequence
+to be given a binding.
+
+*** The variable overriding-local-map now has no effect on the menu bar
+display unless overriding-local-map-menu-flag is non-nil.  This is why
+incremental search no longer temporarily changes the menu bars.
+
+Note that overriding-local-map does still affect the execution of key
+sequences entered using the menu bar.  So if you use
+overriding-local-map, and a menu bar key sequence comes in, you should
+make sure to clear overriding-local-map before that key sequence gets
+looked up and executed.  But this is what you'd normally do anyway:
+programs that use overriding-local-map normally exit and "put back"
+any event such as menu-bar that they do not handle specially.
+
+*** The new variable `overriding-terminal-local-map' is like
+overriding-local-map, but is specific to a single terminal.
+
+*** delete-frame events.
+
+When you use the X window manager's "delete window" command, this now
+generates a delete-frame event.  The standard definition of this event
+is a command that deletes the frame that received the event, and kills
+Emacs when the last visible or iconified frame is deleted.  You can
+rebind the event to some other command if you wish.
+
+*** Two new types of events, iconify-frame and make-frame-visible,
+indicate that the user iconified or deiconified a frame with the
+window manager.  Since the window manager has already done the work,
+the default definition for both event types in Emacs is to do nothing.
+
+** Frames and X
+
+*** Certain Lisp variables are now local to an X terminal (in other
+words, all the screens of a single X server).  The value in effect, at
+any given time, is the one that belongs to the terminal of the
+selected frame.  The terminal-local variables are
+default-minibuffer-frame, system-key-alist, defining-kbd-macro, and
+last-kbd-macro.  There is no way for Lisp programs to create others.
+
+The terminal-local variables cannot be buffer-local.
+
+*** When you create an X frame, for the `top' and `left' frame
+parameters, you can now use values of the form (+ N) or (- N), where N
+is an integer.  (+ N) means N pixels to the right of the left edge of
+the screen and (- N) means N pixels to the left of the right edge.  In
+both cases, N may be zero (exactly at the edge) or negative (putting
+the window partly off the screen).
+
+The function x-parse-geometry can return values of these forms
+for certain inputs.
+
+*** The variable menu-bar-file-menu has been renamed to
+menu-bar-files-menu to match the actual item that appears in the menu.
+(All the other such variable names do match.)
+
+*** The new function active-minibuffer-window returns the minibuffer window
+currently active, or nil if none is now active.
+
+*** In the functions next-window, previous-window, next-frame,
+previous-frame, get-buffer-window, get-lru-window, get-largest-window
+and delete-windows-on, if you specify 0 for the last argument,
+it means to consider all visible and iconified frames.
+
+*** When you set a frame's cursor type with modify-frame-parameters,
+you can now specify (bar . INTEGER) as the cursor type.  This stands
+for a bar cursor of width INTEGER.
+
+*** The new function facep returns t if its argument is a face name
+(or if it is a vector such as is used internally by the Lisp code
+to represent a face).
+
+*** Each frame can now have a buffer-predicate function,
+which is the `buffer-predicate' frame parameter.
+When `other-buffer' looks for an alternative buffer, it considers
+only the buffers that fit the selected frame's buffer predicate (if it
+has one).  This is useful for applications that make their own frames.
+
+*** When you create an X frame, you can now specify the frame parameter
+`display'.  This says which display to put the frame on.  The value
+should be a display name--a string of the form
+"HOST:DPYNUMBER.SCREENNUMBER".
+
+The functions x-server-... and x-display-... now take an optional
+argument which specifies the display to ask about.  You can use either
+a display name string or a frame.  A value of nil stands for the
+selected frame.
+
+To close the connection to an X display, use the function
+x-close-connection.  Specify which display with a display name.  You
+cannot close the connection if Emacs still has frames open on that
+display.
+
+x-display-list returns a list indicating which displays Emacs has
+connections to.  Its elements are display names (strings).
+
+*** The icon-type frame parameter may now be a file name.
+Then the contents of that file specify the icon bitmap to use
+for that frame.
+
+*** The title of an Emacs frame, displayed by most window managers, is
+set from frame-title-format or icon-title-format.  These have the same
+structure as mode-line-format.
+
+*** x-display-grayscale-p is a new function that returns non-nil if
+your X server can display shades of gray.  Currently it returns
+non-nil for color displays (because they can display shades of gray);
+we may change it in the next version to return nil for color displays.
+
+*** The frame parameter scroll-bar-width specifies the width of the
+scrollbar in pixels.
+
+** Buffers
+
+*** Creating a buffer with get-buffer-create does not obey
+default-major-mode.  That variable is now handled in a separate
+function, set-buffer-major-mode.  get-buffer-create and generate-new-buffer
+always leave the newly created buffer in Fundamental mode.
+
+Creating a new buffer by visiting a file or with switch-to-buffer,
+pop-to-buffer, and similar functions does call set-buffer-major-mode
+to select the default major mode specified with default-major-mode.
+
+*** You can now create an "indirect buffer".  An indirect buffer shares
+its text, including text properties, with another buffer (the "base
+buffer"), but has its own major mode, local variables, overlays, and
+narrowing.  An indirect buffer has a name of its own, distinct from
+those of the base buffer and all other buffers.  An indirect buffer
+cannot itself be visiting a file (though its base buffer can be).
+The base buffer cannot itself be indirect.
+
+Use (make-indirect-buffer BASE-BUFFER NAME) to make an indirect buffer
+named NAME whose base is BASE-BUFFER.  If BASE-BUFFER is an indirect
+buffer, its base buffer is used as the base for the new buffer.
+
+You can make an indirect buffer current, or switch to it in a window,
+just as you would a non-indirect buffer.
+
+The function buffer-base-buffer, given an indirect buffer, returns its
+base buffer.  It returns nil when given an ordinary buffer (not
+indirect).
+
+The library `noutline' has versions of Outline mode and Outline minor
+mode which let you display different parts of the outline in different
+indirect buffers.
+
+** Subprocesses
+
+*** The functions call-process and call-process-region now allow
+you to direct error message output from the subprocess into a
+separate destination, instead of mixing it with ordinary output.
+To do this, specify for the third argument, BUFFER, a list of the form
+  (BUFFER-OR-NAME ERROR-DESTINATION)
+BUFFER-OR-NAME specifies where to put ordinary output; it should
+be a buffer or buffer name, or t, nil or 0.  This is what would
+have been the BUFFER argument, ordinarily.
+
+ERROR-DESTINATION specifies where to put the error output.
+nil means discard it, t means mix it with the ordinary output,
+and a string specifies a file name to write this output into.
+
+You can't specify a buffer to put the error output in; that is not
+easy to implement directly.  You can put the error output into a
+buffer by sending it to a temporary file and then inserting the file
+into a buffer.
+
+*** Comint mode changes:
+
+**** The variable comint-completion-addsuffix can also be a cons pair
+of the form (DIRSUFFIX . FILESUFFIX), where DIRSUFFIX and FILESUFFIX are
+strings added on unambiguous or exact completion of directories and file
+names, respectively.
+
+** Text properties
+
+*** You can now specify which values of the `invisible' property
+make text invisible in a given buffer.  The variable
+`buffer-invisibility-spec', which is always local in all buffers,
+controls this.
+
+If its value is t, then any non-nil `invisible' property makes
+a character invisible.
+
+If its value is a list, then a character is invisible if its
+`invisible' property value appears as a member of the list, or if it
+appears as the car of a member of the list.
+
+When the `invisible' property value appears as the car of a member of
+the `buffer-invisibility-spec' list, then the cdr of that member has
+an effect.  If it is non-nil, then an ellipsis appears in place of the
+character.  (This happens only for the *last* invisible character in a
+series of consecutive invisible characters, and only at the end of a
+line.)
+
+If a character's `invisible' property is a list, then Emacs checks each
+element of the list against `buffer-invisibility-spec'.  If any element
+matches, the character is invisible.
+
+*** The command `list-text-properties-at' shows what text properties
+are in effect at point.
+
+*** Frame objects now exist in Emacs even on systems that don't support
+X Windows.  You can create multiple frames, and switch between them
+using select-frame.  The selected frame is actually displayed on your
+terminal; other frames are not displayed at all.  The selected frame
+number appears in the mode line after `Emacs', except for frame 1.
+
+Switching frames on ASCII terminals is therefore more or less
+equivalent to switching between different window configurations.
+
+*** The new variable window-size-change-functions holds a list of
+functions to be called if window sizes change (or if windows are
+created or deleted).  The functions are called once for each frame on
+which changes have occurred, with the frame as the sole argument.
+This takes place shortly before redisplay.
+
+*** The modification hook functions of overlays now work differently.
+They are called both before and after each change.  This makes it
+possible for the functions to determine exactly what the change was.
+
+This change affects three overlay properties: the modification-hooks
+property, a list of functions called for deletions overlapping the
+overlay's range and for insertions inside it; the
+insert-in-front-hooks, a list of functions called for insertions at
+the beginning of the overlay; and the insert-behind-hooks, a list of
+functions called for insertions at the end of the overlay.
+
+Each function is called both before and after each change that it
+applies to.  Before the change, it is called with four arguments:
+    (funcall FUNCTION OVERLAY nil START END)
+START and END are the same arguments that the before-change-functions
+receive.
+
+After the change, each function is called with five arguments:
+    (funcall FUNCTION OVERLAY t START END OLDSIZE)
+The last arguments, START and END and OLDSIZE,
+are the same arguments that the after-change-functions receive.
+
+This means the function must accept either four or five arguments.
+
+*** You can set defaults for text-properties with the new variable
+`default-text-properties'.  Its value is a property list; the values
+specified there are used whenever a character (or its category) does
+not specify a value.
+
+*** The `face' property of a character or an overlay can now be a list
+of face names.  Formerly it had to be just one face name.
+
+*** Changes in handling the `intangible' text property.
+
+**** If inhibit-point-motion-hooks is non-nil, then `intangible' properties
+are ignored.
+
+**** Moving to just before a stretch of intangible text
+is no longer special in any way.  Point stays at that place.
+
+**** When you move point backwards into the midst of intangible text,
+point moves back to the beginning of that text.  (It used to move
+forward to the end of that text, which was not very useful.)
+
+**** When moving across intangible text, Emacs stops wherever the
+property value changes.  So if you have two stretches of intangible
+text, with different non-nil intangible properties, it is possible to
+place point between them.
+
+** Overlays
+
+*** Overlay changes.
+
+**** The new function previous-overlay-change returns the position of
+the previous overlay start or end, before a specified position.  This
+is the backwards-moving counterpart of next-overlay-change.
+
+**** overlay-get now supports category properties on an overlay
+the same way get-text-property supports them as text properties.
+
+Specifically, if an overlay does not have the property PROP that you
+ask for, but it does have a `category' property which is a symbol,
+then that symbol's PROP property is used.
+
+**** If an overlay has a non-nil `evaporate' property, it will be
+deleted if it ever becomes empty (i.e., when it spans no characters).
+
+**** If an overlay has a `before-string' and/or `after-string' property,
+these strings are displayed at the overlay's endpoints.
+
+** Filling
+
+*** The new variable fill-paragraph-function provides a way for major
+modes to override the filling of paragraphs.  If this is non-nil,
+fill-paragraph calls it as a function, passing along its sole
+argument.  If the function returns non-nil, fill-paragraph assumes it
+has done the job and simply passes on whatever value it returned.
+
+The usual use of this feature is to fill comments in programming
+language modes.
+
+*** Text filling and justification changes:
+
+**** The new variable use-hard-newlines can be used to make a
+distinction between "hard" and "soft" newlines; the fill functions
+will then never remove a newline that was manually inserted.  Hard
+newlines are marked with a non-nil `hard' text-property.
+
+**** The fill-column and left-margin can now be modified by text-properties.
+Most lisp programs should use the new functions (current-fill-column) and
+(current-left-margin), which return the proper values to use for the
+current line.
+
+**** There are new functions for dealing with margins:
+
+***** Set-left-margin and set-right-margin (set the value for a region
+and re-fill).  These functions take three arguments: two to specify
+a region, and the desired margin value.
+
+***** Increase-left-margin, decrease-left-margin, increase-right-margin, and
+decrease-right-margin (change settings relative to current values, and
+re-fill).
+
+***** move-to-left-margin moves point there, optionally adding
+indentation or changing tabs to spaces in order to make that possible.
+beginning-of-line-text also moves past the fill-prefix and any
+indentation added to center or right-justify a line, to the beginning
+of the text that the user actually typed.
+
+***** delete-to-left-margin removes any left-margin indentation, but
+does not change the property.
+
+**** The paragraph-movement functions look for the paragraph-start and
+paragraph-separate regexps at the current left margin, not at the
+beginning of the line.  This means that those regexps should NOT use ^
+to anchor the search.  However, for backwards compatibility, a ^ at
+the beginning of the regexp will be ignored, so most packages won't break.
+
+**** justify-current-line is now capable of doing left, center, or
+right justification as well as full justification.
+
+**** The fill functions can do any kind of justification based on the new
+`justification' text-property and `default-justification' variable,
+or arguments to the functions.  They also have a new option which
+defeats the normal removal of extra whitespace.
+
+**** The new function `current-justification' returns the kind of
+justification used for the current line.  The new function
+`set-justification' can be used to change it, including re-justifying
+the text of the region according to the new value.
+
+**** Filling and auto-fill are disabled if justification is `none'.
+
+**** The auto-fill-function is now called regardless of whether
+the fill-column has been exceeded; the function can determine on its
+own whether filling (or justification) is necessary.
+
+** Processes
+
+*** process-tty-name is a new function that returns the name of the
+terminal that the process itself reads and writes on (not the name of
+the pty that Emacs uses to talk with that terminal).
+
+*** Errors in process filters and sentinels are now normally caught
+automatically, so that they don't abort other Lisp programs.
+
+Setting debug-on-error non-nil turns off this feature; then errors in
+filters and sentinels are not caught.  As a result, they can invoke
+the debugger, under the control of debug-on-error.
+
+*** Emacs now preserves the match data around the execution of process
+filters and sentinels.  You can use search and match functions freely
+in filters and sentinels without explicitly bothering to save the
+match data.
+
+** Display
+
+*** The variable message-log-max controls how messages are logged in the
+"*Messages*" buffer.  An integer value means to keep that many lines;
+t means to log with no limit; nil means disable message logging.  Lisp
+code that calls `message' excessively (e.g. isearch.el) should probably
+bind this variable to nil.
+
+*** Display tables now have a new element, at index 261, specifying the
+glyph to use for the separator between two side-by-side windows.  By
+default, this is the vertical bar character `|'.  Probably the only
+other useful character to store for this element is a space, to make
+less visual separation between two side-by-side windows displaying
+related information.
+
+*** The new mode-line-format spec %c displays the current column number.
+
+*** The new variable blink-matching-delay specifies how long to keep
+the cursor at the matching open-paren, after you insert a close-paren.
+This is useful mainly on systems which can wait for a fraction of a
+second--you can then specify fractional values such as 0.5.
+
+*** Faster processing of buffers with long lines
+
+The new variable cache-long-line-scans determines whether Emacs
+should use caches to handle long lines more quickly.  This variable is
+buffer-local, in all buffers.
+
+Normally, the line-motion functions work by scanning the buffer for
+newlines.  Columnar operations (like `move-to-column' and
+`compute-motion') also work by scanning the buffer, summing character
+widths as they go.  This works well for ordinary text, but if the
+buffer's lines are very long (say, more than 500 characters), these
+motion functions will take longer to execute.  Emacs may also take
+longer to update the display.
+
+If cache-long-line-scans is non-nil, these motion functions cache
+the results of their scans, and consult the cache to avoid rescanning
+regions of the buffer until the text is modified.  The caches are most
+beneficial when they prevent the most searching---that is, when the
+buffer contains long lines and large regions of characters with the
+same, fixed screen width.
+
+When cache-long-line-scans is non-nil, processing short lines will
+become slightly slower (because of the overhead of consulting the
+cache), and the caches will use memory roughly proportional to the
+number of newlines and characters whose screen width varies.
+
+The caches require no explicit maintenance; their accuracy is
+maintained internally by the Emacs primitives.  Enabling or disabling
+the cache should not affect the behavior of any of the motion functions;
+it should only affect their performance.
+
+** System Interface
+
+*** The function user-login-name now accepts an optional
+argument uid.  If the argument is non-nil, user-login-name
+returns the login name for that user id.
+
+*** system-name, user-name, user-full-name and user-real-name are now
+variables as well as functions.  The variables hold the same values
+that the functions would return.  The new variable multiple-frames
+is non-nil if at least two non-minibuffer frames are visible.  These
+variables may be useful in constructing the value of frame-title-format
+or icon-title-format.
+
+*** Changes in time-conversion functions.
+
+**** The new function format-time-string takes a format string and a
+time value.  It converts the time to a string, according to the format
+specified.  You can specify what kind of conversion to use with
+%-specifications.
+
+**** The new function decode-time converts a time value into a list of
+specific items of information: the year, month, day of week, day of
+month, hour, minute and second.  (A time value is a list of two or
+three integers.)
+
+**** The new function encode-time converts specific items of time
+information--the second, minute, hour, day, month, year, and time
+zone--into a time value.
+
+
+
+* Changes in Emacs 19.27
+
+There are no changes; however, here is one bug fix made in 19.26 that users
+think should be documented here.
+
+** SPC and DEL in Info now handle menus consistently.
+
+SPC and DEL scroll through an entire subtree an Info manual.  Once you
+scroll through a node far enough to reach a menu, SPC begins moving
+into the subnodes of the menu, starting with the first one.  When you
+reach the end of a subnode, SPC moves into the next subnode, and so
+on.
+
+DEL more or less scrolls through the same text in reverse order.
+
+
+
+* User Editing Changes in Emacs 19.26
+
+** In the X toolkit version, if you click on a menu bar item and
+release the button quickly outside the menu, the menu remains visible
+until you click or type something else.  If you click on the menu, you
+select from the menu.  Any other mouse click makes the menu disappear.
+Keyboard input gets rid of the menu and then is processed normally.
+
+"Quickly" means within double-click-time milliseconds.
+
+** The C-x 5 commands to select a buffer in "another frame" now use an
+existing iconified frame, if any, deiconifying it.  They also raise
+the frame.
+
+** Region highlighting on a black-and-white-only display now uses
+underlining.  Inverse-video had the problem that you couldn't see
+the cursor.
+
+** You can now change the height of a window by pressing mouse-1 on
+the mode line and dragging it up and down.
+
+** If you set the environment variable LC_CTYPE to iso_8859_1 or
+iso-8859-1, Emacs automatically sets up for display and syntactic
+handling of the ISO Latin-1 character set.
+
+This does not automatically load any of the packages for input of
+these characters, because it's not yet clear what is right to do.
+You must still explicitly load either iso-transl or iso-acc.
+
+** For a read-only buffer that is also modified, the mode line now displays
+%* instead of %%.
+
+** M-prior (scroll-other-window-down) is a new command that works like
+M-next (and C-M-v) but scrolls in the opposite direction.
+
+M-home moves to the beginning of the buffer, in the other window.
+M-end moves to the end of the buffer, in the other window.  These two
+commands, along with M-next and M-prior, form a series of commands for
+moving around in the other window.
+
+** In change logs, the mail address is now delimited with <...> instead
+of (...).
+
+This makes it a little more convenient to extract the mail address for
+use in mailing a message.
+
+** In Shell mode and other comint modes, C-a has now returned to
+its ordinary meaning: move to the beginning of the line.
+Use C-c C-a to move to the end of the prompt.
+
+** If you set mail-signature to t to cause automatic insertion of
+your .signature file, you now get a -- before the signature.
+
+** Setting rmail-highlighted-headers to nil entirely turns off
+highlighting in Rmail.  However, if your motivation for doing this is
+that the highlighted text doesn't look good on your display, it might
+be better to change the appearance of the `highlight' face.  Once
+you've done that, you may find Rmail highlighting is useful.
+
+** In the calendar, mouse-2 is now used only for commands that apply to a date.
+If you click it when not on a date, it gives an immediate error.
+
+Mouse-3 in the calendar now gives a menu of commands that do not apply
+to a particular date.
+
+The D command displays diary entries from a specified diary file (not
+your standard diary file).
+
+** In the gnus-uu package, the binding for gnus-uu-threaded-decode-and-view
+is now C-c C-v C-d, not C-c C-v C-h.  Thus, C-c C-v C-h is now available
+for asking for a list of the subcommands of C-c C-v.
+
+** You can now specify "who you are" for various Emacs packages by
+setting just one variable, user-mail-address.  This currently applies
+to posting news with GNUS and to making change log entries.  It may
+apply to additional Emacs features in the future.
+
+
+* Lisp-Level Changes in Emacs 19.26:
+
+** The function insert-char now takes an optional third argument
+which, if non-nil, says the inserted characters should inherit sticky
+text properties from the surrounding text.
+
+** The `diary' library has been renamed to `diary-lib'.  If you refer
+to this library in your Lisp code, you must update the references.
+
+** Sending text to a subprocess can read input from subprocesses if it
+has to wait because the destination subprocess's terminal input buffer
+is full.
+
+It was already possible in unusual occasions for this operation to
+read subprocess input, but it did not happen very often.  It is now
+more likely to happen.
+
+** last-nonmenu-event is now bound to t around filter functions and sentinels.
+This is to ensure that y-or-n-p and yes-or-no-p use the keyboard by default.
+
+** In mode lines, %+ now displays as % for unmodified read-only
+buffers.  It is now the same as %* except in the case of a modified
+read-only buffer; in that case, %+ displays as *.
+
+The old meaning of %+ is now available on %&.
+It displays * for a modified buffer and - for an unmodified buffer,
+regardless of read-only status.
+
+** You can now use `underline' in the color list of a face.
+It serves as a last resort, and says to underline the face
+(if previous color list elements can't be used).
+
+** The new function x-color-values returns the list of color values
+for a given color name (a string).  The list contains three integers
+which give the amounts of red, green and blue in the color: (R G B).
+
+** In run-at-time, 0 as the repeat interval means "don't repeat".
+
+** The variable trim-versions-without-asking has been renamed to
+delete-old-versions.
+
+** The new function other-window-for-scrolling returns the choice of
+other window for C-M-v to scroll.
+
+** Note that the function fceiling was mistakenly documented as fceil before.
+
+
+* Changes in cc-mode.el in Emacs 19.26:
+
+** A new syntactic symbol has been added: substatement-open.  It
+  defines the open brace of a substatement block.  These used to get:
+  ((block-open ...) (substatement . ...)).
+
+  Non-block substatement lines still get just ((substatement . ...))
+
+  Note that the custom indent function c-adaptive-block-open has been
+  removed as obsolete.
+
+** You can now specify the `hanginess' of closing braces.  See
+  c-hanging-braces-alist.
+
+** Recognizes try and catch blocks in C++.  They are given the
+  substatement syntactic symbol.
+
+** should be generally more forgiving about non-GNU standard top-level
+  construct definition styles (i.e. where the function/class/struct
+  opening brace does not start in column zero).
+
+  If you hang the braces that open a top-level construct on the right
+  edge, and you find you still need to define defun-open-prompt (Emacs
+  19) please let me know.  Note that there may still be performance
+  issues related to non-column zero opening braces.
+
+** c-macro-expand is put on C-c C-e
+
+** New style: "Default".  Resets indentation to those shipped with
+  cc-mode.el.
+
+** internal defun c-indent-via-language-element has been renamed
+  c-indent-line for compatibility with c-mode.el and awk-mode.
+
+** new buffer-local variable c-comment-start-regexp for (potential)
+  flexibility in adding new modes based on cc-mode.el
+
+
+
+* Changes in Emacs 19.25
+
+The variable x-cross-pointer-shape (which didn't really exist) has
+been renamed to x-sensitive-text-pointer-shape, and now does exist.
+
+
+
+* Changes in Emacs 19.24
+
+Here is a list of new Lisp packages introduced since 19.22.
+
+derived.el		Define new major modes based on old ones.
+dired-x.el		Extra Dired features.
+double.el		New mode for conveniently inputting non-beyond chars.
+easymenu.el		Create menus easily.
+ediff.el		Snazzy diff interface.
+foldout.el		A kind of outline mode designed for editing programs.
+gnus-uu.el		UUdecode in GNUS buffers.
+ielm.el			Interactively evaluate Lisp.
+			 This is a replacement for Lisp Interaction Mode.
+iso-cvt.el		Conversion of beyond-ASCII characters between
+			 various different representations.
+jka-compr.el		Automatic compression/decompression.
+mldrag.el		Drag modeline to change heights of windows.
+mail-hist.el		Provides history for headers of outgoing mail.
+rsz-mini.el		Automatically resizing minibuffers.
+s-region.el		Set region by holding shift.
+skeleton.el		Templates for statement insertion.
+soundex.el		Classifying words by how they sound.
+tempo.el		Template insertion with hotspots.
+
+
+
+* User Editing Changes in 19.23.
+
+** Emacs 19.23 uses Ispell version 3.
+
+Previous Emacs 19 versions used Ispell version 4.  That version had
+improvements in storing the dictionary compactly, but these are not
+very important nowadays.  Meanwhile, in parallel to the work on Ispell
+4, many useful features were added to Ispell 3.  Until a few months
+ago, the terms on Ispell 3 did not let us use it; but they have now
+been changed, so now we are using it.  We are dropping Ispell 4.
+
+** Emacs 19.23 can run on MS-DOG.  See the file MSDOS in the same
+directory as this file.
+
+** Emacs 19.23 can work with an X toolkit.  You must specify toolkit
+operation when you configure Emacs: use the option
+--with-x-toolkit=yes.  (This option uses code developed by Lucid;
+thanks to Frederic Pierresteguy for helping to adapt it.)
+
+** Emacs now has dialog boxes; yes/no and y/n questions automatically
+use them in commands invoked with the mouse.  For more information,
+see below under "Lisp programming changes".
+
+** Menus now display the keyboard equivalents (if any) of the menu
+commands in parentheses after the menu item.
+
+** Kill commands, used in a read-only buffer, now move point across
+the text they would otherwise have killed.  This way, you can use
+repeated kill commands to transfer text into the kill ring.
+
+** There is now a global mark ring in addition to the mark ring that is local
+to each buffer.  The global mark ring stores positions in any buffer.  Any
+time the mark is set and the current buffer is different from the last time
+the mark was set, the new mark is pushed on the global mark ring as well.
+The new command C-x C-SPC (pop-global-mark) pops the global mark ring and
+jumps to the last mark pushed, first switching to that buffer.
+
+** Query Replace is now available in the Edit menu.
+
+** ESC no longer simply exits a Query Replace.  It now exits the Query
+Replace and remains pending.  Thus, ESC A and M-A are now equivalent
+in Query Replace.
+
+To simply exit a Query Replace, type RET or Period.
+
+** M-mouse-2 now puts point at the end of the yanked secondary selection.
+
+** Mouse-1 in the mode line now simply selects the window above that
+mode line.  Mouse-2 in the mode line selects that window and expands
+it to fill the frame it is in.
+
+** You can now use mouse-2 in a Dired buffer or Tar mode buffer to find
+a file you click on, in a compilation buffer to go to a particular
+error message, and in a *Occur* buffer to go to a particular
+occurrence.
+
+(It was already possible to do likewise in Info and in completion list
+buffers.)
+
+What's more, the sensitive areas of the buffer now highlight when you
+move the mouse over them.
+
+** In a completion list buffer, the command RET now chooses the completion
+that is around or next to point.
+
+** If you specify the foreground color for the `mode-line' face, and
+mode-line-inverse-video is non-nil, then the default background color
+is the usual foreground color.
+
+** revert-buffer now preserves markers pointing within the unchanged
+text (if any) at the beginning and end of the file.
+
+** Version control checkin and checkout preserve all markers if the
+file does not contain any of the magic version header sequences that
+are updated automatically by RCS and SCCS.  If such version headers
+are present, checkin and checkout preserve a marker unless it comes
+between two such sequences.  (So it's a good idea to put all the
+header sequences close together.)
+
+** When a large deletion shuts off auto save temporarily in a buffer,
+you can now turn it on again by saving the buffer with C-x C-s (as was
+possible in Emacs 18).  You can also turn it on again with M-1 M-x
+auto-save (as has been possible in Emacs 19).
+
+** C-x r d now runs the command delete-rectangle.
+
+** The new command imenu shows you a menu of interesting places in the
+current buffer and lets you select one; then it moves point there.
+The definition of interesting places depends on the major mode, but
+typically this includes function definitions and such.  Normally,
+imenu displays the menu in a buffer; but if you bind it to a mouse
+event, it shows a mouse popup menu.
+
+** You can make certain chosen buffers, that normally appear in a
+separate window, appear in special frames of their own.  To do this,
+set special-display-buffer-names to a list of buffer names; any buffer
+whose name is in that list automatically gets a special frame when it
+is to be displayed in another window.
+
+A good value to try is ("*compilation*" "*grep*" "*TeX Shell*").
+
+More generally, you can set special-display-regexps to a list of regular
+expressions; then each buffer whose name matches any of those regular
+expressions gets its own frame.
+
+The variable special-display-frame-alist specifies the frame
+parameters for these frames.  It has a default value, so you don't
+need to set it.
+
+** If you set sentence-end-double-space to nil, the fill commands
+expect just one space at the end of a sentence.  (If you want the
+sentence commands to accept single spaces, you must modify the regexp
+sentence-end also.)
+
+** You can suppress the startup echo area message by adding text like
+this to your .emacs file:
+
+(setq inhibit-startup-echo-area-message "YOUR-LOGIN-NAME")
+
+Simply setting inhibit-startup-echo-area-message to your login name is
+not sufficient to inhibit the message; Emacs explicitly checks whether
+.emacs contains an expression as shown above.  Your login name must
+appear in the expression as a Lisp string constant.
+
+This way, you can easily inhibit the message for yourself if you wish,
+but thoughtless copying of your .emacs file will not inhibit the
+message for someone else.
+
+** Outline minor mode now uses C-c C-o as a prefix instead of just C-c.
+
+** In Outline mode, hide-subtree is now C-c C-d.  (It was C-c C-h; but
+that is now a conventional way to ask for help about C-c commands.)
+
+** There are two additional commands in Outline mode.
+M-x hide-sublevels
+  hides all headers except the topmost N levels.
+M-x hide-other
+  hides everything about the body that point is in
+  plus the headers leading up from there to the top of the tree.
+
+** In iso-transl and iso-insert, the sequences for entering A-ring and
+the AE ligature are now just A and E (plus the initial C-x 8 or Alt).
+You used to have to enter AA or AE, after the C-x 8 prefix of course.
+Likewise for lower case a-ring and ae.
+
+** iso-transl now defines convenient Alt keys as well as the C-x 8 prefix.
+Instead of prefixing a sequence with C-x 8, you can add Alt to the
+first character of the sequence.  For example, Alt-" a is now a way
+to enter an a-umlaut.
+
+** CC mode is a greatly improved mode for C and C++.
+See the following page.
+
+** tcl mode is a new major mode.  It provides features for
+editing, indenting and running tcl programs.
+
+** Compilation minor mode lets you parse error messages in any buffer,
+not just a normal compilation output buffer.  Type M-x
+compilation-minor-mode to enable the minor mode; then C-c C-c jumps to
+the source location for the error at point, as in the `*compilation*'
+buffer.  If you use compilation-minor-mode in an Rlogin buffer, it
+automatically accesses remote source files by ftp.
+
+** Comint and shell mode changes:
+
+*** Comint modes (including Shell mode, GUD modes, etc.) now bind
+C-M-l to the command comint-show-output.  This command scrolls the
+buffer to show the last batch of output from the subprogram.
+
+*** Completion in Comint modes now truly operates on the string before
+point, rather than the word that point is within.
+
+*** Comint mode file name completion ignores those files that end with a
+string in the new variable comint-completion-fignore.  This variable's
+default value is nil.
+
+*** Shell mode uses the variable shell-completion-fignore to set
+comint-completion-fignore.  The default value is nil, but some
+people prefer ("~" "#" "%").
+
+*** The function `comint-watch-for-password-prompt' can be used to
+suppress echoing when a subprocess asks for a password.  To use it,
+do this:
+
+(add-hook 'comint-output-filter-functions
+	  'comint-watch-for-password-prompt)
+
+*** You can use M-x shell-strip-ctrl-m to strip ^M characters from
+process output.
+
+*** In Shell mode, TAB now completes environment variables, if possible,
+and expands directory references.
+
+*** You can use M-x comint-run to execute any program of your choice in
+a comint mode.  Some programs such as shells, rlogin, and debuggers
+have their own specialized modes; this command is one way to use
+comint to run programs for which no such specialized mode exits.  (You
+can also run a shell with M-x shell and run the program of your choice
+under the shell--but that gives you the specializations of Shell
+mode.)
+
+** When you run GUD (M-x gdb, M-x dbx, and so on), you can use TAB
+to do file name completion in the minibuffer.
+
+The "Complete" menu includes an item for directory expansion.
+
+** GUD working with future versions of GDB will permit TAB for
+GDB-style symbol completion.  This will work with GDB 4.13.
+
+** Rmail no longer gets new mail automatically when you visit an Rmail
+file specified by name--not even if it is your primary Rmail file.  To
+get new mail, type `g'.  This feature is an advantage because you now
+have a choice of whether to get new mail.  (This change actually
+occurred in an earlier version, but wasn't listed here then, since it
+made the code do what the documentation already said.)
+
+** Rmail now highlights certain fields automatically, when you use X
+windows.  The variable rmail-highlighted-headers controls which
+fields.
+
+** If you set rmail-summary-window-size to an integer, Rmail uses
+a window that many lines high for the summary buffer.
+
+** rmail-input-menu is a new command that visits an Rmail file letting
+you choose which file with a mouse menu.  rmail-output-menu is
+similar; it outputs the current message, using a mouse menu to choose
+which Rmail file.  These commands use the variables
+rmail-secondary-file-directory and rmail-secondary-file-regexp.
+
+** The mh-e package has been changed substantially.
+See the file ./MH-E-NEWS for details.
+
+** The calendar and diary have new features.
+
+The menu bar for the calendar contains most of the calendar commands,
+arranged into logical categories.
+
+Mouse-2 now performs specific-date-related commands when clicked on a
+date in the calendar window and common three-month-related commands
+when clicked elsewhere in the calendar window.
+
+You can set up colored/shaded highlighting of holidays, diary entry
+dates, and today's date, by setting calendar-holiday-marker,
+diary-entry-marker, and calendar-today-marker to a face instead of a
+character.  Using a special face is now the default if you are using a
+window system.
+
+** The appt package for displaying appointment reminders has new
+features.
+
+*** The appt alarm window stays for the full duration of
+appt-display-duration.  It no longer disappears when you start typing
+text.
+
+*** You can change the way the appointment window is created/deleted by
+setting the variables appt-disp-window-function and
+appt-delete-window-function.
+
+For instance, these variables can be set to functions that display
+appointments in pop-up frames, which are lowered or iconified after
+appt-display-duration seconds.
+
+** desktop.el can now save a list of buffer-local variables,
+and saves more global ones.
+
+** Pascal mode has been completely rewritten.  It now features
+completing of function names, variables and type definitions around
+current point (like M-TAB does with lisp-symbols).  There's also an
+outline mode (M-x pascal-outline) that hides the bodies of all
+functions you're not working with.
+
+** Edebug has a number of changes:
+
+*** Edebug syntax error reporting is improved.
+
+*** Top-level forms and defining forms other than defun and defmacro may
+now be debugged with Edebug.
+
+*** Edebug specifications may now contain body, &define, name, arg or
+arglist, def-body, and def-form, to support definitions.
+
+*** edebug-all-defuns is renamed to edebug-all-defs.
+def-edebug-form-spec is replaced by def-edebug-form whose arguments
+are unevaluated.  The old names are still available for now.
+
+*** Frequency counts and coverage data may be displayed for functions being
+debugged.
+
+*** A global break condition is now checked at every stop point.
+
+*** The previous condition at a breakpoint may now be edited.
+
+*** A new "next" mode stops only after expression evaluation.
+
+*** A new command, top-level-nonstop, does not even stop for unwind-protect,
+as top-level would.
+
+
+* Changes in CC mode in Emacs 19.23.
+
+`cc-mode' provides ANSI C, K&R C, and ARM C++ language editing.  It
+represents the merge of c++-mode.el and c-mode.el.  cc-mode provides a
+new, more flexible indentation engine so that indentation
+customization is more intuitive.  There are two steps to calculating
+indentation: first, CC mode analyzes the line for syntactic content,
+then based on this content it applies user defined offsets and adds
+this offset to the indentation of some previous line.
+
+The syntactic analysis determines if the line describes a `statement',
+`substatement', `class-open', `member-init-intro', etc.  These are
+described in detail with C-h v c-offsets-alist.  You can change the
+offsets interactively with C-c C-o (c-set-offsets), or
+programmatically in your c-mode-common-hook, which is run both by
+c-mode and c++-mode.  You can also set up "styles" in the same way
+that you could with c-mode.el.   The variable c-basic-offset controls
+the basic offset given to a level of indentation.
+
+If, for example, you wanted to change this style:
+
+int foo (int i)
+{
+    switch (i) {
+    case 1:
+        printf ("its a foo\n");
+        break;
+    default:
+        printf ("don't know what it is\n");
+        break;
+    }
+}
+
+into this:
+
+int foo (int i)
+{
+    switch (i) {
+      case 1:
+        printf ("its a foo\n");
+        break;
+      default:
+        printf ("don't know what it is\n");
+        break;
+    }
+}
+
+you could add the following to your .emacs file:
+
+(defun my-c-mode-common-hook ()
+  (c-set-offset 'case-label 2)
+  (c-set-offset 'statement-case-intro 2))
+(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)
+
+** New variables:
+
+c-offsets-alist contains an association list of syntactic symbols and
+their relative offsets.  Do a "C-h v c-offsets-alist" to get a list of
+all syntactic symbols currently defined, and their meanings.  You
+should not change this variable directly; use the supplied interface
+commands c-set-offset and c-set-style.
+
+c-mode-common-hook is run by both c-mode and c++-mode during their
+common initializations.  You should put any customizations that are
+the same for both C and C++ into this hook.
+
+The variable c-strict-semantics-p is used mainly for debugging.  When
+non-nil, CC mode signals an error if it returns a syntactic symbol
+that can't be found in c-offsets-alist.
+
+If you want CC mode to echo the syntactic analysis for a particular
+line when you hit the TAB key, set c-echo-semantic-information-p to
+non-nil.
+
+c-basic-offset controls the standard amount of offset for a level of
+indentation.  You can set a syntactic symbol's offset to + or - as a
+short-hand for positive or negative c-basic-offset.
+
+c-comment-only-line-offset lets you control indentation given to lines
+which contain only a comment, in the case of C++ line style comments,
+or the introduction to a C block comment.  Comment-only lines at
+column zero can be anchored there independent of the indentation given
+to other comment-only lines.
+
+c-block-comments-indent-p controls the style of C block comment
+re-indentation.  If you put leading stars in front of comment
+continuation lines, you should set this variable to nil.
+
+c-cleanup-list is a list describing certain C and C++ constructs to be
+"cleaned up" as they are typed, but only when the auto-newline feature
+is turned on.  In C++, make sure this variable contains at least
+'scope-operator so that double colons will not be separated by a
+newline.
+
+Colons (`:') and braces (`{` and `}') are special in C and C++.  For
+certain constructs, you may like them to hang on the right edge of the
+code, or you may like them to start a new line of code.  You can use
+the two variables c-hanging-braces-alist and c-hanging-colons-alist
+to control whether newlines are placed before and/or after colons and
+braces when certain C and C++ constructs are entered.  For example,
+you can control whether the colon that introduces a C++ member
+initialization list hangs on the right edge, starts a new line, or has
+no newlines either before or after it.
+
+c-special-indent-hook is run after a line is indented by CC mode.  You
+can perform any custom indentations here.
+
+c-delete-function is the function that is called when a single
+character is deleted with the c-electric-delete command (DEL).
+
+c-electric-pound-behavior describes what happens when you enter the
+`#' that introduces a cpp macro.
+
+If c-tab-always-indent is neither t nor nil, then TAB inserts a tab
+when within strings, comments, and cpp directives, but it reindents
+the line unconditionally.
+
+c-inhibit-startup-warnings-p inhibits warnings about any old
+version of Emacs you might be running, which could be incompatible
+with cc-mode.
+
+** There are two new minor-mode features in CC mode: auto-newline and
+hungry-delete.  Auto-newline inserts newlines automatically as you
+type certain constructs.  Hungry-delete consumes all preceding
+whitespace (spaces, tabs, and newlines) when the delete key is hit.
+You can toggle auto-newline on and off on a per-buffer basis by
+hitting C-c C-a.  You can toggle hungry-delete on and off by hitting
+C-c C-d.   You can toggle them both on and off together with C-c C-t.
+
+** Slash (`/') and star (`*') are now both electric characters.
+
+** New commands:
+
+The new C-c C-o (c-set-offset) command can be used to interactively change
+the offset for a particular syntactic symbol.
+
+The new command C-c : (c-scope-operator) inserts the C++ scope operator in
+c++-mode only.
+
+The new command C-c C-q (c-indent-defun) indents the entire enclosing
+top-level function or class.
+
+The new command C-c C-s (c-show-semantic-information) echos the current
+syntactic analysis without re-indenting the current line.
+
+The new commands M-x c-forward-into-nomenclature and M-x
+c-backward-into-nomenclature (currently otherwise unbound to a key
+sequence), make movement easier when using the C++ variable naming
+convention of VariableNamesWithoutUnderscoresButEachWordCapitalized.
+
+** Command from c-mode.el that have been renamed in cc-mode.el:
+
+  electric-c-brace      => c-electric-brace
+  electric-c-semi       => c-electric-semi&comma
+  electric-c-sharp-sign => c-electric-pound
+  mark-c-function       => c-mark-function
+  electric-c-terminator => c-electric-colon
+  indent-c-exp          => c-indent-exp
+  set-c-style           => c-set-style
+
+** Variables from c-mode.el that are obsolete with cc-mode.el:
+
+  c-indent-level
+  c-brace-imaginary-offset
+  c-brace-offset
+  c-argdecl-indent
+  c-label-offset
+  c-continued-statement-offset
+  c-continued-brace-offset
+
+
+* Lisp programming changes in Emacs 19.23.
+
+** To pop up a dialog box, call x-popup-dialog.
+It takes two arguments, POSITION and CONTENTS.
+
+POSITION specifies which frame to place the dialog box over;
+the dialog box always goes on the center of the frame.
+POSITION may be a mouse event, a window, a frame,
+or t meaning use the frame that the mouse is in.
+
+CONTENTS specifies the contents of the dialog box.
+It looks like a single pane of a popup menu:
+(TITLE ITEM1 ITEM2 ...), where each ITEM has the form (STRING . VALUE).
+The return value is VALUE from the chosen item.
+
+An ITEM may also be just a string--that makes a nonselectable item.
+An ITEM may also be nil--that means to put all preceding items
+on the left of the dialog box and all following items on the right.
+(By default, approximately half appear on each side.)
+
+If your Emacs is not using an X toolkit, then it cannot display a
+real dialog box; so instead it displays a pop-up menu in the center
+of the frame.
+
+** y-or-n-p, yes-or-no-p and map-y-or-n-p now use menus or dialog boxes
+to ask their question(s) if the command that is running was reached by
+a mouse event.
+
+If you want to control which way these functions work, bind the
+variable last-nonmenu-event around the call.  These functions use the
+keyboard if that variable holds a keyboard event (actually, any
+non-list); they use the mouse if that variable holds a mouse event
+(actually, any list).
+
+** The mouse-face property is now implemented, both in overlays and as
+a text property.  It specifies a face to use when the mouse is in the
+range of text for which the property is specified.
+
+** When text has a non-nil `intangible' property, you cannot move point
+within it or right before it.  If you try, point actually moves to the
+end of the intangible text.  Note that this means that backward-char
+is a no-op when there is an intangible character to the left of point.
+
+** minibuffer-exit-hook is a new normal hook that is run when you
+exit the minibuffer.
+
+** The variable x-cross-pointer-shape specifies the cursor shape to use
+when the mouse is over text that has a mouse-face property.
+
+** The new variable interpreter-mode-alist specifies major modes to use
+for shell scripts that specify a command interpreter.  Its elements
+look like (INTERPRETER . MODE); for example, ("perl" . perl-mode) is
+one element present by default.  This feature applies only when the
+file name doesn't indicate which mode to use.
+
+** If you use a minibuffer-only frame, set the variable
+minibuffer-auto-raise to t, and entering the minibuffer will then
+raise the minibuffer frame.
+
+** If pop-up-frames is t, display-buffer now looks for an existing
+window in any visible frame, showing the specified buffer, and uses
+such a window in preference to making a new frame.
+
+** In the functions next-window, previous-window, next-frame,
+previous-frame, get-buffer-window, get-lru-window, get-largest-window
+and delete-windows-on, if you specify `visible' for the last argument,
+it means to consider all visible frames.
+
+** Mouse events now give the X and Y coordinates in pixels, rather than
+in characters.  You can convert these values to characters by dividing by
+the values of (frame-char-width) and (frame-char-height).
+
+** The new functions mouse-pixel-position and set-mouse-pixel-position
+read and set the mouse position in units of pixels.  The existing
+functions mouse-position and set-mouse-position continue to work with
+units of characters.
+
+** The new function compute-motion is useful for computing the width
+of certain text when it is displayed.
+
+** The function vertical-motion now takes an option second argument WINDOW
+which says which window to use for the display calculations.
+
+vertical-motion always operates on the current buffer.
+It is ok to specify a window displaying some other buffer.
+Then vertical-motion uses the width, hscroll and display-table of
+the specified window, but still scans the current buffer.
+
+** An error no longer sets last-command to t; the value of last-command
+does reflect the previous command (the one that got an error).
+
+If you do not want a particular command to be recognized as the
+previous command in the case where it got an error, you must code that
+command to prevent this.  Set this-command to t at the beginning of
+the command, and set this-command back to its proper value at the end,
+like this:
+
+  (defun foo (args...)
+    (interactive ...)
+    (setq this-command t)
+    ...do the work...
+    (setq this-command 'foo))
+
+or like this:
+
+  (defun foo (args...)
+    (interactive ...)
+    (let ((old-this-command this-command))
+      (setq this-command t)
+      ...do the work...
+      (setq this-command old-this-command)))
+
+The undo and yank commands do this.
+
+** If you specify an explicit title for a new frame when you create it,
+the title is used as the resource name when looking up X resources to
+control the shape of that frame.  If you don't specify the frame title,
+the value of x-resource-name is used, as before.
+
+** The frame parameter user-position, if non-nil, says that the user
+has specified the frame position.  Emacs reports this to the window
+manager, to tell it not to override the position that the user
+specified.
+
+** Major modes can now set change-major-mode-hook to arrange for state
+to be cleaned up when the user switches to a new major mode.  The function
+kill-all-local-variables runs this hook.  For best results, make the hook a
+buffer-local variable so that it will disappear after doing its job and will
+not interfere with the subsequent major mode.
+
+** The new variable overriding-local-map, if non-nil, specifies a keymap
+that overrides the current local map, all minor mode keymaps, and all
+text property keymaps.  Incremental search uses this feature to override
+all other keymaps temporarily.
+
+** A key definition in a menu keymap can now have additional structure:
+in addition to (ITEMNAME [HELPSTRING] . COMMAND) which was allowed
+before, the form (ITEMNAME [HELPSTRING] (...) . COMMAND) is
+allowed.  (HELPSTRING is optional, and is not currently used.)
+
+Here (...) represents a sublist containing information about keyboard
+key sequences that run the same command COMMAND.  Displaying the menu
+automatically creates and updates the sublist when appropriate; you
+need never set these up yourself.
+
+lookup-key, key-binding, and similar functions return just COMMAND,
+not the whole binding.
+
+To precompute this information for a given keymap, you can do
+  (x-popup-menu nil KEYMAP).
+
+** When you specify coordinates for x-popup-menu as a list ((XOFFSET
+YOFFSET) WINDOW), the coordinates are now measured in pixels.
+
+** where-is-internal now takes just four arguments:
+DEFINITION KEYMAP FIRSTONLY NOINDIRECT.
+The single argument KEYMAP replaces two arguments KEYMAP and KEYMAP1.
+
+If KEYMAP is non-nil, where-is-internal searches only KEYMAP and the
+global keymap.
+
+If KEYMAP is nil, where-is-internal searches all the currently active
+keymaps, but finds the active keymaps as if overriding-local-map were
+nil.
+
+If you pass a list of the form (keymap) as KEYMAP, where-is-internal
+searches only the global map.  (This is not a special case--it follows
+from the specifications above.)
+
+If you pass the value of overriding-local-map as KEYMAP, where-is-internal
+searches in exactly the same was as command execution does.
+
+** Use the macro define-derived-mode to define a new major mode that
+inherits the definition of another major mode.  Here's how to define a
+command named hypertext-mode that inherits from the command text-mode:
+
+    (define-derived-mode hypertext-mode text-mode "Hypertext"
+      "Major mode for hypertext.\n\n\\{hypertext-mode-map}"
+      (setq case-fold-search nil))
+
+    (define-key hypertext-mode-map [down-mouse-3] 'do-hyper-link)
+
+The new mode has its own keymap, which inherits from that of the
+original mode.  It also has its own syntax and abbrev tables, which
+are initialized by copying those of the original mode.  It also has
+its own mode hook.  All are given names made by appending a suffix
+to the name of the new mode.
+
+** A syntax table can now inherit the data for some characters from
+standard-syntax-table, while specifying other characters itself.
+Syntax code 13 means "inherit this character from the standard syntax
+table."  In modify-syntax-entry, the character `@' represents this code.
+
+The function `make-syntax-table' now creates a syntax table which
+inherits all letters and control characters (0 to 31 and 128 to 255)
+from the standard syntax table, while copying the other characters
+from the standard syntax table.  Most syntax tables in Emacs are set
+up this way.
+
+This sort of inheritance is useful for people who set up character
+sets with additional alphabetic characters in the range 128 to 255.
+Just changing the standard syntax for these characters affects all
+major modes.
+
+** The new function transpose-regions swaps two regions of the buffer.
+It preserves the markers in those two regions, so that they stay with
+the surrounding text as it is swapped.
+
+** revert-buffer now runs before-revert-hook at the beginning and
+after-revert-hook at the end.  These can be used by minor modes
+that need to clean up state variables.
+
+** The new function get-char-property is like get-text-property, but
+checks for overlays with properties as well as for text properties.
+It checks for overlays first, in order of descending priority, and
+text properties last.
+
+get-char-property allows windows as the OBJECT argument, as well
+as buffers and strings.  If you specify a window, then only overlays
+active on that window are considered.
+
+** Overlays can have the `invisible' property.
+
+** The function insert-file-contents now takes an optional fifth
+argument called REPLACE.  If this is t, it means to replace the
+contents of the buffer (actually, just the accessible portion)
+with the contents of the file.
+
+This is better than simply deleting and inserting the whole thing
+because (1) it preserves some marker positions and (2) it puts less
+data in the undo list.
+
+** The variable inhibit-first-line-modes-regexps specifies classes of
+file names for which -*- on the first line should not be looked for.
+
+** The variables before-change-functions and after-change-functions
+hold lists of functions to call before and after a change in the
+buffer's text.  They work much like before-change-function and
+after-change-function, except that they hold a list of functions
+instead of just one.
+
+These variables will eventually make before-change-function and
+after-change-function obsolete.
+
+** The variable kill-buffer-query-functions holds a list of functions
+to be called with no arguments when a buffer is about to be killed.
+(That buffer is the current buffer when the function is called.)
+If any of the functions returns nil, the buffer is not killed
+(and the remaining functions in the list are not called).
+
+** The variable kill-emacs-query-functions holds a list of functions
+to be called with no arguments when you ask to exit Emacs.
+If any of the functions returns nil, the exit is canceled
+(and the remaining functions in the list are not called).
+
+** The argument for buffer-disable-undo is now optional,
+like the argument for buffer-enable-undo.
+
+** The new variable system-configuration holds the canonical three-part
+GNU configuration name for which Emacs was built.
+
+** The function system-name now tries harder to return a fully qualified
+domain name.
+
+** The variable emacs-major-version holds the major version number
+of Emacs.  (Currently 19.)
+
+** The variable emacs-minor-version holds the minor version number
+of Emacs.  (Currently 23.)
+
+** The default value of comint-input-autoexpand is now nil.
+However, Shell mode sets it from the value of shell-input-autoexpand,
+whose default value is `history'.
+
+** The new function set-process-window-size specifies the terminal window
+size for a subprocess.  On some systems it sends the subprocess a signal
+to let it know that the size has changed.
+
+** %P is a new way to display a percentage in the mode line.  It
+displays the percentage of the buffer text that is above the *bottom*
+of the window (which includes the text visible, in the window as well
+as the text above the top).  It displays `Top' as well as the
+percentage if the top of the buffer is visible on screen.
+
+** %+ in the mode line specs displays `*' if the buffer is modified,
+and otherwise `-'.  It never displays `%', as `%*' would do; whether the
+buffer is read-only has no effect on %+.
+
+** The new functions ffloor, fceiling, fround and ftruncate take a
+floating point argument and return a floating point result whose value
+is a nearby integer.  ffloor returns the nearest integer below; fceiling,
+the nearest integer above; ftruncate, the nearest integer in the
+direction towards zero; fround, the nearest integer.
+
+** Setting `print-escape-newlines' to a non-nil value now also makes
+formfeeds print as ``\f''.
+
+** auto-mode-alist now has a new feature.  If an element has the form
+(REGEXP FUNCTION t), and REGEXP matches the file name, then after calling
+FUNCTION, Emacs deletes the part of the file name that matched REGEXP
+and then searches auto-mode-alist again for a new match.
+
+This is useful for uncompression packages.  An entry of this sort for
+.gz can uncompress the file and then put the uncompressed file in the
+proper mode according to the name sans .gz.
+
+** The new function emacs-pid returns the process ID number of Emacs.
+
+** user-login-name now consistently checks the LOGNAME environment
+variable before USER.  user-original-login-name is obsolete, since it
+provides the same functionality.  To ignore the environment variables,
+use user-real-login-name.
+
+** There is a more general way of handling the system-specific X
+keysyms.  Set the variable system-key-alist to an alist containing
+elements of the form (CODE . SYMBOL), where CODE is the numeric keysym
+code minus the "vendor specific" bit, and symbol is the name for the
+function key.
+
+** You can use the variable command-line-functions to set up functions
+to process unrecognized command line arguments.  The variable's value
+should be a list of functions of no arguments.  The functions are
+called successively until one of them returns non-nil.
+
+Each function should access the free variables argi (the current
+argument) and command-line-args-left (the remaining arguments).  The
+function should return non-nil only if it recognizes and processes the
+argument in argi.  If it does so, it may consume following arguments
+as well by removing them from command-line-args-left.
+
+** There's a new way for a magic file name handler to run a primitive
+and inhibit handling of the file name.  Here is how to do it:
+
+(let ((inhibit-file-name-handlers
+       (cons 'ange-ftp-file-handler
+             (and (eq inhibit-file-name-operation operation)
+                      inhibit-file-name-handlers)))
+      (inhibit-file-name-operation operation))
+  (apply this-operation args))
+
+The function find-file-name-handler now takes two arguments.  The
+second argument is OPERATION, the operation for which the handler is
+being sought.
+
+People have suggested that the second argument should be optional, for
+backward compatibility.  It would be nice if that were possible, but
+it is not.  There is simply no way for find-file-name-handler to do
+the right thing without receiving the proper value for its second
+argument.
+
+** The variable completion-regexp-list affects the completion
+primitives try-completion and all-completions.  They consider
+only the possible completions that match each regexp in the list.
+
+** Case conversion in the function replace-match has been changed.
+
+The old behavior was this: if any word in the old text was
+capitalized, replace-match capitalized each word of the replacement
+text.
+
+The new behavior is this: if the first word in the old text is capitalized,
+replace-match capitalizes the first word of the replacement text.
+
+** You can now specify a case table with CANON non-nil and EQV nil.
+Then the EQV part of the case table is deduced from CANON.
+
+** The new function minibuffer-prompt takes no arguments and returns
+the current minibuffer prompt string.
+
+The new function minibuffer-prompt-width takes no arguments and
+returns the display width of the minibuffer prompt string.
+
+** The new function frame-first-window returns the window at the
+upper left corner of a given frame.
+
+** wholenump is a new alias for natnump.
+
+** The variable installation-directory, if non-@code{nil}, names a
+directory within which to look for the `lib-src' and `etc'
+subdirectories.  This is non-nil when Emacs can't find those
+directories in their standard installed locations, but can find them
+near where the Emacs executable was found.
+
+** invocation-name and invocation-directory are now variables as well
+as functions.  The variable values are the same values that the
+functions return: the Emacs program name sans directories, and the
+directory it was found in.  (invocation-directory may be nil, if Emacs
+can't determine which directory it should be.)
+
+** Installation change regarding version number counting.
+
+The version number of an Emacs executable contains three numbers.
+The first two describe the Emacs release and the third increments
+each time you build Emacs.
+
+Now the file version.el contains only the first two version numbers.
+The third component is now determined on the basis of the names of the
+existing executable files.  This means that version.el is not altered
+by building Emacs.
+
+
+
+* Changes in 19.22.
+
+** The mouse click M-mouse-2 now inserts the current secondary
+selection (from Emacs or any other X client) where you click.
+It does not move point.
+This command is called mouse-yank-secondary.
+
+mouse-kill-secondary no longer has a key binding by default.
+Clicking M-mouse-3 (mouse-secondary-save-then-kill) twice
+may be a convenient enough way of killing the secondary selection.
+Or perhaps there should be a keyboard binding for killing the
+secondary selection.  Any suggestions?
+
+** New packages:
+
+*** `icomplete' provides character-by-character information
+about what you could complete if you type TAB.
+
+*** `avoid' moves the mouse away from point so that it doesn't hide
+your typing.
+
+*** `shadowfile' helps you update files that are supposed to be stored
+identically in different places (perhaps on different machines).
+
+** C-h p now knows about four additional keywords: data, faces, mouse,
+and matching.
+
+** The key for starting an inferior Lisp process, in Lisp mode,
+is now C-c C-z instead of C-c C-l.
+
+** When the VC commands ask whether to save the buffer, if you say no,
+they signal an error.  This is so that you won't operate on the wrong
+data.
+
+** ISO Accents mode now supports `"s' as a way of typing German sharp s.
+
+** By default, comint buffers (including Shell mode and debuggers)
+no longer try to scroll to keep the cursor on the bottom line.
+This feature was added in 19.21 but did not work smoothly enough.
+
+** Emacs now handles the window manager "delete window" operation.
+
+** Display of buffers with text properties is much faster now.
+
+** The feature previously announced whereby `insert' does not inherit
+text properties from surrounding text was not fully implemented
+before; but now it is.  use `insert-and-inherit' if you wish to
+inherit sticky properties from the surrounding text.
+
+** The functions next-property-change, previous-property-change,
+next-single-property-change, and previous-single-property-change
+now take one additional optional argument LIMIT that is a position at
+which to stop scanning.  If scan ends without finding the property
+change sought, these functions return the specified limit.
+
+The value returned by previous-single-property-change and
+previous-property-change, when they do find a change, is now one
+greater than what it used to be.  It is the position between the two
+characters whose properties differ, which is one greater than the
+position of the first character found (while scanning back) with
+different properties.
+
+
+
+* User editing changes in version 19.21.
+
+** ISO Accents mode supports four additional characters:
+A-with-ring (entered as /A), AE ligature (entered as /E),
+and their lower-case equivalents.
+
+
+
+* User editing changes in version 19.20.
+(See following page for Lisp programming changes.)
+
+Note that some of these changes were made subsequent to the Emacs 19.20
+editions of the Emacs manual and Emacs Lisp manual; therefore, if you
+have those editions, do read this page.
+
+** Dragging with mouse button 1 now puts the selected region
+in the kill ring so you can paste it into other X applications.
+
+** Double and triple clicks with button 1 now behave as in xterm,
+selecting the word or line surrounding where you click.  If you drag
+after the last click, you can select a range of words or lines.
+
+** You can use button 3 to extend a mouse-selected region, as in xterm.
+This works for regions selected either by dragging Mouse-1 or by
+multiple-clicking Mouse-1.  Clicking Mouse-3 moves the end of the
+region that is (initially) nearer to where you click.
+
+If the selection was first made by multiple-clicking Mouse-1, and thus
+consists of entire words or lines, Mouse-3 preserves that state.
+
+As before, clicking Mouse-3 again in the same place kills the region
+thus selected.
+
+** The secondary selection commands, M-Mouse-1 and M-Mouse-3, have been
+likewise modified.
+
+** You can now search for strings and regexps using the Edit menu bar menu.
+
+** You can now access bookmarks using the Bookmark submenu in the File
+menu in the menu bar.
+
+** ISO Accents mode, a buffer-local minor mode, provides a convenient
+way to type certain non-ASCII characters.  It makes the characters `,
+', ", ^, ~ and / serve as modifiers for the following letter.  ` and '
+add accents, " adds an umlaut or dieresis, ^ adds a circumflex, ~
+adds a tilde, and / adds a slash to the following letter.
+
+If the following character is not a letter, or cannot be modified as
+requested, then both characters stand for themselves.  If you
+duplicate the modifier accent character, that enters the corresponding
+ISO non-spacing accent character (thus, '' enters the ISO acute-accent
+character).  To enter a modifier character itself, type it followed by
+a space.
+
+This feature can be used whenever a key sequence is expected: for
+ordinary insertion, for searching, and for certain command arguments.
+
+A few special combinations:
+
+~c => c with cedilla
+~d => d with stroke
+~< => left guillemot
+~> => right guillemot
+
+** iso-transl.el is a new library that replaces iso-insert.el.
+It defines C-x 8 as an insertion prefix for the ISO characters
+between 128 and 255, much like iso-insert, except that iso-transl
+works even in searches and help commands--wherever a key sequence
+is expected.
+
+To define case-conversion for these characters for ISO 8859/1,
+load the library iso-syntax.  (This is not new.)
+
+** M-TAB in Text mode now runs the command ispell-complete-word
+which performs completion using the spelling dictionary.
+
+The spelling correction submenu now includes this command
+and another command which completes a word fragment (that is,
+it doesn't assume that the text to be completed starts at the
+beginning of a word.
+
+** In incremental search, you can use M-y to yank the most recent kill
+into the search string.
+
+** The new function ispell-message checks the spelling of a message
+you are about to send or post.  It ignores text cited from other
+messages.
+
+To automatically check all your outgoing messages, include the
+following line in your .emacs file:
+  (setq news-inews-hook (setq mail-send-hook 'ispell-message))
+
+** There is now a separate minibuffer history list for the names of
+extended commands.  This history list is used by M-x when reading
+the command name.  The motivation for this is to prevent command
+names from appearing in the history used for other minibuffer
+arguments.
+
+Note that the history list for entire commands that use the minibuffer
+is a separate feature.  That history list records a command with all
+its arguments, and you must use C-x ESC ESC to access it.
+
+** You can use the new command C-x v ~ VERSION RET to examine a
+specified version of a file that is maintained with version control.
+
+** In Indented Text mode, only blank lines now separate paragraphs.
+Indented lines continue the paragraph that is in progress.  This makes
+the user option variable adaptive-fill-mode have its intended effect.
+
+** Local variable specifications in files for variables whose names end
+in `-hook' and `-function' are now controlled by the variable
+`enable-local-eval', just like the `eval' variable.
+
+** C-x r j (jump-to-register) when restoring a frame configuration now
+makes all unwanted frames (existing frames not mentioned in the
+configuration) invisible.
+
+If you want to delete these unwanted frames, use a prefix argument for
+C-x r j.
+
+** You can customize the calendar to display weeks beginning on
+Monday: set the variable `calendar-week-start-day' to 1.
+
+** Rmail changes.
+
+If you save messages to a file in Unix format while viewing a message
+with its whole header, this now copies to the file the entire header
+of each message copied.
+
+** Comint mode changes.
+
+C-c C-e shows as much output as possible in the window.
+C-c RET copies an old input (the one at point)
+and places the copy after the latest prompt.
+C-c C-p and C-c C-n move through the buffer, stopping at places
+where the subshell prompted for input.
+C-c C-h lists the input history in a `*Help*' buffer.
+
+There are new menu bar items for completion/input/output/signal commands.
+
+Input behavior is configurable.  Variables control whether some windows
+showing the buffer scroll to the bottom before insertion.  These are
+`comint-scroll-to-bottom-on-input' and `before-change-function'.  By default,
+insertion causes the selected window to scroll to the bottom before insertion
+occurs.
+
+Subprocess output now keeps point at the end of the buffer in each
+window individually if point was already at the end of the buffer in
+that window.
+
+If `comint-scroll-show-maximum-output' is non-nil (which is the
+default), then scrolling due to arrival of output tries to place the
+last line of text at the bottom line of the window, so as to show as
+much useful text as possible.  (This mimics the scrolling behavior of
+many terminals.)
+
+By setting `comint-scroll-to-bottom-on-output', you can opt for having
+point jump to the end of the buffer whenever output arrives--no matter
+where in the buffer point was before.  If the value is `this', point
+jumps in the selected window.  If the value is `all', point jumps in
+each window that shows the comint buffer.  If the value is `other',
+point jumps in all nonselected windows that show the current buffer.
+The default value is nil, which means point does not jump to the end.
+
+Input history insertion is configurable.  A variable controls whether only the
+first instance of successive identical inputs is stored in the input history.
+This is `comint-input-ignoredups'.
+
+Completion (bound to TAB) is now more general.  Depending on context,
+completion now operates on the input history, on command names, or (as
+before) on filenames.
+
+Filename completion is configurable.  Variables control whether
+file/directory suffix characters are added (`comint-completion-addsuffix'),
+whether shortest completion is acceptable when no further unambiguous
+completion is possible (`comint-completion-recexact'), and the timing of
+completion candidate listing (`comint-completion-autolist').
+
+Comint mode now provides history expansion.  Insert input using `!'
+and `^', in the same syntax that typical shells use; then type TAB.
+This searches the comint input history for a matching element,
+performs substitution if necessary, and places the result in the
+comint buffer in place of the original input.
+
+History references in the input may be expanded before insertion into
+the input ring, or on input to the interpreter (and therefore
+visibly).  The variable `comint-input-autoexpand' specifies which.
+
+You can make the SPC key perform history expansion by binding
+SPC to the command `comint-magic-space'.
+
+The command `comint-dynamic-complete-variable' does variable name
+completion using the environment variables as set within Emacs.  The
+variables controlling filename completion apply to variable name
+completion too.  This command is normally available through the menu
+bar.
+
+** Shell mode
+
+Paragraph motion and marking commands (default bindings M-{, M-}, M-h) operate
+on output groups (i.e., shell prompt plus associated shell output).
+
+TAB now completes commands, as well as file names and expand history.
+Commands are searched for along the path that Emacs has on startup.
+
+C-c C-f now moves forward a command (`shell-forward-command') and
+C-c C-b now moves backward a command (`shell-backward-command').
+
+Command completion is configurable.  The variables controlling
+filename completion in comint mode apply, together with a variable
+controlling whether to restrict possible completions to only files
+that are executable (`shell-command-execonly').
+
+The input history is initialised from the file name given in the
+variable `shell-input-ring-file-name'--normally `.history' in your
+home directory.
+
+Directory tracking is more robust.  It can cope with command sequences
+and forked commands, and can detect the failure of directory changing
+commands in most circumstances.  It's still not infallible, of course.
+
+You can now configure the behavior of `pushd'.  Variables control
+whether `pushd' behaves like `cd' if no argument is given
+(`shell-pushd-tohome'), pop rather than rotate with a numeric argument
+(`shell-pushd-dextract'), and only add directories to the directory
+stack if they are not already on it (`shell-pushd-dunique').  The
+configuration you choose should match the underlying shell, of course.
+
+
+* Emacs Lisp programming changes in Emacs 19.20.
+
+** A new function `remove-hook' is now used to remove a hook that you might
+have added with `add-hook'.
+
+** There is now a Lisp pretty-printer in the library `pp'.
+
+** The partial Common Lisp support has been entirely reimplemented.
+
+** When you insert text using `insert', `insert-before-markers' or
+`insert-buffer-substring', text properties are no longer inherited
+from the surrounding text.
+
+When you want to inherit text properties, use the new functions
+`insert-and-inherit' or `insert-before-markers-and-inherit'.
+
+The self-inserting character command does do inheritance.
+
+** Frame creation hooks.
+
+The function make-frame now runs the normal hooks
+before-make-frame-hook and after-make-frame-hook.
+
+** You can now use function-key-map to make a key an alias for other
+key sequences that can vary depending on circumstances.  To do this,
+give the key a definition in function-key-map which is a function
+rather than a specific expansion key sequence.
+
+If the function reads input itself, it can have the effect of altering
+the event that follows.  For example, here's how to define C-c h to
+turn the character that follows into a hyper character:
+
+(define-key function-key-map "\C-ch" 'hyperify)
+
+(defun hyperify (prompt)
+  (let ((e (read-event)))
+    (vector (if (numberp e)
+		(logior (lsh 1 20) e)
+	      (if (memq 'hyper (event-modifiers e))
+		  e
+		(add-event-modifier "H-" e))))))
+
+(defun add-event-modifier (string e)
+  (let ((symbol (if (symbolp e) e (car e))))
+    (setq symbol (intern (concat string (symbol-name symbol))))
+    (if (symbolp e)
+	symbol
+      (cons symbol (cdr e)))))
+
+The character translation function gets one argument, which is the
+prompt that was specified in read-key-sequence--or nil if the key
+sequence is being read by the editor command loop.  In most cases
+you can just ignore the prompt value.
+
+** Changes for reading and writing text properties.
+
+New low-level Lisp features make it possible to write Lisp programs to
+save text properties in files, and read text properties from files.
+You can program any file format you like.
+
+The variable `write-region-annotation-functions' should contain a list
+of functions to be run by `write-region' to encode text properties in
+some fashion as annotations to the text that is written.
+
+Each function in the list is called with two arguments: the start and
+end of the region to be written.  These functions should not alter the
+contents of the buffer.  Instead, they should return lists indicating
+annotations to write in the file in addition to the text in the
+buffer.
+
+Each function should return a list of elements of the form (POSITION
+. STRING), where POSITION is an integer specifying the relative
+position in the text to be written, and STRING is the annotation to
+add there.
+
+Each list returned by one of these functions must be already sorted in
+increasing order by POSITION.  If there is more than one function,
+`write-region' merges the lists destructively into one sorted list.
+
+When `write-region' actually writes the text from the buffer to the
+file, it intermixes the specified annotations at the corresponding
+positions.  All this takes place without modifying the buffer.
+
+The variable `after-insert-file-functions' should contain a list of
+functions to be run each time a file's contents have been inserted into
+a buffer.  Each function receives one argument, the length of the
+inserted text; point indicates the start of that text.  The function
+should make whatever changes it wants to make, then return the updated
+length of the inserted text, as it stands after those changes.  The
+value returned by one function is used as the argument to the next.
+These functions should always return with point at the beginning of
+the inserted text.
+
+The intended use of `after-insert-file-functions' is for converting
+some sort of textual annotations into actual text properties.  But many
+other uses may be possible.
+
+We now invite users to begin implementing Lisp programs to store and
+retrieve text properties in files, using these new primitive features,
+and thus to experiment with various data formats and find good ones.
+
+We suggest not trying to handle arbitrary Lisp objects as property
+names or property values--because a program that general is probably
+difficult to write, and slow.  Instead, choose a set of possible data
+types that are reasonably flexible, and not too hard to encode.
+
+** Comint completion.
+
+Currently comint-dynamic-complete-command (and associated variable
+comint-after-partial-pathname-command) are set by default to complete a
+filename.  Other comint-mode users should have their own functions to achieve
+this.  For example, gud-mode could complete debugger commands.  A completion
+function is provided solely for this reason (comint-dynamic-simple-complete).
+
+Other comint-mode users should bind comint-dynamic-complete (shell-mode does
+already).
+
+** Comint history reference expansion
+
+Currently comint-input-autoexpand is 'history, which means only expand
+history on insertion to comint-input-ring.  For non-shell modes, this is
+a strange default, since non-shells will not understand history references.
+Perhaps it would be better for the variable to be 'input, which means expand
+on RET.
+
+The value 'history might possibly be wrong even for shells, since the
+expansion will be done both by comint and the underlying shell (except sh, of
+course).  It would be better for expansion to be done by one or the other,
+not both since they may (ahem) disagree.  Since it is silly to put a literal
+history reference into comint-input-ring, perhaps it would be better for the
+variable to be 'input too.
+
+The reason the variable is not 'input by default is that I was attempting to
+adhere to The Principle of Least Astonishment.  I didn't want to shock users
+by having their input change in front of their eyes.
+
+** Argument delimiters and Comint mode.
+
+Currently comint-delimiter-argument-list is '(), which means no strings are
+to be treated as delimiters and arguments.  In shell-mode, this variable is
+set to shell-delimiter-argument-list, '("|" "&" "<" ">" "(" ")" ";").  Other
+comint-mode users should set this variable too.  For example, a lisp-type
+mode might want to set this to '("." "(" ")") or some such.
+
+** Comint output hook.
+
+There is now a hook, comint-output-filter-hook, that is run-hooks'ed by the
+output filter, comint-output-filter.  This is useful for scrolling (see
+below), but also things like processing output for specific text, output
+highlighting, etc.
+
+So that such output processing may be done efficiently, there is a new
+variable, comint-last-output-start, that records the position of the start of
+the lastest output inserted into the buffer (effectively the previous value
+of process-mark).  Output processing functions should process the text
+between comint-last-output-start (or perhaps the beginning of the line that
+the position lies on) and process-mark.
+
+** Comint scrolling.
+
+There is now automatic scrolling of process windows.
+
+Currently comint-scroll-show-maximum-output is t, which means when scrolling
+output put process-mark at the bottom of the window.  There is a good case
+for it to be t, since the user is likely to want to see as much output as
+possible.  But, then again, there is a comint-show-maximum-output command.
+
+** Comint history retrieval.
+
+The input following point is not deleted when moving around the input history
+(with M-p etc.).  Emacs maintainers may not like this.  However, I feel this
+is a useful feature.  The simple remedy is to put end-of-line in before
+delete-region in comint-previous-matching-input.
+
+The input history retrieval commands still wrap-around the input ring, unlike
+Emacs command history.
+
+
+
+* Changes in version 19.19.
+
+** The new package bookmark.el records named bookmarks: positions that
+you can jump to.  Bookmarks are saved automatically between Emacs
+sessions.
+
+** Another simpler package saveplace.el records your position in each
+file when you kill its buffer (or kill Emacs), and jumps to the same
+position when you visit the file again (even in another Emacs
+session).  Use `toggle-save-place' to turn on place-saving in a given file;
+use (setq-default save-place t) to turn it on for all files.
+
+** In Outline mode, you can now customize how to compute the level of a
+heading line.  Set `outline-level' to a function of no arguments which
+returns the level, assuming point is at the beginning of a heading
+line.
+
+** You can now specify the prefix key to use for Outline minor mode.
+(The default is C-c.)  Set the variable outline-minor-mode-prefix to
+the key sequence you want to use (as a string or vector).
+
+** In Bibtex mode, C-c e has been changed to C-c C-b.  This is because
+C-c followed by a letter is reserved for users.
+
+** The `mod' function is no longer an alias for `%', but is a separate function
+that yields a result with the same sign as the divisor.  `floor' now takes an
+optional second argument, which divides the first argument before the floor is
+taken.
+
+** `%' no longer allows floating point arguments, since the results were often
+inconsistent with integer `%'.
+
+
+
+* Changes in version 19.18.
+
+** Typing C-z in an iconified Emacs frame now deiconifies it.
+
+** hilit19 is a new library for automatic highlighting of parts of the
+text in the buffer, based on its meaning and context.
+
+** Killing no longer sends the killed text to the X clipboard.
+And large strings are not put in the cut buffer either.
+The variable x-cut-buffer-max specifies the maximum number of characters
+to put in the cut buffer.
+
+** The new command C-x 5 o (other-frame) selects different frames,
+successively, in cyclic order.  It does for frames what C-x o
+does for windows.
+
+** The command M-ESC (eval-expression) has its own command history.
+
+** The commands M-! and M-| for running shell commands have their own
+command history.
+
+** If the directory containing the Emacs executable has a sibling named
+`lisp', that `lisp' directory is added to the end of `load-path'
+(provided you don't override the normal value with the EMACSLOADPATH
+environment variable).  This feature may make it easier to move
+an installed Emacs from place to place.
+
+** M-x validate-tex-buffer now records the locations of mismatches
+found in the `*Occur*' buffer.  You can go to that buffer and type C-c
+C-c to visit a particular mismatch.
+
+** There are new commands in Shell mode.
+
+C-c C-n and C-c C-p move point to the next or previous shell input line.
+
+C-c C-d is now another way to send an end-of-file to the subshell.
+
+** Changes to calendar/diary.
+
+Time zone data is now determined automatically, including the
+start/stop days and times of daylight savings time.  The code now
+works correctly almost anywhere in the world.
+
+The format of the holiday specifications has changed and IS NO LONGER
+COMPATIBLE with the old (version 18) format.  See the documentation of
+the variable calendar-holidays for details of the new, improved
+format.
+
+The hook `diary-display-hook' has been split into two:
+diary-display-hook which should be used ONLY for the display and
+`diary-hook' which should be used for appointment notification.  If
+diary-display-hook is nil (the default), simple-diary-display is
+used.  This allows the diary hooks to be correctly set with add-hook.
+
+The forms used for dates in diary entries and general display are no
+longer autoloaded, but set at load time; this means they will be set
+correctly based on values you assign to various variables.
+
+** The functions x-rebind-key and x-rebind-keys have been deleted,
+because you can accomplish the same job by binding keys to keyboard
+macros.
+
+** Emacs now distinguishes double and triple drag events and double and
+triple button-down events.  These work analogously to double and
+triple click events.
+
+Double drag events, if not defined, convert to ordinary click events.
+Double down events, if not defined, convert first to ordinary down
+events, which are then discarded if not defined.  Triple events that
+are not defined convert to the corresponding double event; if that is
+also not defined, it may convert further.
+
+** The new function event-click-count returns the number of clicks,
+from an event which is a list.  It is 1 for an ordinary click, drag,
+or button-down event, 2 for a double event, and 3 or more for a triple
+event.
+
+** The new function previous-frame is like next-frame, but moves
+around through the set of existing frames in the opposite order.
+
+** The post-command-hook now runs even after commands that get an error
+and return to top level.  As a consequence of the same change, this
+hook also runs before Emacs reads the first command.  That might sound
+paradoxical, as if this hook were the same as the pre-command-hook.
+Actually, they are not similar; the latter runs before *execution* of
+a command, but after it has been read.
+
+** You can turn off the text property hooks that run when point moves
+to certain places in the buffer, by binding inhibit-point-motion-hooks
+to a non-nil value.
+
+** Inserting a string with no text properties into the buffer normally
+inherits the properties of the preceding character.  You can now
+control this inheritance by setting the front-sticky and
+rear-nonsticky properties of a character.
+
+If you make a character's front-sticky property t, then insertion
+before the character inherits its properties.  If you make the
+rear-nonsticky property t, then insertion after the character does not
+inherit its properties.  You can regard characters as normally being
+rear-sticky and not front-sticky, and this is why insertion normally
+inherits from the previous character.
+
+If neither side of an insertion is suitably sticky, then the inserted
+text gets no properties.  If both sides are sticky, then the inserted
+text gets the properties of both sides, with the previous character's
+properties taking precedence when both sides have a property in
+common.
+
+You can also specify stickiness for individual properties.  To do so,
+use a list of property names as the value of the front-sticky property
+or the rear-nonsticky property.  For example, if a character has a
+rear-nonsticky property whose value is (face read-only), then
+insertion after the character will not inherit its face property or
+read-only property (if any), but will inherit any other properties.
+
+The merging of properties when both sides of the insertion are sticky
+takes place one property at a time.  If the preceding character is
+rear-sticky for the property, and the property is non-nil, it
+dominates.  Otherwise, the following character's property value is
+used if it is front-sticky for that property.
+
+** If you give a character a non-nil `invisible' text property, the
+character does not appear on the screen.  This works much like
+selective display.
+
+The details of this feature are likely to change in future Emacs
+versions.
+
+** In Info, when you go to a node, it runs the normal hook
+Info-selection-hook.
+
+** You can use the new function `invocation-directory' to get the name
+of the directory containing the Emacs executable that was run.
+
+** Entry to the minibuffer runs the normal hook minibuffer-setup-hook.
+
+** The new function minibuffer-window-active-p takes one argument, a
+minibuffer window, and returns t if the window is currently active.
+
+
+
+* Changes in version 19.17.
+
+** When Emacs displays a list of completions in a buffer,
+you can select a completion by clicking mouse button 2
+on that completion.
+
+** Use the command `list-faces-display' to display a list of
+all the currently defined faces, showing what they look like.
+
+** Menu bar items from local maps now come after the usual items.
+
+** The Help menu bar item always comes last in the menu bar.
+
+** If you enable Font-Lock mode on a buffer containing a program
+(certain languages such as C and Lisp are supported), everything you
+type is automatically given a face property appropriate to its
+syntactic role.  For example, there are faces for comments, string
+constants, names of functions being defined, and so on.
+
+** Dunnet, an adventure game, is now available.
+
+** Several major modes now have their own menu bar items,
+including Dired, Rmail, and Sendmail.  We would like to add
+suitable menu bar items to other major modes.
+
+** The key binding C-x a C-h has been eliminated.
+This is because it got in the way of the general feature of typing
+C-h after a prefix character.  If you want to run
+inverse-add-global-abbrev, you can use C-x a - or C-x a i g instead.
+
+** If you set the variable `rmail-mail-new-frame' to a non-nil value,
+all the Rmail commands to send mail make a new frame to do it in.
+When you send the message, or use the menu bar command not to send it,
+that frame is deleted.
+
+** In Rmail, the o and C-o commands are now almost interchangeable.
+Both commands check the format of the file you specify, and append
+the message to it in Rmail format if it is an Rmail file, and in
+inbox file format otherwise.  C-o and o are different only when you
+specify a new file.
+
+** The function `copy-face' now takes an optional fourth argument
+NEW-FRAME.  If you specify this, it copies the definition of face
+OLD-FACE on frame FRAME to face NEW-NAME on frame NEW-FRAME.
+
+** A local map can now cancel out one of the global map's menu items.
+Just define that subcommand of the menu item with `undefined'
+as the definition.  For example, this cancels out the `Buffers' item
+for the current major mode:
+
+    (local-set-key [menu-bar buffer] 'undefined)
+
+** To put global items at the end of the menu bar, use the new variable
+`menu-bar-final-items'.  It should be a list of symbols--event types
+bound in the menu bar.  The menu bar items for these symbols are
+moved to the end.
+
+** The list returned by `buffer-local-variables' now contains cons-cell
+elements of the form (SYMBOL . VALUE) only for buffer-local variables
+that have values.  For unbound buffer-local variables, the variable
+name (symbol) appears directly as an element of the list.
+
+** The `modification-hooks' property of a character no longer affects
+insertion; it runs only for deletion and modification of the character.
+
+To detect insertion, use `insert-in-front-hooks' and
+`insert-behind-hooks' properties.  The former runs when text is
+inserted immediately preceding the character that has the property;
+the latter runs when text is inserted immediately following the
+character.
+
+** Buffer modification now runs hooks belonging to overlays as well as
+hooks belonging to characters.  If an overlay has a
+`modification-hooks' property, it applies to any change to text in the
+overlay, and any insertion within the overlay.  If the overlay has a
+`insert-in-front-hooks' property, it runs for insertion at the
+beginning boundary of the overlay.  If the overlay has an
+`insert-behind-hooks' property, it runs for insertion at the end
+boundary of the overlay.
+
+The values of these properties should be lists of functions.  Each
+function is called, receiving as arguments the overlay in question,
+followed by the bounds of the range being modified.
+
+** The new `-name NAME' option directs Emacs to search for its X
+resources using the name `NAME', and sets the title of the initial
+frame.  This argument was added for consistency with other X clients.
+
+** The new `-xrm DATABASE' option tells Emacs to treat the string
+DATABASE as the text of an X resource database.  Emacs searches
+DATABASE for resource values, in addition to the usual places.  This
+argument was added for consistency with other X clients.
+
+** Emacs now searches for X resources in the files specified by the
+XFILESEARCHPATH, XUSERFILESEARCHPATH, and XAPPLRESDIR environment
+variables, emulating the functionality provided by programs written
+using Xt.  Because of this change, Emacs will now notice system-wide
+application defaults files, as other X clients do.
+
+XFILESEARCHPATH and XUSERFILESEARCHPATH should be a list of file names
+separated by colons; XAPPLRESDIR should be a list of directory names
+separated by colons.
+
+Emacs searches for X resources
+  + specified on the command line, with the `-xrm RESOURCESTRING'
+    option,
+  + then in the value of the XENVIRONMENT environment variable,
+    - or if that is unset, in the file named ~/.Xdefaults-HOSTNAME if it exists
+      (where HOSTNAME is the hostname of the machine Emacs is running on),
+  + then in the screen-specific and server-wide resource properties
+    provided by the server,
+    - or if those properties are unset, in the file named ~/.Xdefaults
+      if it exists,
+  + then in the files listed in XUSERFILESEARCHPATH,
+    - or in files named LANG/Emacs in directories listed in XAPPLRESDIR
+      (where LANG is the value of the LANG environment variable), if
+      the LANG environment variable is set,
+    - or in files named Emacs in the directories listed in XAPPLRESDIR
+    - or in ~/LANG/Emacs (if the LANG environment variable is set),
+    - or in ~/Emacs,
+  + then in the files listed in XFILESEARCHPATH.
+
+The paths in the variables XFILESEARCHPATH, XUSERFILESEARCHPATH, and
+XAPPLRESDIR may contain %-escapes (like the control strings passed to
+the Emacs lisp `format' function or C printf function), which Emacs expands.
+
+%N is replaced by the string "Emacs" wherever it occurs.
+%T is replaced by "app-defaults" wherever it occurs.
+%S is replaced by the empty string wherever it occurs.
+%L and %l are replaced by the value of the LANG environment variable; if LANG
+   is not set, Emacs does not use that directory or file name at all.
+%C is replaced by the value of the resource named "customization"
+   (class "Customization"), as retrieved from the server's resource
+   properties or the user's ~/.Xdefaults file, or the empty string if
+   that resource doesn't exist.
+
+So, for example,
+  if XFILESEARCHPATH is set to the value
+    "/usr/lib/X11/%L/%T/%N%C:/usr/lib/X11/%T/%N%C:/usr/lib/X11/%T/%N",
+  and the LANG environment variable is set to
+    "english",
+  and the customization resource is the string
+    "-color",
+then, in the last step of the process described above, Emacs checks
+for resources in the first of the following files that is present and
+readable:
+	/usr/lib/X11/english/app-defaults/Emacs-color
+	/usr/lib/X11/app-defaults/Emacs-color
+	/usr/lib/X11/app-defaults/Emacs
+If the LANG environment variable is not set, then Emacs never uses the
+first element of the path, "/usr/lib/X11/%L/%T/%N%C", because it
+contains the %L escape.
+
+If XFILESEARCHPATH is unset, Emacs uses the default value
+"/usr/lib/X11/%L/app-defaults/Emacs%C:\
+/usr/lib/X11/app-defaults/Emacs%C:\
+/usr/lib/X11/%L/app-defaults/Emacs:\
+/usr/lib/X11/app-defaults/Emacs"
+
+This feature was added for consistency with other X applications.
+
+** The new function `text-property-any' scans the region of text from
+START to END to see if any character's property PROP is `eq' to
+VALUE.  If so, it returns the position of the first such character.
+Otherwise, it returns nil.
+
+The optional fifth argument, OBJECT, specifies the string or buffer to
+be examined.
+
+** The new function `text-property-not-all' scans the region of text from
+START to END to see if any character's property PROP is not `eq' to
+VALUE.  If so, it returns the position of the first such character.
+Otherwise, it returns nil.
+
+The optional fifth argument, OBJECT, specifies the string or buffer to
+be examined.
+
+** The function `delete-windows-on' now takes an optional second
+argument FRAME, which specifies which frames it should affect.
+  + If FRAME is nil or omitted, then `delete-windows-on' deletes windows
+    showing BUFFER (its first argument) on all frames.
+  + If FRAME is t, then `delete-windows-on' only deletes windows on the
+    selected frame; other frames are unaffected.
+  + If FRAME is a frame, then `delete-windows-on' only deletes windows on
+    the given frame; other frames are unaffected.
+
+
+
+* Changes in version 19.16.
+
+** When dragging the mouse to select a region, Emacs now highlights the
+region as you drag (if Transient Mark mode is enabled).  If you
+continue the drag beyond the boundaries of the window, Emacs scrolls
+the window at a steady rate until you either move the mouse back into
+the window or release the button.
+
+** RET now exits `query-replace' and `query-replace-regexp'; this makes it
+more consistent with the incremental search facility, which uses RET
+to end the search.
+
+** In C mode, C-c C-u now runs c-up-conditional.
+C-c C-n and C-c C-p now run new commands that move forward
+and back over balanced sets of C conditionals (c-forward-conditional
+and c-backward-conditional).
+
+** The Edit entry in the menu bar has a new alternative:
+"Choose Next Paste".  It gives you a menu showing the various
+strings in the kill ring; click on one to select it as the text
+to be yanked ("pasted") the next time you yank.
+
+** If you enable Transient Mark mode and set `mark-even-if-inactive' to
+non-nil, then the region is highlighted in a transient fashion just as
+normally in Transient Mark mode, but the mark really remains active
+all the time; commands that use the region can be used even if the
+region highlighting turns off.
+
+** If you type C-h after a prefix key, it displays the bindings
+that start with that prefix.
+
+** The VC package now searches for version control commands in the
+directories named by the variable `vc-path'; its value should be a
+list of strings.
+
+** If you are visiting a file that has locks registered under RCS,
+VC now displays each lock's owner and version number in the mode line
+after the string `RCS'.  If there are no locks, VC displays the head
+version number.
+
+** When using X, if you load the `paren' library, Emacs automatically
+underlines or highlights the matching paren whenever point is
+next to the outside of a paren.  When point is before an open-paren,
+this shows the matching close; when point is after a close-paren,
+this shows the matching open.
+
+** The new function `define-key-after' is like `define-key',
+but takes an extra argument AFTER.  It places the newly defined
+binding after the binding for the event AFTER.
+
+** `accessible-keymaps' now takes an optional second argument, PREFIX.
+If PREFIX is non-nil, it means the value should include only maps for
+keys that start with PREFIX.
+
+`describe-bindings' also accepts an optional argument PREFIX which
+means to describe only the keys that start with PREFIX.
+
+** The variable `prefix-help-command' hold a command to run to display help
+whenever the character `help-char' follows a prefix key and does not have
+a key binding in that context.
+
+** Emacs now detects double- and triple-mouse clicks.  A single mouse
+click produces a pair events of the form:
+	(down-mouse-N POSITION)
+	(mouse-N POSITION)
+Clicking the same mouse button again, soon thereafter and at the same
+location, produces another pair of events of the form:
+	(down-mouse-N POSITION)
+	(double-mouse-N POSITION 2)
+Another click will produce an event pair of the form:
+	(down-mouse-N POSITION)
+	(triple-mouse-N POSITION 3)
+All the POSITIONs in such a sequence would be identical, except for
+their timestamps.
+
+To count as double- and triple-clicks, mouse clicks must be at the
+same location as the first click, and the number of milliseconds
+between the first release and the second must be less than the value
+of the lisp variable `double-click-time'.  Setting `double-click-time'
+to nil disables multi-click detection.  Setting it to t removes the
+time limit; Emacs then detects multi-clicks by position only.
+
+If `read-key-sequence' finds no binding for a double-click event, but
+the corresponding single-click event would be bound,
+`read-key-sequence' demotes it to a single-click.  Similarly, it
+demotes unbound triple-clicks to double- or single-clicks.  This means
+you don't have to distinguish between single- and multi-clicks if you
+don't want to.
+
+Emacs reports all clicks after the third as `triple-mouse-N' clicks,
+but increments the click count after POSITION.  For example, a fourth
+click, soon after the third and at the same location, produces a pair
+of events of the form:
+	(down-mouse-N POSITION)
+	(triple-mouse-N POSITION 4)
+
+** The way Emacs reports positions of mouse events has changed
+slightly.  If a mouse event includes a position list of the form:
+	(WINDOW (PLACE-SYMBOL) (COLUMN . ROW) TIMESTAMP)
+this denotes exactly the same position as the list:
+	(WINDOW  PLACE-SYMBOL  (COLUMN . ROW) TIMESTAMP)
+That is, the event occurred over a non-textual area of the frame,
+specified by PLACE-SYMBOL, a symbol like `mode-line' or
+`vertical-scroll-bar'.
+
+Enclosing PLACE-SYMBOL in a singleton list does not change the
+position denoted, but the `read-key-sequence' function uses the
+presence or absence of the singleton list to tell whether or not it
+should prefix the event with its place symbol.
+
+Normally, `read-key-sequence' prefixes mouse events occurring over
+non-textual areas with their PLACE-SYMBOLs, to select the sub-keymap
+appropriate for the event; for example, clicking on the mode line
+produces a sequence like
+	[mode-line (mouse-1 POSN)]
+However, if lisp code elects to unread the resulting key sequence by
+placing it in the `unread-command-events' variable, it is important
+that `read-key-sequence' not insert the prefix symbol again; that
+would produce a malformed key sequence like
+	[mode-line mode-line (mouse-1 POSN)]
+For this reason, `read-key-sequence' encloses the event's PLACE-SYMBOL
+in a singleton list when it first inserts the prefix, but doesn't
+insert the prefix when processing events whose PLACE-SYMBOLs are
+already thus enclosed.
+
+
+
+* Changes in version 19.15.
+
+** `make-frame-visible', which uniconified frames, is now a command,
+and thus may be bound to a key.  This makes sense because frames
+respond to user input while iconified.
+
+** You can now use Meta mouse clicks to set and use the "secondary
+selection".  You can drag M-Mouse-1 across the region you want to
+select.  Or you can press M-Mouse-1 at one end and M-Mouse-3 at the
+other (this also copies the text to the kill ring).  Repeating M-Mouse-3
+again at the same place kills that text.
+
+M-Mouse-2 kills the secondary selection.
+
+Setting the secondary selection does not move point or the mark.  It
+is possible to make a secondary selection that does not all fit on the
+screen, by using M-Mouse-1 at one end, scrolling, then using M-Mouse-3
+at the other end.
+
+Emacs has only one secondary selection at any time.  Starting to set
+a new one cancels any previous one.  The secondary selection displays
+using a face named `secondary-selection'.
+
+** There's a new way to request use of Supercite (sc.el).  Do this:
+
+    (add-hook 'mail-citation-hook 'sc-cite-original)
+
+Currently this works with Rmail.  In the future, other Emacs based
+mail-readers should be modified to understand this hook also.
+In the mean time, you should keep doing what you have done in the past
+for those other mail readers.
+
+** When a regular expression contains `\(...\)' inside a repetition
+operator such as `*' or `+', and you ask about the range that was matched
+using `match-beginning' and `match-end', the range you get corresponds
+to the *last* repetition *only*.  In Emacs 18, you would get a range
+corresponding to all the repetitions.
+
+If you want to get a range corresponding to all the repetitions,
+put a `\(...\)' grouping *outside* the repetition operator.  This
+is the syntax that corresponds logically to the desired result, and
+it works the same in Emacs 18 and Emacs 19.
+
+(This change actually took place earlier, but we didn't know about it
+and thus didn't document it.)
+
+
+
+* Changes in version 19.14.
+
+** To modify read-only text, bind the variable `inhibit-read-only'
+to a non-nil value.  If the value is t, then all reasons that might
+make text read-only are inhibited (including `read-only' text properties).
+If the value is a list, then a `read-only' property is inhibited
+if it is `memq' in the list.
+
+** If you call `get-buffer-window' passing t as its second argument, it
+will only search for windows on visible frames.  Previously, passing t
+as the secord argument caused `get-buffer-window' to search all
+frames, visible or not.
+
+** If you call `other-buffer' with a nil or omitted second argument, it
+will ignore buffers displayed windows on any visible frame, not just
+the selected frame.
+
+** You can specify a window or a frame for C-x # to use when
+selects a server buffer.  Set the variable server-window
+to the window or frame that you want.
+
+** The command M-( now inserts spaces outside the open-parentheses in
+some cases--depending on the syntax classes of the surrounding
+characters.  If the variable `parens-dont-require-spaces' is non-nil,
+it inhibits insertion of these spaces.
+
+** The GUD package now supports the debugger known as xdb on HP/UX
+systems.  Use M-x xdb.  The variable `gud-xdb-directories' lets you
+specify a list of directories to search for source code.
+
+** If you are using the mailabbrev package, you should note that its
+function for defining an alias is now called `define-mail-abbrev'.
+This package no longer contains a definition for `define-mail-alias';
+that name is used only in mailaliases.
+
+** Inserted characters now inherit the properties of the text before
+them, by default, rather than those of the following text.
+
+** The function `insert-file-contents' now takes optional arguments BEG
+and END that specify which part of the file to insert.  BEG defaults to
+0 (the beginning of the file), and END defaults to the end of the file.
+
+If you specify BEG or END, then the argument VISIT must be nil.
+
+
+
+* Changes in version 19.13.
+
+** Magic file names can now handle the `load' operation.
+
+** Bibtex mode now sets up special entries in the menu bar.
+
+** The incremental search commands C-w and C-y, which copy text from
+the buffer into the search string, now convert it to lower case
+if you are in a case-insensitive search.  This is to avoid making
+the search a case-sensitive one.
+
+** GNUS now knows your time zone automatically if Emacs does.
+
+** Hide-ifdef mode no longer defines keys of the form
+C-c LETTER, since those keys are reserved for users.
+Those commands have been moved to C-c M-LETTER.
+We may move them again for greater consistency with other modes.
+
+
+
+* Changes in version 19.12.
+
+** You can now make many of the sort commands ignore case by setting
+`sort-fold-case' to a non-nil value.
+
+
+
+* Changes in version 19.11.
+
+** Supercite is installed.
+
+** `write-file-hooks' functions that return non-nil are responsible
+for making a backup file if you want that to be done.
+To do so, execute the following code:
+
+   (or buffer-backed-up (backup-buffer))
+
+You might wish to save the file modes value returned by
+`backup-buffer' and use that to set the mode bits of the file
+that you write.  This is what `basic-save-buffer' does when
+it writes a file in the usual way.
+
+(This is not actually new, but wasn't documented before.)
+
+
+
+* Changes in version 19.10.
+
+** The command `repeat-complex-command' is now on C-x ESC ESC.
+It used to be bound to C-x ESC.
+
+The reason for this change is to make function keys work after C-x.
+
+** The variable `highlight-nonselected-windows' now controls whether
+the region is highlighted in windows other than the selected window
+(in Transient Mark mode only, of course, and currently only when
+using X).
+
+
+
+* Changes in version 19.8.
+
+** It is now simpler to tell Emacs to display accented characters under
+X windows.  M-x standard-display-european toggles the display of
+buffer text according to the ISO Latin-1 standard.  With a prefix
+argument, this command enables European character display iff the
+argument is positive.
+
+** The `-i' command-line argument tells Emacs to use a picture of the
+GNU gnu as its icon, instead of letting the window manager choose an
+icon for it.  This option used to insert a file into the current
+buffer; use `-insert' to do that now.
+
+** The `configure' script now supports `--prefix' and `--exec-prefix'
+options.
+
+The `--prefix=PREFIXDIR' option specifies where the installation process
+should put emacs and its data files.  This defaults to `/usr/local'.
+- Emacs (and the other utilities users run) go in PREFIXDIR/bin
+  (unless the `--exec-prefix' option says otherwise).
+- The architecture-independent files go in PREFIXDIR/lib/emacs/VERSION
+  (where VERSION is the version number of Emacs, like `19.7').
+- The architecture-dependent files go in
+  PREFIXDIR/lib/emacs/VERSION/CONFIGURATION
+  (where CONFIGURATION is the configuration name, like mips-dec-ultrix4.2),
+  unless the `--exec-prefix' option says otherwise.
+
+The `--exec-prefix=EXECDIR' option allows you to specify a separate
+portion of the directory tree for installing architecture-specific
+files, like executables and utility programs.  If specified,
+- Emacs (and the other utilities users run) go in EXECDIR/bin, and
+- The architecture-dependent files go in
+  EXECDIR/lib/emacs/VERSION/CONFIGURATION.
+EXECDIR/bin should be a directory that is normally in users' PATHs.
+
+** When running under X, the new lisp function `x-list-fonts'
+allows code to find out which fonts are available from the X server.
+The first argument PATTERN is a string, perhaps with wildcard characters;
+  the * character matches any substring, and
+  the ? character matches any single character.
+  PATTERN is case-insensitive.
+If the optional arguments FACE and FRAME are specified, then
+`x-list-fonts' returns only fonts the same size as FACE on FRAME.
+
+
+
+* Changes in version 19.
+
+** When you kill buffers, Emacs now returns memory to the operating system,
+thus reducing the size of the Emacs process.  All the space that you free
+up by killing buffers can now be reused for other buffers no matter what
+their sizes, or reused by other processes if Emacs doesn't need it.
+
+** Emacs now does garbage collection and auto saving while it is waiting
+for input, which often avoids the need to do these things while you
+are typing.
+
+The variable `auto-save-timeout' says how many seconds Emacs should
+wait, after you stop typing, before it does an auto save and a garbage
+collection.
+
+** If auto saving detects that a buffer has shrunk greatly, it refrains
+from auto saving that buffer and displays a warning.  Now it also turns
+off Auto Save mode in that buffer, so that you won't get the same
+warning again.
+
+If you reenable Auto Save mode in that buffer, Emacs will start saving
+it again with no further warnings.
+
+** A new minor mode called Line Number mode displays the current line
+number in the mode line, updating it as necessary when you move
+point.
+
+However, if the buffer is very large (larger than the value of
+`line-number-display-limit'), then the line number doesn't appear.
+This is because computing the line number can be painfully slow if the
+buffer is very large.
+
+** You can quit while Emacs is waiting to read or write files.
+
+** The arrow keys now have default bindings to move in the appropriate
+directions.
+
+** You can suppress next-line's habit of inserting a newline when
+called at the end of a buffer by setting next-line-add-newlines to nil
+(it defaults to t).
+
+** You can now get back recent minibuffer inputs conveniently.  While
+in the minibuffer, type M-p to fetch the next earlier minibuffer
+input, and use M-n to fetch the next later input.
+
+There are also commands to search forward or backward through the
+history for history elements that match a regular expression.  M-r
+searches older elements in the history, while M-s searches newer
+elements.  By special dispensation, these commands can always use the
+minibuffer to read their arguments even though you are already in the
+minibuffer when you issue them.
+
+The history feature is available for all uses of the minibuffer, but
+there are separate history lists for different kinds of input.  For
+example, there is a list for file names, used by all the commands that
+read file names.  There is a list for arguments of commands like
+`query-replace'.  There are also very specific history lists, such
+as the one that `compile' uses for compilation commands.
+
+** You can now display text in a mixture of fonts and colors, using the
+"face" feature, together with the overlay and text property features.
+See the Emacs Lisp manual for details.  The Emacs Users Manual describes
+how to change the colors and font of standard predefined faces.
+
+** You can refer to files on other machines using special file name syntax:
+
+/HOST:FILENAME
+/USER@HOST:FILENAME
+
+When you do this, Emacs uses the FTP program to read and write files on
+the specified host.  It logs in through FTP using your user name or the
+name USER.  It may ask you for a password from time to time; this
+is used for logging in on HOST.
+
+** Some C-x key bindings have been moved onto new prefix keys.
+
+C-x r is a prefix for registers and rectangles.
+C-x n is a prefix for narrowing.
+C-x a is a prefix for abbrev commands.
+
+C-x r C-SPC
+C-x r SPC	point-to-register    (Was C-x /)
+C-x r j		jump-to-register     (Was C-x j)
+C-x r s		copy-to-register     (Was C-x x)
+C-x r i		insert-register      (Was C-x g)
+C-x r r		copy-rectangle-to-register  (Was C-x r)
+C-x r k		kill-rectangle
+C-x r y		yank-rectangle
+C-x r o		open-rectangle
+C-x r f		frame-configuration-to-register
+		  (This saves the state of all windows in all frames.)
+C-x r w		window-configuration-to-register
+		  (This saves the state of all windows in the selected  frame.)
+
+(Use C-x r j to restore a configuration saved with C-x r f or C-x r w.)
+
+C-x n n		narrow-to-region	(Was C-x n)
+C-x n p		narrow-to-page		(Was C-x p)
+C-x n w		widen			(Was C-x w)
+
+C-x a l		add-mode-abbrev		(Was C-x C-a)
+C-x a g		add-global-abbrev	(Was C-x +)
+C-x a i l	inverse-add-mode-abbrev	(Was C-x C-h)
+C-x a i g	inverse-add-global-abbrev  (Was C-x -)
+C-x a e		expand-abbrev		(Was C-x ')
+
+(The old key bindings C-x /, C-x j, C-x x and C-x g
+have not yet been removed.)
+
+** You can put a file name in a register to be able to visit the file
+quickly.  Do this:
+
+   (set-register ?CHAR '(file . NAME))
+
+where NAME is the file name as a string.  Then C-x r j CHAR finds that
+file.
+
+This is useful for files that you need to visit frequently,
+but that you don't want to keep in buffers all the time.
+
+** The keys M-g (fill-region) and C-x a (append-to-buffer)
+have been eliminated.
+
+** The new command `string-rectangle' inserts a specified string on
+each line of the region-rectangle.
+
+** C-x 4 r is now `find-file-read-only-other-window'.
+
+** C-x 4 C-o is now `display-buffer', which displays a specified buffer
+in another window without selecting it.
+
+** Picture mode has been substantially improved.  The picture editing commands
+now arrange for automatic horizontal scrolling to keep point visible
+when editing a wide buffer with truncate-lines on.  Picture-mode
+initialization now does a better job of rebinding standard commands;
+it finds not just their normal keybindings, but any function keys
+attached to them.
+
+** If you enable Transient Mark mode, then the mark becomes "inactive"
+after every command that modifies the buffer.  While the mark is
+active, the region is highlighted (under X, at least).  Most commands
+that use the mark give an error if the mark is inactive, but you can
+use C-x C-x to make it active again.  This feature is also sometimes
+known as "Zmacs mode".
+
+** Outline mode is now available as a minor mode.  This minor mode can
+combine with any major mode; it substitutes the C-c commands of
+Outline mode for those of the major mode.  Use M-x outline-minor-mode
+to enable and disable the new mode.
+
+M-x outline-mode is unchanged; it still switches to Outline mode as a
+major mode.
+
+** The default setting of `version-control' comes from the environment
+variable VERSION_CONTROL.
+
+** The user option for controlling whether files can set local
+variables is now called `enable-local-variables'.  A value of t means
+local-variables lists are obeyed; nil means they are ignored; anything
+else means query the user.
+
+The user option for controlling use of the `eval' local variable is
+now called is `enable-local-eval'; its values are interpreted like
+those of `enable-local-variables'.
+
+** X Window System changes:
+
+C-x 5 C-f and C-x 5 b switch to a specified file or buffer in a new
+frame.  Likewise, C-x 5 m starts outgoing mail in another frame, and
+C-x 5 . finds a tag in another frame.
+
+When you are using X, C-z now iconifies the selected frame.
+
+Emacs can now exchange text with other X applications.  Killing or
+copying text in Emacs now makes that text available for pasting into
+other X applications.  The Emacs yanking commands now insert the
+latest selection set by other applications, and add the text to the
+kill ring.  The Emacs commands for selecting and inserting text with
+the mouse now use the kill ring in the same way the keyboard killing
+and yanking commands do.
+
+The option to specify the title for the initial frame is now `-name NAME'.
+There is currently no way to specify an icon title; perhaps we will add
+one in the future.
+
+** Undoing a deletion now puts point back where it was before the
+deletion.
+
+** The variables that control how much undo information to save have
+been renamed to `undo-limit' and `undo-strong-limit'.  They used to be
+called `undo-threshold' and `undo-high-threshold'.
+
+** You can now use kill commands in read-only buffers.  They don't
+actually change the buffer, and Emacs will beep and warn you that the
+buffer is read-only, but they do copy the text you tried to kill into
+the kill ring, so you can yank it into other buffers.
+
+** C-o inserts the fill-prefix on the newly created line.  The command
+M-^ deletes the prefix (if it occurs) after the newline that it
+deletes.
+
+** C-M-l now runs the command `reposition-window'.  It scrolls the
+window heuristically in a way designed to get useful information onto
+the screen.
+
+** C-M-r is now reverse incremental regexp search.
+
+** M-z now kills through the target character.  In version 18, it
+killed up to but not including the target character.
+
+** M-! now runs the specified shell command asynchronously if it
+ends in `&' (just as the shell does).
+
+** C-h C-f and C-h C-k are new help commands that display the Info
+node for a given Emacs function name or key sequence, respectively.
+
+** The C-h p command system lets you find Emacs Lisp packages by
+topic keywords.  Here is a partial list of package categories:
+
+abbrev	      abbreviation handling, typing shortcuts, macros
+bib	      code related to the bib bibliography processor
+c	      C and C++ language support
+calendar      calendar and time management support
+comm	      communications, networking, remote access to files
+docs	      support for Emacs documentation
+emulations    emulations of other editors
+extensions    Emacs Lisp language extensions
+games	      games, jokes and amusements
+hardware      support for interfacing with exotic hardware
+help	      support for on-line help systems
+i14n	      internationalization and alternate character-set support
+internal      code for Emacs internals, build process, defaults
+languages     specialized modes for editing programming languages
+lisp	      Lisp support, including Emacs Lisp
+local	      code local to your site
+maint	      maintenance aids for the Emacs development group
+mail	      modes for electronic-mail handling
+news	      support for netnews reading and posting
+processes     process, subshell, compilation, and job control support
+terminals     support for terminal types
+tex	      code related to the TeX formatter
+tools	      programming tools
+unix	      front-ends/assistants for, or emulators of, UNIX features
+vms	      support code for vms
+wp	      word processing
+
+More will be added soon.
+
+** The command to split a window into two side-by-side windows is now
+C-x 3.  It was C-x 5.
+
+** M-. (find-tag) no longer has any effect on what M-, will do
+subsequently.  You can no longer use M-, to find the next similar tag;
+you must use M-. with a prefix argument, instead.
+
+The motive for this change is so that you can more reliably use
+M-, to resume a suspended `tags-search' or `tags-query-replace'.
+
+** C-x s (`save-some-buffers') now gives you more options when it asks
+whether to save a particular buffer.  In addition to `y' or `n', you
+can answer `!' to save all the remaining buffers, `.' to save this
+buffer but not save any others, ESC to stop saving and exit the
+command, and C-h to get help.  These options are analogous to those
+of `query-replace'.
+
+** M-x make-symbolic-link does not expand its first argument.
+This lets you make a link with a target that is a relative file name.
+
+** M-x add-change-log-entry and C-x 4 a now automatically insert the
+name of the file and often the name of the function that you changed.
+They also handle grouping of entries.
+
+There is now a special major mode for editing ChangeLog files.  It
+makes filling work conveniently.  Each bunch of grouped entries is one
+paragraph, and each collection of entries from one person on one day
+is considered a page.
+
+** The `comment-region' command adds comment delimiters to the lines that
+start in the region, thus commenting them out.  With a negative argument,
+it deletes comment delimiters from the lines in the region--this cancels
+the effect of `comment-region' without an argument.
+
+With a positive argument, `comment-region' adds comment delimiters
+but duplicates the last character of the comment start sequence as many
+times as the argument specifies.  This is a way of calling attention to
+the comment.  In Lisp, you should use an argument at least two, because
+the indentation convention for single semicolon comments does not leave
+them at the beginning of a line.
+
+** If `split-window-keep-point' is non-nil, C-x 2 tries to avoid
+shifting any text on the screen by putting point in whichever window
+happens to contain the screen line the cursor is already on.
+The default is that `split-window-keep-point' is non-nil on slow
+terminals.
+
+** M-x super-apropos is like M-x apropos except that it searches both
+Lisp symbol names and documentation strings for matches.  It describes
+every symbol that has a match in either the symbol's name or its
+documentation.
+
+Both M-x apropos and M-x super-apropos take an optional second
+argument DO-ALL which controls the more expensive part of the job.
+This includes looking up and printing the key bindings of all
+commands.  It also includes checking documentation strings in
+super-apropos.  DO-ALL is nil by default; use a prefix arg to make it
+non-nil.
+
+** M-x revert-buffer no longer offers to revert from a recent auto-save
+file unless you give it a prefix argument.  Otherwise it always
+reverts from the real file regardless of whether there has been an
+auto-save since thenm.  (Reverting from the auto-save file is no longer
+very useful now that the undo capacity is larger.)
+
+** M-x recover-file no longer turns off Auto Save mode when it reads
+the last Auto Save file.
+
+** M-x rename-buffer, if you give it a prefix argument,
+avoids errors by modifying the new name to make it unique.
+
+** M-x rename-uniquely renames the current buffer to a similar name
+with a numeric suffix added to make it both different and unique.
+
+One use of this command is for creating multiple shell buffers.
+If you rename your shell buffer, and then do M-x shell again, it
+makes a new shell buffer.  This method is also good for mail buffers,
+compilation buffers, and any Emacs feature which creates a special
+buffer with a particular name.
+
+** M-x compare-windows with a prefix argument ignores changes in whitespace.
+If `compare-ignore-case' is non-nil, then differences in case are also
+ignored.
+
+** `backward-paragraph' is now bound to M-{ by default, and `forward-paragraph'
+to M-}.  Originally, these commands were bound to M-[ and M-], but they were
+running into conflicts with the use of function keys.  On many terminals,
+function keys send a sequence beginning ESC-[, so many users have defined this
+as a prefix key.
+
+** C-x C-u (upcase-region) and C-x C-l (downcase-region) are now disabled by
+default; these commands seem to be often hit by accident, and can be
+quite destructive if their effects are not noticed immediately.
+
+** The function `erase-buffer' is now interactive, but disabled by default.
+
+** When visiting a new file, Emacs attempts to abbreviate the file's
+path using the symlinks listed in `directory-abbrev-alist'.
+
+** When you visit the same file in under two names that translate into
+the same name once symbolic links are handled, Emacs warns you that
+you have two buffers for the same file.
+
+** If you wish to avoid visiting the same file in two buffers under
+different names, set the variable `find-file-existing-other-name'
+non-nil.  Then `find-file' uses the existing buffer visiting the file,
+no matter which of the file's names you specify.
+
+** If you set `find-file-visit-truename' non-nil, then the file name
+recorded for a buffer is the file's truename (in which all symbolic
+links have been removed), rather than the name you specify.  Setting
+`find-file-visit-truename' also implies the effect of
+`find-file-existing-other-name'.
+
+** C-x C-v now inserts the entire current file name in the minibuffer.
+This is convenient if you made a small mistake in typing it.  Point
+goes after the last slash, before the last file name component, so if
+you want to replace it entirely, you can use C-k right away to delete
+it.
+
+** Commands such as C-M-f in Lisp mode now ignore parentheses within comments.
+
+** C-x q now uses ESC to terminate all iterations of the keyboard
+macro, rather than C-d as before.
+
+** Use the command `setenv' to set an individual environment variable
+for Emacs subprocesses.  Specify a variable name and a value, both as
+strings.  This command applies only to subprocesses yet to be
+started.
+
+** Use `rot13-other-window' to examine a buffer with rot13.
+
+This command does not change the text in the buffer.  Instead, it
+creates a window with a funny display table that applies the code when
+displaying the text.
+
+** The command `M-x version' now prints the current Emacs version; The
+`version' command is an alias for the `emacs-version' command.
+
+** More complex changes in existing packages.
+
+*** `fill-nonuniform-paragraphs' is a new command, much like
+`fill-individual-paragraphs' except that only separator lines separate
+paragraphs.  Since this means that the lines of one paragraph may have
+different amounts of indentation, the fill prefix used is the smallest
+amount of indentation of any of the lines of the paragraph.
+
+*** Filling is now partially controlled by a new minor mode, Adaptive
+Fill mode.  When this mode is enabled (and it is enabled by default),
+if you use M-x fill-region-as-paragraph on an indented paragraph and
+you don't have a fill prefix, it uses the indentation of the second
+line of the paragraph as the fill prefix.
+
+Adaptive Fill mode doesn't have much effect on M-q in most major
+modes, because an indented line will probably count as a paragraph
+starter and thus each line of an indented paragraph will be considered
+a paragraph of its own.
+
+*** M-q in C mode now runs `c-fill-paragraph', which is designed
+for filling C comments.  (We assume you don't want to fill
+the code in a C program.)
+
+*** M-$ now runs the Ispell program instead of the Unix spell program.
+
+M-$ starts an Ispell process the first time you use it.  But the process
+stays alive, so that subsequent uses of M-$ run very fast.
+If you want to get rid of the process, use M-x kill-ispell.
+
+To check the entire current buffer, use M-x ispell-buffer.
+Use M-x ispell-region to check just the current region.
+
+Ispell commands often involve interactive replacement of words.
+You can interrupt the interactive replacement with C-g.
+You can restart it again afterward with C-u M-$.
+
+During interactive replacement, you can type the following characters:
+
+a	Accept this word this time.
+DIGIT	Replace the word (this time) with one of the displayed near-misses.
+	The digit you use says which near-miss to use.
+i	Insert this word in your private dictionary
+	  so that Ispell will consider it correct it from now on.
+r	Replace the word this time with a string typed by you.
+
+When the Ispell process starts, it reads your private dictionary which
+is the file `~/ispell.words'.  If you "insert" words with the `i' command,
+these words are added to that file, but not right away--only at the end
+of the interactive replacement process.
+
+Use M-x reload-ispell to reload your private dictionary from
+`~/ispell.words' if you edit it outside of Ispell.
+
+** Changes in existing modes.
+
+*** gdb-mode has been replaced by gud-mode.
+
+The package gud.el (Grand Unified Debugger) replaces gdb.el in Emacs
+19.  It provides a gdb.el-like interface to any of three debuggers;
+gdb itself, the sdb debugger supported on some Unix systems, or the
+dbx debugger on Berkeley systems.
+
+   You start it up with one of the commands M-x gdb, M-x sdb, or
+M-x dbx.  Each entry point finishes by executing a hook; gdb-mode-hook,
+sdb-mode-hook or dbx-mode-hook respectively.
+
+These bindings have changed:
+C-x C-a >	gud-down			(was M-d)
+C-x C-a <	gud-up				(was M-u)
+C-x C-a C-r	gud-cont			(was M-c)
+C-x C-a C-n	gud-next			(was M-n)
+C-x C-a C-s	gud-step			(was M-s)
+C-x C-a C-i 	gud-stepi			(was M-i)
+C-x C-a C-l	gud-recenter			(was C-l)
+C-d		comint-delchar-or-maybe-eof	(was C-c C-d)
+
+These bindings have been removed:
+C-c C-r		(was comint-show-output; now gud-cont)
+
+Since GUD mode uses comint, it uses comint's input history commands,
+superseding C-c C-y (copy-last-shell-input):
+  M-p		comint-next-input
+  M-n		comint-previous-input
+  M-r		comint-previous-similar-input
+  M-s		comint-next-similar-input
+  M-C-r		comint-previous-input-matching
+
+The C-x C-a bindings are also active in source files.
+
+*** The old TeX mode bindings of M-{ and M-} have been moved to C-c {
+and C-c }.  (These commands are `up-list' and `tex-insert-braces';
+they are the TeX equivalents of M-( and M-).)  This is because M-{
+and M-} are now globally defined commands.
+
+*** Changes in Mail mode.
+
+`%' is now a word-separator character in Mail mode.
+
+`mail-signature', if non-nil, tells M-x mail to insert your
+`.signature' file automatically.  If you don't want your signature in
+a particular message, just delete it before you send the message.
+
+You can specify the text to insert at the beginning of each line when
+you use C-c C-y to yank the message you are replying to.  Set
+`mail-yank-prefix' to the desired string.  A value of `nil' (the
+default) means to use indentation, as in Emacs 18.  If you use just
+C-u as the prefix argument to C-c C-y, then it does not insert
+anything at the beginning of the lines, regardless of the value of
+`mail-yank-prefix'.
+
+If you like, you can expand mail aliases as abbrevs, as soon as you
+type them in.  To enable this feature, execute the following:
+
+    (add-hook 'mail-setup-hook 'mail-abbrevs-setup)
+
+This can go in your .emacs file.
+
+Word abbrevs don't expand unless you insert a word-separator character
+afterward.  Any mail aliases that you didn't expand at insertion time
+are expanded subsequently when you send the message.
+
+*** Changes in Rmail.
+
+Rmail by default gets new mail only from the system inbox file,
+not from `~/mbox'.
+
+In Rmail, you can retry sending a message that failed
+by typing `M-m' on the failure message.
+
+By contrast, another new command M-x rmail-resend is used for
+forwarding a message and marking it as "resent from" you
+with header fields "Resent-From:" and "Resent-To:".
+
+`e' is now the command to edit a message.
+To expunge, type `x'.  We know this will surprise people
+some of the time, but the surprise will not be disastrous--if
+you type `e' meaning to expunge, just turn off editing with C-c C-c
+and then type `x'.
+
+Another new Rmail command is `<', which moves to the first message.
+This is for symmetry with `>'.
+
+Use the `b' command to bury the Rmail buffer and its summary buffer,
+if any, removing both of them from display on the screen.
+
+The variable `rmail-output-file-alist' now controls the default
+for the file to output a message to.
+
+In the Rmail summary buffer, all cursor motion commands select
+the message you move to.  It's really neat when you use
+incremental search.
+
+You can now issue most Rmail commands from an Rmail summary buffer.
+The commands do the same thing in that buffer that they do in the
+Rmail buffer.  They apply to the message that is selected in the Rmail
+buffer, which is always the one described by the current summary
+line.
+
+Conversely, motion and deletion commands in the Rmail buffer also
+update the summary buffer.  If you set the variable
+`rmail-redisplay-summary' to a non-nil value, then they bring the
+summary buffer (if one exists) back onto the screen.
+
+C-M-t is a new command to make a summary by topic.  It uses regexp
+matching against just the subjects of the messages to decide which
+messages to show in the summary.
+
+You can easily convert an Rmail file to system mailbox format with the
+command `unrmail'.  This command reads two arguments, the name of
+the Rmail file to convert, and the name of the new mailbox file.
+(This command does not change the Rmail file itself.)
+
+Rmail now handles Content Length fields in messages.
+
+*** `mail-extract-address-components' unpacks mail addresses.
+It takes an address as a string (the contents of the From field, for
+example) and returns a list of the form (FULL-NAME
+CANONICAL-ADDRESS).
+
+*** Changes in C mode and C-related commands.
+
+**** M-x c-up-conditional
+
+In C mode, `c-up-conditional' moves back to the containing
+preprocessor conditional, setting the mark where point was
+previously.
+
+A prefix argument acts as a repeat count.  With a negative argument,
+this command moves forward to the end of the containing preprocessor
+conditional.  When going backwards, `#elif' acts like `#else' followed
+by `#if'.  When going forwards, `#elif' is ignored.
+
+**** In C mode, M-a and M-e are now defined as
+`c-beginning-of-statement' and `c-end-of-statement'.
+
+**** In C mode, M-x c-backslash-region is a new command to insert or
+align `\' characters at the ends of the lines of the region, except
+for the last such line.  This is useful after writing or editing a C
+macro definition.
+
+If a line already ends in `\', this command adjusts the amount of
+whitespace before it.  Otherwise, it inserts a new `\'.
+
+*** New features in info.
+
+When Info looks for an Info file, it searches the directories
+in `Info-directory-list'.  This makes it easy to install the Info files
+that come with various packages.  You can specify the path with
+the environment variable INFOPATH.
+
+There are new commands in Info mode.
+
+`]' now moves forward a node, going up and down levels as needed.
+`[' is similar but moves backward.  These two commands try to traverse
+the entire Info tree, node by node.  They are the equivalent of reading
+a printed manual sequentially.
+
+`<' moves to the top node of the current Info file.
+`>' moves to the last node of the file.
+
+SPC scrolls through the current node; at the end, it advances to the
+next node in depth-first order (like `]').
+
+DEL scrolls backwards in the current node; at the end, it moves to the
+previous node in depth-first order (like `[').
+
+After a menu select, the info `up' command now restores point in the
+menu.  The combination of this and the previous two changes means that
+repeated SPC keystrokes do the right (depth-first traverse forward) thing.
+
+`i STRING RET' moves to the node associated with STRING in the index
+or indices of this manual.  If there is more than one match for
+STRING, the `i' command finds the first match.
+
+`,' finds the next match for the string in the previous `i' command
+
+If you click the middle mouse button near a cross-reference,
+menu item or node pointer while in Info, you will go to the node
+which is referenced.
+
+*** Changes in M-x compile.
+
+You can repeat any previous compilation command conveniently using the
+minibuffer history commands, while in the minibuffer entering the
+compilation command.
+
+While a compilation is going on, the string `Compiling' appears in
+the mode line.  When this string disappears, that tells you the
+compilation is finished.
+
+The buffer of compiler messages is in Compilation mode.  This mode
+provides the keys SPC and DEL to scroll by screenfuls, and M-n and M-p
+to move to the next or previous error message.  You can also use C-c
+C-c on any error message to find the corresponding source code.
+
+Emacs 19 has a more general parser for compiler messages.  For example, it
+can understand messages from lint, and from certain C compilers whose error
+message format is unusual.  Also, it only parses until it sees the error
+message you want; you never have to wait a long time to see the first
+error, no matter how big the buffer is.
+
+*** M-x diff and M-x diff-backup.
+
+This new command compares two files, displaying the differences in an
+Emacs buffer.  The options for the `diff' program come from the
+variable `diff-switches', whose value should be a string.
+
+The buffer of differences has Compilation mode as its major mode, so you
+can use C-x ` to visit successive changed locations in the two
+source files, or you can move to a particular hunk of changes and type
+C-c C-c to move to the corresponding source.  You can also use the
+other special commands of Compilation mode: SPC and DEL for
+scrolling, and M-n and M-p for cursor motion.
+
+M-x diff-backup compares a file with its most recent backup.
+If you specify the name of a backup file, `diff-backup' compares it
+with the source file that it is a backup of.
+
+*** The View commands (such as M-x view-buffer and M-x view-file) no
+longer use recursive edits; instead, they switch temporarily to a
+different major mode (View mode) specifically designed for moving
+around through a buffer without editing it.
+
+*** Changes in incremental search.
+
+**** The character to terminate an incremental search is now RET.
+This is for compatibility with the way most other arguments are read.
+
+To search for a newline in an incremental search, type LFD (also known
+as C-j).
+
+**** Incremental search now maintains a ring of previous search
+strings.  Use M-p and M-n to move through the ring to pick a search
+string to reuse.  These commands leave the selected search ring
+element in the minibuffer, where you can edit it.  Type C-s or C-r to
+finish editing and search for the chosen string.
+
+**** If you type an upper case letter in incremental search, that turns
+off case-folding, so that you get a case-sensitive search.
+
+**** If you type a space during regexp incremental search, it matches
+any sequence of whitespace characters.  If you want to match just a space,
+type C-q SPC.
+
+**** Incremental search is now implemented as a major mode.  When you
+type C-s, it switches temporarily to a different keymap which defines
+each key to do what it ought to do for incremental search.  This has
+next to no effect on the user-visible behavior of searching, but makes
+it easier to customize that behavior.
+
+Emacs 19 eliminates the old variables `search-...-char' that used to
+be the way to specify the characters to use for various special
+purposes in incremental search.  Instead, you can define the meaning
+of a character in incremental search by modifying `isearch-mode-map'.
+
+*** New commands in Buffer Menu mode.
+
+The command C-o now displays the current line's buffer in another
+window but does not select it.  This is like the existing command `o'
+which selects the current line's buffer in another window.
+
+The command % toggles the read-only flag of the current line's buffer.
+
+The way to switch to a set of several buffers, including those marked
+with m, is now v.  The q command simply quits, replacing the buffer
+menu buffer with the buffer that was displayed previously.
+
+** New major modes and packages.
+
+*** The news reader GNUS is now installed.
+
+*** There is a new interface for version control systems, called VC.
+It works with both RCS and SCCS; in fact, you don't really have to
+know which one of them is being used, because it automatically deals
+with either one.
+
+Most of the time, the only command you have to know about is C-x C-q.
+This command normally toggles the read-only flag of the current
+buffer.  If the buffer is visiting a file that is maintained with a
+version control system, the command still toggles read-only, but does
+so by checking the file in or checking it out.
+
+When you check a file in, VC asks you for a log entry by popping up a
+buffer.  Edit the entry there, then type C-c C-c when it is ready.
+That's when the actual checkin happens.  If you change your mind about
+the checkin, simply switch buffers and don't ever go back to the log
+buffer.
+
+To start using version control for a file, use the command C-x v v.
+This works like C-x C-q (performing the next logical version-control
+operation needed to change the file's writability) but it will also
+perform initial checkin on an unregistered file.
+
+By default, VC uses RCS if RCS is installed on your machine;
+otherwise, SCCS.  If you want to make the choice explicitly, you can do
+it by setting `vc-default-back-end' to the symbol `RCS' or the symbol
+`SCCS'.
+
+You can tell when a file you visit is maintained with version control
+because either `RCS' or `SCCS' appears in the mode line.
+
+*** A new Calendar mode has been added, the work of Edward M. Reingold.
+The mode can display the Gregorian calendar and a variety of other
+calendars at any date, and interacts with a diary facility similar to
+the UNIX `calendar' utility.
+
+*** There is a new major mode for editing binary files: Hexl mode.
+To use it, use M-x hexl-find-file instead of C-x C-f to visit the file.
+This command converts the file's contents to hexadecimal and lets you
+edit the translation.  When you save the file, it is converted
+automatically back to binary.
+
+You can also use M-x hexl-mode to translate an existing buffer into hex.
+Do this if you have already visited a binary file.
+
+Hexl mode has a few other commands:
+
+C-M-d	insert a byte with a code typed in decimal.
+C-M-o	insert a byte with a code typed in octal.
+C-M-x	insert a byte with a code typed in hex.
+
+C-x [   move to the beginning of a 1k-byte "page".
+C-x ]   move to the end of a 1k-byte "page".
+
+M-g     go to an address specified in hex.
+M-j	go to an address specified in decimal.
+
+C-c C-c	leave hexl mode and go back to the previous major mode.
+
+*** Miscellaneous new major modes include Awk mode, Icon mode, Makefile
+mode, Perl mode and SGML mode.
+
+*** Edebug, a new source-level debugger for Emacs Lisp functions.
+
+To use Edebug, use the command M-x edebug-defun to "evaluate" a
+function definition in an Emacs Lisp file.  We put "evaluate" in
+quotation marks because it doesn't just evaluate the function, it also
+inserts additional information to support source-level debugging.
+
+You must also do
+
+    (setq debugger 'edebug-debug)
+
+to cause errors and single-stepping to use Edebug instead of the usual
+Emacs Lisp debugger.
+
+For more information, see the Edebug manual, which should be included
+in the Emacs distribution.
+
+*** C++ mode is like C mode, except that it understands C++ comment syntax
+and certain other differences between C and C++.  It also has a command
+`fill-c++-comment' which fills a paragraph made of comment lines.
+
+The command `comment-region' is useful in C++ mode for commenting out
+several consecutive lines, or removing the commenting out of such lines.
+
+*** A new package for merging two variants of the same text.
+
+It's not unusual for programmers to get their signals crossed and
+modify the same program in two different directions.  Then somebody
+has to merge the two versions.  The command `emerge-files' makes this
+easier.
+
+`emerge-files' reads two file names and compares them.  Then it
+displays three buffers: one for each file, and one for the
+differences.
+
+If the original version of the file is available, you can make things
+even easier using `emerge-files-with-ancestor'.  It reads three file
+names--variant 1, variant 2, and the common ancestor--and uses diff3
+to compare them.
+
+You control the merging interactively.  The main loop of Emerge
+consists of showing you one set of differences, asking you what to do
+about them, and doing it.  You have a choice of two modes for giving
+directions to Emerge: "fast" mode and "edit" mode.
+
+In Fast mode, Emerge commands are single characters, and ordinary
+Emacs commands are disabled.  This makes Emerge operations fast, but
+prevents you from doing more than selecting the A or the B version of
+differences.  In Edit mode, all emerge commands use the C-c prefix,
+and the usual Emacs commands are available.  This allows editing the
+merge buffer, but slows down Emerge operations.  Edit and fast modes
+are indicated by `F' and `E' in the minor modes in the mode line.
+
+The Emerge commands are:
+
+	p	go to the previous difference
+	n	go to the next difference
+	a	select the A version of this difference
+	b	select the B version of this difference
+	j	go to a particular difference (prefix argument
+		specifies which difference) (0j suppresses display of
+		the flags)
+	q	quit - finish the merge*
+	f	go into fast mode
+	e	go into edit mode
+	l	recenter (C-l) all three windows*
+	- and 0 through 9
+		prefix numeric arguments
+	d a	select the A version as the default from here down in
+		the merge buffer*
+	d b	select the B version as the default from here down in
+		the merge buffer*
+	c a	copy the A version of the difference into the kill
+		ring
+	c b	copy the B version of the difference into the kill
+		ring
+	i a	insert the A version of the difference at the point
+	i b	insert the B version of the difference at the point
+	m	put the point and mark around the difference region
+	^	scroll-down (like M-v) the three windows*
+	v	scroll-up (like C-v) the three windows*
+	<	scroll-left (like C-x <) the three windows*
+	>	scroll-right (like C-x >) the three windows*
+	|	reset horizontal scroll on the three windows*
+	x 1	shrink the merge window to one line (use C-u l to restore it
+		to full size)
+	x a	find the difference containing a location in the A buffer*
+	x b	find the difference containing a location in the B buffer*
+	x c	combine the two versions of this difference*
+	x C	combine the two versions of this difference, using a
+		register's value as the template*
+	x d	find the difference containing a location in the merge buffer*
+	x f	show the files/buffers Emerge is operating on in Help window
+		(use C-u l to restore windows)
+	x j	join this difference with the following one
+		(C-u x j joins this difference with the previous one)
+	x l	show line numbers of points in A, B, and merge buffers
+	x m	change major mode of merge buffer*
+	x s	split this difference into two differences
+		(first position the point in all three buffers to the places
+		to split the difference)
+	x t	trim identical lines off top and bottom of difference
+		(such lines occur when the A and B versions are
+		identical but differ from the ancestor version)
+	x x	set the template for the x c command*
+
+Normally, the merged output goes back in the first file specified.
+If you use a prefix argument, Emerge reads another file name to use
+for the output file.
+
+Once Emerge has prepared the buffer of differences, it runs the hooks
+in `emerge-startup-hooks'.
+
+*** Asm mode is a new major mode for editing files of assembler code.
+It defines these commands:
+
+TAB	tab-to-tab-stop.
+LFD	Insert a newline and then indent using tab-to-tab-stop.
+:	Insert a colon and then remove the indentation
+	from before the label preceding colon.  Then tab-to-tab-stop.
+;	Insert or align a comment.
+
+*** Two-column mode lets you conveniently edit two side-by-side columns
+of text.  It works using two side-by-side windows, each showing its
+own buffer.
+
+Here are three ways to enter two-column mode:
+
+C-x 6 2 makes the current buffer into the left-hand buffer.  In the
+right-hand window it puts a buffer whose name is based on the current
+buffer's name.
+
+C-x 6 b BUFFER RET makes the current buffer into the left-hand buffer,
+and uses buffer BUFFER as the right-hand buffer.
+
+C-x 6 s splits the current buffer, which contains two-column text,
+into two side-by-side buffers.  The old current buffer becomes the
+left-hand buffer, but the text in the right column is moved into the
+right-hand buffer.  The current column specifies the split point.
+Splitting starts with the current line and continues to the end of the
+buffer.
+
+C-x 6 s takes a prefix argument which specifies how many characters
+before point constitute the column separator.  (The default argument
+is 1, as usual, so by default the column separator is the character
+before point.)  Lines that don't have the column separator at the
+proper place remain unsplit; they stay in the left-hand buffer, and
+the right-hand buffer gets an empty line to correspond.
+
+You can scroll both buffers together using C-x 6 SPC (scroll up), C-x
+6 DEL (scroll down), and C-x 6 RET (scroll up one line).  C-x 6 C-l
+recenters both buffers together.
+
+If you want to make a line which will span both columns, put it in
+the left-hand buffer, with an empty line in the corresponding place in
+the right-hand buffer.
+
+When you have edited both buffers as you wish, merge them with C-x 6
+1.  This copies the text from the right-hand buffer as a second column
+in the other buffer.  To go back to two-column editing, use C-x 6 s.
+
+Use C-x 6 d to disassociate the two buffers, leaving each as it
+stands.  (If the other buffer, the one that was not current when you
+type C-x 6 d, is empty, C-x 6 d kills it.)
+
+*** You can supply command arguments such as files to visit to an Emacs
+that is already running.  To do this, you must do this in your .emacs
+file:
+   (add-hook 'suspend-hook 'resume-suspend-hook)
+Also you must use the shellscript emacs.csh or emacs.sh, found in the
+etc subdirectory.
+
+*** Shell mode has been completely replaced.
+The basic idea is the same, but there are new commands available in
+this mode.
+
+TAB now completes the file name before point in the shell buffer.
+To get a list of all possible completions, type M-?.
+
+There is a new convenient history mechanism for repeating previous
+commands.  Use the command M-p to recall the last command; it copies
+the text of that command to the place where you are editing.  If you
+repeat M-p, it replaces the copied command with the previous command.
+M-n is similar but goes in the opposite direction towards the present.
+When you find the command you wanted, you can edit it, or just
+resubmit it by typing RET.
+
+You can also use M-r and M-s to search for (respectively) earlier or
+later inputs starting with a given string.  First type the string,
+then type M-r to yank a previous input from the history which starts
+with that string.  You can repeat M-r to find successively earlier
+inputs starting with the same string.  You can start moving in the
+opposite direction (toward more recent inputs) by typing M-s instead
+of M-r.  As long as you don't use any commands except M-r and M-s,
+they keep using the same string that you had entered initially.
+
+C-c C-o kills the last batch of output from a shell command.  This is
+useful if a shell command spews out lots of output that just gets in
+the way.
+
+C-c C-r scrolls to display the beginning of the last batch of output
+at the top of the window; it also moves the cursor there.
+
+C-a on a line that starts with a shell prompt moves to the end of the
+prompt, not to the very beginning of the line.
+
+C-d typed at the end of the shell buffer sends EOF to the subshell.
+At any other position in the buffer, it deletes a character as usual.
+
+If Emacs gets confused while trying to track changes in the shell's
+current directory, type M-x dirs to re-synchronize.
+
+M-x send-invisible reads a line of text without echoing it, and
+sends it to the shell.
+
+If you accidentally suspend your process, use M-x comint-continue-subjob
+to continue it.
+
+*** There is now a convenient way to enable flow control on terminals
+where you can't win without it.  Suppose you want to do this on
+VT-100 and H19 terminals; put the following in your `.emacs' file:
+
+   (enable-flow-control-on "vt100" "h19")
+
+When flow control is enabled, you must type C-\ to get the effect of a
+C-s, and type C-^ to get the effect of a C-q.
+
+The function `enable-flow-control' enables flow control unconditionally.
+
+** Changes in Dired
+
+Dired has many new features which allow you to do these things:
+
+- Rename, copy, or make links to many files at once.
+
+- Make distinguishable types of marks for different operations.
+
+- Display contents of subdirectories in the same Dired buffer as the
+parent directory.
+
+*** Setting and Clearing Marks
+
+There are now two kinds of marker that you can put on a file in Dired:
+`D' for deletion, and `*' for any other kind of operation.
+The `x' command deletes only files marked with `D', and most
+other Dired commands operate only on the files marked with `*'.
+
+To mark files with `D' (also called "flagging" the files), you
+can use `d' as usual.  Here are some commands for marking with
+`*' (and also for unmarking):
+
+**** `m' marks the current file with `*', for an operation other than
+deletion.
+
+**** `*' marks all executable files.  With a prefix argument, it
+unmarks all those files.
+
+**** `@' marks all symbolic links.  With a prefix argument, it unmarks
+all those files.
+
+**** `/' marks all directory files except `.' and `..'.  With a prefix
+argument, it unmarks all those files.
+
+**** M-DEL removes a specific or all marks from every file.  With an
+argument, queries for each marked file.  Type your help character,
+usually C-h, at that time for help.
+
+**** `c' replaces all marks that use the character OLD with marks that
+use the character NEW.  You can use almost any character as a mark
+character by means of this command, to distinguish various classes of
+files.  If OLD is ` ', then the command operates on all unmarked
+files; if NEW is ` ', then the command unmarks the files it acts on.
+
+*** Operating on Multiple Files
+
+The Dired commands to operate directly on files (rename them, copy
+them, and so on) have been generalized to work on multiple files.
+There are also some additional commands in this series.
+
+All of these commands use the same convention to decide which files to
+manipulate:
+
+- If you give the command a numeric prefix argument @var{n}, it operates
+on the next @var{n} files, starting with the current file.
+
+- Otherwise, if there are marked files, the commands operate on all the
+marked files.
+
+- Otherwise, the command operates on the current file only.
+
+These are the commands:
+
+**** `C' copies the specified files.  You must specify a directory to
+copy into, or (if copying a single file) a new name.
+
+If `dired-copy-preserve-time' is non-`nil', then copying sets
+the modification time of the new file to be the same as that of the old
+file.
+
+**** `R' renames the specified files.  You must specify a directory to
+rename into, or (if renaming a single file) a new name.
+
+Dired automatically changes the visited file name of buffers associated
+with renamed files so that they refer to the new names.
+
+**** `H' makes hard links to the specified files.  You must specify a
+directory to make the links in, or (if making just one link) the name
+to give the link.
+
+**** `S' makes symbolic links to the specified files.  You must specify
+a directory to make the links in, or (if making just one link) the
+name to give the link.
+
+**** `M' changes the mode of the specified files.  This calls the
+`chmod' program, so you can describe the desired mode change with any
+argument that `chmod' would handle.
+
+**** `G' changes the group of the specified files.
+
+**** `O' changes the owner of the specified files.  (On normal systems,
+only the superuser can do this.)
+
+The variable `dired-chown-program' specifies the name of the
+program to use to do the work (different systems put `chown' in
+different places.
+
+**** `Z' compresses or uncompresses the specified files.
+
+**** `L' loads the specified Emacs Lisp files.
+
+**** `B' byte compiles the specified Emacs Lisp files.
+
+**** `P' prints the specified files.  It uses the variables
+`lpr-command' and `lpr-switches' just as `lpr-file' does.
+
+*** Shell Commands in Dired
+
+`!' reads a shell command string in the minibuffer and runs the shell
+command on all the specified files.  There are two ways of applying a
+shell command to multiple files:
+
+- If you use `*' in the command, then the shell command runs just
+once, with the list of file names substituted for the `*'.
+
+Thus, `! tar cf foo.tar * RET' runs `tar' on the entire list of file
+names, putting them into one tar file `foo.tar'.  The file names are
+inserted in the order that they appear in the Dired buffer.
+
+- If the command string doesn't contain `*', then it runs once for
+each file, with the file name attached at the end.  For example, `!
+uudecode RET' runs `uudecode' on each file.
+
+To run the shell command once for each file but without being limited
+to putting the file name inserted in the middle, use a shell loop.
+For example, this shell command would run `uuencode' on each of the
+specified files, writing the output into a corresponding `.uu' file:
+
+    for file in *; uuencode $file $file >$file.uu; done
+
+The working directory for the shell command is the top level directory
+of the Dired buffer.
+
+*** Regular Expression File Name Substitution
+
+**** `% m REGEXP RET' marks all files whose names match the regular
+expression REGEXP.
+
+Only the non-directory part of the file name is used in matching.  Use
+`^' and `$' to anchor matches.  Exclude subdirs by hiding them.
+
+**** `% d REGEXP RET' flags for deletion all files whose names match
+the regular expression REGEXP.
+
+**** `% R', `% C', `% H', `% S'
+
+These four commands rename, copy, make hard links and make soft links,
+in each case computing the new name by regular expression substitution
+from the name of the old file.  They  effectively perform
+`query-replace-regexp' on the selected file names in the Dired buffer.
+
+The commands read two arguments: a regular expression, and a
+substitution pattern.  Each selected file name is matched against the
+regular expression, and then the part which matched is replaced with
+the substitution pattern.  You can use `\&' and `\DIGIT' in the
+substitution pattern to refer to all or part of the old file name.
+
+If the regular expression matches more than once in a file name,
+only the first match is replaced.
+
+Normally, the replacement process does not consider the directory names;
+it operates on the file name within the directory.  If you specify a
+prefix argument of zero, then replacement affects entire file name.
+
+To apply the command to all files matching the same regexp that you
+use in the command, mark those files with `% m REGEXP RET', then use
+the same regular expression in `% R'.  To make this easier, `% R' uses
+as a default the last regular expression specified in a `%' command.
+
+*** Dired Case Conversion
+
+**** `% u' renames each of the selected files to an upper case name.
+
+**** `% l' renames each of the selected files to a lower case name.
+
+*** File Comparison with Dired
+
+**** `=' compares the current file with another file (the file at the
+mark), by running the `diff' program.  The file at the mark is given
+to `diff' first.
+
+**** `M-=' compares the current file with its backup file.  If there
+are several numerical backups, it uses the most recent one.  If this
+file is a backup, it is compared with its original.
+
+The backup file is the first file given to `diff'.
+
+*** Subdirectories in Dired
+
+You can display more than one directory in one Dired buffer.
+The simplest way to do this is to specify the options `-lR' for
+running `ls'.  That produces a recursive directory listing showing
+all subdirectories, all within the same Dired buffer.
+
+You can also insert the contents of a particular subdirectory with the
+`i' command.  Use this command on the line that describes a file which
+is a directory.  Inserted subdirectory contents follow the top-level
+directory of the Dired buffer, just as they do in `ls -lR' output.
+
+If the subdirectory's contents are already present in the buffer, the
+`i' command just moves to it (type `l' to refresh it).  It sets the
+Emacs mark before moving, so C-x C-x takes you back to the old
+position in the buffer.
+
+When you have subdirectories in the Dired buffer, you can use the page
+motion commands C-x [ and C-x ] to move by entire directories.
+
+The following commands move up and down in the tree of directories
+in one Dired buffer:
+
+**** C-M-u  Go up to the parent directory's headerline.
+
+**** C-M-d  Go down in the tree, to the first subdirectory's
+headerline.
+
+**** C-M-n  Go to next subdirectory headerline, regardless of level.
+
+**** C-M-p  Go to previous subdirectory headerline, regardless of
+level.
+
+*** Hiding Subdirectories
+
+"Hiding" a subdirectory means to make it invisible, except for its
+headerline.  Files inside a hidden subdirectory are never considered
+by Dired.  For example, the commands to operate on marked files ignore
+files in hidden directories even if they are marked.
+
+**** `$' hides or unhides the current subdirectory and move to next
+subdirectory.  A prefix argument serves as a repeat count.
+
+**** `M-$' hides all subdirectories, leaving only their header lines.
+Or, if at least one subdirectory is currently hidden, it makes
+everything visible again.  You can use this command to get an overview
+in very deep directory trees or to move quickly to subdirectories far
+away.
+
+*** Editing the Dired Buffer
+
+**** `l' updates the specified files in a Dired buffer.  This means
+reading their current status from the file system and changing the
+buffer to reflect it properly.
+
+If you use this command on a subdirectory header line, it updates the
+contents of the subdirectory.
+
+**** `g' updates the entire contents of the Dired buffer.  It preserves
+all marks except for those on files that have vanished.  Hidden
+subdirectories are updated but remain hidden.
+
+**** `k' kills all marked lines (not the files).  With a prefix
+argument, it kills that many lines starting with the current line.
+
+This command does not delete files; it just deletes text from the Dired
+buffer.
+
+If you kill the line for a file that is a directory, then its contents
+are also deleted from the buffer.  Typing `C-u k' on the header line
+for a subdirectory is another way to delete a subdirectory from the
+Dired buffer.
+
+*** `find' and Dired.
+
+To search for files with names matching a wildcard pattern use
+`find-name-dired'.  Its arguments are DIRECTORY and
+PATTERN.  It selects all the files in DIRECTORY or its
+subdirectories whose own names match PATTERN.
+
+The files thus selected are displayed in a Dired buffer in which the
+ordinary Dired commands are available.
+
+If you want to test the contents of files, rather than their names, use
+`find-grep-dired'.  This command takes two minibuffer arguments,
+DIRECTORY and REGEXP; it selects all the files in
+DIRECTORY or its subdirectories that contain a match for
+REGEXP.  It works by running `find' and `grep'.
+
+The most general command in this series is `find-dired', which lets
+you specify any condition that `find' can test.  It takes two
+minibuffer arguments, DIRECTORY and FIND-ARGS; it runs `find' in
+DIRECTORY with using FIND-ARGS as the arguments to `find' specifying
+which files to accept.  To use this command, you need to know how to
+use `find'.
+
+** New amusements and novelties.
+
+*** `M-x mpuz' displays a multiplication puzzle, in which each letter
+stands for a digit, and you must determine which digit.  The puzzles
+are determined randomly, so they are always different.
+
+*** `M-x gomoku' plays the game Gomoku with you.  It needs more work.
+
+*** `M-x spook' adds a line of randomly chosen keywords to an outgoing
+mail message.  The keywords are chosen from a list of words that
+suggest you are discussing something subversive.
+
+The idea is that the NSA reads all messages that contain keywords
+suggesting they might be interested, and that adding these lines could
+help to overload them.  I would guess that they have modified their
+program by now to ignore these lines of keywords; perhaps the program
+can be updated if some clever hacker can determine what criterion they
+actually use now.
+
+** Installation changes
+
+*** The configure script has been provided to help with the
+installation process.  It takes the place of editing the Makefiles and
+src/config.h, and can often guess the appropriate operating system to
+use for a particular machine type.  See INSTALL for a more detailed
+description of the steps required for installation.
+
+*** If you create a Lisp file named `site-start.el', Emacs loads the file
+whenever it starts up.
+
+*** A new Lisp variable, `data-directory', indicates the directory
+containing the DOC file, tutorial, copying agreement, and other
+familiar `etc' files.  The value of `data-directory' is a simple string.
+The default should be set at build time, and the person installing
+Emacs should place all the data files in this directory.  The `help.el'
+functions that look for docstrings and information files check this
+variable.  All Emacs Lisp packages should also be coded so that they
+refer to `data-directory' to find data files.
+
+*** The PURESIZE definition has been moved from config.h to its own
+file, puresize.h.  Since almost every file of C source in the
+distribution depends on config.h, but only alloc.c and data.c depend
+on puresize.h, this means that changing the value of PURESIZE causes
+only those two files to be recompiled.
+
+*** The makefile at the top of the Emacs source tree now supports a
+`dist' target, which creates a compressed tar file suitable for
+distribution, using the contents of the source tree.  Object files,
+old file versions, executables, DOC files, and other
+architecture-specific or easy-to-recreate files are not included in
+the tar file.
+
+
+
+----------------------------------------------------------------------
+Copyright information:
+
+Copyright (C) 1993, 1994, 1995, 2001, 2006 Free Software Foundation, Inc.
+
+   Permission is granted to anyone to make or distribute verbatim copies
+   of this document as received, in any medium, provided that the
+   copyright notice and this permission notice are preserved,
+   thus giving the recipient permission to redistribute in turn.
+
+   Permission is granted to distribute modified versions
+   of this document, or of portions of it,
+   under the above conditions, provided also that they
+   carry prominent notices stating who last changed them.
+
+Local variables:
+mode: outline
+paragraph-separate: "[ 	]*$"
+end:
+
+arch-tag: 944be39b-afe8-4217-9977-c745b68a7ca2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/NEWS.20	Sun Jun 04 01:01:51 2006 +0000
@@ -0,0 +1,4513 @@
+GNU Emacs NEWS -- history of user-visible changes.  2006-05-31
+Copyright (C) 1999, 2000, 2001, 2006
+          Free Software Foundation, Inc.
+See the end for copying conditions.
+
+Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
+If possible, use M-x report-emacs-bug.
+
+This file is about changes in emacs version 20.
+
+
+
+* Emacs 20.7 is a bug-fix release with few user-visible changes
+
+** It is now possible to use CCL-based coding systems for keyboard
+input.
+
+** ange-ftp now handles FTP security extensions, like Kerberos.
+
+** Rmail has been extended to recognize more forms of digest messages.
+
+** Now, most coding systems set in keyboard coding system work not
+only for character input, but also in incremental search.  The
+exceptions are such coding systems that handle 2-byte character sets
+(e.g euc-kr, euc-jp) and that use ISO's escape sequence
+(e.g. iso-2022-jp).  They are ignored in incremental search.
+
+** Support for Macintosh PowerPC-based machines running GNU/Linux has
+been added.
+
+
+
+* Emacs 20.6 is a bug-fix release with one user-visible change
+
+** Support for ARM-based non-RISCiX machines has been added.
+
+
+
+* Emacs 20.5 is a bug-fix release with no user-visible changes.
+
+** Not new, but not mentioned before:
+M-w when Transient Mark mode is enabled disables the mark.
+
+
+
+* Changes in Emacs 20.4
+
+** Init file may be called .emacs.el.
+
+You can now call the Emacs init file `.emacs.el'.
+Formerly the name had to be `.emacs'.  If you use the name
+`.emacs.el', you can byte-compile the file in the usual way.
+
+If both `.emacs' and `.emacs.el' exist, the latter file
+is the one that is used.
+
+** shell-command, and shell-command-on-region, now return
+the exit code of the command (unless it is asynchronous).
+Also, you can specify a place to put the error output,
+separate from the command's regular output.
+Interactively, the variable shell-command-default-error-buffer
+says where to put error output; set it to a buffer name.
+In calls from Lisp, an optional argument ERROR-BUFFER specifies
+the buffer name.
+
+When you specify a non-nil error buffer (or buffer name), any error
+output is inserted before point in that buffer, with \f\n to separate
+it from the previous batch of error output.  The error buffer is not
+cleared, so error output from successive commands accumulates there.
+
+** Setting the default value of enable-multibyte-characters to nil in
+the .emacs file, either explicitly using setq-default, or via Custom,
+is now essentially equivalent to using --unibyte: all buffers
+created during startup will be made unibyte after loading .emacs.
+
+** C-x C-f now handles the wildcards * and ? in file names.  For
+example, typing C-x C-f c*.c RET visits all the files whose names
+match c*.c.  To visit a file whose name contains * or ?, add the
+quoting sequence /: to the beginning of the file name.
+
+** The M-x commands keep-lines, flush-lines and count-matches
+now have the same feature as occur and query-replace:
+if the pattern contains any upper case letters, then
+they never ignore case.
+
+** The end-of-line format conversion feature previously mentioned
+under `* Emacs 20.1 changes for MS-DOS and MS-Windows' actually
+applies to all operating systems.  Emacs recognizes from the contents
+of a file what convention it uses to separate lines--newline, CRLF, or
+just CR--and automatically converts the contents to the normal Emacs
+convention (using newline to separate lines) for editing.  This is a
+part of the general feature of coding system conversion.
+
+If you subsequently save the buffer, Emacs converts the text back to
+the same format that was used in the file before.
+
+You can turn off end-of-line conversion by setting the variable
+`inhibit-eol-conversion' to non-nil, e.g. with Custom in the MULE group.
+
+** The character set property `prefered-coding-system' has been
+renamed to `preferred-coding-system', for the sake of correct spelling.
+This is a fairly internal feature, so few programs should be affected.
+
+** Mode-line display of end-of-line format is changed.
+The indication of the end-of-line format of the file visited by a
+buffer is now more explicit when that format is not the usual one for
+your operating system.  For example, the DOS-style end-of-line format
+is displayed as "(DOS)" on Unix and GNU/Linux systems.  The usual
+end-of-line format is still displayed as a single character (colon for
+Unix, backslash for DOS and Windows, and forward slash for the Mac).
+
+The values of the variables eol-mnemonic-unix, eol-mnemonic-dos,
+eol-mnemonic-mac, and eol-mnemonic-undecided, which are strings,
+control what is displayed in the mode line for each end-of-line
+format.  You can now customize these variables.
+
+** In the previous version of Emacs, tar-mode didn't work well if a
+filename contained non-ASCII characters.  Now this is fixed.  Such a
+filename is decoded by file-name-coding-system if the default value of
+enable-multibyte-characters is non-nil.
+
+** The command temp-buffer-resize-mode toggles a minor mode
+in which temporary buffers (such as help buffers) are given
+windows just big enough to hold the whole contents.
+
+** If you use completion.el, you must now run the function
+dynamic-completion-mode to enable it.  Just loading the file
+doesn't have any effect.
+
+** In Flyspell mode, the default is now to make just one Ispell process,
+not one per buffer.
+
+** If you use iswitchb but do not call (iswitchb-default-keybindings) to
+use the default keybindings, you will need to add the following line:
+  (add-hook 'minibuffer-setup-hook 'iswitchb-minibuffer-setup)
+
+** Auto-show mode is no longer enabled just by loading auto-show.el.
+To control it, set `auto-show-mode' via Custom or use the
+`auto-show-mode' command.
+
+** Handling of X fonts' ascent/descent parameters has been changed to
+avoid redisplay problems.  As a consequence, compared with previous
+versions the line spacing and frame size now differ with some font
+choices, typically increasing by a pixel per line.  This change
+occurred in version 20.3 but was not documented then.
+
+** If you select the bar cursor style, it uses the frame's
+cursor-color, rather than the cursor foreground pixel.
+
+** In multibyte mode, Rmail decodes incoming MIME messages using the
+character set specified in the message.  If you want to disable this
+feature, set the variable rmail-decode-mime-charset to nil.
+
+** Not new, but not mentioned previously in NEWS: when you use #! at
+the beginning of a file to make it executable and specify an
+interpreter program, Emacs looks on the second line for the -*- mode
+and variable specification, as well as on the first line.
+
+** Support for IBM codepage encoding of non-ASCII characters.
+
+The new command M-x codepage-setup creates a special coding system
+that can be used to convert text between a specific IBM codepage and
+one of the character sets built into Emacs which matches that
+codepage.  For example, codepage 850 corresponds to Latin-1 character
+set, codepage 855 corresponds to Cyrillic-ISO character set, etc.
+
+Windows codepages 1250, 1251 and some others, where Windows deviates
+from the corresponding ISO character set, are also supported.
+
+IBM box-drawing characters and other glyphs which don't have
+equivalents in the corresponding ISO character set, are converted to
+a character defined by dos-unsupported-char-glyph on MS-DOS, and to
+`?' on other systems.
+
+IBM codepages are widely used on MS-DOS and MS-Windows, so this
+feature is most useful on those platforms, but it can also be used on
+Unix.
+
+Emacs compiled for MS-DOS automatically loads the support for the
+current codepage when it starts.
+
+** Mail changes
+
+*** When mail is sent using compose-mail (C-x m), and if
+`mail-send-nonascii' is set to the new default value `mime',
+appropriate MIME headers are added.  The headers are added only if
+non-ASCII characters are present in the body of the mail, and no other
+MIME headers are already present.  For example, the following three
+headers are added if the coding system used in the *mail* buffer is
+latin-1:
+
+  MIME-version: 1.0
+  Content-type: text/plain; charset=iso-8859-1
+  Content-Transfer-Encoding: 8bit
+
+*** The new variable default-sendmail-coding-system specifies the
+default way to encode outgoing mail.  This has higher priority than
+default-buffer-file-coding-system but has lower priority than
+sendmail-coding-system and the local value of
+buffer-file-coding-system.
+
+You should not set this variable manually.  Instead, set
+sendmail-coding-system to specify a fixed encoding for all outgoing
+mail.
+
+*** When you try to send a message that contains non-ASCII characters,
+if the coding system specified by those variables doesn't handle them,
+Emacs will ask you to select a suitable coding system while showing a
+list of possible coding systems.
+
+** CC Mode changes
+
+*** c-default-style can now take an association list that maps major
+modes to style names.  When this variable is an alist, Java mode no
+longer hardcodes a setting to "java" style.  See the variable's
+docstring for details.
+
+*** It's now possible to put a list as the offset on a syntactic
+symbol.  The list is evaluated recursively until a non-nil offset is
+found.  This is useful to combine several lineup functions to act in a
+prioritized order on a single line.  However, none of the supplied
+lineup functions use this feature currently.
+
+*** New syntactic symbol catch-clause, which is used on the "catch" and
+"finally" lines in try-catch constructs in C++ and Java.
+
+*** New cleanup brace-catch-brace on c-cleanup-list, which does for
+"catch" lines what brace-elseif-brace does for "else if" lines.
+
+*** The braces of Java anonymous inner classes are treated separately
+from the braces of other classes in auto-newline mode.  Two new
+symbols inexpr-class-open and inexpr-class-close may be used on
+c-hanging-braces-alist to control the automatic newlines used for
+anonymous classes.
+
+*** Support for the Pike language added, along with new Pike specific
+syntactic symbols: inlambda, lambda-intro-cont
+
+*** Support for Java anonymous classes via new syntactic symbol
+inexpr-class.  New syntactic symbol inexpr-statement for Pike
+support and gcc-style statements inside expressions.  New lineup
+function c-lineup-inexpr-block.
+
+*** New syntactic symbol brace-entry-open which is used in brace lists
+(i.e. static initializers) when a list entry starts with an open
+brace.  These used to be recognized as brace-list-entry's.
+c-electric-brace also recognizes brace-entry-open braces
+(brace-list-entry's can no longer be electrified).
+
+*** New command c-indent-line-or-region, not bound by default.
+
+*** `#' is only electric when typed in the indentation of a line.
+
+*** Parentheses are now electric (via the new command c-electric-paren)
+for auto-reindenting lines when parens are typed.
+
+*** In "gnu" style, inline-open offset is now set to zero.
+
+*** Uniform handling of the inclass syntactic symbol.  The indentation
+associated with it is now always relative to the class opening brace.
+This means that the indentation behavior has changed in some
+circumstances, but only if you've put anything besides 0 on the
+class-open syntactic symbol (none of the default styles do that).
+
+** Gnus changes.
+
+*** New functionality for using Gnus as an offline newsreader has been
+added.  A plethora of new commands and modes have been added.  See the
+Gnus manual for the full story.
+
+*** The nndraft backend has returned, but works differently than
+before.  All Message buffers are now also articles in the nndraft
+group, which is created automatically.
+
+*** `gnus-alter-header-function' can now be used to alter header
+values.
+
+*** `gnus-summary-goto-article' now accept Message-ID's.
+
+*** A new Message command for deleting text in the body of a message
+outside the region: `C-c C-v'.
+
+*** You can now post to component group in nnvirtual groups with
+`C-u C-c C-c'.
+
+*** `nntp-rlogin-program' -- new variable to ease customization.
+
+*** `C-u C-c C-c' in `gnus-article-edit-mode' will now inhibit
+re-highlighting of the article buffer.
+
+*** New element in `gnus-boring-article-headers' -- `long-to'.
+
+*** `M-i' symbolic prefix command.  See the section "Symbolic
+Prefixes" in the Gnus manual for details.
+
+*** `L' and `I' in the summary buffer now take the symbolic prefix
+`a' to add the score rule to the "all.SCORE" file.
+
+*** `gnus-simplify-subject-functions' variable to allow greater
+control over simplification.
+
+*** `A T' -- new command for fetching the current thread.
+
+*** `/ T' -- new command for including the current thread in the
+limit.
+
+*** `M-RET' is a new Message command for breaking cited text.
+
+*** \\1-expressions are now valid in `nnmail-split-methods'.
+
+*** The `custom-face-lookup' function has been removed.
+If you used this function in your initialization files, you must
+rewrite them to use `face-spec-set' instead.
+
+*** Canceling now uses the current select method.  Symbolic prefix
+`a' forces normal posting method.
+
+*** New command to translate M******** sm*rtq**t*s into proper text
+-- `W d'.
+
+*** For easier debugging of nntp, you can set `nntp-record-commands'
+to a non-nil value.
+
+*** nntp now uses ~/.authinfo, a .netrc-like file, for controlling
+where and how to send AUTHINFO to NNTP servers.
+
+*** A command for editing group parameters from the summary buffer
+has been added.
+
+*** A history of where mails have been split is available.
+
+*** A new article date command has been added -- `article-date-iso8601'.
+
+*** Subjects can be simplified when threading by setting
+`gnus-score-thread-simplify'.
+
+*** A new function for citing in Message has been added --
+`message-cite-original-without-signature'.
+
+*** `article-strip-all-blank-lines' -- new article command.
+
+*** A new Message command to kill to the end of the article has
+been added.
+
+*** A minimum adaptive score can be specified by using the
+`gnus-adaptive-word-minimum' variable.
+
+*** The "lapsed date" article header can be kept continually
+updated by the `gnus-start-date-timer' command.
+
+*** Web listserv archives can be read with the nnlistserv backend.
+
+*** Old dejanews archives can now be read by nnweb.
+
+*** `gnus-posting-styles' has been re-activated.
+
+** Changes to TeX and LaTeX mode
+
+*** The new variable `tex-start-options-string' can be used to give
+options for the TeX run.  The default value causes TeX to run in
+nonstopmode.  For an interactive TeX run set it to nil or "".
+
+*** The command `tex-feed-input' sends input to the Tex Shell.  In a
+TeX buffer it is bound to the keys C-RET, C-c RET, and C-c C-m (some
+of these keys may not work on all systems).  For instance, if you run
+TeX interactively and if the TeX run stops because of an error, you
+can continue it without leaving the TeX buffer by typing C-RET.
+
+*** The Tex Shell Buffer is now in `compilation-shell-minor-mode'.
+All error-parsing commands of the Compilation major mode are available
+but bound to keys that don't collide with the shell.  Thus you can use
+the Tex Shell for command line executions like a usual shell.
+
+*** The commands `tex-validate-region' and `tex-validate-buffer' check
+the matching of braces and $'s.  The errors are listed in a *Occur*
+buffer and you can use C-c C-c or mouse-2 to go to a particular
+mismatch.
+
+** Changes to RefTeX mode
+
+*** The table of contents buffer can now also display labels and
+file boundaries in addition to sections. Use `l', `i', and `c' keys.
+
+*** Labels derived from context (the section heading) are now
+lowercase by default.  To make the label legal in LaTeX, latin-1
+characters will lose their accent.  All Mule characters will be
+removed from the label.
+
+*** The automatic display of cross reference information can also use
+a window instead of the echo area.  See variable `reftex-auto-view-crossref'.
+
+*** kpsewhich can be used by RefTeX to find TeX and BibTeX files.  See the
+customization group `reftex-finding-files'.
+
+*** The option `reftex-bibfile-ignore-list' has been renamed to
+`reftex-bibfile-ignore-regexps' and indeed can be fed with regular
+expressions.
+
+*** Multiple Selection buffers are now hidden buffers.
+
+** New/deleted modes and packages
+
+*** The package snmp-mode.el provides major modes for editing SNMP and
+SNMPv2 MIBs.  It has entries on `auto-mode-alist'.
+
+*** The package sql.el provides a major mode, M-x sql-mode, for
+editing SQL files, and M-x sql-interactive-mode for interacting with
+SQL interpreters.  It has an entry on `auto-mode-alist'.
+
+*** ispell4.el has been deleted.  It got in the way of ispell.el and
+this was hard to fix reliably.  It has long been obsolete -- use
+Ispell 3.1 and ispell.el.
+
+
+* MS-DOS changes in Emacs 20.4
+
+** Emacs compiled for MS-DOS now supports MULE features better.
+This includes support for display of all ISO 8859-N character sets,
+conversion to and from IBM codepage encoding of non-ASCII characters,
+and automatic setup of the MULE environment at startup.  For details,
+check out the section `MS-DOS and MULE' in the manual.
+
+The MS-DOS installation procedure automatically configures and builds
+Emacs with input method support if it finds an unpacked Leim
+distribution when the config.bat script is run.
+
+** Formerly, the value of lpr-command did not affect printing on
+MS-DOS unless print-region-function was set to nil, but now it
+controls whether an external program is invoked or output is written
+directly to a printer port.  Similarly, in the previous version of
+Emacs, the value of ps-lpr-command did not affect PostScript printing
+on MS-DOS unless ps-printer-name was set to something other than a
+string (eg. t or `pipe'), but now it controls whether an external
+program is used.  (These changes were made so that configuration of
+printing variables would be almost identical across all platforms.)
+
+** In the previous version of Emacs, PostScript and non-PostScript
+output was piped to external programs, but because most print programs
+available for MS-DOS and MS-Windows cannot read data from their standard
+input, on those systems the data to be output is now written to a
+temporary file whose name is passed as the last argument to the external
+program.
+
+An exception is made for `print', a standard program on Windows NT,
+and `nprint', a standard program on Novell Netware.  For both of these
+programs, the command line is constructed in the appropriate syntax
+automatically, using only the value of printer-name or ps-printer-name
+as appropriate--the value of the relevant `-switches' variable is
+ignored, as both programs have no useful switches.
+
+** The value of the variable dos-printer (cf. dos-ps-printer), if it has
+a value, overrides the value of printer-name (cf. ps-printer-name), on
+MS-DOS and MS-Windows only.  This has been true since version 20.3, but
+was not documented clearly before.
+
+** All the Emacs games now work on MS-DOS terminals.
+This includes Tetris and Snake.
+
+
+* Lisp changes in Emacs 20.4
+
+** New functions line-beginning-position and line-end-position
+return the position of the beginning or end of the current line.
+They both accept an optional argument, which has the same
+meaning as the argument to beginning-of-line or end-of-line.
+
+** find-file and allied functions now have an optional argument
+WILDCARD.  If this is non-nil, they do wildcard processing,
+and visit all files that match the wildcard pattern.
+
+** Changes in the file-attributes function.
+
+*** The file size returned by file-attributes may be an integer or a float.
+It is an integer if the size fits in a Lisp integer, float otherwise.
+
+*** The inode number returned by file-attributes may be an integer (if
+the number fits in a Lisp integer) or a cons cell containing two
+integers.
+
+** The new function directory-files-and-attributes returns a list of
+files in a directory and their attributes.  It accepts the same
+arguments as directory-files and has similar semantics, except that
+file names and attributes are returned.
+
+** The new function file-attributes-lessp is a helper function for
+sorting the list generated by directory-files-and-attributes.  It
+accepts two arguments, each a list of a file name and its attributes.
+It compares the file names of each according to string-lessp and
+returns the result.
+
+** The new function file-expand-wildcards expands a wildcard-pattern
+to produce a list of existing files that match the pattern.
+
+** New functions for base64 conversion:
+
+The function base64-encode-region converts a part of the buffer
+into the base64 code used in MIME.  base64-decode-region
+performs the opposite conversion.  Line-breaking is supported
+optionally.
+
+Functions base64-encode-string and base64-decode-string do a similar
+job on the text in a string.  They return the value as a new string.
+
+**
+The new function process-running-child-p
+will tell you if a subprocess has given control of its
+terminal to its own child process.
+
+** interrupt-process and such functions have a new feature:
+when the second argument is `lambda', they send a signal
+to the running child of the subshell, if any, but if the shell
+itself owns its terminal, no signal is sent.
+
+** There are new widget types `plist' and `alist' which can
+be used for customizing variables whose values are plists or alists.
+
+** easymenu.el now understands `:key-sequence' and `:style button'.
+:included is an alias for :visible.
+
+easy-menu-add-item now understands the values returned by
+easy-menu-remove-item and easy-menu-item-present-p.  This can be used
+to move or copy menu entries.
+
+** Multibyte editing changes
+
+*** The definitions of sref and char-bytes are changed.  Now, sref is
+an alias of aref and char-bytes always returns 1.  This change is to
+make some Emacs Lisp code which works on 20.2 and earlier also
+work on the latest Emacs.  Such code uses a combination of sref and
+char-bytes in a loop typically as below:
+	(setq char (sref str idx)
+	      idx (+ idx (char-bytes idx)))
+The byte-compiler now warns that this is obsolete.
+
+If you want to know how many bytes a specific multibyte character
+(say, CH) occupies in a multibyte buffer, use this code:
+	(charset-bytes (char-charset ch))
+
+*** In multibyte mode, when you narrow a buffer to some region, and the
+region is preceded or followed by non-ASCII codes, inserting or
+deleting at the head or the end of the region may signal this error:
+
+    Byte combining across boundary of accessible buffer text inhibited
+
+This is to avoid some bytes being combined together into a character
+across the boundary.
+
+*** The functions find-charset-region and find-charset-string include
+`unknown' in the returned list in the following cases:
+    o The current buffer or the target string is unibyte and
+      contains 8-bit characters.
+    o The current buffer or the target string is multibyte and
+      contains invalid characters.
+
+*** The functions decode-coding-region and encode-coding-region remove
+text properties of the target region.  Ideally, they should correctly
+preserve text properties, but for the moment, it's hard.  Removing
+text properties is better than preserving them in a less-than-correct
+way.
+
+*** prefer-coding-system sets EOL conversion of default coding systems.
+If the argument to prefer-coding-system specifies a certain type of
+end of line conversion, the default coding systems set by
+prefer-coding-system will specify that conversion type for end of line.
+
+*** The new function thai-compose-string can be used to properly
+compose Thai characters in a string.
+
+** The primitive `define-prefix-command' now takes an optional third
+argument NAME, which should be a string.  It supplies the menu name
+for the created keymap.  Keymaps created in order to be displayed as
+menus should always use the third argument.
+
+** The meanings of optional second arguments for read-char,
+read-event, and read-char-exclusive are flipped.  Now the second
+arguments are INHERIT-INPUT-METHOD.  These functions use the current
+input method (if any) if and only if INHERIT-INPUT-METHOD is non-nil.
+
+** The new function clear-this-command-keys empties out the contents
+of the vector that (this-command-keys) returns.  This is useful in
+programs that read passwords, to prevent the passwords from echoing
+inadvertently as part of the next command in certain cases.
+
+** The new macro `with-temp-message' displays a temporary message in
+the echo area, while executing some Lisp code.  Like `progn', it
+returns the value of the last form, but it also restores the previous
+echo area contents.
+
+   (with-temp-message MESSAGE &rest BODY)
+
+** The function `require' now takes an optional third argument
+NOERROR.  If it is non-nil, then there is no error if the
+requested feature cannot be loaded.
+
+** In the function modify-face, an argument of (nil) for the
+foreground color, background color or stipple pattern
+means to clear out that attribute.
+
+** The `outer-window-id' frame property of an X frame
+gives the window number of the outermost X window for the frame.
+
+** Temporary buffers made with with-output-to-temp-buffer are now
+read-only by default, and normally use the major mode Help mode
+unless you put them in some other non-Fundamental mode before the
+end of with-output-to-temp-buffer.
+
+** The new functions gap-position and gap-size return information on
+the gap of the current buffer.
+
+** The new functions position-bytes and byte-to-position provide a way
+to convert between character positions and byte positions in the
+current buffer.
+
+** vc.el defines two new macros, `edit-vc-file' and `with-vc-file', to
+facilitate working with version-controlled files from Lisp programs.
+These macros check out a given file automatically if needed, and check
+it back in after any modifications have been made.
+
+
+
+* Installation Changes in Emacs 20.3
+
+** The default value of load-path now includes most subdirectories of
+the site-specific directories /usr/local/share/emacs/site-lisp and
+/usr/local/share/emacs/VERSION/site-lisp, in addition to those
+directories themselves.  Both immediate subdirectories and
+subdirectories multiple levels down are added to load-path.
+
+Not all subdirectories are included, though.  Subdirectories whose
+names do not start with a letter or digit are excluded.
+Subdirectories named RCS or CVS are excluded.  Also, a subdirectory
+which contains a file named `.nosearch' is excluded.  You can use
+these methods to prevent certain subdirectories from being searched.
+
+Emacs finds these subdirectories and adds them to load-path when it
+starts up.  While it would be cleaner to find the subdirectories each
+time Emacs loads a file, that would be much slower.
+
+This feature is an incompatible change.  If you have stored some Emacs
+Lisp files in a subdirectory of the site-lisp directory specifically
+to prevent them from being used, you will need to rename the
+subdirectory to start with a non-alphanumeric character, or create a
+`.nosearch' file in it, in order to continue to achieve the desired
+results.
+
+** Emacs no longer includes an old version of the C preprocessor from
+GCC.  This was formerly used to help compile Emacs with C compilers
+that had limits on the significant length of an identifier, but in
+fact we stopped supporting such compilers some time ago.
+
+
+* Changes in Emacs 20.3
+
+** The new command C-x z (repeat) repeats the previous command
+including its argument.  If you repeat the z afterward,
+it repeats the command additional times; thus, you can
+perform many repetitions with one keystroke per repetition.
+
+** Emacs now supports "selective undo" which undoes only within a
+specified region.  To do this, set point and mark around the desired
+region and type C-u C-x u (or C-u C-_).  You can then continue undoing
+further, within the same region, by repeating the ordinary undo
+command C-x u or C-_.  This will keep undoing changes that were made
+within the region you originally specified, until either all of them
+are undone, or it encounters a change which crosses the edge of that
+region.
+
+In Transient Mark mode, undoing when a region is active requests
+selective undo.
+
+** If you specify --unibyte when starting Emacs, then all buffers are
+unibyte, except when a Lisp program specifically creates a multibyte
+buffer.  Setting the environment variable EMACS_UNIBYTE has the same
+effect.  The --no-unibyte option overrides EMACS_UNIBYTE and directs
+Emacs to run normally in multibyte mode.
+
+The option --unibyte does not affect the reading of Emacs Lisp files,
+though.  If you want a Lisp file to be read in unibyte mode, use
+-*-unibyte: t;-*- on its first line.  That will force Emacs to
+load that file in unibyte mode, regardless of how Emacs was started.
+
+** toggle-enable-multibyte-characters no longer has a key binding and
+no longer appears in the menu bar.  We've realized that changing the
+enable-multibyte-characters variable in an existing buffer is
+something that most users not do.
+
+** You can specify a coding system to use for the next cut or paste
+operations through the window system with the command C-x RET X.
+The coding system can make a difference for communication with other
+applications.
+
+C-x RET x specifies a coding system for all subsequent cutting and
+pasting operations.
+
+** You can specify the printer to use for commands that do printing by
+setting the variable `printer-name'.  Just what a printer name looks
+like depends on your operating system.  You can specify a different
+printer for the Postscript printing commands by setting
+`ps-printer-name'.
+
+** Emacs now supports on-the-fly spell checking by the means of a
+minor mode.  It is called M-x flyspell-mode.  You don't have to remember
+any other special commands to use it, and you will hardly notice it
+except when you make a spelling error.  Flyspell works by highlighting
+incorrect words as soon as they are completed or as soon as the cursor
+hits a new word.
+
+Flyspell mode works with whichever dictionary you have selected for
+Ispell in Emacs.  In TeX mode, it understands TeX syntax so as not
+to be confused by TeX commands.
+
+You can correct a misspelled word by editing it into something
+correct.  You can also correct it, or accept it as correct, by
+clicking on the word with Mouse-2; that gives you a pop-up menu
+of various alternative replacements and actions.
+
+Flyspell mode also proposes "automatic" corrections.  M-TAB replaces
+the current misspelled word with a possible correction.  If several
+corrections are made possible, M-TAB cycles through them in
+alphabetical order, or in order of decreasing likelihood if
+flyspell-sort-corrections is nil.
+
+Flyspell mode also flags an error when a word is repeated, if
+flyspell-mark-duplications-flag is non-nil.
+
+** Changes in input method usage.
+
+Now you can use arrow keys (right, left, down, up) for selecting among
+the alternatives just the same way as you do by C-f, C-b, C-n, and C-p
+respectively.
+
+You can use the ENTER key to accept the current conversion.
+
+If you type TAB to display a list of alternatives, you can select one
+of the alternatives with Mouse-2.
+
+The meaning of the variable `input-method-verbose-flag' is changed so
+that you can set it to t, nil, `default', or `complex-only'.
+
+  If the value is nil, extra guidance is never given.
+
+  If the value is t, extra guidance is always given.
+
+  If the value is `complex-only', extra guidance is always given only
+  when you are using complex input methods such as chinese-py.
+
+  If the value is `default' (this is the default), extra guidance is
+  given in the following case:
+    o When you are using a complex input method.
+    o When you are using a simple input method but not in the minibuffer.
+
+If you are using Emacs through a very slow line, setting
+input-method-verbose-flag to nil or to complex-only is a good choice,
+and if you are using an input method you are not familiar with,
+setting it to t is helpful.
+
+The old command select-input-method is now called set-input-method.
+
+In the language environment "Korean", you can use the following
+keys:
+	Shift-SPC	toggle-korean-input-method
+	C-F9		quail-hangul-switch-symbol-ksc
+	F9		quail-hangul-switch-hanja
+These key bindings are canceled when you switch to another language
+environment.
+
+** The minibuffer history of file names now records the specified file
+names, not the entire minibuffer input.  For example, if the
+minibuffer starts out with /usr/foo/, you might type in /etc/passwd to
+get
+
+     /usr/foo//etc/passwd
+
+which stands for the file /etc/passwd.
+
+Formerly, this used to put /usr/foo//etc/passwd in the history list.
+Now this puts just /etc/passwd in the history list.
+
+** If you are root, Emacs sets backup-by-copying-when-mismatch to t
+at startup, so that saving a file will be sure to preserve
+its owner and group.
+
+** find-func.el can now also find the place of definition of Emacs
+Lisp variables in user-loaded libraries.
+
+** C-x r t (string-rectangle) now deletes the existing rectangle
+contents before inserting the specified string on each line.
+
+** There is a new command delete-whitespace-rectangle
+which deletes whitespace starting from a particular column
+in all the lines on a rectangle.  The column is specified
+by the left edge of the rectangle.
+
+** You can now store a number into a register with C-u NUMBER C-x r n REG,
+increment it by INC with C-u INC C-x r + REG (to increment by one, omit
+C-u INC), and insert it in the buffer with C-x r g REG.  This is useful
+for writing keyboard macros.
+
+** The new command M-x speedbar displays a frame in which directories,
+files, and tags can be displayed, manipulated, and jumped to.  The
+frame defaults to 20 characters in width, and is the same height as
+the frame that it was started from.  Some major modes define
+additional commands for the speedbar, including Rmail, GUD/GDB, and
+info.
+
+** query-replace-regexp is now bound to C-M-%.
+
+** In Transient Mark mode, when the region is active, M-x
+query-replace and the other replace commands now operate on the region
+contents only.
+
+** M-x write-region, when used interactively, now asks for
+confirmation before overwriting an existing file.  When you call
+the function from a Lisp program, a new optional argument CONFIRM
+says whether to ask for confirmation in this case.
+
+** If you use find-file-literally and the file is already visited
+non-literally, the command asks you whether to revisit the file
+literally.  If you say no, it signals an error.
+
+** Major modes defined with the "derived mode" feature
+now use the proper name for the mode hook: WHATEVER-mode-hook.
+Formerly they used the name WHATEVER-mode-hooks, but that is
+inconsistent with Emacs conventions.
+
+** shell-command-on-region (and shell-command) reports success or
+failure if the command produces no output.
+
+** Set focus-follows-mouse to nil if your window system or window
+manager does not transfer focus to another window when you just move
+the mouse.
+
+** mouse-menu-buffer-maxlen has been renamed to
+mouse-buffer-menu-maxlen to be consistent with the other related
+function and variable names.
+
+** The new variable auto-coding-alist specifies coding systems for
+reading specific files.  This has higher priority than
+file-coding-system-alist.
+
+** If you set the variable unibyte-display-via-language-environment to
+t, then Emacs displays non-ASCII characters are displayed by
+converting them to the equivalent multibyte characters according to
+the current language environment.  As a result, they are displayed
+according to the current fontset.
+
+** C-q's handling of codes in the range 0200 through 0377 is changed.
+
+The codes in the range 0200 through 0237 are inserted as one byte of
+that code regardless of the values of nonascii-translation-table and
+nonascii-insert-offset.
+
+For the codes in the range 0240 through 0377, if
+enable-multibyte-characters is non-nil and nonascii-translation-table
+nor nonascii-insert-offset can't convert them to valid multibyte
+characters, they are converted to Latin-1 characters.
+
+** If you try to find a file that is not read-accessible, you now get
+an error, rather than an empty buffer and a warning.
+
+** In the minibuffer history commands M-r and M-s, an upper case
+letter in the regular expression forces case-sensitive search.
+
+** In the *Help* buffer, cross-references to commands and variables
+are inferred and hyperlinked.  Use C-h m in Help mode for the relevant
+command keys.
+
+** M-x apropos-command, with a prefix argument, no longer looks for
+user option variables--instead it looks for noninteractive functions.
+
+Meanwhile, the command apropos-variable normally searches for
+user option variables; with a prefix argument, it looks at
+all variables that have documentation.
+
+** When you type a long line in the minibuffer, and the minibuffer
+shows just one line, automatically scrolling works in a special way
+that shows you overlap with the previous line of text.  The variable
+minibuffer-scroll-overlap controls how many characters of overlap
+it should show; the default is 20.
+
+Meanwhile, Resize Minibuffer mode is still available; in that mode,
+the minibuffer grows taller (up to a point) as needed to show the whole
+of your input.
+
+** The new command M-x customize-changed-options lets you customize
+all the options whose meanings or default values have changed in
+recent Emacs versions.  You specify a previous Emacs version number as
+argument, and the command creates a customization buffer showing all
+the customizable options which were changed since that version.
+Newly added options are included as well.
+
+If you don't specify a particular version number argument,
+then the customization buffer shows all the customizable options
+for which Emacs versions of changes are recorded.
+
+This function is also bound to the Changed Options entry in the
+Customize menu.
+
+** When you run M-x grep with a prefix argument, it figures out
+the tag around point and puts that into the default grep command.
+
+** The new command M-* (pop-tag-mark) pops back through a history of
+buffer positions from which M-. or other tag-finding commands were
+invoked.
+
+** The new variable comment-padding specifies the number of spaces
+that `comment-region' will insert before the actual text of the comment.
+The default is 1.
+
+** In Fortran mode the characters `.', `_' and `$' now have symbol
+syntax, not word syntax.  Fortran mode now supports `imenu' and has
+new commands fortran-join-line (M-^) and fortran-narrow-to-subprogram
+(C-x n d).  M-q can be used to fill a statement or comment block
+sensibly.
+
+** GUD now supports jdb, the Java debugger, and pdb, the Python debugger.
+
+** If you set the variable add-log-keep-changes-together to a non-nil
+value, the command `C-x 4 a' will automatically notice when you make
+two entries in one day for one file, and combine them.
+
+** You can use the command M-x diary-mail-entries to mail yourself a
+reminder about upcoming diary entries.  See the documentation string
+for a sample shell script for calling this function automatically
+every night.
+
+** Desktop changes
+
+*** All you need to do to enable use of the Desktop package, is to set
+the variable desktop-enable to t with Custom.
+
+*** Minor modes are now restored.  Which minor modes are restored
+and how modes are restored is controlled by `desktop-minor-mode-table'.
+
+** There is no need to do anything special, now, to enable Gnus to
+read and post multi-lingual articles.
+
+** Outline mode has now support for showing hidden outlines when
+doing an isearch.  In order for this to happen search-invisible should
+be set to open (the default).  If an isearch match is inside a hidden
+outline the outline is made visible.  If you continue pressing C-s and
+the match moves outside the formerly invisible outline, the outline is
+made invisible again.
+
+** Mail reading and sending changes
+
+*** The Rmail e command now switches to displaying the whole header of
+the message before it lets you edit the message.  This is so that any
+changes you make in the header will not be lost if you subsequently
+toggle.
+
+*** The w command in Rmail, which writes the message body into a file,
+now works in the summary buffer as well.  (The command to delete the
+summary buffer is now Q.)  The default file name for the w command, if
+the message has no subject, is stored in the variable
+rmail-default-body-file.
+
+*** Most of the commands and modes that operate on mail and netnews no
+longer depend on the value of mail-header-separator.  Instead, they
+handle whatever separator the buffer happens to use.
+
+*** If you set mail-signature to a value which is not t, nil, or a string,
+it should be an expression.  When you send a message, this expression
+is evaluated to insert the signature.
+
+*** The new Lisp library feedmail.el (version 8) enhances processing of
+outbound email messages.  It works in coordination with other email
+handling packages (e.g., rmail, VM, gnus) and is responsible for
+putting final touches on messages and actually submitting them for
+transmission.  Users of the emacs program "fakemail" might be
+especially interested in trying feedmail.
+
+feedmail is not enabled by default.  See comments at the top of
+feedmail.el for set-up instructions.  Among the bigger features
+provided by feedmail are:
+
+**** you can park outgoing messages into a disk-based queue and
+stimulate sending some or all of them later (handy for laptop users);
+there is also a queue for draft messages
+
+**** you can get one last look at the prepped outbound message and
+be prompted for confirmation
+
+**** does smart filling of address headers
+
+**** can generate a MESSAGE-ID: line and a DATE: line; the date can be
+the time the message was written or the time it is being sent; this
+can make FCC copies more closely resemble copies that recipients get
+
+**** you can specify an arbitrary function for actually transmitting
+the message; included in feedmail are interfaces for /bin/[r]mail,
+/usr/lib/sendmail, and Emacs Lisp smtpmail; it's easy to write a new
+function for something else (10-20 lines of Lisp code).
+
+** Dired changes
+
+*** The Dired function dired-do-toggle, which toggles marked and unmarked
+files, is now bound to "t" instead of "T".
+
+*** dired-at-point has been added to ffap.el.  It allows one to easily
+run Dired on the directory name at point.
+
+*** Dired has a new command: %g.  It searches the contents of
+files in the directory and marks each file that contains a match
+for a specified regexp.
+
+** VC Changes
+
+*** New option vc-ignore-vc-files lets you turn off version control
+conveniently.
+
+*** VC Dired has been completely rewritten.  It is now much
+faster, especially for CVS, and works very similar to ordinary
+Dired.
+
+VC Dired is invoked by typing C-x v d and entering the name of the
+directory to display.  By default, VC Dired gives you a recursive
+listing of all files at or below the given directory which are
+currently locked (for CVS, all files not up-to-date are shown).
+
+You can change the listing format by setting vc-dired-recurse to nil,
+then it shows only the given directory, and you may also set
+vc-dired-terse-display to nil, then it shows all files under version
+control plus the names of any subdirectories, so that you can type `i'
+on such lines to insert them manually, as in ordinary Dired.
+
+All Dired commands operate normally in VC Dired, except for `v', which
+is redefined as the version control prefix.  That means you may type
+`v l', `v =' etc. to invoke `vc-print-log', `vc-diff' and the like on
+the file named in the current Dired buffer line.  `v v' invokes
+`vc-next-action' on this file, or on all files currently marked.
+
+The new command `v t' (vc-dired-toggle-terse-mode) allows you to
+toggle between terse display (only locked files) and full display (all
+VC files plus subdirectories).  There is also a special command,
+`* l', to mark all files currently locked.
+
+Giving a prefix argument to C-x v d now does the same thing as in
+ordinary Dired: it allows you to supply additional options for the ls
+command in the minibuffer, to fine-tune VC Dired's output.
+
+*** Under CVS, if you merge changes from the repository into a working
+file, and CVS detects conflicts, VC now offers to start an ediff
+session to resolve them.
+
+Alternatively, you can use the new command `vc-resolve-conflicts' to
+resolve conflicts in a file at any time.  It works in any buffer that
+contains conflict markers as generated by rcsmerge (which is what CVS
+uses as well).
+
+*** You can now transfer changes between branches, using the new
+command vc-merge (C-x v m).  It is implemented for RCS and CVS.  When
+you invoke it in a buffer under version-control, you can specify
+either an entire branch or a pair of versions, and the changes on that
+branch or between the two versions are merged into the working file.
+If this results in any conflicts, they may be resolved interactively,
+using ediff.
+
+** Changes in Font Lock
+
+*** The face and variable previously known as font-lock-reference-face
+are now called font-lock-constant-face to better reflect their typical
+use for highlighting constants and labels.  (Its face properties are
+unchanged.)  The variable font-lock-reference-face remains for now for
+compatibility reasons, but its value is font-lock-constant-face.
+
+** Frame name display changes
+
+*** The command set-frame-name lets you set the name of the current
+frame.  You can use the new command select-frame-by-name to select and
+raise a frame; this is mostly useful on character-only terminals, or
+when many frames are invisible or iconified.
+
+*** On character-only terminal (not a window system), changing the
+frame name is now reflected on the mode line and in the Buffers/Frames
+menu.
+
+** Comint (subshell) changes
+
+*** In Comint modes, the commands to kill, stop or interrupt a
+subjob now also kill pending input.  This is for compatibility
+with ordinary shells, where the signal characters do this.
+
+*** There are new commands in Comint mode.
+
+C-c C-x fetches the "next" line from the input history;
+that is, the line after the last line you got.
+You can use this command to fetch successive lines, one by one.
+
+C-c SPC accumulates lines of input.  More precisely, it arranges to
+send the current line together with the following line, when you send
+the following line.
+
+C-c C-a if repeated twice consecutively now moves to the process mark,
+which separates the pending input from the subprocess output and the
+previously sent input.
+
+C-c M-r now runs comint-previous-matching-input-from-input;
+it searches for a previous command, using the current pending input
+as the search string.
+
+*** New option compilation-scroll-output can be set to scroll
+automatically in compilation-mode windows.
+
+** C mode changes
+
+*** Multiline macros are now handled, both as they affect indentation,
+and as recognized syntax.  New syntactic symbol cpp-macro-cont is
+assigned to second and subsequent lines of a multiline macro
+definition.
+
+*** A new style "user" which captures all non-hook-ified
+(i.e. top-level) .emacs file variable settings and customizations.
+Style "cc-mode" is an alias for "user" and is deprecated.  "gnu"
+style is still the default however.
+
+*** "java" style now conforms to Sun's JDK coding style.
+
+*** There are new commands c-beginning-of-defun, c-end-of-defun which
+are alternatives which you could bind to C-M-a and C-M-e if you prefer
+them.  They do not have key bindings by default.
+
+*** New and improved implementations of M-a (c-beginning-of-statement)
+and M-e (c-end-of-statement).
+
+*** C++ namespace blocks are supported, with new syntactic symbols
+namespace-open, namespace-close, and innamespace.
+
+*** File local variable settings of c-file-style and c-file-offsets
+makes the style variables local to that buffer only.
+
+*** New indentation functions c-lineup-close-paren,
+c-indent-one-line-block, c-lineup-dont-change.
+
+*** Improvements (hopefully!) to the way CC Mode is loaded.  You
+should now be able to do a (require 'cc-mode) to get the entire
+package loaded properly for customization in your .emacs file.  A new
+variable c-initialize-on-load controls this and is t by default.
+
+** Changes to hippie-expand.
+
+*** New customization variable `hippie-expand-dabbrev-skip-space'. If
+non-nil, trailing spaces may be included in the abbreviation to search for,
+which then gives the same behavior as the original `dabbrev-expand'.
+
+*** New customization variable `hippie-expand-dabbrev-as-symbol'. If
+non-nil, characters of syntax '_' is considered part of the word when
+expanding dynamically.
+
+*** New customization variable `hippie-expand-no-restriction'. If
+non-nil, narrowed buffers are widened before they are searched.
+
+*** New customization variable `hippie-expand-only-buffers'. If
+non-empty, buffers searched are restricted to the types specified in
+this list. Useful for example when constructing new special-purpose
+expansion functions with `make-hippie-expand-function'.
+
+*** Text properties of the expansion are no longer copied.
+
+** Changes in BibTeX mode.
+
+*** Any titleword matching a regexp in the new variable
+bibtex-autokey-titleword-ignore (case sensitive) is ignored during
+automatic key generation.  This replaces variable
+bibtex-autokey-titleword-first-ignore, which only checked for matches
+against the first word in the title.
+
+*** Autokey generation now uses all words from the title, not just
+capitalized words.  To avoid conflicts with existing customizations,
+bibtex-autokey-titleword-ignore is set up such that words starting with
+lowerkey characters will still be ignored.  Thus, if you want to use
+lowercase words from the title, you will have to overwrite the
+bibtex-autokey-titleword-ignore standard setting.
+
+*** Case conversion of names and title words for automatic key
+generation is more flexible.  Variable bibtex-autokey-preserve-case is
+replaced by bibtex-autokey-titleword-case-convert and
+bibtex-autokey-name-case-convert.
+
+** Changes in vcursor.el.
+
+*** Support for character terminals is available: there is a new keymap
+and the vcursor will appear as an arrow between buffer text.  A
+variable `vcursor-interpret-input' allows input from the vcursor to be
+entered exactly as if typed.  Numerous functions, including
+`vcursor-compare-windows', have been rewritten to improve consistency
+in the selection of windows and corresponding keymaps.
+
+*** vcursor options can now be altered with M-x customize under the
+Editing group once the package is loaded.
+
+*** Loading vcursor now does not define keys by default, as this is
+generally a bad side effect.  Use M-x customize to set
+vcursor-key-bindings to t to restore the old behavior.
+
+*** vcursor-auto-disable can be `copy', which turns off copying from the
+vcursor, but doesn't disable it, after any non-vcursor command.
+
+** Ispell changes.
+
+*** You can now spell check comments and strings in the current
+buffer with M-x ispell-comments-and-strings.  Comments and strings
+are identified by syntax tables in effect.
+
+*** Generic region skipping implemented.
+A single buffer can be broken into a number of regions where text will
+and will not be checked.  The definitions of the regions can be user
+defined.  New applications and improvements made available by this
+include:
+
+    o URLs are automatically skipped
+    o EMail message checking is vastly improved.
+
+*** Ispell can highlight the erroneous word even on non-window terminals.
+
+** Changes to RefTeX mode
+
+RefTeX has been updated in order to make it more usable with very
+large projects (like a several volume math book).  The parser has been
+re-written from scratch.  To get maximum speed from RefTeX, check the
+section `Optimizations' in the manual.
+
+*** New recursive parser.
+
+The old version of RefTeX created a single large buffer containing the
+entire multifile document in order to parse the document.  The new
+recursive parser scans the individual files.
+
+*** Parsing only part of a document.
+
+Reparsing of changed document parts can now be made faster by enabling
+partial scans.  To use this feature, read the documentation string of
+the variable `reftex-enable-partial-scans' and set the variable to t.
+
+    (setq reftex-enable-partial-scans t)
+
+*** Storing parsing information in a file.
+
+This can improve startup times considerably.  To turn it on, use
+
+    (setq reftex-save-parse-info t)
+
+*** Using multiple selection buffers
+
+If the creation of label selection buffers is too slow (this happens
+for large documents), you can reuse these buffers by setting
+
+    (setq reftex-use-multiple-selection-buffers t)
+
+*** References to external documents.
+
+The LaTeX package `xr' allows to cross-reference labels in external
+documents.  RefTeX can provide information about the external
+documents as well.  To use this feature, set up the \externaldocument
+macros required by the `xr' package and rescan the document with
+RefTeX.  The external labels can then be accessed with the `x' key in
+the selection buffer provided by `reftex-reference' (bound to `C-c )').
+The `x' key also works in the table of contents buffer.
+
+*** Many more labeled LaTeX environments are recognized by default.
+
+The built-in command list now covers all the standard LaTeX commands,
+and all of the major packages included in the LaTeX distribution.
+
+Also, RefTeX now understands the \appendix macro and changes
+the enumeration of sections in the *toc* buffer accordingly.
+
+*** Mouse support for selection and *toc* buffers
+
+The mouse can now be used to select items in the selection and *toc*
+buffers.  See also the new option `reftex-highlight-selection'.
+
+*** New keymaps for selection and table of contents modes.
+
+The selection processes for labels and citation keys, and the table of
+contents buffer now have their own keymaps: `reftex-select-label-map',
+`reftex-select-bib-map', `reftex-toc-map'.  The selection processes
+have a number of new keys predefined.  In particular, TAB lets you
+enter a label with completion.  Check the on-the-fly help (press `?'
+at the selection prompt) or read the Info documentation to find out
+more.
+
+*** Support for the varioref package
+
+The `v' key in the label selection buffer toggles \ref versus \vref.
+
+*** New hooks
+
+Three new hooks can be used to redefine the way labels, references,
+and citations are created. These hooks are
+`reftex-format-label-function', `reftex-format-ref-function',
+`reftex-format-cite-function'.
+
+*** Citations outside LaTeX
+
+The command `reftex-citation' may also be used outside LaTeX (e.g. in
+a mail buffer).  See the Info documentation for details.
+
+*** Short context is no longer fontified.
+
+The short context in the label menu no longer copies the
+fontification from the text in the buffer.  If you prefer it to be
+fontified, use
+
+   (setq reftex-refontify-context t)
+
+** file-cache-minibuffer-complete now accepts a prefix argument.
+With a prefix argument, it does not try to do completion of
+the file name within its directory; it only checks for other
+directories that contain the same file name.
+
+Thus, given the file name Makefile, and assuming that a file
+Makefile.in exists in the same directory, ordinary
+file-cache-minibuffer-complete will try to complete Makefile to
+Makefile.in and will therefore never look for other directories that
+have Makefile.  A prefix argument tells it not to look for longer
+names such as Makefile.in, so that instead it will look for other
+directories--just as if the name were already complete in its present
+directory.
+
+** New modes and packages
+
+*** There is a new alternative major mode for Perl, Cperl mode.
+It has many more features than Perl mode, and some people prefer
+it, but some do not.
+
+*** There is a new major mode, M-x vhdl-mode, for editing files of VHDL
+code.
+
+*** M-x which-function-mode enables a minor mode that displays the
+current function name continuously in the mode line, as you move
+around in a buffer.
+
+Which Function mode is effective in major modes which support Imenu.
+
+*** Gametree is a major mode for editing game analysis trees.  The author
+uses it for keeping notes about his postal Chess games, but it should
+be helpful for other two-player games as well, as long as they have an
+established system of notation similar to Chess.
+
+*** The new minor mode checkdoc-minor-mode provides Emacs Lisp
+documentation string checking for style and spelling.  The style
+guidelines are found in the Emacs Lisp programming manual.
+
+*** The net-utils package makes some common networking features
+available in Emacs.  Some of these functions are wrappers around
+system utilities (ping, nslookup, etc.); others are implementations of
+simple protocols (finger, whois) in Emacs Lisp.  There are also
+functions to make simple connections to TCP/IP ports for debugging and
+the like.
+
+*** highlight-changes-mode is a minor mode that uses colors to
+identify recently changed parts of the buffer text.
+
+*** The new package `midnight' lets you specify things to be done
+within Emacs at midnight--by default, kill buffers that you have not
+used in a considerable time.  To use this feature, customize
+the user option `midnight-mode' to t.
+
+*** The file generic-x.el defines a number of simple major modes.
+
+  apache-generic-mode: For Apache and NCSA httpd configuration files
+  samba-generic-mode: Samba configuration files
+  fvwm-generic-mode: For fvwm initialization files
+  x-resource-generic-mode: For X resource files
+  hosts-generic-mode: For hosts files (.rhosts, /etc/hosts, etc.)
+  mailagent-rules-generic-mode: For mailagent .rules files
+  javascript-generic-mode: For JavaScript files
+  vrml-generic-mode: For VRML files
+  java-manifest-generic-mode: For Java MANIFEST files
+  java-properties-generic-mode: For Java property files
+  mailrc-generic-mode: For .mailrc files
+
+  Platform-specific modes:
+
+  prototype-generic-mode: For Solaris/Sys V prototype files
+  pkginfo-generic-mode: For Solaris/Sys V pkginfo files
+  alias-generic-mode: For C shell alias files
+  inf-generic-mode: For MS-Windows INF files
+  ini-generic-mode: For MS-Windows INI files
+  reg-generic-mode: For MS-Windows Registry files
+  bat-generic-mode: For MS-Windows BAT scripts
+  rc-generic-mode: For MS-Windows Resource files
+  rul-generic-mode: For InstallShield scripts
+
+
+* Lisp changes in Emacs 20.3 since the Emacs Lisp Manual was published
+
+** If you want a Lisp file to be read in unibyte mode,
+use -*-unibyte: t;-*- on its first line.
+That will force Emacs to read that file in unibyte mode.
+Otherwise, the file will be loaded and byte-compiled in multibyte mode.
+
+Thus, each lisp file is read in a consistent way regardless of whether
+you started Emacs with --unibyte, so that a Lisp program gives
+consistent results regardless of how Emacs was started.
+
+** The new function assoc-default is useful for searching an alist,
+and using a default value if the key is not found there.  You can
+specify a comparison predicate, so this function is useful for
+searching comparing a string against an alist of regular expressions.
+
+** The functions unibyte-char-to-multibyte and
+multibyte-char-to-unibyte convert between unibyte and multibyte
+character codes, in a way that is appropriate for the current language
+environment.
+
+** The functions read-event, read-char and read-char-exclusive now
+take two optional arguments.  PROMPT, if non-nil, specifies a prompt
+string.  SUPPRESS-INPUT-METHOD, if non-nil, says to disable the
+current input method for reading this one event.
+
+** Two new variables print-escape-nonascii and print-escape-multibyte
+now control whether to output certain characters as
+backslash-sequences.  print-escape-nonascii applies to single-byte
+non-ASCII characters; print-escape-multibyte applies to multibyte
+characters.  Both of these variables are used only when printing
+in readable fashion (prin1 uses them, princ does not).
+
+
+* Lisp changes in Emacs 20.3 before the Emacs Lisp Manual was published
+
+** Compiled Emacs Lisp files made with the modified "MBSK" version
+of Emacs 20.2 do not work in Emacs 20.3.
+
+** Buffer positions are now measured in characters, as they were
+in Emacs 19 and before.  This means that (forward-char 1)
+always increases point by 1.
+
+The function chars-in-region now just subtracts its arguments.  It is
+considered obsolete.  The function char-boundary-p has been deleted.
+
+See below for additional changes relating to multibyte characters.
+
+** defcustom, defface and defgroup now accept the keyword `:version'.
+Use this to specify in which version of Emacs a certain variable's
+default value changed.  For example,
+
+   (defcustom foo-max 34 "*Maximum number of foo's allowed."
+     :type 'integer
+     :group 'foo
+     :version "20.3")
+
+   (defgroup foo-group nil "The foo group."
+     :version "20.3")
+
+If an entire new group is added or the variables in it have the
+default values changed, then just add a `:version' to that group. It
+is recommended that new packages added to the distribution contain a
+`:version' in the top level group.
+
+This information is used to control the customize-changed-options command.
+
+** It is now an error to change the value of a symbol whose name
+starts with a colon--if it is interned in the standard obarray.
+
+However, setting such a symbol to its proper value, which is that
+symbol itself, is not an error.  This is for the sake of programs that
+support previous Emacs versions by explicitly setting these variables
+to themselves.
+
+If you set the variable keyword-symbols-constant-flag to nil,
+this error is suppressed, and you can set these symbols to any
+values whatever.
+
+** There is a new debugger command, R.
+It evaluates an expression like e, but saves the result
+in the buffer *Debugger-record*.
+
+** Frame-local variables.
+
+You can now make a variable local to various frames.  To do this, call
+the function make-variable-frame-local; this enables frames to have
+local bindings for that variable.
+
+These frame-local bindings are actually frame parameters: you create a
+frame-local binding in a specific frame by calling
+modify-frame-parameters and specifying the variable name as the
+parameter name.
+
+Buffer-local bindings take precedence over frame-local bindings.
+Thus, if the current buffer has a buffer-local binding, that binding is
+active; otherwise, if the selected frame has a frame-local binding,
+that binding is active; otherwise, the default binding is active.
+
+It would not be hard to implement window-local bindings, but it is not
+clear that this would be very useful; windows tend to come and go in a
+very transitory fashion, so that trying to produce any specific effect
+through a window-local binding would not be very robust.
+
+** `sregexq' and `sregex' are two new functions for constructing
+"symbolic regular expressions."  These are Lisp expressions that, when
+evaluated, yield conventional string-based regexps.  The symbolic form
+makes it easier to construct, read, and maintain complex patterns.
+See the documentation in sregex.el.
+
+** parse-partial-sexp's return value has an additional element which
+is used to pass information along if you pass it to another call to
+parse-partial-sexp, starting its scan where the first call ended.
+The contents of this field are not yet finalized.
+
+** eval-region now accepts a fourth optional argument READ-FUNCTION.
+If it is non-nil, that function is used instead of `read'.
+
+** unload-feature by default removes the feature's functions from
+known hooks to avoid trouble, but a package providing FEATURE can
+define a hook FEATURE-unload-hook to be run by unload-feature instead.
+
+** read-from-minibuffer no longer returns the argument DEFAULT-VALUE
+when the user enters empty input.  It now returns the null string, as
+it did in Emacs 19.  The default value is made available in the
+history via M-n, but it is not applied here as a default.
+
+The other, more specialized minibuffer-reading functions continue to
+return the default value (not the null string) when the user enters
+empty input.
+
+** The new variable read-buffer-function controls which routine to use
+for selecting buffers.  For example, if you set this variable to
+`iswitchb-read-buffer', iswitchb will be used to read buffer names.
+Other functions can also be used if they accept the same arguments as
+`read-buffer' and return the selected buffer name as a string.
+
+** The new function read-passwd reads a password from the terminal,
+echoing a period for each character typed.  It takes three arguments:
+a prompt string, a flag which says "read it twice to make sure", and a
+default password to use if the user enters nothing.
+
+** The variable fill-nobreak-predicate gives major modes a way to
+specify not to break a line at certain places.  Its value is a
+function which is called with no arguments, with point located at the
+place where a break is being considered.  If the function returns
+non-nil, then the line won't be broken there.
+
+** window-end now takes an optional second argument, UPDATE.
+If this is non-nil, then the function always returns an accurate
+up-to-date value for the buffer position corresponding to the
+end of the window, even if this requires computation.
+
+** other-buffer now takes an optional argument FRAME
+which specifies which frame's buffer list to use.
+If it is nil, that means use the selected frame's buffer list.
+
+** The new variable buffer-display-time, always local in every buffer,
+holds the value of (current-time) as of the last time that a window
+was directed to display this buffer.
+
+** It is now meaningful to compare two window-configuration objects
+with `equal'.  Two window-configuration objects are equal if they
+describe equivalent arrangements of windows, in the same frame--in
+other words, if they would give the same results if passed to
+set-window-configuration.
+
+** compare-window-configurations is a new function that compares two
+window configurations loosely.  It ignores differences in saved buffer
+positions and scrolling, and considers only the structure and sizes of
+windows and the choice of buffers to display.
+
+** The variable minor-mode-overriding-map-alist allows major modes to
+override the key bindings of a minor mode.  The elements of this alist
+look like the elements of minor-mode-map-alist: (VARIABLE . KEYMAP).
+
+If the VARIABLE in an element of minor-mode-overriding-map-alist has a
+non-nil value, the paired KEYMAP is active, and totally overrides the
+map (if any) specified for the same variable in minor-mode-map-alist.
+
+minor-mode-overriding-map-alist is automatically local in all buffers,
+and it is meant to be set by major modes.
+
+** The function match-string-no-properties is like match-string
+except that it discards all text properties from the result.
+
+** The function load-average now accepts an optional argument
+USE-FLOATS.  If it is non-nil, the load average values are returned as
+floating point numbers, rather than as integers to be divided by 100.
+
+** The new variable temporary-file-directory specifies the directory
+to use for creating temporary files.  The default value is determined
+in a reasonable way for your operating system; on GNU and Unix systems
+it is based on the TMP and TMPDIR environment variables.
+
+** Menu changes
+
+*** easymenu.el now uses the new menu item format and supports the
+keywords :visible and :filter.  The existing keyword :keys is now
+better supported.
+
+The variable `easy-menu-precalculate-equivalent-keybindings' controls
+a new feature which calculates keyboard equivalents for the menu when
+you define the menu.  The default is t.  If you rarely use menus, you
+can set the variable to nil to disable this precalculation feature;
+then the calculation is done only if you use the menu bar.
+
+*** A new format for menu items is supported.
+
+In a keymap, a key binding that has the format
+ (STRING . REAL-BINDING) or (STRING HELP-STRING . REAL-BINDING)
+defines a menu item. Now a menu item definition may also be a list that
+starts with the symbol `menu-item'.
+
+The format is:
+ (menu-item ITEM-NAME) or
+ (menu-item ITEM-NAME REAL-BINDING . ITEM-PROPERTY-LIST)
+where ITEM-NAME is an expression which evaluates to the menu item
+string, and ITEM-PROPERTY-LIST has the form of a property list.
+The supported properties include
+
+:enable FORM      Evaluate FORM to determine whether the
+		  item is enabled.
+:visible FORM     Evaluate FORM to determine whether the
+		  item should appear in the menu.
+:filter FILTER-FN
+		  FILTER-FN is a function of one argument,
+		  which will be REAL-BINDING.
+		  It should return a binding to use instead.
+:keys DESCRIPTION
+		  DESCRIPTION is a string that describes an equivalent keyboard
+                  binding for REAL-BINDING.  DESCRIPTION is expanded with
+                  `substitute-command-keys' before it is used.
+:key-sequence KEY-SEQUENCE
+		  KEY-SEQUENCE is a key-sequence for an equivalent
+                  keyboard binding.
+:key-sequence nil
+	          This means that the command normally has no
+		  keyboard equivalent.
+:help HELP	  HELP is the extra help string (not currently used).
+:button (TYPE . SELECTED)
+		  TYPE is :toggle or :radio.
+		  SELECTED is a form, to be evaluated, and its
+		  value says whether this button is currently selected.
+
+Buttons are at the moment only simulated by prefixes in the menu.
+Eventually ordinary X-buttons may be supported.
+
+(menu-item ITEM-NAME) defines unselectable item.
+
+** New event types
+
+*** The new event type `mouse-wheel' is generated by a wheel on a
+mouse (such as the MS Intellimouse).  The event contains a delta that
+corresponds to the amount and direction that the wheel is rotated,
+which is typically used to implement a scroll or zoom.  The format is:
+
+  (mouse-wheel POSITION DELTA)
+
+where POSITION is a list describing the position of the event in the
+same format as a mouse-click event, and DELTA is a signed number
+indicating the number of increments by which the wheel was rotated.  A
+negative DELTA indicates that the wheel was rotated backwards, towards
+the user, and a positive DELTA indicates that the wheel was rotated
+forward, away from the user.
+
+As of now, this event type is generated only on MS Windows.
+
+*** The new event type `drag-n-drop' is generated when a group of
+files is selected in an application outside of Emacs, and then dragged
+and dropped onto an Emacs frame.  The event contains a list of
+filenames that were dragged and dropped, which are then typically
+loaded into Emacs.  The format is:
+
+  (drag-n-drop POSITION FILES)
+
+where POSITION is a list describing the position of the event in the
+same format as a mouse-click event, and FILES is the list of filenames
+that were dragged and dropped.
+
+As of now, this event type is generated only on MS Windows.
+
+** Changes relating to multibyte characters.
+
+*** The variable enable-multibyte-characters is now read-only;
+any attempt to set it directly signals an error.  The only way
+to change this value in an existing buffer is with set-buffer-multibyte.
+
+*** In a string constant, `\ ' now stands for "nothing at all".  You
+can use it to terminate a hex escape which is followed by a character
+that could otherwise be read as part of the hex escape.
+
+*** String indices are now measured in characters, as they were
+in Emacs 19 and before.
+
+The function chars-in-string has been deleted.
+The function concat-chars has been renamed to `string'.
+
+*** The function set-buffer-multibyte sets the flag in the current
+buffer that says whether the buffer uses multibyte representation or
+unibyte representation.  If the argument is nil, it selects unibyte
+representation.  Otherwise it selects multibyte representation.
+
+This function does not change the contents of the buffer, viewed
+as a sequence of bytes.  However, it does change the contents
+viewed as characters; a sequence of two bytes which is treated as
+one character when the buffer uses multibyte representation
+will count as two characters using unibyte representation.
+
+This function sets enable-multibyte-characters to record which
+representation is in use.  It also adjusts various data in the buffer
+(including its markers, overlays and text properties) so that they are
+consistent with the new representation.
+
+*** string-make-multibyte takes a string and converts it to multibyte
+representation.  Most of the time, you don't need to care
+about the representation, because Emacs converts when necessary;
+however, it makes a difference when you compare strings.
+
+The conversion of non-ASCII characters works by adding the value of
+nonascii-insert-offset to each character, or by translating them
+using the table nonascii-translation-table.
+
+*** string-make-unibyte takes a string and converts it to unibyte
+representation.  Most of the time, you don't need to care about the
+representation, but it makes a difference when you compare strings.
+
+The conversion from multibyte to unibyte representation
+loses information; the only time Emacs performs it automatically
+is when inserting a multibyte string into a unibyte buffer.
+
+*** string-as-multibyte takes a string, and returns another string
+which contains the same bytes, but treats them as multibyte.
+
+*** string-as-unibyte takes a string, and returns another string
+which contains the same bytes, but treats them as unibyte.
+
+*** The new function compare-strings lets you compare
+portions of two strings.  Unibyte strings are converted to multibyte,
+so that a unibyte string can match a multibyte string.
+You can specify whether to ignore case or not.
+
+*** assoc-ignore-case now uses compare-strings so that
+it can treat unibyte and multibyte strings as equal.
+
+*** Regular expression operations and buffer string searches now
+convert the search pattern to multibyte or unibyte to accord with the
+buffer or string being searched.
+
+One consequence is that you cannot always use \200-\377 inside of
+[...] to match all non-ASCII characters.  This does still work when
+searching or matching a unibyte buffer or string, but not when
+searching or matching a multibyte string.  Unfortunately, there is no
+obvious choice of syntax to use within [...] for that job.  But, what
+you want is just to match all non-ASCII characters, the regular
+expression [^\0-\177] works for it.
+
+*** Structure of coding system changed.
+
+All coding systems (including aliases and subsidiaries) are named
+by symbols; the symbol's `coding-system' property is a vector
+which defines the coding system.  Aliases share the same vector
+as the principal name, so that altering the contents of this
+vector affects the principal name and its aliases.  You can define
+your own alias name of a coding system by the function
+define-coding-system-alias.
+
+The coding system definition includes a property list of its own.  Use
+the new functions `coding-system-get' and `coding-system-put' to
+access such coding system properties as post-read-conversion,
+pre-write-conversion, character-translation-table-for-decode,
+character-translation-table-for-encode, mime-charset, and
+safe-charsets.  For instance, (coding-system-get 'iso-latin-1
+'mime-charset) gives the corresponding MIME-charset parameter
+`iso-8859-1'.
+
+Among the coding system properties listed above, safe-charsets is new.
+The value of this property is a list of character sets which this
+coding system can correctly encode and decode.  For instance:
+(coding-system-get 'iso-latin-1 'safe-charsets) => (ascii latin-iso8859-1)
+
+Here, "correctly encode" means that the encoded character sets can
+also be handled safely by systems other than Emacs as far as they
+are capable of that coding system.  Though, Emacs itself can encode
+the other character sets and read it back correctly.
+
+*** The new function select-safe-coding-system can be used to find a
+proper coding system for encoding the specified region or string.
+This function requires a user interaction.
+
+*** The new functions find-coding-systems-region and
+find-coding-systems-string are helper functions used by
+select-safe-coding-system.  They return a list of all proper coding
+systems to encode a text in some region or string.  If you don't want
+a user interaction, use one of these functions instead of
+select-safe-coding-system.
+
+*** The explicit encoding and decoding functions, such as
+decode-coding-region and encode-coding-string, now set
+last-coding-system-used to reflect the actual way encoding or decoding
+was done.
+
+*** The new function detect-coding-with-language-environment can be
+used to detect a coding system of text according to priorities of
+coding systems used by some specific language environment.
+
+*** The functions detect-coding-region and detect-coding-string always
+return a list if the arg HIGHEST is nil.  Thus, if only ASCII
+characters are found, they now return a list of single element
+`undecided' or its subsidiaries.
+
+*** The new functions coding-system-change-eol-conversion and
+coding-system-change-text-conversion can be used to get a different
+coding system than what specified only in how end-of-line or text is
+converted.
+
+*** The new function set-selection-coding-system can be used to set a
+coding system for communicating with other X clients.
+
+*** The function `map-char-table' now passes as argument only valid
+character codes, plus generic characters that stand for entire
+character sets or entire subrows of a character set.  In other words,
+each time `map-char-table' calls its FUNCTION argument, the key value
+either will be a valid individual character code, or will stand for a
+range of characters.
+
+*** The new function `char-valid-p' can be used for checking whether a
+Lisp object is a valid character code or not.
+
+*** The new function `charset-after' returns a charset of a character
+in the current buffer at position POS.
+
+*** Input methods are now implemented using the variable
+input-method-function.  If this is non-nil, its value should be a
+function; then, whenever Emacs reads an input event that is a printing
+character with no modifier bits, it calls that function, passing the
+event as an argument.  Often this function will read more input, first
+binding input-method-function to nil.
+
+The return value should be a list of the events resulting from input
+method processing.  These events will be processed sequentially as
+input, before resorting to unread-command-events.  Events returned by
+the input method function are not passed to the input method function,
+not even if they are printing characters with no modifier bits.
+
+The input method function is not called when reading the second and
+subsequent events of a key sequence.
+
+*** You can customize any language environment by using
+set-language-environment-hook and exit-language-environment-hook.
+
+The hook `exit-language-environment-hook' should be used to undo
+customizations that you made with set-language-environment-hook.  For
+instance, if you set up a special key binding for a specific language
+environment by set-language-environment-hook, you should set up
+exit-language-environment-hook to restore the normal key binding.
+
+
+
+* Changes in Emacs 20.1
+
+** Emacs has a new facility for customization of its many user
+options.  It is called M-x customize.  With this facility you can look
+at the many user options in an organized way; they are grouped into a
+tree structure.
+
+M-x customize also knows what sorts of values are legitimate for each
+user option and ensures that you don't use invalid values.
+
+With M-x customize, you can set options either for the present Emacs
+session or permanently.  (Permanent settings are stored automatically
+in your .emacs file.)
+
+** Scroll bars are now on the left side of the window.
+You can change this with M-x customize-option scroll-bar-mode.
+
+** The mode line no longer includes the string `Emacs'.
+This makes more space in the mode line for other information.
+
+** When you select a region with the mouse, it is highlighted
+immediately afterward.  At that time, if you type the DELETE key, it
+kills the region.
+
+The BACKSPACE key, and the ASCII character DEL, do not do this; they
+delete the character before point, as usual.
+
+** In an incremental search the whole current match is highlighted
+on terminals which support this.  (You can disable this feature
+by setting search-highlight to nil.)
+
+** In the minibuffer, in some cases, you can now use M-n to
+insert the default value into the minibuffer as text.  In effect,
+the default value (if the minibuffer routines know it) is tacked
+onto the history "in the future".  (The more normal use of the
+history list is to use M-p to insert minibuffer input used in the
+past.)
+
+** In Text mode, now only blank lines separate paragraphs.
+This makes it possible to get the full benefit of Adaptive Fill mode
+in Text mode, and other modes derived from it (such as Mail mode).
+TAB in Text mode now runs the command indent-relative; this
+makes a practical difference only when you use indented paragraphs.
+
+As a result, the old Indented Text mode is now identical to Text mode,
+and is an alias for it.
+
+If you want spaces at the beginning of a line to start a paragraph,
+use the new mode, Paragraph Indent Text mode.
+
+** Scrolling changes
+
+*** Scroll commands to scroll a whole screen now preserve the screen
+position of the cursor, if scroll-preserve-screen-position is non-nil.
+
+In this mode, if you scroll several screens back and forth, finishing
+on the same screen where you started, the cursor goes back to the line
+where it started.
+
+*** If you set scroll-conservatively to a small number, then when you
+move point a short distance off the screen, Emacs will scroll the
+screen just far enough to bring point back on screen, provided that
+does not exceed `scroll-conservatively' lines.
+
+*** The new variable scroll-margin says how close point can come to the
+top or bottom of a window.  It is a number of screen lines; if point
+comes within that many lines of the top or bottom of the window, Emacs
+recenters the window.
+
+** International character set support (MULE)
+
+Emacs now supports a wide variety of international character sets,
+including European variants of the Latin alphabet, as well as Chinese,
+Devanagari (Hindi and Marathi), Ethiopian, Greek, IPA, Japanese,
+Korean, Lao, Russian, Thai, Tibetan, and Vietnamese scripts.  These
+features have been merged from the modified version of Emacs known as
+MULE (for "MULti-lingual Enhancement to GNU Emacs")
+
+Users of these scripts have established many more-or-less standard
+coding systems for storing files.  Emacs uses a single multibyte
+character encoding within Emacs buffers; it can translate from a wide
+variety of coding systems when reading a file and can translate back
+into any of these coding systems when saving a file.
+
+Keyboards, even in the countries where these character sets are used,
+generally don't have keys for all the characters in them.  So Emacs
+supports various "input methods", typically one for each script or
+language, to make it possible to type them.
+
+The Emacs internal multibyte encoding represents a non-ASCII
+character as a sequence of bytes in the range 0200 through 0377.
+
+The new prefix key C-x RET is used for commands that pertain
+to multibyte characters, coding systems, and input methods.
+
+You can disable multibyte character support as follows:
+
+  (setq-default enable-multibyte-characters nil)
+
+Calling the function standard-display-european turns off multibyte
+characters, unless you specify a non-nil value for the second
+argument, AUTO.  This provides compatibility for people who are
+already using standard-display-european to continue using unibyte
+characters for their work until they want to change.
+
+*** Input methods
+
+An input method is a kind of character conversion which is designed
+specifically for interactive input.  In Emacs, typically each language
+has its own input method (though sometimes several languages which use
+the same characters can share one input method).  Some languages
+support several input methods.
+
+The simplest kind of input method works by mapping ASCII letters into
+another alphabet.  This is how the Greek and Russian input methods
+work.
+
+A more powerful technique is composition: converting sequences of
+characters into one letter.  Many European input methods use
+composition to produce a single non-ASCII letter from a sequence which
+consists of a letter followed by diacritics.  For example, a' is one
+sequence of two characters that might be converted into a single
+letter.
+
+The input methods for syllabic scripts typically use mapping followed
+by conversion.  The input methods for Thai and Korean work this way.
+First, letters are mapped into symbols for particular sounds or tone
+marks; then, sequences of these which make up a whole syllable are
+mapped into one syllable sign--most often a "composite character".
+
+None of these methods works very well for Chinese and Japanese, so
+they are handled specially.  First you input a whole word using
+phonetic spelling; then, after the word is in the buffer, Emacs
+converts it into one or more characters using a large dictionary.
+
+Since there is more than one way to represent a phonetically spelled
+word using Chinese characters, Emacs can only guess which one to use;
+typically these input methods give you a way to say "guess again" if
+the first guess is wrong.
+
+*** The command C-x RET m (toggle-enable-multibyte-characters)
+turns multibyte character support on or off for the current buffer.
+
+If multibyte character support is turned off in a buffer, then each
+byte is a single character, even codes 0200 through 0377--exactly as
+they did in Emacs 19.34.  This includes the features for support for
+the European characters, ISO Latin-1 and ISO Latin-2.
+
+However, there is no need to turn off multibyte character support to
+use ISO Latin-1 or ISO Latin-2; the Emacs multibyte character set
+includes all the characters in these character sets, and Emacs can
+translate automatically to and from either one.
+
+*** Visiting a file in unibyte mode.
+
+Turning off multibyte character support in the buffer after visiting a
+file with multibyte code conversion will display the multibyte
+sequences already in the buffer, byte by byte.  This is probably not
+what you want.
+
+If you want to edit a file of unibyte characters (Latin-1, for
+example), you can do it by specifying `no-conversion' as the coding
+system when reading the file.  This coding system also turns off
+multibyte characters in that buffer.
+
+If you turn off multibyte character support entirely, this turns off
+character conversion as well.
+
+*** Displaying international characters on X Windows.
+
+A font for X typically displays just one alphabet or script.
+Therefore, displaying the entire range of characters Emacs supports
+requires using many fonts.
+
+Therefore, Emacs now supports "fontsets".  Each fontset is a
+collection of fonts, each assigned to a range of character codes.
+
+A fontset has a name, like a font.  Individual fonts are defined by
+the X server; fontsets are defined within Emacs itself.  But once you
+have defined a fontset, you can use it in a face or a frame just as
+you would use a font.
+
+If a fontset specifies no font for a certain character, or if it
+specifies a font that does not exist on your system, then it cannot
+display that character.  It will display an empty box instead.
+
+The fontset height and width are determined by the ASCII characters
+(that is, by the font in the fontset which is used for ASCII
+characters).
+
+*** Defining fontsets.
+
+Emacs does not use any fontset by default.  Its default font is still
+chosen as in previous versions.  You can tell Emacs to use a fontset
+with the `-fn' option or the `Font' X resource.
+
+Emacs creates a standard fontset automatically according to the value
+of standard-fontset-spec.  This fontset's short name is
+`fontset-standard'.  Bold, italic, and bold-italic variants of the
+standard fontset are created automatically.
+
+If you specify a default ASCII font with the `Font' resource or `-fn'
+argument, a fontset is generated from it.  This works by replacing the
+FOUNDARY, FAMILY, ADD_STYLE, and AVERAGE_WIDTH fields of the font name
+with `*' then using this to specify a fontset.  This fontset's short
+name is `fontset-startup'.
+
+Emacs checks resources of the form Fontset-N where N is 0, 1, 2...
+The resource value should have this form:
+	FONTSET-NAME, [CHARSET-NAME:FONT-NAME]...
+FONTSET-NAME should have the form of a standard X font name, except:
+	* most fields should be just the wild card "*".
+	* the CHARSET_REGISTRY field should be "fontset"
+	* the CHARSET_ENCODING field can be any nickname of the fontset.
+The construct CHARSET-NAME:FONT-NAME can be repeated any number
+of times; each time specifies the font for one character set.
+CHARSET-NAME should be the name of a character set, and FONT-NAME
+should specify an actual font to use for that character set.
+
+Each of these fontsets has an alias which is made from the
+last two font name fields, CHARSET_REGISTRY and CHARSET_ENCODING.
+You can refer to the fontset by that alias or by its full name.
+
+For any character sets that you don't mention, Emacs tries to choose a
+font by substituting into FONTSET-NAME.  For instance, with the
+following resource,
+	Emacs*Fontset-0: -*-fixed-medium-r-normal-*-24-*-*-*-*-*-fontset-24
+the font for ASCII is generated as below:
+	-*-fixed-medium-r-normal-*-24-*-ISO8859-1
+Here is the substitution rule:
+    Change CHARSET_REGISTRY and CHARSET_ENCODING to that of the charset
+    defined in the variable x-charset-registries.  For instance, ASCII has
+    the entry (ascii . "ISO8859-1") in this variable.  Then, reduce
+    sequences of wild cards -*-...-*- with a single wildcard -*-.
+    (This is to prevent use of auto-scaled fonts.)
+
+The function which processes the fontset resource value to create the
+fontset is called create-fontset-from-fontset-spec.  You can also call
+that function explicitly to create a fontset.
+
+With the X resource Emacs.Font, you can specify a fontset name just
+like an actual font name.  But be careful not to specify a fontset
+name in a wildcard resource like Emacs*Font--that tries to specify the
+fontset for other purposes including menus, and they cannot handle
+fontsets.
+
+*** The command M-x set-language-environment sets certain global Emacs
+defaults for a particular choice of language.
+
+Selecting a language environment typically specifies a default input
+method and which coding systems to recognize automatically when
+visiting files.  However, it does not try to reread files you have
+already visited; the text in those buffers is not affected.  The
+language environment may also specify a default choice of coding
+system for new files that you create.
+
+It makes no difference which buffer is current when you use
+set-language-environment, because these defaults apply globally to the
+whole Emacs session.
+
+For example, M-x set-language-environment RET Latin-1 RET
+chooses the Latin-1 character set.  In the .emacs file, you can do this
+with (set-language-environment "Latin-1").
+
+*** The command C-x RET f (set-buffer-file-coding-system)
+specifies the file coding system for the current buffer.  This
+specifies what sort of character code translation to do when saving
+the file.  As an argument, you must specify the name of one of the
+coding systems that Emacs supports.
+
+*** The command C-x RET c (universal-coding-system-argument)
+lets you specify a coding system when you read or write a file.
+This command uses the minibuffer to read a coding system name.
+After you exit the minibuffer, the specified coding system
+is used for *the immediately following command*.
+
+So if the immediately following command is a command to read or
+write a file, it uses the specified coding system for that file.
+
+If the immediately following command does not use the coding system,
+then C-x RET c ultimately has no effect.
+
+For example, C-x RET c iso-8859-1 RET C-x C-f temp RET
+visits the file `temp' treating it as ISO Latin-1.
+
+*** You can specify the coding system for a file using the -*-
+construct.  Include `coding: CODINGSYSTEM;' inside the -*-...-*-
+to specify use of coding system CODINGSYSTEM.  You can also
+specify the coding system in a local variable list at the end
+of the file.
+
+*** The command C-x RET t (set-terminal-coding-system) specifies
+the coding system for terminal output.  If you specify a character
+code for terminal output, all characters output to the terminal are
+translated into that character code.
+
+This feature is useful for certain character-only terminals built in
+various countries to support the languages of those countries.
+
+By default, output to the terminal is not translated at all.
+
+*** The command C-x RET k (set-keyboard-coding-system) specifies
+the coding system for keyboard input.
+
+Character code translation of keyboard input is useful for terminals
+with keys that send non-ASCII graphic characters--for example,
+some terminals designed for ISO Latin-1 or subsets of it.
+
+By default, keyboard input is not translated at all.
+
+Character code translation of keyboard input is similar to using an
+input method, in that both define sequences of keyboard input that
+translate into single characters.  However, input methods are designed
+to be convenient for interactive use, while the code translations are
+designed to work with terminals.
+
+*** The command C-x RET p (set-buffer-process-coding-system)
+specifies the coding system for input and output to a subprocess.
+This command applies to the current buffer; normally, each subprocess
+has its own buffer, and thus you can use this command to specify
+translation to and from a particular subprocess by giving the command
+in the corresponding buffer.
+
+By default, process input and output are not translated at all.
+
+*** The variable file-name-coding-system specifies the coding system
+to use for encoding file names before operating on them.
+It is also used for decoding file names obtained from the system.
+
+*** The command C-\ (toggle-input-method) activates or deactivates
+an input method.  If no input method has been selected before, the
+command prompts for you to specify the language and input method you
+want to use.
+
+C-u C-\ (select-input-method) lets you switch to a different input
+method.  C-h C-\ (or C-h I) describes the current input method.
+
+*** Some input methods remap the keyboard to emulate various keyboard
+layouts commonly used for particular scripts.  How to do this
+remapping properly depends on your actual keyboard layout.  To specify
+which layout your keyboard has, use M-x quail-set-keyboard-layout.
+
+*** The command C-h C (describe-coding-system) displays
+the coding systems currently selected for various purposes, plus
+related information.
+
+*** The command C-h h (view-hello-file) displays a file called
+HELLO, which has examples of text in many languages, using various
+scripts.
+
+*** The command C-h L (describe-language-support) displays
+information about the support for a particular language.
+You specify the language as an argument.
+
+*** The mode line now contains a letter or character that identifies
+the coding system used in the visited file.  It normally follows the
+first dash.
+
+A dash indicates the default state of affairs: no code conversion
+(except CRLF => newline if appropriate).  `=' means no conversion
+whatsoever.  The ISO 8859 coding systems are represented by digits
+1 through 9.  Other coding systems are represented by letters:
+
+    A alternativnyj (Russian)
+    B big5 (Chinese)
+    C cn-gb-2312 (Chinese)
+    C iso-2022-cn (Chinese)
+    D in-is13194-devanagari (Indian languages)
+    E euc-japan (Japanese)
+    I iso-2022-cjk or iso-2022-ss2 (Chinese, Japanese, Korean)
+    J junet (iso-2022-7) or old-jis (iso-2022-jp-1978-irv)  (Japanese)
+    K euc-korea (Korean)
+    R koi8 (Russian)
+    Q tibetan
+    S shift_jis (Japanese)
+    T lao
+    T tis620 (Thai)
+    V viscii or vscii (Vietnamese)
+    i iso-2022-lock (Chinese, Japanese, Korean)
+    k iso-2022-kr (Korean)
+    v viqr (Vietnamese)
+    z hz (Chinese)
+
+When you are using a character-only terminal (not a window system),
+two additional characters appear in between the dash and the file
+coding system.  These two characters describe the coding system for
+keyboard input, and the coding system for terminal output.
+
+*** The new variable rmail-file-coding-system specifies the code
+conversion to use for RMAIL files.  The default value is nil.
+
+When you read mail with Rmail, each message is decoded automatically
+into Emacs' internal format.  This has nothing to do with
+rmail-file-coding-system.  That variable controls reading and writing
+Rmail files themselves.
+
+*** The new variable sendmail-coding-system specifies the code
+conversion for outgoing mail.  The default value is nil.
+
+Actually, there are three different ways of specifying the coding system
+for sending mail:
+
+- If you use C-x RET f in the mail buffer, that takes priority.
+- Otherwise, if you set sendmail-coding-system non-nil, that specifies it.
+- Otherwise, the default coding system for new files is used,
+  if that is non-nil.  That comes from your language environment.
+- Otherwise, Latin-1 is used.
+
+*** The command C-h t (help-with-tutorial) accepts a prefix argument
+to specify the language for the tutorial file.  Currently, English,
+Japanese, Korean and Thai are supported.  We welcome additional
+translations.
+
+** An easy new way to visit a file with no code or format conversion
+of any kind: Use M-x find-file-literally.  There is also a command
+insert-file-literally which inserts a file into the current buffer
+without any conversion.
+
+** C-q's handling of octal character codes is changed.
+You can now specify any number of octal digits.
+RET terminates the digits and is discarded;
+any other non-digit terminates the digits and is then used as input.
+
+** There are new commands for looking up Info documentation for
+functions, variables and file names used in your programs.
+
+Type M-x info-lookup-symbol to look up a symbol in the buffer at point.
+Type M-x info-lookup-file to look up a file in the buffer at point.
+
+Precisely which Info files are used to look it up depends on the major
+mode.  For example, in C mode, the GNU libc manual is used.
+
+** M-TAB in most programming language modes now runs the command
+complete-symbol.  This command performs completion on the symbol name
+in the buffer before point.
+
+With a numeric argument, it performs completion based on the set of
+symbols documented in the Info files for the programming language that
+you are using.
+
+With no argument, it does completion based on the current tags tables,
+just like the old binding of M-TAB (complete-tag).
+
+** File locking works with NFS now.
+
+The lock file for FILENAME is now a symbolic link named .#FILENAME,
+in the same directory as FILENAME.
+
+This means that collision detection between two different machines now
+works reasonably well; it also means that no file server or directory
+can become a bottleneck.
+
+The new method does have drawbacks.  It means that collision detection
+does not operate when you edit a file in a directory where you cannot
+create new files.  Collision detection also doesn't operate when the
+file server does not support symbolic links.  But these conditions are
+rare, and the ability to have collision detection while using NFS is
+so useful that the change is worth while.
+
+When Emacs or a system crashes, this may leave behind lock files which
+are stale.  So you may occasionally get warnings about spurious
+collisions.  When you determine that the collision is spurious, just
+tell Emacs to go ahead anyway.
+
+** If you wish to use Show Paren mode to display matching parentheses,
+it is no longer sufficient to load paren.el.  Instead you must call
+show-paren-mode.
+
+** If you wish to use Delete Selection mode to replace a highlighted
+selection when you insert new text, it is no longer sufficient to load
+delsel.el.  Instead you must call the function delete-selection-mode.
+
+** If you wish to use Partial Completion mode to complete partial words
+within symbols or filenames, it is no longer sufficient to load
+complete.el.  Instead you must call the function partial-completion-mode.
+
+** If you wish to use uniquify to rename buffers for you,
+it is no longer sufficient to load uniquify.el.  You must also
+set uniquify-buffer-name-style to one of the non-nil legitimate values.
+
+** Changes in View mode.
+
+*** Several new commands are available in View mode.
+Do H in view mode for a list of commands.
+
+*** There are two new commands for entering View mode:
+view-file-other-frame and view-buffer-other-frame.
+
+*** Exiting View mode does a better job of restoring windows to their
+previous state.
+
+*** New customization variable view-scroll-auto-exit. If non-nil,
+scrolling past end of buffer makes view mode exit.
+
+*** New customization variable view-exits-all-viewing-windows.  If
+non-nil, view-mode will at exit restore all windows viewing buffer,
+not just the selected window.
+
+*** New customization variable view-read-only.  If non-nil, visiting a
+read-only file automatically enters View mode, and toggle-read-only
+turns View mode on or off.
+
+*** New customization variable view-remove-frame-by-deleting controls
+how to remove a not needed frame at view mode exit. If non-nil,
+delete the frame, if nil make an icon of it.
+
+** C-x v l, the command to print a file's version control log,
+now positions point at the entry for the file's current branch version.
+
+** C-x v =, the command to compare a file with the last checked-in version,
+has a new feature.  If the file is currently not locked, so that it is
+presumably identical to the last checked-in version, the command now asks
+which version to compare with.
+
+** When using hideshow.el, incremental search can temporarily show hidden
+blocks if a match is inside the block.
+
+The block is hidden again if the search is continued and the next match
+is outside the block.  By customizing the variable
+isearch-hide-immediately you can choose to hide all the temporarily
+shown blocks only when exiting from incremental search.
+
+By customizing the variable hs-isearch-open you can choose what kind
+of blocks to temporarily show during isearch: comment blocks, code
+blocks, all of them or none.
+
+** The new command C-x 4 0 (kill-buffer-and-window) kills the
+current buffer and deletes the selected window.  It asks for
+confirmation first.
+
+** C-x C-w, which saves the buffer into a specified file name,
+now changes the major mode according to that file name.
+However, the mode will not be changed if
+(1) a local variables list or the `-*-' line specifies a major mode, or
+(2) the current major mode is a "special" mode,
+    not suitable for ordinary files, or
+(3) the new file name does not particularly specify any mode.
+
+This applies to M-x set-visited-file-name as well.
+
+However, if you set change-major-mode-with-file-name to nil, then
+these commands do not change the major mode.
+
+** M-x occur changes.
+
+*** If the argument to M-x occur contains upper case letters,
+it performs a case-sensitive search.
+
+*** In the *Occur* buffer made by M-x occur,
+if you type g or M-x revert-buffer, this repeats the search
+using the same regular expression and the same buffer as before.
+
+** In Transient Mark mode, the region in any one buffer is highlighted
+in just one window at a time.  At first, it is highlighted in the
+window where you set the mark.  The buffer's highlighting remains in
+that window unless you select to another window which shows the same
+buffer--then the highlighting moves to that window.
+
+** The feature to suggest key bindings when you use M-x now operates
+after the command finishes.  The message suggesting key bindings
+appears temporarily in the echo area.  The previous echo area contents
+come back after a few seconds, in case they contain useful information.
+
+** Each frame now independently records the order for recently
+selected buffers, so that the default for C-x b is now based on the
+buffers recently selected in the selected frame.
+
+** Outline mode changes.
+
+*** Outline mode now uses overlays (this is the former noutline.el).
+
+*** Incremental searches skip over invisible text in Outline mode.
+
+** When a minibuffer window is active but not the selected window, if
+you try to use the minibuffer, you used to get a nested minibuffer.
+Now, this not only gives an error, it also cancels the minibuffer that
+was already active.
+
+The motive for this change is so that beginning users do not
+unknowingly move away from minibuffers, leaving them active, and then
+get confused by it.
+
+If you want to be able to have recursive minibuffers, you must
+set enable-recursive-minibuffers to non-nil.
+
+** Changes in dynamic abbrevs.
+
+*** Expanding dynamic abbrevs with M-/ is now smarter about case
+conversion.  If the expansion has mixed case not counting the first
+character, and the abbreviation matches the beginning of the expansion
+including case, then the expansion is copied verbatim.
+
+The expansion is also copied verbatim if the abbreviation itself has
+mixed case.  And using SPC M-/ to copy an additional word always
+copies it verbatim except when the previous copied word is all caps.
+
+*** The values of `dabbrev-case-replace' and `dabbrev-case-fold-search'
+are no longer Lisp expressions.  They have simply three possible
+values.
+
+`dabbrev-case-replace' has these three values: nil (don't preserve
+case), t (do), or `case-replace' (do like M-x query-replace).
+`dabbrev-case-fold-search' has these three values: nil (don't ignore
+case), t (do), or `case-fold-search' (do like search).
+
+** Minibuffer history lists are truncated automatically now to a
+certain length.  The variable history-length specifies how long they
+can be.  The default value is 30.
+
+** Changes in Mail mode.
+
+*** The key C-x m no longer runs the `mail' command directly.
+Instead, it runs the command `compose-mail', which invokes the mail
+composition mechanism you have selected with the variable
+`mail-user-agent'.  The default choice of user agent is
+`sendmail-user-agent', which gives behavior compatible with the old
+behavior.
+
+C-x 4 m now runs compose-mail-other-window, and C-x 5 m runs
+compose-mail-other-frame.
+
+*** While composing a reply to a mail message, from Rmail, you can use
+the command C-c C-r to cite just the region from the message you are
+replying to.  This copies the text which is the selected region in the
+buffer that shows the original message.
+
+*** The command C-c C-i inserts a file at the end of the message,
+with separator lines around the contents.
+
+*** The command M-x expand-mail-aliases expands all mail aliases
+in suitable mail headers.  Emacs automatically extracts mail alias
+definitions from your mail alias file (e.g., ~/.mailrc).  You do not
+need to expand mail aliases yourself before sending mail.
+
+*** New features in the mail-complete command.
+
+**** The mail-complete command now inserts the user's full name,
+for local users or if that is known.  The variable mail-complete-style
+controls the style to use, and whether to do this at all.
+Its values are like those of mail-from-style.
+
+**** The variable mail-passwd-command lets you specify a shell command
+to run to fetch a set of password-entries that add to the ones in
+/etc/passwd.
+
+**** The variable mail-passwd-file now specifies a list of files to read
+to get the list of user ids.  By default, one file is used:
+/etc/passwd.
+
+** You can "quote" a file name to inhibit special significance of
+special syntax, by adding `/:' to the beginning.  Thus, if you have a
+directory named `/foo:', you can prevent it from being treated as a
+reference to a remote host named `foo' by writing it as `/:/foo:'.
+
+Emacs uses this new construct automatically when necessary, such as
+when you start it with a working directory whose name might otherwise
+be taken to be magic.
+
+** There is a new command M-x grep-find which uses find to select
+files to search through, and grep to scan them.  The output is
+available in a Compile mode buffer, as with M-x grep.
+
+M-x grep now uses the -e option if the grep program supports that.
+(-e prevents problems if the search pattern starts with a dash.)
+
+** In Dired, the & command now flags for deletion the files whose names
+suggest they are probably not needed in the long run.
+
+In Dired, * is now a prefix key for mark-related commands.
+
+new key		dired.el binding		old key
+-------		----------------		-------
+  * c		dired-change-marks		c
+  * m		dired-mark			m
+  * *		dired-mark-executables		*  (binding deleted)
+  * /		dired-mark-directories		/  (binding deleted)
+  * @		dired-mark-symlinks		@  (binding deleted)
+  * u		dired-unmark			u
+  * DEL		dired-unmark-backward		DEL
+  * ?		dired-unmark-all-files		C-M-?
+  * !		dired-unmark-all-marks
+  * %		dired-mark-files-regexp		% m
+  * C-n		dired-next-marked-file		M-}
+  * C-p		dired-prev-marked-file		M-{
+
+** Rmail changes.
+
+*** When Rmail cannot convert your incoming mail into Babyl format, it
+saves the new mail in the file RMAILOSE.n, where n is an integer
+chosen to make a unique name.  This way, Rmail will not keep crashing
+each time you run it.
+
+*** In Rmail, the variable rmail-summary-line-count-flag now controls
+whether to include the line count in the summary.  Non-nil means yes.
+
+*** In Rmail summary buffers, d and C-d (the commands to delete
+messages) now take repeat counts as arguments.  A negative argument
+means to move in the opposite direction.
+
+*** In Rmail, the t command now takes an optional argument which lets
+you specify whether to show the message headers in full or pruned.
+
+*** In Rmail, the new command w (rmail-output-body-to-file) writes
+just the body of the current message into a file, without the headers.
+It takes the file name from the message subject, by default, but you
+can edit that file name in the minibuffer before it is actually used
+for output.
+
+** Gnus changes.
+
+*** nntp.el has been totally rewritten in an asynchronous fashion.
+
+*** Article prefetching functionality has been moved up into
+Gnus.
+
+*** Scoring can now be performed with logical operators like
+`and', `or', `not', and parent redirection.
+
+*** Article washing status can be displayed in the
+article mode line.
+
+*** gnus.el has been split into many smaller files.
+
+*** Suppression of duplicate articles based on Message-ID.
+
+(setq gnus-suppress-duplicates t)
+
+*** New variables for specifying what score and adapt files
+are to be considered home score and adapt files.  See
+`gnus-home-score-file' and `gnus-home-adapt-files'.
+
+*** Groups can inherit group parameters from parent topics.
+
+*** Article editing has been revamped and is now usable.
+
+*** Signatures can be recognized in more intelligent fashions.
+See `gnus-signature-separator' and `gnus-signature-limit'.
+
+*** Summary pick mode has been made to look more nn-like.
+Line numbers are displayed and the `.' command can be
+used to pick articles.
+
+*** Commands for moving the .newsrc.eld from one server to
+another have been added.
+
+    `M-x gnus-change-server'
+
+*** A way to specify that "uninteresting" fields be suppressed when
+generating lines in buffers.
+
+*** Several commands in the group buffer can be undone with
+`C-M-_'.
+
+*** Scoring can be done on words using the new score type `w'.
+
+*** Adaptive scoring can be done on a Subject word-by-word basis:
+
+    (setq gnus-use-adaptive-scoring '(word))
+
+*** Scores can be decayed.
+
+    (setq gnus-decay-scores t)
+
+*** Scoring can be performed using a regexp on the Date header.  The
+Date is normalized to compact ISO 8601 format first.
+
+*** A new command has been added to remove all data on articles from
+the native server.
+
+   `M-x gnus-group-clear-data-on-native-groups'
+
+*** A new command for reading collections of documents
+(nndoc with nnvirtual on top) has been added -- `C-M-d'.
+
+*** Process mark sets can be pushed and popped.
+
+*** A new mail-to-news backend makes it possible to post
+even when the NNTP server doesn't allow posting.
+
+*** A new backend for reading searches from Web search engines
+(DejaNews, Alta Vista, InReference) has been added.
+
+    Use the `G w' command in the group buffer to create such
+    a group.
+
+*** Groups inside topics can now be sorted using the standard
+sorting functions, and each topic can be sorted independently.
+
+    See the commands under the `T S' submap.
+
+*** Subsets of the groups can be sorted independently.
+
+    See the commands under the `G P' submap.
+
+*** Cached articles can be pulled into the groups.
+
+    Use the `Y c' command.
+
+*** Score files are now applied in a more reliable order.
+
+*** Reports on where mail messages end up can be generated.
+
+    `M-x nnmail-split-history'
+
+*** More hooks and functions have been added to remove junk
+from incoming mail before saving the mail.
+
+    See `nnmail-prepare-incoming-header-hook'.
+
+*** The nnml mail backend now understands compressed article files.
+
+*** To enable Gnus to read/post multi-lingual articles, you must execute
+the following code, for instance, in your .emacs.
+
+	(add-hook 'gnus-startup-hook 'gnus-mule-initialize)
+
+Then, when you start Gnus, it will decode non-ASCII text automatically
+and show appropriate characters.  (Note: if you are using gnus-mime
+from the SEMI package, formerly known as TM, you should NOT add this
+hook to gnus-startup-hook; gnus-mime has its own method of handling
+this issue.)
+
+Since it is impossible to distinguish all coding systems
+automatically, you may need to specify a choice of coding system for a
+particular news group.  This can be done by:
+
+	(gnus-mule-add-group NEWSGROUP 'CODING-SYSTEM)
+
+Here NEWSGROUP should be a string which names a newsgroup or a tree
+of newsgroups.  If NEWSGROUP is "XXX.YYY", all news groups under
+"XXX.YYY" (including "XXX.YYY.ZZZ") will use the specified coding
+system.  CODING-SYSTEM specifies which coding system to use (for both
+for reading and posting).
+
+CODING-SYSTEM can also be a cons cell of the form
+  (READ-CODING-SYSTEM . POST-CODING-SYSTEM)
+Then READ-CODING-SYSTEM is used when you read messages from the
+newsgroups, while POST-CODING-SYSTEM is used when you post messages
+there.
+
+Emacs knows the right coding systems for certain newsgroups by
+default.  Here are some of these default settings:
+
+	(gnus-mule-add-group "fj" 'iso-2022-7)
+	(gnus-mule-add-group "alt.chinese.text" 'hz-gb-2312)
+	(gnus-mule-add-group "alt.hk" 'hz-gb-2312)
+	(gnus-mule-add-group "alt.chinese.text.big5" 'cn-big5)
+	(gnus-mule-add-group "soc.culture.vietnamese" '(nil . viqr))
+
+When you reply by mail to an article, these settings are ignored;
+the mail is encoded according to sendmail-coding-system, as usual.
+
+** CC mode changes.
+
+*** If you edit primarily one style of C (or C++, Objective-C, Java)
+code, you may want to make the CC Mode style variables have global
+values so that you can set them directly in your .emacs file.  To do
+this, set c-style-variables-are-local-p to nil in your .emacs file.
+Note that this only takes effect if you do it *before* cc-mode.el is
+loaded.
+
+If you typically edit more than one style of C (or C++, Objective-C,
+Java) code in a single Emacs session, you may want to make the CC Mode
+style variables have buffer local values.  By default, all buffers
+share the same style variable settings; to make them buffer local, set
+c-style-variables-are-local-p to t in your .emacs file.  Note that you
+must do this *before* CC Mode is loaded.
+
+*** The new variable c-indentation-style holds the C style name
+of the current buffer.
+
+*** The variable c-block-comments-indent-p has been deleted, because
+it is no longer necessary.  C mode now handles all the supported styles
+of block comments, with no need to say which one you will use.
+
+*** There is a new indentation style "python", which specifies the C
+style that the Python developers like.
+
+*** There is a new c-cleanup-list option: brace-elseif-brace.
+This says to put ...} else if (...) {... on one line,
+just as brace-else-brace says to put ...} else {... on one line.
+
+** VC Changes [new]
+
+*** In vc-retrieve-snapshot (C-x v r), if you don't specify a snapshot
+name, it retrieves the *latest* versions of all files in the current
+directory and its subdirectories (aside from files already locked).
+
+This feature is useful if your RCS directory is a link to a common
+master directory, and you want to pick up changes made by other
+developers.
+
+You can do the same thing for an individual file by typing C-u C-x C-q
+RET in a buffer visiting that file.
+
+*** VC can now handle files under CVS that are being "watched" by
+other developers.  Such files are made read-only by CVS.  To get a
+writable copy, type C-x C-q in a buffer visiting such a file.  VC then
+calls "cvs edit", which notifies the other developers of it.
+
+*** vc-version-diff (C-u C-x v =) now suggests reasonable defaults for
+version numbers, based on the current state of the file.
+
+** Calendar changes.
+
+*** A new function, list-holidays, allows you list holidays or
+subclasses of holidays for ranges of years.  Related menu items allow
+you do this for the year of the selected date, or the
+following/previous years.
+
+*** There is now support for the Baha'i calendar system.  Use `pb' in
+the *Calendar* buffer to display the current Baha'i date.  The Baha'i
+calendar, or "Badi calendar" is a system of 19 months with 19 days
+each, and 4 intercalary days (5 during a Gregorian leap year).  The
+calendar begins May 23, 1844, with each of the months named after a
+supposed attribute of God.
+
+** ps-print changes
+
+There are some new user variables and subgroups for customizing the page
+layout.
+
+*** Headers & Footers (subgroup)
+
+Some printer systems print a header page and force the first page to
+be printed on the back of the header page when using duplex.  If your
+printer system has this behavior, set variable
+`ps-banner-page-when-duplexing' to t.
+
+If variable `ps-banner-page-when-duplexing' is non-nil, it prints a
+blank page as the very first printed page.  So, it behaves as if the
+very first character of buffer (or region) were a form feed ^L (\014).
+
+The variable `ps-spool-config' specifies who is responsible for
+setting duplex mode and page size.  Valid values are:
+
+ lpr-switches    duplex and page size are configured by `ps-lpr-switches'.
+		 Don't forget to set `ps-lpr-switches' to select duplex
+		 printing for your printer.
+
+ setpagedevice   duplex and page size are configured by ps-print using the
+		 setpagedevice PostScript operator.
+
+ nil             duplex and page size are configured by ps-print *not* using
+		 the setpagedevice PostScript operator.
+
+The variable `ps-spool-tumble' specifies how the page images on
+opposite sides of a sheet are oriented with respect to each other.  If
+`ps-spool-tumble' is nil, ps-print produces output suitable for
+bindings on the left or right.  If `ps-spool-tumble' is non-nil,
+ps-print produces output suitable for bindings at the top or bottom.
+This variable takes effect only if `ps-spool-duplex' is non-nil.
+The default value is nil.
+
+The variable `ps-header-frame-alist' specifies a header frame
+properties alist.  Valid frame properties are:
+
+  fore-color	Specify the foreground frame color.
+		Value should be a float number between 0.0 (black
+		color) and 1.0 (white color), or a string which is a
+		color name, or a list of 3 float numbers which
+		correspond to the Red Green Blue color scale, each
+		float number between 0.0 (dark color) and 1.0 (bright
+		color).  The default is 0 ("black").
+
+  back-color	Specify the background frame color (similar to fore-color).
+		The default is 0.9 ("gray90").
+
+  shadow-color	Specify the shadow color (similar to fore-color).
+		The default is 0 ("black").
+
+  border-color	Specify the border color (similar to fore-color).
+		The default is 0 ("black").
+
+  border-width	Specify the border width.
+		The default is 0.4.
+
+Any other property is ignored.
+
+Don't change this alist directly; instead use Custom, or the
+`ps-value', `ps-get', `ps-put' and `ps-del' functions (see there for
+documentation).
+
+Ps-print can also print footers.  The footer variables are:
+`ps-print-footer', `ps-footer-offset', `ps-print-footer-frame',
+`ps-footer-font-family', `ps-footer-font-size', `ps-footer-line-pad',
+`ps-footer-lines', `ps-left-footer', `ps-right-footer' and
+`ps-footer-frame-alist'.  These variables are similar to those
+controlling headers.
+
+*** Color management (subgroup)
+
+If `ps-print-color-p' is non-nil, the buffer's text will be printed in
+color.
+
+*** Face Management (subgroup)
+
+If you need to print without worrying about face background colors,
+set the variable `ps-use-face-background' which specifies if face
+background should be used.  Valid values are:
+
+ t		always use face background color.
+ nil		never use face background color.
+ (face...)	list of faces whose background color will be used.
+
+*** N-up printing (subgroup)
+
+The variable `ps-n-up-printing' specifies the number of pages per
+sheet of paper.
+
+The variable `ps-n-up-margin' specifies the margin in points (pt)
+between the sheet border and the n-up printing.
+
+If variable `ps-n-up-border-p' is non-nil, a border is drawn around
+each page.
+
+The variable `ps-n-up-filling' specifies how the page matrix is filled
+on each sheet of paper.  Following are the valid values for
+`ps-n-up-filling' with a filling example using a 3x4 page matrix:
+
+   `left-top'   1  2  3  4         `left-bottom'    9  10 11 12
+		5  6  7  8                          5  6  7  8
+		9  10 11 12                         1  2  3  4
+
+   `right-top'  4  3  2  1         `right-bottom'   12 11 10 9
+		8  7  6  5                          8  7  6  5
+		12 11 10 9                          4  3  2  1
+
+   `top-left'   1  4  7  10        `bottom-left'    3  6  9  12
+		2  5  8  11                         2  5  8  11
+		3  6  9  12                         1  4  7  10
+
+   `top-right'  10 7  4  1         `bottom-right'   12 9  6  3
+		11 8  5  2                          11 8  5  2
+		12 9  6  3                          10 7  4  1
+
+Any other value is treated as `left-top'.
+
+*** Zebra stripes (subgroup)
+
+The variable `ps-zebra-color' controls the zebra stripes grayscale or
+RGB color.
+
+The variable `ps-zebra-stripe-follow' specifies how zebra stripes
+continue on next page.  Visually, valid values are (the character `+'
+to the right of each column indicates that a line is printed):
+
+		   `nil'        `follow'        `full'        `full-follow'
+   Current Page --------     -----------     ---------     ----------------
+		1  XXXXX +   1  XXXXXXXX +   1  XXXXXX +   1  XXXXXXXXXXXXX +
+		2  XXXXX +   2  XXXXXXXX +   2  XXXXXX +   2  XXXXXXXXXXXXX +
+		3  XXXXX +   3  XXXXXXXX +   3  XXXXXX +   3  XXXXXXXXXXXXX +
+		4        +   4           +   4         +   4                +
+		5        +   5           +   5         +   5                +
+		6        +   6           +   6         +   6                +
+		7  XXXXX +   7  XXXXXXXX +   7  XXXXXX +   7  XXXXXXXXXXXXX +
+		8  XXXXX +   8  XXXXXXXX +   8  XXXXXX +   8  XXXXXXXXXXXXX +
+		9  XXXXX +   9  XXXXXXXX +   9  XXXXXX +   9  XXXXXXXXXXXXX +
+		10       +   10          +
+		11       +   11          +
+		--------     -----------     ---------     ----------------
+      Next Page --------     -----------     ---------     ----------------
+		12 XXXXX +   12          +   10 XXXXXX +   10               +
+		13 XXXXX +   13 XXXXXXXX +   11 XXXXXX +   11               +
+		14 XXXXX +   14 XXXXXXXX +   12 XXXXXX +   12               +
+		15       +   15 XXXXXXXX +   13        +   13 XXXXXXXXXXXXX +
+		16       +   16          +   14        +   14 XXXXXXXXXXXXX +
+		17       +   17          +   15        +   15 XXXXXXXXXXXXX +
+		18 XXXXX +   18          +   16 XXXXXX +   16               +
+		19 XXXXX +   19 XXXXXXXX +   17 XXXXXX +   17               +
+		20 XXXXX +   20 XXXXXXXX +   18 XXXXXX +   18               +
+		21       +   21 XXXXXXXX +
+		22       +   22          +
+		--------     -----------     ---------     ----------------
+
+Any other value is treated as `nil'.
+
+
+*** Printer management (subgroup)
+
+The variable `ps-printer-name-option' determines the option used by
+some utilities to indicate the printer name; it's used only when
+`ps-printer-name' is a non-empty string.  If you're using the lpr
+utility to print, for example, `ps-printer-name-option' should be set
+to "-P".
+
+The variable `ps-manual-feed' indicates if the printer requires manual
+paper feeding.  If it's nil, automatic feeding takes place.  If it's
+non-nil, manual feeding takes place.
+
+The variable `ps-end-with-control-d' specifies whether C-d (\x04)
+should be inserted at end of the generated PostScript.  Non-nil means
+do so.
+
+*** Page settings (subgroup)
+
+If variable `ps-warn-paper-type' is nil, it's *not* treated as an
+error if the PostScript printer doesn't have a paper with the size
+indicated by `ps-paper-type'; the default paper size will be used
+instead.  If `ps-warn-paper-type' is non-nil, an error is signaled if
+the PostScript printer doesn't support a paper with the size indicated
+by `ps-paper-type'.  This is used when `ps-spool-config' is set to
+`setpagedevice'.
+
+The variable `ps-print-upside-down' determines the orientation for
+printing pages: nil means `normal' printing, non-nil means
+`upside-down' printing (that is, the page is rotated by 180 degrees).
+
+The variable `ps-selected-pages' specifies which pages to print.  If
+it's nil, all pages are printed.  If it's a list, list elements may be
+integers specifying a single page to print, or cons cells (FROM . TO)
+specifying to print from page FROM to TO.  Invalid list elements, that
+is integers smaller than one, or elements whose FROM is greater than
+its TO, are ignored.
+
+The variable `ps-even-or-odd-pages' specifies how to print even/odd
+pages.  Valid values are:
+
+   nil		print all pages.
+
+   `even-page'	print only even pages.
+
+   `odd-page'	print only odd pages.
+
+   `even-sheet'	print only even sheets.
+		That is, if `ps-n-up-printing' is 1, it behaves like
+		`even-page', but for values greater than 1, it'll
+		print only the even sheet of paper.
+
+   `odd-sheet'	print only odd sheets.
+		That is, if `ps-n-up-printing' is 1, it behaves like
+		`odd-page'; but for values greater than 1, it'll print
+		only the odd sheet of paper.
+
+Any other value is treated as nil.
+
+If you set `ps-selected-pages' (see there for documentation), pages
+are filtered by `ps-selected-pages', and then by
+`ps-even-or-odd-pages'.  For example, if we have:
+
+   (setq ps-selected-pages '(1 4 (6 . 10) (12 . 16) 20))
+
+and we combine this with `ps-even-or-odd-pages' and
+`ps-n-up-printing', we get:
+
+`ps-n-up-printing' = 1:
+   `ps-even-or-odd-pages'	PAGES PRINTED
+	nil			1, 4, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 20
+	even-page		4, 6, 8, 10, 12, 14, 16, 20
+	odd-page		1, 7, 9, 13, 15
+	even-sheet		4, 6, 8, 10, 12, 14, 16, 20
+	odd-sheet		1, 7, 9, 13, 15
+
+`ps-n-up-printing' = 2:
+   `ps-even-or-odd-pages'	PAGES PRINTED
+	nil			1/4, 6/7, 8/9, 10/12, 13/14, 15/16, 20
+	even-page		4/6, 8/10, 12/14, 16/20
+	odd-page		1/7, 9/13, 15
+	even-sheet		6/7, 10/12, 15/16
+	odd-sheet		1/4, 8/9, 13/14, 20
+
+*** Miscellany (subgroup)
+
+The variable `ps-error-handler-message' specifies where error handler
+messages should be sent.
+
+It is also possible to add a user-defined PostScript prologue code in
+front of all generated prologue code by setting the variable
+`ps-user-defined-prologue'.
+
+The variable `ps-line-number-font' specifies the font for line numbers.
+
+The variable `ps-line-number-font-size' specifies the font size in
+points for line numbers.
+
+The variable `ps-line-number-color' specifies the color for line
+numbers.  See `ps-zebra-color' for documentation.
+
+The variable `ps-line-number-step' specifies the interval in which
+line numbers are printed.  For example, if `ps-line-number-step' is set
+to 2, the printing will look like:
+
+   1 one line
+     one line
+   3 one line
+     one line
+   5 one line
+     one line
+     ...
+
+Valid values are:
+
+integer		an integer specifying the interval in which line numbers are
+		printed.  If it's smaller than or equal to zero, 1
+		is used.
+
+`zebra'		specifies that only the line number of the first line in a
+		zebra stripe is to be printed.
+
+Any other value is treated as `zebra'.
+
+The variable `ps-line-number-start' specifies the starting point in
+the interval given by `ps-line-number-step'.  For example, if
+`ps-line-number-step' is set to 3, and `ps-line-number-start' is set to
+3, the output will look like:
+
+     one line
+     one line
+   3 one line
+     one line
+     one line
+   6 one line
+     one line
+     one line
+   9 one line
+     one line
+     ...
+
+The variable `ps-postscript-code-directory' specifies the directory
+where the PostScript prologue file used by ps-print is found.
+
+The variable `ps-line-spacing' determines the line spacing in points,
+for ordinary text, when generating PostScript (similar to
+`ps-font-size').
+
+The variable `ps-paragraph-spacing' determines the paragraph spacing,
+in points, for ordinary text, when generating PostScript (similar to
+`ps-font-size').
+
+The variable `ps-paragraph-regexp' specifies the paragraph delimiter.
+
+The variable `ps-begin-cut-regexp' and `ps-end-cut-regexp' specify the
+start and end of a region to cut out when printing.
+
+** hideshow changes.
+
+*** now supports hiding of blocks of single line comments (like // for
+C++, ; for lisp).
+
+*** Support for java-mode added.
+
+*** When doing `hs-hide-all' it is now possible to also hide the comments
+in the file if `hs-hide-comments-when-hiding-all' is set.
+
+*** The new function `hs-hide-initial-comment' hides the comments at
+the beginning of the files.  Finally those huge RCS logs don't stay in your
+way!  This is run by default when entering the `hs-minor-mode'.
+
+*** Now uses overlays instead of `selective-display', so is more
+robust and a lot faster.
+
+*** A block beginning can span multiple lines.
+
+*** The new variable `hs-show-hidden-short-form' if t, directs hideshow
+to show only the beginning of a block when it is hidden.  See the
+documentation for more details.
+
+** Changes in Enriched mode.
+
+*** When you visit a file in enriched-mode, Emacs will make sure it is
+filled to the current fill-column.  This behavior is now independent
+of the size of the window.  When you save the file, the fill-column in
+use is stored as well, so that the whole buffer need not be refilled
+the next time unless the fill-column is different.
+
+*** use-hard-newlines is now a minor mode.  When it is enabled, Emacs
+distinguishes between hard and soft newlines, and treats hard newlines
+as paragraph boundaries.  Otherwise all newlines inserted are marked
+as soft, and paragraph boundaries are determined solely from the text.
+
+** Font Lock mode
+
+*** Custom support
+
+The variables font-lock-face-attributes, font-lock-display-type and
+font-lock-background-mode are now obsolete; the recommended way to specify
+the faces to use for Font Lock mode is with M-x customize-group on the new
+custom group font-lock-faces.  If you set font-lock-face-attributes in your
+~/.emacs file, Font Lock mode will respect its value.  However, you should
+consider converting from setting that variable to using M-x customize.
+
+You can still use X resources to specify Font Lock face appearances.
+
+*** Maximum decoration
+
+Fontification now uses the maximum level of decoration supported by
+default.  Previously, fontification used a mode-specific default level
+of decoration, which is typically the minimum level of decoration
+supported.  You can set font-lock-maximum-decoration to nil
+to get the old behavior.
+
+*** New support
+
+Support is now provided for Java, Objective-C, AWK and SIMULA modes.
+
+Note that Font Lock mode can be turned on without knowing exactly what modes
+support Font Lock mode, via the command global-font-lock-mode.
+
+*** Configurable support
+
+Support for C, C++, Objective-C and Java can be more easily configured for
+additional types and classes via the new variables c-font-lock-extra-types,
+c++-font-lock-extra-types, objc-font-lock-extra-types and, you guessed it,
+java-font-lock-extra-types.  These value of each of these variables should be a
+list of regexps matching the extra type names.  For example, the default value
+of c-font-lock-extra-types is ("\\sw+_t") which means fontification follows the
+convention that C type names end in _t.  This results in slower fontification.
+
+Of course, you can change the variables that specify fontification in whatever
+way you wish, typically by adding regexps.  However, these new variables make
+it easier to make specific and common changes for the fontification of types.
+
+*** Adding highlighting patterns to existing support
+
+You can use the new function font-lock-add-keywords to add your own
+highlighting patterns, such as for project-local or user-specific constructs,
+for any mode.
+
+For example, to highlight `FIXME:' words in C comments, put:
+
+ (font-lock-add-keywords 'c-mode '(("\\<FIXME:" 0 font-lock-warning-face t)))
+
+in your ~/.emacs.
+
+*** New faces
+
+Font Lock now defines two new faces, font-lock-builtin-face and
+font-lock-warning-face.  These are intended to highlight builtin keywords,
+distinct from a language's normal keywords, and objects that should be brought
+to user attention, respectively.  Various modes now use these new faces.
+
+*** Changes to fast-lock support mode
+
+The fast-lock package, one of the two Font Lock support modes, can now process
+cache files silently.  You can use the new variable fast-lock-verbose, in the
+same way as font-lock-verbose, to control this feature.
+
+*** Changes to lazy-lock support mode
+
+The lazy-lock package, one of the two Font Lock support modes, can now fontify
+according to the true syntactic context relative to other lines.  You can use
+the new variable lazy-lock-defer-contextually to control this feature.  If
+non-nil, changes to the buffer will cause subsequent lines in the buffer to be
+refontified after lazy-lock-defer-time seconds of idle time.  If nil, then only
+the modified lines will be refontified; this is the same as the previous Lazy
+Lock mode behavior and the behavior of Font Lock mode.
+
+This feature is useful in modes where strings or comments can span lines.
+For example, if a string or comment terminating character is deleted, then if
+this feature is enabled subsequent lines in the buffer will be correctly
+refontified to reflect their new syntactic context.  Previously, only the line
+containing the deleted character would be refontified and you would have to use
+the command M-o M-o (font-lock-fontify-block) to refontify some lines.
+
+As a consequence of this new feature, two other variables have changed:
+
+Variable `lazy-lock-defer-driven' is renamed `lazy-lock-defer-on-scrolling'.
+Variable `lazy-lock-defer-time' can now only be a time, i.e., a number.
+Buffer modes for which on-the-fly deferral applies can be specified via the
+new variable `lazy-lock-defer-on-the-fly'.
+
+If you set these variables in your ~/.emacs, then you may have to change those
+settings.
+
+** Ada mode changes.
+
+*** There is now better support for using find-file.el with Ada mode.
+If you switch between spec and body, the cursor stays in the same
+procedure (modulo overloading).  If a spec has no body file yet, but
+you try to switch to its body file, Ada mode now generates procedure
+stubs.
+
+*** There are two new commands:
+ - `ada-make-local'   : invokes gnatmake on the current buffer
+ - `ada-check-syntax' : check syntax of current buffer.
+
+The user options `ada-compiler-make', `ada-make-options',
+`ada-language-version', `ada-compiler-syntax-check', and
+`ada-compile-options' are used within these commands.
+
+*** Ada mode can now work with Outline minor mode.  The outline level
+is calculated from the indenting, not from syntactic constructs.
+Outlining does not work if your code is not correctly indented.
+
+*** The new function `ada-gnat-style' converts the buffer to the style of
+formatting used in GNAT.  It places two blanks after a comment start,
+places one blank between a word end and an opening '(', and puts one
+space between a comma and the beginning of a word.
+
+** Scheme mode changes.
+
+*** Scheme mode indentation now uses many of the facilities of Lisp
+mode; therefore, the variables to customize it are the variables used
+for Lisp mode which have names starting with `lisp-'.  The variables
+with names starting with `scheme-' which used to do this no longer
+have any effect.
+
+If you want to use different indentation for Scheme and Lisp, this is
+still possible, but now you must do it by adding a hook to
+scheme-mode-hook, which could work by setting the `lisp-' indentation
+variables as buffer-local variables.
+
+*** DSSSL mode is a variant of Scheme mode, for editing DSSSL scripts.
+Use M-x dsssl-mode.
+
+** Changes to the emacsclient program
+
+*** If a socket can't be found, and environment variables LOGNAME or
+USER are set, emacsclient now looks for a socket based on the UID
+associated with the name.  That is an emacsclient running as root
+can connect to an Emacs server started by a non-root user.
+
+*** The emacsclient program now accepts an option --no-wait which tells
+it to return immediately without waiting for you to "finish" the
+buffer in Emacs.
+
+*** The new option --alternate-editor allows to specify an editor to
+use if Emacs is not running.  The environment variable
+ALTERNATE_EDITOR can be used for the same effect; the command line
+option takes precedence.
+
+** M-x eldoc-mode enables a minor mode in which the echo area
+constantly shows the parameter list for function being called at point
+(in Emacs Lisp and Lisp Interaction modes only).
+
+** C-x n d now runs the new command narrow-to-defun,
+which narrows the accessible parts of the buffer to just
+the current defun.
+
+** Emacs now handles the `--' argument in the standard way; all
+following arguments are treated as ordinary file names.
+
+** On MSDOS and Windows, the bookmark file is now called _emacs.bmk,
+and the saved desktop file is now called _emacs.desktop (truncated if
+necessary).
+
+** When you kill a buffer that visits a file,
+if there are any registers that save positions in the file,
+these register values no longer become completely useless.
+If you try to go to such a register with C-x j, then you are
+asked whether to visit the file again.  If you say yes,
+it visits the file and then goes to the same position.
+
+** When you visit a file that changes frequently outside Emacs--for
+example, a log of output from a process that continues to run--it may
+be useful for Emacs to revert the file without querying you whenever
+you visit the file afresh with C-x C-f.
+
+You can request this behavior for certain files by setting the
+variable revert-without-query to a list of regular expressions.  If a
+file's name matches any of these regular expressions, find-file and
+revert-buffer revert the buffer without asking for permission--but
+only if you have not edited the buffer text yourself.
+
+** set-default-font has been renamed to set-frame-font
+since it applies only to the current frame.
+
+** In TeX mode, you can use the variable tex-main-file to specify the
+file for tex-file to run TeX on.  (By default, tex-main-file is nil,
+and tex-file runs TeX on the current visited file.)
+
+This is useful when you are editing a document that consists of
+multiple files.  In each of the included files, you can set up a local
+variable list which specifies the top-level file of your document for
+tex-main-file.  Then tex-file will run TeX on the whole document
+instead of just the file you are editing.
+
+** RefTeX mode
+
+RefTeX mode is a new minor mode with special support for \label, \ref
+and \cite macros in LaTeX documents.  RefTeX distinguishes labels of
+different environments (equation, figure, ...) and has full support for
+multifile documents.  To use it, select a buffer with a LaTeX document and
+turn the mode on with M-x reftex-mode.  Here are the main user commands:
+
+C-c (    reftex-label
+   Creates a label semi-automatically.  RefTeX is context sensitive and
+   knows which kind of label is needed.
+
+C-c )    reftex-reference
+   Offers in a menu all labels in the document, along with context of the
+   label definition.  The selected label is referenced as \ref{LABEL}.
+
+C-c [    reftex-citation
+   Prompts for a regular expression and displays a list of matching BibTeX
+   database entries.  The selected entry is cited with a \cite{KEY} macro.
+
+C-c &    reftex-view-crossref
+   Views the cross reference of a \ref or \cite command near point.
+
+C-c =    reftex-toc
+   Shows a table of contents of the (multifile) document.  From there you
+   can quickly jump to every section.
+
+Under X, RefTeX installs a "Ref" menu in the menu bar, with additional
+commands.  Press `?' to get help when a prompt mentions this feature.
+Full documentation and customization examples are in the file
+reftex.el.  You can use the finder to view the file documentation:
+C-h p --> tex --> reftex.el
+
+** Changes in BibTeX mode.
+
+*** Info documentation is now available.
+
+*** Don't allow parentheses in string constants anymore.  This confused
+both the BibTeX program and Emacs BibTeX mode.
+
+*** Renamed variable bibtex-mode-user-optional-fields to
+bibtex-user-optional-fields.
+
+*** Removed variable bibtex-include-OPTannote
+(use bibtex-user-optional-fields instead).
+
+*** New interactive functions to copy and kill fields and complete
+entries to the BibTeX kill ring, from where they can be yanked back by
+appropriate functions.
+
+*** New interactive functions for repositioning and marking of
+entries. They are bound by default to C-M-l and C-M-h.
+
+*** New hook bibtex-clean-entry-hook. It is called after entry has
+been cleaned.
+
+*** New variable bibtex-field-delimiters, which replaces variables
+bibtex-field-{left|right}-delimiter.
+
+*** New variable bibtex-entry-delimiters to determine how entries
+shall be delimited.
+
+*** Allow preinitialization of fields. See documentation of
+bibtex-user-optional-fields, bibtex-entry-field-alist, and
+bibtex-include-OPTkey for details.
+
+*** Book and InBook entries require either an author or an editor
+field. This is now supported by bibtex.el. Alternative fields are
+prefixed with `ALT'.
+
+*** New variable bibtex-entry-format, which replaces variable
+bibtex-clean-entry-zap-empty-opts and allows specification of many
+formatting options performed on cleaning an entry (see variable
+documentation).
+
+*** Even more control on how automatic keys are generated. See
+documentation of bibtex-generate-autokey for details. Transcriptions
+for foreign languages other than German are now handled, too.
+
+*** New boolean user option bibtex-comma-after-last-field to decide if
+comma should be inserted at end of last field.
+
+*** New boolean user option bibtex-align-at-equal-sign to determine if
+alignment should be made at left side of field contents or at equal
+signs. New user options to control entry layout (e.g. indentation).
+
+*** New function bibtex-fill-entry to realign entries.
+
+*** New function bibtex-reformat to reformat region or buffer.
+
+*** New function bibtex-convert-alien to convert a BibTeX database
+from alien sources.
+
+*** New function bibtex-complete-key (similar to bibtex-complete-string)
+to complete prefix to a key defined in buffer. Mainly useful in
+crossref entries.
+
+*** New function bibtex-count-entries to count entries in buffer or
+region.
+
+*** Added support for imenu.
+
+*** The function `bibtex-validate' now checks current region instead
+of buffer if mark is active. Now it shows all errors of buffer in a
+`compilation mode' buffer. You can use the normal commands (e.g.
+`next-error') for compilation modes to jump to errors.
+
+*** New variable `bibtex-string-file-path' to determine where the files
+from `bibtex-string-files' are searched.
+
+** Iso Accents mode now supports Latin-3 as an alternative.
+
+** The command next-error now opens blocks hidden by hideshow.
+
+** The function using-unix-filesystems has been replaced by the
+functions add-untranslated-filesystem and remove-untranslated-filesystem.
+Each of these functions takes the name of a drive letter or directory
+as an argument.
+
+When a filesystem is added as untranslated, all files on it are read
+and written in binary mode (no cr/lf translation is performed).
+
+** browse-url changes
+
+*** New methods for: Grail (browse-url-generic), MMM (browse-url-mmm),
+Lynx in a separate xterm (browse-url-lynx-xterm) or in an Emacs window
+(browse-url-lynx-emacs), remote W3 (browse-url-w3-gnudoit), generic
+non-remote-controlled browsers (browse-url-generic) and associated
+customization variables.
+
+*** New commands `browse-url-of-region' and `browse-url'.
+
+*** URLs marked up with <URL:...> (RFC1738) work if broken across
+lines.  Browsing methods can be associated with URL regexps
+(e.g. mailto: URLs) via `browse-url-browser-function'.
+
+** Changes in Ediff
+
+*** Clicking Mouse-2 on a brief command description in Ediff control panel
+pops up the Info file for this command.
+
+*** There is now a variable, ediff-autostore-merges, which controls whether
+the result of a merge is saved in a file. By default, this is done only when
+merge is done from a session group (eg, when merging files in two different
+directories).
+
+*** Since Emacs 19.31 (this hasn't been announced before), Ediff can compare
+and merge groups of files residing in different directories, or revisions of
+files in the same directory.
+
+*** Since Emacs 19.31, Ediff can apply multi-file patches interactively.
+The patches must be in the context format or GNU unified format.  (The bug
+related to the GNU format has now been fixed.)
+
+** Changes in Viper
+
+*** The startup file is now .viper instead of .vip
+*** All variable/function names have been changed to start with viper-
+    instead of vip-.
+*** C-\ now simulates the meta-key in all Viper states.
+*** C-z in Insert state now escapes to Vi for the duration of the next
+Viper command. In Vi and Insert states, C-z behaves as before.
+*** C-c \ escapes to Vi for one command if Viper is in Insert or Emacs states.
+*** _ is no longer the meta-key in Vi state.
+*** The variable viper-insert-state-cursor-color can be used to change cursor
+color when Viper is in insert state.
+*** If search lands the cursor near the top or the bottom of the window,
+Viper pulls the window up or down to expose more context. The variable
+viper-adjust-window-after-search controls this behavior.
+
+** Etags changes.
+
+*** In C, C++, Objective C and Java, Etags tags global variables by
+default.  The resulting tags files are inflated by 30% on average.
+Use --no-globals to turn this feature off.  Etags can also tag
+variables which are members of structure-like constructs, but it does
+not by default.  Use --members to turn this feature on.
+
+*** C++ member functions are now recognized as tags.
+
+*** Java is tagged like C++.  In addition, "extends" and "implements"
+constructs are tagged.  Files are recognized by the extension .java.
+
+*** Etags can now handle programs written in Postscript.  Files are
+recognized by the extensions .ps and .pdb (Postscript with C syntax).
+In Postscript, tags are lines that start with a slash.
+
+*** Etags now handles Objective C and Objective C++ code.  The usual C and
+C++ tags are recognized in these languages; in addition, etags
+recognizes special Objective C syntax for classes, class categories,
+methods and protocols.
+
+*** Etags also handles Cobol.  Files are recognized by the extension
+.cobol.  The tagged lines are those containing a word that begins in
+column 8 and ends in a full stop, i.e. anything that could be a
+paragraph name.
+
+*** Regexps in Etags now support intervals, as in ed or grep.  The syntax of
+an interval is \{M,N\}, and it means to match the preceding expression
+at least M times and as many as N times.
+
+** The format for specifying a custom format for time-stamp to insert
+in files has changed slightly.
+
+With the new enhancements to the functionality of format-time-string,
+time-stamp-format will change to be eventually compatible with it.
+This conversion is being done in two steps to maintain compatibility
+with old time-stamp-format values.
+
+In the new scheme, alternate case is signified by the number-sign
+(`#') modifier, rather than changing the case of the format character.
+This feature is as yet incompletely implemented for compatibility
+reasons.
+
+In the old time-stamp-format, all numeric fields defaulted to their
+natural width.  (With format-time-string, each format has a
+fixed-width default.)  In this version, you can specify the colon
+(`:') modifier to a numeric conversion to mean "give me the historical
+time-stamp-format width default."  Do not use colon if you are
+specifying an explicit width, as in "%02d".
+
+Numbers are no longer truncated to the requested width, except in the
+case of "%02y", which continues to give a two-digit year.  Digit
+truncation probably wasn't being used for anything else anyway.
+
+The new formats will work with old versions of Emacs.  New formats are
+being recommended now to allow time-stamp-format to change in the
+future to be compatible with format-time-string.  The new forms being
+recommended now will continue to work then.
+
+See the documentation string for the variable time-stamp-format for
+details.
+
+** There are some additional major modes:
+
+dcl-mode, for editing VMS DCL files.
+m4-mode, for editing files of m4 input.
+meta-mode, for editing MetaFont and MetaPost source files.
+
+** In Shell mode, the command shell-copy-environment-variable lets you
+copy the value of a specified environment variable from the subshell
+into Emacs.
+
+** New Lisp packages include:
+
+*** battery.el displays battery status for laptops.
+
+*** M-x bruce (named after Lenny Bruce) is a program that might
+be used for adding some indecent words to your email.
+
+*** M-x crisp-mode enables an emulation for the CRiSP editor.
+
+*** M-x dirtrack arranges for better tracking of directory changes
+in shell buffers.
+
+*** The new library elint.el provides for linting of Emacs Lisp code.
+See the documentation for `elint-initialize', `elint-current-buffer'
+and `elint-defun'.
+
+*** M-x expand-add-abbrevs defines a special kind of abbrev which is
+meant for programming constructs.  These abbrevs expand like ordinary
+ones, when you type SPC, but only at the end of a line and not within
+strings or comments.
+
+These abbrevs can act as templates: you can define places within an
+abbrev for insertion of additional text.  Once you expand the abbrev,
+you can then use C-x a p and C-x a n to move back and forth to these
+insertion points.  Thus you can conveniently insert additional text
+at these points.
+
+*** filecache.el remembers the location of files so that you
+can visit them by short forms of their names.
+
+*** find-func.el lets you find the definition of the user-loaded
+Emacs Lisp function at point.
+
+*** M-x handwrite converts text to a "handwritten" picture.
+
+*** M-x iswitchb-buffer is a command for switching to a buffer, much like
+switch-buffer, but it reads the argument in a more helpful way.
+
+*** M-x landmark implements a neural network for landmark learning.
+
+*** M-x locate provides a convenient interface to the `locate' program.
+
+*** M4 mode is a new mode for editing files of m4 input.
+
+*** mantemp.el creates C++ manual template instantiations
+from the GCC error messages which indicate which instantiations are needed.
+
+*** mouse-copy.el provides a one-click copy and move feature.
+You can drag a region with M-mouse-1, and it is automatically
+inserted at point.  M-Shift-mouse-1 deletes the text from its
+original place after inserting the copy.
+
+*** mouse-drag.el lets you do scrolling by dragging Mouse-2
+on the buffer.
+
+You click the mouse and move; that distance either translates into the
+velocity to scroll (with mouse-drag-throw) or the distance to scroll
+(with mouse-drag-drag).  Horizontal scrolling is enabled when needed.
+
+Enable mouse-drag with:
+    (global-set-key [down-mouse-2] 'mouse-drag-throw)
+-or-
+    (global-set-key [down-mouse-2] 'mouse-drag-drag)
+
+*** mspools.el is useful for determining which mail folders have
+mail waiting to be read in them.  It works with procmail.
+
+*** Octave mode is a major mode for editing files of input for Octave.
+It comes with a facility for communicating with an Octave subprocess.
+
+*** ogonek
+
+The ogonek package provides functions for changing the coding of
+Polish diacritic characters in buffers.  Codings known from various
+platforms are supported such as ISO8859-2, Mazovia, IBM Latin2, and
+TeX.  For example, you can change the coding from Mazovia to
+ISO8859-2.  Another example is a change of coding from ISO8859-2 to
+prefix notation (in which `/a' stands for the aogonek character, for
+instance) and vice versa.
+
+To use this package load it using
+    M-x load-library [enter] ogonek
+Then, you may get an explanation by calling one of
+    M-x ogonek-jak        -- in Polish
+    M-x ogonek-how        -- in English
+The info specifies the commands and variables provided as well as the
+ways of customization in `.emacs'.
+
+*** Interface to ph.
+
+Emacs provides a client interface to CCSO Nameservers (ph/qi)
+
+The CCSO nameserver is used in many universities to provide directory
+services about people.  ph.el provides a convenient Emacs interface to
+these servers.
+
+*** uce.el is useful for replying to unsolicited commercial email.
+
+*** vcursor.el implements a "virtual cursor" feature.
+You can move the virtual cursor with special commands
+while the real cursor does not move.
+
+*** webjump.el is a "hot list" package which you can set up
+for visiting your favorite web sites.
+
+*** M-x winner-mode is a minor mode which saves window configurations,
+so you can move back to other configurations that you have recently used.
+
+** movemail change
+
+Movemail no longer needs to be installed setuid root in order for POP
+mail retrieval to function properly.  This is because it no longer
+supports the RPOP (reserved-port POP) protocol; instead, it uses the
+user's POP password to authenticate to the mail server.
+
+This change was made earlier, but not reported in NEWS before.
+
+
+* Emacs 20.1 changes for MS-DOS and MS-Windows.
+
+** Changes in handling MS-DOS/MS-Windows text files.
+
+Emacs handles three different conventions for representing
+end-of-line: CRLF for MSDOS, LF for Unix and GNU, and CR (used on the
+Macintosh).  Emacs determines which convention is used in a specific
+file based on the contents of that file (except for certain special
+file names), and when it saves the file, it uses the same convention.
+
+To save the file and change the end-of-line convention, you can use
+C-x RET f (set-buffer-file-coding-system) to specify a different
+coding system for the buffer.  Then, when you save the file, the newly
+specified coding system will take effect.  For example, to save with
+LF, specify undecided-unix (or some other ...-unix coding system); to
+save with CRLF, specify undecided-dos.
+
+
+* Lisp Changes in Emacs 20.1
+
+** Byte-compiled files made with Emacs 20 will, in general, work in
+Emacs 19 as well, as long as the source code runs in Emacs 19.  And
+vice versa: byte-compiled files made with Emacs 19 should also run in
+Emacs 20, as long as the program itself works in Emacs 20.
+
+** Windows-specific functions and variables have been renamed
+to start with w32- instead of win32-.
+
+In hacker language, calling something a "win" is a form of praise.  We
+don't want to praise a non-free Microsoft system, so we don't call it
+"win".
+
+** Basic Lisp changes
+
+*** A symbol whose name starts with a colon now automatically
+evaluates to itself.  Therefore such a symbol can be used as a constant.
+
+*** The defined purpose of `defconst' has been changed.  It should now
+be used only for values that should not be changed whether by a program
+or by the user.
+
+The actual behavior of defconst has not been changed.
+
+*** There are new macros `when' and `unless'
+
+(when CONDITION BODY...)  is short for  (if CONDITION (progn BODY...))
+(unless CONDITION BODY...)  is short for  (if CONDITION nil BODY...)
+
+*** Emacs now defines functions caar, cadr, cdar and cddr with their
+usual Lisp meanings.  For example, caar returns the car of the car of
+its argument.
+
+*** equal, when comparing strings, now ignores their text properties.
+
+*** The new function `functionp' tests whether an object is a function.
+
+*** arrayp now returns t for char-tables and bool-vectors.
+
+*** Certain primitives which use characters (as integers) now get an
+error if the integer is not a valid character code.  These primitives
+include insert-char, char-to-string, and the %c construct in the
+`format' function.
+
+*** The `require' function now insists on adding a suffix, either .el
+or .elc, to the file name.  Thus, (require 'foo) will not use a file
+whose name is just foo.  It insists on foo.el or foo.elc.
+
+*** The `autoload' function, when the file name does not contain
+either a directory name or the suffix .el or .elc, insists on
+adding one of these suffixes.
+
+*** string-to-number now takes an optional second argument BASE
+which specifies the base to use when converting an integer.
+If BASE is omitted, base 10 is used.
+
+We have not implemented other radices for floating point numbers,
+because that would be much more work and does not seem useful.
+
+*** substring now handles vectors as well as strings.
+
+*** The Common Lisp function eql is no longer defined normally.
+You must load the `cl' library to define it.
+
+*** The new macro `with-current-buffer' lets you evaluate an expression
+conveniently with a different current buffer.  It looks like this:
+
+  (with-current-buffer BUFFER BODY-FORMS...)
+
+BUFFER is the expression that says which buffer to use.
+BODY-FORMS say what to do in that buffer.
+
+*** The new primitive `save-current-buffer' saves and restores the
+choice of current buffer, like `save-excursion', but without saving or
+restoring the value of point or the mark.  `with-current-buffer'
+works using `save-current-buffer'.
+
+*** The new macro `with-temp-file' lets you do some work in a new buffer and
+write the output to a specified file.  Like `progn', it returns the value
+of the last form.
+
+*** The new macro `with-temp-buffer' lets you do some work in a new buffer,
+which is discarded after use.  Like `progn', it returns the value of the
+last form.  If you wish to return the buffer contents, use (buffer-string)
+as the last form.
+
+*** The new function split-string takes a string, splits it at certain
+characters, and returns a list of the substrings in between the
+matches.
+
+For example, (split-string "foo bar lose" " +") returns ("foo" "bar" "lose").
+
+*** The new macro with-output-to-string executes some Lisp expressions
+with standard-output set up so that all output feeds into a string.
+Then it returns that string.
+
+For example, if the current buffer name is `foo',
+
+(with-output-to-string
+  (princ "The buffer is ")
+  (princ (buffer-name)))
+
+returns "The buffer is foo".
+
+** Non-ASCII characters are now supported, if enable-multibyte-characters
+is non-nil.
+
+These characters have character codes above 256.  When inserted in the
+buffer or stored in a string, they are represented as multibyte
+characters that occupy several buffer positions each.
+
+*** When enable-multibyte-characters is non-nil, a single character in
+a buffer or string can be two or more bytes (as many as four).
+
+Buffers and strings are still made up of unibyte elements;
+character positions and string indices are always measured in bytes.
+Therefore, moving forward one character can increase the buffer
+position by 2, 3 or 4.  The function forward-char moves by whole
+characters, and therefore is no longer equivalent to
+  (lambda (n) (goto-char (+ (point) n))).
+
+ASCII characters (codes 0 through 127) are still single bytes, always.
+Sequences of byte values 128 through 255 are used to represent
+non-ASCII characters.  These sequences are called "multibyte
+characters".
+
+The first byte of a multibyte character is always in the range 128
+through 159 (octal 0200 through 0237).  These values are called
+"leading codes".  The second and subsequent bytes are always in the
+range 160 through 255 (octal 0240 through 0377).  The first byte, the
+leading code, determines how many bytes long the sequence is.
+
+*** The function forward-char moves over characters, and therefore
+(forward-char 1) may increase point by more than 1 if it moves over a
+multibyte character.  Likewise, delete-char always deletes a
+character, which may be more than one buffer position.
+
+This means that some Lisp programs, which assume that a character is
+always one buffer position, need to be changed.
+
+However, all ASCII characters are always one buffer position.
+
+*** The regexp [\200-\377] no longer matches all non-ASCII characters,
+because when enable-multibyte-characters is non-nil, these characters
+have codes that are not in the range octal 200 to octal 377.  However,
+the regexp [^\000-\177] does match all non-ASCII characters,
+guaranteed.
+
+*** The function char-boundary-p returns non-nil if position POS is
+between two characters in the buffer (not in the middle of a
+character).
+
+When the value is non-nil, it says what kind of character follows POS:
+
+ 0 if POS is at an ASCII character or at the end of range,
+ 1 if POS is before a 2-byte length multi-byte form,
+ 2 if POS is at a head of 3-byte length multi-byte form,
+ 3 if POS is at a head of 4-byte length multi-byte form,
+ 4 if POS is at a head of multi-byte form of a composite character.
+
+*** The function char-bytes returns how many bytes the character CHAR uses.
+
+*** Strings can contain multibyte characters.  The function
+`length' returns the string length counting bytes, which may be
+more than the number of characters.
+
+You can include a multibyte character in a string constant by writing
+it literally.  You can also represent it with a hex escape,
+\xNNNNNNN..., using as many digits as necessary.  Any character which
+is not a valid hex digit terminates this construct.  If you want to
+follow it with a character that is a hex digit, write backslash and
+newline in between; that will terminate the hex escape.
+
+*** The function concat-chars takes arguments which are characters
+and returns a string containing those characters.
+
+*** The function sref access a multibyte character in a string.
+(sref STRING INDX) returns the character in STRING at INDEX.  INDEX
+counts from zero.  If INDEX is at a position in the middle of a
+character, sref signals an error.
+
+*** The function chars-in-string returns the number of characters
+in a string.  This is less than the length of the string, if the
+string contains multibyte characters (the length counts bytes).
+
+*** The function chars-in-region returns the number of characters
+in a region from BEG to END.  This is less than (- END BEG) if the
+region contains multibyte characters (the length counts bytes).
+
+*** The function string-to-list converts a string to a list of
+the characters in it.  string-to-vector converts a string
+to a vector of the characters in it.
+
+*** The function store-substring alters part of the contents
+of a string.  You call it as follows:
+
+   (store-substring STRING IDX OBJ)
+
+This says to alter STRING, by storing OBJ starting at index IDX in
+STRING.  OBJ may be either a character or a (smaller) string.
+This function really does alter the contents of STRING.
+Since it is impossible to change the length of an existing string,
+it is an error if OBJ doesn't fit within STRING's actual length.
+
+*** char-width returns the width (in columns) of the character CHAR,
+if it were displayed in the current buffer and the selected window.
+
+*** string-width returns the width (in columns) of the text in STRING,
+if it were displayed in the current buffer and the selected window.
+
+*** truncate-string-to-width shortens a string, if necessary,
+to fit within a certain number of columns.  (Of course, it does
+not alter the string that you give it; it returns a new string
+which contains all or just part of the existing string.)
+
+(truncate-string-to-width STR END-COLUMN &optional START-COLUMN PADDING)
+
+This returns the part of STR up to column END-COLUMN.
+
+The optional argument START-COLUMN specifies the starting column.
+If this is non-nil, then the first START-COLUMN columns of the string
+are not included in the resulting value.
+
+The optional argument PADDING, if non-nil, is a padding character to be added
+at the beginning and end the resulting string, to extend it to exactly
+WIDTH columns.  If PADDING is nil, that means do not pad; then, if STRING
+is narrower than WIDTH, the value is equal to STRING.
+
+If PADDING and START-COLUMN are both non-nil, and if there is no clean
+place in STRING that corresponds to START-COLUMN (because one
+character extends across that column), then the padding character
+PADDING is added one or more times at the beginning of the result
+string, so that its columns line up as if it really did start at
+column START-COLUMN.
+
+*** When the functions in the list after-change-functions are called,
+the third argument is the number of bytes in the pre-change text, not
+necessarily the number of characters.  It is, in effect, the
+difference in buffer position between the beginning and the end of the
+changed text, before the change.
+
+*** The characters Emacs uses are classified in various character
+sets, each of which has a name which is a symbol.  In general there is
+one character set for each script, not for each language.
+
+**** The function charsetp tests whether an object is a character set name.
+
+**** The variable charset-list holds a list of character set names.
+
+**** char-charset, given a character code, returns the name of the character
+set that the character belongs to.  (The value is a symbol.)
+
+**** split-char, given a character code, returns a list containing the
+name of the character set, followed by one or two byte-values
+which identify the character within that character set.
+
+**** make-char, given a character set name and one or two subsequent
+byte-values, constructs a character code.  This is roughly the
+opposite of split-char.
+
+**** find-charset-region returns a list of the character sets
+of all the characters between BEG and END.
+
+**** find-charset-string returns a list of the character sets
+of all the characters in a string.
+
+*** Here are the Lisp facilities for working with coding systems
+and specifying coding systems.
+
+**** The function coding-system-list returns a list of all coding
+system names (symbols).  With optional argument t, it returns a list
+of all distinct base coding systems, not including variants.
+(Variant coding systems are those like latin-1-dos, latin-1-unix
+and latin-1-mac which specify the end-of-line conversion as well
+as what to do about code conversion.)
+
+**** coding-system-p tests a symbol to see if it is a coding system
+name.  It returns t if so, nil if not.
+
+**** file-coding-system-alist specifies which coding systems to use
+for certain file names.  It works like network-coding-system-alist,
+except that the PATTERN is matched against the file name.
+
+Each element has the format (PATTERN . VAL), where PATTERN determines
+which file names the element applies to.  PATTERN should be a regexp
+to match against a file name.
+
+VAL is a coding system, a cons cell containing two coding systems, or
+a function symbol.  If VAL is a coding system, it is used for both
+decoding what received from the network stream and encoding what sent
+to the network stream.  If VAL is a cons cell containing two coding
+systems, the car specifies the coding system for decoding, and the cdr
+specifies the coding system for encoding.
+
+If VAL is a function symbol, the function must return a coding system
+or a cons cell containing two coding systems, which is used as above.
+
+**** The variable network-coding-system-alist specifies
+the coding system to use for network sockets.
+
+Each element has the format (PATTERN . VAL), where PATTERN determines
+which network sockets the element applies to.  PATTERN should be
+either a port number or a regular expression matching some network
+service names.
+
+VAL is a coding system, a cons cell containing two coding systems, or
+a function symbol.  If VAL is a coding system, it is used for both
+decoding what received from the network stream and encoding what sent
+to the network stream.  If VAL is a cons cell containing two coding
+systems, the car specifies the coding system for decoding, and the cdr
+specifies the coding system for encoding.
+
+If VAL is a function symbol, the function must return a coding system
+or a cons cell containing two coding systems, which is used as above.
+
+**** process-coding-system-alist specifies which coding systems to use
+for certain subprocess.  It works like network-coding-system-alist,
+except that the PATTERN is matched against the program name used to
+start the subprocess.
+
+**** The variable default-process-coding-system specifies the coding
+systems to use for subprocess (and net connection) input and output,
+when nothing else specifies what to do.  The value is a cons cell
+(OUTPUT-CODING . INPUT-CODING).  OUTPUT-CODING applies to output
+to the subprocess, and INPUT-CODING applies to input from it.
+
+**** The variable coding-system-for-write, if non-nil, specifies the
+coding system to use for writing a file, or for output to a synchronous
+subprocess.
+
+It also applies to any asynchronous subprocess or network connection,
+but in a different way: the value of coding-system-for-write when you
+start the subprocess or connection affects that subprocess or
+connection permanently or until overridden.
+
+The variable coding-system-for-write takes precedence over
+file-coding-system-alist, process-coding-system-alist and
+network-coding-system-alist, and all other methods of specifying a
+coding system for output.  But most of the time this variable is nil.
+It exists so that Lisp programs can bind it to a specific coding
+system for one operation at a time.
+
+**** coding-system-for-read applies similarly to input from
+files, subprocesses or network connections.
+
+**** The function process-coding-system tells you what
+coding systems(s) an existing subprocess is using.
+The value is a cons cell,
+ (DECODING-CODING-SYSTEM . ENCODING-CODING-SYSTEM)
+where DECODING-CODING-SYSTEM is used for decoding output from
+the subprocess, and ENCODING-CODING-SYSTEM is used for encoding
+input to the subprocess.
+
+**** The function set-process-coding-system can be used to
+change the coding systems in use for an existing subprocess.
+
+** Emacs has a new facility to help users manage the many
+customization options.  To make a Lisp program work with this facility,
+you need to use the new macros defgroup and defcustom.
+
+You use defcustom instead of defvar, for defining a user option
+variable.  The difference is that you specify two additional pieces of
+information (usually): the "type" which says what values are
+legitimate, and the "group" which specifies the hierarchy for
+customization.
+
+Thus, instead of writing
+
+    (defvar foo-blurgoze nil
+      "*Non-nil means that foo will act very blurgozely.")
+
+you would now write this:
+
+    (defcustom foo-blurgoze nil
+      "*Non-nil means that foo will act very blurgozely."
+      :type 'boolean
+      :group foo)
+
+The type `boolean' means that this variable has only
+two meaningful states: nil and non-nil.  Other type values
+describe other possibilities; see the manual for Custom
+for a description of them.
+
+The "group" argument is used to specify a group which the option
+should belong to.  You define a new group like this:
+
+    (defgroup ispell nil
+      "Spell checking using Ispell."
+      :group 'processes)
+
+The "group" argument in defgroup specifies the parent group.  The root
+group is called `emacs'; it should not contain any variables itself,
+but only other groups.  The immediate subgroups of `emacs' correspond
+to the keywords used by C-h p.  Under these subgroups come
+second-level subgroups that belong to individual packages.
+
+Each Emacs package should have its own set of groups.  A simple
+package should have just one group; a more complex package should
+have a hierarchy of its own groups.  The sole or root group of a
+package should be a subgroup of one or more of the "keyword"
+first-level subgroups.
+
+** New `widget' library for inserting UI components in buffers.
+
+This library, used by the new custom library, is documented in a
+separate manual that accompanies Emacs.
+
+** easy-mmode
+
+The easy-mmode package provides macros and functions that make
+developing minor modes easier.  Roughly, the programmer has to code
+only the functionality of the minor mode.  All the rest--toggles,
+predicate, and documentation--can be done in one call to the macro
+`easy-mmode-define-minor-mode' (see the documentation).  See also
+`easy-mmode-define-keymap'.
+
+** Text property changes
+
+*** The `intangible' property now works on overlays as well as on a
+text property.
+
+*** The new functions next-char-property-change and
+previous-char-property-change scan through the buffer looking for a
+place where either a text property or an overlay might change.  The
+functions take two arguments, POSITION and LIMIT.  POSITION is the
+starting position for the scan.  LIMIT says where to stop the scan.
+
+If no property change is found before LIMIT, the value is LIMIT.  If
+LIMIT is nil, scan goes to the beginning or end of the accessible part
+of the buffer.  If no property change is found, the value is the
+position of the beginning or end of the buffer.
+
+*** In the `local-map' text property or overlay property, the property
+value can now be a symbol whose function definition is a keymap.  This
+is an alternative to using the keymap itself.
+
+** Changes in invisibility features
+
+*** Isearch can now temporarily show parts of the buffer which are
+hidden by an overlay with a invisible property, when the search match
+is inside that portion of the buffer.  To enable this the overlay
+should have a isearch-open-invisible property which is a function that
+would be called having the overlay as an argument, the function should
+make the overlay visible.
+
+During incremental search the overlays are shown by modifying the
+invisible and intangible properties, if beside this more actions are
+needed the overlay should have a isearch-open-invisible-temporary
+which is a function. The function is called with 2 arguments: one is
+the overlay and the second is nil when it should show the overlay and
+t when it should hide it.
+
+*** add-to-invisibility-spec, remove-from-invisibility-spec
+
+Modes that use overlays to hide portions of a buffer should set the
+invisible property of the overlay to the mode's name (or another symbol)
+and modify the `buffer-invisibility-spec' to include that symbol.
+Use  `add-to-invisibility-spec' and `remove-from-invisibility-spec' to
+manipulate the `buffer-invisibility-spec'.
+Here is an example of how to do this:
+
+ ;; If we want to display an ellipsis:
+ (add-to-invisibility-spec '(my-symbol . t))
+ ;; If you don't want ellipsis:
+ (add-to-invisibility-spec 'my-symbol)
+
+  ...
+ (overlay-put  (make-overlay beginning end)  'invisible 'my-symbol)
+
+ ...
+ ;; When done with the overlays:
+ (remove-from-invisibility-spec '(my-symbol . t))
+ ;; Or respectively:
+ (remove-from-invisibility-spec 'my-symbol)
+
+** Changes in syntax parsing.
+
+*** The syntax-directed buffer-scan functions (such as
+`parse-partial-sexp', `forward-word' and similar functions) can now
+obey syntax information specified by text properties, if the variable
+`parse-sexp-lookup-properties' is non-nil.
+
+If the value of `parse-sexp-lookup-properties' is nil, the behavior
+is as before: the syntax-table of the current buffer is always
+used to determine the syntax of the character at the position.
+
+When `parse-sexp-lookup-properties' is non-nil, the syntax of a
+character in the buffer is calculated thus:
+
+	a) if the `syntax-table' text-property of that character
+	   is a cons, this cons becomes the syntax-type;
+
+	   Valid values of `syntax-table' text-property are: nil, a valid
+	   syntax-table, and a valid syntax-table element, i.e.,
+	   a cons cell of the form (SYNTAX-CODE . MATCHING-CHAR).
+
+	b) if the character's `syntax-table' text-property
+	   is a syntax table, this syntax table is used
+	   (instead of the syntax-table of the current buffer) to
+	   determine the syntax type of the character.
+
+	c) otherwise the syntax-type is determined by the syntax-table
+	   of the current buffer.
+
+*** The meaning of \s in regular expressions is also affected by the
+value of `parse-sexp-lookup-properties'.  The details are the same as
+for the syntax-directed buffer-scan functions.
+
+*** There are two new syntax-codes, `!' and `|' (numeric values 14
+and 15).  A character with a code `!' starts a comment which is ended
+only by another character with the same code (unless quoted).  A
+character with a code `|' starts a string which is ended only by
+another character with the same code (unless quoted).
+
+These codes are mainly meant for use as values of the `syntax-table'
+text property.
+
+*** The function `parse-partial-sexp' has new semantics for the sixth
+arg COMMENTSTOP.  If it is `syntax-table', parse stops after the start
+of a comment or a string, or after end of a comment or a string.
+
+*** The state-list which the return value from `parse-partial-sexp'
+(and can also be used as an argument) now has an optional ninth
+element: the character address of the start of last comment or string;
+nil if none.  The fourth and eighth elements have special values if the
+string/comment is started by a "!"  or "|" syntax-code.
+
+*** Since new features of `parse-partial-sexp' allow a complete
+syntactic parsing, `font-lock' no longer supports
+`font-lock-comment-start-regexp'.
+
+** Changes in face features
+
+*** The face functions are now unconditionally defined in Emacs, even
+if it does not support displaying on a device that supports faces.
+
+*** The function face-documentation returns the documentation string
+of a face (or nil if it doesn't have one).
+
+*** The function face-bold-p returns t if a face should be bold.
+set-face-bold-p sets that flag.
+
+*** The function face-italic-p returns t if a face should be italic.
+set-face-italic-p sets that flag.
+
+*** You can now specify foreground and background colors for text
+by adding elements of the form (foreground-color . COLOR-NAME)
+and (background-color . COLOR-NAME) to the list of faces in
+the `face' property (either the character's text property or an
+overlay property).
+
+This means that you no longer need to create named faces to use
+arbitrary colors in a Lisp package.
+
+** Changes in file-handling functions
+
+*** File-access primitive functions no longer discard an extra redundant
+directory name from the beginning of the file name.  In other words,
+they no longer do anything special with // or /~.  That conversion
+is now done only in substitute-in-file-name.
+
+This makes it possible for a Lisp program to open a file whose name
+begins with ~.
+
+*** If copy-file is unable to set the date of the output file,
+it now signals an error with the condition file-date-error.
+
+*** The inode number returned by file-attributes may be an integer (if
+the number fits in a Lisp integer) or a list of integers.
+
+*** insert-file-contents can now read from a special file,
+as long as the arguments VISIT and REPLACE are nil.
+
+*** The RAWFILE arg to find-file-noselect, if non-nil, now suppresses
+character code conversion as well as other things.
+
+Meanwhile, this feature does work with remote file names
+(formerly it did not).
+
+*** Lisp packages which create temporary files should use the TMPDIR
+environment variable to decide which directory to put them in.
+
+*** interpreter-mode-alist elements now specify regexps
+instead of constant strings.
+
+*** expand-file-name no longer treats `//' or `/~' specially.  It used
+to delete all the text of a file name up through the first slash of
+any `//' or `/~' sequence.  Now it passes them straight through.
+
+substitute-in-file-name continues to treat those sequences specially,
+in the same way as before.
+
+*** The variable `format-alist' is more general now.
+The FROM-FN and TO-FN in a format definition can now be strings
+which specify shell commands to use as filters to perform conversion.
+
+*** The new function access-file tries to open a file, and signals an
+error if that fails.  If the open succeeds, access-file does nothing
+else, and returns nil.
+
+*** The function insert-directory now signals an error if the specified
+directory cannot be listed.
+
+** Changes in minibuffer input
+
+*** The functions read-buffer, read-variable, read-command, read-string
+read-file-name, read-from-minibuffer and completing-read now take an
+additional argument which specifies the default value.  If this
+argument is non-nil, it should be a string; that string is used in two
+ways:
+
+  It is returned if the user enters empty input.
+  It is available through the history command M-n.
+
+*** The functions read-string, read-from-minibuffer,
+read-no-blanks-input and completing-read now take an additional
+argument INHERIT-INPUT-METHOD.  If this is non-nil, then the
+minibuffer inherits the current input method and the setting of
+enable-multibyte-characters from the previously current buffer.
+
+In an interactive spec, you can use M instead of s to read an
+argument in this way.
+
+*** All minibuffer input functions discard text properties
+from the text you enter in the minibuffer, unless the variable
+minibuffer-allow-text-properties is non-nil.
+
+** Echo area features
+
+*** Clearing the echo area now runs the normal hook
+echo-area-clear-hook.  Note that the echo area can be used while the
+minibuffer is active; in that case, the minibuffer is still active
+after the echo area is cleared.
+
+*** The function current-message returns the message currently displayed
+in the echo area, or nil if there is none.
+
+** Keyboard input features
+
+*** tty-erase-char is a new variable that reports which character was
+set up as the terminal's erase character when time Emacs was started.
+
+*** num-nonmacro-input-events is the total number of input events
+received so far from the terminal.  It does not count those generated
+by keyboard macros.
+
+** Frame-related changes
+
+*** make-frame runs the normal hook before-make-frame-hook just before
+creating a frame, and just after creating a frame it runs the abnormal
+hook after-make-frame-functions with the new frame as arg.
+
+*** The new hook window-configuration-change-hook is now run every time
+the window configuration has changed.  The frame whose configuration
+has changed is the selected frame when the hook is run.
+
+*** Each frame now independently records the order for recently
+selected buffers, in its buffer-list frame parameter, so that the
+value of other-buffer is now based on the buffers recently displayed
+in the selected frame.
+
+*** The value of the frame parameter vertical-scroll-bars
+is now `left', `right' or nil.  A non-nil value specifies
+which side of the window to put the scroll bars on.
+
+** X Windows features
+
+*** You can examine X resources for other applications by binding
+x-resource-class around a call to x-get-resource.  The usual value of
+x-resource-class is "Emacs", which is the correct value for Emacs.
+
+*** In menus, checkboxes and radio buttons now actually work.
+The menu displays the current status of the box or button.
+
+*** The function x-list-fonts now takes an optional fourth argument
+MAXIMUM which sets a limit on how many matching fonts to return.
+A smaller value of MAXIMUM makes the function faster.
+
+If the only question is whether *any* font matches the pattern,
+it is good to supply 1 for this argument.
+
+** Subprocess features
+
+*** A reminder: it is no longer necessary for subprocess filter
+functions and sentinels to do save-match-data, because Emacs does this
+automatically.
+
+*** The new function shell-command-to-string executes a shell command
+and returns the output from the command as a string.
+
+*** The new function process-contact returns t for a child process,
+and (HOSTNAME SERVICE) for a net connection.
+
+** An error in running pre-command-hook or post-command-hook
+does clear the variable to nil.  The documentation was wrong before.
+
+** In define-key-after, if AFTER is t, the new binding now always goes
+at the end of the keymap.  If the keymap is a menu, this means it
+goes after the other menu items.
+
+** If you have a program that makes several changes in the same area
+of the buffer, you can use the macro combine-after-change-calls
+around that Lisp code to make it faster when after-change hooks
+are in use.
+
+The macro arranges to call the after-change functions just once for a
+series of several changes--if that seems safe.
+
+Don't alter the variables after-change-functions and
+after-change-function within the body of a combine-after-change-calls
+form.
+
+** If you define an abbrev (with define-abbrev) whose EXPANSION
+is not a string, then the abbrev does not expand in the usual sense,
+but its hook is still run.
+
+** Normally, the Lisp debugger is not used (even if you have enabled it)
+for errors that are handled by condition-case.
+
+If you set debug-on-signal to a non-nil value, then the debugger is called
+regardless of whether there is a handler for the condition.  This is
+useful for debugging problems that happen inside of a condition-case.
+
+This mode of operation seems to be unreliable in other ways.  Errors that
+are normal and ought to be handled, perhaps in timers or process
+filters, will instead invoke the debugger.  So don't say you weren't
+warned.
+
+** The new variable ring-bell-function lets you specify your own
+way for Emacs to "ring the bell".
+
+** If run-at-time's TIME argument is t, the action is repeated at
+integral multiples of REPEAT from the epoch; this is useful for
+functions like display-time.
+
+** You can use the function locate-library to find the precise file
+name of a Lisp library.  This isn't new, but wasn't documented before.
+
+** Commands for entering view mode have new optional arguments that
+can be used from Lisp.  Low-level entrance to and exit from view mode
+is done by functions view-mode-enter and view-mode-exit.
+
+** batch-byte-compile-file now makes Emacs return a nonzero status code
+if there is an error in compilation.
+
+** pop-to-buffer, switch-to-buffer-other-window and
+switch-to-buffer-other-frame now accept an additional optional
+argument NORECORD, much like switch-to-buffer.  If it is non-nil,
+they don't put the buffer at the front of the buffer list.
+
+** If your .emacs file leaves the *scratch* buffer non-empty,
+Emacs does not display the startup message, so as to avoid changing
+the *scratch* buffer.
+
+** The new function regexp-opt returns an efficient regexp to match a string.
+The arguments are STRINGS and (optionally) PAREN.  This function can be used
+where regexp matching or searching is intensively used and speed is important,
+e.g., in Font Lock mode.
+
+** The variable buffer-display-count is local to each buffer,
+and is incremented each time the buffer is displayed in a window.
+It starts at 0 when the buffer is created.
+
+** The new function compose-mail starts composing a mail message
+using the user's chosen mail composition agent (specified with the
+variable mail-user-agent).  It has variants compose-mail-other-window
+and compose-mail-other-frame.
+
+** The `user-full-name' function now takes an optional parameter which
+can either be a number (the UID) or a string (the login name).  The
+full name of the specified user will be returned.
+
+** Lisp packages that load files of customizations, or any other sort
+of user profile, should obey the variable init-file-user in deciding
+where to find it.  They should load the profile of the user name found
+in that variable.  If init-file-user is nil, meaning that the -q
+option was used, then Lisp packages should not load the customization
+files at all.
+
+** format-time-string now allows you to specify the field width
+and type of padding.  This works as in printf: you write the field
+width as digits in the middle of a %-construct.  If you start
+the field width with 0, it means to pad with zeros.
+
+For example, %S normally specifies the number of seconds since the
+minute; %03S means to pad this with zeros to 3 positions, %_3S to pad
+with spaces to 3 positions.  Plain %3S pads with zeros, because that
+is how %S normally pads to two positions.
+
+** thing-at-point now supports a new kind of "thing": url.
+
+** imenu.el changes.
+
+You can now specify a function to be run when selecting an
+item from menu created by imenu.
+
+An example of using this feature: if we define imenu items for the
+#include directives in a C file, we can open the included file when we
+select one of those items.
+
+
+----------------------------------------------------------------------
+Copyright information:
+
+Copyright (C) 1999, 2000, 2006
+	  Free Software Foundation, Inc.
+
+   Permission is granted to anyone to make or distribute verbatim copies
+   of this document as received, in any medium, provided that the
+   copyright notice and this permission notice are preserved,
+   thus giving the recipient permission to redistribute in turn.
+
+   Permission is granted to distribute modified versions
+   of this document, or of portions of it,
+   under the above conditions, provided also that they
+   carry prominent notices stating who last changed them.
+
+Local variables:
+mode: outline
+paragraph-separate: "[ 	]*$"
+end:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/NEWS.21	Sun Jun 04 01:01:51 2006 +0000
@@ -0,0 +1,4900 @@
+GNU Emacs NEWS -- history of user-visible changes.  2006-05-31
+Copyright (C) 2000, 2001, 2002, 2003, 2006
+          Free Software Foundation, Inc.
+See the end for copying conditions.
+
+This file is about changes in emacs version 21.
+
+
+
+* Emacs 21.4 is a bug-fix release with no user-visible changes.
+
+
+
+* Installation changes in Emacs 21.3
+
+** Support for GNU/Linux on little-endian MIPS and on IBM S390 has
+been added.
+
+
+* Changes in Emacs 21.3
+
+** The obsolete C mode (c-mode.el) has been removed to avoid problems
+with Custom.
+
+** UTF-16 coding systems are available, encoding the same characters
+as mule-utf-8.
+
+** There is a new language environment for UTF-8 (set up automatically
+in UTF-8 locales).
+
+** Translation tables are available between equivalent characters in
+different Emacs charsets -- for instance `e with acute' coming from the
+Latin-1 and Latin-2 charsets.  User options `unify-8859-on-encoding-mode'
+and `unify-8859-on-decoding-mode' respectively turn on translation
+between ISO 8859 character sets (`unification') on encoding
+(e.g. writing a file) and decoding (e.g. reading a file).  Note that
+`unify-8859-on-encoding-mode' is useful and safe, but
+`unify-8859-on-decoding-mode' can cause text to change when you read
+it and write it out again without edits, so it is not generally advisable.
+By default `unify-8859-on-encoding-mode' is turned on.
+
+** In Emacs running on the X window system, the default value of
+`selection-coding-system' is now `compound-text-with-extensions'.
+
+If you want the old behavior, set selection-coding-system to
+compound-text, which may be significantly more efficient.  Using
+compound-text-with-extensions seems to be necessary only for decoding
+text from applications under XFree86 4.2, whose behavior is actually
+contrary to the compound text specification.
+
+
+
+* Installation changes in Emacs 21.2
+
+** Support for BSD/OS 5.0 has been added.
+
+** Support for AIX 5.1 was added.
+
+
+* Changes in Emacs 21.2
+
+** Emacs now supports compound-text extended segments in X selections.
+
+X applications can use `extended segments' to encode characters in
+compound text that belong to character sets which are not part of the
+list of approved standard encodings for X, e.g. Big5.  To paste
+selections with such characters into Emacs, use the new coding system
+compound-text-with-extensions as the value of selection-coding-system.
+
+** The default values of `tooltip-delay' and `tooltip-hide-delay'
+were changed.
+
+** On terminals whose erase-char is ^H (Backspace), Emacs
+now uses normal-erase-is-backspace-mode.
+
+** When the *scratch* buffer is recreated, its mode is set from
+initial-major-mode, which normally is lisp-interaction-mode,
+instead of using default-major-mode.
+
+** The new option `Info-scroll-prefer-subnodes' causes Info to behave
+like the stand-alone Info reader (from the GNU Texinfo package) as far
+as motion between nodes and their subnodes is concerned.  If it is t
+(the default), Emacs behaves as before when you type SPC in a menu: it
+visits the subnode pointed to by the first menu entry.  If this option
+is nil, SPC scrolls to the end of the current node, and only then goes
+to the first menu item, like the stand-alone reader does.
+
+This change was already in Emacs 21.1, but wasn't advertised in the
+NEWS.
+
+
+* Lisp Changes in Emacs 21.2
+
+** The meanings of scroll-up-aggressively and scroll-down-aggressively
+have been interchanged, so that the former now controls scrolling up,
+and the latter now controls scrolling down.
+
+** The variable `compilation-parse-errors-filename-function' can
+be used to transform filenames found in compilation output.
+
+
+
+* Installation Changes in Emacs 21.1
+
+See the INSTALL file for information on installing extra libraries and
+fonts to take advantage of the new graphical features and extra
+charsets in this release.
+
+** Support for GNU/Linux on IA64 machines has been added.
+
+** Support for LynxOS has been added.
+
+** There are new configure options associated with the support for
+images and toolkit scrollbars.  Use the --help option in `configure'
+to list them.
+
+** You can build a 64-bit Emacs for SPARC/Solaris systems which
+support 64-bit executables and also on Irix 6.5.  This increases the
+maximum buffer size.  See etc/MACHINES for instructions.  Changes to
+build on other 64-bit systems should be straightforward modulo any
+necessary changes to unexec.
+
+** There is a new configure option `--disable-largefile' to omit
+Unix-98-style support for large files if that is available.
+
+** There is a new configure option `--without-xim' that instructs
+Emacs to not use X Input Methods (XIM), if these are available.
+
+** `movemail' defaults to supporting POP.  You can turn this off using
+the --without-pop configure option, should that be necessary.
+
+** This version can be built for the Macintosh, but does not implement
+all of the new display features described below.  The port currently
+lacks unexec, asynchronous processes, and networking support.  See the
+"Emacs and the Mac OS" appendix in the Emacs manual, for the
+description of aspects specific to the Mac.
+
+** Note that the MS-Windows port does not yet implement various of the
+new display features described below.
+
+
+* Changes in Emacs 21.1
+
+** Emacs has a new redisplay engine.
+
+The new redisplay handles characters of variable width and height.
+Italic text can be used without redisplay problems.  Fonts containing
+oversized characters, i.e. characters larger than the logical height
+of a font can be used.  Images of various formats can be displayed in
+the text.
+
+** Emacs has a new face implementation.
+
+The new faces no longer fundamentally use X font names to specify the
+font.  Instead, each face has several independent attributes--family,
+height, width, weight and slant--that it may or may not specify.
+These attributes can be merged from various faces, and then together
+specify a font.
+
+Faces are supported on terminals that can display color or fonts.
+These terminal capabilities are auto-detected.  Details can be found
+under Lisp changes, below.
+
+** Emacs can display faces on TTY frames.
+
+Emacs automatically detects terminals that are able to display colors.
+Faces with a weight greater than normal are displayed extra-bright, if
+the terminal supports it.  Faces with a weight less than normal and
+italic faces are displayed dimmed, if the terminal supports it.
+Underlined faces are displayed underlined if possible.  Other face
+attributes such as `overline', `strike-through', and `box' are ignored
+on terminals.
+
+The command-line options `-fg COLOR', `-bg COLOR', and `-rv' are now
+supported on character terminals.
+
+Emacs automatically remaps all X-style color specifications to one of
+the colors supported by the terminal.  This means you could have the
+same color customizations that work both on a windowed display and on
+a TTY or when Emacs is invoked with the -nw option.
+
+** New default font is Courier 12pt under X.
+
+** Sound support
+
+Emacs supports playing sound files on GNU/Linux and FreeBSD (Voxware
+driver and native BSD driver, a.k.a. Luigi's driver).  Currently
+supported file formats are RIFF-WAVE (*.wav) and Sun Audio (*.au).
+You must configure Emacs with the option `--with-sound=yes' to enable
+sound support.
+
+** Emacs now resizes mini-windows if appropriate.
+
+If a message is longer than one line, or minibuffer contents are
+longer than one line, Emacs can resize the minibuffer window unless it
+is on a frame of its own.  You can control resizing and the maximum
+minibuffer window size by setting the following variables:
+
+- User option: max-mini-window-height
+
+Maximum height for resizing mini-windows.  If a float, it specifies a
+fraction of the mini-window frame's height.  If an integer, it
+specifies a number of lines.
+
+Default is 0.25.
+
+- User option: resize-mini-windows
+
+How to resize mini-windows.  If nil, don't resize.  If t, always
+resize to fit the size of the text.  If `grow-only', let mini-windows
+grow only, until they become empty, at which point they are shrunk
+again.
+
+Default is `grow-only'.
+
+** LessTif support.
+
+Emacs now runs with the LessTif toolkit (see
+<http://www.lesstif.org>).  You will need version 0.92.26, or later.
+
+** LessTif/Motif file selection dialog.
+
+When Emacs is configured to use LessTif or Motif, reading a file name
+from a menu will pop up a file selection dialog if `use-dialog-box' is
+non-nil.
+
+** File selection dialog on MS-Windows is supported.
+
+When a file is visited by clicking File->Open, the MS-Windows version
+now pops up a standard file selection dialog where you can select a
+file to visit.  File->Save As also pops up that dialog.
+
+** Toolkit scroll bars.
+
+Emacs now uses toolkit scroll bars if available.  When configured for
+LessTif/Motif, it will use that toolkit's scroll bar.  Otherwise, when
+configured for Lucid and Athena widgets, it will use the Xaw3d scroll
+bar if Xaw3d is available.  You can turn off the use of toolkit scroll
+bars by specifying `--with-toolkit-scroll-bars=no' when configuring
+Emacs.
+
+When you encounter problems with the Xaw3d scroll bar, watch out how
+Xaw3d is compiled on your system.  If the Makefile generated from
+Xaw3d's Imakefile contains a `-DNARROWPROTO' compiler option, and your
+Emacs system configuration file `s/your-system.h' does not contain a
+define for NARROWPROTO, you might consider adding it.  Take
+`s/freebsd.h' as an example.
+
+Alternatively, if you don't have access to the Xaw3d source code, take
+a look at your system's imake configuration file, for example in the
+directory `/usr/X11R6/lib/X11/config' (paths are different on
+different systems).  You will find files `*.cf' there.  If your
+system's cf-file contains a line like `#define NeedWidePrototypes NO',
+add a `#define NARROWPROTO' to your Emacs system configuration file.
+
+The reason for this is that one Xaw3d function uses `double' or
+`float' function parameters depending on the setting of NARROWPROTO.
+This is not a problem when Imakefiles are used because each system's
+imake configuration file contains the necessary information.  Since
+Emacs doesn't use imake, this has do be done manually.
+
+** Tool bar support.
+
+Emacs supports a tool bar at the top of a frame under X.  For details
+of how to define a tool bar, see the page describing Lisp-level
+changes.  Tool-bar global minor mode controls whether or not it is
+displayed and is on by default.  The appearance of the bar is improved
+if Emacs has been built with XPM image support.  Otherwise monochrome
+icons will be used.
+
+To make the tool bar more useful, we need contributions of extra icons
+for specific modes (with copyright assignments).
+
+** Tooltips.
+
+Tooltips are small X windows displaying a help string at the current
+mouse position.  The Lisp package `tooltip' implements them.  You can
+turn them off via the user option `tooltip-mode'.
+
+Tooltips also provides support for GUD debugging.  If activated,
+variable values can be displayed in tooltips by pointing at them with
+the mouse in source buffers.  You can customize various aspects of the
+tooltip display in the group `tooltip'.
+
+** Automatic Hscrolling
+
+Horizontal scrolling now happens automatically if
+`automatic-hscrolling' is set (the default).  This setting can be
+customized.
+
+If a window is scrolled horizontally with set-window-hscroll, or
+scroll-left/scroll-right (C-x <, C-x >), this serves as a lower bound
+for automatic horizontal scrolling.  Automatic scrolling will scroll
+the text more to the left if necessary, but won't scroll the text more
+to the right than the column set with set-window-hscroll etc.
+
+** When using a windowing terminal, each Emacs window now has a cursor
+of its own.  By default, when a window is selected, the cursor is
+solid; otherwise, it is hollow.  The user-option
+`cursor-in-non-selected-windows' controls how to display the
+cursor in non-selected windows.  If nil, no cursor is shown, if
+non-nil a hollow box cursor is shown.
+
+** Fringes to the left and right of windows are used to display
+truncation marks, continuation marks, overlay arrows and alike.  The
+foreground, background, and stipple of these areas can be changed by
+customizing face `fringe'.
+
+** The mode line under X is now drawn with shadows by default.
+You can change its appearance by modifying the face `mode-line'.
+In particular, setting the `:box' attribute to nil turns off the 3D
+appearance of the mode line.  (The 3D appearance makes the mode line
+occupy more space, and thus might cause the first or the last line of
+the window to be partially obscured.)
+
+The variable `mode-line-inverse-video', which was used in older
+versions of emacs to make the mode-line stand out, is now deprecated.
+However, setting it to nil will cause the `mode-line' face to be
+ignored, and mode-lines to be drawn using the default text face.
+
+** Mouse-sensitive mode line.
+
+Different parts of the mode line have been made mouse-sensitive on all
+systems which support the mouse.  Moving the mouse to a
+mouse-sensitive part in the mode line changes the appearance of the
+mouse pointer to an arrow, and help about available mouse actions is
+displayed either in the echo area, or in the tooltip window if you
+have enabled one.
+
+Currently, the following actions have been defined:
+
+- Mouse-1 on the buffer name in the mode line goes to the next buffer.
+
+- Mouse-3 on the buffer-name goes to the previous buffer.
+
+- Mouse-2 on the read-only or modified status in the mode line (`%' or
+`*') toggles the status.
+
+- Mouse-3 on the major mode name displays a major mode menu.
+
+- Mouse-3 on the mode name displays a minor-mode menu.
+
+** Hourglass pointer
+
+Emacs can optionally display an hourglass pointer under X.  You can
+turn the display on or off by customizing group `cursor'.
+
+** Blinking cursor
+
+M-x blink-cursor-mode toggles a blinking cursor under X and on
+terminals having terminal capabilities `vi', `vs', and `ve'.  Blinking
+and related parameters like frequency and delay can be customized in
+the group `cursor'.
+
+** New font-lock support mode `jit-lock-mode'.
+
+This support mode is roughly equivalent to `lazy-lock' but is
+generally faster.  It supports stealth and deferred fontification.
+See the documentation of the function `jit-lock-mode' for more
+details.
+
+Font-lock uses jit-lock-mode as default support mode, so you don't
+have to do anything to activate it.
+
+** The default binding of the Delete key has changed.
+
+The new user-option `normal-erase-is-backspace' can be set to
+determine the effect of the Delete and Backspace function keys.
+
+On window systems, the default value of this option is chosen
+according to the keyboard used.  If the keyboard has both a Backspace
+key and a Delete key, and both are mapped to their usual meanings, the
+option's default value is set to t, so that Backspace can be used to
+delete backward, and Delete can be used to delete forward.  On
+keyboards which either have only one key (usually labeled DEL), or two
+keys DEL and BS which produce the same effect, the option's value is
+set to nil, and these keys delete backward.
+
+If not running under a window system, setting this option accomplishes
+a similar effect by mapping C-h, which is usually generated by the
+Backspace key, to DEL, and by mapping DEL to C-d via
+`keyboard-translate'.  The former functionality of C-h is available on
+the F1 key.  You should probably not use this setting on a text-only
+terminal if you don't have both Backspace, Delete and F1 keys.
+
+Programmatically, you can call function normal-erase-is-backspace-mode
+to toggle the behavior of the Delete and Backspace keys.
+
+** The default for user-option `next-line-add-newlines' has been
+changed to nil, i.e. C-n will no longer add newlines at the end of a
+buffer by default.
+
+** The <home> and <end> keys now move to the beginning or end of the
+current line, respectively.  C-<home> and C-<end> move to the
+beginning and end of the buffer.
+
+** Emacs now checks for recursive loads of Lisp files.  If the
+recursion depth exceeds `recursive-load-depth-limit', an error is
+signaled.
+
+** When an error is signaled during the loading of the user's init
+file, Emacs now pops up the *Messages* buffer.
+
+** Emacs now refuses to load compiled Lisp files which weren't
+compiled with Emacs.  Set `load-dangerous-libraries' to t to change
+this behavior.
+
+The reason for this change is an incompatible change in XEmacs's byte
+compiler.  Files compiled with XEmacs can contain byte codes that let
+Emacs dump core.
+
+** Toggle buttons and radio buttons in menus.
+
+When compiled with LessTif (or Motif) support, Emacs uses toolkit
+widgets for radio and toggle buttons in menus.  When configured for
+Lucid, Emacs draws radio buttons and toggle buttons similar to Motif.
+
+** The menu bar configuration has changed.  The new configuration is
+more CUA-compliant.  The most significant change is that Options is
+now a separate menu-bar item, with Mule and Customize as its submenus.
+
+** Item Save Options on the Options menu allows saving options set
+using that menu.
+
+** Highlighting of trailing whitespace.
+
+When `show-trailing-whitespace' is non-nil, Emacs displays trailing
+whitespace in the face `trailing-whitespace'.  Trailing whitespace is
+defined as spaces or tabs at the end of a line.  To avoid busy
+highlighting when entering new text, trailing whitespace is not
+displayed if point is at the end of the line containing the
+whitespace.
+
+** C-x 5 1 runs the new command delete-other-frames which deletes
+all frames except the selected one.
+
+** The new user-option `confirm-kill-emacs' can be customized to
+let Emacs ask for confirmation before exiting.
+
+** The header line in an Info buffer is now displayed as an emacs
+header-line (which is like a mode-line, but at the top of the window),
+so that it remains visible even when the buffer has been scrolled.
+This behavior may be disabled by customizing the option
+`Info-use-header-line'.
+
+** Polish, Czech, German, and French translations of Emacs' reference card
+have been added.  They are named `pl-refcard.tex', `cs-refcard.tex',
+`de-refcard.tex' and `fr-refcard.tex'.  Postscript files are included.
+
+** An `Emacs Survival Guide', etc/survival.tex, is available.
+
+** A reference card for Dired has been added.  Its name is
+`dired-ref.tex'.  A French translation is available in
+`fr-drdref.tex'.
+
+** C-down-mouse-3 is bound differently.  Now if the menu bar is not
+displayed it pops up a menu containing the items which would be on the
+menu bar.  If the menu bar is displayed, it pops up the major mode
+menu or the Edit menu if there is no major mode menu.
+
+** Variable `load-path' is no longer customizable through Customize.
+
+You can no longer use `M-x customize-variable' to customize `load-path'
+because it now contains a version-dependent component.  You can still
+use `add-to-list' and `setq' to customize this variable in your
+`~/.emacs' init file or to modify it from any Lisp program in general.
+
+** C-u C-x = provides detailed information about the character at
+point in a pop-up window.
+
+** Emacs can now support 'wheeled' mice (such as the MS IntelliMouse)
+under XFree86.  To enable this, use the `mouse-wheel-mode' command, or
+customize the variable `mouse-wheel-mode'.
+
+The variables `mouse-wheel-follow-mouse' and `mouse-wheel-scroll-amount'
+determine where and by how much buffers are scrolled.
+
+** Emacs' auto-save list files are now by default stored in a
+sub-directory `.emacs.d/auto-save-list/' of the user's home directory.
+(On MS-DOS, this subdirectory's name is `_emacs.d/auto-save.list/'.)
+You can customize `auto-save-list-file-prefix' to change this location.
+
+** The function `getenv' is now callable interactively.
+
+** The new user-option `even-window-heights' can be set to nil
+to prevent `display-buffer' from evening out window heights.
+
+** The new command M-x delete-trailing-whitespace RET will delete the
+trailing whitespace within the current restriction.  You can also add
+this function to `write-file-hooks' or `local-write-file-hooks'.
+
+** When visiting a file with M-x find-file-literally, no newlines will
+be added to the end of the buffer even if `require-final-newline' is
+non-nil.
+
+** The new user-option `find-file-suppress-same-file-warnings' can be
+set to suppress warnings ``X and Y are the same file'' when visiting a
+file that is already visited under a different name.
+
+** The new user-option `electric-help-shrink-window' can be set to
+nil to prevent adjusting the help window size to the buffer size.
+
+** New command M-x describe-character-set reads a character set name
+and displays information about that.
+
+** The new variable `auto-mode-interpreter-regexp' contains a regular
+expression matching interpreters, for file mode determination.
+
+This regular expression is matched against the first line of a file to
+determine the file's mode in `set-auto-mode' when Emacs can't deduce a
+mode from the file's name.  If it matches, the file is assumed to be
+interpreted by the interpreter matched by the second group of the
+regular expression.  The mode is then determined as the mode
+associated with that interpreter in `interpreter-mode-alist'.
+
+** New function executable-make-buffer-file-executable-if-script-p is
+suitable as an after-save-hook as an alternative to `executable-chmod'.
+
+** The most preferred coding-system is now used to save a buffer if
+buffer-file-coding-system is `undecided' and it is safe for the buffer
+contents.  (The most preferred is set by set-language-environment or
+by M-x prefer-coding-system.)  Thus if you visit an ASCII file and
+insert a non-ASCII character from your current language environment,
+the file will be saved silently with the appropriate coding.
+Previously you would be prompted for a safe coding system.
+
+** The many obsolete language `setup-...-environment' commands have
+been removed -- use `set-language-environment'.
+
+** The new Custom option `keyboard-coding-system' specifies a coding
+system for keyboard input.
+
+** New variable `inhibit-iso-escape-detection' determines if Emacs'
+coding system detection algorithm should pay attention to ISO2022's
+escape sequences.  If this variable is non-nil, the algorithm ignores
+such escape sequences.  The default value is nil, and it is
+recommended not to change it except for the special case that you
+always want to read any escape code verbatim.  If you just want to
+read a specific file without decoding escape codes, use C-x RET c
+(`universal-coding-system-argument').  For instance, C-x RET c latin-1
+RET C-x C-f filename RET.
+
+** Variable `default-korean-keyboard' is initialized properly from the
+environment variable `HANGUL_KEYBOARD_TYPE'.
+
+** New command M-x list-charset-chars reads a character set name and
+displays all characters in that character set.
+
+** M-x set-terminal-coding-system (C-x RET t) now allows CCL-based
+coding systems such as cpXXX and cyrillic-koi8.
+
+** Emacs now attempts to determine the initial language environment
+and preferred and locale coding systems systematically from the
+LC_ALL, LC_CTYPE, and LANG environment variables during startup.
+
+** New language environments `Polish', `Latin-8' and `Latin-9'.
+Latin-8 and Latin-9 correspond respectively to the ISO character sets
+8859-14 (Celtic) and 8859-15 (updated Latin-1, with the Euro sign).
+GNU Intlfonts doesn't support these yet but recent X releases have
+8859-15.  See etc/INSTALL for information on obtaining extra fonts.
+There are new Leim input methods for Latin-8 and Latin-9 prefix (only)
+and Polish `slash'.
+
+** New language environments `Dutch' and `Spanish'.
+These new environments mainly select appropriate translations
+of the tutorial.
+
+** In Ethiopic language environment, special key bindings for
+function keys are changed as follows.  This is to conform to "Emacs
+Lisp Coding Convention".
+
+    new  command                            old-binding
+    ---  -------                            -----------
+    f3   ethio-fidel-to-sera-buffer         f5
+    S-f3 ethio-fidel-to-sera-region         f5
+    C-f3 ethio-fidel-to-sera-mail-or-marker f5
+
+    f4   ethio-sera-to-fidel-buffer         unchanged
+    S-f4 ethio-sera-to-fidel-region         unchanged
+    C-f4 ethio-sera-to-fidel-mail-or-marker unchanged
+
+    S-f5 ethio-toggle-punctuation           f3
+    S-f6 ethio-modify-vowel                 f6
+    S-f7 ethio-replace-space                f7
+    S-f8 ethio-input-special-character      f8
+    S-f9 ethio-replace-space                unchanged
+    C-f9 ethio-toggle-space                 f2
+
+** There are new Leim input methods.
+New input methods "turkish-postfix", "turkish-alt-postfix",
+"greek-mizuochi", "TeX", and "greek-babel" are now part of the Leim
+package.
+
+** The rule of input method "slovak" is slightly changed.  Now the
+rules for translating "q" and "Q" to "`" (backquote) are deleted, thus
+typing them inserts "q" and "Q" respectively.  Rules for translating
+"=q", "+q", "=Q", and "+Q" to "`" are also deleted.  Now, to input
+"`", you must type "=q".
+
+** When your terminal can't display characters from some of the ISO
+8859 character sets but can display Latin-1, you can display
+more-or-less mnemonic sequences of ASCII/Latin-1 characters instead of
+empty boxes (under a window system) or question marks (not under a
+window system).  Customize the option `latin1-display' to turn this
+on.
+
+** M-; now calls comment-dwim which tries to do something clever based
+on the context.  M-x kill-comment is now an alias to comment-kill,
+defined in newcomment.el.  You can choose different styles of region
+commenting with the variable `comment-style'.
+
+** New user options `display-time-mail-face' and
+`display-time-use-mail-icon' control the appearance of mode-line mail
+indicator used by the display-time package.  On a suitable display the
+indicator can be an icon and is mouse-sensitive.
+
+** On window-systems, additional space can be put between text lines
+on the display using several methods
+
+- By setting frame parameter `line-spacing' to PIXELS.  PIXELS must be
+a positive integer, and specifies that PIXELS number of pixels should
+be put below text lines on the affected frame or frames.
+
+- By setting X resource `lineSpacing', class `LineSpacing'.  This is
+equivalent to specifying the frame parameter.
+
+- By specifying `--line-spacing=N' or `-lsp N' on the command line.
+
+- By setting buffer-local variable `line-spacing'.  The meaning is
+the same, but applies to the a particular buffer only.
+
+** The new command `clone-indirect-buffer' can be used to create
+an indirect buffer that is a twin copy of the current buffer.  The
+command `clone-indirect-buffer-other-window', bound to C-x 4 c,
+does the same but displays the indirect buffer in another window.
+
+** New user options `backup-directory-alist' and
+`make-backup-file-name-function' control the placement of backups,
+typically in a single directory or in an invisible sub-directory.
+
+** New commands iso-iso2sgml and iso-sgml2iso convert between Latin-1
+characters and the corresponding SGML (HTML) entities.
+
+** New X resources recognized
+
+*** The X resource `synchronous', class `Synchronous', specifies
+whether Emacs should run in synchronous mode.  Synchronous mode
+is useful for debugging X problems.
+
+Example:
+
+  emacs.synchronous: true
+
+*** The X resource `visualClass, class `VisualClass', specifies the
+visual Emacs should use.  The resource's value should be a string of
+the form `CLASS-DEPTH', where CLASS is the name of the visual class,
+and DEPTH is the requested color depth as a decimal number.  Valid
+visual class names are
+
+  TrueColor
+  PseudoColor
+  DirectColor
+  StaticColor
+  GrayScale
+  StaticGray
+
+Visual class names specified as X resource are case-insensitive, i.e.
+`pseudocolor', `Pseudocolor' and `PseudoColor' all have the same
+meaning.
+
+The program `xdpyinfo' can be used to list the visual classes
+supported on your display, and which depths they have.  If
+`visualClass' is not specified, Emacs uses the display's default
+visual.
+
+Example:
+
+  emacs.visualClass: TrueColor-8
+
+*** The X resource `privateColormap', class `PrivateColormap',
+specifies that Emacs should use a private colormap if it is using the
+default visual, and that visual is of class PseudoColor.  Recognized
+resource values are `true' or `on'.
+
+Example:
+
+  emacs.privateColormap: true
+
+** Faces and frame parameters.
+
+There are four new faces `scroll-bar', `border', `cursor' and `mouse'.
+Setting the frame parameters `scroll-bar-foreground' and
+`scroll-bar-background' sets foreground and background color of face
+`scroll-bar' and vice versa.  Setting frame parameter `border-color'
+sets the background color of face `border' and vice versa.  Likewise
+for frame parameters `cursor-color' and face `cursor', and frame
+parameter `mouse-color' and face `mouse'.
+
+Changing frame parameter `font' sets font-related attributes of the
+`default' face and vice versa.  Setting frame parameters
+`foreground-color' or `background-color' sets the colors of the
+`default' face and vice versa.
+
+** New face `menu'.
+
+The face `menu' can be used to change colors and font of Emacs' menus.
+
+** New frame parameter `screen-gamma' for gamma correction.
+
+The new frame parameter `screen-gamma' specifies gamma-correction for
+colors.  Its value may be nil, the default, in which case no gamma
+correction occurs, or a number > 0, usually a float, that specifies
+the screen gamma of a frame's display.
+
+PC monitors usually have a screen gamma of 2.2.  smaller values result
+in darker colors.  You might want to try a screen gamma of 1.5 for LCD
+color displays.  The viewing gamma Emacs uses is 0.4545. (1/2.2).
+
+The X resource name of this parameter is `screenGamma', class
+`ScreenGamma'.
+
+** Tabs and variable-width text.
+
+Tabs are now displayed with stretch properties; the width of a tab is
+defined as a multiple of the normal character width of a frame, and is
+independent of the fonts used in the text where the tab appears.
+Thus, tabs can be used to line up text in different fonts.
+
+** Enhancements of the Lucid menu bar
+
+*** The Lucid menu bar now supports the resource "margin".
+
+	emacs.pane.menubar.margin: 5
+
+The default margin is 4 which makes the menu bar appear like the
+LessTif/Motif one.
+
+*** Arrows that indicate sub-menus are now drawn with shadows, as in
+LessTif and Motif.
+
+** A block cursor can be drawn as wide as the glyph under it under X.
+
+As an example: if a block cursor is over a tab character, it will be
+drawn as wide as that tab on the display.  To do this, set
+`x-stretch-cursor' to a non-nil value.
+
+** Empty display lines at the end of a buffer may be marked with a
+bitmap (this is similar to the tilde displayed by vi and Less).
+
+This behavior is activated by setting the buffer-local variable
+`indicate-empty-lines' to a non-nil value.  The default value of this
+variable is found in `default-indicate-empty-lines'.
+
+** There is a new "aggressive" scrolling method.
+
+When scrolling up because point is above the window start, if the
+value of the buffer-local variable `scroll-up-aggressively' is a
+number, Emacs chooses a new window start so that point ends up that
+fraction of the window's height from the top of the window.
+
+When scrolling down because point is below the window end, if the
+value of the buffer-local variable `scroll-down-aggressively' is a
+number, Emacs chooses a new window start so that point ends up that
+fraction of the window's height from the bottom of the window.
+
+** You can now easily create new *Info* buffers using either
+M-x clone-buffer, C-u m <entry> RET or C-u g <entry> RET.
+M-x clone-buffer can also be used on *Help* and several other special
+buffers.
+
+** The command `Info-search' now uses a search history.
+
+** Listing buffers with M-x list-buffers (C-x C-b) now shows
+abbreviated file names.  Abbreviations can be customized by changing
+`directory-abbrev-alist'.
+
+** A new variable, backup-by-copying-when-privileged-mismatch, gives
+the highest file uid for which backup-by-copying-when-mismatch will be
+forced on.  The assumption is that uids less than or equal to this
+value are special uids (root, bin, daemon, etc.--not real system
+users) and that files owned by these users should not change ownership,
+even if your system policy allows users other than root to edit them.
+
+The default is 200; set the variable to nil to disable the feature.
+
+** The rectangle commands now avoid inserting undesirable spaces,
+notably at the end of lines.
+
+All these functions have been rewritten to avoid inserting unwanted
+spaces, and an optional prefix now allows them to behave the old way.
+
+** The function `replace-rectangle' is an alias for `string-rectangle'.
+
+** The new command M-x string-insert-rectangle is like `string-rectangle',
+but inserts text instead of replacing it.
+
+** The new command M-x query-replace-regexp-eval acts like
+query-replace-regexp, but takes a Lisp expression which is evaluated
+after each match to get the replacement text.
+
+** M-x query-replace recognizes a new command `e' (or `E') that lets
+you edit the replacement string.
+
+** The new command mail-abbrev-complete-alias, bound to `M-TAB'
+(if you load the library `mailabbrev'), lets you complete mail aliases
+in the text, analogous to lisp-complete-symbol.
+
+** The variable `echo-keystrokes' may now have a floating point value.
+
+** If your init file is compiled (.emacs.elc), `user-init-file' is set
+to the source name (.emacs.el), if that exists, after loading it.
+
+** The help string specified for a menu-item whose definition contains
+the property `:help HELP' is now displayed under X, on MS-Windows, and
+MS-DOS, either in the echo area or with tooltips.  Many standard menus
+displayed by Emacs now have help strings.
+
+--
+** New user option `read-mail-command' specifies a command to use to
+read mail from the menu etc.
+
+** The environment variable `EMACSLOCKDIR' is no longer used on MS-Windows.
+This environment variable was used when creating lock files.  Emacs on
+MS-Windows does not use this variable anymore.  This change was made
+before Emacs 21.1, but wasn't documented until now.
+
+** Highlighting of mouse-sensitive regions is now supported in the
+MS-DOS version of Emacs.
+
+** The new command `msdos-set-mouse-buttons' forces the MS-DOS version
+of Emacs to behave as if the mouse had a specified number of buttons.
+This comes handy with mice that don't report their number of buttons
+correctly.  One example is the wheeled mice, which report 3 buttons,
+but clicks on the middle button are not passed to the MS-DOS version
+of Emacs.
+
+** Customize changes
+
+*** Customize now supports comments about customized items.  Use the
+`State' menu to add comments, or give a prefix argument to
+M-x customize-set-variable or M-x customize-set-value.  Note that
+customization comments will cause the customizations to fail in
+earlier versions of Emacs.
+
+*** The new option `custom-buffer-done-function' says whether to kill
+Custom buffers when you've done with them or just bury them (the
+default).
+
+*** If Emacs was invoked with the `-q' or `--no-init-file' options, it
+does not allow you to save customizations in your `~/.emacs' init
+file.  This is because saving customizations from such a session would
+wipe out all the other customizationss you might have on your init
+file.
+
+** If Emacs was invoked with the `-q' or `--no-init-file' options, it
+does not save disabled and enabled commands for future sessions, to
+avoid overwriting existing customizations of this kind that are
+already in your init file.
+
+** New features in evaluation commands
+
+*** The commands to evaluate Lisp expressions, such as C-M-x in Lisp
+modes, C-j in Lisp Interaction mode, and M-:, now bind the variables
+print-level, print-length, and debug-on-error based on the new
+customizable variables eval-expression-print-level,
+eval-expression-print-length, and eval-expression-debug-on-error.
+
+The default values for the first two of these variables are 12 and 4
+respectively, which means that `eval-expression' now prints at most
+the first 12 members of a list and at most 4 nesting levels deep (if
+the list is longer or deeper than that, an ellipsis `...'  is
+printed).
+
+<RET> or <mouse-2> on the printed text toggles between an abbreviated
+printed representation and an unabbreviated one.
+
+The default value of eval-expression-debug-on-error is t, so any error
+during evaluation produces a backtrace.
+
+*** The function `eval-defun' (C-M-x) now loads Edebug and instruments
+code when called with a prefix argument.
+
+** CC mode changes.
+
+Note: This release contains changes that might not be compatible with
+current user setups (although it's believed that these
+incompatibilities will only show in very uncommon circumstances).
+However, since the impact is uncertain, these changes may be rolled
+back depending on user feedback.  Therefore there's no forward
+compatibility guarantee wrt the new features introduced in this
+release.
+
+*** The hardcoded switch to "java" style in Java mode is gone.
+CC Mode used to automatically set the style to "java" when Java mode
+is entered.  This has now been removed since it caused too much
+confusion.
+
+However, to keep backward compatibility to a certain extent, the
+default value for c-default-style now specifies the "java" style for
+java-mode, but "gnu" for all other modes (as before).  So you won't
+notice the change if you haven't touched that variable.
+
+*** New cleanups, space-before-funcall and compact-empty-funcall.
+Two new cleanups have been added to c-cleanup-list:
+
+space-before-funcall causes a space to be inserted before the opening
+parenthesis of a function call, which gives the style "foo (bar)".
+
+compact-empty-funcall causes any space before a function call opening
+parenthesis to be removed if there are no arguments to the function.
+It's typically useful together with space-before-funcall to get the
+style "foo (bar)" and "foo()".
+
+*** Some keywords now automatically trigger reindentation.
+Keywords like "else", "while", "catch" and "finally" have been made
+"electric" to make them reindent automatically when they continue an
+earlier statement.  An example:
+
+for (i = 0; i < 17; i++)
+  if (a[i])
+    res += a[i]->offset;
+else
+
+Here, the "else" should be indented like the preceding "if", since it
+continues that statement. CC Mode will automatically reindent it after
+the "else" has been typed in full, since it's not until then it's
+possible to decide whether it's a new statement or a continuation of
+the preceding "if".
+
+CC Mode uses Abbrev mode to achieve this, which is therefore turned on
+by default.
+
+*** M-a and M-e now moves by sentence in multiline strings.
+Previously these two keys only moved by sentence in comments, which
+meant that sentence movement didn't work in strings containing
+documentation or other natural language text.
+
+The reason it's only activated in multiline strings (i.e. strings that
+contain a newline, even when escaped by a '\') is to avoid stopping in
+the short strings that often reside inside statements.  Multiline
+strings almost always contain text in a natural language, as opposed
+to other strings that typically contain format specifications,
+commands, etc.  Also, it's not that bothersome that M-a and M-e misses
+sentences in single line strings, since they're short anyway.
+
+*** Support for autodoc comments in Pike mode.
+Autodoc comments for Pike are used to extract documentation from the
+source, like Javadoc in Java.  Pike mode now recognize this markup in
+comment prefixes and paragraph starts.
+
+*** The comment prefix regexps on c-comment-prefix may be mode specific.
+When c-comment-prefix is an association list, it specifies the comment
+line prefix on a per-mode basis, like c-default-style does.  This
+change came about to support the special autodoc comment prefix in
+Pike mode only.
+
+*** Better handling of syntactic errors.
+The recovery after unbalanced parens earlier in the buffer has been
+improved; CC Mode now reports them by dinging and giving a message
+stating the offending line, but still recovers and indent the
+following lines in a sane way (most of the time).  An "else" with no
+matching "if" is handled similarly.  If an error is discovered while
+indenting a region, the whole region is still indented and the error
+is reported afterwards.
+
+*** Lineup functions may now return absolute columns.
+A lineup function can give an absolute column to indent the line to by
+returning a vector with the desired column as the first element.
+
+*** More robust and warning-free byte compilation.
+Although this is strictly not a user visible change (well, depending
+on the view of a user), it's still worth mentioning that CC Mode now
+can be compiled in the standard ways without causing trouble.  Some
+code have also been moved between the subpackages to enhance the
+modularity somewhat.  Thanks to Martin Buchholz for doing the
+groundwork.
+
+*** c-style-variables-are-local-p now defaults to t.
+This is an incompatible change that has been made to make the behavior
+of the style system wrt global variable settings less confusing for
+non-advanced users.  If you know what this variable does you might
+want to set it to nil in your .emacs, otherwise you probably don't
+have to bother.
+
+Defaulting c-style-variables-are-local-p to t avoids the confusing
+situation that occurs when a user sets some style variables globally
+and edits both a Java and a non-Java file in the same Emacs session.
+If the style variables aren't buffer local in this case, loading of
+the second file will cause the default style (either "gnu" or "java"
+by default) to override the global settings made by the user.
+
+*** New initialization procedure for the style system.
+When the initial style for a buffer is determined by CC Mode (from the
+variable c-default-style), the global values of style variables now
+take precedence over the values specified by the chosen style.  This
+is different than the old behavior: previously, the style-specific
+settings would override the global settings.  This change makes it
+possible to do simple configuration in the intuitive way with
+Customize or with setq lines in one's .emacs file.
+
+By default, the global value of every style variable is the new
+special symbol set-from-style, which causes the value to be taken from
+the style system.  This means that in effect, only an explicit setting
+of a style variable will cause the "overriding" behavior described
+above.
+
+Also note that global settings override style-specific settings *only*
+when the initial style of a buffer is chosen by a CC Mode major mode
+function.  When a style is chosen in other ways --- for example, by a
+call like (c-set-style "gnu") in a hook, or via M-x c-set-style ---
+then the style-specific values take precedence over any global style
+values.  In Lisp terms, global values override style-specific values
+only when the new second argument to c-set-style is non-nil; see the
+function documentation for more info.
+
+The purpose of these changes is to make it easier for users,
+especially novice users, to do simple customizations with Customize or
+with setq in their .emacs files.  On the other hand, the new system is
+intended to be compatible with advanced users' customizations as well,
+such as those that choose styles in hooks or whatnot.  This new system
+is believed to be almost entirely compatible with current
+configurations, in spite of the changed precedence between style and
+global variable settings when a buffer's default style is set.
+
+(Thanks to Eric Eide for clarifying this explanation a bit.)
+
+**** c-offsets-alist is now a customizable variable.
+This became possible as a result of the new initialization behavior.
+
+This variable is treated slightly differently from the other style
+variables; instead of using the symbol set-from-style, it will be
+completed with the syntactic symbols it doesn't already contain when
+the style is first initialized.  This means it now defaults to the
+empty list to make all syntactic elements get their values from the
+style system.
+
+**** Compatibility variable to restore the old behavior.
+In case your configuration doesn't work with this change, you can set
+c-old-style-variable-behavior to non-nil to get the old behavior back
+as far as possible.
+
+*** Improvements to line breaking and text filling.
+CC Mode now handles this more intelligently and seamlessly wrt the
+surrounding code, especially inside comments.  For details see the new
+chapter about this in the manual.
+
+**** New variable to recognize comment line prefix decorations.
+The variable c-comment-prefix-regexp has been added to properly
+recognize the line prefix in both block and line comments.  It's
+primarily used to initialize the various paragraph recognition and
+adaptive filling variables that the text handling functions uses.
+
+**** New variable c-block-comment-prefix.
+This is a generalization of the now obsolete variable
+c-comment-continuation-stars to handle arbitrary strings.
+
+**** CC Mode now uses adaptive fill mode.
+This to make it adapt better to the paragraph style inside comments.
+
+It's also possible to use other adaptive filling packages inside CC
+Mode, notably Kyle E. Jones' Filladapt mode (http://wonderworks.com/).
+A new convenience function c-setup-filladapt sets up Filladapt for use
+inside CC Mode.
+
+Note though that the 2.12 version of Filladapt lacks a feature that
+causes it to work suboptimally when c-comment-prefix-regexp can match
+the empty string (which it commonly does).  A patch for that is
+available from the CC Mode web site (http://www.python.org/emacs/
+cc-mode/).
+
+**** The variables `c-hanging-comment-starter-p' and
+`c-hanging-comment-ender-p', which controlled how comment starters and
+enders were filled, are not used anymore.  The new version of the
+function `c-fill-paragraph' keeps the comment starters and enders as
+they were before the filling.
+
+**** It's now possible to selectively turn off auto filling.
+The variable c-ignore-auto-fill is used to ignore auto fill mode in
+specific contexts, e.g. in preprocessor directives and in string
+literals.
+
+**** New context sensitive line break function c-context-line-break.
+It works like newline-and-indent in normal code, and adapts the line
+prefix according to the comment style when used inside comments.  If
+you're normally using newline-and-indent, you might want to switch to
+this function.
+
+*** Fixes to IDL mode.
+It now does a better job in recognizing only the constructs relevant
+to IDL.  E.g. it no longer matches "class" as the beginning of a
+struct block, but it does match the CORBA 2.3 "valuetype" keyword.
+Thanks to Eric Eide.
+
+*** Improvements to the Whitesmith style.
+It now keeps the style consistently on all levels and both when
+opening braces hangs and when they don't.
+
+**** New lineup function c-lineup-whitesmith-in-block.
+
+*** New lineup functions c-lineup-template-args and c-indent-multi-line-block.
+See their docstrings for details.  c-lineup-template-args does a
+better job of tracking the brackets used as parens in C++ templates,
+and is used by default to line up continued template arguments.
+
+*** c-lineup-comment now preserves alignment with a comment on the
+previous line.  It used to instead preserve comments that started in
+the column specified by comment-column.
+
+*** c-lineup-C-comments handles "free form" text comments.
+In comments with a long delimiter line at the start, the indentation
+is kept unchanged for lines that start with an empty comment line
+prefix.  This is intended for the type of large block comments that
+contain documentation with its own formatting.  In these you normally
+don't want CC Mode to change the indentation.
+
+*** The `c' syntactic symbol is now relative to the comment start
+instead of the previous line, to make integers usable as lineup
+arguments.
+
+*** All lineup functions have gotten docstrings.
+
+*** More preprocessor directive movement functions.
+c-down-conditional does the reverse of c-up-conditional.
+c-up-conditional-with-else and c-down-conditional-with-else are
+variants of these that also stops at "#else" lines (suggested by Don
+Provan).
+
+*** Minor improvements to many movement functions in tricky situations.
+
+** Dired changes
+
+*** New variable `dired-recursive-deletes' determines if the delete
+command will delete non-empty directories recursively.  The default
+is, delete only empty directories.
+
+*** New variable `dired-recursive-copies' determines if the copy
+command will copy directories recursively.  The default is, do not
+copy directories recursively.
+
+*** In command `dired-do-shell-command' (usually bound to `!') a `?'
+in the shell command has a special meaning similar to `*', but with
+the difference that the command will be run on each file individually.
+
+*** The new command `dired-find-alternate-file' (usually bound to `a')
+replaces the Dired buffer with the buffer for an alternate file or
+directory.
+
+*** The new command `dired-show-file-type' (usually bound to `y') shows
+a message in the echo area describing what type of file the point is on.
+This command invokes the external program `file' do its work, and so
+will only work on systems with that program, and will be only as
+accurate or inaccurate as it is.
+
+*** Dired now properly handles undo changes of adding/removing `-R'
+from ls switches.
+
+*** Dired commands that prompt for a destination file now allow the use
+of the `M-n' command in the minibuffer to insert the source filename,
+which the user can then edit.  This only works if there is a single
+source file, not when operating on multiple marked files.
+
+** Gnus changes.
+
+The Gnus NEWS entries are short, but they reflect sweeping changes in
+four areas: Article display treatment, MIME treatment,
+internationalization and mail-fetching.
+
+*** The mail-fetching functions have changed.  See the manual for the
+many details.  In particular, all procmail fetching variables are gone.
+
+If you used procmail like in
+
+(setq nnmail-use-procmail t)
+(setq nnmail-spool-file 'procmail)
+(setq nnmail-procmail-directory "~/mail/incoming/")
+(setq nnmail-procmail-suffix "\\.in")
+
+this now has changed to
+
+(setq mail-sources
+      '((directory :path "~/mail/incoming/"
+		   :suffix ".in")))
+
+More information is available in the info doc at Select Methods ->
+Getting Mail -> Mail Sources
+
+*** Gnus is now a MIME-capable reader.  This affects many parts of
+Gnus, and adds a slew of new commands.  See the manual for details.
+Separate MIME packages like RMIME, mime-compose etc., will probably no
+longer work; remove them and use the native facilities.
+
+The FLIM/SEMI package still works with Emacs 21, but if you want to
+use the native facilities, you must remove any mailcap.el[c] that was
+installed by FLIM/SEMI version 1.13 or earlier.
+
+*** Gnus has also been multilingualized.  This also affects too many
+parts of Gnus to summarize here, and adds many new variables.  There
+are built-in facilities equivalent to those of gnus-mule.el, which is
+now just a compatibility layer.
+
+*** gnus-mule.el is now just a compatibility layer over the built-in
+Gnus facilities.
+
+*** gnus-auto-select-first can now be a function to be
+called to position point.
+
+*** The user can now decide which extra headers should be included in
+summary buffers and NOV files.
+
+*** `gnus-article-display-hook' has been removed.  Instead, a number
+of variables starting with `gnus-treat-' have been added.
+
+*** The Gnus posting styles have been redone again and now work in a
+subtly different manner.
+
+*** New web-based backends have been added: nnslashdot, nnwarchive
+and nnultimate.  nnweb has been revamped, again, to keep up with
+ever-changing layouts.
+
+*** Gnus can now read IMAP mail via nnimap.
+
+*** There is image support of various kinds and some sound support.
+
+** Changes in Texinfo mode.
+
+*** A couple of new key bindings have been added for inserting Texinfo
+macros
+
+  Key binding	Macro
+  -------------------------
+  C-c C-c C-s	@strong
+  C-c C-c C-e	@emph
+  C-c C-c u	@uref
+  C-c C-c q     @quotation
+  C-c C-c m	@email
+  C-c C-o       @<block> ... @end <block>
+  M-RET         @item
+
+*** The " key now inserts either " or `` or '' depending on context.
+
+** Changes in Outline mode.
+
+There is now support for Imenu to index headings.  A new command
+`outline-headers-as-kill' copies the visible headings in the region to
+the kill ring, e.g. to produce a table of contents.
+
+** Changes to Emacs Server
+
+*** The new option `server-kill-new-buffers' specifies what to do
+with buffers when done with them.  If non-nil, the default, buffers
+are killed, unless they were already present before visiting them with
+Emacs Server.  If nil, `server-temp-file-regexp' specifies which
+buffers to kill, as before.
+
+Please note that only buffers are killed that still have a client,
+i.e. buffers visited with `emacsclient --no-wait' are never killed in
+this way.
+
+** Both emacsclient and Emacs itself now accept command line options
+of the form +LINE:COLUMN in addition to +LINE.
+
+** Changes to Show Paren mode.
+
+*** Overlays used by Show Paren mode now use a priority property.
+The new user option show-paren-priority specifies the priority to
+use.  Default is 1000.
+
+** New command M-x check-parens can be used to find unbalanced paren
+groups and strings in buffers in Lisp mode (or other modes).
+
+** Changes to hideshow.el
+
+*** Generalized block selection and traversal
+
+A block is now recognized by its start and end regexps (both strings),
+and an integer specifying which sub-expression in the start regexp
+serves as the place where a `forward-sexp'-like function can operate.
+See the documentation of variable `hs-special-modes-alist'.
+
+*** During incremental search, if Hideshow minor mode is active,
+hidden blocks are temporarily shown.  The variable `hs-headline' can
+be used in the mode line format to show the line at the beginning of
+the open block.
+
+*** User option `hs-hide-all-non-comment-function' specifies a
+function to be called at each top-level block beginning, instead of
+the normal block-hiding function.
+
+*** The command `hs-show-region' has been removed.
+
+*** The key bindings have changed to fit the Emacs conventions,
+roughly imitating those of Outline minor mode.  Notably, the prefix
+for all bindings is now `C-c @'.  For details, see the documentation
+for `hs-minor-mode'.
+
+*** The variable `hs-show-hidden-short-form' has been removed, and
+hideshow.el now always behaves as if this variable were set to t.
+
+** Changes to Change Log mode and Add-Log functions
+
+*** If you invoke `add-change-log-entry' from a backup file, it makes
+an entry appropriate for the file's parent.  This is useful for making
+log entries by comparing a version with deleted functions.
+
+**** New command M-x change-log-merge merges another log into the
+current buffer.
+
+*** New command M-x change-log-redate fixes any old-style date entries
+in a log file.
+
+*** Change Log mode now adds a file's version number to change log
+entries if user-option `change-log-version-info-enabled' is non-nil.
+Unless the file is under version control the search for a file's
+version number is performed based on regular expressions from
+`change-log-version-number-regexp-list' which can be customized.
+Version numbers are only found in the first 10 percent of a file.
+
+*** Change Log mode now defines its own faces for font-lock highlighting.
+
+** Changes to cmuscheme
+
+*** The user-option `scheme-program-name' has been renamed
+`cmuscheme-program-name' due to conflicts with xscheme.el.
+
+** Changes in Font Lock
+
+*** The new function `font-lock-remove-keywords' can be used to remove
+font-lock keywords from the current buffer or from a specific major mode.
+
+*** Multi-line patterns are now supported.  Modes using this, should
+set font-lock-multiline to t in their font-lock-defaults.
+
+*** `font-lock-syntactic-face-function' allows major-modes to choose
+the face used for each string/comment.
+
+*** A new standard face `font-lock-doc-face'.
+Meant for Lisp docstrings, Javadoc comments and other "documentation in code".
+
+** Changes to Shell mode
+
+*** The `shell' command now accepts an optional argument to specify the buffer
+to use, which defaults to "*shell*".  When used interactively, a
+non-default buffer may be specified by giving the `shell' command a
+prefix argument (causing it to prompt for the buffer name).
+
+** Comint (subshell) changes
+
+These changes generally affect all modes derived from comint mode, which
+include shell-mode, gdb-mode, scheme-interaction-mode, etc.
+
+*** Comint now by default interprets some carriage-control characters.
+Comint now removes CRs from CR LF sequences, and treats single CRs and
+BSs in the output in a way similar to a terminal (by deleting to the
+beginning of the line, or deleting the previous character,
+respectively).  This is achieved by adding `comint-carriage-motion' to
+the `comint-output-filter-functions' hook by default.
+
+*** By default, comint no longer uses the variable `comint-prompt-regexp'
+to distinguish prompts from user-input.  Instead, it notices which
+parts of the text were output by the process, and which entered by the
+user, and attaches `field' properties to allow emacs commands to use
+this information.  Common movement commands, notably beginning-of-line,
+respect field boundaries in a fairly natural manner.  To disable this
+feature, and use the old behavior, customize the user option
+`comint-use-prompt-regexp-instead-of-fields'.
+
+*** Comint now includes new features to send commands to running processes
+and redirect the output to a designated buffer or buffers.
+
+*** The command M-x comint-redirect-send-command reads a command and
+buffer name from the mini-buffer.  The command is sent to the current
+buffer's process, and its output is inserted into the specified buffer.
+
+The command M-x comint-redirect-send-command-to-process acts like
+M-x comint-redirect-send-command but additionally reads the name of
+the buffer whose process should be used from the mini-buffer.
+
+*** Packages based on comint now highlight user input and program prompts,
+and support choosing previous input with mouse-2.  To control these features,
+see the user-options `comint-highlight-input' and `comint-highlight-prompt'.
+
+*** The new command `comint-write-output' (usually bound to `C-c C-s')
+saves the output from the most recent command to a file.  With a prefix
+argument, it appends to the file.
+
+*** The command `comint-kill-output' has been renamed `comint-delete-output'
+(usually bound to `C-c C-o'); the old name is aliased to it for
+compatibility.
+
+*** The new function `comint-add-to-input-history' adds commands to the input
+ring (history).
+
+*** The new variable `comint-input-history-ignore' is a regexp for
+identifying history lines that should be ignored, like tcsh time-stamp
+strings, starting with a `#'.  The default value of this variable is "^#".
+
+** Changes to Rmail mode
+
+*** The new user-option rmail-user-mail-address-regexp can be
+set to fine tune the identification of the correspondent when
+receiving new mail.  If it matches the address of the sender, the
+recipient is taken as correspondent of a mail.  If nil, the default,
+`user-login-name' and `user-mail-address' are used to exclude yourself
+as correspondent.
+
+Usually you don't have to set this variable, except if you collect
+mails sent by you under different user names.  Then it should be a
+regexp matching your mail addresses.
+
+*** The new user-option rmail-confirm-expunge controls whether and how
+to ask for confirmation before expunging deleted messages from an
+Rmail file.  You can choose between no confirmation, confirmation
+with y-or-n-p, or confirmation with yes-or-no-p.  Default is to ask
+for confirmation with yes-or-no-p.
+
+*** RET is now bound in the Rmail summary to rmail-summary-goto-msg,
+like `j'.
+
+*** There is a new user option `rmail-digest-end-regexps' that
+specifies the regular expressions to detect the line that ends a
+digest message.
+
+*** The new user option `rmail-automatic-folder-directives' specifies
+in which folder to put messages automatically.
+
+*** The new function `rmail-redecode-body' allows to fix a message
+with non-ASCII characters if Emacs happens to decode it incorrectly
+due to missing or malformed "charset=" header.
+
+** The new user-option `mail-envelope-from' can be used to specify
+an envelope-from address different from user-mail-address.
+
+** The variable mail-specify-envelope-from controls whether to
+use the -f option when sending mail.
+
+** The Rmail command `o' (`rmail-output-to-rmail-file') now writes the
+current message in the internal `emacs-mule' encoding, rather than in
+the encoding taken from the variable `buffer-file-coding-system'.
+This allows to save messages whose characters cannot be safely encoded
+by the buffer's coding system, and makes sure the message will be
+displayed correctly when you later visit the target Rmail file.
+
+If you want your Rmail files be encoded in a specific coding system
+other than `emacs-mule', you can customize the variable
+`rmail-file-coding-system' to set its value to that coding system.
+
+** Changes to TeX mode
+
+*** The default mode has been changed from `plain-tex-mode' to
+`latex-mode'.
+
+*** latex-mode now has a simple indentation algorithm.
+
+*** M-f and M-p jump around \begin...\end pairs.
+
+*** Added support for outline-minor-mode.
+
+** Changes to RefTeX mode
+
+*** RefTeX has new support for index generation.  Index entries can be
+    created with `C-c <', with completion available on index keys.
+    Pressing `C-c /' indexes the word at the cursor with a default
+    macro.  `C-c >' compiles all index entries into an alphabetically
+    sorted *Index* buffer which looks like the final index.  Entries
+    can be edited from that buffer.
+
+*** Label and citation key selection now allow to select several
+    items and reference them together (use `m' to mark items, `a' or
+    `A' to use all marked entries).
+
+*** reftex.el has been split into a number of smaller files to reduce
+    memory use when only a part of RefTeX is being used.
+
+*** a new command `reftex-view-crossref-from-bibtex' (bound to `C-c &'
+    in BibTeX-mode) can be called in a BibTeX database buffer in order
+    to show locations in LaTeX documents where a particular entry has
+    been cited.
+
+** Emacs Lisp mode now allows multiple levels of outline headings.
+The level of a heading is determined from the number of leading
+semicolons in a heading line.  Toplevel forms starting with a `('
+in column 1 are always made leaves.
+
+** The M-x time-stamp command (most commonly used on write-file-hooks)
+has the following new features:
+
+*** The patterns for finding the time stamp and for updating a pattern
+may match text spanning multiple lines.  For example, some people like
+to have the filename and date on separate lines.  The new variable
+time-stamp-inserts-lines controls the matching for multi-line patterns.
+
+*** More than one time stamp can be updated in the same file.  This
+feature is useful if you need separate time stamps in a program source
+file to both include in formatted documentation and insert in the
+compiled binary.  The same time-stamp will be written at each matching
+pattern.  The variable time-stamp-count enables this new feature; it
+defaults to 1.
+
+** Partial Completion mode now completes environment variables in
+file names.
+
+** Ispell changes
+
+*** The command `ispell' now spell-checks a region if
+transient-mark-mode is on, and the mark is active.  Otherwise it
+spell-checks the current buffer.
+
+*** Support for synchronous subprocesses - DOS/Windoze - has been
+added.
+
+*** An "alignment error" bug was fixed when a manual spelling
+correction is made and re-checked.
+
+*** Italian, Portuguese, and Slovak dictionary definitions have been added.
+
+*** Region skipping performance has been vastly improved in some
+cases.
+
+*** Spell checking HTML buffers has been improved and isn't so strict
+on syntax errors.
+
+*** The buffer-local words are now always placed on a new line at the
+end of the buffer.
+
+*** Spell checking now works in the MS-DOS version of Emacs.
+
+*** The variable `ispell-format-word' has been renamed to
+`ispell-format-word-function'.  The old name is still available as
+alias.
+
+** Makefile mode changes
+
+*** The mode now uses the abbrev table `makefile-mode-abbrev-table'.
+
+*** Conditionals and include statements are now highlighted when
+Fontlock mode is active.
+
+** Isearch changes
+
+*** Isearch now puts a call to `isearch-resume' in the command history,
+so that searches can be resumed.
+
+*** In Isearch mode, C-M-s and C-M-r are now bound like C-s and C-r,
+respectively, i.e. you can repeat a regexp isearch with the same keys
+that started the search.
+
+*** In Isearch mode, mouse-2 in the echo area now yanks the current
+selection into the search string rather than giving an error.
+
+*** There is a new lazy highlighting feature in incremental search.
+
+Lazy highlighting is switched on/off by customizing variable
+`isearch-lazy-highlight'.  When active, all matches for the current
+search string are highlighted.  The current match is highlighted as
+before using face `isearch' or `region'.  All other matches are
+highlighted using face `isearch-lazy-highlight-face' which defaults to
+`secondary-selection'.
+
+The extra highlighting makes it easier to anticipate where the cursor
+will end up each time you press C-s or C-r to repeat a pending search.
+Highlighting of these additional matches happens in a deferred fashion
+using "idle timers," so the cycles needed do not rob isearch of its
+usual snappy response.
+
+If `isearch-lazy-highlight-cleanup' is set to t, highlights for
+matches are automatically cleared when you end the search.  If it is
+set to nil, you can remove the highlights manually with `M-x
+isearch-lazy-highlight-cleanup'.
+
+** VC Changes
+
+VC has been overhauled internally.  It is now modular, making it
+easier to plug-in arbitrary version control backends.  (See Lisp
+Changes for details on the new structure.)  As a result, the mechanism
+to enable and disable support for particular version systems has
+changed: everything is now controlled by the new variable
+`vc-handled-backends'.  Its value is a list of symbols that identify
+version systems; the default is '(RCS CVS SCCS).  When finding a file,
+each of the backends in that list is tried in order to see whether the
+file is registered in that backend.
+
+When registering a new file, VC first tries each of the listed
+backends to see if any of them considers itself "responsible" for the
+directory of the file (e.g. because a corresponding subdirectory for
+master files exists).  If none of the backends is responsible, then
+the first backend in the list that could register the file is chosen.
+As a consequence, the variable `vc-default-back-end' is now obsolete.
+
+The old variable `vc-master-templates' is also obsolete, although VC
+still supports it for backward compatibility.  To define templates for
+RCS or SCCS, you should rather use the new variables
+vc-{rcs,sccs}-master-templates.  (There is no such feature under CVS
+where it doesn't make sense.)
+
+The variables `vc-ignore-vc-files' and `vc-handle-cvs' are also
+obsolete now, you must set `vc-handled-backends' to nil or exclude
+`CVS' from the list, respectively, to achieve their effect now.
+
+*** General Changes
+
+The variable `vc-checkout-carefully' is obsolete: the corresponding
+checks are always done now.
+
+VC Dired buffers are now kept up-to-date during all version control
+operations.
+
+`vc-diff' output is now displayed in `diff-mode'.
+`vc-print-log' uses `log-view-mode'.
+`vc-log-mode' (used for *VC-Log*) has been replaced by `log-edit-mode'.
+
+The command C-x v m (vc-merge) now accepts an empty argument as the
+first revision number.  This means that any recent changes on the
+current branch should be picked up from the repository and merged into
+the working file (``merge news'').
+
+The commands C-x v s (vc-create-snapshot) and C-x v r
+(vc-retrieve-snapshot) now ask for a directory name from which to work
+downwards.
+
+*** Multiple Backends
+
+VC now lets you register files in more than one backend.  This is
+useful, for example, if you are working with a slow remote CVS
+repository.  You can then use RCS for local editing, and occasionally
+commit your changes back to CVS, or pick up changes from CVS into your
+local RCS archives.
+
+To make this work, the ``more local'' backend (RCS in our example)
+should come first in `vc-handled-backends', and the ``more remote''
+backend (CVS) should come later.  (The default value of
+`vc-handled-backends' already has it that way.)
+
+You can then commit changes to another backend (say, RCS), by typing
+C-u C-x v v RCS RET (i.e. vc-next-action now accepts a backend name as
+a revision number).  VC registers the file in the more local backend
+if that hasn't already happened, and commits to a branch based on the
+current revision number from the more remote backend.
+
+If a file is registered in multiple backends, you can switch to
+another one using C-x v b (vc-switch-backend).  This does not change
+any files, it only changes VC's perspective on the file.  Use this to
+pick up changes from CVS while working under RCS locally.
+
+After you are done with your local RCS editing, you can commit your
+changes back to CVS using C-u C-x v v CVS RET.  In this case, the
+local RCS archive is removed after the commit, and the log entry
+buffer is initialized to contain the entire RCS change log of the file.
+
+*** Changes for CVS
+
+There is a new user option, `vc-cvs-stay-local'.  If it is `t' (the
+default), then VC avoids network queries for files registered in
+remote repositories.  The state of such files is then only determined
+by heuristics and past information.  `vc-cvs-stay-local' can also be a
+regexp to match against repository hostnames; only files from hosts
+that match it are treated locally.  If the variable is nil, then VC
+queries the repository just as often as it does for local files.
+
+If `vc-cvs-stay-local' is on, then VC also makes local backups of
+repository versions.  This means that ordinary diffs (C-x v =) and
+revert operations (C-x v u) can be done completely locally, without
+any repository interactions at all.  The name of a local version
+backup of FILE is FILE.~REV.~, where REV is the repository version
+number.  This format is similar to that used by C-x v ~
+(vc-version-other-window), except for the trailing dot.  As a matter
+of fact, the two features can each use the files created by the other,
+the only difference being that files with a trailing `.' are deleted
+automatically after commit.  (This feature doesn't work on MS-DOS,
+since DOS disallows more than a single dot in the trunk of a file
+name.)
+
+If `vc-cvs-stay-local' is on, and there have been changes in the
+repository, VC notifies you about it when you actually try to commit.
+If you want to check for updates from the repository without trying to
+commit, you can either use C-x v m RET to perform an update on the
+current file, or you can use C-x v r RET to get an update for an
+entire directory tree.
+
+The new user option `vc-cvs-use-edit' indicates whether VC should call
+"cvs edit" to make files writeable; it defaults to `t'.  (This option
+is only meaningful if the CVSREAD variable is set, or if files are
+"watched" by other developers.)
+
+The commands C-x v s (vc-create-snapshot) and C-x v r
+(vc-retrieve-snapshot) are now also implemented for CVS.  If you give
+an empty snapshot name to the latter, that performs a `cvs update',
+starting at the given directory.
+
+*** Lisp Changes in VC
+
+VC has been restructured internally to make it modular.  You can now
+add support for arbitrary version control backends by writing a
+library that provides a certain set of backend-specific functions, and
+then telling VC to use that library.  For example, to add support for
+a version system named SYS, you write a library named vc-sys.el, which
+provides a number of functions vc-sys-... (see commentary at the top
+of vc.el for a detailed list of them).  To make VC use that library,
+you need to put it somewhere into Emacs' load path and add the symbol
+`SYS' to the list `vc-handled-backends'.
+
+** The customizable EDT emulation package now supports the EDT
+SUBS command and EDT scroll margins.  It also works with more
+terminal/keyboard configurations and it now works under XEmacs.
+See etc/edt-user.doc for more information.
+
+** New modes and packages
+
+*** The new global minor mode `minibuffer-electric-default-mode'
+automatically hides the `(default ...)' part of minibuffer prompts when
+the default is not applicable.
+
+*** Artist is an Emacs lisp package that allows you to draw lines,
+rectangles and ellipses by using your mouse and/or keyboard.  The
+shapes are made up with the ascii characters |, -, / and \.
+
+Features are:
+
+- Intersecting: When a `|' intersects with a `-', a `+' is
+  drawn, like this:   |         \ /
+                    --+--        X
+                      |         / \
+
+- Rubber-banding: When drawing lines you can interactively see the
+  result while holding the mouse button down and moving the mouse.  If
+  your machine is not fast enough (a 386 is a bit too slow, but a
+  pentium is well enough), you can turn this feature off.  You will
+  then see 1's and 2's which mark the 1st and 2nd endpoint of the line
+  you are drawing.
+
+- Arrows: After having drawn a (straight) line or a (straight)
+  poly-line, you can set arrows on the line-ends by typing < or >.
+
+- Flood-filling: You can fill any area with a certain character by
+  flood-filling.
+
+- Cut copy and paste: You can cut, copy and paste rectangular
+  regions.  Artist also interfaces with the rect package (this can be
+  turned off if it causes you any trouble) so anything you cut in
+  artist can be yanked with C-x r y and vice versa.
+
+- Drawing with keys: Everything you can do with the mouse, you can
+  also do without the mouse.
+
+- Aspect-ratio: You can set the variable artist-aspect-ratio to
+  reflect the height-width ratio for the font you are using. Squares
+  and circles are then drawn square/round.  Note, that once your
+  ascii-file is shown with font with a different height-width ratio,
+  the squares won't be square and the circles won't be round.
+
+- Drawing operations: The following drawing operations are implemented:
+
+    lines		straight-lines
+    rectangles		squares
+    poly-lines		straight poly-lines
+    ellipses		circles
+    text (see-thru)	text (overwrite)
+    spray-can		setting size for spraying
+    vaporize line	vaporize lines
+    erase characters	erase rectangles
+
+  Straight lines are lines that go horizontally, vertically or
+  diagonally.  Plain lines go in any direction.  The operations in
+  the right column are accessed by holding down the shift key while
+  drawing.
+
+  It is possible to vaporize (erase) entire lines and connected lines
+  (rectangles for example) as long as the lines being vaporized are
+  straight and connected at their endpoints.  Vaporizing is inspired
+  by the drawrect package by Jari Aalto <jari.aalto@poboxes.com>.
+
+- Picture mode compatibility: Artist is picture mode compatible (this
+  can be turned off).
+
+*** The new package Eshell is an operating system command shell
+implemented entirely in Emacs Lisp.  Use `M-x eshell' to invoke it.
+It functions similarly to bash and zsh, and allows running of Lisp
+functions and external commands using the same syntax.  It supports
+history lists, aliases, extended globbing, smart scrolling, etc.  It
+will work on any platform Emacs has been ported to.  And since most of
+the basic commands -- ls, rm, mv, cp, ln, du, cat, etc. -- have been
+rewritten in Lisp, it offers an operating-system independent shell,
+all within the scope of your Emacs process.
+
+*** The new package timeclock.el is a mode is for keeping track of time
+intervals.  You can use it for whatever purpose you like, but the
+typical scenario is to keep track of how much time you spend working
+on certain projects.
+
+*** The new package hi-lock.el provides commands to highlight matches
+of interactively entered regexps.  For example,
+
+  M-x highlight-regexp RET clearly RET RET
+
+will highlight all occurrences of `clearly' using a yellow background
+face.  New occurrences of `clearly' will be highlighted as they are
+typed.  `M-x unhighlight-regexp RET' will remove the highlighting.
+Any existing face can be used for highlighting and a set of
+appropriate faces is provided.  The regexps can be written into the
+current buffer in a form that will be recognized the next time the
+corresponding file is read.  There are commands to highlight matches
+to phrases and to highlight entire lines containing a match.
+
+*** The new package zone.el plays games with Emacs' display when
+Emacs is idle.
+
+*** The new package tildify.el allows to add hard spaces or other text
+fragments in accordance with the current major mode.
+
+*** The new package xml.el provides a simple but generic XML
+parser. It doesn't parse the DTDs however.
+
+*** The comment operations are now provided by the newcomment.el
+package which allows different styles of comment-region and should
+be more robust while offering the same functionality.
+`comment-region' now doesn't always comment a-line-at-a-time, but only
+comments the region, breaking the line at point if necessary.
+
+*** The Ebrowse package implements a C++ class browser and tags
+facilities tailored for use with C++.  It is documented in a
+separate Texinfo file.
+
+*** The PCL-CVS package available by either running M-x cvs-examine or
+by visiting a CVS administrative directory (with a prefix argument)
+provides an alternative interface to VC-dired for CVS.  It comes with
+`log-view-mode' to view RCS and SCCS logs and `log-edit-mode' used to
+enter check-in log messages.
+
+*** The new package called `woman' allows to browse Unix man pages
+without invoking external programs.
+
+The command `M-x woman' formats manual pages entirely in Emacs Lisp
+and then displays them, like `M-x manual-entry' does.  Unlike
+`manual-entry', `woman' does not invoke any external programs, so it
+is useful on systems such as MS-DOS/MS-Windows where the `man' and
+Groff or `troff' commands are not readily available.
+
+The command `M-x woman-find-file' asks for the file name of a man
+page, then formats and displays it like `M-x woman' does.
+
+*** The new command M-x re-builder offers a convenient interface for
+authoring regular expressions with immediate visual feedback.
+
+The buffer from which the command was called becomes the target for
+the regexp editor popping up in a separate window.  Matching text in
+the target buffer is immediately color marked during the editing.
+Each sub-expression of the regexp will show up in a different face so
+even complex regexps can be edited and verified on target data in a
+single step.
+
+On displays not supporting faces the matches instead blink like
+matching parens to make them stand out.  On such a setup you will
+probably also want to use the sub-expression mode when the regexp
+contains such to get feedback about their respective limits.
+
+*** glasses-mode is a minor mode that makes
+unreadableIdentifiersLikeThis readable.  It works as glasses, without
+actually modifying content of a buffer.
+
+*** The package ebnf2ps translates an EBNF to a syntactic chart in
+PostScript.
+
+Currently accepts ad-hoc EBNF, ISO EBNF and Bison/Yacc.
+
+The ad-hoc default EBNF syntax has the following elements:
+
+    ;		comment (until end of line)
+    A		non-terminal
+    "C"		terminal
+    ?C?		special
+    $A		default non-terminal
+    $"C"	default terminal
+    $?C?	default special
+    A = B.	production (A is the header and B the body)
+    C D		sequence (C occurs before D)
+    C | D	alternative (C or D occurs)
+    A - B	exception (A excluding B, B without any non-terminal)
+    n * A	repetition (A repeats n (integer) times)
+    (C)		group (expression C is grouped together)
+    [C]		optional (C may or not occurs)
+    C+		one or more occurrences of C
+    {C}+	one or more occurrences of C
+    {C}*	zero or more occurrences of C
+    {C}		zero or more occurrences of C
+    C / D	equivalent to: C {D C}*
+    {C || D}+	equivalent to: C {D C}*
+    {C || D}*	equivalent to: [C {D C}*]
+    {C || D}	equivalent to: [C {D C}*]
+
+Please, see ebnf2ps documentation for EBNF syntax and how to use it.
+
+*** The package align.el will align columns within a region, using M-x
+align.  Its mode-specific rules, based on regular expressions,
+determine where the columns should be split.  In C and C++, for
+example, it will align variable names in declaration lists, or the
+equal signs of assignments.
+
+*** `paragraph-indent-minor-mode' is a new minor mode supporting
+paragraphs in the same style as `paragraph-indent-text-mode'.
+
+*** bs.el is a new package for buffer selection similar to
+list-buffers or electric-buffer-list.  Use M-x bs-show to display a
+buffer menu with this package.  See the Custom group `bs'.
+
+*** find-lisp.el is a package emulating the Unix find command in Lisp.
+
+*** calculator.el is a small calculator package that is intended to
+replace desktop calculators such as xcalc and calc.exe.  Actually, it
+is not too small - it has more features than most desktop calculators,
+and can be customized easily to get many more functions.  It should
+not be confused with "calc" which is a much bigger mathematical tool
+which answers different needs.
+
+*** The minor modes cwarn-mode and global-cwarn-mode highlights
+suspicious C and C++ constructions.  Currently, assignments inside
+expressions, semicolon following `if', `for' and `while' (except, of
+course, after a `do .. while' statement), and C++ functions with
+reference parameters are recognized.  The modes require font-lock mode
+to be enabled.
+
+*** smerge-mode.el provides `smerge-mode', a simple minor-mode for files
+containing diff3-style conflict markers, such as generated by RCS.
+
+*** 5x5.el is a simple puzzle game.
+
+*** hl-line.el provides `hl-line-mode', a minor mode to highlight the
+current line in the current buffer.  It also provides
+`global-hl-line-mode' to provide the same behavior in all buffers.
+
+*** ansi-color.el translates ANSI terminal escapes into text-properties.
+
+Please note: if `ansi-color-for-comint-mode' and
+`global-font-lock-mode' are non-nil, loading ansi-color.el will
+disable font-lock and add `ansi-color-apply' to
+`comint-preoutput-filter-functions' for all shell-mode buffers.  This
+displays the output of "ls --color=yes" using the correct foreground
+and background colors.
+
+*** delphi.el provides a major mode for editing the Delphi (Object
+Pascal) language.
+
+*** quickurl.el provides a simple method of inserting a URL based on
+the text at point.
+
+*** sql.el provides an interface to SQL data bases.
+
+*** fortune.el uses the fortune program to create mail/news signatures.
+
+*** whitespace.el is a package for warning about and cleaning bogus
+whitespace in a file.
+
+*** PostScript mode (ps-mode) is a new major mode for editing PostScript
+files. It offers: interaction with a PostScript interpreter, including
+(very basic) error handling; fontification, easily customizable for
+interpreter messages; auto-indentation; insertion of EPSF templates and
+often used code snippets; viewing of BoundingBox; commenting out /
+uncommenting regions; conversion of 8bit characters to PostScript octal
+codes. All functionality is accessible through a menu.
+
+*** delim-col helps to prettify columns in a text region or rectangle.
+
+Here is an example of columns:
+
+horse	apple	bus
+dog	pineapple	car	EXTRA
+porcupine	strawberry	airplane
+
+Doing the following settings:
+
+   (setq delimit-columns-str-before "[ ")
+   (setq delimit-columns-str-after " ]")
+   (setq delimit-columns-str-separator ", ")
+   (setq delimit-columns-separator "\t")
+
+
+Selecting the lines above and typing:
+
+   M-x delimit-columns-region
+
+It results:
+
+[ horse    , apple     , bus     ,       ]
+[ dog      , pineapple , car     , EXTRA ]
+[ porcupine, strawberry, airplane,       ]
+
+delim-col has the following options:
+
+   delimit-columns-str-before		Specify a string to be inserted
+					before all columns.
+
+   delimit-columns-str-separator	Specify a string to be inserted
+					between each column.
+
+   delimit-columns-str-after		Specify a string to be inserted
+					after all columns.
+
+   delimit-columns-separator		Specify a regexp which separates
+					each column.
+
+delim-col has the following commands:
+
+   delimit-columns-region	Prettify all columns in a text region.
+   delimit-columns-rectangle	Prettify all columns in a text rectangle.
+
+*** Recentf mode maintains a menu for visiting files that were
+operated on recently.  User option recentf-menu-filter specifies a
+menu filter function to change the menu appearance. For example, the
+recent file list can be displayed:
+
+- organized by major modes, directories or user defined rules.
+- sorted by file paths, file names, ascending or descending.
+- showing paths relative to the current default-directory
+
+The `recentf-filter-changer' menu filter function allows to
+dynamically change the menu appearance.
+
+*** elide-head.el provides a mechanism for eliding boilerplate header
+text.
+
+*** footnote.el provides `footnote-mode', a minor mode supporting use
+of footnotes.  It is intended for use with Message mode, but isn't
+specific to Message mode.
+
+*** diff-mode.el provides `diff-mode', a major mode for
+viewing/editing context diffs (patches).  It is selected for files
+with extension `.diff', `.diffs', `.patch' and `.rej'.
+
+*** EUDC, the Emacs Unified Directory Client, provides a common user
+interface to access directory servers using different directory
+protocols.  It has a separate manual.
+
+*** autoconf.el provides a major mode for editing configure.in files
+for Autoconf, selected automatically.
+
+*** windmove.el provides moving between windows.
+
+*** crm.el provides a facility to read multiple strings from the
+minibuffer with completion.
+
+*** todo-mode.el provides management of TODO lists and integration
+with the diary features.
+
+*** autoarg.el provides a feature reported from Twenex Emacs whereby
+numeric keys supply prefix args rather than self inserting.
+
+*** The function `turn-off-auto-fill' unconditionally turns off Auto
+Fill mode.
+
+*** pcomplete.el is a library that provides programmable completion
+facilities for Emacs, similar to what zsh and tcsh offer.  The main
+difference is that completion functions are written in Lisp, meaning
+they can be profiled, debugged, etc.
+
+*** antlr-mode is a new major mode for editing ANTLR grammar files.
+It is automatically turned on for files whose names have the extension
+`.g'.
+
+** Changes in sort.el
+
+The function sort-numeric-fields interprets numbers starting with `0'
+as octal and numbers starting with `0x' or `0X' as hexadecimal.  The
+new user-option sort-numeric-base can be used to specify a default
+numeric base.
+
+** Changes to Ange-ftp
+
+*** Ange-ftp allows you to specify of a port number in remote file
+names cleanly.  It is appended to the host name, separated by a hash
+sign, e.g. `/foo@bar.org#666:mumble'.  (This syntax comes from EFS.)
+
+*** If the new user-option `ange-ftp-try-passive-mode' is set, passive
+ftp mode will be used if the ftp client supports that.
+
+*** Ange-ftp handles the output of the w32-style clients which
+output ^M at the end of lines.
+
+** The recommended way of using Iswitchb is via the new global minor
+mode `iswitchb-mode'.
+
+** Just loading the msb package doesn't switch on Msb mode anymore.
+If you have `(require 'msb)' in your .emacs, please replace it with
+`(msb-mode 1)'.
+
+** Changes in Flyspell mode
+
+*** Flyspell mode has various new options.  See the `flyspell' Custom
+group.
+
+*** The variable `flyspell-generic-check-word-p' has been renamed
+to `flyspell-generic-check-word-predicate'.  The old name is still
+available as alias.
+
+** The user option `backward-delete-char-untabify-method' controls the
+behavior of `backward-delete-char-untabify'.  The following values
+are recognized:
+
+`untabify' -- turn a tab to many spaces, then delete one space;
+`hungry'   -- delete all whitespace, both tabs and spaces;
+`all'      -- delete all whitespace, including tabs, spaces and newlines;
+nil        -- just delete one character.
+
+Default value is `untabify'.
+
+[This change was made in Emacs 20.3 but not mentioned then.]
+
+** In Cperl mode `cperl-invalid-face' should now be a normal face
+symbol, not double-quoted.
+
+** Some packages are declared obsolete, to be removed in a future
+version.  They are:  auto-show, c-mode, hilit19, hscroll, ooutline,
+profile, rnews, rnewspost, and sc.  Their implementations have been
+moved to lisp/obsolete.
+
+** auto-compression mode is no longer enabled just by loading jka-compr.el.
+To control it, set `auto-compression-mode' via Custom or use the
+`auto-compression-mode' command.
+
+** `browse-url-gnome-moz' is a new option for
+`browse-url-browser-function', invoking Mozilla in GNOME, and
+`browse-url-kde' can be chosen for invoking the KDE browser.
+
+** The user-option `browse-url-new-window-p' has been renamed to
+`browse-url-new-window-flag'.
+
+** The functions `keep-lines', `flush-lines' and `how-many' now
+operate on the active region in Transient Mark mode.
+
+** `gnus-user-agent' is a new possibility for `mail-user-agent'.  It
+is like `message-user-agent', but with all the Gnus paraphernalia.
+
+** The Strokes package has been updated.  If your Emacs has XPM
+support, you can use it for pictographic editing.  In Strokes mode,
+use C-mouse-2 to compose a complex stoke and insert it into the
+buffer.  You can encode or decode a strokes buffer with new commands
+M-x strokes-encode-buffer and M-x strokes-decode-buffer.  There is a
+new command M-x strokes-list-strokes.
+
+** Hexl contains a new command `hexl-insert-hex-string' which inserts
+a string of hexadecimal numbers read from the mini-buffer.
+
+** Hexl mode allows to insert non-ASCII characters.
+
+The non-ASCII characters are encoded using the same encoding as the
+file you are visiting in Hexl mode.
+
+** Shell script mode changes.
+
+Shell script mode (sh-script) can now indent scripts for shells
+derived from sh and rc.  The indentation style is customizable, and
+sh-script can attempt to "learn" the current buffer's style.
+
+** Etags changes.
+
+*** In DOS, etags looks for file.cgz if it cannot find file.c.
+
+*** New option --ignore-case-regex is an alternative to --regex.  It is now
+possible to bind a regexp to a language, by prepending the regexp with
+{lang}, where lang is one of the languages that `etags --help' prints out.
+This feature is useful especially for regex files, where each line contains
+a regular expression.  The manual contains details.
+
+*** In C and derived languages, etags creates tags for function
+declarations when given the --declarations option.
+
+*** In C++, tags are created for "operator".  The tags have the form
+"operator+", without spaces between the keyword and the operator.
+
+*** You shouldn't generally need any more the -C or -c++ option: etags
+automatically switches to C++ parsing when it meets the `class' or
+`template' keywords.
+
+*** Etags now is able to delve at arbitrary deeps into nested structures in
+C-like languages.  Previously, it was limited to one or two brace levels.
+
+*** New language Ada: tags are functions, procedures, packages, tasks, and
+types.
+
+*** In Fortran, `procedure' is not tagged.
+
+*** In Java, tags are created for "interface".
+
+*** In Lisp, "(defstruct (foo", "(defun (operator" and similar constructs
+are now tagged.
+
+*** In makefiles, tags the targets.
+
+*** In Perl, the --globals option tags global variables.  my and local
+variables are tagged.
+
+*** New language Python: def and class at the beginning of a line are tags.
+
+*** .ss files are Scheme files, .pdb is Postscript with C syntax, .psw is
+for PSWrap.
+
+** Changes in etags.el
+
+*** The new user-option tags-case-fold-search can be used to make
+tags operations case-sensitive or case-insensitive.  The default
+is to use the same setting as case-fold-search.
+
+*** You can display additional output with M-x tags-apropos by setting
+the new variable tags-apropos-additional-actions.
+
+If non-nil, the variable's value should be a list of triples (TITLE
+FUNCTION TO-SEARCH).  For each triple, M-x tags-apropos processes
+TO-SEARCH and lists tags from it.  TO-SEARCH should be an alist,
+obarray, or symbol.  If it is a symbol, the symbol's value is used.
+
+TITLE is a string to use to label the list of tags from TO-SEARCH.
+
+FUNCTION is a function to call when an entry is selected in the Tags
+List buffer.  It is called with one argument, the selected symbol.
+
+A useful example value for this variable might be something like:
+
+  '(("Emacs Lisp" Info-goto-emacs-command-node obarray)
+    ("Common Lisp" common-lisp-hyperspec common-lisp-hyperspec-obarray)
+    ("SCWM" scwm-documentation scwm-obarray))
+
+*** The face tags-tag-face can be used to customize the appearance
+of tags in the output of M-x tags-apropos.
+
+*** Setting tags-apropos-verbose to a non-nil value displays the
+names of tags files in the *Tags List* buffer.
+
+*** You can now search for tags that are part of the filename itself.
+If you have tagged the files topfile.c subdir/subfile.c
+/tmp/tempfile.c, you can now search for tags "topfile.c", "subfile.c",
+"dir/sub", "tempfile", "tempfile.c".  If the tag matches the file name,
+point will go to the beginning of the file.
+
+*** Compressed files are now transparently supported if
+auto-compression-mode is active.  You can tag (with Etags) and search
+(with find-tag) both compressed and uncompressed files.
+
+*** Tags commands like M-x tags-search no longer change point
+in buffers where no match is found.  In buffers where a match is
+found, the original value of point is pushed on the marker ring.
+
+** Fortran mode has a new command `fortran-strip-sequence-nos' to
+remove text past column 72.  The syntax class of `\' in Fortran is now
+appropriate for C-style escape sequences in strings.
+
+** SGML mode's default `sgml-validate-command' is now `nsgmls'.
+
+** A new command `view-emacs-problems' (C-h P) displays the PROBLEMS file.
+
+** The Dabbrev package has a new user-option `dabbrev-ignored-regexps'
+containing a list of regular expressions.  Buffers matching a regular
+expression from that list, are not checked.
+
+** Emacs can now figure out modification times of remote files.
+When you do C-x C-f /user@host:/path/file RET and edit the file,
+and someone else modifies the file, you will be prompted to revert
+the buffer, just like for the local files.
+
+** The buffer menu (C-x C-b) no longer lists the *Buffer List* buffer.
+
+** When invoked with a prefix argument, the command `list-abbrevs' now
+displays local abbrevs, only.
+
+** Refill minor mode provides preliminary support for keeping
+paragraphs filled as you modify them.
+
+** The variable `double-click-fuzz' specifies how much the mouse
+may be moved between clicks that are recognized as a pair.  Its value
+is measured in pixels.
+
+** The new global minor mode `auto-image-file-mode' allows image files
+to be visited as images.
+
+** Two new user-options `grep-command' and `grep-find-command'
+were added to compile.el.
+
+** Withdrawn packages
+
+*** mldrag.el has been removed.  mouse.el provides the same
+functionality with aliases for the mldrag functions.
+
+*** eval-reg.el has been obsoleted by changes to edebug.el and removed.
+
+*** ph.el has been obsoleted by EUDC and removed.
+
+
+* Incompatible Lisp changes in 21.1
+
+There are a few Lisp changes which are not backwards-compatible and
+may require changes to existing code. Here is a list for reference.
+See the sections below for details.
+
+** Since `format' preserves text properties, the idiom
+`(format "%s" foo)' no longer works to copy and remove properties.
+Use `copy-sequence' to copy the string, then use `set-text-properties'
+to remove the properties of the copy.
+
+** Since the `keymap' text property now has significance, some code
+which uses both `local-map' and `keymap' properties (for portability)
+may, for instance, give rise to duplicate menus when the keymaps from
+these properties are active.
+
+** The change in the treatment of non-ASCII characters in search
+ranges may affect some code.
+
+** A non-nil value for the LOCAL arg of add-hook makes the hook
+buffer-local even if `make-local-hook' hasn't been called, which might
+make a difference to some code.
+
+** The new treatment of the minibuffer prompt might affect code which
+operates on the minibuffer.
+
+** The new character sets `eight-bit-control' and `eight-bit-graphic'
+cause `no-conversion' and `emacs-mule-unix' coding systems to produce
+different results when reading files with non-ASCII characters
+(previously, both coding systems would produce the same results).
+Specifically, `no-conversion' interprets each 8-bit byte as a separate
+character.  This makes `no-conversion' inappropriate for reading
+multibyte text, e.g. buffers written to disk in their internal MULE
+encoding (auto-saving does that, for example).  If a Lisp program
+reads such files with `no-conversion', each byte of the multibyte
+sequence, including the MULE leading codes such as \201, is treated as
+a separate character, which prevents them from being interpreted in
+the buffer as multibyte characters.
+
+Therefore, Lisp programs that read files which contain the internal
+MULE encoding should use `emacs-mule-unix'.  `no-conversion' is only
+appropriate for reading truly binary files.
+
+** Code that relies on the obsolete `before-change-function' and
+`after-change-function' to detect buffer changes will now fail.  Use
+`before-change-functions' and `after-change-functions' instead.
+
+** Code that uses `concat' with integer args now gets an error, as
+long promised.  So does any code that uses derivatives of `concat',
+such as `mapconcat'.
+
+** The function base64-decode-string now always returns a unibyte
+string.
+
+** Not a Lisp incompatibility as such but, with the introduction of
+extra private charsets, there is now only one slot free for a new
+dimension-2 private charset.  User code which tries to add more than
+one extra will fail unless you rebuild Emacs with some standard
+charset(s) removed; that is probably inadvisable because it changes
+the emacs-mule encoding.  Also, files stored in the emacs-mule
+encoding using Emacs 20 with additional private charsets defined will
+probably not be read correctly by Emacs 21.
+
+** The variable `directory-sep-char' is slated for removal.
+Not really a change (yet), but a projected one that you should be
+aware of: The variable `directory-sep-char' is deprecated, and should
+not be used.  It was always ignored on GNU/Linux and Unix systems and
+on MS-DOS, but the MS-Windows port tried to support it by adapting the
+behavior of certain primitives to the value of this variable.  It
+turned out that such support cannot be reliable, so it was decided to
+remove this variable in the near future.  Lisp programs are well
+advised not to set it to anything but '/', because any different value
+will not have any effect when support for this variable is removed.
+
+
+* Lisp changes made after edition 2.6 of the Emacs Lisp Manual,
+(Display-related features are described in a page of their own below.)
+
+** Function assq-delete-all replaces function assoc-delete-all.
+
+** The new function animate-string, from lisp/play/animate.el
+allows the animated display of strings.
+
+** The new function `interactive-form' can be used to obtain the
+interactive form of a function.
+
+** The keyword :set-after in defcustom allows to specify dependencies
+between custom options.  Example:
+
+  (defcustom default-input-method nil
+    "*Default input method for multilingual text (a string).
+  This is the input method activated automatically by the command
+  `toggle-input-method' (\\[toggle-input-method])."
+    :group 'mule
+    :type '(choice (const nil) string)
+    :set-after '(current-language-environment))
+
+This specifies that default-input-method should be set after
+current-language-environment even if default-input-method appears
+first in a custom-set-variables statement.
+
+** The new hook `kbd-macro-termination-hook' is run at the end of
+function execute-kbd-macro.  Functions on this hook are called with no
+args.  The hook is run independent of how the macro was terminated
+(signal or normal termination).
+
+** Functions `butlast' and `nbutlast' for removing trailing elements
+from a list are now available without requiring the CL package.
+
+** The new user-option `even-window-heights' can be set to nil
+to prevent `display-buffer' from evening out window heights.
+
+** The user-option `face-font-registry-alternatives' specifies
+alternative font registry names to try when looking for a font.
+
+** Function `md5' calculates the MD5 "message digest"/"checksum".
+
+** Function `delete-frame' runs `delete-frame-hook' before actually
+deleting the frame.  The hook is called with one arg, the frame
+being deleted.
+
+** `add-hook' now makes the hook local if called with a non-nil LOCAL arg.
+
+** The treatment of non-ASCII characters in search ranges has changed.
+If a range in a regular expression or the arg of
+skip-chars-forward/backward starts with a unibyte character C and ends
+with a multibyte character C2, the range is divided into two: one is
+C..?\377, the other is C1..C2, where C1 is the first character of C2's
+charset.
+
+** The new function `display-message-or-buffer' displays a message in
+the echo area or pops up a buffer, depending on the length of the
+message.
+
+** The new macro `with-auto-compression-mode' allows evaluating an
+expression with auto-compression-mode enabled.
+
+** In image specifications, `:heuristic-mask' has been replaced
+with the more general `:mask' property.
+
+** Image specifications accept more `:conversion's.
+
+** A `?' can be used in a symbol name without escaping it with a
+backslash.
+
+** Reading from the mini-buffer now reads from standard input if Emacs
+is running in batch mode.  For example,
+
+  (message "%s" (read t))
+
+will read a Lisp expression from standard input and print the result
+to standard output.
+
+** The argument of `down-list', `backward-up-list', `up-list',
+`kill-sexp', `backward-kill-sexp' and `mark-sexp' is now optional.
+
+** If `display-buffer-reuse-frames' is set, function `display-buffer'
+will raise frames displaying a buffer, instead of creating a new
+frame or window.
+
+** Two new functions for removing elements from lists/sequences
+were added
+
+- Function: remove ELT SEQ
+
+Return a copy of SEQ with all occurrences of ELT removed.  SEQ must be
+a list, vector, or string.  The comparison is done with `equal'.
+
+- Function: remq ELT LIST
+
+Return a copy of LIST with all occurrences of ELT removed.  The
+comparison is done with `eq'.
+
+** The function `delete' now also works with vectors and strings.
+
+** The meaning of the `:weakness WEAK' argument of make-hash-table
+has been changed: WEAK can now have new values `key-or-value' and
+`key-and-value', in addition to `nil', `key', `value', and `t'.
+
+** Function `aset' stores any multibyte character in any string
+without signaling "Attempt to change char length of a string".  It may
+convert a unibyte string to multibyte if necessary.
+
+** The value of the `help-echo' text property is called as a function
+or evaluated, if it is not a string already, to obtain a help string.
+
+** Function `make-obsolete' now has an optional arg to say when the
+function was declared obsolete.
+
+** Function `plist-member' is renamed from `widget-plist-member' (which is
+retained as an alias).
+
+** Easy-menu's :filter now takes the unconverted form of the menu and
+the result is automatically converted to Emacs' form.
+
+** The new function `window-list' has been defined
+
+- Function: window-list &optional FRAME WINDOW MINIBUF
+
+Return a list of windows on FRAME, starting with WINDOW.  FRAME nil or
+omitted means use the selected frame.  WINDOW nil or omitted means use
+the selected window.  MINIBUF t means include the minibuffer window,
+even if it isn't active.  MINIBUF nil or omitted means include the
+minibuffer window only if it's active.  MINIBUF neither nil nor t
+means never include the minibuffer window.
+
+** There's a new function `get-window-with-predicate' defined as follows
+
+- Function: get-window-with-predicate PREDICATE &optional MINIBUF ALL-FRAMES DEFAULT
+
+Return a window satisfying PREDICATE.
+
+This function cycles through all visible windows using `walk-windows',
+calling PREDICATE on each one.  PREDICATE is called with a window as
+argument.  The first window for which PREDICATE returns a non-nil
+value is returned.  If no window satisfies PREDICATE, DEFAULT is
+returned.
+
+Optional second arg MINIBUF t means count the minibuffer window even
+if not active.  MINIBUF nil or omitted means count the minibuffer iff
+it is active.  MINIBUF neither t nor nil means not to count the
+minibuffer even if it is active.
+
+Several frames may share a single minibuffer; if the minibuffer
+counts, all windows on all frames that share that minibuffer count
+too.  Therefore, if you are using a separate minibuffer frame
+and the minibuffer is active and MINIBUF says it counts,
+`walk-windows' includes the windows in the frame from which you
+entered the minibuffer, as well as the minibuffer window.
+
+ALL-FRAMES is the optional third argument.
+ALL-FRAMES nil or omitted means cycle within the frames as specified above.
+ALL-FRAMES = `visible' means include windows on all visible frames.
+ALL-FRAMES = 0 means include windows on all visible and iconified frames.
+ALL-FRAMES = t means include windows on all frames including invisible frames.
+If ALL-FRAMES is a frame, it means include windows on that frame.
+Anything else means restrict to the selected frame.
+
+** The function `single-key-description' now encloses function key and
+event names in angle brackets.  When called with a second optional
+argument non-nil, angle brackets won't be printed.
+
+** If the variable `message-truncate-lines' is bound to t around a
+call to `message', the echo area will not be resized to display that
+message; it will be truncated instead, as it was done in 20.x.
+Default value is nil.
+
+** The user option `line-number-display-limit' can now be set to nil,
+meaning no limit.
+
+** The new user option `line-number-display-limit-width' controls
+the maximum width of lines in a buffer for which Emacs displays line
+numbers in the mode line.  The default is 200.
+
+** `select-safe-coding-system' now also checks the most preferred
+coding-system if buffer-file-coding-system is `undecided' and
+DEFAULT-CODING-SYSTEM is not specified,
+
+** The function `subr-arity' provides information about the argument
+list of a primitive.
+
+** `where-is-internal' now also accepts a list of keymaps.
+
+** The text property `keymap' specifies a key map which overrides the
+buffer's local map and the map specified by the `local-map' property.
+This is probably what most current uses of `local-map' want, rather
+than replacing the local map.
+
+** The obsolete variables `before-change-function' and
+`after-change-function' are no longer acted upon and have been
+removed.  Use `before-change-functions' and `after-change-functions'
+instead.
+
+** The function `apropos-mode' runs the hook `apropos-mode-hook'.
+
+** `concat' no longer accepts individual integer arguments,
+as promised long ago.
+
+** The new function `float-time' returns the current time as a float.
+
+** The new variable auto-coding-regexp-alist specifies coding systems
+for reading specific files, analogous to auto-coding-alist, but
+patterns are checked against file contents instead of file names.
+
+
+* Lisp changes in Emacs 21.1 (see following page for display-related features)
+
+** The new package rx.el provides an alternative sexp notation for
+regular expressions.
+
+- Function: rx-to-string SEXP
+
+Translate SEXP into a regular expression in string notation.
+
+- Macro: rx SEXP
+
+Translate SEXP into a regular expression in string notation.
+
+The following are valid subforms of regular expressions in sexp
+notation.
+
+STRING
+     matches string STRING literally.
+
+CHAR
+     matches character CHAR literally.
+
+`not-newline'
+     matches any character except a newline.
+			.
+`anything'
+     matches any character
+
+`(any SET)'
+     matches any character in SET.  SET may be a character or string.
+     Ranges of characters can be specified as `A-Z' in strings.
+
+'(in SET)'
+     like `any'.
+
+`(not (any SET))'
+     matches any character not in SET
+
+`line-start'
+     matches the empty string, but only at the beginning of a line
+     in the text being matched
+
+`line-end'
+     is similar to `line-start' but matches only at the end of a line
+
+`string-start'
+     matches the empty string, but only at the beginning of the
+     string being matched against.
+
+`string-end'
+     matches the empty string, but only at the end of the
+     string being matched against.
+
+`buffer-start'
+     matches the empty string, but only at the beginning of the
+     buffer being matched against.
+
+`buffer-end'
+     matches the empty string, but only at the end of the
+     buffer being matched against.
+
+`point'
+     matches the empty string, but only at point.
+
+`word-start'
+     matches the empty string, but only at the beginning or end of a
+     word.
+
+`word-end'
+     matches the empty string, but only at the end of a word.
+
+`word-boundary'
+     matches the empty string, but only at the beginning or end of a
+     word.
+
+`(not word-boundary)'
+     matches the empty string, but not at the beginning or end of a
+     word.
+
+`digit'
+     matches 0 through 9.
+
+`control'
+     matches ASCII control characters.
+
+`hex-digit'
+     matches 0 through 9, a through f and A through F.
+
+`blank'
+     matches space and tab only.
+
+`graphic'
+     matches graphic characters--everything except ASCII control chars,
+     space, and DEL.
+
+`printing'
+     matches printing characters--everything except ASCII control chars
+     and DEL.
+
+`alphanumeric'
+     matches letters and digits.  (But at present, for multibyte characters,
+     it matches anything that has word syntax.)
+
+`letter'
+     matches letters.  (But at present, for multibyte characters,
+     it matches anything that has word syntax.)
+
+`ascii'
+     matches ASCII (unibyte) characters.
+
+`nonascii'
+     matches non-ASCII (multibyte) characters.
+
+`lower'
+     matches anything lower-case.
+
+`upper'
+     matches anything upper-case.
+
+`punctuation'
+     matches punctuation.  (But at present, for multibyte characters,
+     it matches anything that has non-word syntax.)
+
+`space'
+     matches anything that has whitespace syntax.
+
+`word'
+     matches anything that has word syntax.
+
+`(syntax SYNTAX)'
+     matches a character with syntax SYNTAX.  SYNTAX must be one
+     of the following symbols.
+
+     `whitespace'		(\\s- in string notation)
+     `punctuation'		(\\s.)
+     `word'			(\\sw)
+     `symbol'			(\\s_)
+     `open-parenthesis'		(\\s()
+     `close-parenthesis'	(\\s))
+     `expression-prefix'	(\\s')
+     `string-quote'		(\\s\")
+     `paired-delimiter'		(\\s$)
+     `escape'			(\\s\\)
+     `character-quote'		(\\s/)
+     `comment-start'		(\\s<)
+     `comment-end'		(\\s>)
+
+`(not (syntax SYNTAX))'
+     matches a character that has not syntax SYNTAX.
+
+`(category CATEGORY)'
+     matches a character with category CATEGORY.  CATEGORY must be
+     either a character to use for C, or one of the following symbols.
+
+     `consonant'			(\\c0 in string notation)
+     `base-vowel'			(\\c1)
+     `upper-diacritical-mark'		(\\c2)
+     `lower-diacritical-mark'		(\\c3)
+     `tone-mark'		        (\\c4)
+     `symbol'			        (\\c5)
+     `digit'			        (\\c6)
+     `vowel-modifying-diacritical-mark'	(\\c7)
+     `vowel-sign'			(\\c8)
+     `semivowel-lower'			(\\c9)
+     `not-at-end-of-line'		(\\c<)
+     `not-at-beginning-of-line'		(\\c>)
+     `alpha-numeric-two-byte'		(\\cA)
+     `chinse-two-byte'			(\\cC)
+     `greek-two-byte'			(\\cG)
+     `japanese-hiragana-two-byte'	(\\cH)
+     `indian-two-byte'			(\\cI)
+     `japanese-katakana-two-byte'	(\\cK)
+     `korean-hangul-two-byte'		(\\cN)
+     `cyrillic-two-byte'		(\\cY)
+     `ascii'				(\\ca)
+     `arabic'				(\\cb)
+     `chinese'				(\\cc)
+     `ethiopic'				(\\ce)
+     `greek'				(\\cg)
+     `korean'				(\\ch)
+     `indian'				(\\ci)
+     `japanese'				(\\cj)
+     `japanese-katakana'		(\\ck)
+     `latin'				(\\cl)
+     `lao'				(\\co)
+     `tibetan'				(\\cq)
+     `japanese-roman'			(\\cr)
+     `thai'				(\\ct)
+     `vietnamese'			(\\cv)
+     `hebrew'				(\\cw)
+     `cyrillic'				(\\cy)
+     `can-break'			(\\c|)
+
+`(not (category CATEGORY))'
+     matches a character that has not category CATEGORY.
+
+`(and SEXP1 SEXP2 ...)'
+     matches what SEXP1 matches, followed by what SEXP2 matches, etc.
+
+`(submatch SEXP1 SEXP2 ...)'
+     like `and', but makes the match accessible with `match-end',
+     `match-beginning', and `match-string'.
+
+`(group SEXP1 SEXP2 ...)'
+     another name for `submatch'.
+
+`(or SEXP1 SEXP2 ...)'
+     matches anything that matches SEXP1 or SEXP2, etc.  If all
+     args are strings, use `regexp-opt' to optimize the resulting
+     regular expression.
+
+`(minimal-match SEXP)'
+     produce a non-greedy regexp for SEXP.  Normally, regexps matching
+     zero or more occurrences of something are \"greedy\" in that they
+     match as much as they can, as long as the overall regexp can
+     still match.  A non-greedy regexp matches as little as possible.
+
+`(maximal-match SEXP)'
+     produce a greedy regexp for SEXP.  This is the default.
+
+`(zero-or-more SEXP)'
+     matches zero or more occurrences of what SEXP matches.
+
+`(0+ SEXP)'
+     like `zero-or-more'.
+
+`(* SEXP)'
+     like `zero-or-more', but always produces a greedy regexp.
+
+`(*? SEXP)'
+     like `zero-or-more', but always produces a non-greedy regexp.
+
+`(one-or-more SEXP)'
+     matches one or more occurrences of A.
+
+`(1+ SEXP)'
+     like `one-or-more'.
+
+`(+ SEXP)'
+     like `one-or-more', but always produces a greedy regexp.
+
+`(+? SEXP)'
+     like `one-or-more', but always produces a non-greedy regexp.
+
+`(zero-or-one SEXP)'
+     matches zero or one occurrences of A.
+
+`(optional SEXP)'
+     like `zero-or-one'.
+
+`(? SEXP)'
+     like `zero-or-one', but always produces a greedy regexp.
+
+`(?? SEXP)'
+     like `zero-or-one', but always produces a non-greedy regexp.
+
+`(repeat N SEXP)'
+     matches N occurrences of what SEXP matches.
+
+`(repeat N M SEXP)'
+     matches N to M occurrences of what SEXP matches.
+
+`(eval FORM)'
+      evaluate FORM and insert result.  If result is a string,
+      `regexp-quote' it.
+
+`(regexp REGEXP)'
+      include REGEXP in string notation in the result.
+
+*** The features `md5' and `overlay' are now provided by default.
+
+*** The special form `save-restriction' now works correctly even if the
+buffer is widened inside the save-restriction and changes made outside
+the original restriction.  Previously, doing this would cause the saved
+restriction to be restored incorrectly.
+
+*** The functions `find-charset-region' and `find-charset-string' include
+`eight-bit-control' and/or `eight-bit-graphic' in the returned list
+when they find 8-bit characters.  Previously, they included `ascii' in a
+multibyte buffer and `unknown' in a unibyte buffer.
+
+*** The functions `set-buffer-multibyte', `string-as-multibyte' and
+`string-as-unibyte' change the byte sequence of a buffer or a string
+if it contains a character from the `eight-bit-control' character set.
+
+*** The handling of multibyte sequences in a multibyte buffer is
+changed.  Previously, a byte sequence matching the pattern
+[\200-\237][\240-\377]+ was interpreted as a single character
+regardless of the length of the trailing bytes [\240-\377]+.  Thus, if
+the sequence was longer than what the leading byte indicated, the
+extra trailing bytes were ignored by Lisp functions.  Now such extra
+bytes are independent 8-bit characters belonging to the charset
+eight-bit-graphic.
+
+** Fontsets are now implemented using char-tables.
+
+A fontset can now be specified for each independent character, for
+a group of characters or for a character set rather than just for a
+character set as previously.
+
+*** The arguments of the function `set-fontset-font' are changed.
+They are NAME, CHARACTER, FONTNAME, and optional FRAME.  The function
+modifies fontset NAME to use FONTNAME for CHARACTER.
+
+CHARACTER may be a cons (FROM . TO), where FROM and TO are non-generic
+characters.  In that case FONTNAME is used for all characters in the
+range FROM and TO (inclusive).  CHARACTER may be a charset.  In that
+case FONTNAME is used for all character in the charset.
+
+FONTNAME may be a cons (FAMILY . REGISTRY), where FAMILY is the family
+name of a font and REGISTRY is a registry name of a font.
+
+*** Variable x-charset-registry has been deleted.  The default charset
+registries of character sets are set in the default fontset
+"fontset-default".
+
+*** The function `create-fontset-from-fontset-spec' ignores the second
+argument STYLE-VARIANT.  It never creates style-variant fontsets.
+
+** The method of composing characters is changed.  Now character
+composition is done by a special text property `composition' in
+buffers and strings.
+
+*** Charset composition is deleted.  Emacs never creates a `composite
+character' which is an independent character with a unique character
+code.  Thus the following functions handling `composite characters'
+have been deleted: composite-char-component,
+composite-char-component-count, composite-char-composition-rule,
+composite-char-composition-rule and decompose-composite-char delete.
+The variables leading-code-composition and min-composite-char have
+also been deleted.
+
+*** Three more glyph reference points are added.  They can be used to
+specify a composition rule.  See the documentation of the variable
+`reference-point-alist' for more detail.
+
+*** The function `compose-region' takes new arguments COMPONENTS and
+MODIFICATION-FUNC.  With COMPONENTS, you can specify not only a
+composition rule but also characters to be composed.  Such characters
+may differ between buffer and string text.
+
+*** The function `compose-string' takes new arguments START, END,
+COMPONENTS, and MODIFICATION-FUNC.
+
+*** The function `compose-string' puts text property `composition'
+directly on the argument STRING instead of returning a new string.
+Likewise, the function `decompose-string' just removes text property
+`composition' from STRING.
+
+*** The new function `find-composition' returns information about
+a composition at a specified position in a buffer or a string.
+
+*** The function `decompose-composite-char' is now labeled as
+obsolete.
+
+** The new coding system `mac-roman' is primarily intended for use on
+the Macintosh but may be used generally for Macintosh-encoded text.
+
+** The new character sets `mule-unicode-0100-24ff',
+`mule-unicode-2500-33ff', and `mule-unicode-e000-ffff' have been
+introduced for Unicode characters in the range U+0100..U+24FF,
+U+2500..U+33FF, U+E000..U+FFFF respectively.
+
+Note that the character sets are not yet unified in Emacs, so
+characters which belong to charsets such as Latin-2, Greek, Hebrew,
+etc. and the same characters in the `mule-unicode-*' charsets are
+different characters, as far as Emacs is concerned.  For example, text
+which includes Unicode characters from the Latin-2 locale cannot be
+encoded by Emacs with ISO 8859-2 coding system.
+
+** The new coding system `mule-utf-8' has been added.
+It provides limited support for decoding/encoding UTF-8 text.  For
+details, please see the documentation string of this coding system.
+
+** The new character sets `japanese-jisx0213-1' and
+`japanese-jisx0213-2' have been introduced for the new Japanese
+standard JIS X 0213 Plane 1 and Plane 2.
+
+** The new character sets `latin-iso8859-14' and `latin-iso8859-15'
+have been introduced.
+
+** The new character sets `eight-bit-control' and `eight-bit-graphic'
+have been introduced for 8-bit characters in the ranges 0x80..0x9F and
+0xA0..0xFF respectively.  Note that the multibyte representation of
+eight-bit-control is never exposed; this leads to an exception in the
+emacs-mule coding system, which encodes everything else to the
+buffer/string internal representation.  Note that to search for
+eight-bit-graphic characters in a multibyte buffer, the search string
+must be multibyte, otherwise such characters will be converted to
+their multibyte equivalent.
+
+** If the APPEND argument of `write-region' is an integer, it seeks to
+that offset in the file before writing.
+
+** The function `add-minor-mode' has been added for convenience and
+compatibility with XEmacs (and is used internally by define-minor-mode).
+
+** The function `shell-command' now sets the default directory of the
+`*Shell Command Output*' buffer to the default directory of the buffer
+from which the command was issued.
+
+** The functions `query-replace', `query-replace-regexp',
+`query-replace-regexp-eval' `map-query-replace-regexp',
+`replace-string', `replace-regexp', and `perform-replace' take two
+additional optional arguments START and END that specify the region to
+operate on.
+
+** The new function `count-screen-lines' is a more flexible alternative
+to `window-buffer-height'.
+
+- Function: count-screen-lines &optional BEG END COUNT-FINAL-NEWLINE WINDOW
+
+Return the number of screen lines in the region between BEG and END.
+The number of screen lines may be different from the number of actual
+lines, due to line breaking, display table, etc.
+
+Optional arguments BEG and END default to `point-min' and `point-max'
+respectively.
+
+If region ends with a newline, ignore it unless optional third argument
+COUNT-FINAL-NEWLINE is non-nil.
+
+The optional fourth argument WINDOW specifies the window used for
+obtaining parameters such as width, horizontal scrolling, and so
+on. The default is to use the selected window's parameters.
+
+Like `vertical-motion', `count-screen-lines' always uses the current
+buffer, regardless of which buffer is displayed in WINDOW. This makes
+possible to use `count-screen-lines' in any buffer, whether or not it
+is currently displayed in some window.
+
+** The new function `mapc' is like `mapcar' but doesn't collect the
+argument function's results.
+
+** The functions base64-decode-region and base64-decode-string now
+signal an error instead of returning nil if decoding fails.  Also,
+`base64-decode-string' now always returns a unibyte string (in Emacs
+20, it returned a multibyte string when the result was a valid multibyte
+sequence).
+
+** The function sendmail-user-agent-compose now recognizes a `body'
+header in the list of headers passed to it.
+
+** The new function member-ignore-case works like `member', but
+ignores differences in case and text representation.
+
+** The buffer-local variable cursor-type can be used to specify the
+cursor to use in windows displaying a buffer.  Values are interpreted
+as follows:
+
+  t 		use the cursor specified for the frame (default)
+  nil		don't display a cursor
+  `bar'		display a bar cursor with default width
+  (bar . WIDTH)	display a bar cursor with width WIDTH
+  others	display a box cursor.
+
+** The variable open-paren-in-column-0-is-defun-start controls whether
+an open parenthesis in column 0 is considered to be the start of a
+defun.  If set, the default, it is considered a defun start.  If not
+set, an open parenthesis in column 0 has no special meaning.
+
+** The new function `string-to-syntax' can be used to translate syntax
+specifications in string form as accepted by `modify-syntax-entry' to
+the cons-cell form that is used for the values of the `syntax-table'
+text property, and in `font-lock-syntactic-keywords'.
+
+Example:
+
+  (string-to-syntax "()")
+    => (4 . 41)
+
+** Emacs' reader supports CL read syntax for integers in bases
+other than 10.
+
+*** `#BINTEGER' or `#bINTEGER' reads INTEGER in binary (radix 2).
+INTEGER optionally contains a sign.
+
+  #b1111
+    => 15
+  #b-1111
+    => -15
+
+*** `#OINTEGER' or `#oINTEGER' reads INTEGER in octal (radix 8).
+
+  #o666
+    => 438
+
+*** `#XINTEGER' or `#xINTEGER' reads INTEGER in hexadecimal (radix 16).
+
+  #xbeef
+    => 48815
+
+*** `#RADIXrINTEGER' reads INTEGER in radix RADIX, 2 <= RADIX <= 36.
+
+  #2R-111
+    => -7
+  #25rah
+    => 267
+
+** The function `documentation-property' now evaluates the value of
+the given property to obtain a string if it doesn't refer to etc/DOC
+and isn't a string.
+
+** If called for a symbol, the function `documentation' now looks for
+a `function-documentation' property of that symbol.  If it has a non-nil
+value, the documentation is taken from that value.  If the value is
+not a string, it is evaluated to obtain a string.
+
+** The last argument of `define-key-after' defaults to t for convenience.
+
+** The new function `replace-regexp-in-string' replaces all matches
+for a regexp in a string.
+
+** `mouse-position' now runs the abnormal hook
+`mouse-position-function'.
+
+** The function string-to-number now returns a float for numbers
+that don't fit into a Lisp integer.
+
+** The variable keyword-symbols-constants-flag has been removed.
+Keywords are now always considered constants.
+
+** The new function `delete-and-extract-region' deletes text and
+returns it.
+
+** The function `clear-this-command-keys' now also clears the vector
+returned by function `recent-keys'.
+
+** Variables `beginning-of-defun-function' and `end-of-defun-function'
+can be used to define handlers for the functions that find defuns.
+Major modes can define these locally instead of rebinding C-M-a
+etc. if the normal conventions for defuns are not appropriate for the
+mode.
+
+** easy-mmode-define-minor-mode now takes an additional BODY argument
+and is renamed `define-minor-mode'.
+
+** If an abbrev has a hook function which is a symbol, and that symbol
+has a non-nil `no-self-insert' property, the return value of the hook
+function specifies whether an expansion has been done or not.  If it
+returns nil, abbrev-expand also returns nil, meaning "no expansion has
+been performed."
+
+When abbrev expansion is done by typing a self-inserting character,
+and the abbrev has a hook with the `no-self-insert' property, and the
+hook function returns non-nil meaning expansion has been done,
+then the self-inserting character is not inserted.
+
+** The function `intern-soft' now accepts a symbol as first argument.
+In this case, that exact symbol is looked up in the specified obarray,
+and the function's value is nil if it is not found.
+
+** The new macro `with-syntax-table' can be used to evaluate forms
+with the syntax table of the current buffer temporarily set to a
+specified table.
+
+  (with-syntax-table TABLE &rest BODY)
+
+Evaluate BODY with syntax table of current buffer set to a copy of
+TABLE.  The current syntax table is saved, BODY is evaluated, and the
+saved table is restored, even in case of an abnormal exit.  Value is
+what BODY returns.
+
+** Regular expressions now support intervals \{n,m\} as well as
+Perl's shy-groups \(?:...\) and non-greedy *? +? and ?? operators.
+Also back-references like \2 are now considered as an error if the
+corresponding subgroup does not exist (or is not closed yet).
+Previously it would have been silently turned into `2' (ignoring the `\').
+
+** The optional argument BUFFER of function file-local-copy has been
+removed since it wasn't used by anything.
+
+** The file name argument of function `file-locked-p' is now required
+instead of being optional.
+
+** The new built-in error `text-read-only' is signaled when trying to
+modify read-only text.
+
+** New functions and variables for locales.
+
+The new variable `locale-coding-system' specifies how to encode and
+decode strings passed to low-level message functions like strerror and
+time functions like strftime.  The new variables
+`system-messages-locale' and `system-time-locale' give the system
+locales to be used when invoking these two types of functions.
+
+The new function `set-locale-environment' sets the language
+environment, preferred coding system, and locale coding system from
+the system locale as specified by the LC_ALL, LC_CTYPE, and LANG
+environment variables.  Normally, it is invoked during startup and need
+not be invoked thereafter.  It uses the new variables
+`locale-language-names', `locale-charset-language-names', and
+`locale-preferred-coding-systems' to make its decisions.
+
+** syntax tables now understand nested comments.
+To declare a comment syntax as allowing nesting, just add an `n'
+modifier to either of the characters of the comment end and the comment
+start sequences.
+
+** The function `pixmap-spec-p' has been renamed `bitmap-spec-p'
+because `bitmap' is more in line with the usual X terminology.
+
+** New function `propertize'
+
+The new function `propertize' can be used to conveniently construct
+strings with text properties.
+
+- Function: propertize STRING &rest PROPERTIES
+
+Value is a copy of STRING with text properties assigned as specified
+by PROPERTIES.  PROPERTIES is a sequence of pairs PROPERTY VALUE, with
+PROPERTY being the name of a text property and VALUE being the
+specified value of that property.  Example:
+
+  (propertize "foo" 'face 'bold 'read-only t)
+
+** push and pop macros.
+
+Simple versions of the push and pop macros of Common Lisp
+are now defined in Emacs Lisp.  These macros allow only symbols
+as the place that holds the list to be changed.
+
+(push NEWELT LISTNAME)  add NEWELT to the front of LISTNAME's value.
+(pop LISTNAME)          return first elt of LISTNAME, and remove it
+			(thus altering the value of LISTNAME).
+
+** New dolist and dotimes macros.
+
+Simple versions of the dolist and dotimes macros of Common Lisp
+are now defined in Emacs Lisp.
+
+(dolist (VAR LIST [RESULT]) BODY...)
+      Execute body once for each element of LIST,
+      using the variable VAR to hold the current element.
+      Then return the value of RESULT, or nil if RESULT is omitted.
+
+(dotimes (VAR COUNT [RESULT]) BODY...)
+      Execute BODY with VAR bound to successive integers running from 0,
+      inclusive, to COUNT, exclusive.
+      Then return the value of RESULT, or nil if RESULT is omitted.
+
+** Regular expressions now support Posix character classes such as
+[:alpha:], [:space:] and so on.  These must be used within a character
+class--for instance, [-[:digit:].+] matches digits or a period
+or a sign.
+
+[:digit:]  matches 0 through 9
+[:cntrl:]  matches ASCII control characters
+[:xdigit:]  matches 0 through 9, a through f and A through F.
+[:blank:]  matches space and tab only
+[:graph:]  matches graphic characters--everything except ASCII control chars,
+	   space, and DEL.
+[:print:]  matches printing characters--everything except ASCII control chars
+	   and DEL.
+[:alnum:]  matches letters and digits.
+	   (But at present, for multibyte characters,
+	    it matches anything that has word syntax.)
+[:alpha:]  matches letters.
+	   (But at present, for multibyte characters,
+	    it matches anything that has word syntax.)
+[:ascii:]  matches ASCII (unibyte) characters.
+[:nonascii:]  matches non-ASCII (multibyte) characters.
+[:lower:]  matches anything lower-case.
+[:punct:]  matches punctuation.
+	   (But at present, for multibyte characters,
+	    it matches anything that has non-word syntax.)
+[:space:]  matches anything that has whitespace syntax.
+[:upper:]  matches anything upper-case.
+[:word:]   matches anything that has word syntax.
+
+** Emacs now has built-in hash tables.
+
+The following functions are defined for hash tables:
+
+- Function: make-hash-table ARGS
+
+The argument list ARGS consists of keyword/argument pairs.  All arguments
+are optional.  The following arguments are defined:
+
+:test TEST
+
+TEST must be a symbol specifying how to compare keys.  Default is `eql'.
+Predefined are `eq', `eql' and `equal'.  If TEST is not predefined,
+it must have been defined with `define-hash-table-test'.
+
+:size SIZE
+
+SIZE must be an integer > 0 giving a hint to the implementation how
+many elements will be put in the hash table.  Default size is 65.
+
+:rehash-size REHASH-SIZE
+
+REHASH-SIZE specifies by how much to grow a hash table once it becomes
+full.  If REHASH-SIZE is an integer, add that to the hash table's old
+size to get the new size.  Otherwise, REHASH-SIZE must be a float >
+1.0, and the new size is computed by multiplying REHASH-SIZE with the
+old size.  Default rehash size is 1.5.
+
+:rehash-threshold THRESHOLD
+
+THRESHOLD must be a float > 0 and <= 1.0 specifying when to resize the
+hash table.  It is resized when the ratio of (number of entries) /
+(size of hash table) is >= THRESHOLD.  Default threshold is 0.8.
+
+:weakness WEAK
+
+WEAK must be either nil, one of the symbols `key, `value',
+`key-or-value', `key-and-value', or t, meaning the same as
+`key-and-value'.  Entries are removed from weak tables during garbage
+collection if their key and/or value are not referenced elsewhere
+outside of the hash table.  Default are non-weak hash tables.
+
+- Function: makehash &optional TEST
+
+Similar to make-hash-table, but only TEST can be specified.
+
+- Function: hash-table-p TABLE
+
+Returns non-nil if TABLE is a hash table object.
+
+- Function: copy-hash-table TABLE
+
+Returns a copy of TABLE.  Only the table itself is copied, keys and
+values are shared.
+
+- Function: hash-table-count TABLE
+
+Returns the number of entries in TABLE.
+
+- Function: hash-table-rehash-size TABLE
+
+Returns the rehash size of TABLE.
+
+- Function: hash-table-rehash-threshold TABLE
+
+Returns the rehash threshold of TABLE.
+
+- Function: hash-table-rehash-size TABLE
+
+Returns the size of TABLE.
+
+- Function: hash-table-test TABLE
+
+Returns the test TABLE uses to compare keys.
+
+- Function: hash-table-weakness TABLE
+
+Returns the weakness specified for TABLE.
+
+- Function: clrhash TABLE
+
+Clear TABLE.
+
+- Function: gethash KEY TABLE &optional DEFAULT
+
+Look up KEY in TABLE and return its associated VALUE or DEFAULT if
+not found.
+
+- Function: puthash KEY VALUE TABLE
+
+Associate KEY with VALUE in TABLE.  If KEY is already associated with
+another value, replace the old value with VALUE.
+
+- Function: remhash KEY TABLE
+
+Remove KEY from TABLE if it is there.
+
+- Function: maphash FUNCTION TABLE
+
+Call FUNCTION for all elements in TABLE.  FUNCTION must take two
+arguments KEY and VALUE.
+
+- Function: sxhash OBJ
+
+Return a hash code for Lisp object OBJ.
+
+- Function: define-hash-table-test NAME TEST-FN HASH-FN
+
+Define a new hash table test named NAME.  If NAME is specified as
+a test in `make-hash-table', the table created will use TEST-FN for
+comparing keys, and HASH-FN to compute hash codes for keys.  Test
+and hash function are stored as symbol property `hash-table-test'
+of NAME with a value of (TEST-FN HASH-FN).
+
+TEST-FN must take two arguments and return non-nil if they are the same.
+
+HASH-FN must take one argument and return an integer that is the hash
+code of the argument.  The function should use the whole range of
+integer values for hash code computation, including negative integers.
+
+Example: The following creates a hash table whose keys are supposed to
+be strings that are compared case-insensitively.
+
+  (defun case-fold-string= (a b)
+    (compare-strings a nil nil b nil nil t))
+
+  (defun case-fold-string-hash (a)
+    (sxhash (upcase a)))
+
+  (define-hash-table-test 'case-fold 'case-fold-string=
+                          'case-fold-string-hash))
+
+  (make-hash-table :test 'case-fold)
+
+** The Lisp reader handles circular structure.
+
+It now works to use the #N= and #N# constructs to represent
+circular structures.  For example, #1=(a . #1#) represents
+a cons cell which is its own cdr.
+
+** The Lisp printer handles circular structure.
+
+If you bind print-circle to a non-nil value, the Lisp printer outputs
+#N= and #N# constructs to represent circular and shared structure.
+
+** If the second argument to `move-to-column' is anything but nil or
+t, that means replace a tab with spaces if necessary to reach the
+specified column, but do not add spaces at the end of the line if it
+is too short to reach that column.
+
+** perform-replace has a new feature:  the REPLACEMENTS argument may
+now be a cons cell (FUNCTION . DATA).  This means to call FUNCTION
+after each match to get the replacement text.  FUNCTION is called with
+two arguments: DATA, and the number of replacements already made.
+
+If the FROM-STRING contains any upper-case letters,
+perform-replace also turns off `case-fold-search' temporarily
+and inserts the replacement text without altering case in it.
+
+** The function buffer-size now accepts an optional argument
+to specify which buffer to return the size of.
+
+** The calendar motion commands now run the normal hook
+calendar-move-hook after moving point.
+
+** The new variable small-temporary-file-directory specifies a
+directory to use for creating temporary files that are likely to be
+small.  (Certain Emacs features use this directory.)  If
+small-temporary-file-directory is nil, they use
+temporary-file-directory instead.
+
+** The variable `inhibit-modification-hooks', if non-nil, inhibits all
+the hooks that track changes in the buffer.  This affects
+`before-change-functions' and `after-change-functions', as well as
+hooks attached to text properties and overlay properties.
+
+** assq-delete-all is a new function that deletes all the
+elements of an alist which have a car `eq' to a particular value.
+
+** make-temp-file provides a more reliable way to create a temporary file.
+
+make-temp-file is used like make-temp-name, except that it actually
+creates the file before it returns.  This prevents a timing error,
+ensuring that no other job can use the same name for a temporary file.
+
+** New exclusive-open feature in `write-region'
+
+The optional seventh arg is now called MUSTBENEW.  If non-nil, it insists
+on a check for an existing file with the same name.  If MUSTBENEW
+is `excl', that means to get an error if the file already exists;
+never overwrite. If MUSTBENEW is neither nil nor `excl', that means
+ask for confirmation before overwriting, but do go ahead and
+overwrite the file if the user gives confirmation.
+
+If the MUSTBENEW argument in `write-region' is `excl',
+that means to use a special feature in the `open' system call
+to get an error if the file exists at that time.
+The error reported is `file-already-exists'.
+
+** Function `format' now handles text properties.
+
+Text properties of the format string are applied to the result string.
+If the result string is longer than the format string, text properties
+ending at the end of the format string are extended to the end of the
+result string.
+
+Text properties from string arguments are applied to the result
+string where arguments appear in the result string.
+
+Example:
+
+  (let ((s1 "hello, %s")
+        (s2 "world"))
+     (put-text-property 0 (length s1) 'face 'bold s1)
+     (put-text-property 0 (length s2) 'face 'italic s2)
+     (format s1 s2))
+
+results in a bold-face string with an italic `world' at the end.
+
+** Messages can now be displayed with text properties.
+
+Text properties are handled as described above for function `format'.
+The following example displays a bold-face message with an italic
+argument in it.
+
+  (let ((msg "hello, %s!")
+        (arg "world"))
+     (put-text-property 0 (length msg) 'face 'bold msg)
+     (put-text-property 0 (length arg) 'face 'italic arg)
+     (message msg arg))
+
+** Sound support
+
+Emacs supports playing sound files on GNU/Linux and the free BSDs
+(Voxware driver and native BSD driver, aka as Luigi's driver).
+
+Currently supported file formats are RIFF-WAVE (*.wav) and Sun Audio
+(*.au).  You must configure Emacs with the option `--with-sound=yes'
+to enable sound support.
+
+Sound files can be played by calling (play-sound SOUND).  SOUND is a
+list of the form `(sound PROPERTY...)'.  The function is only defined
+when sound support is present for the system on which Emacs runs.  The
+functions runs `play-sound-functions' with one argument which is the
+sound to play, before playing the sound.
+
+The following sound properties are supported:
+
+- `:file FILE'
+
+FILE is a file name.  If FILE isn't an absolute name, it will be
+searched relative to `data-directory'.
+
+- `:data DATA'
+
+DATA is a string containing sound data.  Either :file or :data
+may be present, but not both.
+
+- `:volume VOLUME'
+
+VOLUME must be an integer in the range 0..100 or a float in the range
+0..1.  This property is optional.
+
+- `:device DEVICE'
+
+DEVICE is a string specifying the system device on which to play the
+sound.  The default device is system-dependent.
+
+Other properties are ignored.
+
+An alternative interface is called as
+(play-sound-file FILE &optional VOLUME DEVICE).
+
+** `multimedia' is a new Finder keyword and Custom group.
+
+** keywordp is a new predicate to test efficiently for an object being
+a keyword symbol.
+
+** Changes to garbage collection
+
+*** The function garbage-collect now additionally returns the number
+of live and free strings.
+
+*** There is a new variable `strings-consed' holding the number of
+strings that have been consed so far.
+
+
+* Lisp-level Display features added after release 2.6 of the Emacs
+Lisp Manual
+
+** The user-option `resize-mini-windows' controls how Emacs resizes
+mini-windows.
+
+** The function `pos-visible-in-window-p' now has a third optional
+argument, PARTIALLY.  If a character is only partially visible, nil is
+returned, unless PARTIALLY is non-nil.
+
+** On window systems, `glyph-table' is no longer used.
+
+** Help strings in menu items are now used to provide `help-echo' text.
+
+** The function `image-size' can be used to determine the size of an
+image.
+
+- Function: image-size SPEC &optional PIXELS FRAME
+
+Return the size of an image as a pair (WIDTH . HEIGHT).
+
+SPEC is an image specification.  PIXELS non-nil means return sizes
+measured in pixels, otherwise return sizes measured in canonical
+character units (fractions of the width/height of the frame's default
+font).  FRAME is the frame on which the image will be displayed.
+FRAME nil or omitted means use the selected frame.
+
+** The function `image-mask-p' can be used to determine if an image
+has a mask bitmap.
+
+- Function: image-mask-p SPEC &optional FRAME
+
+Return t if image SPEC has a mask bitmap.
+FRAME is the frame on which the image will be displayed.  FRAME nil
+or omitted means use the selected frame.
+
+** The function `find-image' can be used to find a usable image
+satisfying one of a list of specifications.
+
+** The STRING argument of `put-image' and `insert-image' is now
+optional.
+
+** Image specifications may contain the property `:ascent center' (see
+below).
+
+
+* New Lisp-level Display features in Emacs 21.1
+
+** The function tty-suppress-bold-inverse-default-colors can be used
+to make Emacs avoid displaying text with bold black foreground on TTYs.
+
+Some terminals, notably PC consoles, emulate bold text by displaying
+text in brighter colors.  On such a console, a bold black foreground
+is displayed in a gray color.  If this turns out to be hard to read on
+your monitor---the problem occurred with the mode line on
+laptops---you can instruct Emacs to ignore the text's boldness, and to
+just display it black instead.
+
+This situation can't be detected automatically.  You will have to put
+a line like
+
+  (tty-suppress-bold-inverse-default-colors t)
+
+in your `.emacs'.
+
+** New face implementation.
+
+Emacs faces have been reimplemented from scratch.  They don't use XLFD
+font names anymore and face merging now works as expected.
+
+*** New faces.
+
+Each face can specify the following display attributes:
+
+   1. Font family or fontset alias name.
+
+   2. Relative proportionate width, aka character set width or set
+   width (swidth), e.g. `semi-compressed'.
+
+   3. Font height in 1/10pt
+
+   4. Font weight, e.g. `bold'.
+
+   5. Font slant, e.g. `italic'.
+
+   6. Foreground color.
+
+   7. Background color.
+
+   8. Whether or not characters should be underlined, and in what color.
+
+   9. Whether or not characters should be displayed in inverse video.
+
+   10. A background stipple, a bitmap.
+
+   11. Whether or not characters should be overlined, and in what color.
+
+   12. Whether or not characters should be strike-through, and in what
+   color.
+
+   13. Whether or not a box should be drawn around characters, its
+   color, the width of the box lines, and 3D appearance.
+
+Faces are frame-local by nature because Emacs allows to define the
+same named face (face names are symbols) differently for different
+frames.  Each frame has an alist of face definitions for all named
+faces.  The value of a named face in such an alist is a Lisp vector
+with the symbol `face' in slot 0, and a slot for each of the face
+attributes mentioned above.
+
+There is also a global face alist `face-new-frame-defaults'.  Face
+definitions from this list are used to initialize faces of newly
+created frames.
+
+A face doesn't have to specify all attributes.  Those not specified
+have a nil value.  Faces specifying all attributes are called
+`fully-specified'.
+
+*** Face merging.
+
+The display style of a given character in the text is determined by
+combining several faces.  This process is called `face merging'.  Any
+aspect of the display style that isn't specified by overlays or text
+properties is taken from the `default' face.  Since it is made sure
+that the default face is always fully-specified, face merging always
+results in a fully-specified face.
+
+*** Face realization.
+
+After all face attributes for a character have been determined by
+merging faces of that character, that face is `realized'.  The
+realization process maps face attributes to what is physically
+available on the system where Emacs runs.  The result is a `realized
+face' in form of an internal structure which is stored in the face
+cache of the frame on which it was realized.
+
+Face realization is done in the context of the charset of the
+character to display because different fonts and encodings are used
+for different charsets.  In other words, for characters of different
+charsets, different realized faces are needed to display them.
+
+Except for composite characters, faces are always realized for a
+specific character set and contain a specific font, even if the face
+being realized specifies a fontset.  The reason is that the result of
+the new font selection stage is better than what can be done with
+statically defined font name patterns in fontsets.
+
+In unibyte text, Emacs' charsets aren't applicable; function
+`char-charset' reports ASCII for all characters, including those >
+0x7f.  The X registry and encoding of fonts to use is determined from
+the variable `face-default-registry' in this case.  The variable is
+initialized at Emacs startup time from the font the user specified for
+Emacs.
+
+Currently all unibyte text, i.e. all buffers with
+`enable-multibyte-characters' nil are displayed with fonts of the same
+registry and encoding `face-default-registry'.  This is consistent
+with the fact that languages can also be set globally, only.
+
+**** Clearing face caches.
+
+The Lisp function `clear-face-cache' can be called to clear face caches
+on all frames.  If called with a non-nil argument, it will also unload
+unused fonts.
+
+*** Font selection.
+
+Font selection tries to find the best available matching font for a
+given (charset, face) combination.  This is done slightly differently
+for faces specifying a fontset, or a font family name.
+
+If the face specifies a fontset name, that fontset determines a
+pattern for fonts of the given charset.  If the face specifies a font
+family, a font pattern is constructed.  Charset symbols have a
+property `x-charset-registry' for that purpose that maps a charset to
+an XLFD registry and encoding in the font pattern constructed.
+
+Available fonts on the system on which Emacs runs are then matched
+against the font pattern.  The result of font selection is the best
+match for the given face attributes in this font list.
+
+Font selection can be influenced by the user.
+
+The user can specify the relative importance he gives the face
+attributes width, height, weight, and slant by setting
+face-font-selection-order (faces.el) to a list of face attribute
+names.  The default is (:width :height :weight :slant), and means
+that font selection first tries to find a good match for the font
+width specified by a face, then---within fonts with that width---tries
+to find a best match for the specified font height, etc.
+
+Setting `face-font-family-alternatives' allows the user to specify
+alternative font families to try if a family specified by a face
+doesn't exist.
+
+Setting `face-font-registry-alternatives' allows the user to specify
+all alternative font registry names to try for a face specifying a
+registry.
+
+Please note that the interpretations of the above two variables are
+slightly different.
+
+Setting face-ignored-fonts allows the user to ignore specific fonts.
+
+
+**** Scalable fonts
+
+Emacs can make use of scalable fonts but doesn't do so by default,
+since the use of too many or too big scalable fonts may crash XFree86
+servers.
+
+To enable scalable font use, set the variable
+`scalable-fonts-allowed'.  A value of nil, the default, means never use
+scalable fonts.  A value of t means any scalable font may be used.
+Otherwise, the value must be a list of regular expressions.  A
+scalable font may then be used if it matches a regular expression from
+that list.  Example:
+
+  (setq scalable-fonts-allowed '("muleindian-2$"))
+
+allows the use of scalable fonts with registry `muleindian-2'.
+
+*** Functions and variables related to font selection.
+
+- Function: x-family-fonts &optional FAMILY FRAME
+
+Return a list of available fonts of family FAMILY on FRAME.  If FAMILY
+is omitted or nil, list all families.  Otherwise, FAMILY must be a
+string, possibly containing wildcards `?' and `*'.
+
+If FRAME is omitted or nil, use the selected frame.  Each element of
+the result is a vector [FAMILY WIDTH POINT-SIZE WEIGHT SLANT FIXED-P
+FULL REGISTRY-AND-ENCODING].  FAMILY is the font family name.
+POINT-SIZE is the size of the font in 1/10 pt.  WIDTH, WEIGHT, and
+SLANT are symbols describing the width, weight and slant of the font.
+These symbols are the same as for face attributes.  FIXED-P is non-nil
+if the font is fixed-pitch.  FULL is the full name of the font, and
+REGISTRY-AND-ENCODING is a string giving the registry and encoding of
+the font.  The result list is sorted according to the current setting
+of the face font sort order.
+
+- Function: x-font-family-list
+
+Return a list of available font families on FRAME.  If FRAME is
+omitted or nil, use the selected frame.  Value is a list of conses
+(FAMILY . FIXED-P) where FAMILY is a font family, and FIXED-P is
+non-nil if fonts of that family are fixed-pitch.
+
+- Variable: font-list-limit
+
+Limit for font matching.  If an integer > 0, font matching functions
+won't load more than that number of fonts when searching for a
+matching font.  The default is currently 100.
+
+*** Setting face attributes.
+
+For the most part, the new face implementation is interface-compatible
+with the old one.  Old face attribute related functions are now
+implemented in terms of the new functions `set-face-attribute' and
+`face-attribute'.
+
+Face attributes are identified by their names which are keyword
+symbols.  All attributes can be set to `unspecified'.
+
+The following attributes are recognized:
+
+`:family'
+
+VALUE must be a string specifying the font family, e.g. ``courier'',
+or a fontset alias name.  If a font family is specified, wild-cards `*'
+and `?' are allowed.
+
+`:width'
+
+VALUE specifies the relative proportionate width of the font to use.
+It must be one of the symbols `ultra-condensed', `extra-condensed',
+`condensed', `semi-condensed', `normal', `semi-expanded', `expanded',
+`extra-expanded', or `ultra-expanded'.
+
+`:height'
+
+VALUE must be either an integer specifying the height of the font to use
+in 1/10 pt, a floating point number specifying the amount by which to
+scale any underlying face, or a function, which is called with the old
+height (from the underlying face), and should return the new height.
+
+`:weight'
+
+VALUE specifies the weight of the font to use.  It must be one of the
+symbols `ultra-bold', `extra-bold', `bold', `semi-bold', `normal',
+`semi-light', `light', `extra-light', `ultra-light'.
+
+`:slant'
+
+VALUE specifies the slant of the font to use.  It must be one of the
+symbols `italic', `oblique', `normal', `reverse-italic', or
+`reverse-oblique'.
+
+`:foreground', `:background'
+
+VALUE must be a color name, a string.
+
+`:underline'
+
+VALUE specifies whether characters in FACE should be underlined.  If
+VALUE is t, underline with foreground color of the face.  If VALUE is
+a string, underline with that color.  If VALUE is nil, explicitly
+don't underline.
+
+`:overline'
+
+VALUE specifies whether characters in FACE should be overlined.  If
+VALUE is t, overline with foreground color of the face.  If VALUE is a
+string, overline with that color.  If VALUE is nil, explicitly don't
+overline.
+
+`:strike-through'
+
+VALUE specifies whether characters in FACE should be drawn with a line
+striking through them.  If VALUE is t, use the foreground color of the
+face.  If VALUE is a string, strike-through with that color.  If VALUE
+is nil, explicitly don't strike through.
+
+`:box'
+
+VALUE specifies whether characters in FACE should have a box drawn
+around them.  If VALUE is nil, explicitly don't draw boxes.  If
+VALUE is t, draw a box with lines of width 1 in the foreground color
+of the face.  If VALUE is a string, the string must be a color name,
+and the box is drawn in that color with a line width of 1.  Otherwise,
+VALUE must be a property list of the form `(:line-width WIDTH
+:color COLOR :style STYLE)'.  If a keyword/value pair is missing from
+the property list, a default value will be used for the value, as
+specified below.  WIDTH specifies the width of the lines to draw; it
+defaults to 1.  COLOR is the name of the color to draw in, default is
+the foreground color of the face for simple boxes, and the background
+color of the face for 3D boxes.  STYLE specifies whether a 3D box
+should be draw.  If STYLE is `released-button', draw a box looking
+like a released 3D button.  If STYLE is `pressed-button' draw a box
+that appears like a pressed button.  If STYLE is nil, the default if
+the property list doesn't contain a style specification, draw a 2D
+box.
+
+`:inverse-video'
+
+VALUE specifies whether characters in FACE should be displayed in
+inverse video. VALUE must be one of t or nil.
+
+`:stipple'
+
+If VALUE is a string, it must be the name of a file of pixmap data.
+The directories listed in the `x-bitmap-file-path' variable are
+searched.  Alternatively, VALUE may be a list of the form (WIDTH
+HEIGHT DATA) where WIDTH and HEIGHT are the size in pixels, and DATA
+is a string containing the raw bits of the bitmap.  VALUE nil means
+explicitly don't use a stipple pattern.
+
+For convenience, attributes `:family', `:width', `:height', `:weight',
+and `:slant' may also be set in one step from an X font name:
+
+`:font'
+
+Set font-related face attributes from VALUE.  VALUE must be a valid
+XLFD font name.  If it is a font name pattern, the first matching font
+is used--this is for compatibility with the behavior of previous
+versions of Emacs.
+
+For compatibility with Emacs 20, keywords `:bold' and `:italic' can
+be used to specify that a bold or italic font should be used.  VALUE
+must be t or nil in that case.  A value of `unspecified' is not allowed."
+
+Please see also the documentation of `set-face-attribute' and
+`defface'.
+
+`:inherit'
+
+VALUE is the name of a face from which to inherit attributes, or a list
+of face names.  Attributes from inherited faces are merged into the face
+like an underlying face would be, with higher priority than underlying faces.
+
+*** Face attributes and X resources
+
+The following X resource names can be used to set face attributes
+from X resources:
+
+  Face attribute	X resource		class
+-----------------------------------------------------------------------
+  :family		attributeFamily .	Face.AttributeFamily
+  :width		attributeWidth		Face.AttributeWidth
+  :height		attributeHeight		Face.AttributeHeight
+  :weight		attributeWeight		Face.AttributeWeight
+  :slant		attributeSlant		Face.AttributeSlant
+   foreground		attributeForeground	Face.AttributeForeground
+  :background		attributeBackground .	Face.AttributeBackground
+  :overline		attributeOverline	Face.AttributeOverline
+  :strike-through	attributeStrikeThrough	Face.AttributeStrikeThrough
+  :box			attributeBox		Face.AttributeBox
+  :underline		attributeUnderline	Face.AttributeUnderline
+  :inverse-video	attributeInverse	Face.AttributeInverse
+  :stipple		attributeStipple	Face.AttributeStipple
+	or		attributeBackgroundPixmap
+						Face.AttributeBackgroundPixmap
+  :font			attributeFont		Face.AttributeFont
+  :bold			attributeBold		Face.AttributeBold
+  :italic		attributeItalic .	Face.AttributeItalic
+  :font			attributeFont		Face.AttributeFont
+
+*** Text property `face'.
+
+The value of the `face' text property can now be a single face
+specification or a list of such specifications.  Each face
+specification can be
+
+1. A symbol or string naming a Lisp face.
+
+2. A property list of the form (KEYWORD VALUE ...) where each
+   KEYWORD is a face attribute name, and VALUE is an appropriate value
+   for that attribute.  Please see the doc string of `set-face-attribute'
+   for face attribute names.
+
+3. Conses of the form (FOREGROUND-COLOR . COLOR) or
+   (BACKGROUND-COLOR . COLOR) where COLOR is a color name.  This is
+   for compatibility with previous Emacs versions.
+
+** Support functions for colors on text-only terminals.
+
+The function `tty-color-define' can be used to define colors for use
+on TTY and MSDOS frames.  It maps a color name to a color number on
+the terminal.  Emacs defines a couple of common color mappings by
+default.  You can get defined colors with a call to
+`defined-colors'.  The function `tty-color-clear' can be
+used to clear the mapping table.
+
+** Unified support for colors independent of frame type.
+
+The new functions `defined-colors', `color-defined-p', `color-values',
+and `display-color-p' work for any type of frame.  On frames whose
+type is neither x nor w32, these functions transparently map X-style
+color specifications to the closest colors supported by the frame
+display.  Lisp programs should use these new functions instead of the
+old `x-defined-colors', `x-color-defined-p', `x-color-values', and
+`x-display-color-p'.  (The old function names are still available for
+compatibility; they are now aliases of the new names.)  Lisp programs
+should no more look at the value of the variable window-system to
+modify their color-related behavior.
+
+The primitives `color-gray-p' and `color-supported-p' also work for
+any frame type.
+
+** Platform-independent functions to describe display capabilities.
+
+The new functions `display-mouse-p', `display-popup-menus-p',
+`display-graphic-p', `display-selections-p', `display-screens',
+`display-pixel-width', `display-pixel-height', `display-mm-width',
+`display-mm-height', `display-backing-store', `display-save-under',
+`display-planes', `display-color-cells', `display-visual-class', and
+`display-grayscale-p' describe the basic capabilities of a particular
+display.  Lisp programs should call these functions instead of testing
+the value of the variables `window-system' or `system-type', or calling
+platform-specific functions such as `x-display-pixel-width'.
+
+The new function `display-images-p' returns non-nil if a particular
+display can display image files.
+
+** The minibuffer prompt is now actually inserted in the minibuffer.
+
+This makes it possible to scroll through the prompt, if you want to.
+To disallow this completely (like previous versions of emacs), customize
+the variable `minibuffer-prompt-properties', and turn on the
+`Inviolable' option.
+
+The function `minibuffer-prompt-end' returns the current position of the
+end of the minibuffer prompt, if the minibuffer is current.
+Otherwise, it returns `(point-min)'.
+
+** New `field' abstraction in buffers.
+
+There is now code to support an abstraction called `fields' in emacs
+buffers.  A field is a contiguous region of text with the same `field'
+property (which can be a text property or an overlay).
+
+Many emacs functions, such as forward-word, forward-sentence,
+forward-paragraph, beginning-of-line, etc., stop moving when they come
+to the boundary between fields; beginning-of-line and end-of-line will
+not let the point move past the field boundary, but other movement
+commands continue into the next field if repeated.  Stopping at field
+boundaries can be suppressed programmatically by binding
+`inhibit-field-text-motion' to a non-nil value around calls to these
+functions.
+
+Now that the minibuffer prompt is inserted into the minibuffer, it is in
+a separate field from the user-input part of the buffer, so that common
+editing commands treat the user's text separately from the prompt.
+
+The following functions are defined for operating on fields:
+
+- Function: constrain-to-field NEW-POS OLD-POS &optional ESCAPE-FROM-EDGE ONLY-IN-LINE INHIBIT-CAPTURE-PROPERTY
+
+Return the position closest to NEW-POS that is in the same field as OLD-POS.
+
+A field is a region of text with the same `field' property.
+If NEW-POS is nil, then the current point is used instead, and set to the
+constrained position if that is different.
+
+If OLD-POS is at the boundary of two fields, then the allowable
+positions for NEW-POS depends on the value of the optional argument
+ESCAPE-FROM-EDGE: If ESCAPE-FROM-EDGE is nil, then NEW-POS is
+constrained to the field that has the same `field' char-property
+as any new characters inserted at OLD-POS, whereas if ESCAPE-FROM-EDGE
+is non-nil, NEW-POS is constrained to the union of the two adjacent
+fields.  Additionally, if two fields are separated by another field with
+the special value `boundary', then any point within this special field is
+also considered to be `on the boundary'.
+
+If the optional argument ONLY-IN-LINE is non-nil and constraining
+NEW-POS would move it to a different line, NEW-POS is returned
+unconstrained.  This useful for commands that move by line, like
+C-n or C-a, which should generally respect field boundaries
+only in the case where they can still move to the right line.
+
+If the optional argument INHIBIT-CAPTURE-PROPERTY is non-nil, and OLD-POS has
+a non-nil property of that name, then any field boundaries are ignored.
+
+Field boundaries are not noticed if `inhibit-field-text-motion' is non-nil.
+
+- Function: delete-field &optional POS
+
+Delete the field surrounding POS.
+A field is a region of text with the same `field' property.
+If POS is nil, the value of point is used for POS.
+
+- Function: field-beginning &optional POS ESCAPE-FROM-EDGE
+
+Return the beginning of the field surrounding POS.
+A field is a region of text with the same `field' property.
+If POS is nil, the value of point is used for POS.
+If ESCAPE-FROM-EDGE is non-nil and POS is at the beginning of its
+field, then the beginning of the *previous* field is returned.
+
+- Function: field-end &optional POS ESCAPE-FROM-EDGE
+
+Return the end of the field surrounding POS.
+A field is a region of text with the same `field' property.
+If POS is nil, the value of point is used for POS.
+If ESCAPE-FROM-EDGE is non-nil and POS is at the end of its field,
+then the end of the *following* field is returned.
+
+- Function: field-string &optional POS
+
+Return the contents of the field surrounding POS as a string.
+A field is a region of text with the same `field' property.
+If POS is nil, the value of point is used for POS.
+
+- Function: field-string-no-properties &optional POS
+
+Return the contents of the field around POS, without text-properties.
+A field is a region of text with the same `field' property.
+If POS is nil, the value of point is used for POS.
+
+** Image support.
+
+Emacs can now display images.  Images are inserted into text by giving
+strings or buffer text a `display' text property containing one of
+(AREA IMAGE) or IMAGE.  The display of the `display' property value
+replaces the display of the characters having that property.
+
+If the property value has the form (AREA IMAGE), AREA must be one of
+`(margin left-margin)', `(margin right-margin)' or `(margin nil)'.  If
+AREA is `(margin nil)', IMAGE will be displayed in the text area of a
+window, otherwise it will be displayed in the left or right marginal
+area.
+
+IMAGE is an image specification.
+
+*** Image specifications
+
+Image specifications are lists of the form `(image PROPS)' where PROPS
+is a property list whose keys are keyword symbols.  Each
+specifications must contain a property `:type TYPE' with TYPE being a
+symbol specifying the image type, e.g. `xbm'.  Properties not
+described below are ignored.
+
+The following is a list of properties all image types share.
+
+`:ascent ASCENT'
+
+ASCENT must be a number in the range 0..100, or the symbol `center'.
+If it is a number, it specifies the percentage of the image's height
+to use for its ascent.
+
+If not specified, ASCENT defaults to the value 50 which means that the
+image will be centered with the base line of the row it appears in.
+
+If ASCENT is `center' the image is vertically centered around a
+centerline which is the vertical center of text drawn at the position
+of the image, in the manner specified by the text properties and
+overlays that apply to the image.
+
+`:margin MARGIN'
+
+MARGIN must be either a number >= 0 specifying how many pixels to put
+as margin around the image, or a pair (X . Y) with X specifying the
+horizontal margin and Y specifying the vertical margin.  Default is 0.
+
+`:relief RELIEF'
+
+RELIEF is analogous to the `:relief' attribute of faces.  Puts a relief
+around an image.
+
+`:conversion ALGO'
+
+Apply an image algorithm to the image before displaying it.
+
+ALGO `laplace' or `emboss' means apply a Laplace or ``emboss''
+edge-detection algorithm to the image.
+
+ALGO `(edge-detection :matrix MATRIX :color-adjust ADJUST)' means
+apply a general edge-detection algorithm.  MATRIX must be either a
+nine-element list or a nine-element vector of numbers.  A pixel at
+position x/y in the transformed image is computed from original pixels
+around that position.  MATRIX specifies, for each pixel in the
+neighborhood of x/y, a factor with which that pixel will influence the
+transformed pixel; element 0 specifies the factor for the pixel at
+x-1/y-1, element 1 the factor for the pixel at x/y-1 etc. as shown
+below.
+
+  (x-1/y-1  x/y-1  x+1/y-1
+   x-1/y    x/y    x+1/y
+   x-1/y+1  x/y+1  x+1/y+1)
+
+The resulting pixel is computed from the color intensity of the color
+resulting from summing up the RGB values of surrounding pixels,
+multiplied by the specified factors, and dividing that sum by the sum
+of the factors' absolute values.
+
+Laplace edge-detection currently uses a matrix of
+
+  (1  0  0
+   0  0  0
+   9  9 -1)
+
+Emboss edge-detection uses a matrix of
+
+  ( 2 -1  0
+   -1  0  1
+    0  1 -2)
+
+ALGO `disabled' means transform the image so that it looks
+``disabled''.
+
+`:mask MASK'
+
+If MASK is `heuristic' or `(heuristic BG)', build a clipping mask for
+the image, so that the background of a frame is visible behind the
+image.  If BG is not specified, or if BG is t, determine the
+background color of the image by looking at the 4 corners of the
+image, assuming the most frequently occurring color from the corners is
+the background color of the image.  Otherwise, BG must be a list `(RED
+GREEN BLUE)' specifying the color to assume for the background of the
+image.
+
+If MASK is nil, remove a mask from the image, if it has one.  Images
+in some formats include a mask which can be removed by specifying
+`:mask nil'.
+
+`:file FILE'
+
+Load image from FILE.  If FILE is not absolute after expanding it,
+search for the image in `data-directory'.  Some image types support
+building images from data.  When this is done, no `:file' property
+may be present in the image specification.
+
+`:data DATA'
+
+Get image data from DATA.  (As of this writing, this is not yet
+supported for image type `postscript').  Either :file or :data may be
+present in an image specification, but not both.  All image types
+support strings as DATA, some types allow additional types of DATA.
+
+*** Supported image types
+
+**** XBM, image type `xbm'.
+
+XBM images don't require an external library.  Additional image
+properties supported are:
+
+`:foreground FG'
+
+FG must be a string specifying the image foreground color, or nil
+meaning to use the default.  Default is the frame's foreground color.
+
+`:background BG'
+
+BG must be a string specifying the image background color, or nil
+meaning to use the default.  Default is the frame's background color.
+
+XBM images can be constructed from data instead of file.  In this
+case, the image specification must contain the following properties
+instead of a `:file' property.
+
+`:width WIDTH'
+
+WIDTH specifies the width of the image in pixels.
+
+`:height HEIGHT'
+
+HEIGHT specifies the height of the image in pixels.
+
+`:data DATA'
+
+DATA must be either
+
+   1. a string large enough to hold the bitmap data, i.e. it must
+   have a size >= (WIDTH + 7) / 8 * HEIGHT
+
+   2. a bool-vector of size >= WIDTH * HEIGHT
+
+   3. a vector of strings or bool-vectors, one for each line of the
+   bitmap.
+
+   4. a string that's an in-memory XBM file.  Neither width nor
+   height may be specified in this case because these are defined
+   in the file.
+
+**** XPM, image type `xpm'
+
+XPM images require the external library `libXpm', package
+`xpm-3.4k.tar.gz', version 3.4k or later.  Make sure the library is
+found when Emacs is configured by supplying appropriate paths via
+`--x-includes' and `--x-libraries'.
+
+Additional image properties supported are:
+
+`:color-symbols SYMBOLS'
+
+SYMBOLS must be a list of pairs (NAME . COLOR), with NAME being the
+name of color as it appears in an XPM file, and COLOR being an X color
+name.
+
+XPM images can be built from memory instead of files.  In that case,
+add a `:data' property instead of a `:file' property.
+
+The XPM library uses libz in its implementation so that it is able
+to display compressed images.
+
+**** PBM, image type `pbm'
+
+PBM images don't require an external library.  Color, gray-scale and
+mono images are supported.  Additional image properties supported for
+mono images are:
+
+`:foreground FG'
+
+FG must be a string specifying the image foreground color, or nil
+meaning to use the default.  Default is the frame's foreground color.
+
+`:background FG'
+
+BG must be a string specifying the image background color, or nil
+meaning to use the default.  Default is the frame's background color.
+
+**** JPEG, image type `jpeg'
+
+Support for JPEG images requires the external library `libjpeg',
+package `jpegsrc.v6a.tar.gz', or later.  There are no additional image
+properties defined.
+
+**** TIFF, image type `tiff'
+
+Support for TIFF images requires the external library `libtiff',
+package `tiff-v3.4-tar.gz', or later.  There are no additional image
+properties defined.
+
+**** GIF, image type `gif'
+
+Support for GIF images requires the external library `libungif', package
+`libungif-4.1.0', or later.
+
+Additional image properties supported are:
+
+`:index INDEX'
+
+INDEX must be an integer >= 0.  Load image number INDEX from a
+multi-image GIF file.  If INDEX is too large, the image displays
+as a hollow box.
+
+This could be used to implement limited support for animated GIFs.
+For example, the following function displays a multi-image GIF file
+at point-min in the current buffer, switching between sub-images
+every 0.1 seconds.
+
+(defun show-anim (file max)
+  "Display multi-image GIF file FILE which contains MAX subimages."
+  (display-anim (current-buffer) file 0 max t))
+
+(defun display-anim (buffer file idx max first-time)
+  (when (= idx max)
+    (setq idx 0))
+  (let ((img (create-image file nil nil :index idx)))
+    (save-excursion
+      (set-buffer buffer)
+      (goto-char (point-min))
+      (unless first-time (delete-char 1))
+      (insert-image img "x"))
+    (run-with-timer 0.1 nil 'display-anim buffer file (1+ idx) max nil)))
+
+**** PNG, image type `png'
+
+Support for PNG images requires the external library `libpng',
+package `libpng-1.0.2.tar.gz', or later.  There are no additional image
+properties defined.
+
+**** Ghostscript, image type `postscript'.
+
+Additional image properties supported are:
+
+`:pt-width WIDTH'
+
+WIDTH is width of the image in pt (1/72 inch).  WIDTH must be an
+integer.  This is a required property.
+
+`:pt-height HEIGHT'
+
+HEIGHT specifies the height of the image in pt (1/72 inch).  HEIGHT
+must be a integer.  This is an required property.
+
+`:bounding-box BOX'
+
+BOX must be a list or vector of 4 integers giving the bounding box of
+the PS image, analogous to the `BoundingBox' comment found in PS
+files.  This is an required property.
+
+Part of the Ghostscript interface is implemented in Lisp.  See
+lisp/gs.el.
+
+*** Lisp interface.
+
+The variable `image-types' contains a list of those image types
+which are supported in the current configuration.
+
+Images are stored in an image cache and removed from the cache when
+they haven't been displayed for `image-cache-eviction-delay seconds.
+The function `clear-image-cache' can be used to clear the image cache
+manually.  Images in the cache are compared with `equal', i.e. all
+images with `equal' specifications share the same image.
+
+*** Simplified image API, image.el
+
+The new Lisp package image.el contains functions that simplify image
+creation and putting images into text.  The function `create-image'
+can be used to create images.  The macro `defimage' can be used to
+define an image based on available image types.  The functions
+`put-image' and `insert-image' can be used to insert an image into a
+buffer.
+
+** Display margins.
+
+Windows can now have margins which are used for special text
+and images.
+
+To give a window margins, either set the buffer-local variables
+`left-margin-width' and `right-margin-width', or call
+`set-window-margins'.  The function `window-margins' can be used to
+obtain the current settings.  To make `left-margin-width' and
+`right-margin-width' take effect, you must set them before displaying
+the buffer in a window, or use `set-window-buffer' to force an update
+of the display margins.
+
+You can put text in margins by giving it a `display' text property
+containing a pair of the form `(LOCATION . VALUE)', where LOCATION is
+one of `left-margin' or `right-margin' or nil.  VALUE can be either a
+string, an image specification or a stretch specification (see later
+in this file).
+
+** Help display
+
+Emacs displays short help messages in the echo area, when the mouse
+moves over a tool-bar item or a piece of text that has a text property
+`help-echo'.  This feature also applies to strings in the mode line
+that have a `help-echo' property.
+
+If the value of the `help-echo' property is a function, that function
+is called with three arguments WINDOW, OBJECT and POSITION.  WINDOW is
+the window in which the help was found.
+
+If OBJECT is a buffer, POS is the position in the buffer where the
+`help-echo' text property was found.
+
+If OBJECT is an overlay, that overlay has a `help-echo' property, and
+POS is the position in the overlay's buffer under the mouse.
+
+If OBJECT is a string (an overlay string or a string displayed with
+the `display' property), POS is the position in that string under the
+mouse.
+
+If the value of the `help-echo' property is neither a function nor a
+string, it is evaluated to obtain a help string.
+
+For tool-bar and menu-bar items, their key definition is used to
+determine the help to display.  If their definition contains a
+property `:help FORM', FORM is evaluated to determine the help string.
+For tool-bar items without a help form, the caption of the item is
+used as help string.
+
+The hook `show-help-function' can be set to a function that displays
+the help string differently.  For example, enabling a tooltip window
+causes the help display to appear there instead of in the echo area.
+
+** Vertical fractional scrolling.
+
+The display of text in windows can be scrolled smoothly in pixels.
+This is useful, for example, for making parts of large images visible.
+
+The function `window-vscroll' returns the current value of vertical
+scrolling, a non-negative fraction of the canonical character height.
+The function `set-window-vscroll' can be used to set the vertical
+scrolling value.  Here is an example of how these function might be
+used.
+
+  (global-set-key [A-down]
+    #'(lambda ()
+        (interactive)
+	(set-window-vscroll (selected-window)
+                            (+ 0.5 (window-vscroll)))))
+  (global-set-key [A-up]
+    #'(lambda ()
+	(interactive)
+	(set-window-vscroll (selected-window)
+	                    (- (window-vscroll) 0.5)))))
+
+** New hook `fontification-functions'.
+
+Functions from `fontification-functions' are called from redisplay
+when it encounters a region of text that is not yet fontified.  This
+variable automatically becomes buffer-local when set.  Each function
+is called with one argument, POS.
+
+At least one of the hook functions should fontify one or more
+characters starting at POS in the current buffer.  It should mark them
+as fontified by giving them a non-nil value of the `fontified' text
+property.  It may be reasonable for these functions to check for the
+`fontified' property and not put it back on, but they do not have to.
+
+** Tool bar support.
+
+Emacs supports a tool bar at the top of a frame under X.  The frame
+parameter `tool-bar-lines' (X resource "toolBar", class "ToolBar")
+controls how may lines to reserve for the tool bar.  A zero value
+suppresses the tool bar.  If the value is non-zero and
+`auto-resize-tool-bars' is non-nil the tool bar's size will be changed
+automatically so that all tool bar items are visible.
+
+*** Tool bar item definitions
+
+Tool bar items are defined using `define-key' with a prefix-key
+`tool-bar'.  For example `(define-key global-map [tool-bar item1] ITEM)'
+where ITEM is a list `(menu-item CAPTION BINDING PROPS...)'.
+
+CAPTION is the caption of the item, If it's not a string, it is
+evaluated to get a string.  The caption is currently not displayed in
+the tool bar, but it is displayed if the item doesn't have a `:help'
+property (see below).
+
+BINDING is the tool bar item's binding.  Tool bar items with keymaps as
+binding are currently ignored.
+
+The following properties are recognized:
+
+`:enable FORM'.
+
+FORM is evaluated and specifies whether the tool bar item is enabled
+or disabled.
+
+`:visible FORM'
+
+FORM is evaluated and specifies whether the tool bar item is displayed.
+
+`:filter FUNCTION'
+
+FUNCTION is called with one parameter, the same list BINDING in which
+FUNCTION is specified as the filter.  The value FUNCTION returns is
+used instead of BINDING to display this item.
+
+`:button (TYPE SELECTED)'
+
+TYPE must be one of `:radio' or `:toggle'.  SELECTED is evaluated
+and specifies whether the button is selected (pressed) or not.
+
+`:image IMAGES'
+
+IMAGES is either a single image specification or a vector of four
+image specifications.  If it is a vector, this table lists the
+meaning of each of the four elements:
+
+   Index	Use when item is
+   ----------------------------------------
+     0		enabled and selected
+     1		enabled and deselected
+     2		disabled and selected
+     3		disabled and deselected
+
+If IMAGE is a single image specification, a Laplace edge-detection
+algorithm is used on that image to draw the image in disabled state.
+
+`:help HELP-STRING'.
+
+Gives a help string to display for the tool bar item.  This help
+is displayed when the mouse is moved over the item.
+
+The function `toolbar-add-item' is a convenience function for adding
+toolbar items generally, and `tool-bar-add-item-from-menu' can be used
+to define a toolbar item with a binding copied from an item on the
+menu bar.
+
+The default bindings use a menu-item :filter to derive the tool-bar
+dynamically from variable `tool-bar-map' which may be set
+buffer-locally to override the global map.
+
+*** Tool-bar-related variables.
+
+If `auto-resize-tool-bar' is non-nil, the tool bar will automatically
+resize to show all defined tool bar items.  It will never grow larger
+than 1/4 of the frame's size.
+
+If `auto-raise-tool-bar-buttons' is non-nil, tool bar buttons will be
+raised when the mouse moves over them.
+
+You can add extra space between tool bar items by setting
+`tool-bar-button-margin' to a positive integer specifying a number of
+pixels, or a pair of integers (X . Y) specifying horizontal and
+vertical margins .  Default is 1.
+
+You can change the shadow thickness of tool bar buttons by setting
+`tool-bar-button-relief' to an integer.  Default is 3.
+
+*** Tool-bar clicks with modifiers.
+
+You can bind commands to clicks with control, shift, meta etc. on
+a tool bar item.  If
+
+  (define-key global-map [tool-bar shell]
+    '(menu-item "Shell" shell
+		:image (image :type xpm :file "shell.xpm")))
+
+is the original tool bar item definition, then
+
+  (define-key global-map [tool-bar S-shell] 'some-command)
+
+makes a binding to run `some-command' for a shifted click on the same
+item.
+
+** Mode line changes.
+
+*** Mouse-sensitive mode line.
+
+The mode line can be made mouse-sensitive by displaying strings there
+that have a `local-map' text property.  There are three ways to display
+a string with a `local-map' property in the mode line.
+
+1. The mode line spec contains a variable whose string value has
+a `local-map' text property.
+
+2. The mode line spec contains a format specifier (e.g. `%12b'), and
+that format specifier has a `local-map' property.
+
+3. The mode line spec contains a list containing `:eval FORM'.  FORM
+is evaluated.  If the result is a string, and that string has a
+`local-map' property.
+
+The same mechanism is used to determine the `face' and `help-echo'
+properties of strings in the mode line.  See `bindings.el' for an
+example.
+
+*** If a mode line element has the form `(:eval FORM)', FORM is
+evaluated and the result is used as mode line element.
+
+*** You can suppress mode-line display by setting the buffer-local
+variable mode-line-format to nil.
+
+*** A headerline can now be displayed at the top of a window.
+
+This mode line's contents are controlled by the new variable
+`header-line-format' and `default-header-line-format' which are
+completely analogous to `mode-line-format' and
+`default-mode-line-format'.  A value of nil means don't display a top
+line.
+
+The appearance of top mode lines is controlled by the face
+`header-line'.
+
+The function `coordinates-in-window-p' returns `header-line' for a
+position in the header-line.
+
+** Text property `display'
+
+The `display' text property is used to insert images into text,
+replace text with other text, display text in marginal area, and it is
+also used to control other aspects of how text displays.  The value of
+the `display' property should be a display specification, as described
+below, or a list or vector containing display specifications.
+
+*** Replacing text, displaying text in marginal areas
+
+To replace the text having the `display' property with some other
+text, use a display specification of the form `(LOCATION STRING)'.
+
+If LOCATION is `(margin left-margin)', STRING is displayed in the left
+marginal area, if it is `(margin right-margin)', it is displayed in
+the right marginal area, and if LOCATION is `(margin nil)' STRING
+is displayed in the text.  In the latter case you can also use the
+simpler form STRING as property value.
+
+*** Variable width and height spaces
+
+To display a space of fractional width or height, use a display
+specification of the form `(LOCATION STRECH)'.  If LOCATION is
+`(margin left-margin)', the space is displayed in the left marginal
+area, if it is `(margin right-margin)', it is displayed in the right
+marginal area, and if LOCATION is `(margin nil)' the space is
+displayed in the text.  In the latter case you can also use the
+simpler form STRETCH as property value.
+
+The stretch specification STRETCH itself is a list of the form `(space
+PROPS)', where PROPS is a property list which can contain the
+properties described below.
+
+The display of the fractional space replaces the display of the
+characters having the `display' property.
+
+- :width WIDTH
+
+Specifies that the space width should be WIDTH times the normal
+character width.  WIDTH can be an integer or floating point number.
+
+- :relative-width FACTOR
+
+Specifies that the width of the stretch should be computed from the
+first character in a group of consecutive characters that have the
+same `display' property.  The computation is done by multiplying the
+width of that character by FACTOR.
+
+- :align-to HPOS
+
+Specifies that the space should be wide enough to reach HPOS.  The
+value HPOS is measured in units of the normal character width.
+
+Exactly one of the above properties should be used.
+
+- :height HEIGHT
+
+Specifies the height of the space, as HEIGHT, measured in terms of the
+normal line height.
+
+- :relative-height FACTOR
+
+The height of the space is computed as the product of the height
+of the text having the `display' property and FACTOR.
+
+- :ascent ASCENT
+
+Specifies that ASCENT percent of the height of the stretch should be
+used for the ascent of the stretch, i.e. for the part above the
+baseline.  The value of ASCENT must be a non-negative number less or
+equal to 100.
+
+You should not use both `:height' and `:relative-height' together.
+
+*** Images
+
+A display specification for an image has the form `(LOCATION
+. IMAGE)', where IMAGE is an image specification.  The image replaces,
+in the display, the characters having this display specification in
+their `display' text property.  If LOCATION is `(margin left-margin)',
+the image will be displayed in the left marginal area, if it is
+`(margin right-margin)' it will be displayed in the right marginal
+area, and if LOCATION is `(margin nil)' the image will be displayed in
+the text.  In the latter case you can also use the simpler form IMAGE
+as display specification.
+
+*** Other display properties
+
+- (space-width FACTOR)
+
+Specifies that space characters in the text having that property
+should be displayed FACTOR times as wide as normal; FACTOR must be an
+integer or float.
+
+- (height HEIGHT)
+
+Display text having this property in a font that is smaller or larger.
+
+If HEIGHT is a list of the form `(+ N)', where N is an integer, that
+means to use a font that is N steps larger.  If HEIGHT is a list of
+the form `(- N)', that means to use a font that is N steps smaller.  A
+``step'' is defined by the set of available fonts; each size for which
+a font is available counts as a step.
+
+If HEIGHT is a number, that means to use a font that is HEIGHT times
+as tall as the frame's default font.
+
+If HEIGHT is a symbol, it is called as a function with the current
+height as argument.  The function should return the new height to use.
+
+Otherwise, HEIGHT is evaluated to get the new height, with the symbol
+`height' bound to the current specified font height.
+
+- (raise FACTOR)
+
+FACTOR must be a number, specifying a multiple of the current
+font's height.  If it is positive, that means to display the characters
+raised.  If it is negative, that means to display them lower down.  The
+amount of raising or lowering is computed without taking account of the
+`height' subproperty.
+
+*** Conditional display properties
+
+All display specifications can be conditionalized.  If a specification
+has the form `(when CONDITION . SPEC)', the specification SPEC applies
+only when CONDITION yields a non-nil value when evaluated.  During the
+evaluation, `object' is bound to the string or buffer having the
+conditional display property; `position' and `buffer-position' are
+bound to the position within `object' and the buffer position where
+the display property was found, respectively.  Both positions can be
+different when object is a string.
+
+The normal specification consisting of SPEC only is equivalent to
+`(when t . SPEC)'.
+
+** New menu separator types.
+
+Emacs now supports more than one menu separator type.  Menu items with
+item names consisting of dashes only (including zero dashes) are
+treated like before.  In addition, the following item names are used
+to specify other menu separator types.
+
+- `--no-line' or `--space', or `--:space', or `--:noLine'
+
+No separator lines are drawn, but a small space is inserted where the
+separator occurs.
+
+- `--single-line' or `--:singleLine'
+
+A single line in the menu's foreground color.
+
+- `--double-line' or `--:doubleLine'
+
+A double line in the menu's foreground color.
+
+- `--single-dashed-line' or `--:singleDashedLine'
+
+A single dashed line in the menu's foreground color.
+
+- `--double-dashed-line' or `--:doubleDashedLine'
+
+A double dashed line in the menu's foreground color.
+
+- `--shadow-etched-in' or `--:shadowEtchedIn'
+
+A single line with 3D sunken appearance.  This is the form
+displayed for item names consisting of dashes only.
+
+- `--shadow-etched-out' or `--:shadowEtchedOut'
+
+A single line with 3D raised appearance.
+
+- `--shadow-etched-in-dash' or `--:shadowEtchedInDash'
+
+A single dashed line with 3D sunken appearance.
+
+- `--shadow-etched-out-dash' or `--:shadowEtchedOutDash'
+
+A single dashed line with 3D raise appearance.
+
+- `--shadow-double-etched-in' or `--:shadowDoubleEtchedIn'
+
+Two lines with 3D sunken appearance.
+
+- `--shadow-double-etched-out' or `--:shadowDoubleEtchedOut'
+
+Two lines with 3D raised appearance.
+
+- `--shadow-double-etched-in-dash' or `--:shadowDoubleEtchedInDash'
+
+Two dashed lines with 3D sunken appearance.
+
+- `--shadow-double-etched-out-dash' or `--:shadowDoubleEtchedOutDash'
+
+Two dashed lines with 3D raised appearance.
+
+Under LessTif/Motif, the last four separator types are displayed like
+the corresponding single-line separators.
+
+** New frame parameters for scroll bar colors.
+
+The new frame parameters `scroll-bar-foreground' and
+`scroll-bar-background' can be used to change scroll bar colors.
+Their value must be either a color name, a string, or nil to specify
+that scroll bars should use a default color.  For toolkit scroll bars,
+default colors are toolkit specific.  For non-toolkit scroll bars, the
+default background is the background color of the frame, and the
+default foreground is black.
+
+The X resource name of these parameters are `scrollBarForeground'
+(class ScrollBarForeground) and `scrollBarBackground' (class
+`ScrollBarBackground').
+
+Setting these parameters overrides toolkit specific X resource
+settings for scroll bar colors.
+
+** You can set `redisplay-dont-pause' to a non-nil value to prevent
+display updates from being interrupted when input is pending.
+
+** Changing a window's width may now change its window start if it
+starts on a continuation line.  The new window start is computed based
+on the window's new width, starting from the start of the continued
+line as the start of the screen line with the minimum distance from
+the original window start.
+
+** The variable `hscroll-step' and the functions
+`hscroll-point-visible' and `hscroll-window-column' have been removed
+now that proper horizontal scrolling is implemented.
+
+** Windows can now be made fixed-width and/or fixed-height.
+
+A window is fixed-size if its buffer has a buffer-local variable
+`window-size-fixed' whose value is not nil.  A value of `height' makes
+windows fixed-height, a value of `width' makes them fixed-width, any
+other non-nil value makes them both fixed-width and fixed-height.
+
+The following code makes all windows displaying the current buffer
+fixed-width and fixed-height.
+
+  (set (make-local-variable 'window-size-fixed) t)
+
+A call to enlarge-window on a window gives an error if that window is
+fixed-width and it is tried to change the window's width, or if the
+window is fixed-height, and it is tried to change its height.  To
+change the size of a fixed-size window, bind `window-size-fixed'
+temporarily to nil, for example
+
+  (let ((window-size-fixed nil))
+     (enlarge-window 10))
+
+Likewise, an attempt to split a fixed-height window vertically,
+or a fixed-width window horizontally results in a error.
+
+** The cursor-type frame parameter is now supported on MS-DOS
+terminals.  When Emacs starts, it by default changes the cursor shape
+to a solid box, as it does on Unix.  The `cursor-type' frame parameter
+overrides this as it does on Unix, except that the bar cursor is
+horizontal rather than vertical (since the MS-DOS display doesn't
+support a vertical-bar cursor).
+
+
+
+----------------------------------------------------------------------
+Copyright information:
+
+Copyright (C) 2000, 2001, 2002, 2003, 2006
+	  Free Software Foundation, Inc.
+
+   Permission is granted to anyone to make or distribute verbatim copies
+   of this document as received, in any medium, provided that the
+   copyright notice and this permission notice are preserved,
+   thus giving the recipient permission to redistribute in turn.
+
+   Permission is granted to distribute modified versions
+   of this document, or of portions of it,
+   under the above conditions, provided also that they
+   carry prominent notices stating who last changed them.
+
+Local variables:
+mode: outline
+paragraph-separate: "[ 	]*$"
+end:
--- a/etc/ONEWS	Sat Jun 03 22:51:32 2006 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6485 +0,0 @@
-GNU Emacs NEWS -- history of user-visible changes.  1992.
-Copyright (C) 1995, 2001 Free Software Foundation, Inc.
-See the end for copying conditions.
-
-For older news, see the file ONEWS.4.
-
-* Emacs 19.34 is a bug-fix release with no user-visible changes.
-
-* Changes in Emacs 19.33.
-
-** Bibtex mode no longer turns on Auto Fill automatically.  (No major
-mode should do that--it is the user's choice.)
-
-** The variable normal-auto-fill-function specifies the function to
-use for auto-fill-function, if and when Auto Fill is turned on.
-Major modes can set this locally to alter how Auto Fill works.
-
-* Editing Changes in Emacs 19.32
-
-** C-x f with no argument now signals an error.
-To set the fill column at the current column, use C-u C-x f.
-
-** Expanding dynamic abbrevs with M-/ is now smarter about case
-conversion.  If you type the abbreviation with mixed case, and it
-matches the beginning of the expansion including case, then the
-expansion is copied verbatim.  Using SPC M-/ to copy an additional
-word always copies it verbatim except when the previous copied word is
-all caps.
-
-** On a non-windowing terminal, which can display only one Emacs frame
-at a time, creating a new frame with C-x 5 2 also selects that frame.
-
-When using a display that can show multiple frames at once, C-x 5 2
-does make the frame visible, but does not select it.  This is the same
-as in previous Emacs versions.
-
-** You can use C-x 5 2 to create multiple frames on MSDOS, just as on a
-non-X terminal on Unix.  Of course, only one frame is visible at any
-time, since your terminal doesn't have the ability to display multiple
-frames.
-
-** On Windows, set win32-pass-alt-to-system to a non-nil value
-if you would like tapping the Alt key to invoke the Windows menu.
-This feature is not enabled by default; since the Alt key is also the
-Meta key, it is too easy and painful to activate this feature by
-accident.
-
-** The command apply-macro-to-region-lines repeats the last defined
-keyboard macro once for each complete line within the current region.
-It does this line by line, by moving point to the beginning of that
-line and then executing the macro.
-
-This command is not new, but was never documented before.
-
-** You can now use Mouse-1 to place the region around a string constant
-(something surrounded by doublequote characters or other delimiter
-characters of like syntax) by double-clicking on one of the delimiting
-characters.
-
-** Font Lock mode
-
-*** Font Lock support modes
-
-Font Lock can be configured to use Fast Lock mode and Lazy Lock mode (see
-below) in a flexible way.  Rather than adding the appropriate function to the
-hook font-lock-mode-hook, you can use the new variable font-lock-support-mode
-to control which modes have Fast Lock mode or Lazy Lock mode turned on when
-Font Lock mode is enabled.
-
-For example, to use Fast Lock mode when Font Lock mode is turned on, put:
-
- (setq font-lock-support-mode 'fast-lock-mode)
-
-in your ~/.emacs.
-
-*** lazy-lock
-
-The lazy-lock package speeds up Font Lock mode by making fontification occur
-only when necessary, such as when a previously unfontified part of the buffer
-becomes visible in a window.  When you create a buffer with Font Lock mode and
-Lazy Lock mode turned on, the buffer is not fontified.  When certain events
-occur (such as scrolling), Lazy Lock makes sure that the visible parts of the
-buffer are fontified.  Lazy Lock also defers on-the-fly fontification until
-Emacs has been idle for a given amount of time.
-
-To use this package, put in your ~/.emacs:
-
- (setq font-lock-support-mode 'lazy-lock-mode)
-
-To control the package behavior, see the documentation for `lazy-lock-mode'.
-
-** Changes in BibTeX mode.
-
-*** For all entries allow spaces and tabs between opening brace or
-paren and key.
-
-*** Non-escaped double-quoted characters (as in `Sch"of') are now
-supported.
-
-** Gnus changes.
-
-Gnus, the Emacs news reader, has undergone further rewriting.  Many new
-commands and variables have been added.  There should be no
-significant incompatibilities between this Gnus version and the
-previously released version, except in the message composition area.
-
-Below is a list of the more user-visible changes.  Coding changes
-between Gnus 5.1 and 5.2 are more extensive.
-
-*** A new message composition mode is used.  All old customization
-variables for mail-mode, rnews-reply-mode and gnus-msg are now
-obsolete.
-
-*** Gnus is now able to generate "sparse" threads -- threads where
-missing articles are represented by empty nodes.
-
-    (setq gnus-build-sparse-threads 'some)
-
-*** Outgoing articles are stored on a special archive server.
-
-    To disable this:  (setq gnus-message-archive-group nil)
-
-*** Partial thread regeneration now happens when articles are
-referred.
-
-*** Gnus can make use of GroupLens predictions:
-
-    (setq gnus-use-grouplens t)
-
-*** A trn-line tree buffer can be displayed.
-
-    (setq gnus-use-trees t)
-
-*** An nn-like pick-and-read minor mode is available for the summary
-buffers.
-
-    (add-hook 'gnus-summary-mode-hook 'gnus-pick-mode)
-
-*** In binary groups you can use a special binary minor mode:
-
-    `M-x gnus-binary-mode'
-
-*** Groups can be grouped in a folding topic hierarchy.
-
-    (add-hook 'gnus-group-mode-hook 'gnus-topic-mode)
-
-*** Gnus can re-send and bounce mail.
-
-    Use the `S D r' and `S D b'.
-
-*** Groups can now have a score, and bubbling based on entry frequency
-is possible.
-
-    (add-hook 'gnus-summary-exit-hook 'gnus-summary-bubble-group)
-
-*** Groups can be process-marked, and commands can be performed on
-groups of groups.
-
-*** Caching is possible in virtual groups.
-
-*** nndoc now understands all kinds of digests, mail boxes, rnews news
-batches, ClariNet briefs collections, and just about everything else.
-
-*** Gnus has a new backend (nnsoup) to create/read SOUP packets.
-
-*** The Gnus cache is much faster.
-
-*** Groups can be sorted according to many criteria.
-
-    For instance: (setq gnus-group-sort-function 'gnus-group-sort-by-rank)
-
-*** New group parameters have been introduced to set list-address and
-expiration times.
-
-*** All formatting specs allow specifying faces to be used.
-
-*** There are several more commands for setting/removing/acting on
-process marked articles on the `M P' submap.
-
-*** The summary buffer can be limited to show parts of the available
-articles based on a wide range of criteria.  These commands have been
-bound to keys on the `/' submap.
-
-*** Articles can be made persistent -- as an alternative to saving
-articles with the `*' command.
-
-*** All functions for hiding article elements are now toggles.
-
-*** Article headers can be buttonized.
-
-    (add-hook 'gnus-article-display-hook 'gnus-article-add-buttons-to-head)
-
-*** All mail backends support fetching articles by Message-ID.
-
-*** Duplicate mail can now be treated properly.  See the
-`nnmail-treat-duplicates' variable.
-
-*** All summary mode commands are available directly from the article
-buffer.
-
-*** Frames can be part of `gnus-buffer-configuration'.
-
-*** Mail can be re-scanned by a daemonic process.
-
-*** Gnus can make use of NoCeM files to filter spam.
-
-    (setq gnus-use-nocem t)
-
-*** Groups can be made permanently visible.
-
-    (setq gnus-permanently-visible-groups "^nnml:")
-
-*** Many new hooks have been introduced to make customizing easier.
-
-*** Gnus respects the Mail-Copies-To header.
-
-*** Threads can be gathered by looking at the References header.
-
-    (setq gnus-summary-thread-gathering-function
-          'gnus-gather-threads-by-references)
-
-*** Read articles can be stored in a special backlog buffer to avoid
-refetching.
-
-    (setq gnus-keep-backlog 50)
-
-*** A clean copy of the current article is always stored in a separate
-buffer to allow easier treatment.
-
-*** Gnus can suggest where to save articles.  See `gnus-split-methods'.
-
-*** Gnus doesn't have to do as much prompting when saving.
-
-    (setq gnus-prompt-before-saving t)
-
-*** gnus-uu can view decoded files asynchronously while fetching
-articles.
-
-    (setq gnus-uu-grabbed-file-functions 'gnus-uu-grab-view)
-
-*** Filling in the article buffer now works properly on cited text.
-
-*** Hiding cited text adds buttons to toggle hiding, and how much
-cited text to hide is now customizable.
-
-    (setq gnus-cited-lines-visible 2)
-
-*** Boring headers can be hidden.
-
-    (add-hook 'gnus-article-display-hook 'gnus-article-hide-boring-headers)
-
-*** Default scoring values can now be set from the menu bar.
-
-*** Further syntax checking of outgoing articles have been added.
-
-The Gnus manual has been expanded.  It explains all these new features
-in greater detail.
-
-* Lisp Changes in Emacs 19.32
-
-** The function set-visited-file-name now accepts an optional
-second argument NO-QUERY.  If it is non-nil, then the user is not
-asked for confirmation in the case where the specified file already
-exists.
-
-** The variable print-length applies to printing vectors and bitvectors,
-as well as lists.
-
-** The new function keymap-parent returns the parent keymap
-of a given keymap.
-
-** The new function set-keymap-parent specifies a new parent for a
-given keymap.  The arguments are KEYMAP and PARENT.  PARENT must be a
-keymap or nil.
-
-** Sometimes menu keymaps use a command name, a symbol, which is really
-an automatically generated alias for some other command, the "real"
-name.  In such a case, you should give that alias symbol a non-nil
-menu-alias property.  That property tells the menu system to look for
-equivalent keys for the real name instead of equivalent keys for the
-alias.
-
-* Editing Changes in Emacs 19.31
-
-** Freedom of the press restricted in the United States.
-
-Emacs has been censored in accord with the Communications Decency Act.
-This includes removing some features of the doctor program.  That law
-was described by its supporters as a ban on pornography, but it bans
-far more than that.  The Emacs distribution has never contained any
-pornography, but parts of it were nonetheless prohibited.
-
-For information on US government censorship of the Internet, and what
-you can do to bring back freedom of the press, see the web site
-`http://www.vtw.org/'.
-
-** A note about C mode indentation customization.
-
-The old (Emacs 19.29) ways of specifying a C indentation style
-do not normally work in the new implementation of C mode.
-It has its own methods of customizing indentation, which are
-much more powerful than the old C mode.  See the Editing Programs
-chapter of the manual for details.
-
-However, you can load the library cc-compat to make the old
-customization variables take effect.
-
-** Marking with the mouse.
-
-When you mark a region with the mouse, the region now remains
-highlighted until the next input event, regardless of whether you are
-using M-x transient-mark-mode.
-
-** Improved Windows NT/95 support.
-
-*** Emacs now supports scroll bars on Windows NT and Windows 95.
-
-*** Emacs now supports subprocesses on Windows 95.  (Subprocesses used
-to work on NT only and not on 95.)
-
-*** There are difficulties with subprocesses, though, due to problems
-in Windows, beyond the control of Emacs.  They work fine as long as
-you run Windows applications.  The problems arise when you run a DOS
-application in a subprocesses.  Since current shells run as DOS
-applications, these problems are significant.
-
-If you run a DOS application in a subprocess, then the application is
-likely to busy-wait, which means that your machine will be 100% busy.
-However, if you don't mind the temporary heavy load, the subprocess
-will work OK as long as you tell it to terminate before you start any
-other DOS application as a subprocess.
-
-Emacs is unable to terminate or interrupt a DOS subprocess.
-You have to do this by providing input directly to the subprocess.
-
-If you run two DOS applications at the same time in two separate
-subprocesses, even if one of them is asynchronous, you will probably
-have to reboot your machine--until then, it will remain 100% busy.
-Windows simply does not cope when one Windows process tries to run two
-separate DOS subprocesses.  Typing CTL-ALT-DEL and then choosing
-Shutdown seems to work although it may take a few minutes.
-
-** M-x resize-minibuffer-mode.
-
-This command, not previously mentioned in NEWS, toggles a mode in
-which the minibuffer window expands to show as many lines as the
-minibuffer contains.
-
-** `title' frame parameter and resource.
-
-The `title' X resource now specifies just the frame title, nothing else.
-It does not affect the name used for looking up other X resources.
-It works by setting the new `title' frame parameter, which likewise
-affects just the displayed title of the frame.
-
-The `name' parameter continues to do what it used to do:
-it specifies the frame name for looking up X resources,
-and also serves as the default for the displayed title
-when the `title' parameter is unspecified or nil.
-
-** Emacs now uses the X toolkit by default, if you have a new
-enough version of X installed (X11R5 or newer).
-
-** When you compile Emacs with the Motif widget set, Motif handles the
-F10 key by activating the menu bar.  To avoid confusion, the usual
-Emacs binding of F10 is replaced with a no-op when using Motif.
-
-If you want to be able to use F10 in Emacs, you can rebind the Motif
-menubar to some other key which you don't use.  To do so, add
-something like this to your X resources file.  This example rebinds
-the Motif menu bar activation key to S-F12:
-
-   Emacs*defaultVirtualBindings:  osfMenuBar : Shift<Key>F12
-
-** In overwrite mode, DEL now inserts spaces in most cases
-to replace the characters it "deletes".
-
-** The Rmail summary now shows the number of lines in each message.
-
-** Rmail has a new command M-x unforward-rmail-message, which extracts
-a forwarded message from the message that forwarded it.  To use it,
-select a message which contains a forwarded message and then type the command.
-It inserts the forwarded message as a separate Rmail message
-immediately after the selected one.
-
-This command also undoes the textual modifications that are standardly
-made, as part of forwarding, by Rmail and other mail reader programs.
-
-** Turning off saving of .saves-... files in your home directory.
-
-Each Emacs session writes a file named .saves-... in your home
-directory to record which files M-x recover-session should recover.
-If you exit Emacs normally with C-x C-c, it deletes that file.  If
-Emacs or the operating system crashes, the file remains for M-x
-recover-session.
-
-You can turn off the writing of these files by setting
-auto-save-list-file-name to nil.  If you do this, M-x recover-session
-will not work.
-
-Some previous Emacs versions failed to delete these files even on
-normal exit.  This is fixed now.  If you are thinking of turning off
-this feature because of past experiences with versions that had this
-bug, it would make sense to check whether you still want to do so
-now that the bug is fixed.
-
-** Changes to Version Control (VC)
-
-There is a new variable, vc-follow-symlinks.  It indicates what to do
-when you visit a link to a file that is under version control.
-Editing the file through the link bypasses the version control system,
-which is dangerous and probably not what you want.
-
-If this variable is t, VC follows the link and visits the real file,
-telling you about it in the echo area.  If it is `ask' (the default),
-VC asks for confirmation whether it should follow the link.  If nil,
-the link is visited and a warning displayed.
-
-** iso-acc.el now lets you specify a choice of language.
-Languages include "latin-1" (the default) and "latin-2" (which
-is designed for entering ISO Latin-2 characters).
-
-There are also choices for specific human languages such as French and
-Portuguese.  These are subsets of Latin-1, which differ in that they
-enable only the accent characters needed for particular language.
-The other accent characters, not needed for the chosen language,
-remain normal.
-
-** Posting articles and sending mail now has M-TAB completion on various
-header fields (Newsgroups, To, CC, ...).
-
-Completion in the Newsgroups header depends on the list of groups
-known to your news reader.  Completion in the Followup-To header
-offers those groups which are in the Newsgroups header, since
-Followup-To usually just holds one of those.
-
-Completion in fields that hold mail addresses works based on the list
-of local users plus your aliases.  Additionally, if your site provides
-a mail directory or a specific host to use for any unrecognized user
-name, you can arrange to query that host for completion also.  (See the
-documentation of variables `mail-directory-process' and
-`mail-directory-stream'.)
-
-** A greatly extended sgml-mode offers new features such as (to be configured)
-skeletons with completing read for tags and attributes, typing named
-characters including optionally all 8bit characters, making tags invisible
-with optional alternate display text, skipping and deleting tag(pair)s.
-
-Note: since Emacs' syntax feature cannot limit the special meaning of ', " and
-- to inside <>, for some texts the result, especially of font locking, may be
-wrong (see `sgml-specials' if you get wrong results).
-
-The derived html-mode configures this with tags and attributes more or
-less HTML3ish.  It also offers optional quick keys like C-c 1 for
-headline or C-c u for unordered list (see `html-quick-keys').  Edit /
-Text Properties / Face or M-g combinations create tags as applicable.
-Outline minor mode is supported and level 1 font-locking tries to
-fontify tag contents (which only works when they fit on one line, due
-to a limitation in font-lock).
-
-External viewing via browse-url can occur automatically upon saving.
-
-** M-x imenu-add-to-menubar now adds to the menu bar for the current
-buffer only.  If you want to put an Imenu item in the menu bar for all
-buffers that use a particular major mode, use the mode hook, as in
-this example:
-
-    (add-hook 'emacs-lisp-mode-hook
-	      '(lambda () (imenu-add-to-menubar "Index")))
-
-** Changes in BibTeX mode.
-
-*** Field names may now contain digits, hyphens, and underscores.
-
-*** Font Lock mode is now supported.
-
-*** bibtex-make-optional-field is no longer interactive.
-
-*** If bibtex-maintain-sorted-entries is non-nil, inserting new
-entries is now done with a faster algorithm.  However, inserting
-will fail in this case if the buffer contains invalid entries or
-isn't in sorted order, so you should finish each entry with C-c C-c
-(bibtex-close-entry) after you have inserted or modified it.
-The default value of bibtex-maintain-sorted-entries is nil.
-
-*** Function `show-all' is no longer bound to a key, since C-u C-c C-q
-does the same job.
-
-*** Entries with quotes inside quote-delimited fields (as `author =
-"Stefan Sch{\"o}f"') are now supported.
-
-*** Case in field names doesn't matter anymore when searching for help
-text.
-
-** Font Lock mode
-
-*** Global Font Lock mode
-
-Font Lock mode can be turned on globally, in buffers that support it, by the
-new command global-font-lock-mode.  You can use the new variable
-font-lock-global-modes to control which modes have Font Lock mode automagically
-turned on.  By default, this variable is set so that Font Lock mode is turned
-on globally where the buffer mode supports it.
-
-For example, to automagically turn on Font Lock mode where supported, put:
-
- (global-font-lock-mode t)
-
-in your ~/.emacs.
-
-*** Local Refontification
-
-In Font Lock mode, editing a line automatically refontifies that line only.
-However, if your change alters the syntactic context for following lines,
-those lines remain incorrectly fontified.  To refontify them, use the new
-command M-g M-g (font-lock-fontify-block).
-
-In certain major modes, M-g M-g refontifies the entire current function.
-(The variable font-lock-mark-block-function controls how to find the
-current function.)  In other major modes, M-g M-g refontifies 16 lines
-above and below point.
-
-With a prefix argument N, M-g M-g refontifies N lines above and below point.
-
-** Follow mode
-
-Follow mode is a new minor mode combining windows showing the same
-buffer into one tall "virtual window".  The windows are typically two
-side-by-side windows.  Follow mode makes them scroll together as if
-they were a unit.  To use it, go to a frame with just one window,
-split it into two side-by-side windows using C-x 3, and then type M-x
-follow-mode.
-
-M-x follow-mode turns off Follow mode if it is already enabled.
-
-To display two side-by-side windows and activate Follow mode, use the
-command M-x follow-delete-other-windows-and-split.
-
-** hide-show changes.
-
-The hooks hs-hide-hooks and hs-show-hooks have been renamed
-to hs-hide-hook and hs-show-hook, to follow the convention for
-normal hooks.
-
-** Simula mode now has a menu containing the most important commands.
-The new command simula-indent-exp is bound to C-M-q.
-
-** etags can now handle programs written in Erlang.  Files are
-recognised by the extensions .erl and .hrl.  The tagged lines are
-those that begin a function, record, or macro.
-
-** MSDOS Changes
-
-*** It is now possible to compile Emacs with the version 2 of DJGPP.
-Compilation with DJGPP version 1 also still works.
-
-*** The documentation of DOS-specific aspects of Emacs was rewritten
-and expanded; see the ``MS-DOS'' node in the on-line docs.
-
-*** Emacs now uses ~ for backup file names, not .bak.
-
-*** You can simulate mouse-3 on two-button mice by simultaneously
-pressing both mouse buttons.
-
-*** A number of packages and commands which previously failed or had
-restricted functionality on MS-DOS, now work.  The most important ones
-are:
-
-**** Printing (both with `M-x lpr-buffer' and with `ps-print' package)
-now works.
-
-**** `Ediff' works (in a single-frame mode).
-
-**** `M-x display-time' can be used on MS-DOS (due to the new
-implementation of Emacs timers, see below).
-
-**** `Dired' supports Unix-style shell wildcards.
-
-**** The `c-macro-expand' command now works as on other platforms.
-
-**** `M-x recover-session' works.
-
-**** `M-x list-colors-display' displays all the available colors.
-
-**** The `TPU-EDT' package works.
-
-* Lisp changes in Emacs 19.31.
-
-** The function using-unix-filesystems on Windows NT and Windows 95
-tells Emacs to read and write files assuming that they reside on a
-remote Unix filesystem.  No CR/LF translation is done on any files in
-this case.  Invoking using-unix-filesystems with t activates this
-behavior, and invoking it with any other value deactivates it.
-
-** Change in system-type and system-configuration values.
-
-The value of system-type on a Linux-based GNU system is now `lignux',
-not `linux'.  This means that some programs which use `system-type'
-need to be changed.  The value of `system-configuration' will also
-be different.
-
-It is generally recommended to use `system-configuration' rather
-than `system-type'.
-
-See the file LINUX-GNU in this directory for more about this.
-
-** The functions shell-command and dired-call-process
-now run file name handlers for default-directory, if it has them.
-
-** Undoing the deletion of text now restores the positions of markers
-that pointed into or next to the deleted text.
-
-** Timers created with run-at-time now work internally to Emacs, and
-no longer use a separate process.  Therefore, they now work more
-reliably and can be used for shorter time delays.
-
-The new function run-with-timer is a convenient way to set up a timer
-to run a specified amount of time after the present.  A call looks
-like this:
-
-  (run-with-timer SECS REPEAT FUNCTION ARGS...)
-
-SECS says how many seconds should elapse before the timer happens.
-It may be an integer or a floating point number.  When the timer
-becomes ripe, the action is to call FUNCTION with arguments ARGS.
-
-REPEAT gives the interval for repeating the timer (measured in
-seconds).  It may be an integer or a floating point number.  nil or 0
-means don't repeat at all--call FUNCTION just once.
-
-*** with-timeout provides an easy way to do something but give
-up if too much time passes.
-
-  (with-timeout (SECONDS TIMEOUT-FORMS...) BODY...)
-
-This executes BODY, but gives up after SECONDS seconds.
-If it gives up, it runs the TIMEOUT-FORMS and returns the value
-of the last one of them.  Normally it returns the value of the last
-form in BODY.
-
-*** You can now arrange to call a function whenever Emacs is idle for
-a certain length of time.  To do this, call run-with-idle-timer.  A
-call looks like this:
-
-  (run-with-idle-timer SECS REPEAT FUNCTION ARGS...)
-
-SECS says how many seconds of idleness should elapse before the timer
-runs.  It may be an integer or a floating point number.  When the
-timer becomes ripe, the action is to call FUNCTION with arguments
-ARGS.
-
-Emacs becomes idle whenever it finishes executing a keyboard or mouse
-command.  It remains idle until it receives another keyboard or mouse
-command.
-
-REPEAT, if non-nil, means this timer should be activated again each
-time Emacs becomes idle and remains idle for SECS seconds The timer
-does not repeat if Emacs *remains* idle; it runs at most once after
-each time Emacs becomes idle.
-
-If REPEAT is nil, the timer runs just once, the first time Emacs is
-idle for SECS seconds.
-
-*** post-command-idle-hook is now obsolete; you shouldn't use it at
-all, because it interferes with the idle timer mechanism.  If your
-programs use post-command-idle-hook, convert them to use idle timers
-instead.
-
-*** y-or-n-p-with-timeout lets you ask a question but give up if
-there is no answer within a certain time.
-
-  (y-or-n-p-with-timeout PROMPT SECONDS DEFAULT-VALUE)
-
-asks the question PROMPT (just like y-or-n-p).  If the user answers
-within SECONDS seconds, it returns the answer that the user gave.
-Otherwise it gives up after SECONDS seconds, and returns DEFAULT-VALUE.
-
-** Minor change to `encode-time': you can now pass more than seven
-arguments.  If you do that, the first six arguments have the usual
-meaning, the last argument is interpreted as the time zone, and the
-arguments in between are ignored.
-
-This means that it works to use the list returned by `decode-time' as
-the list of arguments for `encode-time'.
-
-** The default value of load-path now includes the directory
-/usr/local/share/emacs/VERSION/site-lisp In addition to
-/usr/local/share/emacs/site-lisp.  You can use this new directory for
-site-specific Lisp packages that belong with a particular Emacs
-version.
-
-It is not unusual for a Lisp package that works well in one Emacs
-version to cause trouble in another.  Sometimes packages need updating
-for incompatible changes; sometimes they look at internal data that
-has changed; sometimes the package has been installed in Emacs itself
-and the installed version should be used.  Whatever the reason for the
-problem, this new feature makes it easier to solve.
-
-** When your program contains a fixed file name (like .completions or
-.abbrev.defs), the file name usually needs to be different on operating
-systems with limited file name syntax.
-
-Now you can avoid ad-hoc conditionals by using the function
-convert-standard-filename to convert the file name to a proper form
-for each operating system.  Here is an example of use, from the file
-completions.el:
-
-(defvar save-completions-file-name
-        (convert-standard-filename "~/.completions")
-  "*The filename to save completions to.")
-
-This sets the variable save-completions-file-name to a value that
-depends on the operating system, because the definition of
-convert-standard-filename depends on the operating system.  On
-Unix-like systems, it returns the specified file name unchanged.  On
-MS-DOS, it adapts the name to fit the limitations of that system.
-
-** The interactive spec N now returns the numeric prefix argument
-rather than the raw prefix argument.  (It still reads a number using the
-minibuffer if there is no prefix argument at all.)
-
-** When a process is deleted, this no longer disconnects the process
-marker from its buffer position.
-
-** The variable garbage-collection-messages now controls whether
-Emacs displays a message at the beginning and end of garbage collection.
-The default is nil, meaning there are no messages.
-
-** The variable debug-ignored-errors specifies certain kinds of errors
-that should not enter the debugger.  Its value is a list of error
-condition symbols and/or regular expressions.  If the error has any
-of the condition symbols listed, or if any of the regular expressions
-matches the error message, then that error does not enter the debugger,
-regardless of the value of debug-on-error.
-
-This variable is initialized to match certain common but uninteresting
-errors that happen often during editing.
-
-** The new function error-message-string converts an error datum
-into its error message.  The error datum is what condition-case
-puts into the variable, to describe the error that happened.
-
-** Anything that changes which buffer appears in a given window
-now runs the window-scroll-functions for that window.
-
-** The new function get-buffer-window-list returns a list of windows displaying
-a buffer.  The function is called with the buffer (a buffer object or a buffer
-name) and two optional arguments specifying the minibuffer windows and frames
-to search.  Therefore this function takes optional args like next-window etc.,
-and not get-buffer-window.
-
-** buffer-substring now runs the hook buffer-access-fontify-functions,
-calling each function with two arguments--the range of the buffer
-being accessed.  buffer-substring-no-properties does not call them.
-
-If you use this feature, you should set the variable
-buffer-access-fontified-property to a non-nil symbol, which is a
-property name.  Then, if all the characters in the buffer range have a
-non-nil value for that property, the buffer-access-fontify-functions
-are not called.  When called, these functions should put a non-nil
-property on the text that they fontify, so that they won't get called
-over and over for the same text.
-
-** Changes in lisp-mnt.el
-
-*** The lisp-mnt package can now recognize file headers that are written
-in the formats used by the `what' command and the RCS `ident' command:
-
-;; @(#) HEADER: text
-;; $HEADER: text $
-
-in addition to the normal
-
-;; HEADER: text
-
-*** The commands lm-verify and lm-synopsis are now interactive.  lm-verify
-checks that the library file has proper sections and headers, and
-lm-synopsis extracts first line "synopsis'"information.
-
-
-
-* Editing Changes in Emacs 19.30.
-
-** Be sure to recompile your byte-compiled Emacs Lisp files
-if you last compiled them with Emacs 19.28 or earlier.
-You can use M-x byte-force-recompile to recompile all the .elc files
-in a specified directory.
-
-** Emacs now provides multiple-frame support on Windows NT
-and Windows 95.
-
-** M-x column-number-mode toggles a minor mode which displays
-the current column number in the mode line.
-
-** Line Number mode is now enabled by default.
-
-** M-x what-line now displays the line number in the accessible
-portion of the buffer as well as the line number in the full buffer,
-when narrowing is in effect.
-
-** If you type a M-x command that has an equivalent key binding,
-the equivalent is shown in the minibuffer before the command executes.
-This feature is enabled by default for the sake of beginning users.
-You can turn the feature off by setting suggest-key-bindings to nil.
-
-** The menu bar is now visible on text-only terminals.  To choose a
-command from the menu bar when you have no mouse, type M-`
-(Meta-Backquote) or F10.  To turn off menu bar display,
-do (menu-bar-mode -1).
-
-** Whenever you invoke a minibuffer, it appears in the minibuffer
-window that the current frame uses.
-
-Emacs can only use one minibuffer window at a time.  If you activate
-the minibuffer while a minibuffer window is active in some other
-frame, the outer minibuffer window disappears while the inner one is
-active.
-
-** Echo area messages always appear in the minibuffer window that the
-current frame uses.  If a minibuffer is active in some other frame,
-the echo area message does not hide it even temporarily.
-
-** The minibuffer now has a menu-bar menu.  You can use it to exit or
-abort the minibuffer, or to ask for completion.
-
-** Dead-key and composite character processing is done in the standard
-X11R6 manner (through the default "input method" using the
-/usr/lib/X11/locale/*/Compose databases of key combinations).  I.e. if
-it works in xterm, it should also work in emacs now.
-
-** Mouse changes
-
-*** You can now use the mouse when running Emacs in an xterm.
-Use M-x xterm-mouse-mode to let emacs take control over the mouse.
-
-*** C-mouse-1 now once again provides a menu of buffers to select.
-S-mouse-1 is now the way to select a default font for the frame.
-
-*** There is a new mouse-scroll-min-lines variable to control the
-minimum number of lines scrolled by dragging the mouse outside a
-window's edge.
-
-*** Dragging mouse-1 on a vertical line that separates windows
-now moves the line, thus changing the widths of the two windows.
-(This feature is available only if you don't have vertical scroll bars.
-If you do use them, a scroll bar separates two side-by-side windows.)
-
-*** Double-click mouse-1 on a character with "symbol" syntax (such as
-underscore, in C mode) selects the entire symbol surrounding that
-character.  (Double-click mouse-1 on a letter selects a whole word.)
-
-** When incremental search wraps around to the beginning (or end) of
-the buffer, if you keep on searching until you go past the original
-starting point of the search, the echo area changes from "Wrapped" to
-"Overwrapped".  That tells you that you are revisiting matches that
-you have already seen.
-
-** Filling changes.
-
-*** If the variable colon-double-space is non-nil, the explicit fill
-commands put two spaces after a colon.
-
-*** Auto-Fill mode now supports Adaptive Fill mode just as the
-explicit fill commands do.  The variable adaptive-fill-regexp
-specifies a regular expression to match text at the beginning of
-a line that should be the fill prefix.
-
-*** Adaptive Fill mode can take a fill prefix from the first line of a
-paragraph, *provided* that line is not a paragraph-starter line.
-
-Paragraph-starter lines are indented lines that start a new
-paragraph because they are indented.  This indentation shouldn't
-be copied to additional lines.
-
-Whether indented lines are paragraph lines depends on the value of the
-variable paragraph-start.  Some major modes set this; you can set it
-by hand or in mode hooks as well.  For editing text in which paragraph
-first lines are not indented, and which contains paragraphs in which
-all lines are indented, you should use Indented Text mode or arrange
-for paragraph-start not to match these lines.
-
-*** You can specify more complex ways of choosing a fill prefix
-automatically by setting `adaptive-fill-function'.  This function
-is called with point after the left margin of a line, and it should
-return the appropriate fill prefix based on that line.
-If it returns nil, that means it sees no fill prefix in that line.
-
-** Gnus changes.
-
-Gnus, the Emacs news reader, has been rewritten and expanded.  Most
-things that worked with the old version should still work with the new
-version.  Code that relies heavily on Gnus internals is likely to
-fail, though.
-
-*** Incompatibilities with the old GNUS.
-
-**** All interactive commands have kept their names, but many internal
-functions have changed names.
-
-**** The summary mode gnus-uu commands have been moved from the `C-c
-C-v' keymap to the `X' keymap.
-
-**** There can now be several summary buffers active at once.
-Variables that are relevant to each summary buffer are buffer-local to
-that buffer.
-
-**** Old hilit code doesn't work at all.  Gnus performs its own
-highlighting based not only on what's visible in the buffer, but on
-other data structures.
-
-**** Old packages like `expire-kill' will no longer work.
-
-**** `C-c C-l' in the group buffer no longer switches to a different
-buffer, but instead lists killed groups in the group buffer.
-
-*** New features.
-
-**** The look of all buffers can be changed by setting format-like
-variables.
-
-**** Local spool and several NNTP servers can be used at once.
-
-**** Groups can be combined into virtual groups.
-
-**** Different mail formats can be read much the same way as one would
-read newsgroups.  All the mail backends implement mail expiry schemes.
-
-**** Gnus can use various strategies for gathering threads that have
-lost their roots (thereby gathering loose sub-threads into one thread)
-or it can go back and retrieve enough headers to build a complete
-thread.
-
-**** Killed groups can be read.
-
-**** Gnus can do partial group updates - you do not have to retrieve
-the entire active file just to check for new articles in a few groups.
-
-**** Gnus implements a sliding scale of subscribedness to groups.
-
-**** You can score articles according to any number of criteria.  You
-can get Gnus to score articles for you using adaptive scoring.
-
-**** Gnus maintains a dribble buffer that is auto-saved the normal
-Emacs manner, so it should be difficult to lose much data on what you
-have read if your machine should go down.
-
-**** Gnus now has its own startup file (`.gnus.el') to avoid
-cluttering up the `.emacs' file.
-
-**** You can set the process mark on both groups and articles and
-perform operations on all the marked items.
-
-**** You can grep through a subset of groups and create a group from
-the results.
-
-**** You can list subsets of groups using matches on group names or
-group descriptions.
-
-**** You can browse foreign servers and subscribe to groups from those
-servers.
-
-**** Gnus can pre-fetch articles asynchronously on a second connection
-to the servers.
-
-**** You can cache articles locally.
-
-**** Gnus can fetch FAQs to and descriptions of groups.
-
-**** Digests (and other files) can be used as the basis for groups.
-
-**** Articles can be highlighted and customized.
-
-** Changes to Version Control (VC)
-
-*** General changes (all backends).
-
-VC directory listings (C-x v d) are now kept up to date when you do a
-vc-next-action (C-x v v) on the marked files.  The `g' command updates
-the buffer properly.  `=' in a VC dired buffer produces a version
-control diff, not an ordinary diff.
-
-*** CVS changes.
-
-Under CVS, you no longer need to type C-x C-q before you can edit a
-file.  VC doesn't write-protect unmodified buffers anymore; you can
-freely change them at any time.  The mode line keeps track of the
-file status.
-
-If you do want unmodified files to be write-protected, set your
-CVSREAD environment variable.  VC sees this and behaves accordingly;
-that will give you the behavior of Emacs 19.29, similar to that under
-RCS and SCCS.  In this mode, if the variable vc-mistrust-permissions
-is nil, VC learns the modification state from the file permissions.
-When setting CVSREAD for the first time, you should check out the
-whole module anew, so that the file permissions are set correctly.
-
-VC also works with remote repositories now.  When you visit a file, it
-doesn't run "cvs status" anymore, so there shouldn't be any long delays.
-
-Directory listings under VC/CVS have been enhanced.  Type C-x v d, and
-you get a list of all files in or below the current directory that are
-not up-to-date.  The actual status (modified, merge, conflict, ...) is
-displayed for each file.  If you give a prefix argument (C-u C-x v d),
-up-to-date files are also listed.  You can mark any number of files,
-and execute the next logical version control command on them (C-x v v).
-
-*** Starting a new branch.
-
-If you try to lock a version that is not the latest on its branch,
-VC asks for confirmation in the minibuffer.  If you say no, it offers
-to lock the latest version instead.
-
-*** RCS non-strict locking.
-
-VC can now handle RCS non-strict locking, too.  In this mode, working
-files are always writable and you needn't lock the file before making
-changes, similar to the default mode under CVS.  To enable non-strict
-locking for a file, use the "rcs -U" command.
-
-*** Sharing RCS master files.
-
-If you share RCS subdirs with other users (through symbolic links),
-and you always want to work on the latest version, set
-vc-consult-headers to nil and vc-mistrust-permissions to `t'.
-Then you see the state of the *latest* version on the mode line, not
-that of your working file.  When you do a check out, VC overwrites
-your working file with the latest version from the master.
-
-*** RCS customization.
-
-There is a new variable vc-consult-headers.  If it is t (the default),
-VC searches for RCS headers in working files (like `$Id: ONEWS,v 1.8 2003/02/04 14:30:40 lektu Exp $') and
-determines the state of the file from them, not from the master file.
-This is fast and more reliable when you use branches.  (The variable
-was already present in Emacs 19.29, but didn't get mentioned in the
-NEWS.)
-
-** Calendar changes.
-
-*** New calendars supported: Chinese, Coptic, Ethiopic
-
-Here are the commands for converting to and from these calendars:
-
-   gC: calendar-goto-chinese-date
-   gk: calendar-goto-coptic-date
-   ge: calendar-goto-ethiopic-date
-
-   pC: calendar-print-chinese-date
-   pk: calendar-print-coptic-date
-   pe: calendar-print-ethiopic-date
-
-*** Printed calendars
-
-Calendar mode now has commands to produce fancy printed calendars via
-LaTeX.  You can ask for a calendar for one or more days, weeks, months
-or years.  The commands all start with `t'; see the manual for a list
-of them.
-
-*** New sexp diary entry type
-
-Reminders that apply in the days leading up to an event.
-
-** The CC-mode package now provides the default C and C++ modes.
-See the manual for documentation of its features.
-
-** The uniquify package chooses buffer names differently when you
-visit multiple files with the same name (in different directories).
-
-** RMAIL now always uses the movemail program when it renames an
-inbox file, so that it can interlock properly with the mailer
-no matter where it is delivering mail.
-
-** tex-start-of-header and tex-end-of-header are now regular expressions,
-not strings.
-
-** To enable automatic uncompression of compressed files,
-type M-x auto-compression-mode.  (This command used to be called
-toggle-auto-compression, but was not documented before.)  In Lisp,
-you can do
-
-   (auto-compression-mode 1)
-
-to turn the mode on.
-
-** The new pc-select package emulates the key bindings for cutting and
-pasting, and selection of regions, found in Windows, Motif, and the
-Macintosh.
-
-** Help buffers now use a special major mode, Help mode.  This mode
-normally turns on View mode; it also provides a hook, help-mode-hook,
-which you can use for other customization.
-
-** Apropos now uses faces for enhanced legibility.  It now describes
-symbol properties as well as their function definitions and variable
-values.  You can use Mouse-2 or RET to get more information about a
-function definition, variable, or property.
-
-** Font Lock mode
-
-*** Supports Scheme, TCL and Help modes
-
-For example, to automatically turn on Font Lock mode in the *Help*
-buffer, put:
-
- (add-hook 'help-mode-hook 'turn-on-font-lock)
-
-in your ~/.emacs.
-
-*** Enhanced fontification
-
-The structure of font-lock-keywords is extended to allow "anchored" keywords.
-Typically, a keyword item of font-lock-keywords comprises a regexp to search
-for and information to specify how the regexp should be highlighted.  However,
-the highlighting information is extended so that it can be another keyword
-item.  This keyword item, its regexp and highlighting information, is processed
-before resuming with the keyword item of which it is part.
-
-For example, a typical keyword item might be:
-
- ("\\<anchor\\>" (0 anchor-face))
-
-which fontifies each occurrence of the discrete word "anchor" in the value of
-the variable anchor-face.  However, the highlighting information can be used to
-fontify text that is anchored to the word "anchor".  For example:
-
- ("\\<anchor\\>" (0 anchor-face) ("\\=[ ,]*\\(item\\)" nil nil (1 item-face)))
-
-which fontifies each occurrence of "anchor" as above, but for each occurrence
-of "anchor", each occurrence of "item", in any following comma separated list,
-is fontified in the value of the variable item-face.  Thus the "item" text is
-anchored to the "anchor" text.  See the variable documentation for further
-information.
-
-This feature is used to extend the level and quality of fontification in a
-number of modes.  For example, C/C++ modes now have level 3 decoration that
-includes the fontification of variable and function names in declaration lists.
-In this instance, the "anchor" described in the above example is a type or
-class name, and an "item" is a variable or function name.
-
-*** Fontification levels
-
-The variables font-lock-maximum-decoration and font-lock-maximum-size are
-extended to specify levels and sizes for specific modes.  The variable
-font-lock-maximum-decoration specifies the preferred level of fontification for
-modes that provide multiple levels (typically from "subdued" to "gaudy").  The
-variable font-lock-maximum-size specifies the buffer size for which buffer
-fontification is suppressed when Font Lock mode is turned on (typically because
-it would take too long).
-
-These variables can now specify values for individual modes, by supplying
-lists of mode names and values.  For example, to use the above mentioned level
-3 decoration for buffers in C/C++ modes, and default decoration otherwise, put:
-
- (setq font-lock-maximum-decoration '((c-mode . 3) (c++-mode . 3)))
-
-in your ~/.emacs.  Maximum buffer size values for individual modes are
-specified in the same way with the variable font-lock-maximum-size.
-
-*** Font Lock configuration
-
-The mechanism to provide default settings for Font Lock mode are the variables
-font-lock-defaults and font-lock-maximum-decoration.  Typically, you should
-only need to change the value of font-lock-maximum-decoration.  However, to
-support Font Lock mode for buffers in modes that currently do not support Font
-Lock mode, you should set a buffer local value of font-lock-defaults for that
-mode, typically via its mode hook.
-
-These variables are used by Font Lock mode to set the values of the variables
-font-lock-keywords, font-lock-keywords-only, font-lock-syntax-table,
-font-lock-beginning-of-syntax-function and font-lock-keywords-case-fold-search.
-
-You need not set these variables directly, and should not set them yourself
-since the underlining mechanism may change in future.
-
-** Archive mode is now the default mode for various sorts of
-archive files (files whose names end with .arc, .lzh, .zip, and .zoo).
-
-** You can automatically update the years in copyright notice by
-means of (add-hook 'write-file-hooks 'copyright-update).
-Optionally it can update the GPL version as well.
-
-** Scripts of various languages (Shell, AWK, Perl, makefiles ...) can
-be automatically provided with a magic number and be made executable
-by their respective modes under control of various user variables.
-The mode must call (executable-set-magic "perl") or
-(executable-set-magic "make" "-f").  The latter for example has no
-effect on [Mm]akefile.
-
-** Shell script mode now supports over 15 different shells.  The new
-command C-c ! executes the region, and optionally beginning of script
-as well, by passing them to the shell.
-
-Cases such as `sh' being a `bash' are now accounted for.
-Fontification now also does variables, the magic number and all
-builtin commands.  Shell script mode no longer mingles `tab-width' and
-indentation style.  The variable `sh-tab-width' has been renamed to
-`sh-indentation'.  Empty lines are now indented like previous
-non-empty line, rather than just previous line.
-
-The annoying $ variable prompting has been eliminated.  Instead, shell
-script mode uses `comint-dynamic-completion' for commands, variables
-and filenames.
-
-** Two-column mode now automatically scrolls both buffers together,
-which makes it possible to eliminate the special scrolling commands
-that used to do so.
-
-The commands that operate in two-column mode are no longer bound to
-keys outside that mode.  f2 o will now position at the same point in
-associated buffer.
-
-the new command f2 RET inserts a newline in both buffers, at point and
-at the corresponding position in the associated buffer.
-
-** Skeleton commands now work smoothly as abbrev definitions.  The
-element < no longer exists, ' is a new element.
-
-** The autoinsert insert facility for prefilling empty files as soon
-as they are found has been extended to accommodate skeletons or calling
-functions.  See the function auto-insert.
-
-** TPU-edt Changes
-
-Loading tpu-edt no longer turns on tpu-edt mode.  In fact, it is no
-longer necessary to explicitly load tpu-edt.  All you need to do to
-turn on tpu-edt is run the tpu-edt function.  Here's how to run
-tpu-edt instead of loading the file:
-
-  Running Emacs:   Type      emacs -f tpu-edt
-                    not      emacs -l tpu-edt
-
-  Within Emacs:    Type      M-x tpu-edt <ret>
-                    not      M-x load-library <ret> tpu-edt <ret>
-
-  In .emacs:       Use       (tpu-edt)
-                   not       (load "tpu-edt")
-
-The default name of the tpu-edt X key definition file has changed from
-~/.tpu-gnu-keys to ~/.tpu-keys.  If you don't rename the file yourself,
-tpu-edt will offer to rename it the first time you invoke it under
-x-windows.
-
-** MS-DOS Enhancements:
-
-*** Better mouse control by adding the following functions [in dosfns.c]
-msdos-mouse-enable, msdos-mouse-disable, msdos-mouse-init.
-
-*** If another foreground/background color than the default is setup in
-your ~/_emacs, then the screen briefly flickers with the default
-colors before changing to the colors you have specified.  To avoid
-this, the EMACSCOLORS environment variable exists.  It shall be
-defined as a string with the following elements:
-
-    set EMACSCOLORS=fb;fb
-
-The first set of "fb" defines the initial foreground and background
-colors using standard dos color numbers (0=black,.., 7=white).
-If specified, the second set of "fb" defines the colors which are
-restored when you leave emacs.
-
-*** The new SUSPEND environment variable can now be set as the shell to
-use when suspending emacs.  This can be used to override the stupid
-limitation on the environment of sub-shells in MS-DOS (they are just
-large enough to hold the currently defined variables, not leaving
-room for more); to overcome this limitation, add this to autoexec.bat:
-
-    set SUSPEND=%COMSPEC% /E:2000
-
-** The escape character can now be displayed on X frames.  Try
-this:
-    (aset standard-display-table 27 (vector 27))
-after first creating a display table (you can do that by loading
-the disp-table library).
-
-** The new command-line option --eval specifies an expression to evaluate
-from the command line.
-
-** etags has now the ability to tag Perl files.  They are recognised
-either by the .pm and .pl suffixes or by a first line which starts
-with `#!' and specifies a Perl interpreter.  The tagged lines are
-those beginning with the `sub' keyword.
-
-New suffixes recognised are .hpp for C++; .f90 for Fortran; .bib,
-.ltx, .TeX for TeX (.bbl, .dtx removed); .ml for Lisp; .prolog for
-prolog (.pl is now Perl).
-
-** The files etc/termcap.dat and etc/termcap.ucb have been replaced
-with a new, merged, and much more comprehensive termcap file.  The
-new file should include all the special entries from the old one.
-This new file is under active development as part of the ncurses
-project.  If you have any questions about this file, or problems with
-an entry in it, email terminfo@ccil.org.
-
-* Lisp changes in Emacs 19.30.
-
-** New Data Types
-
-*** There is a new data type called a char-table which is an array
-indexed by a character.  Currently this is mostly equivalent to a
-vector of length 256, but in the future, when a wider character set is
-in use, it will be different.  To create one, call
-   (make-char-table SUBTYPE INITIAL-VALUE)
-
-SUBTYPE is a symbol that identifies the specific use of this
-character table.  It can be any of these values:
-
-  syntax-table
-  display-table
-  keyboard-translate-table
-  case-table
-
-The function `char-table-subtype' returns the subtype of a char-table.
-You cannot alter the subtype of an existing char-table.
-
-A char-table has an element for each character code.  It also has some
-"extra slots".  The number of extra slots depends on the subtype and
-their use depends on the subtype.  (Each subtype symbol has a
-`char-table-extra-slots' property that says how many extra slots to
-make.)  Use (char-table-extra-slot TABLE N) to access extra slot N and
-(set-char-table-extra-slot TABLE N VALUE) to store VALUE in slot N.
-
-A char-table T can have a parent, which should be another char-table
-P.  If you look for the value in T for character C, and the table T
-actually holds nil, P's element for character C is used instead.
-The functions `char-table-parent' and `set-char-table-parent'
-let you read or set the parent of a char-table.
-
-To scan all the values in a char-table, do not try to loop through all
-possible character codes.  That would work for now, but will not work
-in the future.  Instead, call map-char-table.  (map-char-table
-FUNCTION TABLE) calls FUNCTION once for each character or character
-set that has a distinct value in TABLE.  FUNCTION gets two arguments,
-RANGE and VALUE.  RANGE specifies a range of TABLE that has one
-uniform value, and VALUE is the value in TABLE for that range.
-
-Currently, RANGE is always a vector containing a single character
-and it refers to that character alone.  In the future, other kinds
-of ranges will occur.  You can set the value for a given range
-with (set-char-table-range TABLE RANGE VALUE) and examine the value
-for a range with (char-table-range TABLE RANGE).
-
-*** Syntax tables are now represented as char-tables.
-All syntax tables other than the standard syntax table
-normally have the standard syntax table as their parent.
-Their subtype is `syntax-table'.
-
-*** Display tables are now represented as char-tables.
-Their subtype is `display-table'.
-
-*** Case tables are now represented as char-tables.
-Their subtype is `case-table'.
-
-*** The value of keyboard-translate-table may now be a char-table
-instead of a string.  Normally the char-tables used for this purpose
-have the subtype `keyboard-translate-table', but that is not required.
-
-*** A new data type called a bool-vector is a vector of values
-that are either t or nil.  To create one, do
-   (make-bool-vector LENGTH INITIAL-VALUE)
-
-** You can now specify, for each marker, how it should relocate when
-text is inserted at the place where the marker points.  This is called
-the "insertion type" of the marker.
-
-To set the insertion type, do (set-marker-insertion-type MARKER TYPE).
-If TYPE is t, it means the marker advances when text is inserted.  If
-TYPE is nil, it means the marker does not advance.  (In Emacs 19.29,
-markers did not advance.)
-
-The function marker-insertion-type reports the insertion type of a
-given marker.  The function copy-marker takes a second argument TYPE
-which specifies the insertion type of the new copied marker.
-
-** When you create an overlay, you can specify the insertion type of
-the beginning and of the end.  To do this, you can use two new
-arguments to make-overlay: front-advance and rear-advance.
-
-** The new function overlays-in returns a list of the overlays that
-overlap a specified range of the buffer.  The returned list includes
-empty overlays at the beginning of this range, as well as within the
-range.
-
-** The new hook window-scroll-functions is run when a window has been
-scrolled.  The functions in this list are called just before
-redisplay, after the new window-start has been computed.  Each function
-is called with two arguments--the window that has been scrolled, and its
-new window-start position.
-
-This hook is useful for on-the-fly fontification and other features
-that affect how the redisplayed text will look when it is displayed.
-
-The window-end value of the window is not valid when these functions
-are called.  The computation of window-end is byproduct of actual
-redisplay of the window contents, which means it has not yet happened
-when the hook is run.  Computing window-end specially in advance for
-the sake of these functions would cause a slowdown.
-
-The hook functions can determine where the text on the window will end
-by calling vertical-motion starting with the window-start position.
-
-** The new hook redisplay-end-trigger-functions is run whenever
-redisplay in window uses text that extends past a specified end
-trigger position.  You set the end trigger position with the function
-set-window-redisplay-end-trigger.  The functions are called with two
-arguments: the window, and the end trigger position.  Storing nil for
-the end trigger position turns off the feature, and the trigger value
-is automatically reset to nil just after the hook is run.
-
-You can use the function window-redisplay-end-trigger to read a
-window's current end trigger value.
-
-** The new function insert-file-contents-literally inserts the
-contents of a file without any character set translation or decoding.
-
-** The new function safe-length computes the length of a list.
-It never gets an error--it treats any non-list like nil.
-If given a circular list, it returns an upper bound for the number
-of elements before the circularity.
-
-** replace-match now takes a fifth argument, SUBEXP.  If SUBEXP is
-non-nil, that says to replace just subexpression number SUBEXP of the
-regexp that was matched, not the entire match.  For example, after
-matching `foo \(ba*r\)' calling replace-match with 1 as SUBEXP means
-to replace just the text that matched `\(ba*r\)'.
-
-** The new keymap special-event-map defines bindings for certain
-events that should be handled at a very low level--as soon as they
-are read.  The read-event function processes these events itself,
-and never returns them.
-
-Events that are handled in this way do not echo, they are never
-grouped into key sequences, and they never appear in the value of
-last-command-event or (this-command-keys).  They do not discard a
-numeric argument, they cannot be unread with unread-command-events,
-they may not appear in a keyboard macro, and they are not recorded
-in a keyboard macro while you are defining one.
-
-These events do, however, appear in last-input-event immediately after
-they are read, and this is the way for the event's definition to find
-the actual event.
-
-The events types iconify-frame, make-frame-visible and delete-frame
-are normally handled in this way.
-
-** encode-time now supports simple date arithmetic by means of
-out-of-range values for its SEC, MINUTE, HOUR, DAY, and MONTH
-arguments; for example, day 0 means the day preceding the given month.
-Also, the ZONE argument can now be a TZ-style string.
-
-** command-execute and call-interactively now accept an optional third
-argument KEYS.  If specified and non-nil, this specifies the key
-sequence containing the events that were used to invoke the command.
-
-** The environment variable NAME, if set, now specifies the value of
-(user-full-name), when Emacs starts up.
-
-* User Editing Changes in Emacs 19.29
-
-** If you run out of memory.
-
-If you get the error message "Virtual memory exhausted", type C-x s.
-That way of saving files has the least additional memory needs.  Emacs
-19.29 keeps a reserve of memory which it makes available when this
-error happens; that is to ensure that C-x s can complete its work.
-
-Once you have saved your data, you can exit and restart Emacs, or use
-M-x kill-some-buffers to free up space.  If you kill buffers
-containing a substantial amount of text, you can go on editing.
-
-Do not use M-x buffer-menu to save or kill buffers when you are out of
-memory, because that needs a fair amount memory itself and you may not
-have enough to get it started.
-
-** The format of compiled files has changed incompatibly.
-
-Byte-compiled files made with Emacs 19.29 normally use a new format
-that will not work in older Emacs versions.  You can compile files
-in the old format if you wish; see "Changes in compilation," below.
-
-** Emacs 19.29 supports the DEC Alpha.
-
-** Emacs runs on Windows NT.
-
-This port does not yet support windowing features.  It works like a
-text-only terminal, but it does support a mouse.
-
-In general, support for non-GNU-like operating systems is not a high
-priority for the GNU project.  We merged in the support for Windows NT
-because that system is expected to be very widely used.
-
-** Emacs supports Motif widgets.
-
-You can build Emacs with Motif widgets by specifying --with-x-toolkit=motif
-when you run configure.
-
-Motif defines collections of windows called "tab groups", and uses the
-tab key and the cursor keys to move between windows in a tab group.
-Emacs naturally does not support this--it has other uses for the tab
-key and cursor keys.  Emacs does not support Motif accelerators either,
-because it uses its normal keymap event binding features.
-
-We give higher priority to operation with a free widget set than to
-operation with a proprietary one.
-
-** If Emacs or the computer crashes, you can recover all the files you
-were editing from their auto save files by typing M-x recover-session.
-This first shows you a list of recorded interrupted sessions.  Move
-point to the one you choose, and type C-c C-c.
-
-Then recover-session asks about each of the files that were being
-edited during that session, asking whether to recover that file.  If
-you answer y, it calls recover-file, which works in its normal
-fashion.  It shows the dates of the original file and its auto-save
-file and asks once again whether to recover that file.
-
-When recover-session is done, the files you've chosen to recover
-are present in Emacs buffers.  You should then save them.
-Only this--saving them--updates the files themselves.
-
-** Menu bar menus now stay up if you click on the menu bar item and
-release the mouse button within a certain amount of time.  This is in
-the X Toolkit version.
-
-** The menu bar menus have been rearranged and split up to make for a
-better organization.  Two new menu bar menus, Tools and Search,
-contain items that were formerly in the Files and Edit menus, as well
-as some that did not exist in the menu bar menus before.
-
-** Emacs can now display on more than one X display at the same time.
-Use the command make-frame-on-display to create a frame, specifying
-which display to use.
-
-** M-x talk-connect sets up a multi-user talk connection
-via Emacs.  Specify the X display of the person you want to talk to.
-You can talk to any number of people (within reason) by using
-this command repeatedly to specify different people.
-
-Emacs does not make a fuss about security; the people who you talk to
-can use all Emacs features, including visiting and editing files.  If
-this frightens you, don't use M-x talk-connect.
-
-** The range of integer values is now at least 2**28 on all machines.
-This means the maximum size of a buffer is at least 2**27-1,
-or 134,217,727.
-
-** When you start Emacs, you can now specify option names in
-long GNU form (starting with `--') and you can abbreviate the names.
-
-You can now specify the options in any order.
-The previous requirements about the order of options
-have been eliminated.
-
-The -L or --directory option lets you specify an additional
-directory to search for Lisp libraries (including libraries
-that you specify with the -l or --load options).
-
-** Incremental search in Transient Mark mode, if the mark is already
-active, now leaves the mark active and does not change its position.
-You can make incremental search deactivate the mark once again with
-this expression.
-
-    (add-hook 'isearch-mode-hook 'deactivate-mark)
-
-** C-delete now deletes a word backwards.  This is for compatibility
-with some editors in the PC world.  (This key is not available on
-ordinary ASCII terminals, because C-delete is not a distinct character
-on those terminals.)
-
-** ESC ESC ESC is now a command to escape from various temporary modes
-and states.
-
-** M-x pc-bindings-mode sets up bindings compatible with many PC editors.
-In particular, Delete and its variants delete forward instead of backward.
-Use Backspace to delete backward.
-
-C-Backspace kills backward a word (as C-Delete normally would).
-M-Backspace does undo.
-Home and End move to beginning and end of line
-C-Home and C-End move to beginning and end of buffer.
-
-** The key sequence for evaluating a Lisp expression using the minibuffer
-is now ESC :.  It used to be ESC ESC, but we moved it to make way for
-the ESC ESC ESC feature, on the grounds that people who evaluate Lisp
-expressions are experienced users and can cope with a change.
-If you prefer the old ESC ESC binding, put in your `~/.emacs':
-
-	(global-set-key "\e\e" 'eval-expression)
-
-** The f1 function key is now equivalent to the help key.  This is
-done with key-translation-map; delete the binding for f1 in that map
-if you want to use f1 for something else.
-
-** Mouse-3, in the simplest case, still sets the region.  But now, it
-places the mark where point was, and sets point where you click.
-(It used to set the mark where you click and leave point alone.)
-
-If you position point with Mouse-1, then scroll with the scroll bar
-and use Mouse-3, Mouse-3 uses the position you specified with Mouse-1
-even if it has scrolled off the screen (and point is no longer there).
-This makes it easier to select a region with the mouse which is bigger
-than a screenful.
-
-Any editing of the buffer, and any cursor motion or scrolling for any
-reason other than the scroll bar, cancels the special state set up by
-Mouse-1--so that a subsequent Mouse-3 click will use the actual value
-of point.
-
-** C-mouse-3 now pops up a mode-specific menu of commands--normally
-the same ones available in the mode's own menu bar menus.
-
-** C-mouse-2 now pops up a menu of faces, indentation, justification,
-and certain other text properties.  This menu is also available
-through the menu-bar Edit menu.  It is meant for use with Enriched
-mode.
-
-*** You can use this menu to change the face of the region.
-You can also set the face of the region with the new M-g command.
-
-*** The menu also includes commands for indenting the region,
-which locally changes the values of left-margin and fill-column that
-are used.
-
-*** All fill functions now indent every line to the left-margin.  If
-there is also a fill-prefix, that goes after the margin indentation.
-
-*** Open-line and newline also make sure that the lines they create
-are indented to the left margin.
-
-*** It also allows you to set the "justification" of the region:
-whether it should be centered, flush right, and so forth.  The fill
-functions (including auto-fill-mode) will maintain the justification
-and indentation that you request.
-
-*** The new function `list-colors-display' shows you what colors are
-available.  This is also accessible from the C-mouse-2 menu.
-
-** You can now save and load files including their faces and other
-text-properties by using Enriched-mode.  Files are saved in an
-extended version of the MIME text/enriched format.  You can use the
-menus described above, or M-g and other keyboard commands, to
-alter the formatting information.
-
-** C-mouse-1 now pops up the menu for changing the frame's default font.
-
-** You can input Hyper, Super, Meta, and Alt characters, as well as
-non-ASCII control characters, on an ASCII-only terminal.
-To do this, use
-
-  C-x @ h  --  hyper
-  C-x @ s  --  super
-  C-x @ m  --  meta
-  C-x @ a  --  alt
-  C-x @ S  --  shift
-  C-x @ c  --  control
-
-These are not ordinary key sequences; they operate through
-function-key-map, which means they can be used even in the
-middle of an ordinary key sequence.
-
-** Outline minor mode and Hideif mode now use C-c @ as their prefix
-character.
-
-** Echo area messages are now logged in the "*Messages*" buffer.  The
-size of this buffer is limited to message-log-max lines.
-
-** RET in various special modes for read-only buffers that contain
-lists of items now selects the item point is on.  These modes include
-Dired, Compilation buffers, Buffer-menu, Tar mode, and Occur mode.
-(In Info, RET follows the reference near point; in completion list
-buffers, RET chooses the completion around point.)
-
-** set-background-color now updates the modeline face in a special
-way.  If that face was previously set up to be reverse video, the
-reverse of the default face, then set-background-color updates it so
-that it remains the reverse of the default face.
-
-** The functions raise-frame and lower-frame are now commands.
-When used interactively, they apply to the selected frame.
-
-** M-x buffer-menu now displays the buffer list in the selected window.
-Use M-x buffer-menu-other-window to display it in another window.
-
-** M-w followed by a kill command now *does not* append the text in
-the kill ring.  In consequence, M-w followed by C-w works as you would
-expect: it leaves the top of the kill ring matching the region that
-you killed.
-
-** In Lisp mode, the C-M-x command now executes defvar forms in a
-special way: it unconditionally sets the variable to the specified
-default value, if there is one.  Normal execution of defvar does not
-alter the variable if it already has a non-void value.
-
-** In completion list buffers, the left and right arrow keys run the
-new commands previous-completion and next-completion.  They move one
-completion at a time.
-
-** While doing completion in the minibuffer, the `prior' or `pageup'
-key switches to the completion list window.
-
-** When you exit the minibuffer with empty contents, the empty string
-is not put in the minibuffer history.
-
-** The default buffer for insert-buffer is now the "first" buffer
-other than the current one.  If you have more than one window, this
-is a buffer visible in another window.  (Usually it is the buffer
-that C-M-v would scroll.)
-
-** The etags program is now capable of recording tags based on regular
-expressions provided on the command line.
-
-This new feature allows easy support for constructs not normally
-handled by etags, such as the macros frequently used in big C/C++
-projects to define project-specific structures.  It also enables the
-use of etags and TAGS files for languages not supported by etags.
-
-The Emacs manual section on Tags contains explanations and examples
-for Emacs's DEFVAR, VHDL, Cobol, Postscript and TCL.
-
-** Various mode-specific commands that used to be bound to C-c LETTER
-have been moved.
-
-*** In gnus-uu mode, gnus-uu-interactive-scan-directory is now on C-c C-d,
-and gnus-uu-interactive-save-current-file is on C-c C-z.
-
-*** In Scribe mode, scribe-insert-environment is now on C-c C-v,
-scribe-chapter is on C-c C-c, scribe-subsection is on C-c C-s,
-scribe-section is on C-c C-t, scribe-bracket-region-be is on C-c C-e,
-scribe-italicize-word is on C-c C-i, scribe-bold-word is on C-c C-b,
-and scribe-underline-word is on C-c C-u.
-
-*** In Gomoku mode, gomoku-human-takes-back is now on C-c C-b,
-gomoku-human-plays is on C-c C-p, gomoku-human-resigns is on C-c C-r,
-and gomoku-emacs-plays is on C-c C-e.
-
-*** In the Outline mode defined in allout.el,
-outline-rebullet-current-heading is now on C-c *.
-
-** M-s in Info now searches through the nodes of the Info file,
-just like s.  The alias M-s was added so that you can use the same
-command for searches in both Info and Rmail.
-
-** iso-acc.el now lets you enter inverted-! and inverted-?
-with the sequences ~! and ~?.
-
-** M-x compare-windows now pushes mark in both windows before
-it starts moving point.
-
-** There are two new commands in Dired, A (dired-do-search)
-and Q (dired-do-query-replace).  These are similar to tags-search and
-tags-query-replace, but instead of searching the list of files that
-appears in a tags table, they search all the files marked in Dired.
-
-** Changes to dabbrev.
-
-A new function, `dabbrev-completion' (bound to M-C-/), expands the
-unique part of an abbreviation.
-
-Dabbrev now looks for expansions in other buffers, looks for symbols
-instead of words and it works in the minibuffer.
-
-Dabbrev can be customized to work for shell scripts, with variables
-that sometimes have and sometimes haven't a leading "$".  See the
-variable 'dabbrev-abbrev-skip-leading-regexp'.
-
-** In Rmail, the command rmail-input-menu has been eliminated.  The
-feature of selecting an Rmail file from a menu is now implemented in
-another way.
-
-** Bookmarks changes.
-
-*** It now works to set bookmarks in Info nodes.
-
-*** Bookmarks can have annotations; type "C-h m" after doing
-"M-x list-bookmarks", for more information on annotations.
-
-*** The bookmark-jump popup menu function is now `bookmark-menu-jump', for
-those who bind it to a mouse click.
-
-*** The default bookmarks file name is now "~/.emacs.bmk".  If you
-already have a bookmarks file, it will be renamed automagically when
-you next load it.
-
-** New package, ps-print.
-
-The ps-print package generates PostScript printouts of buffers or
-regions, and includes face attributes such as color, underlining,
-boldface and italics in the printed output.
-
-** New package, msb.
-
-The msb package provides a buffer-menu in the menubar with separate
-menus for different types of buffers.
-
-** `cpp.el' is a new library that can highlight or hide parts of a C
-file according to C preprocessor conditionals.  To try it, run the
-command M-x cpp-highlight-buffer.
-
-** Changes in CC mode.
-
-*** c-set-offset and related functions and variables can now accept
-variable symbols.  Also ++ and -- which mean 2* positive and negative
-c-basic-offset respectively.
-
-*** New variable, c-recognize-knr-p, which controls whether K&R C
-constructs will be recognized.  Trying to recognize K&R constructs is a
-time hog so if you're programming strictly in ANSI C, set this
-variable to nil (it should already be nil in c++-mode).
-
-*** New variable, c-hanging-comment-ender-p for controlling
-c-fill-paragraph's behavior.
-
-*** New syntactic symbol: statement-case-open.  This is assigned to lines
-containing an open brace just after a case/default label.
-
-*** New variable, c-progress-interval, which controls minibuffer update
-message displays during long re-indention.  This is a new feature
-which prints percentage complete messages at specified intervals.
-
-** Makefile mode changes.
-
-*** The electric keys are not enabled by default.
-
-*** There is now a mode-specific menu bar menu.
-
-*** The mode supports font-lock, add-log, and imenu.
-
-*** The command M-TAB does completion of target names and variable names.
-
-** icomplete.el now works more like a minor mode.  Use M-x icomplete-mode
-to turn it on and off.
-
-Icomplete now supports an `icomplete-minibuffer-setup-hook', which is
-run on minibuffer setup whenever icompletion will be occurring.  This
-hook can be used to customize interoperation of icomplete with other
-minibuffer-specific packages, eg rsz-mini.  See the doc string for
-more info.
-
-** Ediff change.
-
-Use ediff-revision instead of vc-ediff.  It also replaces rcs-ediff,
-for those who use that; if you want to use a version control package
-other than vc.el, you must set the variable
-ediff-version-control-package to specify which package.
-
-** VC now supports branches with RCS.
-
-You can use C-u C-x C-q to select any branch or version by number.
-It reads the version number or branch number with the minibuffer,
-then checks out the file unlocked.
-
-Type C-x C-q again to lock the selected branch or version.
-When you check in changes to that branch or version, there are two
-possibilities:
-
--- If you've selected a branch, or a version at the tip of a branch,
-then the new version adds to that branch.  If you wish to create a
-new branch, use C-u C-x C-q to specify a version number when you check
-in the new version.
-
--- If you've selected an inner version which is not the latest in its
-branch, then the new version automatically creates a new branch.
-
-** VC now supports CVS as well as RCS and SCCS.
-
-Since there are no locks in CVS, some things behave slightly
-different when the backend is CVS.  When vc-next-action is invoked
-in a directory handled by CVS, it does the following:
-
-   If the file is not already registered, this registers it for version
-control.  This does a "cvs add", but no "cvs commit".
-   If the file is added but not committed, it is committed.
-   If the file has not been changed, neither in your working area or
-in the repository, a message is printed and nothing is done.
-   If your working file is changed, but the repository file is
-unchanged, this pops up a buffer for entry of a log message; when you
-finish the log message with C-c C-c, that checks in the resulting
-changes along with the log message as change commentary.  A writable
-file remains in existence.
-
-   If vc-next-action changes the repository file, it asks you
-whether to merge in the changes into your working copy.
-
-vc-directory, when started in a CVS file hierarchy, reports
-all files that are modified (and thus need to be committed).
-(When the backend is RCS or SCCS vc-directory reports all
-locked files).
-
-VC has no support for running the initial "cvs checkout" to get a
-working copy of a module.  You can only use VC in a working copy of
-a module.
-
-You can disable the CVS support as follows:
-
-  (setq vc-master-templates (delq 'vc-find-cvs-master vc-master-templates))
-
-or by setting vc-handle-cvs to nil.
-
-This may be desirable if you run a non-standard version of CVS, or
-if CVS was compiled with FORCE_USE_EDITOR or (possibly)
-RELATIVE_REPOS.
-
-** Comint and shell mode changes:
-
-*** Completion works with file names containing quoted characters.
-
-File names containing special characters (such as " ", "!", etc.) that are
-quoted with a "\" character are recognised during completion.  Special
-characters are quoted when they are inserted during completion.
-
-*** You can use M-x comint-truncate-buffer to truncate the buffer.
-
-When this command is run, the buffer is truncated to a maximum number
-of lines, specified by the variable comint-buffer-maximum-size.  Just
-like the command comint-strip-ctrl-m, this can be run automatically
-during process output by doing this:
-
-(add-hook 'comint-output-filter-functions
-	  'comint-truncate-buffer)
-
-** Telnet mode buffer name changed.
-
-The buffer name for a Telnet buffer is now *telnet-HOST*, not
- *HOST-telnet*.  This is for consistency with other Emacs packages.
-
-** M-x man (man) is now faster and more robust.  On systems where the
-entire man page is indented, the indentation is removed.
-
-The user option names that used to end in -p now end in -flag.  The
-new names are: Man-reuse-okay-flag, Man-downcase-section-letters-flag,
-Man-circular-pages-flag.  The Man-notify user option has been renamed to
-Man-notify-method and accepts one more value, `pushy', that just
-switches the current buffer to the manpage buffer, without switching
-frames nor changing your windows configuration.
-
-A new user option Man-fontify-manpage-flag disables fontification
-(thus speeding up man) when set to nil.  Default is to fontify if a
-window system is used.  Two new user options Man-overstrike-face
-(default 'bold) and Man-underline-face (default 'underline) can be set
-to the preferred faces to be used for the words that man overstrikes
-and underlines.  Useful for those who like coloured man pages.
-
-Two new interactive functions are provided: Man-cleanup-manpage and
-Man-fontify-manpage.  Both can be used on a buffer that contains the
-output of a `rsh host man manpage' command, or the output of an
-`nroff -man -Tman manpage' command to make them readable.
-Man-cleanup-manpage is faster, but does not fontify.
-
-** The new function modify-face makes it easy to specify
-all the attributes of a face, all at once.
-
-** Faces now support background stippling.
-
-Use the command set-face-stipple to specify the stipple-pattern for a
-face.  Use face-stipple to access the specified stipple pattern.  The
-existing face functions now handle the stipple pattern when
-appropriate.
-
-If you specify one of the standard gray colors as a face background
-color, and your display doesn't handle gray, Emacs automatically uses
-stipple instead to get the same effect.
-
-** Changes in Font Lock mode.
-
-*** Fontification
-
-Two new default faces are provided; `font-lock-variable-name-face' and
-`font-lock-reference-face'.  The face `font-lock-doc-string-face' has
-been removed since it is the same as the existing
-`font-lock-string-face'.  Where appropriate, fontification
-automatically uses these new faces.
-
-Fontification via commands `font-lock-mode' and
-`font-lock-fontify-buffer' is now cleanly interruptible (i.e., with
-C-g).  If you interrupt during the fontification process, the buffer
-remains in its previous modified state and all highlighting is removed
-from the buffer.
-
-For C/C++ modes, Font Lock mode is much faster but highlights much
-more.  Other modes are faster/more extensive/more discriminatory, or a
-combination of these.
-
-To enable Font Lock mode, add the new function `turn-on-font-lock' in
-one of the following ways:
-
- (add-hook 'c-mode-hook 'turn-on-font-lock)
-
-Or for any visited file with:
-
- (add-hook 'find-file-hooks 'turn-on-font-lock)
-
-*** Supports color and grayscale displays
-
-Font Lock mode supports different ways of highlighting, depending on
-the type of display and background shade.  Attributes (face color,
-bold, italic and underline, and display type and background mode) can
-be controlled either from Emacs Lisp or X resources.
-
-See the new variables `font-lock-display-type' and
-`font-lock-face-attributes'.
-
-*** Supports more modes
-
-The following modes are directly supported:
-
-ada-mode, asm-mode, bibtex-mode, c++-c-mode, c++-mode, c-mode,
-change-log-mode, compilation-mode, dired-mode, emacs-lisp-mode,
-fortran-mode, latex-mode, lisp-mode, mail-mode, makefile-mode,
-outline-mode, pascal-mode, perl-mode, plain-tex-mode, rmail-mode,
-rmail-summary-mode, scheme-mode, shell-mode, slitex-mode, tex-mode,
-texinfo-mode.
-
-See the new variables `font-lock-defaults-alist' and
-`font-lock-defaults'.
-
-Some modes support different levels of fontification.  You can choose
-to use the minimum or maximum available decoration by changing the
-value of the new variable `font-lock-maximum-decoration'.
-
-Programmers are urged to make available to the community their own
-keywords for modes not yet supported.  See font-lock.el for
-information about efficiency.
-
-*** fast-lock
-
-The fast-lock package speeds up Font Lock mode by saving font choices
-in associated cache files.  When you visit a file with Font Lock mode
-and Fast Lock mode turned on for the first time, the file's buffer is
-fontified as normal.  When certain events occur (such as exiting
-Emacs), Fast Lock saves the highlighting in a cache file.  When you
-subsequently visit this file, its cache is used to restore the
-highlighting.
-
-To use this package, put in your `~/.emacs':
-
- (add-hook 'font-lock-mode-hook 'turn-on-fast-lock)
-
-To control the use of caches, see the documentation for `fast-lock-mode'.
-
-** You can tell pop-to-buffer to display certain buffers in the selected
-window rather than finding some other window to display them in.
-There are two variables you can use to specify these buffers.
-
-same-window-buffer-names holds a list of buffer names; if a buffer's
-name appears in this list, pop-to-buffer puts it in the selected window.
-
-same-window-regexps holds a list of regexps--if any one of them
-matches a buffer's name, then pop-to-buffer puts that buffer in the
-selected window.
-
-The default values of these variables are not nil: they list various
-buffers that normally appear, when you as for them, in the selected
-window.  These include shell buffers, mail buffers, telnet buffers,
-and others.  By removing elements from these variables, you can ask
-Emacs to display those buffers in separate windows.
-
-** The special-display-buffer-names and special-display-regexps lists
-have been generalized.  An element may now be a list.  The car of the list
-is the buffer name or regular expression for matching buffer names.
-
-The cdr of the list can be an alist specifying additional frame
-parameters for use in constructing the special display frame.
-
-Alternatively, the cdr can have this form:
-
-  (FUNCTION ARGS...)
-
-where FUNCTION is a symbol.  Then the frame is constructed by calling
-FUNCTION; its first argument is the buffer, and its remaining
-arguments are ARGS.
-
-** If the environment variable REPLYTO is set, its value is the default
-for mail-default-reply-to.
-
-** When you send a message in Emacs, if you specify an Rmail file with
-the FCC: header field, Emacs converts the message to Rmail format
-before writing it.  Thus, the file never contains anything but Rmail
-format messages.
-
-** The new variable mail-from-style controls whether the From: header
-should include the sender's full name, and if so, which format to use.
-
-** The new variable mail-personal-alias-file specifies the name of the
-user's personal aliases.  This defaults to the file ~/.mailrc.
-mailabbrev.el used to have its own variable for this purpose
-(mail-abbrev-mailrc-file).  That variable is no longer used.
-
-** In Buffer-Menu mode, the d and C-d commands (which mark buffers for
-deletion) now accept a prefix argument which serves as a repeat count.
-
-** Changes in BibTeX mode.
-
-*** Reference keys can now be entered with TAB completion.  All
-reference keys defined in that buffer and all labels that appear in
-crossreference entries are object to completion.
-
-*** Braces are supported as field delimiters in addition to quotes.
-BibTeX entries may have brace-delimited and quote-delimited fields
-intermixed.  The delimiters generated for new entries are specified by
-the variables bibtex-field-left-delimiter and
-bibtex-field-right-delimiter on a buffer-local basis. Those variables
-default to braces, since it is easier to put quote accented characters
-(as the german umlauts) into a brace-delimited entry.
-
-*** The function bibtex-clean-entry can now be invoked with a prefix
-argument.  In this case, a label is automatically generated from
-various fields in the record.  If bibtex-clean-entry is invoked on a
-record without label, a label is also generated automatically.
-Various variables (all beginning with `bibtex-autokey-') control the
-creation of that key.  The variable bibtex-autokey-edit-before-use
-determines, if the user is allowed to edit auto-generated reference
-keys before they are used.
-
-*** A New function bibtex-complete-string completes strings with
-respect to the strings defined in this buffer and a set of predefined
-strings (initialized to the string macros defined in the standard
-BibTeX style files) in the same way in which ispell-complete-word
-works with respect to words in a dictionary.  Candidates for
-bibtex-complete-string are initialized from variable
-bibtex-predefined-strings and by parsing the files found in
-bibtex-string-files for @String definitions.
-
-*** Every reference/field pair has now attached a comment which
-appears in the echo area when this field is edited.  These comments
-should provide useful hints for BibTeX usage, especially for BibTeX
-beginners.  New variable bibtex-help-message determines if these help
-messages are to appear in the minibuffer when moving to a text entry.
-
-*** Inscriptions of menu bar changed from "Entry Types" to
-"Entry-Types" and "Bibtex Edit" to "BibTeX-Edit".
-
-*** The variable bibtex-include-OPTcrossref is now not longer a binary
-switch but a list of reference names which should contain a crossref
-field.  E.g., you can tell bibtex-mode you want a crossref field for
-@InProceedings and @InBook entries but for no other.
-
-*** The function validate-bibtex-buffer was completely rewritten to
-validate if a buffer is syntactically correct.  find-bibtex-duplicates
-is no longer a function itself but was moved into
-validate-bibtex-buffer.
-
-*** Cleaning a BibTeX entry tests, if necessary fields are there.
-E.g., if you tell bibtex-mode to include a crossref entry, some fields
-are optional which would be required without the crossref entry.  If
-you now leave the crossref entry empty and do a bibtex-clean-entry
-with some now required fields left empty, version 2.0 of bibtex.el
-complains about the absence of these fields, whereas version 1.3
-didn't.
-
-*** Default value for variables bibtex-maintain-sorted-entries and
-bibtex-sort-ignore-string-entries is now t.
-
-*** All interactive functions are renamed to begin with `bibtex-'.
-
-*** Keybindings with \C-c\C-e entry changed for unification.  Often
-used reference types are now on control-modified keys, mediocre used
-types are on unmodified keys, seldom used types are on shift-modified
-keys and almost never used types on meta-modified keys.
-
-* Configuration Changes in Emacs 19.29
-
-** Emacs now uses directory /usr/local/share for most of its installed
-files.  This follows a GNU convention for directory usage.
-
-** The option --with-x11 is no longer supported.
-X11 is the only version of X that Emacs 19.29 supports;
-use --with-x if you need to request X support explicitly.
-(Normally this should not be necessary, since configure should
-automatically enable X support if X is installed on your machine.)
-
-** If you use the site-init.el file to set the variable
-mail-host-address to a string in the dumped Emacs, that string becomes
-the default host address for initializing user-mail-address.
-It is used instead of the value of (system-name).
-
-* Lisp-Level Changes in Emacs 19.29
-
-** Basic Lisp
-
-*** The range of integer values is now at least 2**28 on all machines.
-This means the maximum size of a buffer is at least 2**27-1,
-or 134,217,727.
-
-*** You can now use Common Lisp syntax for the backquote and comma
-macros.  Thus, you can now write `(x ,y z) instead of (` (x (, y) z)).
-
-The old syntax is still accepted.
-
-*** The new function rassoc is like assoc, except that it compares the
-key against the cdr of each alist element, where assoc would compare
-it against the car of each alist element.
-
-*** The new function unintern deletes a symbol from an obarray.  The
-first argument can be the symbol to delete, or a string giving its
-name.  The second argument specifies the obarray (nil means the
-current default obarray).
-
-If the specified symbol is not in the obarray, or if there's no symbol
-in the obarray matching the specified string, unintern does nothing
-and returns nil.  If it does delete a symbol, it returns t.
-
-*** You can specify an alternative read function for use by load and
-eval-region by binding the variable load-read-function to some other
-function.  This function should accept one argument just like read.
-If load-read-function is nil, load and eval-region use ordinary read.
-
-*** The new function `type-of' takes any object as argument, and
-returns a symbol identifying the type of that object--one of `symbol',
-`integer', `float', `string', `cons', `vector', `marker', `overlay',
-`window', `buffer', `subr', `compiled-function',
-`window-configuration', `process'.
-
-*** When you use eval-after-load for a file that is already loaded, it
-executes the FORM right away.  As before, if the file is not yet
-loaded, it arranges to execute FORM if and when the file is loaded
-later.  The result is: if you have called eval-after-load for a file,
-and if that file has been loaded, then regardless of the order of
-these two events, the specified form has been evaluated.
-
-*** The Lisp construct #@NUMBER now skips the next NUMBER characters,
-treating them as a comment.
-
-You would not want to use this in a file you edit by hand, but it is
-useful for commenting out parts of machine-generated files.
-
-*** Two new functions, `plist-get' and `plist-put',
-allow you to modify and retrieve values from lists formatted as property-lists.
-They work like `get' and `put', but operate on any list.
-`plist-put' returns the modified property-list; you must store it
-back where you got it.
-
-*** The new function add-to-list is called with two elements,
-a variable that holds a list and a new element.
-It adds the element to the list unless it is already present.
-It compares elements using `equal'.  Here is an example:
-
-(setq foo '(a b)) => (a b)
-
-(add-to-list 'foo 'c) => (c a b)
-
-(add-to-list 'foo 'b) => (c a b)
-
-foo => (c a b)
-
-** Changes in compilation.
-
-Functions and variables loaded from a byte-compiled file
-now refer to the file for their doc strings.
-
-This has a few consequences:
-
--- Loading the file is faster and uses less memory.
--- Reference to doc strings is a little slower (the same speed
-   as reference to the doc strings of primitive and preloaded functions).
--- The compiled files will not work in old versions of Emacs.
--- If you move the compiled file after loading it, Emacs can no longer
-   find these doc strings.
--- If you alter the compiled file (such as by compiling a new
-   version), then further access to documentation strings will get
-   nonsense results.
-
-The byte compiler now optionally supports lazy loading of compiled
-functions' definitions.  If you enable this feature when you compile,
-loading the compiled file does not actually bring the function
-definitions into core.  Instead it creates references to the compiled
-file, and brings each function's definition into core the first time
-you call that function, or when you force it with the new function
-`fetch-bytecode'.
-
-Using the lazy loading feature has a few consequences:
-
--- Loading the file is faster and uses less memory.
--- Calling any function in the file for the first time is slower.
--- If you move the compiled file after loading it, Emacs can no longer
-   find the function definitions.
--- If you alter the compiled file (such as by compiling a new
-   version), then further access to functions not already loaded
-   will get nonsense results.
-
-To enable the lazy loading feature, set up a non-nil file local
-variable binding for the variable `byte-compile-dynamic' in the Lisp
-source file.  For example, put this on the first line:
-
-    -*-byte-compile-dynamic: t;-*-
-
-It's a good idea to use the lazy loading feature for a file that
-contains many functions, most of which are not actually used by a
-given user in a given session.
-
-To turn off the basic feature of referring to the file for doc
-strings, set byte-compile-dynamic-docstrings to nil.  You can do this
-globally, or for one source file by adding this to the first line:
-
-    -*-byte-compile-dynamic-docstrings: nil;-*-
-
-** Strings
-
-*** Do not pass integer arguments to `concat' (or `vconcat' or
-`append').  We are phasing out the old unrecommended support for
-integers as arguments to these functions, in preparation for treating
-numbers as single characters in a future release.  To concatenate
-numbers in string form, use `number-to-string' first, or rewrite the
-call to use `format' instead of `concat'.
-
-*** The new function match-string returns the string of text matched at
-the given parenthesized expression by the last regexp search, or nil
-if there was no match.  If the last match was by `string-match' on a
-string, the string must be given.  Therefore, this function can be
-used in place of `buffer-substring' and `substring', when using
-`match-beginning' and `match-end' to find match positions.
-
-   (match-string N)   or   (match-string N STRING)
-
-*** The function replace-match now accepts an optional fourth argument,
-STRING.  Use this after performing string-match on STRING, to replace
-the portion of STRING that was matched.  When used in this way,
-replace-match returns a newly created string which is the same as
-STRING except for the matched portion.
-
-*** The new function buffer-substring-no-properties
-is like buffer-substring except that the string it returns
-has no text properties.
-
-*** The function `equal' now considers two strings to be different
-if they don't have the same text properties.
-
-** Completion
-
-*** all-completions now takes an optional fourth argument.
-If that argument is non-nil, completions that start with a space
-are ignored unless the initial string also starts with a space.
-(This used to happen unconditionally.)
-
-** Local Variables
-
-*** Local hook variables.
-
-There is now a clean way to give a hook variable a buffer-local value.
-Call the function `make-local-hook' to do this.
-
-Once a hook variable is buffer-local, you can add hooks to it either
-globally or locally.  run-hooks runs the local hook functions
-of the current buffer, then all the global hook functions.
-
-The functions add-hook and remove-hook take an additional optional
-argument LOCAL which says whether to add (or remove) a local hook
-function or a global one.
-
-Local hooks use t as an element of the (local) value of the hook
-variable as a flag meaning to use the global value also.
-
-*** The new function local-variable-p tells you whether a particular
-variable is buffer-local in the current buffer or a specified buffer.
-
-** Editing Facilities
-
-*** The function copy-region-as-kill no longer sets this-command;
-as a result, a following kill command will not normally append
-to the text saved by copy-region-as-kill.
-
-*** Regular expression searching and matching no longer performs full
-Posix backtracking by default.  They now stop with the first match found
-instead of looking for the longest match--just as they did in Emacs 18.
-The reason for this change is to get higher speed.
-
-There are new functions you can use if you really want to search or
-match with Posix behavior: posix-search-forward,
-posix-search-backward, posix-looking-at, and posix-string-match.  Call
-these just like re-search-forward, re-search-backward, looking-at, and
-string-match.
-
-** Files
-
-*** The new variable `format-alist' defines file formats,
-which are ways of translating between the data in a file and things
-(text, text-properties, and possibly other information) in a buffer.
-
-`format-alist' has one element for each format.  Each element is a
-list like this:
-  (NAME DOC-STRING REGEXP FROM-FN TO-FN MODIFY MODE-FN)
-containing the name of the format, a documentation string, a regular
-expression which is used to recognize files in that format, a decoding
-function, an encoding function, a flag that indicates whether the
-encoding function modifies the buffer, and a mode function.
-
-FROM-FN is called to decode files in that format; it gets two args, BEGIN
-        and END, and can make any modifications it likes, returning the new
-        end position.  It must make sure that the beginning of the file no
-	longer matches REGEXP, or else it will get called again.
-TO-FN   is called to encode a region into that format; it is also passed BEGIN
-        and END, and either returns a list of annotations as in
-        `write-region-annotate-functions', or modifies the region and returns
-        the new end position.
-MODIFY, if non-nil, means the TO-FN modifies the region.  If nil, TO-FN may
-        not make any changes and should return a list of annotations.
-
-`insert-file-contents' checks the beginning of the file that it is
-inserting to see if it matches one of the regexps.  If so, then it
-calls the decoding function, and then looks for another match.  When
-visiting a file, it also calls the mode function, and sets the
-variable `buffer-file-format' to the list of formats that the file
-used.
-
-`write-region' calls the encoding functions for each format in
-`buffer-file-format' before it writes the file.  To save a file in a
-different format, either set `buffer-file-format' to a different
-value, or call the new function `format-write-file'.
-
-Since some encoding functions may be slow, you can request that
-auto-save use a format different from the buffer's default by setting
-the variable `auto-save-file-format' to the desired format.  This will
-determine the format of all auto-save files.
-
-*** The new function file-ownership-preserved-p tells you whether
-deleting a file and recreating it would keep the file's owner
-unchanged.
-
-*** The new function file-regular-p returns t if a file
-is a "regular" file (not a directory, symlink, named pipe,
-terminal, or other I/O device).
-
-*** The new function file-name-sans-extension discards the extension
-of a file name.  You call it with a file name, and returns a string
-lacking the extension.
-
-*** The variable path-separator is a string which says which
-character separates directories in a search path.  It is ":"
-for Unix and GNU systems, ";" for MSDOG and Windows NT.
-
-** Commands and Key Sequences
-
-*** Key sequences consisting of C-c followed by {, }, <, >, : or ; are
-now reserved for major modes.  Sequences consisting of C-c followed by
-any other punctuation character are now meant for minor modes.  We don't
-plan to convert all existing major modes to stop using those sequences,
-but we hope to keep them to a minimum.
-
-*** When the post-command-hook or the pre-command-hook gets an error, the error
-is silently ignored.  Emacs no longer sets the hook variable to nil when this
-happens.  Meanwhile, the hook functions can now alter the hook variable in
-a normal fashion; there is no need to do anything special.
-
-*** define-key, lookup-key, and various other functions for changing or
-looking up key bindings now let you write an event type with a list
-like (ctrl meta newline) or (meta ?d), as in XEmacs.  (ctrl meta newline)
-is equivalent to the event type symbol C-M-newline, and (meta ?d)
-is equivalent to the character ?\M-d.
-
-*** The function event-convert-list converts a list such as
-(meta ?d) into the corresponding event type (a symbol or integer).
-
-*** In an interactive spec, `k' means to read a key sequence.  In this
-key sequence, upper case characters and shifted function keys which
-have no bindings are converted to lower case if that makes them
-defined.
-
-The new interactive code `K' reads a key sequence similarly, but does
-not convert the last event.  `K' is useful for reading a key sequence
-to be given a binding.
-
-*** The variable overriding-local-map now has no effect on the menu bar
-display unless overriding-local-map-menu-flag is non-nil.  This is why
-incremental search no longer temporarily changes the menu bars.
-
-Note that overriding-local-map does still affect the execution of key
-sequences entered using the menu bar.  So if you use
-overriding-local-map, and a menu bar key sequence comes in, you should
-make sure to clear overriding-local-map before that key sequence gets
-looked up and executed.  But this is what you'd normally do anyway:
-programs that use overriding-local-map normally exit and "put back"
-any event such as menu-bar that they do not handle specially.
-
-*** The new variable `overriding-terminal-local-map' is like
-overriding-local-map, but is specific to a single terminal.
-
-*** delete-frame events.
-
-When you use the X window manager's "delete window" command, this now
-generates a delete-frame event.  The standard definition of this event
-is a command that deletes the frame that received the event, and kills
-Emacs when the last visible or iconified frame is deleted.  You can
-rebind the event to some other command if you wish.
-
-*** Two new types of events, iconify-frame and make-frame-visible,
-indicate that the user iconified or deiconified a frame with the
-window manager.  Since the window manager has already done the work,
-the default definition for both event types in Emacs is to do nothing.
-
-** Frames and X
-
-*** Certain Lisp variables are now local to an X terminal (in other
-words, all the screens of a single X server).  The value in effect, at
-any given time, is the one that belongs to the terminal of the
-selected frame.  The terminal-local variables are
-default-minibuffer-frame, system-key-alist, defining-kbd-macro, and
-last-kbd-macro.  There is no way for Lisp programs to create others.
-
-The terminal-local variables cannot be buffer-local.
-
-*** When you create an X frame, for the `top' and `left' frame
-parameters, you can now use values of the form (+ N) or (- N), where N
-is an integer.  (+ N) means N pixels to the right of the left edge of
-the screen and (- N) means N pixels to the left of the right edge.  In
-both cases, N may be zero (exactly at the edge) or negative (putting
-the window partly off the screen).
-
-The function x-parse-geometry can return values of these forms
-for certain inputs.
-
-*** The variable menu-bar-file-menu has been renamed to
-menu-bar-files-menu to match the actual item that appears in the menu.
-(All the other such variable names do match.)
-
-*** The new function active-minibuffer-window returns the minibuffer window
-currently active, or nil if none is now active.
-
-*** In the functions next-window, previous-window, next-frame,
-previous-frame, get-buffer-window, get-lru-window, get-largest-window
-and delete-windows-on, if you specify 0 for the last argument,
-it means to consider all visible and iconified frames.
-
-*** When you set a frame's cursor type with modify-frame-parameters,
-you can now specify (bar . INTEGER) as the cursor type.  This stands
-for a bar cursor of width INTEGER.
-
-*** The new function facep returns t if its argument is a face name
-(or if it is a vector such as is used internally by the Lisp code
-to represent a face).
-
-*** Each frame can now have a buffer-predicate function,
-which is the `buffer-predicate' frame parameter.
-When `other-buffer' looks for an alternative buffer, it considers
-only the buffers that fit the selected frame's buffer predicate (if it
-has one).  This is useful for applications that make their own frames.
-
-*** When you create an X frame, you can now specify the frame parameter
-`display'.  This says which display to put the frame on.  The value
-should be a display name--a string of the form
-"HOST:DPYNUMBER.SCREENNUMBER".
-
-The functions x-server-... and x-display-... now take an optional
-argument which specifies the display to ask about.  You can use either
-a display name string or a frame.  A value of nil stands for the
-selected frame.
-
-To close the connection to an X display, use the function
-x-close-connection.  Specify which display with a display name.  You
-cannot close the connection if Emacs still has frames open on that
-display.
-
-x-display-list returns a list indicating which displays Emacs has
-connections to.  Its elements are display names (strings).
-
-*** The icon-type frame parameter may now be a file name.
-Then the contents of that file specify the icon bitmap to use
-for that frame.
-
-*** The title of an Emacs frame, displayed by most window managers, is
-set from frame-title-format or icon-title-format.  These have the same
-structure as mode-line-format.
-
-*** x-display-grayscale-p is a new function that returns non-nil if
-your X server can display shades of gray.  Currently it returns
-non-nil for color displays (because they can display shades of gray);
-we may change it in the next version to return nil for color displays.
-
-*** The frame parameter scroll-bar-width specifies the width of the
-scrollbar in pixels.
-
-** Buffers
-
-*** Creating a buffer with get-buffer-create does not obey
-default-major-mode.  That variable is now handled in a separate
-function, set-buffer-major-mode.  get-buffer-create and generate-new-buffer
-always leave the newly created buffer in Fundamental mode.
-
-Creating a new buffer by visiting a file or with switch-to-buffer,
-pop-to-buffer, and similar functions does call set-buffer-major-mode
-to select the default major mode specified with default-major-mode.
-
-*** You can now create an "indirect buffer".  An indirect buffer shares
-its text, including text properties, with another buffer (the "base
-buffer"), but has its own major mode, local variables, overlays, and
-narrowing.  An indirect buffer has a name of its own, distinct from
-those of the base buffer and all other buffers.  An indirect buffer
-cannot itself be visiting a file (though its base buffer can be).
-The base buffer cannot itself be indirect.
-
-Use (make-indirect-buffer BASE-BUFFER NAME) to make an indirect buffer
-named NAME whose base is BASE-BUFFER.  If BASE-BUFFER is an indirect
-buffer, its base buffer is used as the base for the new buffer.
-
-You can make an indirect buffer current, or switch to it in a window,
-just as you would a non-indirect buffer.
-
-The function buffer-base-buffer, given an indirect buffer, returns its
-base buffer.  It returns nil when given an ordinary buffer (not
-indirect).
-
-The library `noutline' has versions of Outline mode and Outline minor
-mode which let you display different parts of the outline in different
-indirect buffers.
-
-** Subprocesses
-
-*** The functions call-process and call-process-region now allow
-you to direct error message output from the subprocess into a
-separate destination, instead of mixing it with ordinary output.
-To do this, specify for the third argument, BUFFER, a list of the form
-  (BUFFER-OR-NAME ERROR-DESTINATION)
-BUFFER-OR-NAME specifies where to put ordinary output; it should
-be a buffer or buffer name, or t, nil or 0.  This is what would
-have been the BUFFER argument, ordinarily.
-
-ERROR-DESTINATION specifies where to put the error output.
-nil means discard it, t means mix it with the ordinary output,
-and a string specifies a file name to write this output into.
-
-You can't specify a buffer to put the error output in; that is not
-easy to implement directly.  You can put the error output into a
-buffer by sending it to a temporary file and then inserting the file
-into a buffer.
-
-*** Comint mode changes:
-
-**** The variable comint-completion-addsuffix can also be a cons pair
-of the form (DIRSUFFIX . FILESUFFIX), where DIRSUFFIX and FILESUFFIX are
-strings added on unambiguous or exact completion of directories and file
-names, respectively.
-
-** Text properties
-
-*** You can now specify which values of the `invisible' property
-make text invisible in a given buffer.  The variable
-`buffer-invisibility-spec', which is always local in all buffers,
-controls this.
-
-If its value is t, then any non-nil `invisible' property makes
-a character invisible.
-
-If its value is a list, then a character is invisible if its
-`invisible' property value appears as a member of the list, or if it
-appears as the car of a member of the list.
-
-When the `invisible' property value appears as the car of a member of
-the `buffer-invisibility-spec' list, then the cdr of that member has
-an effect.  If it is non-nil, then an ellipsis appears in place of the
-character.  (This happens only for the *last* invisible character in a
-series of consecutive invisible characters, and only at the end of a
-line.)
-
-If a character's `invisible' property is a list, then Emacs checks each
-element of the list against `buffer-invisibility-spec'.  If any element
-matches, the character is invisible.
-
-*** The command `list-text-properties-at' shows what text properties
-are in effect at point.
-
-*** Frame objects now exist in Emacs even on systems that don't support
-X Windows.  You can create multiple frames, and switch between them
-using select-frame.  The selected frame is actually displayed on your
-terminal; other frames are not displayed at all.  The selected frame
-number appears in the mode line after `Emacs', except for frame 1.
-
-Switching frames on ASCII terminals is therefore more or less
-equivalent to switching between different window configurations.
-
-*** The new variable window-size-change-functions holds a list of
-functions to be called if window sizes change (or if windows are
-created or deleted).  The functions are called once for each frame on
-which changes have occurred, with the frame as the sole argument.
-This takes place shortly before redisplay.
-
-*** The modification hook functions of overlays now work differently.
-They are called both before and after each change.  This makes it
-possible for the functions to determine exactly what the change was.
-
-This change affects three overlay properties: the modification-hooks
-property, a list of functions called for deletions overlapping the
-overlay's range and for insertions inside it; the
-insert-in-front-hooks, a list of functions called for insertions at
-the beginning of the overlay; and the insert-behind-hooks, a list of
-functions called for insertions at the end of the overlay.
-
-Each function is called both before and after each change that it
-applies to.  Before the change, it is called with four arguments:
-    (funcall FUNCTION OVERLAY nil START END)
-START and END are the same arguments that the before-change-functions
-receive.
-
-After the change, each function is called with five arguments:
-    (funcall FUNCTION OVERLAY t START END OLDSIZE)
-The last arguments, START and END and OLDSIZE,
-are the same arguments that the after-change-functions receive.
-
-This means the function must accept either four or five arguments.
-
-*** You can set defaults for text-properties with the new variable
-`default-text-properties'.  Its value is a property list; the values
-specified there are used whenever a character (or its category) does
-not specify a value.
-
-*** The `face' property of a character or an overlay can now be a list
-of face names.  Formerly it had to be just one face name.
-
-*** Changes in handling the `intangible' text property.
-
-**** If inhibit-point-motion-hooks is non-nil, then `intangible' properties
-are ignored.
-
-**** Moving to just before a stretch of intangible text
-is no longer special in any way.  Point stays at that place.
-
-**** When you move point backwards into the midst of intangible text,
-point moves back to the beginning of that text.  (It used to move
-forward to the end of that text, which was not very useful.)
-
-**** When moving across intangible text, Emacs stops wherever the
-property value changes.  So if you have two stretches of intangible
-text, with different non-nil intangible properties, it is possible to
-place point between them.
-
-** Overlays
-
-*** Overlay changes.
-
-**** The new function previous-overlay-change returns the position of
-the previous overlay start or end, before a specified position.  This
-is the backwards-moving counterpart of next-overlay-change.
-
-**** overlay-get now supports category properties on an overlay
-the same way get-text-property supports them as text properties.
-
-Specifically, if an overlay does not have the property PROP that you
-ask for, but it does have a `category' property which is a symbol,
-then that symbol's PROP property is used.
-
-**** If an overlay has a non-nil `evaporate' property, it will be
-deleted if it ever becomes empty (i.e., when it spans no characters).
-
-**** If an overlay has a `before-string' and/or `after-string' property,
-these strings are displayed at the overlay's endpoints.
-
-** Filling
-
-*** The new variable fill-paragraph-function provides a way for major
-modes to override the filling of paragraphs.  If this is non-nil,
-fill-paragraph calls it as a function, passing along its sole
-argument.  If the function returns non-nil, fill-paragraph assumes it
-has done the job and simply passes on whatever value it returned.
-
-The usual use of this feature is to fill comments in programming
-language modes.
-
-*** Text filling and justification changes:
-
-**** The new variable use-hard-newlines can be used to make a
-distinction between "hard" and "soft" newlines; the fill functions
-will then never remove a newline that was manually inserted.  Hard
-newlines are marked with a non-nil `hard' text-property.
-
-**** The fill-column and left-margin can now be modified by text-properties.
-Most lisp programs should use the new functions (current-fill-column) and
-(current-left-margin), which return the proper values to use for the
-current line.
-
-**** There are new functions for dealing with margins:
-
-***** Set-left-margin and set-right-margin (set the value for a region
-and re-fill).  These functions take three arguments: two to specify
-a region, and the desired margin value.
-
-***** Increase-left-margin, decrease-left-margin, increase-right-margin, and
-decrease-right-margin (change settings relative to current values, and
-re-fill).
-
-***** move-to-left-margin moves point there, optionally adding
-indentation or changing tabs to spaces in order to make that possible.
-beginning-of-line-text also moves past the fill-prefix and any
-indentation added to center or right-justify a line, to the beginning
-of the text that the user actually typed.
-
-***** delete-to-left-margin removes any left-margin indentation, but
-does not change the property.
-
-**** The paragraph-movement functions look for the paragraph-start and
-paragraph-separate regexps at the current left margin, not at the
-beginning of the line.  This means that those regexps should NOT use ^
-to anchor the search.  However, for backwards compatibility, a ^ at
-the beginning of the regexp will be ignored, so most packages won't break.
-
-**** justify-current-line is now capable of doing left, center, or
-right justification as well as full justification.
-
-**** The fill functions can do any kind of justification based on the new
-`justification' text-property and `default-justification' variable,
-or arguments to the functions.  They also have a new option which
-defeats the normal removal of extra whitespace.
-
-**** The new function `current-justification' returns the kind of
-justification used for the current line.  The new function
-`set-justification' can be used to change it, including re-justifying
-the text of the region according to the new value.
-
-**** Filling and auto-fill are disabled if justification is `none'.
-
-**** The auto-fill-function is now called regardless of whether
-the fill-column has been exceeded; the function can determine on its
-own whether filling (or justification) is necessary.
-
-** Processes
-
-*** process-tty-name is a new function that returns the name of the
-terminal that the process itself reads and writes on (not the name of
-the pty that Emacs uses to talk with that terminal).
-
-*** Errors in process filters and sentinels are now normally caught
-automatically, so that they don't abort other Lisp programs.
-
-Setting debug-on-error non-nil turns off this feature; then errors in
-filters and sentinels are not caught.  As a result, they can invoke
-the debugger, under the control of debug-on-error.
-
-*** Emacs now preserves the match data around the execution of process
-filters and sentinels.  You can use search and match functions freely
-in filters and sentinels without explicitly bothering to save the
-match data.
-
-** Display
-
-*** The variable message-log-max controls how messages are logged in the
-"*Messages*" buffer.  An integer value means to keep that many lines;
-t means to log with no limit; nil means disable message logging.  Lisp
-code that calls `message' excessively (e.g. isearch.el) should probably
-bind this variable to nil.
-
-*** Display tables now have a new element, at index 261, specifying the
-glyph to use for the separator between two side-by-side windows.  By
-default, this is the vertical bar character `|'.  Probably the only
-other useful character to store for this element is a space, to make
-less visual separation between two side-by-side windows displaying
-related information.
-
-*** The new mode-line-format spec %c displays the current column number.
-
-*** The new variable blink-matching-delay specifies how long to keep
-the cursor at the matching open-paren, after you insert a close-paren.
-This is useful mainly on systems which can wait for a fraction of a
-second--you can then specify fractional values such as 0.5.
-
-*** Faster processing of buffers with long lines
-
-The new variable cache-long-line-scans determines whether Emacs
-should use caches to handle long lines more quickly.  This variable is
-buffer-local, in all buffers.
-
-Normally, the line-motion functions work by scanning the buffer for
-newlines.  Columnar operations (like `move-to-column' and
-`compute-motion') also work by scanning the buffer, summing character
-widths as they go.  This works well for ordinary text, but if the
-buffer's lines are very long (say, more than 500 characters), these
-motion functions will take longer to execute.  Emacs may also take
-longer to update the display.
-
-If cache-long-line-scans is non-nil, these motion functions cache
-the results of their scans, and consult the cache to avoid rescanning
-regions of the buffer until the text is modified.  The caches are most
-beneficial when they prevent the most searching---that is, when the
-buffer contains long lines and large regions of characters with the
-same, fixed screen width.
-
-When cache-long-line-scans is non-nil, processing short lines will
-become slightly slower (because of the overhead of consulting the
-cache), and the caches will use memory roughly proportional to the
-number of newlines and characters whose screen width varies.
-
-The caches require no explicit maintenance; their accuracy is
-maintained internally by the Emacs primitives.  Enabling or disabling
-the cache should not affect the behavior of any of the motion functions;
-it should only affect their performance.
-
-** System Interface
-
-*** The function user-login-name now accepts an optional
-argument uid.  If the argument is non-nil, user-login-name
-returns the login name for that user id.
-
-*** system-name, user-name, user-full-name and user-real-name are now
-variables as well as functions.  The variables hold the same values
-that the functions would return.  The new variable multiple-frames
-is non-nil if at least two non-minibuffer frames are visible.  These
-variables may be useful in constructing the value of frame-title-format
-or icon-title-format.
-
-*** Changes in time-conversion functions.
-
-**** The new function format-time-string takes a format string and a
-time value.  It converts the time to a string, according to the format
-specified.  You can specify what kind of conversion to use with
-%-specifications.
-
-**** The new function decode-time converts a time value into a list of
-specific items of information: the year, month, day of week, day of
-month, hour, minute and second.  (A time value is a list of two or
-three integers.)
-
-**** The new function encode-time converts specific items of time
-information--the second, minute, hour, day, month, year, and time
-zone--into a time value.
-
-* Changes in Emacs 19.27
-
-There are no changes; however, here is one bug fix made in 19.26 that users
-think should be documented here.
-
-** SPC and DEL in Info now handle menus consistently.
-
-SPC and DEL scroll through an entire subtree an Info manual.  Once you
-scroll through a node far enough to reach a menu, SPC begins moving
-into the subnodes of the menu, starting with the first one.  When you
-reach the end of a subnode, SPC moves into the next subnode, and so
-on.
-
-DEL more or less scrolls through the same text in reverse order.
-
-* User Editing Changes in Emacs 19.26
-
-** In the X toolkit version, if you click on a menu bar item and
-release the button quickly outside the menu, the menu remains visible
-until you click or type something else.  If you click on the menu, you
-select from the menu.  Any other mouse click makes the menu disappear.
-Keyboard input gets rid of the menu and then is processed normally.
-
-"Quickly" means within double-click-time milliseconds.
-
-** The C-x 5 commands to select a buffer in "another frame" now use an
-existing iconified frame, if any, deiconifying it.  They also raise
-the frame.
-
-** Region highlighting on a black-and-white-only display now uses
-underlining.  Inverse-video had the problem that you couldn't see
-the cursor.
-
-** You can now change the height of a window by pressing mouse-1 on
-the mode line and dragging it up and down.
-
-** If you set the environment variable LC_CTYPE to iso_8859_1 or
-iso-8859-1, Emacs automatically sets up for display and syntactic
-handling of the ISO Latin-1 character set.
-
-This does not automatically load any of the packages for input of
-these characters, because it's not yet clear what is right to do.
-You must still explicitly load either iso-transl or iso-acc.
-
-** For a read-only buffer that is also modified, the mode line now displays
-%* instead of %%.
-
-** M-prior (scroll-other-window-down) is a new command that works like
-M-next (and C-M-v) but scrolls in the opposite direction.
-
-M-home moves to the beginning of the buffer, in the other window.
-M-end moves to the end of the buffer, in the other window.  These two
-commands, along with M-next and M-prior, form a series of commands for
-moving around in the other window.
-
-** In change logs, the mail address is now delimited with <...> instead
-of (...).
-
-This makes it a little more convenient to extract the mail address for
-use in mailing a message.
-
-** In Shell mode and other comint modes, C-a has now returned to
-its ordinary meaning: move to the beginning of the line.
-Use C-c C-a to move to the end of the prompt.
-
-** If you set mail-signature to t to cause automatic insertion of
-your .signature file, you now get a -- before the signature.
-
-** Setting rmail-highlighted-headers to nil entirely turns off
-highlighting in Rmail.  However, if your motivation for doing this is
-that the highlighted text doesn't look good on your display, it might
-be better to change the appearance of the `highlight' face.  Once
-you've done that, you may find Rmail highlighting is useful.
-
-** In the calendar, mouse-2 is now used only for commands that apply to a date.
-If you click it when not on a date, it gives an immediate error.
-
-Mouse-3 in the calendar now gives a menu of commands that do not apply
-to a particular date.
-
-The D command displays diary entries from a specified diary file (not
-your standard diary file).
-
-** In the gnus-uu package, the binding for gnus-uu-threaded-decode-and-view
-is now C-c C-v C-d, not C-c C-v C-h.  Thus, C-c C-v C-h is now available
-for asking for a list of the subcommands of C-c C-v.
-
-** You can now specify "who you are" for various Emacs packages by
-setting just one variable, user-mail-address.  This currently applies
-to posting news with GNUS and to making change log entries.  It may
-apply to additional Emacs features in the future.
-
-* Lisp-Level Changes in Emacs 19.26:
-
-** The function insert-char now takes an optional third argument
-which, if non-nil, says the inserted characters should inherit sticky
-text properties from the surrounding text.
-
-** The `diary' library has been renamed to `diary-lib'.  If you refer
-to this library in your Lisp code, you must update the references.
-
-** Sending text to a subprocess can read input from subprocesses if it
-has to wait because the destination subprocess's terminal input buffer
-is full.
-
-It was already possible in unusual occasions for this operation to
-read subprocess input, but it did not happen very often.  It is now
-more likely to happen.
-
-** last-nonmenu-event is now bound to t around filter functions and sentinels.
-This is to ensure that y-or-n-p and yes-or-no-p use the keyboard by default.
-
-** In mode lines, %+ now displays as % for unmodified read-only
-buffers.  It is now the same as %* except in the case of a modified
-read-only buffer; in that case, %+ displays as *.
-
-The old meaning of %+ is now available on %&.
-It displays * for a modified buffer and - for an unmodified buffer,
-regardless of read-only status.
-
-** You can now use `underline' in the color list of a face.
-It serves as a last resort, and says to underline the face
-(if previous color list elements can't be used).
-
-** The new function x-color-values returns the list of color values
-for a given color name (a string).  The list contains three integers
-which give the amounts of red, green and blue in the color: (R G B).
-
-** In run-at-time, 0 as the repeat interval means "don't repeat".
-
-** The variable trim-versions-without-asking has been renamed to
-delete-old-versions.
-
-** The new function other-window-for-scrolling returns the choice of
-other window for C-M-v to scroll.
-
-** Note that the function fceiling was mistakenly documented as fceil before.
-
-* Changes in cc-mode.el in Emacs 19.26:
-
-** A new syntactic symbol has been added: substatement-open.  It
-  defines the open brace of a substatement block.  These used to get:
-  ((block-open ...) (substatement . ...)).
-
-  Non-block substatement lines still get just ((substatement . ...))
-
-  Note that the custom indent function c-adaptive-block-open has been
-  removed as obsolete.
-
-** You can now specify the `hanginess' of closing braces.  See
-  c-hanging-braces-alist.
-
-** Recognizes try and catch blocks in C++.  They are given the
-  substatement syntactic symbol.
-
-** should be generally more forgiving about non-GNU standard top-level
-  construct definition styles (i.e. where the function/class/struct
-  opening brace does not start in column zero).
-
-  If you hang the braces that open a top-level construct on the right
-  edge, and you find you still need to define defun-open-prompt (Emacs
-  19) please let me know.  Note that there may still be performance
-  issues related to non-column zero opening braces.
-
-** c-macro-expand is put on C-c C-e
-
-** New style: "Default".  Resets indentation to those shipped with
-  cc-mode.el.
-
-** internal defun c-indent-via-language-element has been renamed
-  c-indent-line for compatibility with c-mode.el and awk-mode.
-
-** new buffer-local variable c-comment-start-regexp for (potential)
-  flexibility in adding new modes based on cc-mode.el
-
-* Changes in Emacs 19.25
-
-The variable x-cross-pointer-shape (which didn't really exist) has
-been renamed to x-sensitive-text-pointer-shape, and now does exist.
-
-* Changes in Emacs 19.24
-
-Here is a list of new Lisp packages introduced since 19.22.
-
-derived.el		Define new major modes based on old ones.
-dired-x.el		Extra Dired features.
-double.el		New mode for conveniently inputting non-beyond chars.
-easymenu.el		Create menus easily.
-ediff.el		Snazzy diff interface.
-foldout.el		A kind of outline mode designed for editing programs.
-gnus-uu.el		UUdecode in GNUS buffers.
-ielm.el			Interactively evaluate Lisp.
-			 This is a replacement for Lisp Interaction Mode.
-iso-cvt.el		Conversion of beyond-ASCII characters between
-			 various different representations.
-jka-compr.el		Automatic compression/decompression.
-mldrag.el		Drag modeline to change heights of windows.
-mail-hist.el		Provides history for headers of outgoing mail.
-rsz-mini.el		Automatically resizing minibuffers.
-s-region.el		Set region by holding shift.
-skeleton.el		Templates for statement insertion.
-soundex.el		Classifying words by how they sound.
-tempo.el		Template insertion with hotspots.
-
-* User Editing Changes in 19.23.
-
-** Emacs 19.23 uses Ispell version 3.
-
-Previous Emacs 19 versions used Ispell version 4.  That version had
-improvements in storing the dictionary compactly, but these are not
-very important nowadays.  Meanwhile, in parallel to the work on Ispell
-4, many useful features were added to Ispell 3.  Until a few months
-ago, the terms on Ispell 3 did not let us use it; but they have now
-been changed, so now we are using it.  We are dropping Ispell 4.
-
-** Emacs 19.23 can run on MS-DOG.  See the file MSDOS in the same
-directory as this file.
-
-** Emacs 19.23 can work with an X toolkit.  You must specify toolkit
-operation when you configure Emacs: use the option
---with-x-toolkit=yes.  (This option uses code developed by Lucid;
-thanks to Frederic Pierresteguy for helping to adapt it.)
-
-** Emacs now has dialog boxes; yes/no and y/n questions automatically
-use them in commands invoked with the mouse.  For more information,
-see below under "Lisp programming changes".
-
-** Menus now display the keyboard equivalents (if any) of the menu
-commands in parentheses after the menu item.
-
-** Kill commands, used in a read-only buffer, now move point across
-the text they would otherwise have killed.  This way, you can use
-repeated kill commands to transfer text into the kill ring.
-
-** There is now a global mark ring in addition to the mark ring that is local
-to each buffer.  The global mark ring stores positions in any buffer.  Any
-time the mark is set and the current buffer is different from the last time
-the mark was set, the new mark is pushed on the global mark ring as well.
-The new command C-x C-SPC (pop-global-mark) pops the global mark ring and
-jumps to the last mark pushed, first switching to that buffer.
-
-** Query Replace is now available in the Edit menu.
-
-** ESC no longer simply exits a Query Replace.  It now exits the Query
-Replace and remains pending.  Thus, ESC A and M-A are now equivalent
-in Query Replace.
-
-To simply exit a Query Replace, type RET or Period.
-
-** M-mouse-2 now puts point at the end of the yanked secondary selection.
-
-** Mouse-1 in the mode line now simply selects the window above that
-mode line.  Mouse-2 in the mode line selects that window and expands
-it to fill the frame it is in.
-
-** You can now use mouse-2 in a Dired buffer or Tar mode buffer to find
-a file you click on, in a compilation buffer to go to a particular
-error message, and in a *Occur* buffer to go to a particular
-occurrence.
-
-(It was already possible to do likewise in Info and in completion list
-buffers.)
-
-What's more, the sensitive areas of the buffer now highlight when you
-move the mouse over them.
-
-** In a completion list buffer, the command RET now chooses the completion
-that is around or next to point.
-
-** If you specify the foreground color for the `mode-line' face, and
-mode-line-inverse-video is non-nil, then the default background color
-is the usual foreground color.
-
-** revert-buffer now preserves markers pointing within the unchanged
-text (if any) at the beginning and end of the file.
-
-** Version control checkin and checkout preserve all markers if the
-file does not contain any of the magic version header sequences that
-are updated automatically by RCS and SCCS.  If such version headers
-are present, checkin and checkout preserve a marker unless it comes
-between two such sequences.  (So it's a good idea to put all the
-header sequences close together.)
-
-** When a large deletion shuts off auto save temporarily in a buffer,
-you can now turn it on again by saving the buffer with C-x C-s (as was
-possible in Emacs 18).  You can also turn it on again with M-1 M-x
-auto-save (as has been possible in Emacs 19).
-
-** C-x r d now runs the command delete-rectangle.
-
-** The new command imenu shows you a menu of interesting places in the
-current buffer and lets you select one; then it moves point there.
-The definition of interesting places depends on the major mode, but
-typically this includes function definitions and such.  Normally,
-imenu displays the menu in a buffer; but if you bind it to a mouse
-event, it shows a mouse popup menu.
-
-** You can make certain chosen buffers, that normally appear in a
-separate window, appear in special frames of their own.  To do this,
-set special-display-buffer-names to a list of buffer names; any buffer
-whose name is in that list automatically gets a special frame when it
-is to be displayed in another window.
-
-A good value to try is ("*compilation*" "*grep*" "*TeX Shell*").
-
-More generally, you can set special-display-regexps to a list of regular
-expressions; then each buffer whose name matches any of those regular
-expressions gets its own frame.
-
-The variable special-display-frame-alist specifies the frame
-parameters for these frames.  It has a default value, so you don't
-need to set it.
-
-** If you set sentence-end-double-space to nil, the fill commands
-expect just one space at the end of a sentence.  (If you want the
-sentence commands to accept single spaces, you must modify the regexp
-sentence-end also.)
-
-** You can suppress the startup echo area message by adding text like
-this to your .emacs file:
-
-(setq inhibit-startup-echo-area-message "YOUR-LOGIN-NAME")
-
-Simply setting inhibit-startup-echo-area-message to your login name is
-not sufficient to inhibit the message; Emacs explicitly checks whether
-.emacs contains an expression as shown above.  Your login name must
-appear in the expression as a Lisp string constant.
-
-This way, you can easily inhibit the message for yourself if you wish,
-but thoughtless copying of your .emacs file will not inhibit the
-message for someone else.
-
-** Outline minor mode now uses C-c C-o as a prefix instead of just C-c.
-
-** In Outline mode, hide-subtree is now C-c C-d.  (It was C-c C-h; but
-that is now a conventional way to ask for help about C-c commands.)
-
-** There are two additional commands in Outline mode.
-M-x hide-sublevels
-  hides all headers except the topmost N levels.
-M-x hide-other
-  hides everything about the body that point is in
-  plus the headers leading up from there to the top of the tree.
-
-** In iso-transl and iso-insert, the sequences for entering A-ring and
-the AE ligature are now just A and E (plus the initial C-x 8 or Alt).
-You used to have to enter AA or AE, after the C-x 8 prefix of course.
-Likewise for lower case a-ring and ae.
-
-** iso-transl now defines convenient Alt keys as well as the C-x 8 prefix.
-Instead of prefixing a sequence with C-x 8, you can add Alt to the
-first character of the sequence.  For example, Alt-" a is now a way
-to enter an a-umlaut.
-
-** CC mode is a greatly improved mode for C and C++.
-See the following page.
-
-** tcl mode is a new major mode.  It provides features for
-editing, indenting and running tcl programs.
-
-** Compilation minor mode lets you parse error messages in any buffer,
-not just a normal compilation output buffer.  Type M-x
-compilation-minor-mode to enable the minor mode; then C-c C-c jumps to
-the source location for the error at point, as in the `*compilation*'
-buffer.  If you use compilation-minor-mode in an Rlogin buffer, it
-automatically accesses remote source files by ftp.
-
-** Comint and shell mode changes:
-
-*** Comint modes (including Shell mode, GUD modes, etc.) now bind
-C-M-l to the command comint-show-output.  This command scrolls the
-buffer to show the last batch of output from the subprogram.
-
-*** Completion in Comint modes now truly operates on the string before
-point, rather than the word that point is within.
-
-*** Comint mode file name completion ignores those files that end with a
-string in the new variable comint-completion-fignore.  This variable's
-default value is nil.
-
-*** Shell mode uses the variable shell-completion-fignore to set
-comint-completion-fignore.  The default value is nil, but some
-people prefer ("~" "#" "%").
-
-*** The function `comint-watch-for-password-prompt' can be used to
-suppress echoing when a subprocess asks for a password.  To use it,
-do this:
-
-(add-hook 'comint-output-filter-functions
-	  'comint-watch-for-password-prompt)
-
-*** You can use M-x shell-strip-ctrl-m to strip ^M characters from
-process output.
-
-*** In Shell mode, TAB now completes environment variables, if possible,
-and expands directory references.
-
-*** You can use M-x comint-run to execute any program of your choice in
-a comint mode.  Some programs such as shells, rlogin, and debuggers
-have their own specialized modes; this command is one way to use
-comint to run programs for which no such specialized mode exits.  (You
-can also run a shell with M-x shell and run the program of your choice
-under the shell--but that gives you the specializations of Shell
-mode.)
-
-** When you run GUD (M-x gdb, M-x dbx, and so on), you can use TAB
-to do file name completion in the minibuffer.
-
-The "Complete" menu includes an item for directory expansion.
-
-** GUD working with future versions of GDB will permit TAB for
-GDB-style symbol completion.  This will work with GDB 4.13.
-
-** Rmail no longer gets new mail automatically when you visit an Rmail
-file specified by name--not even if it is your primary Rmail file.  To
-get new mail, type `g'.  This feature is an advantage because you now
-have a choice of whether to get new mail.  (This change actually
-occurred in an earlier version, but wasn't listed here then, since it
-made the code do what the documentation already said.)
-
-** Rmail now highlights certain fields automatically, when you use X
-windows.  The variable rmail-highlighted-headers controls which
-fields.
-
-** If you set rmail-summary-window-size to an integer, Rmail uses
-a window that many lines high for the summary buffer.
-
-** rmail-input-menu is a new command that visits an Rmail file letting
-you choose which file with a mouse menu.  rmail-output-menu is
-similar; it outputs the current message, using a mouse menu to choose
-which Rmail file.  These commands use the variables
-rmail-secondary-file-directory and rmail-secondary-file-regexp.
-
-** The mh-e package has been changed substantially.
-See the file ./MH-E-NEWS for details.
-
-** The calendar and diary have new features.
-
-The menu bar for the calendar contains most of the calendar commands,
-arranged into logical categories.
-
-Mouse-2 now performs specific-date-related commands when clicked on a
-date in the calendar window and common three-month-related commands
-when clicked elsewhere in the calendar window.
-
-You can set up colored/shaded highlighting of holidays, diary entry
-dates, and today's date, by setting calendar-holiday-marker,
-diary-entry-marker, and calendar-today-marker to a face instead of a
-character.  Using a special face is now the default if you are using a
-window system.
-
-** The appt package for displaying appointment reminders has new
-features.
-
-*** The appt alarm window stays for the full duration of
-appt-display-duration.  It no longer disappears when you start typing
-text.
-
-*** You can change the way the appointment window is created/deleted by
-setting the variables appt-disp-window-function and
-appt-delete-window-function.
-
-For instance, these variables can be set to functions that display
-appointments in pop-up frames, which are lowered or iconified after
-appt-display-duration seconds.
-
-** desktop.el can now save a list of buffer-local variables,
-and saves more global ones.
-
-** Pascal mode has been completely rewritten.  It now features
-completing of function names, variables and type definitions around
-current point (like M-TAB does with lisp-symbols).  There's also an
-outline mode (M-x pascal-outline) that hides the bodies of all
-functions you're not working with.
-
-** Edebug has a number of changes:
-
-*** Edebug syntax error reporting is improved.
-
-*** Top-level forms and defining forms other than defun and defmacro may
-now be debugged with Edebug.
-
-*** Edebug specifications may now contain body, &define, name, arg or
-arglist, def-body, and def-form, to support definitions.
-
-*** edebug-all-defuns is renamed to edebug-all-defs.
-def-edebug-form-spec is replaced by def-edebug-form whose arguments
-are unevaluated.  The old names are still available for now.
-
-*** Frequency counts and coverage data may be displayed for functions being
-debugged.
-
-*** A global break condition is now checked at every stop point.
-
-*** The previous condition at a breakpoint may now be edited.
-
-*** A new "next" mode stops only after expression evaluation.
-
-*** A new command, top-level-nonstop, does not even stop for unwind-protect,
-as top-level would.
-
-* Changes in CC mode in Emacs 19.23.
-
-`cc-mode' provides ANSI C, K&R C, and ARM C++ language editing.  It
-represents the merge of c++-mode.el and c-mode.el.  cc-mode provides a
-new, more flexible indentation engine so that indentation
-customization is more intuitive.  There are two steps to calculating
-indentation: first, CC mode analyzes the line for syntactic content,
-then based on this content it applies user defined offsets and adds
-this offset to the indentation of some previous line.
-
-The syntactic analysis determines if the line describes a `statement',
-`substatement', `class-open', `member-init-intro', etc.  These are
-described in detail with C-h v c-offsets-alist.  You can change the
-offsets interactively with C-c C-o (c-set-offsets), or
-programmatically in your c-mode-common-hook, which is run both by
-c-mode and c++-mode.  You can also set up "styles" in the same way
-that you could with c-mode.el.   The variable c-basic-offset controls
-the basic offset given to a level of indentation.
-
-If, for example, you wanted to change this style:
-
-int foo (int i)
-{
-    switch (i) {
-    case 1:
-        printf ("its a foo\n");
-        break;
-    default:
-        printf ("don't know what it is\n");
-        break;
-    }
-}
-
-into this:
-
-int foo (int i)
-{
-    switch (i) {
-      case 1:
-        printf ("its a foo\n");
-        break;
-      default:
-        printf ("don't know what it is\n");
-        break;
-    }
-}
-
-you could add the following to your .emacs file:
-
-(defun my-c-mode-common-hook ()
-  (c-set-offset 'case-label 2)
-  (c-set-offset 'statement-case-intro 2))
-(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)
-
-** New variables:
-
-c-offsets-alist contains an association list of syntactic symbols and
-their relative offsets.  Do a "C-h v c-offsets-alist" to get a list of
-all syntactic symbols currently defined, and their meanings.  You
-should not change this variable directly; use the supplied interface
-commands c-set-offset and c-set-style.
-
-c-mode-common-hook is run by both c-mode and c++-mode during their
-common initializations.  You should put any customizations that are
-the same for both C and C++ into this hook.
-
-The variable c-strict-semantics-p is used mainly for debugging.  When
-non-nil, CC mode signals an error if it returns a syntactic symbol
-that can't be found in c-offsets-alist.
-
-If you want CC mode to echo the syntactic analysis for a particular
-line when you hit the TAB key, set c-echo-semantic-information-p to
-non-nil.
-
-c-basic-offset controls the standard amount of offset for a level of
-indentation.  You can set a syntactic symbol's offset to + or - as a
-short-hand for positive or negative c-basic-offset.
-
-c-comment-only-line-offset lets you control indentation given to lines
-which contain only a comment, in the case of C++ line style comments,
-or the introduction to a C block comment.  Comment-only lines at
-column zero can be anchored there independent of the indentation given
-to other comment-only lines.
-
-c-block-comments-indent-p controls the style of C block comment
-re-indentation.  If you put leading stars in front of comment
-continuation lines, you should set this variable to nil.
-
-c-cleanup-list is a list describing certain C and C++ constructs to be
-"cleaned up" as they are typed, but only when the auto-newline feature
-is turned on.  In C++, make sure this variable contains at least
-'scope-operator so that double colons will not be separated by a
-newline.
-
-Colons (`:') and braces (`{` and `}') are special in C and C++.  For
-certain constructs, you may like them to hang on the right edge of the
-code, or you may like them to start a new line of code.  You can use
-the two variables c-hanging-braces-alist and c-hanging-colons-alist
-to control whether newlines are placed before and/or after colons and
-braces when certain C and C++ constructs are entered.  For example,
-you can control whether the colon that introduces a C++ member
-initialization list hangs on the right edge, starts a new line, or has
-no newlines either before or after it.
-
-c-special-indent-hook is run after a line is indented by CC mode.  You
-can perform any custom indentations here.
-
-c-delete-function is the function that is called when a single
-character is deleted with the c-electric-delete command (DEL).
-
-c-electric-pound-behavior describes what happens when you enter the
-`#' that introduces a cpp macro.
-
-If c-tab-always-indent is neither t nor nil, then TAB inserts a tab
-when within strings, comments, and cpp directives, but it reindents
-the line unconditionally.
-
-c-inhibit-startup-warnings-p inhibits warnings about any old
-version of Emacs you might be running, which could be incompatible
-with cc-mode.
-
-** There are two new minor-mode features in CC mode: auto-newline and
-hungry-delete.  Auto-newline inserts newlines automatically as you
-type certain constructs.  Hungry-delete consumes all preceding
-whitespace (spaces, tabs, and newlines) when the delete key is hit.
-You can toggle auto-newline on and off on a per-buffer basis by
-hitting C-c C-a.  You can toggle hungry-delete on and off by hitting
-C-c C-d.   You can toggle them both on and off together with C-c C-t.
-
-** Slash (`/') and star (`*') are now both electric characters.
-
-** New commands:
-
-The new C-c C-o (c-set-offset) command can be used to interactively change
-the offset for a particular syntactic symbol.
-
-The new command C-c : (c-scope-operator) inserts the C++ scope operator in
-c++-mode only.
-
-The new command C-c C-q (c-indent-defun) indents the entire enclosing
-top-level function or class.
-
-The new command C-c C-s (c-show-semantic-information) echos the current
-syntactic analysis without re-indenting the current line.
-
-The new commands M-x c-forward-into-nomenclature and M-x
-c-backward-into-nomenclature (currently otherwise unbound to a key
-sequence), make movement easier when using the C++ variable naming
-convention of VariableNamesWithoutUnderscoresButEachWordCapitalized.
-
-** Command from c-mode.el that have been renamed in cc-mode.el:
-
-  electric-c-brace      => c-electric-brace
-  electric-c-semi       => c-electric-semi&comma
-  electric-c-sharp-sign => c-electric-pound
-  mark-c-function       => c-mark-function
-  electric-c-terminator => c-electric-colon
-  indent-c-exp          => c-indent-exp
-  set-c-style           => c-set-style
-
-** Variables from c-mode.el that are obsolete with cc-mode.el:
-
-  c-indent-level
-  c-brace-imaginary-offset
-  c-brace-offset
-  c-argdecl-indent
-  c-label-offset
-  c-continued-statement-offset
-  c-continued-brace-offset
-
-* Lisp programming changes in Emacs 19.23.
-
-** To pop up a dialog box, call x-popup-dialog.
-It takes two arguments, POSITION and CONTENTS.
-
-POSITION specifies which frame to place the dialog box over;
-the dialog box always goes on the center of the frame.
-POSITION may be a mouse event, a window, a frame,
-or t meaning use the frame that the mouse is in.
-
-CONTENTS specifies the contents of the dialog box.
-It looks like a single pane of a popup menu:
-(TITLE ITEM1 ITEM2 ...), where each ITEM has the form (STRING . VALUE).
-The return value is VALUE from the chosen item.
-
-An ITEM may also be just a string--that makes a nonselectable item.
-An ITEM may also be nil--that means to put all preceding items
-on the left of the dialog box and all following items on the right.
-(By default, approximately half appear on each side.)
-
-If your Emacs is not using an X toolkit, then it cannot display a
-real dialog box; so instead it displays a pop-up menu in the center
-of the frame.
-
-** y-or-n-p, yes-or-no-p and map-y-or-n-p now use menus or dialog boxes
-to ask their question(s) if the command that is running was reached by
-a mouse event.
-
-If you want to control which way these functions work, bind the
-variable last-nonmenu-event around the call.  These functions use the
-keyboard if that variable holds a keyboard event (actually, any
-non-list); they use the mouse if that variable holds a mouse event
-(actually, any list).
-
-** The mouse-face property is now implemented, both in overlays and as
-a text property.  It specifies a face to use when the mouse is in the
-range of text for which the property is specified.
-
-** When text has a non-nil `intangible' property, you cannot move point
-within it or right before it.  If you try, point actually moves to the
-end of the intangible text.  Note that this means that backward-char
-is a no-op when there is an intangible character to the left of point.
-
-** minibuffer-exit-hook is a new normal hook that is run when you
-exit the minibuffer.
-
-** The variable x-cross-pointer-shape specifies the cursor shape to use
-when the mouse is over text that has a mouse-face property.
-
-** The new variable interpreter-mode-alist specifies major modes to use
-for shell scripts that specify a command interpreter.  Its elements
-look like (INTERPRETER . MODE); for example, ("perl" . perl-mode) is
-one element present by default.  This feature applies only when the
-file name doesn't indicate which mode to use.
-
-** If you use a minibuffer-only frame, set the variable
-minibuffer-auto-raise to t, and entering the minibuffer will then
-raise the minibuffer frame.
-
-** If pop-up-frames is t, display-buffer now looks for an existing
-window in any visible frame, showing the specified buffer, and uses
-such a window in preference to making a new frame.
-
-** In the functions next-window, previous-window, next-frame,
-previous-frame, get-buffer-window, get-lru-window, get-largest-window
-and delete-windows-on, if you specify `visible' for the last argument,
-it means to consider all visible frames.
-
-** Mouse events now give the X and Y coordinates in pixels, rather than
-in characters.  You can convert these values to characters by dividing by
-the values of (frame-char-width) and (frame-char-height).
-
-** The new functions mouse-pixel-position and set-mouse-pixel-position
-read and set the mouse position in units of pixels.  The existing
-functions mouse-position and set-mouse-position continue to work with
-units of characters.
-
-** The new function compute-motion is useful for computing the width
-of certain text when it is displayed.
-
-** The function vertical-motion now takes an option second argument WINDOW
-which says which window to use for the display calculations.
-
-vertical-motion always operates on the current buffer.
-It is ok to specify a window displaying some other buffer.
-Then vertical-motion uses the width, hscroll and display-table of
-the specified window, but still scans the current buffer.
-
-** An error no longer sets last-command to t; the value of last-command
-does reflect the previous command (the one that got an error).
-
-If you do not want a particular command to be recognized as the
-previous command in the case where it got an error, you must code that
-command to prevent this.  Set this-command to t at the beginning of
-the command, and set this-command back to its proper value at the end,
-like this:
-
-  (defun foo (args...)
-    (interactive ...)
-    (setq this-command t)
-    ...do the work...
-    (setq this-command 'foo))
-
-or like this:
-
-  (defun foo (args...)
-    (interactive ...)
-    (let ((old-this-command this-command))
-      (setq this-command t)
-      ...do the work...
-      (setq this-command old-this-command)))
-
-The undo and yank commands do this.
-
-** If you specify an explicit title for a new frame when you create it,
-the title is used as the resource name when looking up X resources to
-control the shape of that frame.  If you don't specify the frame title,
-the value of x-resource-name is used, as before.
-
-** The frame parameter user-position, if non-nil, says that the user
-has specified the frame position.  Emacs reports this to the window
-manager, to tell it not to override the position that the user
-specified.
-
-** Major modes can now set change-major-mode-hook to arrange for state
-to be cleaned up when the user switches to a new major mode.  The function
-kill-all-local-variables runs this hook.  For best results, make the hook a
-buffer-local variable so that it will disappear after doing its job and will
-not interfere with the subsequent major mode.
-
-** The new variable overriding-local-map, if non-nil, specifies a keymap
-that overrides the current local map, all minor mode keymaps, and all
-text property keymaps.  Incremental search uses this feature to override
-all other keymaps temporarily.
-
-** A key definition in a menu keymap can now have additional structure:
-in addition to (ITEMNAME [HELPSTRING] . COMMAND) which was allowed
-before, the form (ITEMNAME [HELPSTRING] (...) . COMMAND) is
-allowed.  (HELPSTRING is optional, and is not currently used.)
-
-Here (...) represents a sublist containing information about keyboard
-key sequences that run the same command COMMAND.  Displaying the menu
-automatically creates and updates the sublist when appropriate; you
-need never set these up yourself.
-
-lookup-key, key-binding, and similar functions return just COMMAND,
-not the whole binding.
-
-To precompute this information for a given keymap, you can do
-  (x-popup-menu nil KEYMAP).
-
-** When you specify coordinates for x-popup-menu as a list ((XOFFSET
-YOFFSET) WINDOW), the coordinates are now measured in pixels.
-
-** where-is-internal now takes just four arguments:
-DEFINITION KEYMAP FIRSTONLY NOINDIRECT.
-The single argument KEYMAP replaces two arguments KEYMAP and KEYMAP1.
-
-If KEYMAP is non-nil, where-is-internal searches only KEYMAP and the
-global keymap.
-
-If KEYMAP is nil, where-is-internal searches all the currently active
-keymaps, but finds the active keymaps as if overriding-local-map were
-nil.
-
-If you pass a list of the form (keymap) as KEYMAP, where-is-internal
-searches only the global map.  (This is not a special case--it follows
-from the specifications above.)
-
-If you pass the value of overriding-local-map as KEYMAP, where-is-internal
-searches in exactly the same was as command execution does.
-
-** Use the macro define-derived-mode to define a new major mode that
-inherits the definition of another major mode.  Here's how to define a
-command named hypertext-mode that inherits from the command text-mode:
-
-    (define-derived-mode hypertext-mode text-mode "Hypertext"
-      "Major mode for hypertext.\n\n\\{hypertext-mode-map}"
-      (setq case-fold-search nil))
-
-    (define-key hypertext-mode-map [down-mouse-3] 'do-hyper-link)
-
-The new mode has its own keymap, which inherits from that of the
-original mode.  It also has its own syntax and abbrev tables, which
-are initialized by copying those of the original mode.  It also has
-its own mode hook.  All are given names made by appending a suffix
-to the name of the new mode.
-
-** A syntax table can now inherit the data for some characters from
-standard-syntax-table, while specifying other characters itself.
-Syntax code 13 means "inherit this character from the standard syntax
-table."  In modify-syntax-entry, the character `@' represents this code.
-
-The function `make-syntax-table' now creates a syntax table which
-inherits all letters and control characters (0 to 31 and 128 to 255)
-from the standard syntax table, while copying the other characters
-from the standard syntax table.  Most syntax tables in Emacs are set
-up this way.
-
-This sort of inheritance is useful for people who set up character
-sets with additional alphabetic characters in the range 128 to 255.
-Just changing the standard syntax for these characters affects all
-major modes.
-
-** The new function transpose-regions swaps two regions of the buffer.
-It preserves the markers in those two regions, so that they stay with
-the surrounding text as it is swapped.
-
-** revert-buffer now runs before-revert-hook at the beginning and
-after-revert-hook at the end.  These can be used by minor modes
-that need to clean up state variables.
-
-** The new function get-char-property is like get-text-property, but
-checks for overlays with properties as well as for text properties.
-It checks for overlays first, in order of descending priority, and
-text properties last.
-
-get-char-property allows windows as the OBJECT argument, as well
-as buffers and strings.  If you specify a window, then only overlays
-active on that window are considered.
-
-** Overlays can have the `invisible' property.
-
-** The function insert-file-contents now takes an optional fifth
-argument called REPLACE.  If this is t, it means to replace the
-contents of the buffer (actually, just the accessible portion)
-with the contents of the file.
-
-This is better than simply deleting and inserting the whole thing
-because (1) it preserves some marker positions and (2) it puts less
-data in the undo list.
-
-** The variable inhibit-first-line-modes-regexps specifies classes of
-file names for which -*- on the first line should not be looked for.
-
-** The variables before-change-functions and after-change-functions
-hold lists of functions to call before and after a change in the
-buffer's text.  They work much like before-change-function and
-after-change-function, except that they hold a list of functions
-instead of just one.
-
-These variables will eventually make before-change-function and
-after-change-function obsolete.
-
-** The variable kill-buffer-query-functions holds a list of functions
-to be called with no arguments when a buffer is about to be killed.
-(That buffer is the current buffer when the function is called.)
-If any of the functions returns nil, the buffer is not killed
-(and the remaining functions in the list are not called).
-
-** The variable kill-emacs-query-functions holds a list of functions
-to be called with no arguments when you ask to exit Emacs.
-If any of the functions returns nil, the exit is canceled
-(and the remaining functions in the list are not called).
-
-** The argument for buffer-disable-undo is now optional,
-like the argument for buffer-enable-undo.
-
-** The new variable system-configuration holds the canonical three-part
-GNU configuration name for which Emacs was built.
-
-** The function system-name now tries harder to return a fully qualified
-domain name.
-
-** The variable emacs-major-version holds the major version number
-of Emacs.  (Currently 19.)
-
-** The variable emacs-minor-version holds the minor version number
-of Emacs.  (Currently 23.)
-
-** The default value of comint-input-autoexpand is now nil.
-However, Shell mode sets it from the value of shell-input-autoexpand,
-whose default value is `history'.
-
-** The new function set-process-window-size specifies the terminal window
-size for a subprocess.  On some systems it sends the subprocess a signal
-to let it know that the size has changed.
-
-** %P is a new way to display a percentage in the mode line.  It
-displays the percentage of the buffer text that is above the *bottom*
-of the window (which includes the text visible, in the window as well
-as the text above the top).  It displays `Top' as well as the
-percentage if the top of the buffer is visible on screen.
-
-** %+ in the mode line specs displays `*' if the buffer is modified,
-and otherwise `-'.  It never displays `%', as `%*' would do; whether the
-buffer is read-only has no effect on %+.
-
-** The new functions ffloor, fceiling, fround and ftruncate take a
-floating point argument and return a floating point result whose value
-is a nearby integer.  ffloor returns the nearest integer below; fceiling,
-the nearest integer above; ftruncate, the nearest integer in the
-direction towards zero; fround, the nearest integer.
-
-** Setting `print-escape-newlines' to a non-nil value now also makes
-formfeeds print as ``\f''.
-
-** auto-mode-alist now has a new feature.  If an element has the form
-(REGEXP FUNCTION t), and REGEXP matches the file name, then after calling
-FUNCTION, Emacs deletes the part of the file name that matched REGEXP
-and then searches auto-mode-alist again for a new match.
-
-This is useful for uncompression packages.  An entry of this sort for
-.gz can uncompress the file and then put the uncompressed file in the
-proper mode according to the name sans .gz.
-
-** The new function emacs-pid returns the process ID number of Emacs.
-
-** user-login-name now consistently checks the LOGNAME environment
-variable before USER.  user-original-login-name is obsolete, since it
-provides the same functionality.  To ignore the environment variables,
-use user-real-login-name.
-
-** There is a more general way of handling the system-specific X
-keysyms.  Set the variable system-key-alist to an alist containing
-elements of the form (CODE . SYMBOL), where CODE is the numeric keysym
-code minus the "vendor specific" bit, and symbol is the name for the
-function key.
-
-** You can use the variable command-line-functions to set up functions
-to process unrecognized command line arguments.  The variable's value
-should be a list of functions of no arguments.  The functions are
-called successively until one of them returns non-nil.
-
-Each function should access the free variables argi (the current
-argument) and command-line-args-left (the remaining arguments).  The
-function should return non-nil only if it recognizes and processes the
-argument in argi.  If it does so, it may consume following arguments
-as well by removing them from command-line-args-left.
-
-** There's a new way for a magic file name handler to run a primitive
-and inhibit handling of the file name.  Here is how to do it:
-
-(let ((inhibit-file-name-handlers
-       (cons 'ange-ftp-file-handler
-             (and (eq inhibit-file-name-operation operation)
-                      inhibit-file-name-handlers)))
-      (inhibit-file-name-operation operation))
-  (apply this-operation args))
-
-The function find-file-name-handler now takes two arguments.  The
-second argument is OPERATION, the operation for which the handler is
-being sought.
-
-People have suggested that the second argument should be optional, for
-backward compatibility.  It would be nice if that were possible, but
-it is not.  There is simply no way for find-file-name-handler to do
-the right thing without receiving the proper value for its second
-argument.
-
-** The variable completion-regexp-list affects the completion
-primitives try-completion and all-completions.  They consider
-only the possible completions that match each regexp in the list.
-
-** Case conversion in the function replace-match has been changed.
-
-The old behavior was this: if any word in the old text was
-capitalized, replace-match capitalized each word of the replacement
-text.
-
-The new behavior is this: if the first word in the old text is capitalized,
-replace-match capitalizes the first word of the replacement text.
-
-** You can now specify a case table with CANON non-nil and EQV nil.
-Then the EQV part of the case table is deduced from CANON.
-
-** The new function minibuffer-prompt takes no arguments and returns
-the current minibuffer prompt string.
-
-The new function minibuffer-prompt-width takes no arguments and
-returns the display width of the minibuffer prompt string.
-
-** The new function frame-first-window returns the window at the
-upper left corner of a given frame.
-
-** wholenump is a new alias for natnump.
-
-** The variable installation-directory, if non-@code{nil}, names a
-directory within which to look for the `lib-src' and `etc'
-subdirectories.  This is non-nil when Emacs can't find those
-directories in their standard installed locations, but can find them
-near where the Emacs executable was found.
-
-** invocation-name and invocation-directory are now variables as well
-as functions.  The variable values are the same values that the
-functions return: the Emacs program name sans directories, and the
-directory it was found in.  (invocation-directory may be nil, if Emacs
-can't determine which directory it should be.)
-
-** Installation change regarding version number counting.
-
-The version number of an Emacs executable contains three numbers.
-The first two describe the Emacs release and the third increments
-each time you build Emacs.
-
-Now the file version.el contains only the first two version numbers.
-The third component is now determined on the basis of the names of the
-existing executable files.  This means that version.el is not altered
-by building Emacs.
-
-* Changes in 19.22.
-
-** The mouse click M-mouse-2 now inserts the current secondary
-selection (from Emacs or any other X client) where you click.
-It does not move point.
-This command is called mouse-yank-secondary.
-
-mouse-kill-secondary no longer has a key binding by default.
-Clicking M-mouse-3 (mouse-secondary-save-then-kill) twice
-may be a convenient enough way of killing the secondary selection.
-Or perhaps there should be a keyboard binding for killing the
-secondary selection.  Any suggestions?
-
-** New packages:
-
-*** `icomplete' provides character-by-character information
-about what you could complete if you type TAB.
-
-*** `avoid' moves the mouse away from point so that it doesn't hide
-your typing.
-
-*** `shadowfile' helps you update files that are supposed to be stored
-identically in different places (perhaps on different machines).
-
-** C-h p now knows about four additional keywords: data, faces, mouse,
-and matching.
-
-** The key for starting an inferior Lisp process, in Lisp mode,
-is now C-c C-z instead of C-c C-l.
-
-** When the VC commands ask whether to save the buffer, if you say no,
-they signal an error.  This is so that you won't operate on the wrong
-data.
-
-** ISO Accents mode now supports `"s' as a way of typing German sharp s.
-
-** By default, comint buffers (including Shell mode and debuggers)
-no longer try to scroll to keep the cursor on the bottom line.
-This feature was added in 19.21 but did not work smoothly enough.
-
-** Emacs now handles the window manager "delete window" operation.
-
-** Display of buffers with text properties is much faster now.
-
-** The feature previously announced whereby `insert' does not inherit
-text properties from surrounding text was not fully implemented
-before; but now it is.  use `insert-and-inherit' if you wish to
-inherit sticky properties from the surrounding text.
-
-** The functions next-property-change, previous-property-change,
-next-single-property-change, and previous-single-property-change
-now take one additional optional argument LIMIT that is a position at
-which to stop scanning.  If scan ends without finding the property
-change sought, these functions return the specified limit.
-
-The value returned by previous-single-property-change and
-previous-property-change, when they do find a change, is now one
-greater than what it used to be.  It is the position between the two
-characters whose properties differ, which is one greater than the
-position of the first character found (while scanning back) with
-different properties.
-
-* User editing changes in version 19.21.
-
-** ISO Accents mode supports four additional characters:
-A-with-ring (entered as /A), AE ligature (entered as /E),
-and their lower-case equivalents.
-
-* User editing changes in version 19.20.
-(See following page for Lisp programming changes.)
-
-Note that some of these changes were made subsequent to the Emacs 19.20
-editions of the Emacs manual and Emacs Lisp manual; therefore, if you
-have those editions, do read this page.
-
-** Dragging with mouse button 1 now puts the selected region
-in the kill ring so you can paste it into other X applications.
-
-** Double and triple clicks with button 1 now behave as in xterm,
-selecting the word or line surrounding where you click.  If you drag
-after the last click, you can select a range of words or lines.
-
-** You can use button 3 to extend a mouse-selected region, as in xterm.
-This works for regions selected either by dragging Mouse-1 or by
-multiple-clicking Mouse-1.  Clicking Mouse-3 moves the end of the
-region that is (initially) nearer to where you click.
-
-If the selection was first made by multiple-clicking Mouse-1, and thus
-consists of entire words or lines, Mouse-3 preserves that state.
-
-As before, clicking Mouse-3 again in the same place kills the region
-thus selected.
-
-** The secondary selection commands, M-Mouse-1 and M-Mouse-3, have been
-likewise modified.
-
-** You can now search for strings and regexps using the Edit menu bar menu.
-
-** You can now access bookmarks using the Bookmark submenu in the File
-menu in the menu bar.
-
-** ISO Accents mode, a buffer-local minor mode, provides a convenient
-way to type certain non-ASCII characters.  It makes the characters `,
-', ", ^, ~ and / serve as modifiers for the following letter.  ` and '
-add accents, " adds an umlaut or dieresis, ^ adds a circumflex, ~
-adds a tilde, and / adds a slash to the following letter.
-
-If the following character is not a letter, or cannot be modified as
-requested, then both characters stand for themselves.  If you
-duplicate the modifier accent character, that enters the corresponding
-ISO non-spacing accent character (thus, '' enters the ISO acute-accent
-character).  To enter a modifier character itself, type it followed by
-a space.
-
-This feature can be used whenever a key sequence is expected: for
-ordinary insertion, for searching, and for certain command arguments.
-
-A few special combinations:
-
-~c => c with cedilla
-~d => d with stroke
-~< => left guillemot
-~> => right guillemot
-
-** iso-transl.el is a new library that replaces iso-insert.el.
-It defines C-x 8 as an insertion prefix for the ISO characters
-between 128 and 255, much like iso-insert, except that iso-transl
-works even in searches and help commands--wherever a key sequence
-is expected.
-
-To define case-conversion for these characters for ISO 8859/1,
-load the library iso-syntax.  (This is not new.)
-
-** M-TAB in Text mode now runs the command ispell-complete-word
-which performs completion using the spelling dictionary.
-
-The spelling correction submenu now includes this command
-and another command which completes a word fragment (that is,
-it doesn't assume that the text to be completed starts at the
-beginning of a word.
-
-** In incremental search, you can use M-y to yank the most recent kill
-into the search string.
-
-** The new function ispell-message checks the spelling of a message
-you are about to send or post.  It ignores text cited from other
-messages.
-
-To automatically check all your outgoing messages, include the
-following line in your .emacs file:
-  (setq news-inews-hook (setq mail-send-hook 'ispell-message))
-
-** There is now a separate minibuffer history list for the names of
-extended commands.  This history list is used by M-x when reading
-the command name.  The motivation for this is to prevent command
-names from appearing in the history used for other minibuffer
-arguments.
-
-Note that the history list for entire commands that use the minibuffer
-is a separate feature.  That history list records a command with all
-its arguments, and you must use C-x ESC ESC to access it.
-
-** You can use the new command C-x v ~ VERSION RET to examine a
-specified version of a file that is maintained with version control.
-
-** In Indented Text mode, only blank lines now separate paragraphs.
-Indented lines continue the paragraph that is in progress.  This makes
-the user option variable adaptive-fill-mode have its intended effect.
-
-** Local variable specifications in files for variables whose names end
-in `-hook' and `-function' are now controlled by the variable
-`enable-local-eval', just like the `eval' variable.
-
-** C-x r j (jump-to-register) when restoring a frame configuration now
-makes all unwanted frames (existing frames not mentioned in the
-configuration) invisible.
-
-If you want to delete these unwanted frames, use a prefix argument for
-C-x r j.
-
-** You can customize the calendar to display weeks beginning on
-Monday: set the variable `calendar-week-start-day' to 1.
-
-** Rmail changes.
-
-If you save messages to a file in Unix format while viewing a message
-with its whole header, this now copies to the file the entire header
-of each message copied.
-
-** Comint mode changes.
-
-C-c C-e shows as much output as possible in the window.
-C-c RET copies an old input (the one at point)
-and places the copy after the latest prompt.
-C-c C-p and C-c C-n move through the buffer, stopping at places
-where the subshell prompted for input.
-C-c C-h lists the input history in a `*Help*' buffer.
-
-There are new menu bar items for completion/input/output/signal commands.
-
-Input behavior is configurable.  Variables control whether some windows
-showing the buffer scroll to the bottom before insertion.  These are
-`comint-scroll-to-bottom-on-input' and `before-change-function'.  By default,
-insertion causes the selected window to scroll to the bottom before insertion
-occurs.
-
-Subprocess output now keeps point at the end of the buffer in each
-window individually if point was already at the end of the buffer in
-that window.
-
-If `comint-scroll-show-maximum-output' is non-nil (which is the
-default), then scrolling due to arrival of output tries to place the
-last line of text at the bottom line of the window, so as to show as
-much useful text as possible.  (This mimics the scrolling behavior of
-many terminals.)
-
-By setting `comint-scroll-to-bottom-on-output', you can opt for having
-point jump to the end of the buffer whenever output arrives--no matter
-where in the buffer point was before.  If the value is `this', point
-jumps in the selected window.  If the value is `all', point jumps in
-each window that shows the comint buffer.  If the value is `other',
-point jumps in all nonselected windows that show the current buffer.
-The default value is nil, which means point does not jump to the end.
-
-Input history insertion is configurable.  A variable controls whether only the
-first instance of successive identical inputs is stored in the input history.
-This is `comint-input-ignoredups'.
-
-Completion (bound to TAB) is now more general.  Depending on context,
-completion now operates on the input history, on command names, or (as
-before) on filenames.
-
-Filename completion is configurable.  Variables control whether
-file/directory suffix characters are added (`comint-completion-addsuffix'),
-whether shortest completion is acceptable when no further unambiguous
-completion is possible (`comint-completion-recexact'), and the timing of
-completion candidate listing (`comint-completion-autolist').
-
-Comint mode now provides history expansion.  Insert input using `!'
-and `^', in the same syntax that typical shells use; then type TAB.
-This searches the comint input history for a matching element,
-performs substitution if necessary, and places the result in the
-comint buffer in place of the original input.
-
-History references in the input may be expanded before insertion into
-the input ring, or on input to the interpreter (and therefore
-visibly).  The variable `comint-input-autoexpand' specifies which.
-
-You can make the SPC key perform history expansion by binding
-SPC to the command `comint-magic-space'.
-
-The command `comint-dynamic-complete-variable' does variable name
-completion using the environment variables as set within Emacs.  The
-variables controlling filename completion apply to variable name
-completion too.  This command is normally available through the menu
-bar.
-
-** Shell mode
-
-Paragraph motion and marking commands (default bindings M-{, M-}, M-h) operate
-on output groups (i.e., shell prompt plus associated shell output).
-
-TAB now completes commands, as well as file names and expand history.
-Commands are searched for along the path that Emacs has on startup.
-
-C-c C-f now moves forward a command (`shell-forward-command') and
-C-c C-b now moves backward a command (`shell-backward-command').
-
-Command completion is configurable.  The variables controlling
-filename completion in comint mode apply, together with a variable
-controlling whether to restrict possible completions to only files
-that are executable (`shell-command-execonly').
-
-The input history is initialised from the file name given in the
-variable `shell-input-ring-file-name'--normally `.history' in your
-home directory.
-
-Directory tracking is more robust.  It can cope with command sequences
-and forked commands, and can detect the failure of directory changing
-commands in most circumstances.  It's still not infallible, of course.
-
-You can now configure the behavior of `pushd'.  Variables control
-whether `pushd' behaves like `cd' if no argument is given
-(`shell-pushd-tohome'), pop rather than rotate with a numeric argument
-(`shell-pushd-dextract'), and only add directories to the directory
-stack if they are not already on it (`shell-pushd-dunique').  The
-configuration you choose should match the underlying shell, of course.
-
-* Emacs Lisp programming changes in Emacs 19.20.
-
-** A new function `remove-hook' is now used to remove a hook that you might
-have added with `add-hook'.
-
-** There is now a Lisp pretty-printer in the library `pp'.
-
-** The partial Common Lisp support has been entirely reimplemented.
-
-** When you insert text using `insert', `insert-before-markers' or
-`insert-buffer-substring', text properties are no longer inherited
-from the surrounding text.
-
-When you want to inherit text properties, use the new functions
-`insert-and-inherit' or `insert-before-markers-and-inherit'.
-
-The self-inserting character command does do inheritance.
-
-** Frame creation hooks.
-
-The function make-frame now runs the normal hooks
-before-make-frame-hook and after-make-frame-hook.
-
-** You can now use function-key-map to make a key an alias for other
-key sequences that can vary depending on circumstances.  To do this,
-give the key a definition in function-key-map which is a function
-rather than a specific expansion key sequence.
-
-If the function reads input itself, it can have the effect of altering
-the event that follows.  For example, here's how to define C-c h to
-turn the character that follows into a hyper character:
-
-(define-key function-key-map "\C-ch" 'hyperify)
-
-(defun hyperify (prompt)
-  (let ((e (read-event)))
-    (vector (if (numberp e)
-		(logior (lsh 1 20) e)
-	      (if (memq 'hyper (event-modifiers e))
-		  e
-		(add-event-modifier "H-" e))))))
-
-(defun add-event-modifier (string e)
-  (let ((symbol (if (symbolp e) e (car e))))
-    (setq symbol (intern (concat string (symbol-name symbol))))
-    (if (symbolp e)
-	symbol
-      (cons symbol (cdr e)))))
-
-The character translation function gets one argument, which is the
-prompt that was specified in read-key-sequence--or nil if the key
-sequence is being read by the editor command loop.  In most cases
-you can just ignore the prompt value.
-
-** Changes for reading and writing text properties.
-
-New low-level Lisp features make it possible to write Lisp programs to
-save text properties in files, and read text properties from files.
-You can program any file format you like.
-
-The variable `write-region-annotation-functions' should contain a list
-of functions to be run by `write-region' to encode text properties in
-some fashion as annotations to the text that is written.
-
-Each function in the list is called with two arguments: the start and
-end of the region to be written.  These functions should not alter the
-contents of the buffer.  Instead, they should return lists indicating
-annotations to write in the file in addition to the text in the
-buffer.
-
-Each function should return a list of elements of the form (POSITION
-. STRING), where POSITION is an integer specifying the relative
-position in the text to be written, and STRING is the annotation to
-add there.
-
-Each list returned by one of these functions must be already sorted in
-increasing order by POSITION.  If there is more than one function,
-`write-region' merges the lists destructively into one sorted list.
-
-When `write-region' actually writes the text from the buffer to the
-file, it intermixes the specified annotations at the corresponding
-positions.  All this takes place without modifying the buffer.
-
-The variable `after-insert-file-functions' should contain a list of
-functions to be run each time a file's contents have been inserted into
-a buffer.  Each function receives one argument, the length of the
-inserted text; point indicates the start of that text.  The function
-should make whatever changes it wants to make, then return the updated
-length of the inserted text, as it stands after those changes.  The
-value returned by one function is used as the argument to the next.
-These functions should always return with point at the beginning of
-the inserted text.
-
-The intended use of `after-insert-file-functions' is for converting
-some sort of textual annotations into actual text properties.  But many
-other uses may be possible.
-
-We now invite users to begin implementing Lisp programs to store and
-retrieve text properties in files, using these new primitive features,
-and thus to experiment with various data formats and find good ones.
-
-We suggest not trying to handle arbitrary Lisp objects as property
-names or property values--because a program that general is probably
-difficult to write, and slow.  Instead, choose a set of possible data
-types that are reasonably flexible, and not too hard to encode.
-
-** Comint completion.
-
-Currently comint-dynamic-complete-command (and associated variable
-comint-after-partial-pathname-command) are set by default to complete a
-filename.  Other comint-mode users should have their own functions to achieve
-this.  For example, gud-mode could complete debugger commands.  A completion
-function is provided solely for this reason (comint-dynamic-simple-complete).
-
-Other comint-mode users should bind comint-dynamic-complete (shell-mode does
-already).
-
-** Comint history reference expansion
-
-Currently comint-input-autoexpand is 'history, which means only expand
-history on insertion to comint-input-ring.  For non-shell modes, this is
-a strange default, since non-shells will not understand history references.
-Perhaps it would be better for the variable to be 'input, which means expand
-on RET.
-
-The value 'history might possibly be wrong even for shells, since the
-expansion will be done both by comint and the underlying shell (except sh, of
-course).  It would be better for expansion to be done by one or the other,
-not both since they may (ahem) disagree.  Since it is silly to put a literal
-history reference into comint-input-ring, perhaps it would be better for the
-variable to be 'input too.
-
-The reason the variable is not 'input by default is that I was attempting to
-adhere to The Principle of Least Astonishment.  I didn't want to shock users
-by having their input change in front of their eyes.
-
-** Argument delimiters and Comint mode.
-
-Currently comint-delimiter-argument-list is '(), which means no strings are
-to be treated as delimiters and arguments.  In shell-mode, this variable is
-set to shell-delimiter-argument-list, '("|" "&" "<" ">" "(" ")" ";").  Other
-comint-mode users should set this variable too.  For example, a lisp-type
-mode might want to set this to '("." "(" ")") or some such.
-
-** Comint output hook.
-
-There is now a hook, comint-output-filter-hook, that is run-hooks'ed by the
-output filter, comint-output-filter.  This is useful for scrolling (see
-below), but also things like processing output for specific text, output
-highlighting, etc.
-
-So that such output processing may be done efficiently, there is a new
-variable, comint-last-output-start, that records the position of the start of
-the lastest output inserted into the buffer (effectively the previous value
-of process-mark).  Output processing functions should process the text
-between comint-last-output-start (or perhaps the beginning of the line that
-the position lies on) and process-mark.
-
-** Comint scrolling.
-
-There is now automatic scrolling of process windows.
-
-Currently comint-scroll-show-maximum-output is t, which means when scrolling
-output put process-mark at the bottom of the window.  There is a good case
-for it to be t, since the user is likely to want to see as much output as
-possible.  But, then again, there is a comint-show-maximum-output command.
-
-** Comint history retrieval.
-
-The input following point is not deleted when moving around the input history
-(with M-p etc.).  Emacs maintainers may not like this.  However, I feel this
-is a useful feature.  The simple remedy is to put end-of-line in before
-delete-region in comint-previous-matching-input.
-
-The input history retrieval commands still wrap-around the input ring, unlike
-Emacs command history.
-
-* Changes in version 19.19.
-
-** The new package bookmark.el records named bookmarks: positions that
-you can jump to.  Bookmarks are saved automatically between Emacs
-sessions.
-
-** Another simpler package saveplace.el records your position in each
-file when you kill its buffer (or kill Emacs), and jumps to the same
-position when you visit the file again (even in another Emacs
-session).  Use `toggle-save-place' to turn on place-saving in a given file;
-use (setq-default save-place t) to turn it on for all files.
-
-** In Outline mode, you can now customize how to compute the level of a
-heading line.  Set `outline-level' to a function of no arguments which
-returns the level, assuming point is at the beginning of a heading
-line.
-
-** You can now specify the prefix key to use for Outline minor mode.
-(The default is C-c.)  Set the variable outline-minor-mode-prefix to
-the key sequence you want to use (as a string or vector).
-
-** In Bibtex mode, C-c e has been changed to C-c C-b.  This is because
-C-c followed by a letter is reserved for users.
-
-** The `mod' function is no longer an alias for `%', but is a separate function
-that yields a result with the same sign as the divisor.  `floor' now takes an
-optional second argument, which divides the first argument before the floor is
-taken.
-
-** `%' no longer allows floating point arguments, since the results were often
-inconsistent with integer `%'.
-
-* Changes in version 19.18.
-
-** Typing C-z in an iconified Emacs frame now deiconifies it.
-
-** hilit19 is a new library for automatic highlighting of parts of the
-text in the buffer, based on its meaning and context.
-
-** Killing no longer sends the killed text to the X clipboard.
-And large strings are not put in the cut buffer either.
-The variable x-cut-buffer-max specifies the maximum number of characters
-to put in the cut buffer.
-
-** The new command C-x 5 o (other-frame) selects different frames,
-successively, in cyclic order.  It does for frames what C-x o
-does for windows.
-
-** The command M-ESC (eval-expression) has its own command history.
-
-** The commands M-! and M-| for running shell commands have their own
-command history.
-
-** If the directory containing the Emacs executable has a sibling named
-`lisp', that `lisp' directory is added to the end of `load-path'
-(provided you don't override the normal value with the EMACSLOADPATH
-environment variable).  This feature may make it easier to move
-an installed Emacs from place to place.
-
-** M-x validate-tex-buffer now records the locations of mismatches
-found in the `*Occur*' buffer.  You can go to that buffer and type C-c
-C-c to visit a particular mismatch.
-
-** There are new commands in Shell mode.
-
-C-c C-n and C-c C-p move point to the next or previous shell input line.
-
-C-c C-d is now another way to send an end-of-file to the subshell.
-
-** Changes to calendar/diary.
-
-Time zone data is now determined automatically, including the
-start/stop days and times of daylight savings time.  The code now
-works correctly almost anywhere in the world.
-
-The format of the holiday specifications has changed and IS NO LONGER
-COMPATIBLE with the old (version 18) format.  See the documentation of
-the variable calendar-holidays for details of the new, improved
-format.
-
-The hook `diary-display-hook' has been split into two:
-diary-display-hook which should be used ONLY for the display and
-`diary-hook' which should be used for appointment notification.  If
-diary-display-hook is nil (the default), simple-diary-display is
-used.  This allows the diary hooks to be correctly set with add-hook.
-
-The forms used for dates in diary entries and general display are no
-longer autoloaded, but set at load time; this means they will be set
-correctly based on values you assign to various variables.
-
-** The functions x-rebind-key and x-rebind-keys have been deleted,
-because you can accomplish the same job by binding keys to keyboard
-macros.
-
-** Emacs now distinguishes double and triple drag events and double and
-triple button-down events.  These work analogously to double and
-triple click events.
-
-Double drag events, if not defined, convert to ordinary click events.
-Double down events, if not defined, convert first to ordinary down
-events, which are then discarded if not defined.  Triple events that
-are not defined convert to the corresponding double event; if that is
-also not defined, it may convert further.
-
-** The new function event-click-count returns the number of clicks,
-from an event which is a list.  It is 1 for an ordinary click, drag,
-or button-down event, 2 for a double event, and 3 or more for a triple
-event.
-
-** The new function previous-frame is like next-frame, but moves
-around through the set of existing frames in the opposite order.
-
-** The post-command-hook now runs even after commands that get an error
-and return to top level.  As a consequence of the same change, this
-hook also runs before Emacs reads the first command.  That might sound
-paradoxical, as if this hook were the same as the pre-command-hook.
-Actually, they are not similar; the latter runs before *execution* of
-a command, but after it has been read.
-
-** You can turn off the text property hooks that run when point moves
-to certain places in the buffer, by binding inhibit-point-motion-hooks
-to a non-nil value.
-
-** Inserting a string with no text properties into the buffer normally
-inherits the properties of the preceding character.  You can now
-control this inheritance by setting the front-sticky and
-rear-nonsticky properties of a character.
-
-If you make a character's front-sticky property t, then insertion
-before the character inherits its properties.  If you make the
-rear-nonsticky property t, then insertion after the character does not
-inherit its properties.  You can regard characters as normally being
-rear-sticky and not front-sticky, and this is why insertion normally
-inherits from the previous character.
-
-If neither side of an insertion is suitably sticky, then the inserted
-text gets no properties.  If both sides are sticky, then the inserted
-text gets the properties of both sides, with the previous character's
-properties taking precedence when both sides have a property in
-common.
-
-You can also specify stickiness for individual properties.  To do so,
-use a list of property names as the value of the front-sticky property
-or the rear-nonsticky property.  For example, if a character has a
-rear-nonsticky property whose value is (face read-only), then
-insertion after the character will not inherit its face property or
-read-only property (if any), but will inherit any other properties.
-
-The merging of properties when both sides of the insertion are sticky
-takes place one property at a time.  If the preceding character is
-rear-sticky for the property, and the property is non-nil, it
-dominates.  Otherwise, the following character's property value is
-used if it is front-sticky for that property.
-
-** If you give a character a non-nil `invisible' text property, the
-character does not appear on the screen.  This works much like
-selective display.
-
-The details of this feature are likely to change in future Emacs
-versions.
-
-** In Info, when you go to a node, it runs the normal hook
-Info-selection-hook.
-
-** You can use the new function `invocation-directory' to get the name
-of the directory containing the Emacs executable that was run.
-
-** Entry to the minibuffer runs the normal hook minibuffer-setup-hook.
-
-** The new function minibuffer-window-active-p takes one argument, a
-minibuffer window, and returns t if the window is currently active.
-
-* Changes in version 19.17.
-
-** When Emacs displays a list of completions in a buffer,
-you can select a completion by clicking mouse button 2
-on that completion.
-
-** Use the command `list-faces-display' to display a list of
-all the currently defined faces, showing what they look like.
-
-** Menu bar items from local maps now come after the usual items.
-
-** The Help menu bar item always comes last in the menu bar.
-
-** If you enable Font-Lock mode on a buffer containing a program
-(certain languages such as C and Lisp are supported), everything you
-type is automatically given a face property appropriate to its
-syntactic role.  For example, there are faces for comments, string
-constants, names of functions being defined, and so on.
-
-** Dunnet, an adventure game, is now available.
-
-** Several major modes now have their own menu bar items,
-including Dired, Rmail, and Sendmail.  We would like to add
-suitable menu bar items to other major modes.
-
-** The key binding C-x a C-h has been eliminated.
-This is because it got in the way of the general feature of typing
-C-h after a prefix character.  If you want to run
-inverse-add-global-abbrev, you can use C-x a - or C-x a i g instead.
-
-** If you set the variable `rmail-mail-new-frame' to a non-nil value,
-all the Rmail commands to send mail make a new frame to do it in.
-When you send the message, or use the menu bar command not to send it,
-that frame is deleted.
-
-** In Rmail, the o and C-o commands are now almost interchangeable.
-Both commands check the format of the file you specify, and append
-the message to it in Rmail format if it is an Rmail file, and in
-inbox file format otherwise.  C-o and o are different only when you
-specify a new file.
-
-** The function `copy-face' now takes an optional fourth argument
-NEW-FRAME.  If you specify this, it copies the definition of face
-OLD-FACE on frame FRAME to face NEW-NAME on frame NEW-FRAME.
-
-** A local map can now cancel out one of the global map's menu items.
-Just define that subcommand of the menu item with `undefined'
-as the definition.  For example, this cancels out the `Buffers' item
-for the current major mode:
-
-    (local-set-key [menu-bar buffer] 'undefined)
-
-** To put global items at the end of the menu bar, use the new variable
-`menu-bar-final-items'.  It should be a list of symbols--event types
-bound in the menu bar.  The menu bar items for these symbols are
-moved to the end.
-
-** The list returned by `buffer-local-variables' now contains cons-cell
-elements of the form (SYMBOL . VALUE) only for buffer-local variables
-that have values.  For unbound buffer-local variables, the variable
-name (symbol) appears directly as an element of the list.
-
-** The `modification-hooks' property of a character no longer affects
-insertion; it runs only for deletion and modification of the character.
-
-To detect insertion, use `insert-in-front-hooks' and
-`insert-behind-hooks' properties.  The former runs when text is
-inserted immediately preceding the character that has the property;
-the latter runs when text is inserted immediately following the
-character.
-
-** Buffer modification now runs hooks belonging to overlays as well as
-hooks belonging to characters.  If an overlay has a
-`modification-hooks' property, it applies to any change to text in the
-overlay, and any insertion within the overlay.  If the overlay has a
-`insert-in-front-hooks' property, it runs for insertion at the
-beginning boundary of the overlay.  If the overlay has an
-`insert-behind-hooks' property, it runs for insertion at the end
-boundary of the overlay.
-
-The values of these properties should be lists of functions.  Each
-function is called, receiving as arguments the overlay in question,
-followed by the bounds of the range being modified.
-
-** The new `-name NAME' option directs Emacs to search for its X
-resources using the name `NAME', and sets the title of the initial
-frame.  This argument was added for consistency with other X clients.
-
-** The new `-xrm DATABASE' option tells Emacs to treat the string
-DATABASE as the text of an X resource database.  Emacs searches
-DATABASE for resource values, in addition to the usual places.  This
-argument was added for consistency with other X clients.
-
-** Emacs now searches for X resources in the files specified by the
-XFILESEARCHPATH, XUSERFILESEARCHPATH, and XAPPLRESDIR environment
-variables, emulating the functionality provided by programs written
-using Xt.  Because of this change, Emacs will now notice system-wide
-application defaults files, as other X clients do.
-
-XFILESEARCHPATH and XUSERFILESEARCHPATH should be a list of file names
-separated by colons; XAPPLRESDIR should be a list of directory names
-separated by colons.
-
-Emacs searches for X resources
-  + specified on the command line, with the `-xrm RESOURCESTRING'
-    option,
-  + then in the value of the XENVIRONMENT environment variable,
-    - or if that is unset, in the file named ~/.Xdefaults-HOSTNAME if it exists
-      (where HOSTNAME is the hostname of the machine Emacs is running on),
-  + then in the screen-specific and server-wide resource properties
-    provided by the server,
-    - or if those properties are unset, in the file named ~/.Xdefaults
-      if it exists,
-  + then in the files listed in XUSERFILESEARCHPATH,
-    - or in files named LANG/Emacs in directories listed in XAPPLRESDIR
-      (where LANG is the value of the LANG environment variable), if
-      the LANG environment variable is set,
-    - or in files named Emacs in the directories listed in XAPPLRESDIR
-    - or in ~/LANG/Emacs (if the LANG environment variable is set),
-    - or in ~/Emacs,
-  + then in the files listed in XFILESEARCHPATH.
-
-The paths in the variables XFILESEARCHPATH, XUSERFILESEARCHPATH, and
-XAPPLRESDIR may contain %-escapes (like the control strings passed to
-the Emacs lisp `format' function or C printf function), which Emacs expands.
-
-%N is replaced by the string "Emacs" wherever it occurs.
-%T is replaced by "app-defaults" wherever it occurs.
-%S is replaced by the empty string wherever it occurs.
-%L and %l are replaced by the value of the LANG environment variable; if LANG
-   is not set, Emacs does not use that directory or file name at all.
-%C is replaced by the value of the resource named "customization"
-   (class "Customization"), as retrieved from the server's resource
-   properties or the user's ~/.Xdefaults file, or the empty string if
-   that resource doesn't exist.
-
-So, for example,
-  if XFILESEARCHPATH is set to the value
-    "/usr/lib/X11/%L/%T/%N%C:/usr/lib/X11/%T/%N%C:/usr/lib/X11/%T/%N",
-  and the LANG environment variable is set to
-    "english",
-  and the customization resource is the string
-    "-color",
-then, in the last step of the process described above, Emacs checks
-for resources in the first of the following files that is present and
-readable:
-	/usr/lib/X11/english/app-defaults/Emacs-color
-	/usr/lib/X11/app-defaults/Emacs-color
-	/usr/lib/X11/app-defaults/Emacs
-If the LANG environment variable is not set, then Emacs never uses the
-first element of the path, "/usr/lib/X11/%L/%T/%N%C", because it
-contains the %L escape.
-
-If XFILESEARCHPATH is unset, Emacs uses the default value
-"/usr/lib/X11/%L/app-defaults/Emacs%C:\
-/usr/lib/X11/app-defaults/Emacs%C:\
-/usr/lib/X11/%L/app-defaults/Emacs:\
-/usr/lib/X11/app-defaults/Emacs"
-
-This feature was added for consistency with other X applications.
-
-** The new function `text-property-any' scans the region of text from
-START to END to see if any character's property PROP is `eq' to
-VALUE.  If so, it returns the position of the first such character.
-Otherwise, it returns nil.
-
-The optional fifth argument, OBJECT, specifies the string or buffer to
-be examined.
-
-** The new function `text-property-not-all' scans the region of text from
-START to END to see if any character's property PROP is not `eq' to
-VALUE.  If so, it returns the position of the first such character.
-Otherwise, it returns nil.
-
-The optional fifth argument, OBJECT, specifies the string or buffer to
-be examined.
-
-** The function `delete-windows-on' now takes an optional second
-argument FRAME, which specifies which frames it should affect.
-  + If FRAME is nil or omitted, then `delete-windows-on' deletes windows
-    showing BUFFER (its first argument) on all frames.
-  + If FRAME is t, then `delete-windows-on' only deletes windows on the
-    selected frame; other frames are unaffected.
-  + If FRAME is a frame, then `delete-windows-on' only deletes windows on
-    the given frame; other frames are unaffected.
-
-
-* Changes in version 19.16.
-
-** When dragging the mouse to select a region, Emacs now highlights the
-region as you drag (if Transient Mark mode is enabled).  If you
-continue the drag beyond the boundaries of the window, Emacs scrolls
-the window at a steady rate until you either move the mouse back into
-the window or release the button.
-
-** RET now exits `query-replace' and `query-replace-regexp'; this makes it
-more consistent with the incremental search facility, which uses RET
-to end the search.
-
-** In C mode, C-c C-u now runs c-up-conditional.
-C-c C-n and C-c C-p now run new commands that move forward
-and back over balanced sets of C conditionals (c-forward-conditional
-and c-backward-conditional).
-
-** The Edit entry in the menu bar has a new alternative:
-"Choose Next Paste".  It gives you a menu showing the various
-strings in the kill ring; click on one to select it as the text
-to be yanked ("pasted") the next time you yank.
-
-** If you enable Transient Mark mode and set `mark-even-if-inactive' to
-non-nil, then the region is highlighted in a transient fashion just as
-normally in Transient Mark mode, but the mark really remains active
-all the time; commands that use the region can be used even if the
-region highlighting turns off.
-
-** If you type C-h after a prefix key, it displays the bindings
-that start with that prefix.
-
-** The VC package now searches for version control commands in the
-directories named by the variable `vc-path'; its value should be a
-list of strings.
-
-** If you are visiting a file that has locks registered under RCS,
-VC now displays each lock's owner and version number in the mode line
-after the string `RCS'.  If there are no locks, VC displays the head
-version number.
-
-** When using X, if you load the `paren' library, Emacs automatically
-underlines or highlights the matching paren whenever point is
-next to the outside of a paren.  When point is before an open-paren,
-this shows the matching close; when point is after a close-paren,
-this shows the matching open.
-
-** The new function `define-key-after' is like `define-key',
-but takes an extra argument AFTER.  It places the newly defined
-binding after the binding for the event AFTER.
-
-** `accessible-keymaps' now takes an optional second argument, PREFIX.
-If PREFIX is non-nil, it means the value should include only maps for
-keys that start with PREFIX.
-
-`describe-bindings' also accepts an optional argument PREFIX which
-means to describe only the keys that start with PREFIX.
-
-** The variable `prefix-help-command' hold a command to run to display help
-whenever the character `help-char' follows a prefix key and does not have
-a key binding in that context.
-
-** Emacs now detects double- and triple-mouse clicks.  A single mouse
-click produces a pair events of the form:
-	(down-mouse-N POSITION)
-	(mouse-N POSITION)
-Clicking the same mouse button again, soon thereafter and at the same
-location, produces another pair of events of the form:
-	(down-mouse-N POSITION)
-	(double-mouse-N POSITION 2)
-Another click will produce an event pair of the form:
-	(down-mouse-N POSITION)
-	(triple-mouse-N POSITION 3)
-All the POSITIONs in such a sequence would be identical, except for
-their timestamps.
-
-To count as double- and triple-clicks, mouse clicks must be at the
-same location as the first click, and the number of milliseconds
-between the first release and the second must be less than the value
-of the lisp variable `double-click-time'.  Setting `double-click-time'
-to nil disables multi-click detection.  Setting it to t removes the
-time limit; Emacs then detects multi-clicks by position only.
-
-If `read-key-sequence' finds no binding for a double-click event, but
-the corresponding single-click event would be bound,
-`read-key-sequence' demotes it to a single-click.  Similarly, it
-demotes unbound triple-clicks to double- or single-clicks.  This means
-you don't have to distinguish between single- and multi-clicks if you
-don't want to.
-
-Emacs reports all clicks after the third as `triple-mouse-N' clicks,
-but increments the click count after POSITION.  For example, a fourth
-click, soon after the third and at the same location, produces a pair
-of events of the form:
-	(down-mouse-N POSITION)
-	(triple-mouse-N POSITION 4)
-
-** The way Emacs reports positions of mouse events has changed
-slightly.  If a mouse event includes a position list of the form:
-	(WINDOW (PLACE-SYMBOL) (COLUMN . ROW) TIMESTAMP)
-this denotes exactly the same position as the list:
-	(WINDOW  PLACE-SYMBOL  (COLUMN . ROW) TIMESTAMP)
-That is, the event occurred over a non-textual area of the frame,
-specified by PLACE-SYMBOL, a symbol like `mode-line' or
-`vertical-scroll-bar'.
-
-Enclosing PLACE-SYMBOL in a singleton list does not change the
-position denoted, but the `read-key-sequence' function uses the
-presence or absence of the singleton list to tell whether or not it
-should prefix the event with its place symbol.
-
-Normally, `read-key-sequence' prefixes mouse events occurring over
-non-textual areas with their PLACE-SYMBOLs, to select the sub-keymap
-appropriate for the event; for example, clicking on the mode line
-produces a sequence like
-	[mode-line (mouse-1 POSN)]
-However, if lisp code elects to unread the resulting key sequence by
-placing it in the `unread-command-events' variable, it is important
-that `read-key-sequence' not insert the prefix symbol again; that
-would produce a malformed key sequence like
-	[mode-line mode-line (mouse-1 POSN)]
-For this reason, `read-key-sequence' encloses the event's PLACE-SYMBOL
-in a singleton list when it first inserts the prefix, but doesn't
-insert the prefix when processing events whose PLACE-SYMBOLs are
-already thus enclosed.
-
-
-* Changes in version 19.15.
-
-** `make-frame-visible', which uniconified frames, is now a command,
-and thus may be bound to a key.  This makes sense because frames
-respond to user input while iconified.
-
-** You can now use Meta mouse clicks to set and use the "secondary
-selection".  You can drag M-Mouse-1 across the region you want to
-select.  Or you can press M-Mouse-1 at one end and M-Mouse-3 at the
-other (this also copies the text to the kill ring).  Repeating M-Mouse-3
-again at the same place kills that text.
-
-M-Mouse-2 kills the secondary selection.
-
-Setting the secondary selection does not move point or the mark.  It
-is possible to make a secondary selection that does not all fit on the
-screen, by using M-Mouse-1 at one end, scrolling, then using M-Mouse-3
-at the other end.
-
-Emacs has only one secondary selection at any time.  Starting to set
-a new one cancels any previous one.  The secondary selection displays
-using a face named `secondary-selection'.
-
-** There's a new way to request use of Supercite (sc.el).  Do this:
-
-    (add-hook 'mail-citation-hook 'sc-cite-original)
-
-Currently this works with Rmail.  In the future, other Emacs based
-mail-readers should be modified to understand this hook also.
-In the mean time, you should keep doing what you have done in the past
-for those other mail readers.
-
-** When a regular expression contains `\(...\)' inside a repetition
-operator such as `*' or `+', and you ask about the range that was matched
-using `match-beginning' and `match-end', the range you get corresponds
-to the *last* repetition *only*.  In Emacs 18, you would get a range
-corresponding to all the repetitions.
-
-If you want to get a range corresponding to all the repetitions,
-put a `\(...\)' grouping *outside* the repetition operator.  This
-is the syntax that corresponds logically to the desired result, and
-it works the same in Emacs 18 and Emacs 19.
-
-(This change actually took place earlier, but we didn't know about it
-and thus didn't document it.)
-
-* Changes in version 19.14.
-
-** To modify read-only text, bind the variable `inhibit-read-only'
-to a non-nil value.  If the value is t, then all reasons that might
-make text read-only are inhibited (including `read-only' text properties).
-If the value is a list, then a `read-only' property is inhibited
-if it is `memq' in the list.
-
-** If you call `get-buffer-window' passing t as its second argument, it
-will only search for windows on visible frames.  Previously, passing t
-as the secord argument caused `get-buffer-window' to search all
-frames, visible or not.
-
-** If you call `other-buffer' with a nil or omitted second argument, it
-will ignore buffers displayed windows on any visible frame, not just
-the selected frame.
-
-** You can specify a window or a frame for C-x # to use when
-selects a server buffer.  Set the variable server-window
-to the window or frame that you want.
-
-** The command M-( now inserts spaces outside the open-parentheses in
-some cases--depending on the syntax classes of the surrounding
-characters.  If the variable `parens-dont-require-spaces' is non-nil,
-it inhibits insertion of these spaces.
-
-** The GUD package now supports the debugger known as xdb on HP/UX
-systems.  Use M-x xdb.  The variable `gud-xdb-directories' lets you
-specify a list of directories to search for source code.
-
-** If you are using the mailabbrev package, you should note that its
-function for defining an alias is now called `define-mail-abbrev'.
-This package no longer contains a definition for `define-mail-alias';
-that name is used only in mailaliases.
-
-** Inserted characters now inherit the properties of the text before
-them, by default, rather than those of the following text.
-
-** The function `insert-file-contents' now takes optional arguments BEG
-and END that specify which part of the file to insert.  BEG defaults to
-0 (the beginning of the file), and END defaults to the end of the file.
-
-If you specify BEG or END, then the argument VISIT must be nil.
-
-* Changes in version 19.13.
-
-** Magic file names can now handle the `load' operation.
-
-** Bibtex mode now sets up special entries in the menu bar.
-
-** The incremental search commands C-w and C-y, which copy text from
-the buffer into the search string, now convert it to lower case
-if you are in a case-insensitive search.  This is to avoid making
-the search a case-sensitive one.
-
-** GNUS now knows your time zone automatically if Emacs does.
-
-** Hide-ifdef mode no longer defines keys of the form
-C-c LETTER, since those keys are reserved for users.
-Those commands have been moved to C-c M-LETTER.
-We may move them again for greater consistency with other modes.
-
-* Changes in version 19.12.
-
-** You can now make many of the sort commands ignore case by setting
-`sort-fold-case' to a non-nil value.
-
-* Changes in version 19.11.
-
-** Supercite is installed.
-
-** `write-file-hooks' functions that return non-nil are responsible
-for making a backup file if you want that to be done.
-To do so, execute the following code:
-
-   (or buffer-backed-up (backup-buffer))
-
-You might wish to save the file modes value returned by
-`backup-buffer' and use that to set the mode bits of the file
-that you write.  This is what `basic-save-buffer' does when
-it writes a file in the usual way.
-
-(This is not actually new, but wasn't documented before.)
-
-* Changes in version 19.10.
-
-** The command `repeat-complex-command' is now on C-x ESC ESC.
-It used to be bound to C-x ESC.
-
-The reason for this change is to make function keys work after C-x.
-
-** The variable `highlight-nonselected-windows' now controls whether
-the region is highlighted in windows other than the selected window
-(in Transient Mark mode only, of course, and currently only when
-using X).
-
-* Changes in version 19.8.
-
-** It is now simpler to tell Emacs to display accented characters under
-X windows.  M-x standard-display-european toggles the display of
-buffer text according to the ISO Latin-1 standard.  With a prefix
-argument, this command enables European character display iff the
-argument is positive.
-
-** The `-i' command-line argument tells Emacs to use a picture of the
-GNU gnu as its icon, instead of letting the window manager choose an
-icon for it.  This option used to insert a file into the current
-buffer; use `-insert' to do that now.
-
-** The `configure' script now supports `--prefix' and `--exec-prefix'
-options.
-
-The `--prefix=PREFIXDIR' option specifies where the installation process
-should put emacs and its data files.  This defaults to `/usr/local'.
-- Emacs (and the other utilities users run) go in PREFIXDIR/bin
-  (unless the `--exec-prefix' option says otherwise).
-- The architecture-independent files go in PREFIXDIR/lib/emacs/VERSION
-  (where VERSION is the version number of Emacs, like `19.7').
-- The architecture-dependent files go in
-  PREFIXDIR/lib/emacs/VERSION/CONFIGURATION
-  (where CONFIGURATION is the configuration name, like mips-dec-ultrix4.2),
-  unless the `--exec-prefix' option says otherwise.
-
-The `--exec-prefix=EXECDIR' option allows you to specify a separate
-portion of the directory tree for installing architecture-specific
-files, like executables and utility programs.  If specified,
-- Emacs (and the other utilities users run) go in EXECDIR/bin, and
-- The architecture-dependent files go in
-  EXECDIR/lib/emacs/VERSION/CONFIGURATION.
-EXECDIR/bin should be a directory that is normally in users' PATHs.
-
-** When running under X, the new lisp function `x-list-fonts'
-allows code to find out which fonts are available from the X server.
-The first argument PATTERN is a string, perhaps with wildcard characters;
-  the * character matches any substring, and
-  the ? character matches any single character.
-  PATTERN is case-insensitive.
-If the optional arguments FACE and FRAME are specified, then
-`x-list-fonts' returns only fonts the same size as FACE on FRAME.
-
-
-
-* Changes in version 19.
-
-** When you kill buffers, Emacs now returns memory to the operating system,
-thus reducing the size of the Emacs process.  All the space that you free
-up by killing buffers can now be reused for other buffers no matter what
-their sizes, or reused by other processes if Emacs doesn't need it.
-
-** Emacs now does garbage collection and auto saving while it is waiting
-for input, which often avoids the need to do these things while you
-are typing.
-
-The variable `auto-save-timeout' says how many seconds Emacs should
-wait, after you stop typing, before it does an auto save and a garbage
-collection.
-
-** If auto saving detects that a buffer has shrunk greatly, it refrains
-from auto saving that buffer and displays a warning.  Now it also turns
-off Auto Save mode in that buffer, so that you won't get the same
-warning again.
-
-If you reenable Auto Save mode in that buffer, Emacs will start saving
-it again with no further warnings.
-
-** A new minor mode called Line Number mode displays the current line
-number in the mode line, updating it as necessary when you move
-point.
-
-However, if the buffer is very large (larger than the value of
-`line-number-display-limit'), then the line number doesn't appear.
-This is because computing the line number can be painfully slow if the
-buffer is very large.
-
-** You can quit while Emacs is waiting to read or write files.
-
-** The arrow keys now have default bindings to move in the appropriate
-directions.
-
-** You can suppress next-line's habit of inserting a newline when
-called at the end of a buffer by setting next-line-add-newlines to nil
-(it defaults to t).
-
-** You can now get back recent minibuffer inputs conveniently.  While
-in the minibuffer, type M-p to fetch the next earlier minibuffer
-input, and use M-n to fetch the next later input.
-
-There are also commands to search forward or backward through the
-history for history elements that match a regular expression.  M-r
-searches older elements in the history, while M-s searches newer
-elements.  By special dispensation, these commands can always use the
-minibuffer to read their arguments even though you are already in the
-minibuffer when you issue them.
-
-The history feature is available for all uses of the minibuffer, but
-there are separate history lists for different kinds of input.  For
-example, there is a list for file names, used by all the commands that
-read file names.  There is a list for arguments of commands like
-`query-replace'.  There are also very specific history lists, such
-as the one that `compile' uses for compilation commands.
-
-** You can now display text in a mixture of fonts and colors, using the
-"face" feature, together with the overlay and text property features.
-See the Emacs Lisp manual for details.  The Emacs Users Manual describes
-how to change the colors and font of standard predefined faces.
-
-** You can refer to files on other machines using special file name syntax:
-
-/HOST:FILENAME
-/USER@HOST:FILENAME
-
-When you do this, Emacs uses the FTP program to read and write files on
-the specified host.  It logs in through FTP using your user name or the
-name USER.  It may ask you for a password from time to time; this
-is used for logging in on HOST.
-
-** Some C-x key bindings have been moved onto new prefix keys.
-
-C-x r is a prefix for registers and rectangles.
-C-x n is a prefix for narrowing.
-C-x a is a prefix for abbrev commands.
-
-C-x r C-SPC
-C-x r SPC	point-to-register    (Was C-x /)
-C-x r j		jump-to-register     (Was C-x j)
-C-x r s		copy-to-register     (Was C-x x)
-C-x r i		insert-register      (Was C-x g)
-C-x r r		copy-rectangle-to-register  (Was C-x r)
-C-x r k		kill-rectangle
-C-x r y		yank-rectangle
-C-x r o		open-rectangle
-C-x r f		frame-configuration-to-register
-		  (This saves the state of all windows in all frames.)
-C-x r w		window-configuration-to-register
-		  (This saves the state of all windows in the selected  frame.)
-
-(Use C-x r j to restore a configuration saved with C-x r f or C-x r w.)
-
-C-x n n		narrow-to-region	(Was C-x n)
-C-x n p		narrow-to-page		(Was C-x p)
-C-x n w		widen			(Was C-x w)
-
-C-x a l		add-mode-abbrev		(Was C-x C-a)
-C-x a g		add-global-abbrev	(Was C-x +)
-C-x a i l	inverse-add-mode-abbrev	(Was C-x C-h)
-C-x a i g	inverse-add-global-abbrev  (Was C-x -)
-C-x a e		expand-abbrev		(Was C-x ')
-
-(The old key bindings C-x /, C-x j, C-x x and C-x g
-have not yet been removed.)
-
-** You can put a file name in a register to be able to visit the file
-quickly.  Do this:
-
-   (set-register ?CHAR '(file . NAME))
-
-where NAME is the file name as a string.  Then C-x r j CHAR finds that
-file.
-
-This is useful for files that you need to visit frequently,
-but that you don't want to keep in buffers all the time.
-
-** The keys M-g (fill-region) and C-x a (append-to-buffer)
-have been eliminated.
-
-** The new command `string-rectangle' inserts a specified string on
-each line of the region-rectangle.
-
-** C-x 4 r is now `find-file-read-only-other-window'.
-
-** C-x 4 C-o is now `display-buffer', which displays a specified buffer
-in another window without selecting it.
-
-** Picture mode has been substantially improved.  The picture editing commands
-now arrange for automatic horizontal scrolling to keep point visible
-when editing a wide buffer with truncate-lines on.  Picture-mode
-initialization now does a better job of rebinding standard commands;
-it finds not just their normal keybindings, but any function keys
-attached to them.
-
-** If you enable Transient Mark mode, then the mark becomes "inactive"
-after every command that modifies the buffer.  While the mark is
-active, the region is highlighted (under X, at least).  Most commands
-that use the mark give an error if the mark is inactive, but you can
-use C-x C-x to make it active again.  This feature is also sometimes
-known as "Zmacs mode".
-
-** Outline mode is now available as a minor mode.  This minor mode can
-combine with any major mode; it substitutes the C-c commands of
-Outline mode for those of the major mode.  Use M-x outline-minor-mode
-to enable and disable the new mode.
-
-M-x outline-mode is unchanged; it still switches to Outline mode as a
-major mode.
-
-** The default setting of `version-control' comes from the environment
-variable VERSION_CONTROL.
-
-** The user option for controlling whether files can set local
-variables is now called `enable-local-variables'.  A value of t means
-local-variables lists are obeyed; nil means they are ignored; anything
-else means query the user.
-
-The user option for controlling use of the `eval' local variable is
-now called is `enable-local-eval'; its values are interpreted like
-those of `enable-local-variables'.
-
-** X Window System changes:
-
-C-x 5 C-f and C-x 5 b switch to a specified file or buffer in a new
-frame.  Likewise, C-x 5 m starts outgoing mail in another frame, and
-C-x 5 . finds a tag in another frame.
-
-When you are using X, C-z now iconifies the selected frame.
-
-Emacs can now exchange text with other X applications.  Killing or
-copying text in Emacs now makes that text available for pasting into
-other X applications.  The Emacs yanking commands now insert the
-latest selection set by other applications, and add the text to the
-kill ring.  The Emacs commands for selecting and inserting text with
-the mouse now use the kill ring in the same way the keyboard killing
-and yanking commands do.
-
-The option to specify the title for the initial frame is now `-name NAME'.
-There is currently no way to specify an icon title; perhaps we will add
-one in the future.
-
-** Undoing a deletion now puts point back where it was before the
-deletion.
-
-** The variables that control how much undo information to save have
-been renamed to `undo-limit' and `undo-strong-limit'.  They used to be
-called `undo-threshold' and `undo-high-threshold'.
-
-** You can now use kill commands in read-only buffers.  They don't
-actually change the buffer, and Emacs will beep and warn you that the
-buffer is read-only, but they do copy the text you tried to kill into
-the kill ring, so you can yank it into other buffers.
-
-** C-o inserts the fill-prefix on the newly created line.  The command
-M-^ deletes the prefix (if it occurs) after the newline that it
-deletes.
-
-** C-M-l now runs the command `reposition-window'.  It scrolls the
-window heuristically in a way designed to get useful information onto
-the screen.
-
-** C-M-r is now reverse incremental regexp search.
-
-** M-z now kills through the target character.  In version 18, it
-killed up to but not including the target character.
-
-** M-! now runs the specified shell command asynchronously if it
-ends in `&' (just as the shell does).
-
-** C-h C-f and C-h C-k are new help commands that display the Info
-node for a given Emacs function name or key sequence, respectively.
-
-** The C-h p command system lets you find Emacs Lisp packages by
-topic keywords.  Here is a partial list of package categories:
-
-abbrev	      abbreviation handling, typing shortcuts, macros
-bib	      code related to the bib bibliography processor
-c	      C and C++ language support
-calendar      calendar and time management support
-comm	      communications, networking, remote access to files
-docs	      support for Emacs documentation
-emulations    emulations of other editors
-extensions    Emacs Lisp language extensions
-games	      games, jokes and amusements
-hardware      support for interfacing with exotic hardware
-help	      support for on-line help systems
-i14n	      internationalization and alternate character-set support
-internal      code for Emacs internals, build process, defaults
-languages     specialized modes for editing programming languages
-lisp	      Lisp support, including Emacs Lisp
-local	      code local to your site
-maint	      maintenance aids for the Emacs development group
-mail	      modes for electronic-mail handling
-news	      support for netnews reading and posting
-processes     process, subshell, compilation, and job control support
-terminals     support for terminal types
-tex	      code related to the TeX formatter
-tools	      programming tools
-unix	      front-ends/assistants for, or emulators of, UNIX features
-vms	      support code for vms
-wp	      word processing
-
-More will be added soon.
-
-** The command to split a window into two side-by-side windows is now
-C-x 3.  It was C-x 5.
-
-** M-. (find-tag) no longer has any effect on what M-, will do
-subsequently.  You can no longer use M-, to find the next similar tag;
-you must use M-. with a prefix argument, instead.
-
-The motive for this change is so that you can more reliably use
-M-, to resume a suspended `tags-search' or `tags-query-replace'.
-
-** C-x s (`save-some-buffers') now gives you more options when it asks
-whether to save a particular buffer.  In addition to `y' or `n', you
-can answer `!' to save all the remaining buffers, `.' to save this
-buffer but not save any others, ESC to stop saving and exit the
-command, and C-h to get help.  These options are analogous to those
-of `query-replace'.
-
-** M-x make-symbolic-link does not expand its first argument.
-This lets you make a link with a target that is a relative file name.
-
-** M-x add-change-log-entry and C-x 4 a now automatically insert the
-name of the file and often the name of the function that you changed.
-They also handle grouping of entries.
-
-There is now a special major mode for editing ChangeLog files.  It
-makes filling work conveniently.  Each bunch of grouped entries is one
-paragraph, and each collection of entries from one person on one day
-is considered a page.
-
-** The `comment-region' command adds comment delimiters to the lines that
-start in the region, thus commenting them out.  With a negative argument,
-it deletes comment delimiters from the lines in the region--this cancels
-the effect of `comment-region' without an argument.
-
-With a positive argument, `comment-region' adds comment delimiters
-but duplicates the last character of the comment start sequence as many
-times as the argument specifies.  This is a way of calling attention to
-the comment.  In Lisp, you should use an argument at least two, because
-the indentation convention for single semicolon comments does not leave
-them at the beginning of a line.
-
-** If `split-window-keep-point' is non-nil, C-x 2 tries to avoid
-shifting any text on the screen by putting point in whichever window
-happens to contain the screen line the cursor is already on.
-The default is that `split-window-keep-point' is non-nil on slow
-terminals.
-
-** M-x super-apropos is like M-x apropos except that it searches both
-Lisp symbol names and documentation strings for matches.  It describes
-every symbol that has a match in either the symbol's name or its
-documentation.
-
-Both M-x apropos and M-x super-apropos take an optional second
-argument DO-ALL which controls the more expensive part of the job.
-This includes looking up and printing the key bindings of all
-commands.  It also includes checking documentation strings in
-super-apropos.  DO-ALL is nil by default; use a prefix arg to make it
-non-nil.
-
-** M-x revert-buffer no longer offers to revert from a recent auto-save
-file unless you give it a prefix argument.  Otherwise it always
-reverts from the real file regardless of whether there has been an
-auto-save since thenm.  (Reverting from the auto-save file is no longer
-very useful now that the undo capacity is larger.)
-
-** M-x recover-file no longer turns off Auto Save mode when it reads
-the last Auto Save file.
-
-** M-x rename-buffer, if you give it a prefix argument,
-avoids errors by modifying the new name to make it unique.
-
-** M-x rename-uniquely renames the current buffer to a similar name
-with a numeric suffix added to make it both different and unique.
-
-One use of this command is for creating multiple shell buffers.
-If you rename your shell buffer, and then do M-x shell again, it
-makes a new shell buffer.  This method is also good for mail buffers,
-compilation buffers, and any Emacs feature which creates a special
-buffer with a particular name.
-
-** M-x compare-windows with a prefix argument ignores changes in whitespace.
-If `compare-ignore-case' is non-nil, then differences in case are also
-ignored.
-
-** `backward-paragraph' is now bound to M-{ by default, and `forward-paragraph'
-to M-}.  Originally, these commands were bound to M-[ and M-], but they were
-running into conflicts with the use of function keys.  On many terminals,
-function keys send a sequence beginning ESC-[, so many users have defined this
-as a prefix key.
-
-** C-x C-u (upcase-region) and C-x C-l (downcase-region) are now disabled by
-default; these commands seem to be often hit by accident, and can be
-quite destructive if their effects are not noticed immediately.
-
-** The function `erase-buffer' is now interactive, but disabled by default.
-
-** When visiting a new file, Emacs attempts to abbreviate the file's
-path using the symlinks listed in `directory-abbrev-alist'.
-
-** When you visit the same file in under two names that translate into
-the same name once symbolic links are handled, Emacs warns you that
-you have two buffers for the same file.
-
-** If you wish to avoid visiting the same file in two buffers under
-different names, set the variable `find-file-existing-other-name'
-non-nil.  Then `find-file' uses the existing buffer visiting the file,
-no matter which of the file's names you specify.
-
-** If you set `find-file-visit-truename' non-nil, then the file name
-recorded for a buffer is the file's truename (in which all symbolic
-links have been removed), rather than the name you specify.  Setting
-`find-file-visit-truename' also implies the effect of
-`find-file-existing-other-name'.
-
-** C-x C-v now inserts the entire current file name in the minibuffer.
-This is convenient if you made a small mistake in typing it.  Point
-goes after the last slash, before the last file name component, so if
-you want to replace it entirely, you can use C-k right away to delete
-it.
-
-** Commands such as C-M-f in Lisp mode now ignore parentheses within comments.
-
-** C-x q now uses ESC to terminate all iterations of the keyboard
-macro, rather than C-d as before.
-
-** Use the command `setenv' to set an individual environment variable
-for Emacs subprocesses.  Specify a variable name and a value, both as
-strings.  This command applies only to subprocesses yet to be
-started.
-
-** Use `rot13-other-window' to examine a buffer with rot13.
-
-This command does not change the text in the buffer.  Instead, it
-creates a window with a funny display table that applies the code when
-displaying the text.
-
-** The command `M-x version' now prints the current Emacs version; The
-`version' command is an alias for the `emacs-version' command.
-
-** More complex changes in existing packages.
-
-*** `fill-nonuniform-paragraphs' is a new command, much like
-`fill-individual-paragraphs' except that only separator lines separate
-paragraphs.  Since this means that the lines of one paragraph may have
-different amounts of indentation, the fill prefix used is the smallest
-amount of indentation of any of the lines of the paragraph.
-
-*** Filling is now partially controlled by a new minor mode, Adaptive
-Fill mode.  When this mode is enabled (and it is enabled by default),
-if you use M-x fill-region-as-paragraph on an indented paragraph and
-you don't have a fill prefix, it uses the indentation of the second
-line of the paragraph as the fill prefix.
-
-Adaptive Fill mode doesn't have much effect on M-q in most major
-modes, because an indented line will probably count as a paragraph
-starter and thus each line of an indented paragraph will be considered
-a paragraph of its own.
-
-*** M-q in C mode now runs `c-fill-paragraph', which is designed
-for filling C comments.  (We assume you don't want to fill
-the code in a C program.)
-
-*** M-$ now runs the Ispell program instead of the Unix spell program.
-
-M-$ starts an Ispell process the first time you use it.  But the process
-stays alive, so that subsequent uses of M-$ run very fast.
-If you want to get rid of the process, use M-x kill-ispell.
-
-To check the entire current buffer, use M-x ispell-buffer.
-Use M-x ispell-region to check just the current region.
-
-Ispell commands often involve interactive replacement of words.
-You can interrupt the interactive replacement with C-g.
-You can restart it again afterward with C-u M-$.
-
-During interactive replacement, you can type the following characters:
-
-a	Accept this word this time.
-DIGIT	Replace the word (this time) with one of the displayed near-misses.
-	The digit you use says which near-miss to use.
-i	Insert this word in your private dictionary
-	  so that Ispell will consider it correct it from now on.
-r	Replace the word this time with a string typed by you.
-
-When the Ispell process starts, it reads your private dictionary which
-is the file `~/ispell.words'.  If you "insert" words with the `i' command,
-these words are added to that file, but not right away--only at the end
-of the interactive replacement process.
-
-Use M-x reload-ispell to reload your private dictionary from
-`~/ispell.words' if you edit it outside of Ispell.
-
-** Changes in existing modes.
-
-*** gdb-mode has been replaced by gud-mode.
-
-The package gud.el (Grand Unified Debugger) replaces gdb.el in Emacs
-19.  It provides a gdb.el-like interface to any of three debuggers;
-gdb itself, the sdb debugger supported on some Unix systems, or the
-dbx debugger on Berkeley systems.
-
-   You start it up with one of the commands M-x gdb, M-x sdb, or
-M-x dbx.  Each entry point finishes by executing a hook; gdb-mode-hook,
-sdb-mode-hook or dbx-mode-hook respectively.
-
-These bindings have changed:
-C-x C-a >	gud-down			(was M-d)
-C-x C-a <	gud-up				(was M-u)
-C-x C-a C-r	gud-cont			(was M-c)
-C-x C-a C-n	gud-next			(was M-n)
-C-x C-a C-s	gud-step			(was M-s)
-C-x C-a C-i 	gud-stepi			(was M-i)
-C-x C-a C-l	gud-recenter			(was C-l)
-C-d		comint-delchar-or-maybe-eof	(was C-c C-d)
-
-These bindings have been removed:
-C-c C-r		(was comint-show-output; now gud-cont)
-
-Since GUD mode uses comint, it uses comint's input history commands,
-superseding C-c C-y (copy-last-shell-input):
-  M-p		comint-next-input
-  M-n		comint-previous-input
-  M-r		comint-previous-similar-input
-  M-s		comint-next-similar-input
-  M-C-r		comint-previous-input-matching
-
-The C-x C-a bindings are also active in source files.
-
-*** The old TeX mode bindings of M-{ and M-} have been moved to C-c {
-and C-c }.  (These commands are `up-list' and `tex-insert-braces';
-they are the TeX equivalents of M-( and M-).)  This is because M-{
-and M-} are now globally defined commands.
-
-*** Changes in Mail mode.
-
-`%' is now a word-separator character in Mail mode.
-
-`mail-signature', if non-nil, tells M-x mail to insert your
-`.signature' file automatically.  If you don't want your signature in
-a particular message, just delete it before you send the message.
-
-You can specify the text to insert at the beginning of each line when
-you use C-c C-y to yank the message you are replying to.  Set
-`mail-yank-prefix' to the desired string.  A value of `nil' (the
-default) means to use indentation, as in Emacs 18.  If you use just
-C-u as the prefix argument to C-c C-y, then it does not insert
-anything at the beginning of the lines, regardless of the value of
-`mail-yank-prefix'.
-
-If you like, you can expand mail aliases as abbrevs, as soon as you
-type them in.  To enable this feature, execute the following:
-
-    (add-hook 'mail-setup-hook 'mail-abbrevs-setup)
-
-This can go in your .emacs file.
-
-Word abbrevs don't expand unless you insert a word-separator character
-afterward.  Any mail aliases that you didn't expand at insertion time
-are expanded subsequently when you send the message.
-
-*** Changes in Rmail.
-
-Rmail by default gets new mail only from the system inbox file,
-not from `~/mbox'.
-
-In Rmail, you can retry sending a message that failed
-by typing `M-m' on the failure message.
-
-By contrast, another new command M-x rmail-resend is used for
-forwarding a message and marking it as "resent from" you
-with header fields "Resent-From:" and "Resent-To:".
-
-`e' is now the command to edit a message.
-To expunge, type `x'.  We know this will surprise people
-some of the time, but the surprise will not be disastrous--if
-you type `e' meaning to expunge, just turn off editing with C-c C-c
-and then type `x'.
-
-Another new Rmail command is `<', which moves to the first message.
-This is for symmetry with `>'.
-
-Use the `b' command to bury the Rmail buffer and its summary buffer,
-if any, removing both of them from display on the screen.
-
-The variable `rmail-output-file-alist' now controls the default
-for the file to output a message to.
-
-In the Rmail summary buffer, all cursor motion commands select
-the message you move to.  It's really neat when you use
-incremental search.
-
-You can now issue most Rmail commands from an Rmail summary buffer.
-The commands do the same thing in that buffer that they do in the
-Rmail buffer.  They apply to the message that is selected in the Rmail
-buffer, which is always the one described by the current summary
-line.
-
-Conversely, motion and deletion commands in the Rmail buffer also
-update the summary buffer.  If you set the variable
-`rmail-redisplay-summary' to a non-nil value, then they bring the
-summary buffer (if one exists) back onto the screen.
-
-C-M-t is a new command to make a summary by topic.  It uses regexp
-matching against just the subjects of the messages to decide which
-messages to show in the summary.
-
-You can easily convert an Rmail file to system mailbox format with the
-command `unrmail'.  This command reads two arguments, the name of
-the Rmail file to convert, and the name of the new mailbox file.
-(This command does not change the Rmail file itself.)
-
-Rmail now handles Content Length fields in messages.
-
-*** `mail-extract-address-components' unpacks mail addresses.
-It takes an address as a string (the contents of the From field, for
-example) and returns a list of the form (FULL-NAME
-CANONICAL-ADDRESS).
-
-*** Changes in C mode and C-related commands.
-
-**** M-x c-up-conditional
-
-In C mode, `c-up-conditional' moves back to the containing
-preprocessor conditional, setting the mark where point was
-previously.
-
-A prefix argument acts as a repeat count.  With a negative argument,
-this command moves forward to the end of the containing preprocessor
-conditional.  When going backwards, `#elif' acts like `#else' followed
-by `#if'.  When going forwards, `#elif' is ignored.
-
-**** In C mode, M-a and M-e are now defined as
-`c-beginning-of-statement' and `c-end-of-statement'.
-
-**** In C mode, M-x c-backslash-region is a new command to insert or
-align `\' characters at the ends of the lines of the region, except
-for the last such line.  This is useful after writing or editing a C
-macro definition.
-
-If a line already ends in `\', this command adjusts the amount of
-whitespace before it.  Otherwise, it inserts a new `\'.
-
-*** New features in info.
-
-When Info looks for an Info file, it searches the directories
-in `Info-directory-list'.  This makes it easy to install the Info files
-that come with various packages.  You can specify the path with
-the environment variable INFOPATH.
-
-There are new commands in Info mode.
-
-`]' now moves forward a node, going up and down levels as needed.
-`[' is similar but moves backward.  These two commands try to traverse
-the entire Info tree, node by node.  They are the equivalent of reading
-a printed manual sequentially.
-
-`<' moves to the top node of the current Info file.
-`>' moves to the last node of the file.
-
-SPC scrolls through the current node; at the end, it advances to the
-next node in depth-first order (like `]').
-
-DEL scrolls backwards in the current node; at the end, it moves to the
-previous node in depth-first order (like `[').
-
-After a menu select, the info `up' command now restores point in the
-menu.  The combination of this and the previous two changes means that
-repeated SPC keystrokes do the right (depth-first traverse forward) thing.
-
-`i STRING RET' moves to the node associated with STRING in the index
-or indices of this manual.  If there is more than one match for
-STRING, the `i' command finds the first match.
-
-`,' finds the next match for the string in the previous `i' command
-
-If you click the middle mouse button near a cross-reference,
-menu item or node pointer while in Info, you will go to the node
-which is referenced.
-
-*** Changes in M-x compile.
-
-You can repeat any previous compilation command conveniently using the
-minibuffer history commands, while in the minibuffer entering the
-compilation command.
-
-While a compilation is going on, the string `Compiling' appears in
-the mode line.  When this string disappears, that tells you the
-compilation is finished.
-
-The buffer of compiler messages is in Compilation mode.  This mode
-provides the keys SPC and DEL to scroll by screenfuls, and M-n and M-p
-to move to the next or previous error message.  You can also use C-c
-C-c on any error message to find the corresponding source code.
-
-Emacs 19 has a more general parser for compiler messages.  For example, it
-can understand messages from lint, and from certain C compilers whose error
-message format is unusual.  Also, it only parses until it sees the error
-message you want; you never have to wait a long time to see the first
-error, no matter how big the buffer is.
-
-*** M-x diff and M-x diff-backup.
-
-This new command compares two files, displaying the differences in an
-Emacs buffer.  The options for the `diff' program come from the
-variable `diff-switches', whose value should be a string.
-
-The buffer of differences has Compilation mode as its major mode, so you
-can use C-x ` to visit successive changed locations in the two
-source files, or you can move to a particular hunk of changes and type
-C-c C-c to move to the corresponding source.  You can also use the
-other special commands of Compilation mode: SPC and DEL for
-scrolling, and M-n and M-p for cursor motion.
-
-M-x diff-backup compares a file with its most recent backup.
-If you specify the name of a backup file, `diff-backup' compares it
-with the source file that it is a backup of.
-
-*** The View commands (such as M-x view-buffer and M-x view-file) no
-longer use recursive edits; instead, they switch temporarily to a
-different major mode (View mode) specifically designed for moving
-around through a buffer without editing it.
-
-*** Changes in incremental search.
-
-**** The character to terminate an incremental search is now RET.
-This is for compatibility with the way most other arguments are read.
-
-To search for a newline in an incremental search, type LFD (also known
-as C-j).
-
-**** Incremental search now maintains a ring of previous search
-strings.  Use M-p and M-n to move through the ring to pick a search
-string to reuse.  These commands leave the selected search ring
-element in the minibuffer, where you can edit it.  Type C-s or C-r to
-finish editing and search for the chosen string.
-
-**** If you type an upper case letter in incremental search, that turns
-off case-folding, so that you get a case-sensitive search.
-
-**** If you type a space during regexp incremental search, it matches
-any sequence of whitespace characters.  If you want to match just a space,
-type C-q SPC.
-
-**** Incremental search is now implemented as a major mode.  When you
-type C-s, it switches temporarily to a different keymap which defines
-each key to do what it ought to do for incremental search.  This has
-next to no effect on the user-visible behavior of searching, but makes
-it easier to customize that behavior.
-
-Emacs 19 eliminates the old variables `search-...-char' that used to
-be the way to specify the characters to use for various special
-purposes in incremental search.  Instead, you can define the meaning
-of a character in incremental search by modifying `isearch-mode-map'.
-
-*** New commands in Buffer Menu mode.
-
-The command C-o now displays the current line's buffer in another
-window but does not select it.  This is like the existing command `o'
-which selects the current line's buffer in another window.
-
-The command % toggles the read-only flag of the current line's buffer.
-
-The way to switch to a set of several buffers, including those marked
-with m, is now v.  The q command simply quits, replacing the buffer
-menu buffer with the buffer that was displayed previously.
-
-** New major modes and packages.
-
-*** The news reader GNUS is now installed.
-
-*** There is a new interface for version control systems, called VC.
-It works with both RCS and SCCS; in fact, you don't really have to
-know which one of them is being used, because it automatically deals
-with either one.
-
-Most of the time, the only command you have to know about is C-x C-q.
-This command normally toggles the read-only flag of the current
-buffer.  If the buffer is visiting a file that is maintained with a
-version control system, the command still toggles read-only, but does
-so by checking the file in or checking it out.
-
-When you check a file in, VC asks you for a log entry by popping up a
-buffer.  Edit the entry there, then type C-c C-c when it is ready.
-That's when the actual checkin happens.  If you change your mind about
-the checkin, simply switch buffers and don't ever go back to the log
-buffer.
-
-To start using version control for a file, use the command C-x v v.
-This works like C-x C-q (performing the next logical version-control
-operation needed to change the file's writability) but it will also
-perform initial checkin on an unregistered file.
-
-By default, VC uses RCS if RCS is installed on your machine;
-otherwise, SCCS.  If you want to make the choice explicitly, you can do
-it by setting `vc-default-back-end' to the symbol `RCS' or the symbol
-`SCCS'.
-
-You can tell when a file you visit is maintained with version control
-because either `RCS' or `SCCS' appears in the mode line.
-
-*** A new Calendar mode has been added, the work of Edward M. Reingold.
-The mode can display the Gregorian calendar and a variety of other
-calendars at any date, and interacts with a diary facility similar to
-the UNIX `calendar' utility.
-
-*** There is a new major mode for editing binary files: Hexl mode.
-To use it, use M-x hexl-find-file instead of C-x C-f to visit the file.
-This command converts the file's contents to hexadecimal and lets you
-edit the translation.  When you save the file, it is converted
-automatically back to binary.
-
-You can also use M-x hexl-mode to translate an existing buffer into hex.
-Do this if you have already visited a binary file.
-
-Hexl mode has a few other commands:
-
-C-M-d	insert a byte with a code typed in decimal.
-C-M-o	insert a byte with a code typed in octal.
-C-M-x	insert a byte with a code typed in hex.
-
-C-x [   move to the beginning of a 1k-byte "page".
-C-x ]   move to the end of a 1k-byte "page".
-
-M-g     go to an address specified in hex.
-M-j	go to an address specified in decimal.
-
-C-c C-c	leave hexl mode and go back to the previous major mode.
-
-*** Miscellaneous new major modes include Awk mode, Icon mode, Makefile
-mode, Perl mode and SGML mode.
-
-*** Edebug, a new source-level debugger for Emacs Lisp functions.
-
-To use Edebug, use the command M-x edebug-defun to "evaluate" a
-function definition in an Emacs Lisp file.  We put "evaluate" in
-quotation marks because it doesn't just evaluate the function, it also
-inserts additional information to support source-level debugging.
-
-You must also do
-
-    (setq debugger 'edebug-debug)
-
-to cause errors and single-stepping to use Edebug instead of the usual
-Emacs Lisp debugger.
-
-For more information, see the Edebug manual, which should be included
-in the Emacs distribution.
-
-*** C++ mode is like C mode, except that it understands C++ comment syntax
-and certain other differences between C and C++.  It also has a command
-`fill-c++-comment' which fills a paragraph made of comment lines.
-
-The command `comment-region' is useful in C++ mode for commenting out
-several consecutive lines, or removing the commenting out of such lines.
-
-*** A new package for merging two variants of the same text.
-
-It's not unusual for programmers to get their signals crossed and
-modify the same program in two different directions.  Then somebody
-has to merge the two versions.  The command `emerge-files' makes this
-easier.
-
-`emerge-files' reads two file names and compares them.  Then it
-displays three buffers: one for each file, and one for the
-differences.
-
-If the original version of the file is available, you can make things
-even easier using `emerge-files-with-ancestor'.  It reads three file
-names--variant 1, variant 2, and the common ancestor--and uses diff3
-to compare them.
-
-You control the merging interactively.  The main loop of Emerge
-consists of showing you one set of differences, asking you what to do
-about them, and doing it.  You have a choice of two modes for giving
-directions to Emerge: "fast" mode and "edit" mode.
-
-In Fast mode, Emerge commands are single characters, and ordinary
-Emacs commands are disabled.  This makes Emerge operations fast, but
-prevents you from doing more than selecting the A or the B version of
-differences.  In Edit mode, all emerge commands use the C-c prefix,
-and the usual Emacs commands are available.  This allows editing the
-merge buffer, but slows down Emerge operations.  Edit and fast modes
-are indicated by `F' and `E' in the minor modes in the mode line.
-
-The Emerge commands are:
-
-	p	go to the previous difference
-	n	go to the next difference
-	a	select the A version of this difference
-	b	select the B version of this difference
-	j	go to a particular difference (prefix argument
-		specifies which difference) (0j suppresses display of
-		the flags)
-	q	quit - finish the merge*
-	f	go into fast mode
-	e	go into edit mode
-	l	recenter (C-l) all three windows*
-	- and 0 through 9
-		prefix numeric arguments
-	d a	select the A version as the default from here down in
-		the merge buffer*
-	d b	select the B version as the default from here down in
-		the merge buffer*
-	c a	copy the A version of the difference into the kill
-		ring
-	c b	copy the B version of the difference into the kill
-		ring
-	i a	insert the A version of the difference at the point
-	i b	insert the B version of the difference at the point
-	m	put the point and mark around the difference region
-	^	scroll-down (like M-v) the three windows*
-	v	scroll-up (like C-v) the three windows*
-	<	scroll-left (like C-x <) the three windows*
-	>	scroll-right (like C-x >) the three windows*
-	|	reset horizontal scroll on the three windows*
-	x 1	shrink the merge window to one line (use C-u l to restore it
-		to full size)
-	x a	find the difference containing a location in the A buffer*
-	x b	find the difference containing a location in the B buffer*
-	x c	combine the two versions of this difference*
-	x C	combine the two versions of this difference, using a
-		register's value as the template*
-	x d	find the difference containing a location in the merge buffer*
-	x f	show the files/buffers Emerge is operating on in Help window
-		(use C-u l to restore windows)
-	x j	join this difference with the following one
-		(C-u x j joins this difference with the previous one)
-	x l	show line numbers of points in A, B, and merge buffers
-	x m	change major mode of merge buffer*
-	x s	split this difference into two differences
-		(first position the point in all three buffers to the places
-		to split the difference)
-	x t	trim identical lines off top and bottom of difference
-		(such lines occur when the A and B versions are
-		identical but differ from the ancestor version)
-	x x	set the template for the x c command*
-
-Normally, the merged output goes back in the first file specified.
-If you use a prefix argument, Emerge reads another file name to use
-for the output file.
-
-Once Emerge has prepared the buffer of differences, it runs the hooks
-in `emerge-startup-hooks'.
-
-*** Asm mode is a new major mode for editing files of assembler code.
-It defines these commands:
-
-TAB	tab-to-tab-stop.
-LFD	Insert a newline and then indent using tab-to-tab-stop.
-:	Insert a colon and then remove the indentation
-	from before the label preceding colon.  Then tab-to-tab-stop.
-;	Insert or align a comment.
-
-*** Two-column mode lets you conveniently edit two side-by-side columns
-of text.  It works using two side-by-side windows, each showing its
-own buffer.
-
-Here are three ways to enter two-column mode:
-
-C-x 6 2 makes the current buffer into the left-hand buffer.  In the
-right-hand window it puts a buffer whose name is based on the current
-buffer's name.
-
-C-x 6 b BUFFER RET makes the current buffer into the left-hand buffer,
-and uses buffer BUFFER as the right-hand buffer.
-
-C-x 6 s splits the current buffer, which contains two-column text,
-into two side-by-side buffers.  The old current buffer becomes the
-left-hand buffer, but the text in the right column is moved into the
-right-hand buffer.  The current column specifies the split point.
-Splitting starts with the current line and continues to the end of the
-buffer.
-
-C-x 6 s takes a prefix argument which specifies how many characters
-before point constitute the column separator.  (The default argument
-is 1, as usual, so by default the column separator is the character
-before point.)  Lines that don't have the column separator at the
-proper place remain unsplit; they stay in the left-hand buffer, and
-the right-hand buffer gets an empty line to correspond.
-
-You can scroll both buffers together using C-x 6 SPC (scroll up), C-x
-6 DEL (scroll down), and C-x 6 RET (scroll up one line).  C-x 6 C-l
-recenters both buffers together.
-
-If you want to make a line which will span both columns, put it in
-the left-hand buffer, with an empty line in the corresponding place in
-the right-hand buffer.
-
-When you have edited both buffers as you wish, merge them with C-x 6
-1.  This copies the text from the right-hand buffer as a second column
-in the other buffer.  To go back to two-column editing, use C-x 6 s.
-
-Use C-x 6 d to disassociate the two buffers, leaving each as it
-stands.  (If the other buffer, the one that was not current when you
-type C-x 6 d, is empty, C-x 6 d kills it.)
-
-*** You can supply command arguments such as files to visit to an Emacs
-that is already running.  To do this, you must do this in your .emacs
-file:
-   (add-hook 'suspend-hook 'resume-suspend-hook)
-Also you must use the shellscript emacs.csh or emacs.sh, found in the
-etc subdirectory.
-
-*** Shell mode has been completely replaced.
-The basic idea is the same, but there are new commands available in
-this mode.
-
-TAB now completes the file name before point in the shell buffer.
-To get a list of all possible completions, type M-?.
-
-There is a new convenient history mechanism for repeating previous
-commands.  Use the command M-p to recall the last command; it copies
-the text of that command to the place where you are editing.  If you
-repeat M-p, it replaces the copied command with the previous command.
-M-n is similar but goes in the opposite direction towards the present.
-When you find the command you wanted, you can edit it, or just
-resubmit it by typing RET.
-
-You can also use M-r and M-s to search for (respectively) earlier or
-later inputs starting with a given string.  First type the string,
-then type M-r to yank a previous input from the history which starts
-with that string.  You can repeat M-r to find successively earlier
-inputs starting with the same string.  You can start moving in the
-opposite direction (toward more recent inputs) by typing M-s instead
-of M-r.  As long as you don't use any commands except M-r and M-s,
-they keep using the same string that you had entered initially.
-
-C-c C-o kills the last batch of output from a shell command.  This is
-useful if a shell command spews out lots of output that just gets in
-the way.
-
-C-c C-r scrolls to display the beginning of the last batch of output
-at the top of the window; it also moves the cursor there.
-
-C-a on a line that starts with a shell prompt moves to the end of the
-prompt, not to the very beginning of the line.
-
-C-d typed at the end of the shell buffer sends EOF to the subshell.
-At any other position in the buffer, it deletes a character as usual.
-
-If Emacs gets confused while trying to track changes in the shell's
-current directory, type M-x dirs to re-synchronize.
-
-M-x send-invisible reads a line of text without echoing it, and
-sends it to the shell.
-
-If you accidentally suspend your process, use M-x comint-continue-subjob
-to continue it.
-
-*** There is now a convenient way to enable flow control on terminals
-where you can't win without it.  Suppose you want to do this on
-VT-100 and H19 terminals; put the following in your `.emacs' file:
-
-   (enable-flow-control-on "vt100" "h19")
-
-When flow control is enabled, you must type C-\ to get the effect of a
-C-s, and type C-^ to get the effect of a C-q.
-
-The function `enable-flow-control' enables flow control unconditionally.
-
-** Changes in Dired
-
-Dired has many new features which allow you to do these things:
-
-- Rename, copy, or make links to many files at once.
-
-- Make distinguishable types of marks for different operations.
-
-- Display contents of subdirectories in the same Dired buffer as the
-parent directory.
-
-*** Setting and Clearing Marks
-
-There are now two kinds of marker that you can put on a file in Dired:
-`D' for deletion, and `*' for any other kind of operation.
-The `x' command deletes only files marked with `D', and most
-other Dired commands operate only on the files marked with `*'.
-
-To mark files with `D' (also called "flagging" the files), you
-can use `d' as usual.  Here are some commands for marking with
-`*' (and also for unmarking):
-
-**** `m' marks the current file with `*', for an operation other than
-deletion.
-
-**** `*' marks all executable files.  With a prefix argument, it
-unmarks all those files.
-
-**** `@' marks all symbolic links.  With a prefix argument, it unmarks
-all those files.
-
-**** `/' marks all directory files except `.' and `..'.  With a prefix
-argument, it unmarks all those files.
-
-**** M-DEL removes a specific or all marks from every file.  With an
-argument, queries for each marked file.  Type your help character,
-usually C-h, at that time for help.
-
-**** `c' replaces all marks that use the character OLD with marks that
-use the character NEW.  You can use almost any character as a mark
-character by means of this command, to distinguish various classes of
-files.  If OLD is ` ', then the command operates on all unmarked
-files; if NEW is ` ', then the command unmarks the files it acts on.
-
-*** Operating on Multiple Files
-
-The Dired commands to operate directly on files (rename them, copy
-them, and so on) have been generalized to work on multiple files.
-There are also some additional commands in this series.
-
-All of these commands use the same convention to decide which files to
-manipulate:
-
-- If you give the command a numeric prefix argument @var{n}, it operates
-on the next @var{n} files, starting with the current file.
-
-- Otherwise, if there are marked files, the commands operate on all the
-marked files.
-
-- Otherwise, the command operates on the current file only.
-
-These are the commands:
-
-**** `C' copies the specified files.  You must specify a directory to
-copy into, or (if copying a single file) a new name.
-
-If `dired-copy-preserve-time' is non-`nil', then copying sets
-the modification time of the new file to be the same as that of the old
-file.
-
-**** `R' renames the specified files.  You must specify a directory to
-rename into, or (if renaming a single file) a new name.
-
-Dired automatically changes the visited file name of buffers associated
-with renamed files so that they refer to the new names.
-
-**** `H' makes hard links to the specified files.  You must specify a
-directory to make the links in, or (if making just one link) the name
-to give the link.
-
-**** `S' makes symbolic links to the specified files.  You must specify
-a directory to make the links in, or (if making just one link) the
-name to give the link.
-
-**** `M' changes the mode of the specified files.  This calls the
-`chmod' program, so you can describe the desired mode change with any
-argument that `chmod' would handle.
-
-**** `G' changes the group of the specified files.
-
-**** `O' changes the owner of the specified files.  (On normal systems,
-only the superuser can do this.)
-
-The variable `dired-chown-program' specifies the name of the
-program to use to do the work (different systems put `chown' in
-different places.
-
-**** `Z' compresses or uncompresses the specified files.
-
-**** `L' loads the specified Emacs Lisp files.
-
-**** `B' byte compiles the specified Emacs Lisp files.
-
-**** `P' prints the specified files.  It uses the variables
-`lpr-command' and `lpr-switches' just as `lpr-file' does.
-
-*** Shell Commands in Dired
-
-`!' reads a shell command string in the minibuffer and runs the shell
-command on all the specified files.  There are two ways of applying a
-shell command to multiple files:
-
-- If you use `*' in the command, then the shell command runs just
-once, with the list of file names substituted for the `*'.
-
-Thus, `! tar cf foo.tar * RET' runs `tar' on the entire list of file
-names, putting them into one tar file `foo.tar'.  The file names are
-inserted in the order that they appear in the Dired buffer.
-
-- If the command string doesn't contain `*', then it runs once for
-each file, with the file name attached at the end.  For example, `!
-uudecode RET' runs `uudecode' on each file.
-
-To run the shell command once for each file but without being limited
-to putting the file name inserted in the middle, use a shell loop.
-For example, this shell command would run `uuencode' on each of the
-specified files, writing the output into a corresponding `.uu' file:
-
-    for file in *; uuencode $file $file >$file.uu; done
-
-The working directory for the shell command is the top level directory
-of the Dired buffer.
-
-*** Regular Expression File Name Substitution
-
-**** `% m REGEXP RET' marks all files whose names match the regular
-expression REGEXP.
-
-Only the non-directory part of the file name is used in matching.  Use
-`^' and `$' to anchor matches.  Exclude subdirs by hiding them.
-
-**** `% d REGEXP RET' flags for deletion all files whose names match
-the regular expression REGEXP.
-
-**** `% R', `% C', `% H', `% S'
-
-These four commands rename, copy, make hard links and make soft links,
-in each case computing the new name by regular expression substitution
-from the name of the old file.  They  effectively perform
-`query-replace-regexp' on the selected file names in the Dired buffer.
-
-The commands read two arguments: a regular expression, and a
-substitution pattern.  Each selected file name is matched against the
-regular expression, and then the part which matched is replaced with
-the substitution pattern.  You can use `\&' and `\DIGIT' in the
-substitution pattern to refer to all or part of the old file name.
-
-If the regular expression matches more than once in a file name,
-only the first match is replaced.
-
-Normally, the replacement process does not consider the directory names;
-it operates on the file name within the directory.  If you specify a
-prefix argument of zero, then replacement affects entire file name.
-
-To apply the command to all files matching the same regexp that you
-use in the command, mark those files with `% m REGEXP RET', then use
-the same regular expression in `% R'.  To make this easier, `% R' uses
-as a default the last regular expression specified in a `%' command.
-
-*** Dired Case Conversion
-
-**** `% u' renames each of the selected files to an upper case name.
-
-**** `% l' renames each of the selected files to a lower case name.
-
-*** File Comparison with Dired
-
-**** `=' compares the current file with another file (the file at the
-mark), by running the `diff' program.  The file at the mark is given
-to `diff' first.
-
-**** `M-=' compares the current file with its backup file.  If there
-are several numerical backups, it uses the most recent one.  If this
-file is a backup, it is compared with its original.
-
-The backup file is the first file given to `diff'.
-
-*** Subdirectories in Dired
-
-You can display more than one directory in one Dired buffer.
-The simplest way to do this is to specify the options `-lR' for
-running `ls'.  That produces a recursive directory listing showing
-all subdirectories, all within the same Dired buffer.
-
-You can also insert the contents of a particular subdirectory with the
-`i' command.  Use this command on the line that describes a file which
-is a directory.  Inserted subdirectory contents follow the top-level
-directory of the Dired buffer, just as they do in `ls -lR' output.
-
-If the subdirectory's contents are already present in the buffer, the
-`i' command just moves to it (type `l' to refresh it).  It sets the
-Emacs mark before moving, so C-x C-x takes you back to the old
-position in the buffer.
-
-When you have subdirectories in the Dired buffer, you can use the page
-motion commands C-x [ and C-x ] to move by entire directories.
-
-The following commands move up and down in the tree of directories
-in one Dired buffer:
-
-**** C-M-u  Go up to the parent directory's headerline.
-
-**** C-M-d  Go down in the tree, to the first subdirectory's
-headerline.
-
-**** C-M-n  Go to next subdirectory headerline, regardless of level.
-
-**** C-M-p  Go to previous subdirectory headerline, regardless of
-level.
-
-*** Hiding Subdirectories
-
-"Hiding" a subdirectory means to make it invisible, except for its
-headerline.  Files inside a hidden subdirectory are never considered
-by Dired.  For example, the commands to operate on marked files ignore
-files in hidden directories even if they are marked.
-
-**** `$' hides or unhides the current subdirectory and move to next
-subdirectory.  A prefix argument serves as a repeat count.
-
-**** `M-$' hides all subdirectories, leaving only their header lines.
-Or, if at least one subdirectory is currently hidden, it makes
-everything visible again.  You can use this command to get an overview
-in very deep directory trees or to move quickly to subdirectories far
-away.
-
-*** Editing the Dired Buffer
-
-**** `l' updates the specified files in a Dired buffer.  This means
-reading their current status from the file system and changing the
-buffer to reflect it properly.
-
-If you use this command on a subdirectory header line, it updates the
-contents of the subdirectory.
-
-**** `g' updates the entire contents of the Dired buffer.  It preserves
-all marks except for those on files that have vanished.  Hidden
-subdirectories are updated but remain hidden.
-
-**** `k' kills all marked lines (not the files).  With a prefix
-argument, it kills that many lines starting with the current line.
-
-This command does not delete files; it just deletes text from the Dired
-buffer.
-
-If you kill the line for a file that is a directory, then its contents
-are also deleted from the buffer.  Typing `C-u k' on the header line
-for a subdirectory is another way to delete a subdirectory from the
-Dired buffer.
-
-*** `find' and Dired.
-
-To search for files with names matching a wildcard pattern use
-`find-name-dired'.  Its arguments are DIRECTORY and
-PATTERN.  It selects all the files in DIRECTORY or its
-subdirectories whose own names match PATTERN.
-
-The files thus selected are displayed in a Dired buffer in which the
-ordinary Dired commands are available.
-
-If you want to test the contents of files, rather than their names, use
-`find-grep-dired'.  This command takes two minibuffer arguments,
-DIRECTORY and REGEXP; it selects all the files in
-DIRECTORY or its subdirectories that contain a match for
-REGEXP.  It works by running `find' and `grep'.
-
-The most general command in this series is `find-dired', which lets
-you specify any condition that `find' can test.  It takes two
-minibuffer arguments, DIRECTORY and FIND-ARGS; it runs `find' in
-DIRECTORY with using FIND-ARGS as the arguments to `find' specifying
-which files to accept.  To use this command, you need to know how to
-use `find'.
-
-** New amusements and novelties.
-
-*** `M-x mpuz' displays a multiplication puzzle, in which each letter
-stands for a digit, and you must determine which digit.  The puzzles
-are determined randomly, so they are always different.
-
-*** `M-x gomoku' plays the game Gomoku with you.  It needs more work.
-
-*** `M-x spook' adds a line of randomly chosen keywords to an outgoing
-mail message.  The keywords are chosen from a list of words that
-suggest you are discussing something subversive.
-
-The idea is that the NSA reads all messages that contain keywords
-suggesting they might be interested, and that adding these lines could
-help to overload them.  I would guess that they have modified their
-program by now to ignore these lines of keywords; perhaps the program
-can be updated if some clever hacker can determine what criterion they
-actually use now.
-
-** Installation changes
-
-*** The configure script has been provided to help with the
-installation process.  It takes the place of editing the Makefiles and
-src/config.h, and can often guess the appropriate operating system to
-use for a particular machine type.  See INSTALL for a more detailed
-description of the steps required for installation.
-
-*** If you create a Lisp file named `site-start.el', Emacs loads the file
-whenever it starts up.
-
-*** A new Lisp variable, `data-directory', indicates the directory
-containing the DOC file, tutorial, copying agreement, and other
-familiar `etc' files.  The value of `data-directory' is a simple string.
-The default should be set at build time, and the person installing
-Emacs should place all the data files in this directory.  The `help.el'
-functions that look for docstrings and information files check this
-variable.  All Emacs Lisp packages should also be coded so that they
-refer to `data-directory' to find data files.
-
-*** The PURESIZE definition has been moved from config.h to its own
-file, puresize.h.  Since almost every file of C source in the
-distribution depends on config.h, but only alloc.c and data.c depend
-on puresize.h, this means that changing the value of PURESIZE causes
-only those two files to be recompiled.
-
-*** The makefile at the top of the Emacs source tree now supports a
-`dist' target, which creates a compressed tar file suitable for
-distribution, using the contents of the source tree.  Object files,
-old file versions, executables, DOC files, and other
-architecture-specific or easy-to-recreate files are not included in
-the tar file.
-
-* For older news, see the file ONEWS.4.  For Lisp changes in (the first
-* release of) Emacs 19, see the file LNEWS.
-
-----------------------------------------------------------------------
-Copyright information:
-
-Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc.
-
-   Permission is granted to anyone to make or distribute verbatim copies
-   of this document as received, in any medium, provided that the
-   copyright notice and this permission notice are preserved,
-   thus giving the recipient permission to redistribute in turn.
-
-   Permission is granted to distribute modified versions
-   of this document, or of portions of it,
-   under the above conditions, provided also that they
-   carry prominent notices stating who last changed them.
-
-Local variables:
-mode: outline
-paragraph-separate: "[ 	]*$"
-end:
-
-arch-tag: 944be39b-afe8-4217-9977-c745b68a7ca2
--- a/etc/ONEWS.1	Sat Jun 03 22:51:32 2006 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1167 +0,0 @@
-Old GNU Emacs NEWS -- history of user-visible changes thru version 15.
-Copyright (C) 1985 Richard M. Stallman.
-See the end for copying conditions.
-
-Changes in Emacs 15
-
-* Emacs now runs on Sun and Megatest 68000 systems;
- also on at least one 16000 system running 4.2.
-
-* Emacs now alters the output-start and output-stop characters
- to prevent C-s and C-q from being considered as flow control
- by cretinous rlogin software in 4.2.
-
-* It is now possible convert Mocklisp code (for Gosling Emacs) to Lisp code
- that can run in GNU Emacs.  M-x convert-mocklisp-buffer
- converts the contents of the current buffer from Mocklisp to
- GNU Emacs Lisp.  You should then save the converted buffer with C-x C-w
- under a name ending in ".el"
-
- There are probably some Mocklisp constructs that are not handled.
- If you encounter one, feel free to report the failure as a bug.
- The construct will be handled in a future Emacs release, if that is not
- not too hard to do.
-
- Note that lisp code converted from Mocklisp code will not necessarily
- run as fast as code specifically written for GNU Emacs, nor will it use
- the many features of GNU Emacs which are not present in Gosling's emacs.
- (In particular, the byte-compiler (m-x byte-compile-file) knows little
- about compilation of code directly converted from mocklisp.)
- It is envisaged that old mocklisp code will be incrementally converted
- to GNU lisp code, with M-x convert-mocklisp-buffer being the first
- step in this process.
-
-* Control-x n (narrow-to-region) is now by default a disabled command.
-
- This means that, if you issue this command, it will ask whether
- you really mean it.  You have the opportunity to enable the
- command permanently at that time, so you will not be asked again.
- This will place the form "(put 'narrow-to-region 'disabled nil)" in your
- .emacs file.
-
-* Tags now prompts for the tag table file name to use.
-
- All the tags commands ask for the tag table file name
- if you have not yet specified one.
-
- Also, the command M-x visit-tag-table can now be used to
- specify the tag table file name initially, or to switch
- to a new tag table.
-
-* If truncate-partial-width-windows is non-nil (as it intially is),
- all windows less than the full screen width (that is,
- made by side-by-side splitting) truncate lines rather than continuing
- them.
-
-* Emacs now checks for Lisp stack overflow to avoid fatal errors.
- The depth in eval, apply and funcall may not exceed max-lisp-eval-depth.
- The depth in variable bindings and unwind-protects may not exceed
- max-specpdl-size.  If either limit is exceeded, an error occurs.
- You can set the limits to larger values if you wish, but if you make them
- too large, you are vulnerable to a fatal error if you invoke
- Lisp code that does infinite recursion.
-
-* New hooks  find-file-hook  and  write-file-hook.
- Both of these variables if non-nil should be functions of no arguments.
- At the time they are called (current-buffer) will be the buffer being
- read or written respectively.
-
- find-file-hook  is called whenever a file is read into its own buffer,
- such as by calling  find-file,  revert-buffer, etc.  It is not called by
- functions such as  insert-file  which do not read the file into a buffer of
- its own.
- find-file-hook  is called after the file has been read in and its
- local variables (if any) have been processed.
-
- write-file-hook  is called just before writing out a file from a buffer.
-
-* The initial value of shell-prompt-pattern is now  "^[^#$%>]*[#$%>] *"
-
-* If the .emacs file sets inhibit-startup-message to non-nil,
- the messages normally printed by Emacs at startup time
- are inhibited.
-
-* Facility for run-time conditionalization on the basis of emacs features.
-
- The new variable  features  is a list of symbols which represent "features"
- of the executing emacs, for use in run-time conditionalization.
-
- The function  featurep  of one argument may be used to test for the
- presence of a feature. It is just the same as
- (not (null (memq FEATURE features))) where FEATURE is its argument.
- For example, (if (featurep 'magic-window-hack)
-		  (transmogrify-window 'vertical)
-		(split-window-vertically))
-
- The function  provide  of one argument "announces" that FEATURE is present.
- It is much the same as (if (not (featurep FEATURE))
-			    (setq features (cons FEATURE features)))
-
- The function  require  with arguments FEATURE and FILE-NAME loads FILE-NAME
- (which should contain the form (provide FEATURE)) unless FEATURE is present.
- It is much the same as (if (not (featurep FEATURE))
-			    (progn (load FILE-NAME)
-				   (if (not featurep FEATURE) (error ...))))
- FILE-NAME is optional and defaults to FEATURE.
-
-* New function load-average.
-
- This returns a list of three integers, which are
- the current 1 minute, 5 minute and 15 minute load averages,
- each multiplied by a hundred (since normally they are floating
- point numbers).
-
-* Per-terminal libraries loaded automatically.
-
- Emacs when starting up on terminal type T automatically loads
- a library named term-T.  T is the value of the TERM environment variable.
- Thus, on terminal type vt100, Emacs would do (load "term-vt100" t t).
- Such libraries are good places to set the character translation table.
-
- It is a bad idea to redefine lots of commands in a per-terminal library,
- since this affects all users.  Instead, define a command to do the
- redefinitions and let the user's init file, which is loaded later,
- call that command or not, as the user prefers.
-
-* Programmer's note: detecting killed buffers.
-
- Buffers are eliminated by explicitly killing them, using
- the function kill-buffer.  This does not eliminate or affect
- the pointers to the buffer which may exist in list structure.
- If you have a pointer to a buffer and wish to tell whether
- the buffer has been killed, use the function buffer-name.
- It returns nil on a killed buffer, and a string on a live buffer.
-
-* New ways to access the last command input character.
-
- The function last-key-struck, which used to return the last
- input character that was read by command input, is eliminated.
- Instead, you can find this information as the value of the
- variable last-command-char.  (This variable used to be called
- last-key).
-
- Another new variable, last-input-char, holds the last character
- read from the command input stream regardless of what it was
- read for.  last-input-char and last-command-char are different
- only inside a command that has called read-char to read input.
-
-* The new switch -kill causes Emacs to exit after processing the
- preceding command line arguments.  Thus,
-    emacs -l lib data -e do-it -kill
- means to load lib, find file data, call do-it on no arguments,
- and then exit.
-
-* The config.h file has been modularized.
-
- Options that depend on the machine you are running on are defined
- in a file whose name starts with "m-", such as m-vax.h.
- Options that depend on the operating system software version you are
- running on are defined in a file whose name starts with "s-",
- such as s-bsd4.2.h.
-
- config.h includes one m- file and one s- file.  It also defines a
- few other options whose values do not follow from the machine type
- and system type being used.  Installers normally will have to
- select the correct m- and s- files but will never have to change their
- contents.
-
-* Termcap AL and DL strings are understood.
-
- If the termcap entry defines AL and DL strings, for insertion
- and deletion of multiple lines in one blow, Emacs now uses them.
- This matters most on certain bit map display terminals for which
- scrolling is comparatively slow.
-
-* Bias against scrolling screen far on fast terminals.
-
- Emacs now prefers to redraw a few lines rather than
- shift them a long distance on the screen, when the terminal is fast.
-
-* New major mode, mim-mode.
-
- This major mode is for editing MDL code.  Perhaps a MDL
- user can explain why it is not called mdl-mode.
- You must load the library mim-mode explicitly to use this.
-
-* GNU documentation formatter `texinfo'.
-
- The `texinfo' library defines a format for documentation
- files which can be passed through Tex to make a printed manual
- or passed through texinfo to make an Info file.  Texinfo is
- documented fully by its own Info file; compare this file
- with its source, texinfo.texinfo, for additional guidance.
-
- All documentation files for GNU utilities should be written
- in texinfo input format.
-
- Tex processing of texinfo files requires the Botex macro package.
- This is not ready for distribution yet, but will appear at
- a later time.
-
-* New function read-from-string (emacs 15.29)
-
- read-from-string takes three arguments: a string to read from,
- and optionally start and end indices which delimit a substring
- from which to read.  (They default to 0 and the length of the string,
- respectively.)
-
- This function returns a cons cell whose car is the object produced
- by reading from the string and whose cdr is a number giving the
- index in the string of the first character not read. That index may
- be passed as the second argument to a later call to  read-from-string
- to read the next form represented by the string.
-
- In addition, the function  read  now accepts a string as its argument.
- In this case, it calls  read-from-string  on the whole string, and
- returns the car of the result. (ie the actual object read.)
-
-Changes in Emacs 14
-
-* Completion now prints various messages such as [Sole Completion]
- or [Next Character Not Unique] to describe the results obtained.
- These messages appear after the text in the minibuffer, and remain
- on the screen until a few seconds go by or you type a key.
-
-* The buffer-read-only flag is implemented.
- Setting or binding this per-buffer variable to a non-nil value
- makes illegal any operation which would modify the textual content of
- the buffer.  (Such operations signal a  buffer-read-only  error)
- The read-only state of a buffer may be altered using toggle-read-only
- (C-x C-q)
- The buffers used by Rmail, Dired, Rnews, and Info are now read-only
- by default to prevent accidental damage to the information in those
- buffers.
-
-* Functions car-safe and cdr-safe.
- These functions are like car and cdr when the argument is a cons.
- Given an argument not a cons, car-safe always returns nil, with
- no error; the same for cdr-safe.
-
-* The new function user-real-login-name returns the name corresponding
- to the real uid of the Emacs process.  This is usually the same
- as what user-login-name returns; however, when Emacs is invoked
- from su, user-real-login-name returns "root" but user-login-name
- returns the name of the user who invoked su.
-
-Changes in Emacs 13
-
-* There is a new version numbering scheme.
-
- What used to be the first version number, which was 1,
- has been discarded since it does not seem that I need three
- levels of version number.
-
- However, a new third version number has been added to represent
- changes by user sites.  This number will always be zero in
- Emacs when I distribute it; it will be incremented each time
- Emacs is built at another site.
-
-* There is now a reader syntax for Meta characters:
- \M-CHAR means CHAR or'ed with the Meta bit.  For example:
-
-    ?\M-x   is   (+ ?x 128)
-    ?\M-\n  is   (+ ?\n 128)
-    ?\M-\^f is   (+ ?\^f 128)
-
- This syntax can be used in strings too.  Note, however, that
- Meta characters are not meaningful in key sequences being passed
- to define-key or lookup-key; you must use ESC characters (\e)
- in them instead.
-
- ?\C- can be used likewise for control characters.  (13.9)
-
-* Installation change
- The string "../lisp" now adds to the front of the load-path
- used for searching for Lisp files during Emacs initialization.
- It used to replace the path specified in paths.h entirely.
- Now the directory ../lisp is searched first and the directoris
- specified in paths.h are searched afterward.
-
-Changes in Emacs 1.12
-
-* There is a new installation procedure.
- See the file INSTALL that comes in the top level
- directory in the tar file or tape.
-
-* The Meta key is now supported on terminals that have it.
- This is a shift key which causes the high bit to be turned on
- in all input characters typed while it is held down.
-
- read-char now returns a value in the range 128-255 if
- a Meta character is typed.  When interpreted as command
- input, a Meta character is equivalent to a two character
- sequence, the meta prefix character followed by the un-metized
- character (Meta-G unmetized is G).
-
- The meta prefix character
- is specified by the value of the variable meta-prefix-char.
- If this character (normally Escape) has been redefined locally
- with a non-prefix definition (such as happens in completing
- minibuffers) then the local redefinition is suppressed when
- the character is not the last one in a key sequence.
- So the local redefinition is effective if you type the character
- explicitly, but not effective if the character comes from
- the use of the Meta key.
-
-* `-' is no longer a completion command in the minibuffer.
- It is an ordinary self-inserting character.
-
-* The list load-path of directories load to search for Lisp files
- is now controlled by the EMACSLOADPATH environment variable
-[[ Note this was originally EMACS-LOAD-PATH and has been changed
- again; sh does not deal properly with hyphens in env variable names]]
- rather than the EPATH environment variable.  This is to avoid
- conflicts with other Emacses.
-
- While Emacs is being built initially, the load-path
- is now just ("../lisp"), ignoring paths.h.  It does not
- ignore EMACSLOADPATH, however; you should avoid having
- this variable set while building Emacs.
-
-* You can now specify a translation table for keyboard
- input characters, as a way of exchanging or substituting
- keys on the keyboard.
-
- If the value of keyboard-translate-table is a string,
- every character received from the keyboard is used as an
- index in that string, and the character at that index in
- the string is used as input instead of what was actually
- typed.  If the actual input character is >= the length of
- the string, it is used unchanged.
-
- One way this feature can be used is to fix bad keyboard
- designes.  For example, on some terminals, Delete is
- Shift-Underscore.  Since Delete is a more useful character
- than Underscore, it is an improvement to make the unshifted
- character Delete and the shifted one Underscore.  This can
- be done with
-
-  ;; First make a translate table that does the identity translation.
-  (setq keyboard-translate-table (make-string 128 0))
-  (let ((i 0))
-    (while (< i 128)
-      (aset keyboard-translate-table i i)
-      (setq i (1+ i))))
-
-  ;; Now alter translations of some characters.
-  (aset keyboard-translate-table ?\_ ?\^?)
-  (aset keyboard-translate-table ?\^? ?\_)
-
- If your terminal has a Meta key and can therefore send
- codes up to 255, Meta characters are translated through
- elements 128 through 255 of the translate table, and therefore
- are translated independently of the corresponding non-Meta
- characters.  You must therefore establish translations
- independently for the Meta characters if you want them too:
-
-  ;; First make a translate table that does the identity translation.
-  (setq keyboard-translate-table (make-string 256 0))
-  (let ((i 0))
-    (while (< i 256)
-      (aset keyboard-translate-table i i)
-      (setq i (1+ i))))
-
-  ;; Now alter translations of some characters.
-  (aset keyboard-translate-table ?\_ ?\^?)
-  (aset keyboard-translate-table ?\^? ?\_)
-
-  ;; Now alter translations of some Meta characters.
-  (aset keyboard-translate-table (+ 128 ?\_) (+ 128 ?\^?))
-  (aset keyboard-translate-table (+ 128 ?\^?) (+ 128 ?\_))
-
-* (process-kill-without-query PROCESS)
-
-This marks the process so that, when you kill Emacs,
-you will not on its account be queried about active subprocesses.
-
-Changes in Emacs 1.11
-
-* The commands C-c and C-z have been interchanged,
- for greater compatibility with normal Unix usage.
- C-z now runs suspend-emacs and C-c runs exit-recursive-edit.
-
-* The value returned by file-name-directory now ends
- with a slash.  (file-name-directory "foo/bar") => "foo/".
- This avoids confusing results when dealing with files
- in the root directory.
-
- The value of the per-buffer variable default-directory
- is also supposed to have a final slash now.
-
-* There are now variables to control the switches passed to
- `ls' by the C-x C-d command (list-directory).
- list-directory-brief-switches is a string, initially "-CF",
- used for brief listings, and list-directory-verbose-switches
- is a string, initially "-l", used for verbose ones.
-
-* For Ann Arbor Ambassador terminals, the termcap "ti" string
- is now used to initialize the screen geometry on entry to Emacs,
- and the "te" string is used to set it back on exit.
- If the termcap entry does not define the "ti" or "te" string,
- Emacs does what it used to do.
-
-Changes in Emacs 1.10
-
-* GNU Emacs has been made almost 1/3 smaller.
- It now dumps out as only 530kbytes on Vax 4.2bsd.
-
-* The term "checkpoint" has been replaced by "auto save"
- throughout the function names, variable names and documentation
- of GNU Emacs.
-
-* The function load now tries appending ".elc" and ".el"
- to the specified filename BEFORE it tries the filename
- without change.
-
-* rmail now makes the mode line display the total number
- of messages and the current message number.
- The "f" command now means forward a message to another user.
- The command to search through all messages for a string is now "F".
- The "u" command now means to move back to the previous
- message and undelete it.  To undelete the selected message, use Meta-u.
-
-* The hyphen character is now equivalent to a Space while
- in completing minibuffers.  Both mean to complete an additional word.
-
-* The Lisp function error now takes args like format
- which are used to construct the error message.
-
-* Redisplay will refuse to start its display at the end of the buffer.
- It will pick a new place to display from, rather than use that.
-
-* The value returned by garbage-collect has been changed.
- Its first element is no longer a number but a cons,
- whose car is the number of cons cells now in use,
- and whose cdr is the number of cons cells that have been
- made but are now free.
- The second element is similar but describes symbols rather than cons cells.
- The third element is similar but describes markers.
-
-* The variable buffer-name has been eliminated.
- The function buffer-name still exists.  This is to prevent
- user programs from changing buffer names without going
- through the rename-buffer function.
-
-Changes in Emacs 1.9
-
-* When a fill prefix is in effect, paragraphs are started
- or separated by lines that do not start with the fill prefix.
- Also, a line which consists of the fill prefix followed by
- white space separates paragraphs.
-
-* C-x C-v runs the new function find-alternate-file.
- It finds the specified file, switches to that buffer,
- and kills the previous current buffer.  (It requires
- confirmation if that buffer had changes.)  This is
- most useful after you find the wrong file due to a typo.
-
-* Exiting the minibuffer moves the cursor to column 0,
- to show you that it has really been exited.
-
-* Meta-g (fill-region) now fills each paragraph in the
- region individually.  To fill the region as if it were
- a single paragraph (for when the paragraph-delimiting mechanism
- does the wrong thing), use fill-region-as-paragraph.
-
-* Tab in text mode now runs the function tab-to-tab-stop.
- A new mode called indented-text-mode is like text-mode
- except that in it Tab runs the function indent-relative,
- which indents the line under the previous line.
- If auto fill is enabled while in indented-text-mode,
- the new lines that it makes are indented.
-
-* Functions kill-rectangle and yank-rectangle.
- kill-rectangle deletes the rectangle specified by dot and mark
- (or by two arguments) and saves it in the variable killed-rectangle.
- yank-rectangle inserts the rectangle in that variable.
-
- Tab characters in a rectangle being saved are replaced
- by spaces in such a way that their appearance will
- not be changed if the rectangle is later reinserted
- at a different column position.
-
-* `+' in a regular expression now means
- to repeat the previous expression one or more times.
- `?' means to repeat it zero or one time.
- They are in all regards like `*' except for the
- number of repetitions they match.
-
- \< in a regular expression now matches the null string
- when it is at the beginning of a word; \> matches
- the null string at the end of a word.
-
-* C-x p narrows the buffer so that only the current page
- is visible.
-
-* C-x ) with argument repeats the kbd macro just
- defined that many times, counting the definition
- as one repetition.
-
-* C-x ( with argument begins defining a kbd macro
- starting with the last one defined.  It executes that
- previous kbd macro initially, just as if you began
- by typing it over again.
-
-* C-x q command queries the user during kbd macro execution.
- With prefix argument, enters recursive edit,
-  reading keyboard commands even within a kbd macro.
-  You can give different commands each time the macro executes.
- Without prefix argument, reads a character.  Your options are:
-  Space -- execute the rest of the macro.
-  Delete -- skip the rest of the macro; start next repetition.
-  C-d -- skip rest of the macro and don't repeat it any more.
-  C-r -- enter a recursive edit, then on exit ask again for a character
-  C-l -- redisplay screen and ask again."
-
-* write-kbd-macro and append-kbd-macro are used to save
- a kbd macro definition in a file (as Lisp code to
- redefine the macro when the file is loaded).
- These commands differ in that write-kbd-macro
- discards the previous contents of the file.
- If given a prefix argument, both commands
- record the keys which invoke the macro as well as the
- macro's definition.
-
-* The variable global-minor-modes is used to display
- strings in the mode line of all buffers.  It should be
- a list of elements thaht are conses whose cdrs are strings
- to be displayed.  This complements the variable
- minor-modes, which has the same effect but has a separate
- value in each buffer.
-
-* C-x = describes horizontal scrolling in effect, if any.
-
-* Return now auto-fills the line it is ending, in auto fill mode.
- Space with zero as argument auto-fills the line before it
- just like Space without an argument.
-
-Changes in Emacs 1.8
-
-This release mostly fixes bugs.  There are a few new features:
-
-* apropos now sorts the symbols before displaying them.
- Also, it returns a list of the symbols found.
-
- apropos now accepts a second arg PRED which should be a function
- of one argument; if PRED is non-nil, each symbol is tested
- with PRED and only symbols for which PRED returns non-nil
- appear in the output or the returned list.
-
- If the third argument to apropos is non-nil, apropos does not
- display anything; it merely returns the list of symbols found.
-
- C-h a now runs the new function command-apropos rather than
- apropos, and shows only symbols with definitions as commands.
-
-* M-x shell sends the command
-    if (-f ~/.emacs_NAME)source ~/.emacs_NAME
- invisibly to the shell when it starts.  Here NAME
- is replaced by the name of shell used,
- as it came from your ESHELL or SHELL environment variable
- but with directory name, if any, removed.
-
-* M-, now runs the command tags-loop-continue, which is used
- to resume a terminated tags-search or tags-query-replace.
-
-Changes in Emacs 1.7
-
-It's Beat CCA Week.
-
-* The initial buffer is now called "*scratch*" instead of "scratch",
- so that all buffer names used automatically by Emacs now have *'s.
-
-* Undo information is now stored separately for each buffer.
- The Undo command (C-x u) always applies to the current
- buffer only.
-
- C-_ is now a synonym for C-x u.
-
- (buffer-flush-undo BUFFER) causes undo information not to
- be kept for BUFFER, and frees the space that would have
- been used to hold it.  In any case, no undo information is
- kept for buffers whose names start with spaces.  (These
- buffers also do not appear in the C-x C-b display.)
-
-* Rectangle operations are now implemented.
- C-x r stores the rectangle described by dot and mark
- into a register; it reads the register name from the keyboard.
- C-x g, the command to insert the contents of a register,
- can be used to reinsert the rectangle elsewhere.
-
- Other rectangle commands include
-  open-rectangle:
-    insert a blank rectangle in the position and size
-    described by dot and mark, at its corners;
-    the existing text is pushed to the right.
-  clear-rectangle:
-    replace the rectangle described by dot ane mark
-    with blanks.  The previous text is deleted.
-  delete-rectangle:
-    delete the text of the specified rectangle,
-    moving the text beyond it on each line leftward.
-
-* Side-by-side windows are allowed.  Use C-x 5 to split the
- current window into two windows side by side.
- C-x } makes the selected window ARG columns wider at the
- expense of the windows at its sides.  C-x { makes the selected
- window ARG columns narrower.  An argument to C-x 5 specifies
- how many columns to give to the leftmost of the two windows made.
-
- C-x 2 now accepts a numeric argument to specify the number of
- lines to give to the uppermost of the two windows it makes.
-
-* Horizontal scrolling of the lines in a window is now implemented.
- C-x < (scroll-left) scrolls all displayed lines left,
- with the numeric argument (default 1) saying how far to scroll.
- When the window is scrolled left, some amount of the beginning
- of each nonempty line is replaced by an "$".
- C-x > scrolls right.  If a window has no text hidden at the left
- margin, it cannot be scrolled any farther right than that.
- When nonzero leftwards scrolling is in effect in a window.
- lines are automatically truncated at the window's right margin
- regardless of the value of the variable truncate-lines in the
- buffer being displayed.
-
-* C-x C-d now uses the default output format of `ls',
- which gives just file names in multiple columns.
- C-u C-x C-d passes the -l switch to `ls'.
-
-* C-t at the end of a line now exchanges the two preceding characters.
-
- All the transpose commands now interpret zero as an argument
- to mean to transpose the textual unit after or around dot
- with the one after or around the mark.
-
-* M-! executes a shell command in an inferior shell
- and displays the output from it.  With a prefix argument,
- it inserts the output in the current buffer after dot
- and sets the mark after the output.  The shell command
- gets /dev/null as its standard input.
-
- M-| is like M-! but passes the contents of the region
- as input to the shell command.  A prefix argument makes
- the output from the command replace the contents of the region.
-
-* The mode line will now say "Def" after the major mode
- while a keyboard macro is being defined.
-
-* The variable fill-prefix is now used by Meta-q.
- Meta-q removes the fill prefix from lines that start with it
- before filling, and inserts the fill prefix on each line
- after filling.
-
- The command C-x . sets the fill prefix equal to the text
- on the current line before dot.
-
-* The new command Meta-j (indent-new-comment-line),
- is like Linefeed (indent-new-line) except when dot is inside a comment;
- in that case, Meta-j inserts a comment starter on the new line,
- indented under the comment starter above.  It also inserts
- a comment terminator at the end of the line above,
- if the language being edited calls for one.
-
-* Rmail should work correctly now, and has some C-h m documentation.
-
-Changes in Emacs 1.6
-
-* save-buffers-kill-emacs is now on C-x C-c
- while C-x C-z does suspend-emacs.  This is to make
- C-x C-c like the normal Unix meaning of C-c
- and C-x C-z linke the normal Unix meaning of C-z.
-
-* M-ESC (eval-expression) is now a disabled command by default.
- This prevents users who type ESC ESC accidentally from
- getting confusing results.  Put
-    (put 'eval-expression 'disabled nil)
- in your ~/.emacs file to enable the command.
-
-* Self-inserting text is grouped into bunches for undoing.
- Each C-x u command undoes up to 20 consecutive self-inserting
- characters.
-
-* Help f now uses as a default the function being called
- in the innermost Lisp expression that dot is in.
- This makes it more convenient to use while writing
- Lisp code to run in Emacs.
- (If the text around dot does not appear to be a call
- to a Lisp function, there is no default.)
-
- Likewise, Help v uses the symbol around or before dot
- as a default, if that is a variable name.
-
-* Commands that read filenames now insert the default
- directory in the minibuffer, to become part of your input.
- This allows you to see what the default is.
- You may type a filename which goes at the end of the
- default directory, or you may edit the default directory
- as you like to create the input you want to give.
- You may also type an absolute pathname (starting with /)
- or refer to a home directory (input starting with ~)
- after the default; the presence of // or /~ causes
- everything up through the slash that precedes your
- type-in to be ignored.
-
- Returning the default directory without change,
- including the terminating slash, requests the use
- of the default file name (usually the visited file's name).
-
- Set the variable insert-default-directory to nil
- to turn off this feature.
-
-* M-x shell now uses the environment variable ESHELL,
- if it exists, as the file name of the shell to run.
- If there is no ESHELL variable, the SHELL variable is used.
- This is because some shells do not work properly as inferiors
- of Emacs (or anything like Emacs).
-
-* A new variable minor-modes now exists, with a separate value
- in each buffer.  Its value should be an alist of elements
- (MODE-FUNCTION-SYMBOL . PRETTY-NAME-STRING), one for each
- minor mode that is turned on in the buffer.  The pretty
- name strings are displayed in the mode line after the name of the
- major mode (with spaces between them).  The mode function
- symbols should be symbols whose function definitions will
- turn on the minor mode if given 1 as an argument; they are present
- so that Help m can find their documentation strings.
-
-* The format of tag table files has been changed.
- The new format enables Emacs to find tags much faster.
-
- A new program, etags, exists to make the kind of
- tag table that Emacs wants.  etags is invoked just
- like ctags; in fact, if you give it any switches,
- it does exactly what ctags would do.  Give it the
- empty switch ("-") to make it act like ctags with no switches.
-
- etags names the tag table file "TAGS" rather than "tags",
- so that these tag tables and the standard Unix ones
- can coexist.
-
- The tags library can no longer use standard ctags-style
- tag tables files.
-
-* The file of Lisp code Emacs reads on startup is now
- called ~/.emacs rather than ~/.emacs_pro.
-
-* copy-file now gives the copied file the same mode bits
- as the original file.
-
-* Output from a process inserted into the process's buffer
- no longer sets the buffer's mark.  Instead it sets a
- marker associated with the process to point to the end
- of the inserted text.  You can access this marker with
-    (process-mark PROCESS)
- and then either examine its position with marker-position
- or set its position with set-marker.
-
-* completing-read takes a new optional fifth argument which,
- if non-nil, should be a string of text to insert into
- the minibuffer before reading user commands.
-
-* The Lisp function elt now exists:
- (elt ARRAY N) is like (aref ARRAY N),
- (elt LIST N) is like (nth N LIST).
-
-* rplaca is now a synonym for setcar, and rplacd for setcdr.
- eql is now a synonym for eq; it turns out that the Common Lisp
- distinction between eq and eql is insignificant in Emacs.
- numberp is a new synonym for integerp.
-
-* auto-save has been renamed to auto-save-mode.
-
-* Auto save file names for buffers are now created by the
- function make-auto-save-file-name.  This is so you can
- redefine that function to change the way auto save file names
- are chosen.
-
-* expand-file-name no longer discards a final slash.
-    (expand-file-name "foo" "/lose") => "/lose/foo"
-    (expand-file-name "foo/" "/lose") => "/lose/foo/"
-
- Also, expand-file-name no longer substitutes $ constructs.
- A new function substitute-in-file-name does this.  Reading
- a file name with read-file-name or the `f' or`F' option
- of interactive calling uses substitute-in-file-name
- on the file name that was read and returns the result.
-
- All I/O primitives including insert-file-contents and
- delete-file call expand-file-name on the file name supplied.
- This change makes them considerably faster in the usual case.
-
-* Interactive calling spec strings allow the new code letter 'D'
- which means to read a directory name.  It is like 'f' except
- that the default if the user makes no change in the minibuffer
- is to return the current default directory rather than the
- current visited file name.
-
-Changes in Emacs 1.5
-
-* suspend-emacs now accepts an optional argument
- which is a string to be stuffed as terminal input
- to be read by Emacs's superior shell after Emacs exits.
-
- A library called ledit exists which uses this feature
- to transmit text to a Lisp job running as a sibling of
- Emacs.
-
-* If find-file is given the name of a directory,
- it automatically invokes dired on that directory
- rather than reading in the binary data that make up
- the actual contents of the directory according to Unix.
-
-* Saving an Emacs buffer now preserves the file modes
- of any previously existing file with the same name.
- This works using new Lisp functions file-modes and
- set-file-modes, which can be used to read or set the mode
- bits of any file.
-
-* The Lisp function  cond  now exists, with its traditional meaning.
-
-* defvar and defconst now permit the documentation string
- to be omitted.  defvar also permits the initial value
- to be omitted; then it acts only as a comment.
-
-Changes in Emacs 1.4
-
-* Auto-filling now normally indents the new line it creates
- by calling indent-according-to-mode.  This function, meanwhile,
- has in Fundamental and Text modes the effect of making the line
- have an indentation of the value of left-margin, a per-buffer variable.
-
- Tab no longer precisely does indent-according-to-mode;
- it does that in all modes that supply their own indentation routine,
- but in Fundamental, Text and allied modes it inserts a tab character.
-
-* The command M-x grep now invokes grep (on arguments
- supplied by the user) and reads the output from grep
- asynchronously into a buffer.  The command C-x ` can
- be used to move to the lines that grep has found.
- This is an adaptation of the mechanism used for
- running compilations and finding the loci of error messages.
-
- You can now use C-x ` even while grep or compilation
- is proceeding; as more matches or error messages arrive,
- C-x ` will parse them and be able to find them.
-
-* M-x mail now provides a command to send the message
- and "exit"--that is, return to the previously selected
- buffer.  It is C-z C-z.
-
-* Tab in C mode now tries harder to adapt to all indentation styles.
- If the line being indented is a statement that is not the first
- one in the containing compound-statement, it is aligned under
- the beginning of the first statement.
-
-* The functions screen-width and screen-height return the
- total width and height of the screen as it is now being used.
- set-screen-width and set-screen-height tell Emacs how big
- to assume the screen is; they each take one argument,
- an integer.
-
-* The Lisp function 'function' now exists.  function is the
- same as quote, except that it serves as a signal to the
- Lisp compiler that the argument should be compiled as
- a function.  Example:
-   (mapcar (function (lambda (x) (+ x 5))) list)
-
-* The function set-key has been renamed to global-set-key.
- undefine-key and local-undefine-key has been renamed to
- global-unset-key and local-unset-key.
-
-* Emacs now collects input from asynchronous subprocesses
- while waiting in the functions sleep-for and sit-for.
-
-* Shell mode's Newline command attempts to distinguish subshell
- prompts from user input when issued in the middle of the buffer.
- It no longer reexecutes from dot to the end of the line;
- it reeexecutes the entire line minus any prompt.
- The prompt is recognized by searching for the value of
- shell-prompt-pattern, starting from the beginning of the line.
- Anything thus skipped is not reexecuted.
-
-Changes in Emacs 1.3
-
-* An undo facility exists now.  Type C-x u to undo a batch of
- changes (usually one command's changes, but some commands
- such as query-replace divide their changes into multiple
- batches.  You can repeat C-x u to undo further.  As long
- as no commands other than C-x u intervene, each one undoes
- another batch.  A numeric argument to C-x u acts as a repeat
- count.
-
- If you keep on undoing, eventually you may be told that
- you have used up all the recorded undo information.
- Some actions, such as reading in files, discard all
- undo information.
-
- The undo information is not currently stored separately
- for each buffer, so it is mainly good if you do something
- totally spastic.  [This has since been fixed.]
-
-* A learn-by-doing tutorial introduction to Emacs now exists.
- Type C-h t to enter it.
-
-* An Info documentation browser exists.  Do M-x info to enter it.
- It contains a tutorial introduction so that no more documentation
- is needed here.  As of now, the only documentation in it
- is that of Info itself.
-
-* Help k and Help c are now different.  Help c prints just the
- name of the function which the specified key invokes.  Help k
- prints the documentation of the function as well.
-
-* A document of the differences between GNU Emacs and Twenex Emacs
- now exists.  It is called DIFF, in the same directory as this file.
-
-* C mode can now indent comments better, including multi-line ones.
- Meta-Control-q now reindents comment lines within the expression
- being aligned.
-
-* Insertion of a close-parenthesis now shows the matching open-parenthesis
- even if it is off screen, by printing the text following it on its line
- in the minibuffer.
-
-* A file can now contain a list of local variable values
- to be in effect when the file is edited.  See the file DIFF
- in the same directory as this file for full details.
-
-* A function nth is defined.  It means the same thing as in Common Lisp.
-
-* The function install-command has been renamed to set-key.
- It now takes the key sequence as the first argument
- and the definition for it as the second argument.
- Likewise, local-install-command has been renamed to local-set-key.
-
-Changes in Emacs 1.2
-
-* A Lisp single-stepping and debugging facility exists.
- To cause the debugger to be entered when an error
- occurs, set the variable debug-on-error non-nil.
-
- To cause the debugger to be entered whenever function foo
- is called, do (debug-on-entry 'foo).  To cancel this,
- do (cancel-debug-on-entry 'foo).  debug-on-entry does
- not work for primitives (written in C), only functions
- written in Lisp.  Most standard Emacs commands are in Lisp.
-
- When the debugger is entered, the selected window shows
- a buffer called " *Backtrace" which displays a series
- of stack frames, most recently entered first.  For each
- frame, the function name called is shown, usually followed
- by the argument values unless arguments are still being
- calculated.  At the beginning of the buffer is a description
- of why the debugger was entered: function entry, function exit,
- error, or simply that the user called the function `debug'.
-
- To exit the debugger and return to top level, type `q'.
-
- In the debugger, you can evaluate Lisp expressions by
- typing `e'.  This is equivalent to `M-ESC'.
-
- When the debugger is entered due to an error, that is
- all you can do.  When it is entered due to function entry
- (such as, requested by debug-on-entry), you have two
- options:
-  Continue execution and reenter debugger after the
-    completion of the function being entered.  Type `c'.
-  Continue execution but enter the debugger before
-    the next subexpression.  Type `d'.
-
- You will see that some stack frames are marked with *.
- This means the debugger will be entered when those
- frames exit.  You will see the value being returned
- in the first line of the backtrace buffer.  Your options:
-  Continue execution, and return that value.  Type `c'.
-  Continue execution, and return a specified value.  Type `r'.
-
- You can mark a frame to enter the debugger on exit
- with the `b' command, or clear such a mark with `u'.
-
-* Lisp macros now exist.
- For example, you can write
-    (defmacro cadr (arg) (list 'car (list 'cdr arg)))
- and then the expression
-    (cadr foo)
- will expand into
-    (car (cdr foo))
-
-Changes in Emacs 1.1
-
-* The initial buffer is now called "scratch" and is in a
- new major mode, Lisp Interaction mode.  This mode is
- intended for typing Lisp expressions, evaluating them,
- and having the values printed into the buffer.
-
-  Type Linefeed after a Lisp expression, to evaluate the
- expression and have its value printed into the buffer,
- advancing dot.
-
- The other commands of Lisp mode are available.
-
-* The C-x C-e command for evaluating the Lisp expression
- before dot has been changed to print the value in the
- minibuffer line rather than insert it in the buffer.
- A numeric argument causes the printed value to appear
- in the buffer instead.
-
-* In Lisp mode, the command M-C-x evaluates the defun
- containing or following dot.  The value is printed in
- the minibuffer.
-
-* The value of a Lisp expression evaluated using M-ESC
- is now printed in the minibuffer.
-
-* M-q now runs fill-paragraph, independent of major mode.
-
-* C-h m now prints documentation on the current buffer's
- major mode.  What it prints is the documentation of the
- major mode name as a function.  All major modes have been
- equipped with documentation that describes all commands
- peculiar to the major mode, for this purpose.
-
-* You can display a Unix manual entry with
- the M-x manual-entry command.
-
-* You can run a shell, displaying its output in a buffer,
- with the M-x shell command.  The Return key sends input
- to the subshell.  Output is printed inserted automatically
- in the buffer.  Commands C-c, C-d, C-u, C-w and C-z are redefined
- for controlling the subshell and its subjobs.
- "cd", "pushd" and "popd" commands are recognized as you
- enter them, so that the default directory of the Emacs buffer
- always remains the same as that of the subshell.
-
-* C-x $ (that's a real dollar sign) controls line-hiding based
- on indentation.  With a numeric arg N > 0, it causes all lines
- indented by N or more columns to become invisible.
- They are, effectively, tacked onto the preceding line, where
- they are represented by " ..." on the screen.
- (The end of the preceding visible line corresponds to a
- screen cursor position before the "...".  Anywhere in the
- invisible lines that follow appears on the screen as a cursor
- position after the "...".)
- Currently, all editing commands treat invisible lines just
- like visible ones, except for C-n and C-p, which have special
- code to count visible lines only.
- C-x $ with no argument turns off this mode, which in any case
- is remembered separately for each buffer.
-
-* Outline mode is another form of selective display.
- It is a major mode invoked with M-x outline-mode.
- It is intended for editing files that are structured as
- outlines, with heading lines (lines that begin with one
- or more asterisks) and text lines (all other lines).
- The number of asterisks in a heading line are its level;
- the subheadings of a heading line are all following heading
- lines at higher levels, until but not including the next
- heading line at the same or a lower level, regardless
- of intervening text lines.
-
-  In outline mode, you have commands to hide (remove from display)
- or show the text or subheadings under each heading line
- independently.  Hidden text or subheadings are invisibly
- attached to the end of the preceding heading line, so that
- if you kill the hading line and yank it back elsewhere
- all the invisible lines accompany it.
-
-  All editing commands treat hidden outline-mode lines
- as part of the preceding visible line.
-
-* C-x C-z runs save-buffers-kill-emacs
- offers to save each file buffer, then exits.
-
-* C-c's function is now called suspend-emacs.
-
-* The command C-x m runs mail, which switches to a buffer *mail*
- and lets you compose a message to send.  C-x 4 m runs mail in
- another window.  Type C-z C-s in the mail buffer to send the
- message according to what you have entered in the buffer.
-
-  You must separate the headers from the message text with
- an empty line.
-
-* You can now dired partial directories (specified with names
- containing *'s, etc, all processed by the shell).  Also, you
- can dired more than one directory; dired names the buffer
- according to the filespec or directory name.  Reinvoking
- dired on a directory already direded just switches back to
- the same directory used last time; do M-x revert if you want
- to read in the current contents of the directory.
-
-  C-x d runs dired, and C-x 4 d runs dired in another window.
-
-  C-x C-d (list-directory) also allows partial directories now.
-
-Lisp programming changes
-
-* t as an output stream now means "print to the minibuffer".
- If there is already text in the minibuffer printed via t
- as an output stream, the new text is appended to the old
- (or is truncated and lost at the margin).  If the minibuffer
- contains text put there for some other reason, it is cleared
- first.
-
-  t is now the top-level value of standard-output.
-
-  t as an input stream now means "read via the minibuffer".
- The minibuffer is used to read a line of input, with editing,
- and this line is then parsed.  Any excess not used by `read'
- is ignored; each `read' from t reads fresh input.
- t is now the top-level value of standard-input.
-
-* A marker may be used as an input stream or an output stream.
- The effect is to grab input from where the marker points,
- advancing it over the characters read, or to insert output
- at the marker and advance it.
-
-* Output from an asynchronous subprocess is now inserted at
- the end of the associated buffer, not at the buffer's dot,
- and the buffer's mark is set to the end of the inserted output
- each time output is inserted.
-
-* (pos-visible-in-window-p POS WINDOW)
- returns t if position POS in WINDOW's buffer is in the range
- that is being displayed in WINDOW; nil if it is scrolled
- vertically out of visibility.
-
-  If display in WINDOW is not currently up to date, this function
- calculates carefully whether POS would appear if display were
- done immediately based on the current (window-start WINDOW).
-
-  POS defaults to (dot), and WINDOW to (selected-window).
-
-* Variable buffer-alist replaced by function (buffer-list).
- The actual alist of buffers used internally by Emacs is now
- no longer accessible, to prevent the user from crashing Emacs
- by modifying it.  The function buffer-list returns a list
- of all existing buffers.  Modifying this list cannot hurt anything
- as a new list is constructed by each call to buffer-list.
-
-* load now takes an optional third argument NOMSG which, if non-nil,
- prevents load from printing a message when it starts and when
- it is done.
-
-* byte-recompile-directory is a new function which finds all
- the .elc files in a directory, and regenerates each one which
- is older than the corresponding .el (Lisp source) file.
-
-----------------------------------------------------------------------
-Copyright information:
-
-Copyright (C) 1985 Richard M. Stallman
-
-   Permission is granted to anyone to make or distribute verbatim copies
-   of this document as received, in any medium, provided that the
-   copyright notice and this permission notice are preserved,
-   thus giving the recipient permission to redistribute in turn.
-
-   Permission is granted to distribute modified versions
-   of this document, or of portions of it,
-   under the above conditions, provided also that they
-   carry prominent notices stating who last changed them.
-
-Local variables:
-mode: text
-end:
-
-arch-tag: c006f958-d769-44c7-a9f4-e2faf070624d
--- a/etc/ONEWS.2	Sat Jun 03 22:51:32 2006 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1350 +0,0 @@
-GNU Emacs NEWS -- history of user-visible changes.  26-Mar-1986
-Copyright (C) 1986 Richard M. Stallman.
-See the end for copying conditions.
-
-For older news, see the file ONEWS.1.
-
-Changes in Emacs 17
-
-* Frustrated?
-
-Try M-x doctor.
-
-* Bored?
-
-Try M-x hanoi.
-
-* Brain-damaged?
-
-Try M-x yow.
-
-* Sun3, Tahoe, Apollo, HP9000s300, Celerity, NCR Tower 32,
-  Sequent, Stride, Encore, Plexus and AT&T 7300 machines supported.
-
-The Tahoe, Sun3, Sequent and Celerity use 4.2.  In regard to the
-Apollo, see the file APOLLO in this directory.  NCR Tower32,
-HP9000s300, Stride and Nu run forms of System V.  System V rel 2 also
-works on Vaxes now.  See etc/MACHINES.
-
-* System V Unix supported, including subprocesses.
-
-It should be possible now to bring up Emacs on a machine running
-mere unameliorated system V Unix with no major work; just possible bug
-fixes.  But you can expect to find a handful of those on any machine
-that Emacs has not been run on before.
-
-* Berkeley 4.1 Unix supported.
-
-See etc/MACHINES.
-
-* Portable `alloca' provided.
-
-Emacs can now run on machines that do not and cannot support the library
-subroutine `alloca' in the canonical fashion, using an `alloca' emulation
-written in C.
-
-* On-line manual.
-
-Info now contains an Emacs manual, with essentially the same text
-as in the printed manual.
-
-The manual can now be printed with a standard TeX.
-
-Nicely typeset and printed copies of the manual are available
-from the Free Software Foundation.
-
-* Backup file version numbers.
-
-Emacs now supports version numbers in backup files.
-
-The first time you save a particular file in one editing session,
-the old file is copied or renamed to serve as a backup file.
-In the past, the name for the backup file was made by appending `~'
-to the end of the original file name.
-
-Now the backup file name can instead be made by appending ".~NN~" to
-the original file name, where NN stands for a numeric version.  Each
-time this is done, the new version number is one higher than the
-highest previously used.
-
-Thus, the active, current file does not have a version number.
-Only the backups have them.
-
-This feature is controlled by the variable `version-control'.  If it
-is `nil', as normally, then numbered backups are made only for files
-that already have numbered backups.  Backup names with just `~' are
-used for files that have no numbered backups.
-
-If `version-control' is `never', then the backup file's name is
-made with just `~' in any case.
-
-If `version-control' is not `nil' or `never', numbered backups are
-made unconditionally.
-
-To prevent unlimited consumption of disk space, Emacs can delete
-old backup versions automatically.  Generally Emacs keeps the first
-few backups and the latest few backups, deleting any in between.
-This happens every time a new backup is made.  The two variables that
-control the deletion are `kept-old-versions' and `kept-new-versions'.
-Their values are, respectively, the number of oldest backups to keep
-and the number of newest ones to keep, each time a new backup is made.
-The value of `kept-new-versions' includes the backup just created.
-By default, both values are 2.
-
-If `trim-versions-without-asking' is non-`nil', the excess middle versions
-are deleted without a murmur.  If it is `nil', the default, then you
-are asked whether the excess middle versions should really be deleted.
-
-Dired has a new command `.' which marks for deletion all but the latest
-and oldest few of every numeric series of backups.  `kept-old-versions'
-controls the number of oldest versions to keep, and `dired-kept-versions'
-controls the number of latest versions to keep.  A numeric argument to
-the `.' command, if positive, specifies the number of latest versions
-to keep, overriding `dired-kept-versions'.  A negative argument specifies
-the number of oldest versions to keep, using minus the argument to override
-`kept-old-versions'.
-
-* Immediate conflict detection.
-
-Emacs now locks the files it is modifying, so that if
-you start to modify within Emacs a file that is being
-modified in another Emacs, you get an immediate warning.
-
-The warning gives you three choices:
-1. Give up, and do not make any changes.
-2. Make changes anyway at your own risk.
-3. Make changes anyway, and record yourself as
- the person locking the file (instead of whoever
- was previously recorded.)
-
-Just visiting a file does not lock it.  It is locked
-when you try to change the buffer that is visiting the file.
-Saving the file unlocks it until you make another change.
-
-Locking is done by writing a lock file in a special designated
-directory.  If such a directory is not provided and told to
-Emacs as part of configuring it for your machine, the lock feature
-is turned off.
-
-* M-x recover-file.
-
-This command is used to get a file back from an auto-save
-(after a system crash, for example).  It takes a file name
-as argument and visits that file, but gets the data from the
-file's last auto save rather than from the file itself.
-
-* M-x normal-mode.
-
-This command resets the current buffer's major mode and local
-variables to be as specified by the visit filename, the -*- line
-and/or the Local Variables: block at the end of the buffer.
-It is the same thing normally done when a file is first visited.
-
-* Echo area messages disappear shortly if minibuffer is in use.
-
-Any message in the echo area disappears after 2 seconds
-if the minibuffer is active.  This allows the minibuffer
-to become visible again.
-
-* C-z on System V runs a subshell.
-
-On systems which do not allow programs to be suspended, the C-z command
-forks a subshell that talks directly to the terminal, and then waits
-for the subshell to exit.  This gets almost the effect of suspending
-in that you can run other programs and then return to Emacs.  However,
-you cannot log out from the subshell.
-
-* C-c is always a prefix character.
-
-Also, subcommands of C-c which are letters are always
-reserved for the user.  No standard Emacs major mode
-defines any of them.
-
-* Picture mode C-c commands changed.
-
-The old C-c k command is now C-c C-w.
-The old C-c y command is now C-c C-x.
-
-* Shell mode commands changed.
-
-All the special commands of Shell mode are now moved onto
-the C-c prefix.  Most are not changed aside from that.
-Thus, the old Shell mode C-c command (kill current job)
-is now C-c C-c; the old C-z (suspend current job) is now C-c C-z,
-etc.
-
-The old C-x commands are now C-c commands.  C-x C-k (kill output)
-is now C-c C-o, and C-x C-v (show output) is now C-c C-r.
-
-The old M-= (copy previous input) command is now C-c C-y.
-
-* Shell mode recognizes aliases for `pushd', `popd' and `cd'.
-
-Shell mode now uses the variable `shell-pushd-regexp' as a
-regular expression to recognize any command name that is
-equivalent to a `pushd' command.  By default it is set up
-to recognize just `pushd' itself.  If you use aliases for
-`pushd', change the regexp to recognize them as well.
-
-There are also `shell-popd-regexp' to recognize commands
-with the effect of a `popd', and `shell-cd-regexp' to recognize
-commands with the effect of a `cd'.
-
-* "Exit" command in certain modes now C-c C-c.
-
-These include electric buffer menu mode, electric command history
-mode, Info node edit mode, and Rmail edit mode.  In all these
-modes, the command to exit used to be just C-c.
-
-* Outline mode changes.
-
-Lines that are not heading lines are now called "body" lines.
-The command `hide-text' is renamed to `hide-body'.
-The key M-H is renamed to C-c C-h.
-The key M-S is renamed to C-c C-s.
-The key M-s is renamed to C-c C-i.
-
-Changes of line visibility are no longer undoable.  As a result,
-they no longer use up undo memory and no longer interfere with
-undoing earlier commands.
-
-* Rmail changes.
-
-The s and q commands now both expunge deleted messages before saving;
-use C-x C-s to save without expunging.
-
-The u command now undeletes the current message if it is deleted;
-otherwise, it backs up as far as necessary to reach a deleted message,
-and undeletes that one.  The u command in the summary behaves likewise,
-but considers only messages listed in the summary.  The M-u command
-has been eliminated.
-
-The o and C-o keys' meanings are interchanged.
-o now outputs to an Rmail file, and C-o to a Unix mail file.
-
-The F command (rmail-find) is renamed to M-s (rmail-search).
-Various new commands and features exist; see the Emacs manual.
-
-* Local bindings described first in describe-bindings.
-
-* [...], {...} now balance in Fundamental mode.
-
-* Nroff mode and TeX mode.
-
-The are two new major modes for editing nroff input and TeX input.
-See the Emacs manual for full information.
-
-* New C indentation style variable `c-brace-imaginary-offset'.
-
-The value of `c-brace-imaginary-offset', normally zero, controls the
-indentation of a statement inside a brace-group where the open-brace
-is not the first thing on a line.  The value says where the open-brace
-is imagined to be, relative to the first nonblank character on the line.
-
-* Dired improvements.
-
-Dired now normally keeps the cursor at the beginning of the file name,
-not at the beginning of the line.  The most used motion commands are
-redefined in Dired to position the cursor this way.
-
-`n' and `p' are now equivalent in dired to `C-n' and `C-p'.
-
-If any files to be deleted cannot be deleted, their names are
-printed in an error message.
-
-If the `v' command is invoked on a file which is a directory,
-dired is run on that directory.
-
-* `visit-tag-table' renamed `visit-tags-table'.
-
-This is so apropos of `tags' finds everything you need to
-know about in connection with Tags.
-
-* `mh-e' library uses C-c as prefix.
-
-All the special commands of `mh-rmail' now are placed on a
-C-c prefix rather than on the C-x prefix.  This is for
-consistency with other special modes with their own commands.
-
-* M-$ or `spell-word' checks word before point.
-
-It used to check the word after point.
-
-* Quitting during autoloading no longer causes trouble.
-
-Now, when a file is autoloaded, all function redefinitions
-and `provide' calls are recorded and are undone if you quit
-before the file is finished loading.
-
-As a result, it no longer happens that some of the entry points
-which are normally autoloading have been defined already, but the
-entire file is not really present to support them.
-
-* `else' can now be indented correctly in C mode.
-
-TAB in C mode now knows which `if' statement an `else' matches
-up with, and can indent the `else' correctly under the `if',
-even if the `if' contained such things as another `if' statement,
-or a `while' or `for' statement, with no braces around it.
-
-* `batch-byte-compile'
-
-Runs byte-compile-file on the files specified on the command line.
-All the rest of the command line arguments are taken as files to
-compile (or, if directories, to do byte-recompile-directory on).
-Must be used only with -batch, and kills emacs on completion.
-Each file will be processed even if an error occurred previously.
-For example, invoke `emacs -batch -f batch-byte-compile *.el'.
-
-* `-batch' changes.
-
-`-batch' now implies `-q': no init file is loaded by Emacs when
-`-batch' is used.  Also, no `term/TERMTYPE.el' file is loaded.  Auto
-saving is not done except in buffers in which it is explicitly
-requested.  Also, many echo-area printouts describing what is going on
-are inhibited in batch mode, so that the only output you get is the
-output you program specifically.
-
-One echo-area message that is not suppressed is the one that says
-that a file is being loaded.  That is because you can prevent this
-message by passing `t' as the third argument to `load'.
-
-* Display of search string in incremental search.
-
-Now, when you type C-s or C-r to reuse the previous search
-string, that search string is displayed immediately in the echo area.
-
-Three dots are displayed after the search string while search
-is actually going on.
-
-* View commands.
-
-The commands C-x ], C-x [, C-x /, C-x j and C-x o are now
-available inside `view-buffer' and `view-file', with their
-normal meanings.
-
-* Full-width windows preferred.
-
-The ``other-window'' commands prefer other full width windows,
-and will split only full width windows.
-
-* M-x rename-file can copy if necessary.
-
-When used between different file systems, since actual renaming does
-not work, the old file will be copied and deleted.
-
-* Within C-x ESC, you can pick the command to repeat.
-
-While editing a previous command to be repeated, inside C-x ESC,
-you can now use the commands M-p and M-n to pick an earlier or
-later command to repeat.  M-n picks the next earlier command
-and M-p picks the next later one.  The new command appears in
-the minibuffer, and you can go ahead and edit it, and repeat it
-when you exit the minibuffer.
-
-Using M-n or M-p within C-x ESC is like having used a different
-numeric argument when you ran C-x ESC in the first place.
-
-The command you finally execute using C-x ESC is added to the
-front of the command history, unless it is identical with the
-first thing in the command history.
-
-* Use C-c C-c to exit from editing within Info.
-
-It used to be C-z for this.  Somehow this use of C-z was
-left out when all the others were moved.  The intention is that
-C-z should always suspend Emacs.
-
-* Default arg to C-x < and C-x > now window width minus 2.
-
-These commands, which scroll the current window horizontally
-by a specified number of columns, now scroll a considerable
-distance rather than a single column if used with no argument.
-
-* Auto Save Files Deleted.
-
-The default value of `delete-auto-save-files' is now `t', so that
-when you save a file for real, its auto save file is deleted.
-
-* Rnews changes.
-
-The N, P and J keys in Rnews are renamed to M-n, M-p and M-j.
-These keys move among newsgroups.
-
-The n and p keys for moving sequentially between news articles now
-accept repeat count arguments, and the + and - keys, made redundant by
-this change, are eliminated.
-
-The s command for outputting the current article to a file
-is renamed as o, to be compatible with Rmail.
-
-* Sendmail changes.
-
-If you have a ~/.mailrc file, Emacs searches it for mailing address
-aliases, and these aliases are expanded when you send mail in Emacs.
-
-Fcc fields can now be used in the headers in the *mail* buffer
-to specify files in which copies of the message should be put.
-The message is written into those files in Unix mail file format.
-The message as sent does not contain any Fcc fields in its header.
-You can use any number of Fcc fields, but only one file name in each one.
-The variable `mail-archive-file-name', if non-`nil', can be a string
-which is a file name; an Fcc to that file will be inserted in every
-message when you begin to compose it.
-
-A new command C-c q now exists in Mail mode.  It fills the
-paragraphs of an old message that had been inserted with C-c y.
-
-When the *mail* buffer is put in Mail mode, text-mode-hook
-is now run in addition to mail-mode-hook.  text-mode-hook
-is run first.
-
-The new variable `mail-header-separator' now specifies the string
-to use on the line that goes between the headers and the message text.
-By default it is still "--text follows this line--".
-
-* Command history truncated automatically.
-
-Just before each garbage collection, all but the last 30 elements
-of the command history are discarded.
-
-Incompatible Lisp Programming Changes in Emacs 17
-
-* `&quote' no longer supported.
-
-This feature, which allowed Lisp functions to take arguments
-that were not evaluated, has been eliminated, because it is
-inescapably hard to make the compiler work properly with such
-functions.
-
-You should use macros instead.  A simple way to change any
-code that uses `&quote' is to replace
-
-   (defun foo (&quote x y z) ...
-
-with
-
-   (defmacro foo (x y z)
-     (list 'foo-1 (list 'quote x) (list 'quote y) (list 'quote z)))
-
-   (defun foo-1 (x y z) ...
-
-* Functions `region-to-string' and `region-around-match' removed.
-
-These functions were made for compatibility with Gosling Emacs, but it
-turns out to be undesirable to use them in GNU Emacs because they use
-the mark.  They have been eliminated from Emacs proper, but are
-present in mlsupport.el for the sake of converted mocklisp programs.
-
-If you were using `region-to-string', you should instead use
-`buffer-substring'; then you can pass the bounds as arguments and
-can avoid setting the mark.
-
-If you were using `region-around-match', you can use instead
-the two functions `match-beginning' and `match-end'.  These give
-you one bound at a time, as a numeric value, without changing
-point or the mark.
-
-* Function `function-type' removed.
-
-This just appeared not to be very useful.  It can easily be written in
-Lisp if you happen to want it.  Just use `symbol-function' to get the
-function definition of a symbol, and look at its data type or its car
-if it is a list.
-
-* Variable `buffer-number' removed.
-
-You can still use the function `buffer-number' to find out
-a buffer's unique number (assigned in order of creation).
-
-* Variable `executing-macro' renamed `executing-kbd-macro'.
-
-This variable is the currently executing keyboard macro, as
-a string, or `nil' when no keyboard macro is being executed.
-
-* Loading term/$TERM.
-
-The library term/$TERM (where $TERM get replaced by your terminal
-type), which is done by Emacs automatically when it starts up, now
-happens after the user's .emacs file is loaded.
-
-In previous versions of Emacs, these files had names of the form
-term-$TERM; thus, for example, term-vt100.el, but now they live
-in a special subdirectory named term, and have names like
-term/vt100.el.
-
-* `command-history' format changed.
-
-The elements of this list are now Lisp expressions which can
-be evaluated directly to repeat a command.
-
-* Unused editing commands removed.
-
-The functions `forward-to-word', `backward-to-word',
-`upcase-char', `mark-beginning-of-buffer' and `mark-end-of-buffer'
-have been removed.  Their definitions can be found in file
-lisp/unused.el if you need them.
-
-Upward Compatible Lisp Programming Changes in Emacs 17
-
-* You can now continue after errors and quits.
-
-When the debugger is entered because of a C-g, due to
-a non-`nil' value of `debug-on-quit', the `c' command in the debugger
-resumes execution of the code that was running when the quit happened.
-Use the `q' command to go ahead and quit.
-
-The same applies to some kinds of errors, but not all.  Errors
-signaled with the Lisp function `signal' can be continued; the `c'
-command causes `signal' to return.  The `r' command causes `signal' to
-return the value you specify.  The `c' command is equivalent to `r'
-with the value `nil'.
-
-For a `wrong-type-argument' error, the value returned with the `r'
-command is used in place of the invalid argument.  If this new value
-is not valid, another error occurs.
-
-Errors signaled with the function `error' cannot be continued.
-If you try to continue, the error just happens again.
-
-* `dot' renamed `point'.
-
-The word `dot' has been replaced with `point' in all
-function and variable names, including:
-
-  point, point-min, point-max,
-  point-marker, point-min-marker, point-max-marker,
-  window-point, set-window-point,
-  point-to-register, register-to-point,
-  exchange-point-and-mark.
-
-The old names are still supported, for now.
-
-* `string-match' records position of end of match.
-
-After a successful call to `string-match', `(match-end 0)' will
-return the index in the string of the first character after the match.
-Also, `match-begin' and `match-end' with nonzero arguments can be
-used to find the indices of beginnings and ends of substrings matched
-by subpatterns surrounded by parentheses.
-
-* New function `insert-before-markers'.
-
-This function is just like `insert' except in the handling of any
-relocatable markers that are located at the point of insertion.
-With `insert', such markers end up pointing before the inserted text.
-With `insert-before-markers', they end up pointing after the inserted
-text.
-
-* New function `copy-alist'.
-
-This function takes one argument, a list, and makes a disjoint copy
-of the alist structure.  The list itself is copied, and each element
-that is a cons cell is copied, but the cars and cdrs of elements
-remain shared with the original argument.
-
-This is what it takes to get two alists disjoint enough that changes
-in one do not change the result of `assq' on the other.
-
-* New function `copy-keymap'.
-
-This function takes a keymap as argument and returns a new keymap
-containing initially the same bindings.  Rebindings in either one of
-them will not alter the bindings in the other.
-
-* New function `copy-syntax-table'.
-
-This function takes a syntax table as argument and returns a new
-syntax table containing initially the same syntax settings.  Changes
-in either one of them will not alter the other.
-
-* Randomizing the random numbers.
-
-`(random t)' causes the random number generator's seed to be set
-based on the current time and Emacs's process id.
-
-* Third argument to `modify-syntax-entry'.
-
-The optional third argument to `modify-syntax-entry', if specified
-should be a syntax table.  The modification is made in that syntax table
-rather than in the current syntax table.
-
-* New function `run-hooks'.
-
-This function takes any number of symbols as arguments.
-It processes the symbols in order.  For each symbol which
-has a value (as a variable) that is non-nil, the value is
-called as a function, with no arguments.
-
-This is useful in major mode commands.
-
-* Second arg to `switch-to-buffer'.
-
-If this function is given a non-`nil' second argument, then the
-selection being done is not recorded on the selection history.
-The buffer's position in the history remains unchanged.  This
-feature is used by the view commands, so that the selection history
-after exiting from viewing is the same as it was before.
-
-* Second arg to `display-buffer' and `pop-to-buffer'.
-
-These two functions both accept an optional second argument which
-defaults to `nil'.  If the argument is not `nil', it means that
-another window (not the selected one) must be found or created to
-display the specified buffer in, even if it is already shown in
-the selected window.
-
-This feature is used by `switch-to-buffer-other-window'.
-
-* New variable `completion-ignore-case'.
-
-If this variable is non-`nil', completion allows strings
-in different cases to be considered matching.  The global value
-is `nil'
-
-This variable exists for the sake of commands that are completing
-an argument in which case is not significant.  It is possible
-to change the value globally, but you might not like the consequences
-in the many situations (buffer names, command names, file names)
-where case makes a difference.
-
-* Major modes related to Text mode call text-mode-hook, then their own hooks.
-
-For example, turning on Outline mode first calls the value of
-`text-mode-hook' as a function, if it exists and is non-`nil',
-and then does likewise for the variable `outline-mode-hook'.
-
-* Defining new command line switches.
-
-You can define a new command line switch in your .emacs file
-by putting elements on the value of `command-switch-alist'.
-Each element of this list should look like
-      (SWITCHSTRING . FUNCTION)
-where SWITCHSTRING is a string containing the switch to be
-defined, such as "-foo", and FUNCTION is a function to be called
-if such an argument is found in the command line.  FUNCTION
-receives the command line argument, a string, as its argument.
-
-To implement a switch that uses up one or more following arguments,
-use the fact that the remaining command line arguments are kept
-as a list in the variable `command-line-args'.  FUNCTION can
-examine this variable, and do
-    (setq command-line-args (cdr command-line-args)
-to "use up" an argument.
-
-* New variable `load-in-progress'.
-
-This variable is non-`nil' when a file of Lisp code is being read
-and executed by `load'.
-
-* New variable `print-length'.
-
-The value of this variable is normally `nil'.  It may instead be
-a number; in that case, when a list is printed by `prin1' or
-`princ' only that many initial elements are printed; the rest are
-replaced by `...'.
-
-* New variable `find-file-not-found-hook'.
-
-If `find-file' or any of its variants is used on a nonexistent file,
-the value of `find-file-not-found-hook' is called (if it is not `nil')
-with no arguments, after creating an empty buffer.  The file's name
-can be found as the value of `buffer-file-name'.
-
-* Processes without buffers.
-
-In the function `start-process', you can now specify `nil' as
-the process's buffer.  You can also set a process's buffer to `nil'
-using `set-process-buffer'.
-
-The reason you might want to do this is to prevent the process
-from being killed because any particular buffer is killed.
-When a process has a buffer, killing that buffer kills the
-process too.
-
-When a process has no buffer, its output is lost unless it has a
-filter, and no indication of its being stopped or killed is given
-unless it has a sentinel.
-
-* New function `user-variable-p'.  `v' arg prompting changed.
-
-This function takes a symbol as argument and returns `t' if
-the symbol is defined as a user option variable.  This means
-that it has a `variable-documentation' property whose value is
-a string starting with `*'.
-
-Code `v' in an interactive arg reading string now accepts
-user variables only, and completion is limited to the space of
-user variables.
-
-The function `read-variable' also now accepts and completes
-over user variables only.
-
-* CBREAK mode input is the default in Unix 4.3 bsd.
-
-In Berkeley 4.3 Unix, there are sufficient features for Emacs to
-work fully correctly using CBREAK mode and not using SIGIO.
-Therefore, this mode is the default when running under 4.3.
-This mode corresponds to `nil' as the first argument to
-`set-input-mode'.  You can still select either mode by calling
-that function.
-
-* Information on memory usage.
-
-The new variable `data-bytes-used' contains the number
-of bytes of impure space allocated in Emacs.
-`data-bytes-free' contains the number of additional bytes
-Emacs could allocate.  Note that space formerly allocated
-and freed again still counts as `used', since it is still
-in Emacs's address space.
-
-* No limit on size of output from `format'.
-
-The string output from `format' used to be truncated to
-100 characters in length.  Now it can have any length.
-
-* New errors `void-variable' and `void-function' replace `void-symbol'.
-
-This change makes it possible to have error messages that
-clearly distinguish undefined variables from undefined functions.
-It also allows `condition-case' to handle one case without the other.
-
-* `replace-match' handling of `\'.
-
-In `replace-match', when the replacement is not literal,
-`\' in the replacement string is always treated as an
-escape marker.  The only two special `\' constructs
-are `\&' and `\DIGIT', so `\' followed by anything other than
-`&' or a digit has no effect.  `\\' is necessary to include
-a `\' in the replacement text.
-
-This level of escaping is comparable with what goes on in
-a regular expression.  It is over and above the level of `\'
-escaping that goes on when strings are read in Lisp syntax.
-
-* New error `invalid-regexp'.
-
-A regexp search signals this type of error if the argument does
-not meet the rules for regexp syntax.
-
-* `kill-emacs' with argument.
-
-If the argument is a number, it is returned as the exit status code
-of the Emacs process.  If the argument is a string, its contents
-are stuffed as pending terminal input, to be read by another program
-after Emacs is dead.
-
-* New fifth argument to `subst-char-in-region'.
-
-This argument is optional and defaults to `nil'.  If it is not `nil',
-then the substitutions made by this function are not recorded
-in the Undo mechanism.
-
-This feature should be used with great care.  It is now used
-by Outline mode to make lines visible or invisible.
-
-* ` *Backtrace*' buffer renamed to `*Backtrace*'.
-
-As a result, you can now reselect this buffer easily if you switch to
-another while in the debugger.
-
-Exiting from the debugger kills the `*Backtrace*' buffer, so you will
-not try to give commands in it when no longer really in the debugger.
-
-* New function `switch-to-buffer-other-window'.
-
-This is the new primitive to select a specified buffer (the
-argument)  in another window.  It is not quite the same as
-`pop-to-buffer', because it is guaranteed to create another
-window (assuming there is room on the screen) so that it can
-leave the current window's old buffer displayed as well.
-
-All functions to select a buffer in another window should
-do so by calling this new function.
-
-* New variable `minibuffer-help-form'.
-
-At entry to the minibuffer, the variable `help-form' is bound
-to the value of `minibuffer-help-form'.
-
-`help-form' is expected at all times to contain either `nil'
-or an expression to be executed when C-h is typed (overriding
-teh definition of C-h as a command).  `minibuffer-help-form'
-can be used to provide a different default way of handling
-C-h while in the minibuffer.
-
-* New \{...} documentation construct.
-
-It is now possible to set up the documentation string for
-a major mode in such a way that it always describes the contents
-of the major mode's keymap, as it has been customized.
-To do this, include in the documentation string the characters `\{'
-followed by the name of the variable containing the keymap,
-terminated with `}'.  (The `\' at the beginning probably needs to
-be quoted with a second `\', to include it in the doc string.)
-This construct is normally used on a line by itself, with no blank
-lines before or after.
-
-For example, the documentation string for the function `c-mode' contains
-    ...
-    Paragraphs are separated by blank lines only.
-    Delete converts tabs to spaces as it moves back.
-    \\{c-mode-map}
-    Variables controlling indentation style:
-    ...
-
-* New character syntax class "punctuation".
-
-Punctuation characters behave like whitespace in word and
-list parsing, but can be distinguished in regexps and in the
-function `char-syntax'.  Punctuation syntax is represented by
-a period in `modify-syntax-entry'.
-
-* `auto-mode-alist' no longer needs entries for backup-file names,
-
-Backup suffixes of all kinds are now stripped from a file's name
-before searching `auto-mode-alist'.
-
-Changes in Emacs 16
-
-* No special code for Ambassadors, VT-100's and Concept-100's.
-
-Emacs now controls these terminals based on the termcap entry, like
-all other terminals.  Formerly it did not refer to the termcap entries
-for those terminal types, and often the termcap entries for those
-terminals are wrong or inadequate.  If you experience worse behavior
-on these terminals than in version 15, you can probably correct it by
-fixing up the termcap entry.  See ./TERMS for more info.
-
-See ./TERMS in any case if you find that some terminal does not work
-right with Emacs now.
-
-* Minibuffer default completion character is TAB (and not ESC).
-
-So that ESC can be used in minibuffer for more useful prefix commands.
-
-* C-z suspends Emacs in all modes.
-
-Formerly, C-z was redefined for other purposes by certain modes,
-such as Buffer Menu mode.  Now other keys are used for those purposes,
-to keep the meaning of C-z uniform.
-
-* C-x ESC (repeat-complex-command) allows editing the command it repeats.
-
-Instead of asking for confirmation to re-execute a command from the
-command history, the command is placed, in its Lisp form, into the
-minibuffer for editing.  You can confirm by typing RETURN, change some
-arguments and then confirm, or abort with C-g.
-
-* Incremental search does less redisplay on slow terminals.
-
-If the terminal baud rate is <= the value of `isearch-slow-speed',
-incremental searching outside the text on the screen creates
-a single-line window and uses that to display the line on which
-a match has been found.  Exiting or quitting the search restores
-the previous window configuration and redisplays the window you
-were searching in.
-
-The initial value of `isearch-slow-speed' is 1200.
-
-This feature is courtesy of crl@purdue.
-
-* Recursive minibuffers not allowed.
-
-If the minibuffer window is selected, most commands that would
-use the minibuffer gets an error instead.  (Specific commands
-may override this feature and therefore still be allowed.)
-
-Strictly speaking, recursive entry to the minibuffer is still
-possible, because you can switch to another window after
-entering the minibuffer, and then minibuffer-using commands
-are allowed.  This is still allowed by a deliberate decision:
-if you know enough to switch windows while in the minibuffer,
-you can probably understand recursive minibuffers.
-
-This may be overridden by binding the variable
-`enable-recursive-minibuffers' to t.
-
-* New major mode Emacs-Lisp mode, for editing Lisp code to run in Emacs.
-
-The mode in which emacs lisp files is edited is now called emacs-lisp-mode
-and is distinct from lisp-mode.  The latter is intended for use with
-lisps external to emacs.
-
-The hook which is funcalled (if non-nil) on entry to elisp-mode is now
-called emacs-lisp-mode-hook.  A consequence of this changes is that
-.emacs init files which set the value of lisp-mode-hook may need to be
-changed to use the new names.
-
-* Correct matching of parentheses is checked on insertion.
-
-When you insert a close-paren, the matching open-paren
-is checked for validity.  The close paren must be the kind
-of close-paren that the open-paren says it should match.
-Otherwise, a warning message is printed.  close-paren immediately
-preceded by quoting backslash syntax character is not matched.
-
-This feature was originally written by shane@mit-ajax.
-
-* M-x list-command-history
-* M-x command-history-mode
-* M-x electric-command-history
-
-`list-command-history' displays forms from the command history subject
-to user controlled filtering and limit on number of forms.  It leaves
-the buffer in `command-history-mode'.  M-x command-history-mode
-recomputes the command history each time it is invoked via
-`list-command-history'.  It is like Emacs-Lisp mode except that characters
-don't insert themselves and provision is made for re-evaluating an
-expression from the list.  `electric-command-history' pops up a type
-out window with the command history displayed.  If the very next
-character is Space, the window goes away and the previous window
-configuration is restored.  Otherwise you can move around in the
-history and select an expression for evaluation *inside* the buffer
-which invoked `electric-command-history'.  The original window
-configuration is restored on exit unless the command selected changes
-it.
-
-* M-x edit-picture
-
-Enters a temporary major mode (the previous major mode is remembered
-and can is restored on exit) designed for editing pictures and tables.
-Printing characters replace rather than insert themselves with motion
-afterwards that is user controlled (you can specify any of the 8
-compass directions).  Special commands for movement are provided.
-Special commands for hacking tabs and tab stops are provided.  Special
-commands for killing rectangles and overlaying them are provided.  See
-the documentation of function  edit-picture  for more details.
-
-Calls value of `edit-picture-hook' on entry if non-nil.
-
-* Stupid C-s/C-q `flow control' supported.
-
-Do (set-input-mode nil t) to tell Emacs to use CBREAK mode and interpret
-C-s and C-q as flow control commands.  (set-input-mode t nil) switches
-back to interrupt-driven input.  (set-input-mode nil nil) uses CBREAK
-mode but no `flow control'; this may make it easier to run Emacs under
-certain debuggers that have trouble dealing with inferiors that use SIGIO.
-
-CBREAK mode has certain inherent disadvantages, which are why it is
-not the default:
-
-     Meta-keys are ignored; CBREAK mode discards the 8th bit of
-     input characters.
-
-     Control-G as keyboard input discards buffered output,
-     and therefore can cause incorrect screen updating.
-
-The use of `flow control' has its own additional disadvantage: the
-characters C-s and C-q are not available as editing commands.  You can
-partially compensate for this by setting up a keyboard-translate-table
-(see file ONEWS) that maps two other characters (such as C-^ and C-\) into
-C-s and C-q.  Of course, C-^ and C-\ are commonly used as escape
-characters in remote-terminal programs.  You really can't win except
-by getting rid of this sort of `flow control.'
-
-The configuration switch CBREAK_INPUT is now eliminated.
-INTERRUPT_INPUT exists only to specify the default mode of operation;
-#define it to make interrupt-driven input the default.
-
-* Completion of directory names provides a slash.
-
-If file name completion yields the name of a directory,
-a slash is appended to it.
-
-* Undo can clear modified-flag.
-
-If you undo changes in a buffer back to a state in which the
-buffer was not considered "modified", then it is labelled as
-once again "unmodified".
-
-* M-x run-lisp.
-
-This command creates an inferior Lisp process whose input and output
-appear in the Emacs buffer named `*lisp*'.  That buffer uses a major mode
-called inferior-lisp-mode, which has many of the commands of lisp-mode
-and those of shell-mode.   Calls the value of shell-mode-hook and
-lisp-mode-hook, in that order, if non-nil.
-
-Meanwhile, in lisp-mode, the command C-M-x is defined to
-send the current defun as input to the `*lisp*' subprocess.
-
-* Mode line says `Narrow' when buffer is clipped.
-
-If a buffer has a clipping restriction (made by `narrow-to-region')
-then its mode line contains the word `Narrow' after the major and
-minor modes.
-
-* Mode line says `Abbrev' when abbrev mode is on.
-
-* add-change-log-entry takes prefix argument
-
-Giving a prefix argument makes it prompt for login name, full name,
-and site name, with defaults.  Otherwise the defaults are used
-with no confirmation.
-
-* M-x view-buffer and M-x view-file
-
-view-buffer selects the named buffer, view-file finds the named file; the
-resulting buffer is placed into view-mode (a recursive edit).  The normal
-emacs commands are not available.  Instead a set of special commands is
-provided which faclitate moving around in the buffer, searching and
-scrolling by screenfuls.  Exiting view-mode returns to the buffer in which
-the view-file or view-buffer command was given.
-Type ? or h when viewing for a complete list of view commands.
-Each calls value of `view-hook' if non-nil on entry.
-
-written by shane@mit-ajax.
-
-* New key commands in dired.
-
-`v' views (like more) the file on the current line.
-`#' marks auto-save files for deletion.
-`~' marks backup files for deletion.
-`r' renames a file and updates the directory listing if the
-file is renamed to same directory.
-`c' copies a file and updates the directory listing if the file is
-copied to the same directory.
-
-* New function `electric-buffer-list'.
-
-This pops up a buffer describing the set of emacs buffers.
-Immediately typing space makes the buffer list go away and returns
-to the buffer and window which were previously selected.
-
-Otherwise one may use the c-p and c-n commands to move around in the
-buffer-list buffer and type Space or C-z to select the buffer on the
-cursor's line.  There are a number of other commands which are the same
-as those of buffer-menu-mode.
-
-This is a useful thing to bind to c-x c-b in your `.emacs' file if the
-rather non-standard `electric' behaviour of the buffer list suits your taste.
-Type C-h after invoking electric-buffer-list for more information.
-
-Calls value of `electric-buffer-menu-mode-hook' if non-nil on entry.
-Calls value of `after-electric-buffer-menu' on exit (select) if non-nil.
-
-Changes in version 16 for mail reading and sending
-
-* sendmail prefix character is C-c (and not C-z).  New command C-c w.
-
-For instance C-c C-c (or C-c C-s) sends mail now rather than C-z C-z.
-C-c w inserts your `signature' (contents of ~/.signature) at the end
-of mail.
-
-* New feature in C-c y command in sending mail.
-
-C-c y is the command to insert the message being replied to.
-Normally it deletes most header fields and indents everything
-by three spaces.
-
-Now, C-c y does not delete header fields or indent.
-C-c y with any other numeric argument does delete most header
-fields, but indents by the amount specified in the argument.
-
-* C-r command in Rmail edits current message.
-
-It does this by switching to a different major mode
-which is nearly the same as Text mode.  The only difference
-between it and text mode are the two command C-c and C-].
-C-c is defined to switch back to Rmail mode, and C-]
-is defined to restore the original contents of the message
-and then switch back to Rmail mode.
-
-C-c and C-] are the only ways "back into Rmail", but you
-can switch to other buffers and edit them as usual.
-C-r in Rmail changes only the handling of the Rmail buffer.
-
-* Rmail command `t' toggles header display.
-
-Normally Rmail reformats messages to hide most header fields.
-`t' switches to display of all the header fields of the
-current message, as long as it remains current.
-Another `t' switches back to the usual display.
-
-* Rmail command '>' goes to the last message.
-
-* Rmail commands `a' and `k' set message attributes.
-`a' adds an attribute and `k' removes one.  You specify
-the attrbute by name.  You can specify either a built-in
-flag such as "deleted" or "filed", or a user-defined keyword
-(anything not recognized as built-in).
-
-* Rmail commands `l' and `L' summarize by attributes.
-
-These commands create a summary with one line per message,
-like `h', but they list only some of the messages.  You
-specify which attribute (for `l') or attributes (for `L')
-the messages should have.
-
-* Rmail can parse mmdf mail files.
-
-* Interface to MH mail system.
-
-mh-e is a front end for GNU emacs and the MH mail system.  It
-provides a friendly and convient interface to the MH commands.
-
-To read mail, invoke mh-rmail.  This will inc new mail and display the
-scan listing on the screen.  To see a summary of the mh-e commands,
-type ?.  Help is available through the usual facilities.
-
-To send mail, invoke mh-smail.
-
-mh-e requires a copy of MH.5 that has been compiled with the MHE
-compiler switch.
-
-From larus@berkeley.
-
-New hooks and parameters in version 16
-
-* New variable `blink-matching-paren-distance'.
-
-This is the maximum number of characters to search for
-an open-paren to match an inserted close-paren.
-The matching open-paren is shown and checked if it is found
-within this distance.
-
-`nil' means search all the way to the beginning of the buffer.
-In this case, a warning message is printed if no matching
-open-paren is found.
-
-This feature was originally written by shane@mit-ajax.
-
-* New variable `find-file-run-dired'
-
-If nil, find-file will report an error if an attempt to visit a
-directory is detected; otherwise, it runs dired on that directory.
-The default is t.
-
-* Variable `dired-listing-switches' holds switches given to `ls' by dired.
-
-The value should be a string containing `-' followed by letters.
-The letter `l' had better be included and letter 'F' had better be excluded!
-The default is "-al".
-
-This feature was originally written by shane@mit-ajax.
-
-* New variable `display-time-day-and-date'.
-
-If this variable is set non-`nil', the function M-x display-time
-displays the day and date, as well as the time.
-
-* New parameter `c-continued-statement-indent'.
-
-This controls the extra indentation given to a line
-that continues a C statement started on the previous line.
-By default it is 2, which is why you would see
-
-	if (foo)
-	  bar ();
-
-
-* Changed meaning of `c-indent-level'.
-
-The value of `c-brace-offset' used to be
-subtracted from the value of `c-indent-level' whenever
-that value was used.  Now it is not.
-
-As a result, `c-indent-level' is now the offset of
-statements within a block, relative to the line containing
-the open-brace that starts the block.
-
-* turn-on-auto-fill is useful value for text-mode-hook.
-
-(setq text-mode-hook 'turn-on-auto-fill)
-is all you have to do to make sure Auto Fill mode is turned
-on whenever you enter Text mode.
-
-* Parameter explicit-shell-file-name for M-x shell.
-
-This variable, if non-nil, specifies the file name to use
-for the shell to run if you do M-x shell.
-
-Changes in version 16 affecting Lisp programming:
-
-* Documentation strings adapt to customization.
-
-Often the documentation string for a command wants to mention
-another command.  Simply stating the other command as a
-character sequence has a disadvantage: if the user customizes
-Emacs by moving that function to a different command, the
-cross reference in the documentation becomes wrong.
-
-A new feature allows you to write the documentation string
-using a function name, and the command to run that function
-is looked up when the documentation is printed.
-
-If a documentation string contains `\[' (two characters) then
-the following text, up to the next `]', is taken as a function name.
-Instead of printing that function name, the command that runs it is printed.
-(M-x is used to construct a command if no shorter one exists.)
-
-For example, instead of putting `C-n' in a documentation string
-to refer to the C-n command, put in `\[next-line]'.  (In practice
-you will need to quote the backslash with another backslash,
-due to the syntax for strings in Lisp and C.)
-
-To include the literal characters `\[' in a documentation string,
-precede them with `\='.  To include the characters `\=', precede
-them with `\='.  For example, "\\=\\= is the way to quote \\=\\["
-will come out as `\= is the way to quote \['.
-
-The new function `substitute-command-keys' takes a string possibly
-contaning \[...] constructs and replaces those constructs with
-the key sequences they currently stand for.
-
-* Primitives `find-line-comment' and `find-line-comment-body' flushed.
-
-Search for the value of `comment-start-skip' if you want to find
-whether and where a line has a comment.
-
-* New function `auto-save-file-name-p'
-
-Should return non-`nil' iff given a string which is the name of an
-auto-save file (sans directory name).  If you redefine
-`make-auto-save-file-name', you should redefine this accordingly.  By
-default, this function returns `t' for filenames beginning with
-character `#'.
-
-* The value of `exec-directory' now ends in a slash.
-
-This is to be compatible with most directory names in GNU Emacs.
-
-* Dribble files and termscript files.
-
-(open-dribble-file FILE) opens a dribble file named FILE.  When a
-dribble file is open, every character Emacs reads from the terminal is
-written to the dribble file.
-
-(open-termscript FILE) opens a termscript file named FILE.  When a
-termscript file is open, all characters sent to the terminal by Emacs
-are also written in the termscript file.
-
-The two of these together are very useful for debugging Emacs problems
-in redisplay.
-
-* Upper case command characters by default are same as lower case.
-
-If a character in a command is an upper case letter, and is not defined,
-Emacs uses the definition of the corresponding lower case letter.
-For example, if C-x U is not directly undefined, it is treated as
-a synonym for C-x u (undo).
-
-* Undefined function errors versus undefined variable errors.
-
-Void-symbol errors now say "boundp" if the symbol's value was void
-or "fboundp" if the function definition was void.
-
-* New function `bury-buffer'.
-
-The new function `bury-buffer' takes one argument, a buffer object,
-and puts that buffer at the end of the internal list of buffers.
-So it is the least preferred candidate for use as the default value
-of C-x b, or for other-buffer to return.
-
-* Already-displayed buffers have low priority for display.
-
-When a buffer is chosen automatically for display, or to be the
-default in C-x b, buffers already displayed in windows have lower
-priority than buffers not currently visible.
-
-* `set-window-start' accepts a third argument NOFORCE.
-
-This argument, if non-nil, prevents the window's force_start flag
-from being set.  Setting the force_start flag causes the next
-redisplay to insist on starting display at the specified starting
-point, even if dot must be moved to get it onto the screen.
-
-* New function `send-string-to-terminal'.
-
-This function takes one argument, a string, and outputs its contents
-to the terminal exactly as specified: control characters, escape
-sequences, and all.
-
-* Keypad put in command mode.
-
-The terminal's keypad is now put into command mode, as opposed to
-numeric mode, while Emacs is running.  This is done by means of the
-termcap `ks' and `ke' strings.
-
-* New function `generate-new-buffer'
-
-This function takes a string as an argument NAME and looks for a
-creates and returns a buffer called NAME if one did not already exist.
-Otherwise, it successively tries appending suffixes of the form "<1>",
-"<2>" etc to NAME until it creates a string which does not name an
-existing buffer.  A new buffer with that name is the created and returned.
-
-* New function `prin1-to-string'
-This function takes one argument, a lisp object, and returns a string
-containing that object's printed representation, such as `prin1'
-would output.
-
-* New function `read-from-minibuffer'
-Lets you supply a prompt, initial-contents, a keymap, and specify
-whether the result should be interpreted as a string or a lisp object.
-
-Old functions `read-minibuffer', `eval-minibuffer', `read-string' all
-take second optional string argument which is initial contents of
-minibuffer.
-
-* minibuffer variable names changed (names of keymaps)
-
-minibuf-local-map -> minibuffer-local-map
-minibuf-local-ns-map -> minibuffer-local-ns-map
-minibuf-local-completion-map -> minibuffer-local-completion-map
-minibuf-local-must-match-map -> minibuffer-local-must-match-map
-
-Changes in version 16 affecting configuring and building Emacs
-
-* Configuration switch VT100_INVERSE eliminated.
-
-You can control the use of inverse video on any terminal by setting
-the variable `inverse-video', or by changing the termcap entry.  If
-you like, set `inverse-video' in your `.emacs' file based on
-examination of (getenv "TERM").
-
-* New switch `-batch' makes Emacs run noninteractively.
-
-If the switch `-batch' is used, Emacs treats its standard output
-and input like ordinary files (even if they are a terminal).
-It does not display buffers or windows; the only output to standard output
-is what would appear as messages in the echo area, and each
-message is followed by a newline.
-
-The terminal modes are not changed, so that C-z and C-c retain
-their normal Unix meanings.  Emacs does still read commands from
-the terminal, but the idea of `-batch' is that you use it with
-other command line arguments that tell Emacs a complete task to perform,
-including killing itself.  `-kill' used as the last argument is a good
-way to accomplish this.
-
-The Lisp variable `noninteractive' is now defined, to be `nil'
-except when `-batch' has been specified.
-
-* Emacs can be built with output redirected to a file.
-
-This is because -batch (see above) is now used in building Emacs.
-
-For older news, see the file ONEWS.1.
-
-----------------------------------------------------------------------
-Copyright information:
-
-Copyright (C) 1985 Richard M. Stallman
-
-   Permission is granted to anyone to make or distribute verbatim copies
-   of this document as received, in any medium, provided that the
-   copyright notice and this permission notice are preserved,
-   thus giving the recipient permission to redistribute in turn.
-
-   Permission is granted to distribute modified versions
-   of this document, or of portions of it,
-   under the above conditions, provided also that they
-   carry prominent notices stating who last changed them.
-
-Local variables:
-mode: text
-end:
-
-arch-tag: 33dc900d-9c58-473b-87c9-b6d7222323ea
--- a/etc/ONEWS.3	Sat Jun 03 22:51:32 2006 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1611 +0,0 @@
-GNU Emacs NEWS -- history of user-visible changes.  17-Aug-1988
-Copyright (C) 1988 Free Software Foundation, Inc.
-See the end for copying conditions.
-
-For older news, see the file ONEWS.2.
-
-Changes in version 18.52.
-
-* X windows version 10 is supported under system V.
-
-* Pop-up menus are now supported with the same Lisp interface in
-both version 10 and 11 of X windows.
-
-* C-x 4 a is a new command to edit a change-log entry in another window.
-
-* The emacs client program now allows an option +NNN to specify the
-line number to go to in the file whose name follows.  Thus,
-    emacsclient foo.c +45 bar.c
-will find the files `foo.c' and `bar.c', going to line 45 in `bar.c'.
-
-* Dired allows empty directories to be deleted like files.
-
-* When the terminal type is used to find a terminal-specific file to
-run, Emacs now tries the entire terminal type first.  If that doesn't
-yield a file that exists, the last hyphen and what follows it is
-stripped.  If that doesn't yield a file that exists, the previous
-hyphen is stripped, and so on until all hyphens are gone.  For
-example, if the terminal type is `aaa-48-foo', Emacs will try first
-`term/aaa-48-foo.el', then `term/aaa-48.el' and finally `term/aaa.el'.
-
-Underscores now receive the same treatment as hyphens.
-
-* Texinfo features: @defun, etc.  texinfo-show-structure.
-New template commands.  texinfo-format-region.
-
-* The special "local variable" `eval' is now ignored if you are running
-as root.
-
-* New command `c-macro-expand' shows the result of C macro expansion
-in the region.  It works using the C preprocessor, so its results
-are completely accurate.
-
-* Errors in trying to auto save now flash error messages for a few seconds.
-
-* Killing a buffer now sends SIGHUP to the buffer's process.
-
-* New hooks.
-
-** `spell-region' now allows you to filter the text before spelling-checking.
-If the value of `spell-filter' is non-nil, it is called, with no arguments,
-looking at a temporary buffer containing a copy of the text to be checked.
-It can alter the text freely before the spell program sees it.
-
-** The variable `lpr-command' now specifies the command to be used when
-you use the commands to print text (such as M-x print-buffer).
-
-** Posting netnews now calls the value of `news-inews-hook' (if not nil)
-as a function of no arguments before the actual posting.
-
-** Rmail now calls the value of `rmail-show-message-hook' (if not nil)
-as a function of no arguments, each time a new message is selected.
-
-** `kill-emacs' calls the value of `kill-emacs-hook' as a function of no args.
-
-* New libraries.
-See the source code of each library for more information.
-
-** icon.el: a major mode for editing programs written in Icon.
-
-** life.el: a simulator for the cellular automaton "life".  Load the
-library and run M-x life.
-
-** doctex.el: a library for converting the Emacs `etc/DOC' file of
-documentation strings into TeX input.
-
-** saveconf.el: a library which records the arrangement of windows and
-buffers when you exit Emacs, and automatically recreates the same
-setup the next time you start Emacs.
-
-** uncompress.el: a library that automatically uncompresses files
-when you visit them.
-
-** c-fill.el: a mode for editing filled comments in C.
-
-** kermit.el: an extended version of shell-mode designed for running kermit.
-
-** spook.el: a library for adding some "distract the NSA" keywords to every
-message you send.
-
-** hideif.el: a library for hiding parts of a C program based on preprocessor
-conditionals.
-
-** autoinsert.el: a library to put in some initial text when you visit
-a nonexistent file.  The text used depends on the major mode, and
-comes from a directory of files created by you.
-
-* New programming features.
-
-** The variable `window-system-version' now contains the version number
-of the window system you are using (if appropriate).  When using X windows,
-its value is either 10 or 11.
-
-** (interactive "N") uses the prefix argument if any; otherwise, it reads
-a number using the minibuffer.
-
-** VMS: there are two new functions `vms-system-info' and `shrink-to-icon'.
-The former allows you to get many kinds of system status information.
-See its self-documentation for full details.
-The second is used with the window system: it iconifies the Emacs window.
-
-** VMS: the new function `define-logical-name' allows you to create
-job-wide logical names.  The old function `define-dcl-symbol' has been
-removed.
-
-Changes in version 18.50.
-
-* X windows version 11 is supported.
-
-Define X11 in config.h if you want X version 11 instead of version 10.
-
-* The command M-x gdb runs the GDB debugger as an inferior.
-It asks for the filename of the executable you want to debug.
-
-GDB runs as an inferior with I/O through an Emacs buffer.  All the
-facilities of Shell mode are available.  In addition, each time your
-program stops, and each time you select a new stack frame, the source
-code is displayed in another window with an arrow added to the line
-where the program is executing.
-
-Special GDB-mode commands include M-s, M-n, M-i, M-u, M-d, and C-c C-f
-which send the GDB commands `step', `next', `stepi', `up', `down'
-and `finish'.
-
-In any source file, the commands C-x SPC tells GDB to set a breakpoint
-on the current line.
-
-* M-x calendar displays a three-month calendar.
-
-* C-u 0 C-x C-s never makes a backup file.
-
-This is a way you can explicitly request not to make a backup.
-
-* `term-setup-hook' is for users only.
-
-Emacs never uses this variable for internal purposes, so you can freely
-set it in your `.emacs' file to make Emacs do something special after
-loading any terminal-specific setup file from `lisp/term'.
-
-* `copy-keymap' now copies recursive submaps.
-
-* New overlay-arrow feature.
-
-If you set the variable `overlay-arrow-string' to a string
-and `overlay-arrow-position' to a marker, that string is displayed on
-the screen at the position of that marker, hiding whatever text would
-have appeared there.  If that position isn't on the screen, or if
-the buffer the marker points into isn't displayed, there is no effect.
-
-* -batch mode can read from the terminal.
-
-It now works to use `read-char' to do terminal input in a noninteractive
-Emacs run.  End of file causes Emacs to exit.
-
-* Variables `data-bytes-used' and `data-bytes-free' removed.
-
-These variables cannot really work because the 24-bit range of an
-integer in (most ports of) GNU Emacs is not large enough to hold their
-values on many systems.
-
-Changes in version 18.45, since version 18.41.
-
-* C indentation parameter `c-continued-brace-offset'.
-
-This parameter's value is added to the indentation of any
-line that is in a continuation context and starts with an open-brace.
-For example, it applies to the open brace shown here:
-
-     if (x)
-       {
-
-The default value is zero.
-
-* Dabbrev expansion (Meta-/) preserves case.
-
-When you use Meta-/ to search the buffer for an expansion of an
-abbreviation, if the expansion found is all lower case except perhaps
-for its first letter, then the case pattern of the abbreviation
-is carried over to the expansion that replaces it.
-
-* TeX-mode syntax.
-
-\ is no longer given "escape character" syntax in TeX mode.  It now
-has the syntax of an ordinary punctuation character.  As a result,
-\[...\] and such like are considered to balance each other.
-
-* Mail-mode automatic Reply-to field.
-
-If the variable `mail-default-reply-to' is non-`nil', then each time
-you start to compose a message, a Reply-to field is inserted with
-its contents taken from the value of `mail-default-reply-to'.
-
-* Where is your .emacs file?
-
-If you run Emacs under `su', so your real and effective uids are
-different, Emacs uses the home directory associated with the real uid
-(the name you actually logged in under) to find the .emacs file.
-
-Otherwise, Emacs uses the environment variable HOME to find the .emacs
-file.
-
-The .emacs file is not loaded at all if -batch is specified.
-
-* Prolog mode is the default for ".pl" files.
-
-* File names are not case-sensitive on VMS.
-
-On VMS systems, all file names that you specify are converted to upper
-case.  You can use either upper or lower case indiscriminately.
-
-* VMS-only function 'define-dcl-symbol'.
-
-This is a new name for the function formerly called
-`define-logical-name'.
-
-Editing Changes in Emacs 18
-
-* Additional systems and machines are supported.
-
-GNU Emacs now runs on Vax VMS.  However, many facilities that are normally
-implemented by running subprocesses do not work yet.  This includes listing
-a directory and sending mail.  There are features for running subprocesses
-but they are incompatible with those on Unix.  I hope that some of
-the VMS users can reimplement these features for VMS (compatibly for
-the user, if possible).
-
-VMS wizards are also asked to work on making the subprocess facilities
-more upward compatible with those on Unix, and also to rewrite their
-internals to use the same Lisp objects that are used on Unix to
-represent processes.
-
-In addition, the TI Nu machine running Unix system V, the AT&T 3b, and
-the Wicat, Masscomp, Integrated Solutions, Alliant, Amdahl uts, Mips,
-Altos 3068 and Gould Unix systems are now supported.  The IBM PC-RT is
-supported under 4.2, but not yet under system V.  The GEC 93 is close
-to working.  The port for the Elxsi is partly merged.  See the file
-MACHINES for full status information and machine-specific installation
-advice.
-
-* Searching is faster.
-
-Forward search for a text string, or for a regexp that is equivalent
-to a text string, is now several times faster.  Motion by lines and
-counting lines is also faster.
-
-* Memory usage improvements.
-
-It is no longer possible to run out of memory during garbage
-collection.  As a result, running out of memory is never fatal.  This
-is due to a new garbage collection algorithm which compactifies
-strings in place rather than copying them.  Another consequence of the
-change is a reduction in total memory usage and a slight increase in
-garbage collection speed.
-
-* Display changes.
-
-** Editing above top of screen.
-
-When you delete or kill or alter text that reaches to the top of the
-screen or above it, so that display would start in the middle of a
-line, Emacs will usually attempt to scroll the text so that display
-starts at the beginning of a line again.
-
-** Yanking in the minibuffer.
-
-The message "Mark Set" is no longer printed when the minibuffer is
-active.  This is convenient with many commands, including C-y, that
-normally print such a message.
-
-** Cursor appears in last line during y-or-n questions.
-
-Questions that want a `y' or `n' answer now move the cursor
-to the last line, following the question.
-
-* Library loading changes.
-
-`load' now considers all possible suffixes (`.elc', `.el' and none)
-for each directory in `load-path' before going on to the next directory.
-It now accepts an optional fourth argument which, if non-nil, says to
-use no suffixes; then the file name must be given in full.  The search
-of the directories in `load-path' goes on as usual in this case, but
-it too can be prevented by passing an absolute file name.
-
-The value of `load-path' no longer by default includes nil (meaning to
-look in the current default directory).  The idea is that `load' should
-be used to search the path only for libraries to be found in the standard
-places.  If you want to override system libraries with your own, place
-your own libraries in one special directory and add that directory to the
-front of `load-path'.
-
-The function `load' is no longer a command; that is to say, `M-x load'
-is no longer allowed.  Instead, there are two commands for loading files.
-`M-x load-library' is equivalent to the old meaning of `M-x load'.
-`M-x load-file' reads a file name with completion and defaulting
-and then loads exactly that file, with no searching and no suffixes.
-
-* Emulation of other editors.
-
-** `edt-emulation-on' starts emulating DEC's EDT editor.
-
-Do `edt-emulation-off' to return Emacs to normal.
-
-** `vi-mode' and `vip-mode' starts emulating vi.
-
-These are two different vi emulations provided by GNU Emacs users.
-We are interested in feedback as to which emulation is preferable.
-
-See the documentation and source code for these functions
-for more information.
-
-** `set-gosmacs-bindings' emulates Gosling Emacs.
-
-This command changes many global bindings to resemble those of
-Gosling Emacs.  The previous bindings are saved and can be restored using
-`set-gnu-bindings'.
-
-* Emulation of a display terminal.
-
-Within Emacs it is now possible to run programs (such as emacs or
-supdup) which expect to do output to a visual display terminal.
-
-See the function `terminal-emulator' for more information.
-
-* New support for keypads and function keys.
-
-There is now a first attempt at terminal-independent support for
-keypad and function keys.
-
-Emacs now defines a standard set of key-names for function and keypad
-keys, and provides standard hooks for defining them.  Most of the
-standard key-names have default definitions built into Emacs; you can
-override these in a terminal-independent manner.  The default definitions
-and the conventions for redefining them are in the file `lisp/keypad.el'.
-
-These keys on the terminal normally work by sending sequences of
-characters starting with ESC.  The exact sequences used vary from
-terminal to terminal.  Emacs interprets them in two stages:
-in the first stage, terminal-dependent sequences are mapped into
-the standard key-names; then second stage maps the standard key-names
-into their definitions in a terminal-independent fashion.
-
-The terminal-specific file `term/$TERM.el' now is responsible only for
-establishing the mapping from the terminal's escape sequences into
-standard key-names.  It no longer knows what Emacs commands are
-assigned to the standard key-names.
-
-One other change in terminal-specific files: if the value of the TERM
-variable contains a hyphen, only the part before the first hyphen is
-used in forming the name of the terminal-specific file.  Thus, for
-terminal type `aaa-48', the file loaded is now `term/aaa.el' rather
-than `term/aaa-48.el'.
-
-* New startup command line options.
-
-`-i FILE' or `-insert FILE' in the command line to Emacs tells Emacs to
-insert the contents of FILE into the current buffer at that point in
-command line processing.  This is like using the command M-x insert-file.
-
-`-funcall', `-load', `-user' and `-no-init-file' are new synonyms for
-`-f', `-l', `-u' and `-q'.
-
-`-nw' means don't use a window system.  If you are using a terminal
-emulator on the X window system and you want to run Emacs to work through
-the terminal emulator instead of working directly with the window system,
-use this switch.
-
-* Buffer-sorting commands.
-
-Various M-x commands whose names start with `sort-' sort parts of
-the region:
-
-sort-lines	divides the region into lines and sorts them alphabetically.
-sort-pages	divides into pages and sorts them alphabetically.
-sort-paragraphs	divides into paragraphs and sorts them alphabetically.
-sort-fields	divides into lines and sorts them alphabetically
-		according to one field in the line.
-		The numeric argument specifies which field (counting
-		from field 1 at the beginning of the line).  Fields in a line
-		are separated by whitespace.
-sort-numeric-fields
-		is similar but converts the specified fields to numbers
-		and sorts them numerically.
-sort-columns	divides into lines and sorts them according to the contents
-		of a specified range of columns.
-
-Refer to the self-documentation of these commands for full usage information.
-
-* Changes in various commands.
-
-** `tags-query-replace' and `tags-search' change.
-
-These functions now display the name of the file being searched at the moment.
-
-** `occur' output now serves as a menu.  `occur-menu' command deleted.
-
-`M-x occur' now allows you to move quickly to any of the occurrences
-listed.  Select the `*Occur*' buffer that contains the output of `occur',
-move point to the occurrence you want, and type C-c C-c.
-This will move point to the same occurrence in the buffer that the
-occurrences were found in.
-
-The command `occur-menu' is thus obsolete, and has been deleted.
-
-One way to get a list of matching lines without line numbers is to
-copy the text to another buffer and use the command `keep-lines'.
-
-** Incremental search changes.
-
-Ordinary and regexp incremental searches now have distinct default
-search strings.  Thus, regexp searches recall only previous regexp
-searches.
-
-If you exit an incremental search when the search string is empty,
-the old default search string is kept.  The default does not become
-empty.
-
-Reversing the direction of an incremental search with C-s or C-r
-when the search string is empty now does not get the default search
-string.  It leaves the search string empty.  A second C-s or C-r
-will get the default search string.  As a result, you can do a reverse
-incremental regexp search with C-M-s C-r.
-
-If you add a `*', `?' or `\|' to an incremental search regexp,
-point will back up if that is appropriate.  For example, if
-you have searched for `ab' and add a `*', point moves to the
-first match for `ab*', which may be before the match for `ab'
-that was previously found.
-
-If an incremental search is failing and you ask to repeat it,
-it will start again from the beginning of the buffer (or the end,
-if it is a backward search).
-
-The search-controlling parameters `isearch-slow-speed' and
-`isearch-slow-window-lines' have now been renamed to start with
-`search' instead of `isearch'.  Now all the parameters' names start
-with `search'.
-
-If `search-slow-window-lines' is negative, the slow search window
-is put at the top of the screen, and the absolute value or the
-negative number specifies the height of it.
-
-** Undo changes
-
-The undo command now will mark the buffer as unmodified only when it is
-identical to the contents of the visited file.
-
-** C-M-v in minibuffer.
-
-If while in the minibuffer you request help in a way that uses a
-window to display something, then until you exit the minibuffer C-M-v
-in the minibuffer window scrolls the window of help.
-
-For example, if you request a list of possible completions, C-M-v can
-be used reliably to scroll the completion list.
-
-** M-TAB command.
-
-Meta-TAB performs completion on the Emacs Lisp symbol names.  The sexp
-in the buffer before point is compared against all existing nontrivial
-Lisp symbols and completed as far as is uniquely determined by them.
-Nontrivial symbols are those with either function definitions, values
-or properties.
-
-If there are multiple possibilities for the very next character, a
-list of possible completions is displayed.
-
-** Dynamic abbreviation package.
-
-The new command Meta-/ expands an abbreviation in the buffer before point
-by searching the buffer for words that start with the abbreviation.
-
-** Changes in saving kbd macros.
-
-The commands `write-kbd-macro' and `append-kbd-macro' have been
-deleted.  The way to save a keyboard macro is to use the new command
-`insert-kbd-macro', which inserts Lisp code to define the macro as
-it is currently defined into the buffer before point.  Visit a Lisp
-file such as your Emacs init file `~/.emacs', insert the macro
-definition (perhaps deleting an old definition for the same macro)
-and then save the file.
-
-** C-x ' command.
-
-The new command C-x ' (expand-abbrev) expands the word before point as
-an abbrev, even if abbrev-mode is not turned on.
-
-** Sending to inferior Lisp.
-
-The command C-M-x in Lisp mode, which sends the current defun to
-an inferior Lisp process, now works by writing the text into a temporary
-file and actually sending only a `load'-form to load the file.
-As a result, it avoids the Unix bugs that used to strike when the
-text was above a certain length.
-
-With a prefix argument, this command now makes the inferior Lisp buffer
-appear on the screen and scrolls it so that the bottom is showing.
-
-Two variables `inferior-lisp-load-command' and `inferior-lisp-prompt',
-exist to customize these feature for different Lisp implementations.
-
-** C-x p now disabled.
-
-The command C-x p, a nonrecomended command which narrows to the current
-page, is now initially disabled like C-x n.
-
-* Dealing with files.
-
-** C-x C-v generalized
-
-This command is now allowed even if the current buffer is not visiting
-a file.  As usual, it kills the current buffer and replaces it with a
-newly found file.
-
-** M-x recover-file improved; auto save file names changed.
-
-M-x recover-file now checks whether the last auto-save file is more
-recent than the real visited file before offering to read in the
-auto-save file.  If the auto-save file is newer, a directory listing
-containing the two files is displayed while you are asked whether you
-want the auto save file.
-
-Visiting a file also makes this check.  If the auto-save file is more recent,
-a message is printed suggesting that you consider using M-x recover file.
-
-Auto save file names now by default have a `#' at the end as well
-as at the beginning.  This is so that `*.c' in a shell command
-will never match auto save files.
-
-On VMS, auto save file names are made by appending `_$' at the front
-and `$' at the end.
-
-When you change the visited file name of a buffer, the auto save file
-is now renamed to belong to the new visited file name.
-
-You can customize the way auto save file names are made by redefining
-the two functions `make-auto-save-file-name' and `auto-save-file-name-p',
-both of which are defined in `files.el'.
-
-** Modifying a buffer whose file is changed on disk is detected instantly.
-
-On systems where clash detection (locking of files being edited) is
-implemented, Emacs also checks the first time you modify a buffer
-whether the file has changed on disk since it was last visited or saved.
-If it has, you are asked to confirm that you want to change the buffer.
-
-** Exiting Emacs offers to save `*mail*'.
-
-Emacs can now know about buffers that it should offer to save on exit
-even though they are not visiting files.  This is done for any buffer
-which has a non-nil local value of `buffer-offer-save'.  By default,
-Mail mode provides such a local value.
-
-** Backup file changes.
-
-If a backup file cannot be written in the directory of the visited file
-due to fascist file protection, a backup file is now written in your home
-directory as `~/%backup%~'.  Only one such file is made, ever, so only
-the most recently made such backup is available.
-
-When backup files are made by copying, the last-modification time of the
-original file is now preserved in the backup copy.
-
-** Visiting remote files.
-
-On an internet host, you can now visit and save files on any other
-internet host directly from Emacs with the commands M-x ftp-find-file
-and M-x ftp-write-file.  Specify an argument of the form HOST:FILENAME.
-Since standard internet FTP is used, the other host may be any kind
-of machine and is not required to have any special facilities.
-
-The first time any one remote host is accessed, you will be asked to
-give the user name and password for use on that host.  FTP is reinvoked
-each time you ask to use it, but previously specified user names and
-passwords are remembered automatically.
-
-** Dired `g' command.
-
-`g' in Dired mode is equivalent to M-x revert-buffer; it causes the
-current contents of the same directory to be read in.
-
-* Changes in major modes.
-
-** C mode indentation change.
-
-The binding of Linefeed is no longer changed by C mode.  It once again
-has its normal meaning, which is to insert a newline and then indent
-afterward.
-
-The old definition did one additional thing: it reindented the line
-before the new newline.  This has been removed because it made the
-command twice as slow.  The only time it was really useful was after the
-insertion of an `else', since the fact of starting with `else' may change
-the way that line is indented.  Now you will have to type TAB again
-yourself to reindent the `else' properly.
-
-If the variable `c-tab-always-indent' is set to `nil', the TAB command
-in C mode, with no argument, will just insert a tab character if there
-is non-whitespace preceding point on the current line.  Giving it a
-prefix argument will force reindentation of the line (as well as
-of the compound statement that begins after point, if any).
-
-** Fortran mode now exists.
-
-This mode provides commands for motion and indentation of Fortran code,
-plus built-in abbrevs for Fortran keywords.  For details, see the manual
-or the on-line documentation of the command `fortran-mode'.
-
-** Scribe mode now exists.
-
-This mode does something useful for editing files of Scribe input.
-It is used automatically for files with names ending in ".mss".
-
-** Modula2 and Prolog modes now exist.
-
-These modes are for editing programs in the languages of the same names.
-They can be selected with M-x modula-2-mode and M-x prolog-mode.
-
-** Telnet mode changes.
-
-The telnet mode special commands have now been assigned to C-c keys.
-Most of them are the same as in Shell mode.
-
-** Picture mode changes.
-
-The special picture-mode commands to specify the direction of cursor
-motion after insertion have been moved to C-c keys.  The commands to
-specify diagonal motion were already C-c keys; they are unchanged.
-The keys to specify horizontal or vertical motion are now
-C-c < (left), C-c > (right), C-c ^ (up) and C-c . (down).
-
-** Nroff mode comments.
-
-Comments are now supported in Nroff mode.  The standard comment commands
-such as M-; and C-x ; know how to insert, align and delete comments
-that start with backslash-doublequote.
-
-** LaTeX mode.
-
-LaTeX mode now exists.  Use M-x latex-mode to select this mode, and
-M-x plain-tex-mode to select the previously existing mode for Plain
-TeX.  M-x tex-mode attempts to examine the contents of the buffer and
-choose between latex-mode and plain-tex-mode accordingly; if the
-buffer is empty or it cannot tell, the variable `TeX-default-mode'
-controls the choice.  Its value should be the symbol for the mode to
-be used.
-
-The facilities for running TeX on all or part of the buffer
-work with LaTeX as well.
-
-Some new commands available in both modes:
-
-C-c C-l		recenter the window showing the TeX output buffer
-		 so most recent line of output can be seen.
-C-c C-k		kill the TeX subprocess.
-C-c C-q		show the printer queue.
-C-c C-f		close a block (appropriate for LaTeX only).
-		 If the current line contains a \begin{...},
-		 this inserts an \end{...} on the following line
-		 and puts point on a blank line between them.
-
-** Outline mode changes.
-
-Invisible lines in outline mode are now indicated by `...' at the
-end of the previous visible line.
-
-The special outline heading motion commands are now all on C-c keys.
-A few new ones have been added.  Here is a full list:
-
-C-c C-n   Move to next visible heading (formerly M-})
-C-c C-p   Move to previous visible heading (formerly M-{)
-C-c C-f   Move to next visible heading at the same level.
-	   Thus, if point is on a level-2 heading line,
-	   this command moves to the next visible level-2 heading.
-C-c C-b   Move to previous visible heading at the same level.
-C-c C-u   Move up to previous visible heading at a higher level.
-
-The variable `outline-regexp' now controls recognition of heading lines.
-Any line whose beginning matches this regexp is a heading line.
-The depth in outline structure is determined by the length of
-the string that matches.
-
-A line starting with a ^L (formfeed) is now by default considered
-a header line.
-
-* Mail reading and sending.
-
-** MH-E changes.
-
-MH-E has been extensively modified and improved since the v17 release.
-It contains many new features, including commands to: extracted failed
-messages, kill a draft message, undo changes to a mail folder, monitor
-delivery of a letter, print multiple messages, page digests backwards,
-insert signatures, and burst digests.  Also, many commands have been
-made to able to deal with named sequences of messages, instead of
-single messages.  MH-E also has had numerous bugs fixed and commands
-made to run faster.  Furthermore, its keybindings have been changed to
-be compatible with Rmail and the rest of GNU Emacs.
-
-** Mail mode changes.
-
-The C-c commands of mail mode have been rearranged:
-
-C-c s, C-c c, C-c t and C-c b (move point to various header fields)
-have been reassigned as C-c C-f C-s, C-c C-f C-c, C-c C-f C-t and C-c
-C-f C-b.  C-c C-f is for "field".
-
-C-c y, C-c w and C-c q have been changed to C-c C-y, C-c C-w and C-c C-q.
-
-Thus, C-c LETTER is always unassigned.
-
-** Rmail C-r command changed to w.
-
-The Rmail command to edit the current message is now `w'.  This change
-has been made because people frequently type C-r while in Rmail hoping
-to do a reverse incremental search.  That now works.
-
-* Rnews changes.
-
-** Caesar rotation added.
-
-The function news-caesar-buffer-body performs encryption and
-decryption of the body of a news message.  It defaults to the USENET
-standard of 13, and accepts any numeric arg between 1 to 25 and -25 to -1.
-The function is bound to C-c C-r in both news-mode and news-reply-mode.
-
-** rmail-output command added.
-
-The C-o command has been bound to rmail-output in news-mode.
-This allows one to append an article to a file which is in either Unix
-mail or RMAIL format.
-
-** news-reply-mode changes.
-
-The C-c commands of news reply mode have been rearranged and changed,
-so that C-c LETTER is always unassigned:
-
-C-c y, C-c w and C-c q have been changed to C-c C-y, C-c C-w and C-c C-q.
-
-C-c c, C-c t, and C-c b (move to various mail header fields) have been
-deleted (they make no sense for posting and replying to USENET).
-
-C-c s (move to Subject: header field) has been reassigned as C-c C-f
-C-s.  C-c C-f is for "field".  Several additional move to news header
-field commands have been added.
-
-The local news-reply-mode bindings now look like this:
-
-C-c C-s  news-inews (post the message)    C-c C-c  news-inews
-C-c C-f	 move to a header field (and create it if there isn't):
-	 C-c C-f C-n  move to Newsgroups:	C-c C-f C-s  move to Subj:
-	 C-c C-f C-f  move to Followup-To:      C-c C-f C-k  move to Keywords:
-	 C-c C-f C-d  move to Distribution:	C-c C-f C-a  move to Summary:
-C-c C-y  news-reply-yank-original (insert current message, in NEWS).
-C-c C-q  mail-fill-yanked-message (fill what was yanked).
-C-c C-r  caesar rotate all letters by 13 places in the article's body (rot13).
-
-* Existing Emacs usable as a server.
-
-Programs such as mailers that invoke "the editor" as an inferior
-to edit some text can now be told to use an existing Emacs process
-instead of creating a new editor.
-
-To do this, you must have an Emacs process running and capable of
-doing terminal I/O at the time you want to invoke it.  This means that
-either you are using a window system and give Emacs a separate window
-or you run the other programs as inferiors of Emacs (such as, using
-M-x shell).
-
-First prepare the existing Emacs process by loading the `server'
-library and executing M-x server-start.  (Your .emacs can do this
-automatically.)
-
-Now tell the other programs to use, as "the editor", the Emacs client
-program (etc/emacsclient, located in the same directory as this file).
-This can be done by setting the environment variable EDITOR.
-
-When another program invokes the emacsclient as "the editor", the
-client actually transfers the file names to be edited to the existing
-Emacs, which automatically visits the files.
-
-When you are done editing a buffer for a client, do C-x # (server-edit).
-This marks that buffer as done, and selects the next buffer that the client
-asked for.  When all the buffers requested by a client are marked in this
-way, Emacs tells the client program to exit, so that the program that
-invoked "the editor" will resume execution.
-
-You can only have one server Emacs at a time, but multiple client programs
-can put in requests at the same time.
-
-The client/server work only on Berkeley Unix, since they use the Berkeley
-sockets mechanism for their communication.
-
-Changes in Lisp programming in Emacs version 18.
-
-* Init file changes.
-
-** Suffixes no longer accepted on `.emacs'.
-
-Emacs will no longer load a file named `.emacs.el' or `emacs.elc'
-in place of `.emacs'.  This is so that it will take less time to
-find `.emacs'.  If you want to compile your init file, give it another
-name and make `.emacs' a link to the `.elc' file, or make it contain
-a call to `load' to load the `.elc' file.
-
-** `default-profile' renamed to `default', and loaded after `.emacs'.
-
-It used to be the case that the file `default-profile' was loaded if
-and only if `.emacs' was not found.
-
-Now the name `default-profile' is not used at all.  Instead, a library
-named `default' is loaded after the `.emacs' file.  `default' is loaded
-whether the `.emacs' file exists or not.  However, loading of `default'
-can be prevented if the `.emacs' file sets `inhibit-default-init' to non-nil.
-
-In fact, you would call the default file `default.el' and probably would
-byte-compile it to speed execution.
-
-Note that for most purposes you are better off using a `site-init' library
-since that will be loaded before the runnable Emacs is dumped.  By using
-a `site-init' library, you avoid taking up time each time Emacs is started.
-
-** inhibit-command-line has been eliminated.
-
-This variable used to exist for .emacs files to set.  It has been
-eliminated because you can get the same effect by setting
-command-line-args to nil and setting inhibit-startup-message to t.
-
-* `apply' is more general.
-
-`apply' now accepts any number of arguments.  The first one is a function;
-the rest are individual arguments to pass to that function, except for the
-last, which is a list of arguments to pass.
-
-Previously, `apply' required exactly two arguments.  Its old behavior
-follows as a special case of the new definition.
-
-* New code-letter for `interactive'.
-
-(interactive "NFoo: ") is like (interactive "nFoo: ") in reading
-a number using the minibuffer to serve as the argument; however,
-if a prefix argument was specified, it uses the prefix argument
-value as the argument, and does not use the minibuffer at all.
-
-This is used by the `goto-line' and `goto-char' commands.
-
-* Semantics of variables.
-
-** Built-in per-buffer variables improved.
-
-Several built-in variables which in the past had a different value in
-each buffer now behave exactly as if `make-variable-buffer-local' had
-been done to them.
-
-These variables are `tab-width', `ctl-arrow', `truncate-lines',
-`fill-column', `left-margin', `mode-line-format', `abbrev-mode',
-`overwrite-mode', `case-fold-search', `auto-fill-hook',
-`selective-display', `selective-display-ellipses'.
-
-To be precise, each variable has a default value which shows through
-in most buffers and can be accessed with `default-value' and set with
-`set-default'.  Setting the variable with `setq' makes the variable
-local to the current buffer.  Changing the default value has retroactive
-effect on all buffers in which the variable is not local.
-
-The variables `default-case-fold-search', etc., are now obsolete.
-They now refer to the default value of the variable, which is not
-quite the same behavior as before, but it should enable old init files
-to continue to work.
-
-** New per-buffer variables.
-
-The variables `fill-prefix', `comment-column' and `indent-tabs-mode'
-are now per-buffer.  They work just like `fill-column', etc.
-
-** New function `setq-default'.
-
-`setq-default' sets the default value of a variable, and uses the
-same syntax that `setq' accepts: the variable name is not evaluated
-and need not be quoted.
-
-`(setq-default case-fold-search nil)' would make searches case-sensitive
-in all buffers that do not have local values for `case-fold-search'.
-
-** Functions `global-set' and `global-value' deleted.
-
-These functions were never used except by mistake by users expecting
-the functionality of `set-default' and `default-value'.
-
-* Changes in defaulting of major modes.
-
-When `default-major-mode' is `nil', new buffers are supposed to
-get their major mode from the buffer that is current.  However,
-certain major modes (such as Dired mode, Rmail mode, Rmail Summary mode,
-and others) are not reasonable to use in this way.
-
-Now such modes' names have been given non-`nil' `mode-class' properties.
-If the current buffer's mode has such a property, Fundamental mode is
-used as the default for newly created buffers.
-
-* `where-is-internal' requires additional arguments.
-
-This function now accepts three arguments, two of them required:
-DEFINITION, the definition to search for; LOCAL-KEYMAP, the keymap
-to use as the local map when doing the searching, and FIRST-ONLY,
-which is nonzero to return only the first key found.
-
-This function returns a list of keys (strings) whose definitions
-(in the LOCAL-KEYMAP or the current global map) are DEFINITION.
-
-If FIRST-ONLY is non-nil, it returns a single key (string).
-
-This function has changed incompatibly in that now two arguments
-are required when previously only one argument was allowed.  To get
-the old behavior of this function, write `(current-local-map)' as
-the expression for the second argument.
-
-The incompatibility is sad, but `nil' is a legitimate value for the
-second argument (it means there is no local keymap), so it cannot also
-serve as a default meaning to use the current local keymap.
-
-* Abbrevs with hooks.
-
-When an abbrev defined with a hook is expanded, it now performs the
-usual replacement of the abbrev with the expansion before running the
-hook.  Previously the abbrev itself was deleted but the expansion was
-not inserted.
-
-* Function `scan-buffer' deleted.
-
-Use `search-forward' or `search-backward' in place of `scan-buffer'.
-You will have to rearrange the arguments.
-
-* X window interface improvements.
-
-** Detect release of mouse buttons.
-
-Button-up events can now be detected.  See the file `lisp/x-mouse.el'
-for details.
-
-** New pop-up menu facility.
-
-The new function `x-popup-menu' pops up a menu (in a X window)
-and returns an indication of which selection the user made.
-For more information, see its self-documentation.
-
-* M-x disassemble.
-
-This command prints the disassembly of a byte-compiled Emacs Lisp function.
-
-Would anyone like to interface this to the debugger?
-
-* `insert-buffer-substring' can insert part of the current buffer.
-
-The old restriction that the text being inserted had to come from
-a different buffer is now lifted.
-
-When inserting text from the current buffer, the text to be inserted
-is determined from the specified bounds before any copying takes place.
-
-* New function `substitute-key-definition'.
-
-This is a new way to replace one command with another command as the
-binding of whatever keys may happen to refer to it.
-
-(substitute-key-definition OLDDEF NEWDEF KEYMAP) looks through KEYMAP
-for keys defined to run OLDDEF, and rebinds those keys to run NEWDEF
-instead.
-
-* New function `insert-char'.
-
-Insert a specified character, a specified number of times.
-
-* `mark-marker' changed.
-
-When there is no mark, this now returns a marker that points
-nowhere, rather than `nil'.
-
-* `ding' accepts argument.
-
-When given an argument, the function `ding' does not terminate
-execution of a keyboard macro.  Normally, `ding' does terminate
-all macros that are currently executing.
-
-* New function `minibuffer-depth'.
-
-This function returns the current depth in minibuffer activations.
-The value is zero when the minibuffer is not in use.
-Values greater than one are possible if the user has entered the
-minibuffer recursively.
-
-* New function `documentation-property'.
-
-(documentation-property SYMBOL PROPNAME) is like (get SYMBOL PROPNAME),
-except that if the property value is a number `documentation-property'
-will take that number (or its absolute value) as a character position
-in the DOC file and return the string found there.
-
-(documentation-property VAR 'variable-documentation) is the proper
-way for a Lisp program to get the documentation of variable VAR.
-
-* New documentation-string expansion feature.
-
-If a documentation string (for a variable or function) contains text
-of the form `\<FOO>', it means that all command names specified in
-`\[COMMAND]' construct from that point on should be turned into keys
-using the value of the variable FOO as the local keymap.  Thus, for example,
-
-  `\<emacs-lisp-mode-map>\[eval-defun] evaluates the defun containing point.'
-
-will expand into
-
-  "ESC C-x evaluates the defun containing point."
-
-regardless of the current major mode, because ESC C-x is defined to
-run `eval-defun' in the keymap `emacs-lisp-mode-map'.  The effect is
-to show the key for `eval-defun' in Emacs Lisp mode regardless of the
-current major mode.
-
-The `\<...>' construct applies to all `\[...]' constructs that follow it,
-up to the end of the documentation string or the next `\<...>'.
-
-Without `\<...>', the keys for commands specified in `\[...]' are found
-in the current buffer's local map.
-
-The current global keymap is always searched second, whether `\<...>'
-has been used or not.
-
-* Multiple hooks allowed in certain contexts.
-
-The old hook variables `find-file-hook', `find-file-not-found-hook' and
-`write-file-hook' have been replaced.
-
-The replacements are `find-file-hooks', `find-file-not-found-hooks'
-and `write-file-hooks'.  Each holds a list of functions to be called;
-by default, `nil', for no functions.  The functions are called in
-order of appearance in the list.
-
-In the case of `find-file-hooks', all the functions are executed.
-
-In the case of `find-file-not-found-hooks', if any of the functions
-returns non-`nil', the rest of the functions are not called.
-
-In the case of `write-file-hooks', if any of the functions returns
-non-`nil', the rest of the functions are not called, and the file is
-considered to have been written already; so actual writing in the
-usual way is not done.  If `write-file-hooks' is local to a buffer,
-it is set to its global value if `set-visited-file-name' is called
-(and thus by C-x C-w as well).
-
-`find-file-not-found-hooks' and `write-file-hooks' can be used
-together to implement editing of files that are not stored as Unix
-files: stored in archives, or inside version control systems, or on
-other machines running other operating systems and accessible via ftp.
-
-* New hooks for suspending Emacs.
-
-Suspending Emacs runs the hook `suspend-hook' before suspending
-and the hook `suspend-resume-hook' if the suspended Emacs is resumed.
-Running a hook is done by applying the variable's value to no arguments
-if the variable has a non-`nil' value.  If `suspend-hook' returns
-non-`nil', then suspending is inhibited and so is running the
-`suspend-resume-hook'.  The non-`nil' value means that the `suspend-hook'
-has done whatever suspending is required.
-
-* Disabling commands can print a special message.
-
-A command is disabled by giving it a non-`nil' `disabled' property.
-Now, if this property is a string, it is included in the message
-printed when the user tries to run the command.
-
-* Emacs can open TCP connections.
-
-The function `open-network-stream' opens a TCP connection to
-a specified host and service.  Its value is a Lisp object that represents
-the connection.  The object is a kind of "subprocess", and I/O are
-done like I/O to subprocesses.
-
-* Display-related changes.
-
-** New mode-line control features.
-
-The display of the mode line used to be controlled by a format-string
-that was the value of the variable `mode-line-format'.
-
-This variable still exists, but it now allows more general values,
-not just strings.  Lists, cons cells and symbols are also meaningful.
-
-The mode line contents are created by outputting various mode elements
-one after the other.  Here are the kinds of objects that can be
-used as mode elements, and what they do in the display:
-
-  string        the contents of the string are output to the mode line,
-		and %-constructs are replaced by other text.
-
-  t or nil	ignored; no output results.
-
-  symbol	the symbol's value is used.  If the value is a string,
-		the string is output verbatim to the mode line
-		(so %-constructs are not interpreted).  Otherwise,
-		the symbol's value is processed as a mode element.
-
-  list (whose first element is a string or list or cons cell)
-		the elements of the list are treated as as mode elements,
-		so that the output they generate is concatenated,
-
-  list (whose car is a symbol)
-		if the symbol's value is non-nil, the second element of the
-		list is treated as a mode element.  Otherwise, the third
-		element (if any) of the list is treated as a mode element.
-
-  cons (whose car is a positive integer)
-		the cdr of the cons is used as a mode element, but
-		the text it produces is padded, if necessary, to have
-		at least the width specified by the integer.
-
-  cons (whose car is a negative integer)
-		the cdr of the cons is used as a mode element, but
-		the text it produces is truncated, if necessary, to have
-		at most the width specified by the integer.
-
-There is always one mode element to start with, that being the value of
-`mode-line-format', but if this value is a list then it leads to several
-more mode elements, which can lead to more, and so on.
-
-There is one new %-construct for mode elements that are strings:
-`%n' displays ` Narrow' for a buffer that is narrowed.
-
-The default value of `mode-line-format' refers to several other variables.
-These variables are `mode-name', `mode-line-buffer-identification',
-`mode-line-process', `mode-line-modified', `global-mode-string' and
-`minor-mode-alist'.  The first four are local in every buffer in which they
-are changed from the default.
-
-mode-name	Name of buffer's major mode.  Local in every buffer.
-
-mode-line-buffer-identification
-		Normally the list ("Emacs: %17b"), it is responsible
-		for displaying text to indicate what buffer is being shown
-		and what kind of editing it is doing.  `Emacs' means
-		that a file of characters is being edited.  Major modes
-		such as Info and Dired which edit or view other kinds
-		of data often change this value.  This variables becomes
-		local to the current buffer if it is setq'd.
-
-mode-line-process
-		Normally nil, this variable is responsible for displaying
-		information about the process running in the current buffer.
-		M-x shell-mode and M-x compile alter this variable.
-
-mode-line-modified
-		This variable is responsible for displaying the indication
-		of whether the current buffer is modified or read-only.
-		By default its value is `("--%*%*-")'.
-
-minor-mode-alist
-		This variable is responsible for displaying text for those
-		minor modes that are currently enabled.  Its value
-		is a list of elements of the form (VARIABLE STRING),
-		where STRING is to be displayed if VARIABLE's value
-		(in the buffer whose mode line is being displayed)
-		is non-nil.  This variable is not made local to particular
-		buffers, but loading some libraries may add elements to it.
-
-global-mode-string
-		This variable is used to display the time, if you ask
-		for that.
-
-The idea of these variables is to eliminate the need for major modes
-to alter mode-line-format itself.
-
-** `window-point' valid for selected window.
-
-The value returned by `window-point' used to be incorrect when its
-argument was the selected window.  Now the value is correct.
-
-** Window configurations may be saved as Lisp objects.
-
-The function `current-window-configuration' returns a special type of
-Lisp object that represents the current layout of windows: the
-sizes and positions of windows, which buffers appear in them, and
-which parts of the buffers appear on the screen.
-
-The function `set-window-configuration' takes one argument, which must
-be a window configuration object, and restores that configuration.
-
-** New hook `temp-output-buffer-show-hook'.
-
-This hook allows you to control how help buffers are displayed.
-Whenever `with-output-to-temp-buffer' has executed its body and wants
-to display the temp buffer, if this variable is bound and non-`nil'
-then its value is called with one argument, the temp buffer.
-The hook function is solely responsible for displaying the buffer.
-The standard manner of display--making the buffer appear in a window--is
-used only if there is no hook function.
-
-** New function `minibuffer-window'.
-
-This function returns the window used (sometimes) for displaying
-the minibuffer.  It can be used even when the minibuffer is not active.
-
-** New feature to `next-window'.
-
-If the optional second argument is neither `nil' nor `t', the minibuffer
-window is omitted from consideration even when active; if the starting
-window was the last non-minibuffer window, the value will be the first
-non-minibuffer window.
-
-** New variable `minibuffer-scroll-window'.
-
-When this variable is non-`nil', the command `scroll-other-window'
-uses it as the window to be scrolled.  Displays of completion-lists
-set this variable to the window containing the display.
-
-** New argument to `sit-for'.
-
-A non-nil second argument to `sit-for' means do not redisplay;
-just wait for the specified time or until input is available.
-
-** Deleted function `set-minor-mode'; minor modes must be changed.
-
-The function `set-minor-mode' has been eliminated.  The display
-of minor mode names in the mode line is now controlled by the
-variable `minor-mode-alist'.  To specify display of a new minor
-mode, it is sufficient to add an element to this list.  Once that
-is done, you can turn the mode on and off just by setting a variable,
-and the display will show its status automatically.
-
-** New variable `cursor-in-echo-area'.
-
-If this variable is non-nil, the screen cursor appears on the
-last line of the screen, at the end of the text displayed there.
-
-Binding this variable to t is useful at times when reading single
-characters of input with `read-char'.
-
-** New per-buffer variable `selective-display-ellipses'.
-
-If this variable is non-nil, an ellipsis (`...') appears on the screen
-at the end of each text line that is followed by invisible text.
-
-If this variable is nil, no ellipses appear.  Then there is no sign
-on the screen that invisible text is present.
-
-Text is made invisible under the control of the variable
-`selective-display'; this is how Outline mode and C-x $ work.
-
-** New variable `no-redraw-on-reenter'.
-
-If you set this variable non-nil, Emacs will not clear the screen when
-you resume it after suspending it.  This is for the sake of terminals
-with multiple screens of memory, where the termcap entry has been set
-up to switch between screens when Emacs is suspended and resumed.
-
-** New argument to `set-screen-height' or `set-screen-width'.
-
-These functions now take an optional second argument which says
-what significance the newly specified height or width has.
-
-If the argument is nil, or absent, it means that Emacs should
-believe that the terminal height or width really is as just specified.
-
-If the argument is t, it means Emacs should not believe that the
-terminal really is this high or wide, but it should use the
-specific height or width as the number of lines or columns to display.
-Thus, you could display only 24 lines on a screen known to have 48 lines.
-
-What practical difference is there between using only 24 lines for display
-and really believing that the terminal has 24 lines?
-
-1. The ``real'' height of the terminal says what the terminal command
-to move the cursor to the last line will do.
-
-2. The ``real'' height of the terminal determines how much padding is
-needed.
-
-* File-related changes.
-
-** New parameter `backup-by-copying-when-mismatch'.
-
-If this variable is non-`nil', then when Emacs is about to save a
-file, it will create the backup file by copying if that would avoid
-changing the file's uid or gid.
-
-The default value of this variable is `nil', because usually it is
-useful to have the uid of a file change according to who edited it
-last.  I recommend thet this variable be left normally `nil' and
-changed with a local variables list in those particular files where
-the uid needs to be preserved.
-
-** New parameter `file-precious-flag'.
-
-If this variable is non-`nil', saving the buffer tries to avoid
-leaving an incomplete file due to disk full or other I/O errors.
-It renames the old file before saving.  If saving is successful,
-the renamed file is deleted; if saving gets an error, the renamed
-file is renamed back to the name you visited.
-
-Backups are always made by copying for such files.
-
-** New variable `buffer-offer-save'.
-
-If the value of this variable is non-`nil' in a buffer then exiting
-Emacs will offer to save the buffer (if it is modified and nonempty)
-even if the buffer is not visiting a file.  This variable is
-automatically made local to the current buffer whenever it is set.
-
-** `rename-file', `copy-file', `add-name-to-file' and `make-symbolic-link'.
-
-The third argument to these functions used to be `t' or `nil'; `t'
-meaning go ahead even if the specified new file name already has a file,
-and `nil' meaning to get an error.
-
-Now if the third argument is a number it means to ask the user for
-confirmation in this case.
-
-** New optional argument to `copy-file'.
-
-If `copy-file' receives a non-nil fourth argument, it attempts
-to give the new copy the same time-of-last-modification that the
-original file has.
-
-** New function `file-newer-than-file-p'.
-
-(file-newer-than-file-p FILE1 FILE2) returns non-nil if FILE1 has been
-modified more recently than FILE2.  If FILE1 does not exist, the value
-is always nil; otherwise, if FILE2 does not exist, the value is t.
-This is meant for use when FILE2 depends on FILE1, to see if changes
-in FILE1 make it necessary to recompute FILE2 from it.
-
-** Changed function `file-exists-p'.
-
-This function is no longer the same as `file-readable-p'.
-`file-exists-p' can now return t for a file that exists but which
-the fascists won't allow you to read.
-
-** New function `file-locked-p'.
-
-This function receives a file name as argument and returns `nil'
-if the file is not locked, `t' if locked by this Emacs, or a
-string giving the name of the user who has locked it.
-
-** New function `file-name-sans-versions'.
-
-(file-name-sans-versions NAME) returns a substring of NAME, with any
-version numbers or other backup suffixes deleted from the end.
-
-** New functions for directory names.
-
-Although a directory is really a kind of file, specifying a directory
-uses a somewhat different syntax from specifying a file.
-In Emacs, a directory name is used as part of a file name.
-
-On Unix, the difference is small: a directory name ends in a slash,
-while a file name does not: thus, `/usr/rms/' to name a directory,
-while `/usr/rms' names the file which holds that directory.
-
-On VMS, the difference is considerable: `du:[rms.foo]' specifies a
-directory, but the name of the file that holds that directory is
-`du:[rms]foo.dir'.
-
-There are two new functions for converting between directory names
-and file names.  `directory-file-name' takes a directory name and
-returns the name of the file in which that directory's data is stored.
-`file-name-as-directory' takes the name of a file and returns
-the corresponding directory name.  These always understand Unix file name
-syntax; on VMS, they understand VMS syntax as well.
-
-For example, (file-name-as-directory "/usr/rms") returns "/usr/rms/"
-and (directory-file-name "/usr/rms/") returns "/usr/rms".
-On VMS, (file-name-as-directory "du:[rms]foo.dir") returns "du:[rms.foo]"
-and (directory-file-name "du:[rms.foo]") returns "du:[rms]foo.dir".
-
-** Value of `file-attributes' changed.
-
-The function file-attributes returns a list containing many kinds of
-information about a file.  Now the list has eleven elements.
-
-The tenth element is `t' if deleting the file and creating another
-file of the same name would result in a change in the file's group;
-`nil' if there would be no change.  You can also think of this as
-comparing the file's group with the default group for files created in
-the same directory by you.
-
-The eleventh element is the inode number of the file.
-
-** VMS-only function `file-name-all-versions'.
-
-This function returns a list of all the completions, including version
-number, of a specified version-number-less file name.  This is like
-`file-name-all-completions', except that the latter returns values
-that do not include version numbers.
-
-** VMS-only variable `vms-stmlf-recfm'.
-
-On a VMS system, if this variable is non-nil, Emacs will give newly
-created files the record format `stmlf'.  This is necessary for files
-that must contain lines of arbitrary length, such as compiled Emacs
-Lisp.
-
-When writing a new version of an existing file, Emacs always keeps
-the same record format as the previous version; so this variable has
-no effect.
-
-This variable has no effect on Unix systems.
-
-** `insert-file-contents' on an empty file.
-
-This no longer sets the buffer's "modified" flag.
-
-** New function (VMS only) `define-logical-name':
-
-(define-logical-name LOGICAL TRANSLATION) defines a VMS logical name
-LOGICAL whose translation is TRANSLATION.  The new name applies to
-the current process only.
-
-** Deleted variable `ask-about-buffer-names'.
-
-If you want buffer names for files to be generated in a special way,
-you must redefine `create-file-buffer'.
-
-* Subprocess-related changes.
-
-** New function `process-list'.
-
-This function takes no arguments and returns a list of all
-of Emacs's asynchronous subprocesses.
-
-** New function `process-exit-status'.
-
-This function, given a process, process name or buffer as argument,
-returns the exit status code or signal number of the process.
-If the process has not yet exited or died, this function returns 0.
-
-** Process output ignores `buffer-read-only'.
-
-Output from a process will go into the process's buffer even if the
-buffer is read only.
-
-** Switching buffers in filter functions and sentinels.
-
-Emacs no longer saves and restore the current buffer around calling
-the filter and sentinel functions, so these functions can now
-permanently alter the selected buffer in a straightforward manner.
-
-** Specifying environment variables for subprocesses.
-
-When a subprocess is started with `start-process' or `call-process',
-the value of the variable `process-environment' is taken to
-specify the environment variables to give the subprocess.  The
-value should be a list of strings, each of the form "VAR=VALUE".
-
-`process-environment' is initialized when Emacs starts up
-based on Emacs's environment.
-
-** New variable `process-connection-type'.
-
-If this variable is `nil', when a subprocess is created, Emacs uses
-a pipe rather than a pty to communicate with it.  Normally this
-variable is `t', telling Emacs to use a pty if ptys are supported
-and one is available.
-
-** New function `waiting-for-user-input-p'.
-
-This function, given a subprocess as argument, returns `t' if that
-subprocess appears to be waiting for input sent from Emacs,
-or `nil' otherwise.
-
-** New hook `shell-set-directory-error-hook'.
-
-The value of this variable is called, with no arguments, whenever
-Shell mode gets an error trying to keep track of directory-setting
-commands (such as `cd' and `pushd') used in the shell buffer.
-
-* New functions `user-uid' and `user-real-uid'.
-
-These functions take no arguments and return, respectively,
-the effective uid and the real uid of the Emacs process.
-The value in each case is an integer.
-
-* New variable `print-escape-newlines' controls string printing.
-
-If this variable is non-`nil', then when a Lisp string is printed
-by the Lisp printing function `prin1' or `print', newline characters
-are printed as `\n' rather than as a literal newline.
-
-* New function `sysnetunam' on HPUX.
-
-This function takes two arguments, a network address PATH and a
-login string LOGIN, and executes the system call `netunam'.
-It returns `t' if the call succeeds, otherwise `nil'.
-
-News regarding installation:
-
-* Many `s-...' file names changed.
-
-Many `s-...' files have been renamed.  All periods in such names,
-except the ones just before the final `h', have been changed to
-hyphens.  Thus, `s-bsd4.2.h' has been renamed to `s-bsd4-2.h'.
-
-This is so a Unix distribution can be moved mechanically to VMS.
-
-* `DOCSTR...' file now called `DOC-...'.
-
-The file of on-line documentation strings, that used to be
-`DOCSTR.mm.nn.oo' in this directory, is now called `DOC-mm.nn.oo'.
-This is so that it can port to VMS using the standard conventions
-for translating filenames for VMS.
-
-This file also now contains the doc strings for variables as
-well as functions.
-
-* Emacs no longer uses floating point arithmetic.
-
-This may make it easier to port to some machines.
-
-* Macros `XPNTR' and `XSETPNTR'; flag `DATA_SEG_BITS'.
-
-These macros exclusively are used to unpack a pointer from a Lisp_Object
-and to insert a pointer into a Lisp_Object.  Redefining them may help
-port Emacs to machines in which all pointers to data objects have
-certain high bits set.
-
-If `DATA_SEG_BITS' is defined, it should be a number which contains
-the high bits to be inclusive or'ed with pointers that are unpacked.
-
-* New flag `HAVE_X_MENU'.
-
-Define this flag in `config.h' in addition to `HAVE_X_WINDOWS'
-to enable use of the Emacs interface to X Menus.  On some operating
-systems, the rest of the X interface works properly but X Menus
-do not work; hence this separate flag.  See the file `src/xmenu.c'
-for more information.
-
-* Macros `ARRAY_MARK_FLAG' and `DONT_COPY_FLAG'.
-
-* `HAVE_ALLOCA' prevents assembly of `alloca.s'.
-
-* `SYSTEM_MALLOC' prevents use of GNU `malloc.c'.
-
-SYSTEM_MALLOC, if defined, means use the system's own `malloc' routines
-rather than those that come with Emacs.
-
-Use this only if absolutely necessary, because if it is used you do
-not get warnings when space is getting low.
-
-* New flags to control unexec.
-
-See the file `unexec.c' for a long comment on the compilation
-switches that suffice to make it work on many machines.
-
-* `PNTR_COMPARISON_TYPE'
-
-Pointers that need to be compared for ordering are converted to this type
-first.  Normally this is `unsigned int'.
-
-* `HAVE_VFORK', `HAVE_DUP2' and `HAVE_GETTIMEOFDAY'.
-
-These flags just say whether certain system calls are available.
-
-* New macros control compiler switches, linker switches and libraries.
-
-The m- and s- files can now control in a modular fashion the precise
-arguments passed to `cc' and `ld'.
-
-LIBS_STANDARD defines the standard C libraries.  Default is `-lc'.
-LIBS_DEBUG defines the extra libraries to use when debugging.  Default `-lg'.
-LIBS_SYSTEM can be defined by the s- file to specify extra libraries.
-LIBS_MACHINE can be defined by the m- file to specify extra libraries.
-LIBS_TERMCAP defines the libraries for Termcap or Terminfo.
-  It is defined by default in a complicated fashion but the m- or s- file
-  can override it.
-
-LD_SWITCH_SYSTEM can be defined by the s- file to specify extra `ld' switches.
-  The default is `-X' on BSD systems except those few that use COFF object files.
-LD_SWITCH_MACHINE can be defined by the m- file to specify extra `ld' switches.
-
-C_DEBUG_SWITCH defines the switches to give `cc' when debugging.  Default `-g'.
-C_OPTIMIZE_SWITCH defines the switches to give `cc' to optimize.  Default `-O'.
-C_SWITCH_MACHINE can be defined by the m- file to specify extra `cc' switches.
-
-For older news, see the file ONEWS.2.
-
-----------------------------------------------------------------------
-Copyright information:
-
-Copyright (C) 1988 Free Software Foundation, Inc.
-
-   Permission is granted to anyone to make or distribute verbatim copies
-   of this document as received, in any medium, provided that the
-   copyright notice and this permission notice are preserved,
-   thus giving the recipient permission to redistribute in turn.
-
-   Permission is granted to distribute modified versions
-   of this document, or of portions of it,
-   under the above conditions, provided also that they
-   carry prominent notices stating who last changed them.
-
-Local variables:
-mode: text
-end:
-
-arch-tag: 8fed393b-c9c5-47d1-afbb-c0e7a135094a
--- a/etc/ONEWS.4	Sat Jun 03 22:51:32 2006 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1693 +0,0 @@
-GNU Emacs NEWS -- history of user-visible changes.  1992.
-Copyright (C) 1992 Free Software Foundation, Inc.
-See the end for copying conditions.
-
-For older news, see the file ONEWS.3.
-
-Changes in version 18.58.
-
-* RMAIL reply now properly parses nested comments in addesses.
-
-* The "visual bell" feature when used with X windows
-now flashes only 1/4 of the window's total area.  This is because
-flashing the whole window is too slow on some systems.
-
-* `call-process' and `call-process-region' now return an indication
-of the exit status of the subprocess: either a numeric exit code
-or a string describing the signal which caused termination.
-
-* It is possible for regular expression matching to overflow the stack
-of failure points.  In the past, such overflow was treated as simple
-failure to match.  Now it causes an error.
-
-* You can use C-u to end a numeric argument.  Thus, type C-u 1 0 0 C-u 1
-to insert 100 1's.
-
-* Emacs now knows how to get resource values from the X server.
-
-* Job control commands in shell mode work properly on more systems
-because they now work by "typing" signal characters such as C-c.
-
-* copy-keymap no longer recursively copies keymaps reached through
-symbols' function definitions (i.e., those that have names).  It does
-copy nested keymaps that appear directly in the other copied keymaps.
-
-Changes in version 18.56.
-
-* C-g should now work to interrupt a running program
-on all kinds of systems even when using X windows.
-
-* Quitting is inhibited while a filter or sentinel is running.
-Those functions can run asynchronously while Emacs is waiting
-for keyboard input, and if they allow quitting, they
-make the behavior of C-g unpredictable.
-
-* Storing text into the X windows cut buffer
-now clears out any selection.
-
-* The undo facility is completely rewritten, and now
-uses Lisp data structures.  It can record much more
-information.  You can use the variables undo-threshold
-and undo-high-threshold to control how much.
-
-* There is no longer a maximum screen height or width.
-
-Changes in version 18.52.
-
-* X windows version 10 is supported under system V.
-
-* Pop-up menus are now supported with the same Lisp interface in
-both version 10 and 11 of X windows.
-
-* C-x 4 a is a new command to edit a change-log entry in another window.
-
-* The emacs client program now allows an option +NNN to specify the
-line number to go to in the file whose name follows.  Thus,
-    emacsclient foo.c +45 bar.c
-will find the files `foo.c' and `bar.c', going to line 45 in `bar.c'.
-
-* Dired allows empty directories to be deleted like files.
-
-* When the terminal type is used to find a terminal-specific file to
-run, Emacs now tries the entire terminal type first.  If that doesn't
-yield a file that exists, the last hyphen and what follows it is
-stripped.  If that doesn't yield a file that exists, the previous
-hyphen is stripped, and so on until all hyphens are gone.  For
-example, if the terminal type is `aaa-48-foo', Emacs will try first
-`term/aaa-48-foo.el', then `term/aaa-48.el' and finally `term/aaa.el'.
-
-Underscores now receive the same treatment as hyphens.
-
-* Texinfo features: @defun, etc.  texinfo-show-structure.
-New template commands.  texinfo-format-region.
-
-* The special "local variable" `eval' is now ignored if you are running
-as root.
-
-* New command `c-macro-expand' shows the result of C macro expansion
-in the region.  It works using the C preprocessor, so its results
-are completely accurate.
-
-* Errors in trying to auto save now flash error messages for a few seconds.
-
-* Killing a buffer now sends SIGHUP to the buffer's process.
-
-* New hooks.
-
-** `spell-region' now allows you to filter the text before spelling-checking.
-If the value of `spell-filter' is non-nil, it is called, with no arguments,
-looking at a temporary buffer containing a copy of the text to be checked.
-It can alter the text freely before the spell program sees it.
-
-** The variable `lpr-command' now specifies the command to be used when
-you use the commands to print text (such as M-x print-buffer).
-
-** Posting netnews now calls the value of `news-inews-hook' (if not nil)
-as a function of no arguments before the actual posting.
-
-** Rmail now calls the value of `rmail-show-message-hook' (if not nil)
-as a function of no arguments, each time a new message is selected.
-
-** `kill-emacs' calls the value of `kill-emacs-hook' as a function of no args
-unless Emacs is running in batch mode.
-
-* New libraries.
-See the source code of each library for more information.
-
-** icon.el: a major mode for editing programs written in Icon.
-
-** life.el: a simulator for the cellular automaton "life".  Load the
-library and run M-x life.
-
-** doctex.el: a library for converting the Emacs `etc/DOC' file of
-documentation strings into TeX input.
-
-** saveconf.el: a library which records the arrangement of windows and
-buffers when you exit Emacs, and automatically recreates the same
-setup the next time you start Emacs.
-
-** uncompress.el: a library that automatically uncompresses files
-when you visit them.
-
-** c-fill.el: a mode for editing filled comments in C.
-
-** kermit.el: an extended version of shell-mode designed for running kermit.
-
-** spook.el: a library for adding some "distract the NSA" keywords to every
-message you send.
-
-** hideif.el: a library for hiding parts of a C program based on preprocessor
-conditionals.
-
-** autoinsert.el: a library to put in some initial text when you visit
-a nonexistent file.  The text used depends on the major mode, and
-comes from a directory of files created by you.
-
-* New programming features.
-
-** The variable `window-system-version' now contains the version number
-of the window system you are using (if appropriate).  When using X windows,
-its value is either 10 or 11.
-
-** (interactive "N") uses the prefix argument if any; otherwise, it reads
-a number using the minibuffer.
-
-** VMS: there are two new functions `vms-system-info' and `shrink-to-icon'.
-The former allows you to get many kinds of system status information.
-See its self-documentation for full details.
-The second is used with the window system: it iconifies the Emacs window.
-
-** VMS: the new function `define-logical-name' allows you to create
-job-wide logical names.  The old function `define-dcl-symbol' has been
-removed.
-
-Changes in version 18.50.
-
-* X windows version 11 is supported.
-
-Define X11 in config.h if you want X version 11 instead of version 10.
-
-* The command M-x gdb runs the GDB debugger as an inferior.
-It asks for the filename of the executable you want to debug.
-
-GDB runs as an inferior with I/O through an Emacs buffer.  All the
-facilities of Shell mode are available.  In addition, each time your
-program stops, and each time you select a new stack frame, the source
-code is displayed in another window with an arrow added to the line
-where the program is executing.
-
-Special GDB-mode commands include M-s, M-n, M-i, M-u, M-d, and C-c C-f
-which send the GDB commands `step', `next', `stepi', `up', `down'
-and `finish'.
-
-In any source file, the commands C-x SPC tells GDB to set a breakpoint
-on the current line.
-
-* M-x calendar displays a three-month calendar.
-
-* C-u 0 C-x C-s never makes a backup file.
-
-This is a way you can explicitly request not to make a backup.
-
-* `term-setup-hook' is for users only.
-
-Emacs never uses this variable for internal purposes, so you can freely
-set it in your `.emacs' file to make Emacs do something special after
-loading any terminal-specific setup file from `lisp/term'.
-
-* `copy-keymap' now copies recursive submaps.
-
-* New overlay-arrow feature.
-
-If you set the variable `overlay-arrow-string' to a string
-and `overlay-arrow-position' to a marker, that string is displayed on
-the screen at the position of that marker, hiding whatever text would
-have appeared there.  If that position isn't on the screen, or if
-the buffer the marker points into isn't displayed, there is no effect.
-
-* -batch mode can read from the terminal.
-
-It now works to use `read-char' to do terminal input in a noninteractive
-Emacs run.  End of file causes Emacs to exit.
-
-* Variables `data-bytes-used' and `data-bytes-free' removed.
-
-These variables cannot really work because the 24-bit range of an
-integer in (most ports of) GNU Emacs is not large enough to hold their
-values on many systems.
-
-Changes in version 18.45, since version 18.41.
-
-* C indentation parameter `c-continued-brace-offset'.
-
-This parameter's value is added to the indentation of any
-line that is in a continuation context and starts with an open-brace.
-For example, it applies to the open brace shown here:
-
-     if (x)
-       {
-
-The default value is zero.
-
-* Dabbrev expansion (Meta-/) preserves case.
-
-When you use Meta-/ to search the buffer for an expansion of an
-abbreviation, if the expansion found is all lower case except perhaps
-for its first letter, then the case pattern of the abbreviation
-is carried over to the expansion that replaces it.
-
-* TeX-mode syntax.
-
-\ is no longer given "escape character" syntax in TeX mode.  It now
-has the syntax of an ordinary punctuation character.  As a result,
-\[...\] and such like are considered to balance each other.
-
-* Mail-mode automatic Reply-to field.
-
-If the variable `mail-default-reply-to' is non-`nil', then each time
-you start to compose a message, a Reply-to field is inserted with
-its contents taken from the value of `mail-default-reply-to'.
-
-* Where is your .emacs file?
-
-If you run Emacs under `su', so your real and effective uids are
-different, Emacs uses the home directory associated with the real uid
-(the name you actually logged in under) to find the .emacs file.
-
-Otherwise, Emacs uses the environment variable HOME to find the .emacs
-file.
-
-The .emacs file is not loaded at all if -batch is specified.
-
-* Prolog mode is the default for ".pl" files.
-
-* File names are not case-sensitive on VMS.
-
-On VMS systems, all file names that you specify are converted to upper
-case.  You can use either upper or lower case indiscriminately.
-
-* VMS-only function 'define-dcl-symbol'.
-
-This is a new name for the function formerly called
-`define-logical-name'.
-
-Editing Changes in Emacs 18
-
-* Additional systems and machines are supported.
-
-GNU Emacs now runs on Vax VMS.  However, many facilities that are normally
-implemented by running subprocesses do not work yet.  This includes listing
-a directory and sending mail.  There are features for running subprocesses
-but they are incompatible with those on Unix.  I hope that some of
-the VMS users can reimplement these features for VMS (compatibly for
-the user, if possible).
-
-VMS wizards are also asked to work on making the subprocess facilities
-more upward compatible with those on Unix, and also to rewrite their
-internals to use the same Lisp objects that are used on Unix to
-represent processes.
-
-In addition, the TI Nu machine running Unix system V, the AT&T 3b, and
-the Wicat, Masscomp, Integrated Solutions, Alliant, Amdahl uts, Mips,
-Altos 3068 and Gould Unix systems are now supported.  The IBM PC-RT is
-supported under 4.2, but not yet under system V.  The GEC 93 is close
-to working.  The port for the Elxsi is partly merged.  See the file
-MACHINES for full status information and machine-specific installation
-advice.
-
-* Searching is faster.
-
-Forward search for a text string, or for a regexp that is equivalent
-to a text string, is now several times faster.  Motion by lines and
-counting lines is also faster.
-
-* Memory usage improvements.
-
-It is no longer possible to run out of memory during garbage
-collection.  As a result, running out of memory is never fatal.  This
-is due to a new garbage collection algorithm which compactifies
-strings in place rather than copying them.  Another consequence of the
-change is a reduction in total memory usage and a slight increase in
-garbage collection speed.
-
-* Display changes.
-
-** Editing above top of screen.
-
-When you delete or kill or alter text that reaches to the top of the
-screen or above it, so that display would start in the middle of a
-line, Emacs will usually attempt to scroll the text so that display
-starts at the beginning of a line again.
-
-** Yanking in the minibuffer.
-
-The message "Mark Set" is no longer printed when the minibuffer is
-active.  This is convenient with many commands, including C-y, that
-normally print such a message.
-
-** Cursor appears in last line during y-or-n questions.
-
-Questions that want a `y' or `n' answer now move the cursor
-to the last line, following the question.
-
-* Library loading changes.
-
-`load' now considers all possible suffixes (`.elc', `.el' and none)
-for each directory in `load-path' before going on to the next directory.
-It now accepts an optional fourth argument which, if non-nil, says to
-use no suffixes; then the file name must be given in full.  The search
-of the directories in `load-path' goes on as usual in this case, but
-it too can be prevented by passing an absolute file name.
-
-The value of `load-path' no longer by default includes nil (meaning to
-look in the current default directory).  The idea is that `load' should
-be used to search the path only for libraries to be found in the standard
-places.  If you want to override system libraries with your own, place
-your own libraries in one special directory and add that directory to the
-front of `load-path'.
-
-The function `load' is no longer a command; that is to say, `M-x load'
-is no longer allowed.  Instead, there are two commands for loading files.
-`M-x load-library' is equivalent to the old meaning of `M-x load'.
-`M-x load-file' reads a file name with completion and defaulting
-and then loads exactly that file, with no searching and no suffixes.
-
-* Emulation of other editors.
-
-** `edt-emulation-on' starts emulating DEC's EDT editor.
-
-Do `edt-emulation-off' to return Emacs to normal.
-
-** `vi-mode' and `vip-mode' starts emulating vi.
-
-These are two different vi emulations provided by GNU Emacs users.
-We are interested in feedback as to which emulation is preferable.
-
-See the documentation and source code for these functions
-for more information.
-
-** `set-gosmacs-bindings' emulates Gosling Emacs.
-
-This command changes many global bindings to resemble those of
-Gosling Emacs.  The previous bindings are saved and can be restored using
-`set-gnu-bindings'.
-
-* Emulation of a display terminal.
-
-Within Emacs it is now possible to run programs (such as emacs or
-supdup) which expect to do output to a visual display terminal.
-
-See the function `terminal-emulator' for more information.
-
-* New support for keypads and function keys.
-
-There is now a first attempt at terminal-independent support for
-keypad and function keys.
-
-Emacs now defines a standard set of key-names for function and keypad
-keys, and provides standard hooks for defining them.  Most of the
-standard key-names have default definitions built into Emacs; you can
-override these in a terminal-independent manner.  The default definitions
-and the conventions for redefining them are in the file `lisp/keypad.el'.
-
-These keys on the terminal normally work by sending sequences of
-characters starting with ESC.  The exact sequences used vary from
-terminal to terminal.  Emacs interprets them in two stages:
-in the first stage, terminal-dependent sequences are mapped into
-the standard key-names; then second stage maps the standard key-names
-into their definitions in a terminal-independent fashion.
-
-The terminal-specific file `term/$TERM.el' now is responsible only for
-establishing the mapping from the terminal's escape sequences into
-standard key-names.  It no longer knows what Emacs commands are
-assigned to the standard key-names.
-
-One other change in terminal-specific files: if the value of the TERM
-variable contains a hyphen, only the part before the first hyphen is
-used in forming the name of the terminal-specific file.  Thus, for
-terminal type `aaa-48', the file loaded is now `term/aaa.el' rather
-than `term/aaa-48.el'.
-
-* New startup command line options.
-
-`-i FILE' or `-insert FILE' in the command line to Emacs tells Emacs to
-insert the contents of FILE into the current buffer at that point in
-command line processing.  This is like using the command M-x insert-file.
-
-`-funcall', `-load', `-user' and `-no-init-file' are new synonyms for
-`-f', `-l', `-u' and `-q'.
-
-`-nw' means don't use a window system.  If you are using a terminal
-emulator on the X window system and you want to run Emacs to work through
-the terminal emulator instead of working directly with the window system,
-use this switch.
-
-* Buffer-sorting commands.
-
-Various M-x commands whose names start with `sort-' sort parts of
-the region:
-
-sort-lines	divides the region into lines and sorts them alphabetically.
-sort-pages	divides into pages and sorts them alphabetically.
-sort-paragraphs	divides into paragraphs and sorts them alphabetically.
-sort-fields	divides into lines and sorts them alphabetically
-		according to one field in the line.
-		The numeric argument specifies which field (counting
-		from field 1 at the beginning of the line).  Fields in a line
-		are separated by whitespace.
-sort-numeric-fields
-		is similar but converts the specified fields to numbers
-		and sorts them numerically.
-sort-columns	divides into lines and sorts them according to the contents
-		of a specified range of columns.
-
-Refer to the self-documentation of these commands for full usage information.
-
-* Changes in various commands.
-
-** `occur' output now serves as a menu.  `occur-menu' command deleted.
-
-`M-x occur' now allows you to move quickly to any of the occurrences
-listed.  Select the `*Occur*' buffer that contains the output of `occur',
-move point to the occurrence you want, and type C-c C-c.
-This will move point to the same occurrence in the buffer that the
-occurrences were found in.
-
-The command `occur-menu' is thus obsolete, and has been deleted.
-
-One way to get a list of matching lines without line numbers is to
-copy the text to another buffer and use the command `keep-lines'.
-
-** Incremental search changes.
-
-Ordinary and regexp incremental searches now have distinct default
-search strings.  Thus, regexp searches recall only previous regexp
-searches.
-
-If you exit an incremental search when the search string is empty,
-the old default search string is kept.  The default does not become
-empty.
-
-Reversing the direction of an incremental search with C-s or C-r
-when the search string is empty now does not get the default search
-string.  It leaves the search string empty.  A second C-s or C-r
-will get the default search string.  As a result, you can do a reverse
-incremental regexp search with C-M-s C-r.
-
-If you add a `*', `?' or `\|' to an incremental search regexp,
-point will back up if that is appropriate.  For example, if
-you have searched for `ab' and add a `*', point moves to the
-first match for `ab*', which may be before the match for `ab'
-that was previously found.
-
-If an incremental search is failing and you ask to repeat it,
-it will start again from the beginning of the buffer (or the end,
-if it is a backward search).
-
-The search-controlling parameters `isearch-slow-speed' and
-`isearch-slow-window-lines' have now been renamed to start with
-`search' instead of `isearch'.  Now all the parameters' names start
-with `search'.
-
-If `search-slow-window-lines' is negative, the slow search window
-is put at the top of the screen, and the absolute value or the
-negative number specifies the height of it.
-
-** Undo changes
-
-The undo command now will mark the buffer as unmodified only when it is
-identical to the contents of the visited file.
-
-** C-M-v in minibuffer.
-
-If while in the minibuffer you request help in a way that uses a
-window to display something, then until you exit the minibuffer C-M-v
-in the minibuffer window scrolls the window of help.
-
-For example, if you request a list of possible completions, C-M-v can
-be used reliably to scroll the completion list.
-
-** M-TAB command.
-
-Meta-TAB performs completion on the Emacs Lisp symbol names.  The sexp
-in the buffer before point is compared against all existing nontrivial
-Lisp symbols and completed as far as is uniquely determined by them.
-Nontrivial symbols are those with either function definitions, values
-or properties.
-
-If there are multiple possibilities for the very next character, a
-list of possible completions is displayed.
-
-** Dynamic abbreviation package.
-
-The new command Meta-/ expands an abbreviation in the buffer before point
-by searching the buffer for words that start with the abbreviation.
-
-** Changes in saving kbd macros.
-
-The commands `write-kbd-macro' and `append-kbd-macro' have been
-deleted.  The way to save a keyboard macro is to use the new command
-`insert-kbd-macro', which inserts Lisp code to define the macro as
-it is currently defined into the buffer before point.  Visit a Lisp
-file such as your Emacs init file `~/.emacs', insert the macro
-definition (perhaps deleting an old definition for the same macro)
-and then save the file.
-
-** C-x ' command.
-
-The new command C-x ' (expand-abbrev) expands the word before point as
-an abbrev, even if abbrev-mode is not turned on.
-
-** Sending to inferior Lisp.
-
-The command C-M-x in Lisp mode, which sends the current defun to
-an inferior Lisp process, now works by writing the text into a temporary
-file and actually sending only a `load'-form to load the file.
-As a result, it avoids the Unix bugs that used to strike when the
-text was above a certain length.
-
-With a prefix argument, this command now makes the inferior Lisp buffer
-appear on the screen and scrolls it so that the bottom is showing.
-
-Two variables `inferior-lisp-load-command' and `inferior-lisp-prompt',
-exist to customize these feature for different Lisp implementations.
-
-** C-x n p now disabled.
-
-The command C-x n p, a nonrecomended command which narrows to the current
-page, is now initially disabled like C-x n n.
-
-* Dealing with files.
-
-** C-x C-v generalized
-
-This command is now allowed even if the current buffer is not visiting
-a file.  As usual, it kills the current buffer and replaces it with a
-newly found file.
-
-** M-x recover-file improved; auto save file names changed.
-
-M-x recover-file now checks whether the last auto-save file is more
-recent than the real visited file before offering to read in the
-auto-save file.  If the auto-save file is newer, a directory listing
-containing the two files is displayed while you are asked whether you
-want the auto save file.
-
-Visiting a file also makes this check.  If the auto-save file is more recent,
-a message is printed suggesting that you consider using M-x recover file.
-
-Auto save file names now by default have a `#' at the end as well
-as at the beginning.  This is so that `*.c' in a shell command
-will never match auto save files.
-
-On VMS, auto save file names are made by appending `_$' at the front
-and `$' at the end.
-
-When you change the visited file name of a buffer, the auto save file
-is now renamed to belong to the new visited file name.
-
-You can customize the way auto save file names are made by redefining
-the two functions `make-auto-save-file-name' and `auto-save-file-name-p',
-both of which are defined in `files.el'.
-
-** Modifying a buffer whose file is changed on disk is detected instantly.
-
-On systems where clash detection (locking of files being edited) is
-implemented, Emacs also checks the first time you modify a buffer
-whether the file has changed on disk since it was last visited or saved.
-If it has, you are asked to confirm that you want to change the buffer.
-
-** Exiting Emacs offers to save `*mail*'.
-
-Emacs can now know about buffers that it should offer to save on exit
-even though they are not visiting files.  This is done for any buffer
-which has a non-nil local value of `buffer-offer-save'.  By default,
-Mail mode provides such a local value.
-
-** Backup file changes.
-
-If a backup file cannot be written in the directory of the visited file
-due to fascist file protection, a backup file is now written in your home
-directory as `~/%backup%~'.  Only one such file is made, ever, so only
-the most recently made such backup is available.
-
-When backup files are made by copying, the last-modification time of the
-original file is now preserved in the backup copy.
-
-** Visiting remote files.
-
-On an internet host, you can now visit and save files on any other
-internet host directly from Emacs with the commands M-x ftp-find-file
-and M-x ftp-write-file.  Specify an argument of the form HOST:FILENAME.
-Since standard internet FTP is used, the other host may be any kind
-of machine and is not required to have any special facilities.
-
-The first time any one remote host is accessed, you will be asked to
-give the user name and password for use on that host.  FTP is reinvoked
-each time you ask to use it, but previously specified user names and
-passwords are remembered automatically.
-
-** Dired `g' command.
-
-`g' in Dired mode is equivalent to M-x revert-buffer; it causes the
-current contents of the same directory to be read in.
-
-* Changes in major modes.
-
-** C mode indentation change.
-
-The binding of Linefeed is no longer changed by C mode.  It once again
-has its normal meaning, which is to insert a newline and then indent
-afterward.
-
-The old definition did one additional thing: it reindented the line
-before the new newline.  This has been removed because it made the
-command twice as slow.  The only time it was really useful was after the
-insertion of an `else', since the fact of starting with `else' may change
-the way that line is indented.  Now you will have to type TAB again
-yourself to reindent the `else' properly.
-
-If the variable `c-tab-always-indent' is set to `nil', the TAB command
-in C mode, with no argument, will just insert a tab character if there
-is non-whitespace preceding point on the current line.  Giving it a
-prefix argument will force reindentation of the line (as well as
-of the compound statement that begins after point, if any).
-
-** Fortran mode now exists.
-
-This mode provides commands for motion and indentation of Fortran code,
-plus built-in abbrevs for Fortran keywords.  For details, see the manual
-or the on-line documentation of the command `fortran-mode'.
-
-** Scribe mode now exists.
-
-This mode does something useful for editing files of Scribe input.
-It is used automatically for files with names ending in ".mss".
-
-** Modula2 and Prolog modes now exist.
-
-These modes are for editing programs in the languages of the same names.
-They can be selected with M-x modula-2-mode and M-x prolog-mode.
-
-** Telnet mode changes.
-
-The telnet mode special commands have now been assigned to C-c keys.
-Most of them are the same as in Shell mode.
-
-** Picture mode changes.
-
-The special picture-mode commands to specify the direction of cursor
-motion after insertion have been moved to C-c keys.  The commands to
-specify diagonal motion were already C-c keys; they are unchanged.
-The keys to specify horizontal or vertical motion are now
-C-c < (left), C-c > (right), C-c ^ (up) and C-c . (down).
-
-** Nroff mode comments.
-
-Comments are now supported in Nroff mode.  The standard comment commands
-such as M-; and C-x ; know how to insert, align and delete comments
-that start with backslash-doublequote.
-
-** LaTeX mode.
-
-LaTeX mode now exists.  Use M-x latex-mode to select this mode, and
-M-x plain-tex-mode to select the previously existing mode for Plain
-TeX.  M-x tex-mode attempts to examine the contents of the buffer and
-choose between latex-mode and plain-tex-mode accordingly; if the
-buffer is empty or it cannot tell, the variable `TeX-default-mode'
-controls the choice.  Its value should be the symbol for the mode to
-be used.
-
-The facilities for running TeX on all or part of the buffer
-work with LaTeX as well.
-
-Some new commands available in both modes:
-
-C-c C-l		recenter the window showing the TeX output buffer
-		 so most recent line of output can be seen.
-C-c C-k		kill the TeX subprocess.
-C-c C-q		show the printer queue.
-C-c C-f		close a block (appropriate for LaTeX only).
-		 If the current line contains a \begin{...},
-		 this inserts an \end{...} on the following line
-		 and puts point on a blank line between them.
-
-** Outline mode changes.
-
-Invisible lines in outline mode are now indicated by `...' at the
-end of the previous visible line.
-
-The special outline heading motion commands are now all on C-c keys.
-A few new ones have been added.  Here is a full list:
-
-C-c C-n   Move to next visible heading (formerly M-})
-C-c C-p   Move to previous visible heading (formerly M-{)
-C-c C-f   Move to next visible heading at the same level.
-	   Thus, if point is on a level-2 heading line,
-	   this command moves to the next visible level-2 heading.
-C-c C-b   Move to previous visible heading at the same level.
-C-c C-u   Move up to previous visible heading at a higher level.
-
-The variable `outline-regexp' now controls recognition of heading lines.
-Any line whose beginning matches this regexp is a heading line.
-The depth in outline structure is determined by the length of
-the string that matches.
-
-A line starting with a ^L (formfeed) is now by default considered
-a header line.
-
-* Mail reading and sending.
-
-** MH-E changes.
-
-MH-E has been extensively modified and improved since the v17 release.
-It contains many new features, including commands to: extracted failed
-messages, kill a draft message, undo changes to a mail folder, monitor
-delivery of a letter, print multiple messages, page digests backwards,
-insert signatures, and burst digests.  Also, many commands have been
-made to able to deal with named sequences of messages, instead of
-single messages.  MH-E also has had numerous bugs fixed and commands
-made to run faster.  Furthermore, its keybindings have been changed to
-be compatible with Rmail and the rest of GNU Emacs.
-
-** Mail mode changes.
-
-The C-c commands of mail mode have been rearranged:
-
-C-c s, C-c c, C-c t and C-c b (move point to various header fields)
-have been reassigned as C-c C-f C-s, C-c C-f C-c, C-c C-f C-t and C-c
-C-f C-b.  C-c C-f is for "field".
-
-C-c y, C-c w and C-c q have been changed to C-c C-y, C-c C-w and C-c C-q.
-
-Thus, C-c LETTER is always unassigned.
-
-** Rmail C-r command changed to w.
-
-The Rmail command to edit the current message is now `w'.  This change
-has been made because people frequently type C-r while in Rmail hoping
-to do a reverse incremental search.  That now works.
-
-* Rnews changes.
-
-** Caesar rotation added.
-
-The function news-caesar-buffer-body performs the rot13 code on the
-body of a news message.  You can also specify the number to rotate by,
-as a prefix argument.  The function is bound to C-c C-r in both
-News mode and News Reply mode.
-
-** rmail-output command added.
-
-The C-o command has been bound to rmail-output in news-mode.
-This allows one to append an article to a file which is in either Unix
-mail or RMAIL format.
-
-** news-reply-mode changes.
-
-The C-c commands of news reply mode have been rearranged and changed,
-so that C-c LETTER is always unassigned:
-
-C-c y, C-c w and C-c q have been changed to C-c C-y, C-c C-w and C-c C-q.
-
-C-c c, C-c t, and C-c b (move to various mail header fields) have been
-deleted (they make no sense for posting and replying to USENET).
-
-C-c s (move to Subject: header field) has been reassigned as C-c C-f
-C-s.  C-c C-f is for "field".  Several additional move to news header
-field commands have been added.
-
-The local news-reply-mode bindings now look like this:
-
-C-c C-s  news-inews (post the message)    C-c C-c  news-inews
-C-c C-f	 move to a header field (and create it if there isn't):
-	 C-c C-f C-n  move to Newsgroups:	C-c C-f C-s  move to Subj:
-	 C-c C-f C-f  move to Followup-To:      C-c C-f C-k  move to Keywords:
-	 C-c C-f C-d  move to Distribution:	C-c C-f C-a  move to Summary:
-C-c C-y  news-reply-yank-original (insert current message, in NEWS).
-C-c C-q  mail-fill-yanked-message (fill what was yanked).
-C-c C-r  caesar rotate all letters by 13 places in the article's body (rot13).
-
-* Changes in tags handling.
-
-** M-. (`find-tag') and similar commands now look first for an exact
-match in the tags table, and try substring matches only afterward.
-
-** The new command `find-tag-regexp' visits successively the tags that
-match a specified regular expression.
-
-** You can now use more than one tags table.  Using `visit-tags-table'
-to load a new tags table does not discard the other tables previously
-loaded.  The other tags commands use all the tags tables that are loaded;
-the first tags table used is the one that mentions the current visited file.
-
-** Tags tables can now be told to "include" other tags tables.  This means
-the tags table gives the file names of other tags tables.  Tags command
-then search included tags tables after the including table (but before any
-other tags tables you have loaded).  Included tags tables can make it much
-easier and more efficient to maintain a tags table for a large package with
-many subdirectories--there is one tags table for each subdirectory, and a
-master tags table that includes each subdirectory table.  You use `-i'
-options to `etags' when creating the tags table to give the file names of
-the included tables.
-
-** You can now use the tags table for completion of names during
-ordinary editing.  The command M-TAB (except in Emacs Lisp mode)
-completes the identifier in the buffer before point, using the set of
-all tags as the list of possible completions.
-
-** `tags-query-replace' and `tags-search' changes.
-
-These functions no longer permanently create buffers for files that
-are searched but that do not contain any matches for the search
-pattern.
-
-* Existing Emacs usable as a server.
-
-Programs such as mailers that invoke "the editor" as an inferior
-to edit some text can now be told to use an existing Emacs process
-instead of creating a new editor.
-
-To do this, you must have an Emacs process running and capable of
-doing terminal I/O at the time you want to invoke it.  This means that
-either you are using a window system and give Emacs a separate window
-or you run the other programs as inferiors of Emacs (such as, using
-M-x shell).
-
-First prepare the existing Emacs process by loading the `server'
-library and executing M-x server-start.  (Your .emacs can do this
-automatically.)
-
-Now tell the other programs to use, as "the editor", the Emacs client
-program (etc/emacsclient, located in the same directory as this file).
-This can be done by setting the environment variable EDITOR.
-
-When another program invokes the emacsclient as "the editor", the
-client actually transfers the file names to be edited to the existing
-Emacs, which automatically visits the files.
-
-When you are done editing a buffer for a client, do C-x # (server-edit).
-This marks that buffer as done, and selects the next buffer that the client
-asked for.  When all the buffers requested by a client are marked in this
-way, Emacs tells the client program to exit, so that the program that
-invoked "the editor" will resume execution.
-
-You can only have one server Emacs at a time, but multiple client programs
-can put in requests at the same time.
-
-The client/server work only on Berkeley Unix, since they use the Berkeley
-sockets mechanism for their communication.
-
-Changes in Lisp programming in Emacs version 18.
-
-* Init file changes.
-
-** Suffixes no longer accepted on `.emacs'.
-
-Emacs will no longer load a file named `.emacs.el' or `emacs.elc'
-in place of `.emacs'.  This is so that it will take less time to
-find `.emacs'.  If you want to compile your init file, give it another
-name and make `.emacs' a link to the `.elc' file, or make it contain
-a call to `load' to load the `.elc' file.
-
-** `default-profile' renamed to `default', and loaded after `.emacs'.
-
-It used to be the case that the file `default-profile' was loaded if
-and only if `.emacs' was not found.
-
-Now the name `default-profile' is not used at all.  Instead, a library
-named `default' is loaded after the `.emacs' file.  `default' is loaded
-whether the `.emacs' file exists or not.  However, loading of `default'
-can be prevented if the `.emacs' file sets `inhibit-default-init' to non-nil.
-
-In fact, you would call the default file `default.el' and probably would
-byte-compile it to speed execution.
-
-Note that for most purposes you are better off using a `site-init' library
-since that will be loaded before the runnable Emacs is dumped.  By using
-a `site-init' library, you avoid taking up time each time Emacs is started.
-
-** inhibit-command-line has been eliminated.
-
-This variable used to exist for .emacs files to set.  It has been
-eliminated because you can get the same effect by setting
-command-line-args to nil and setting inhibit-startup-message to t.
-
-* `apply' is more general.
-
-`apply' now accepts any number of arguments.  The first one is a function;
-the rest are individual arguments to pass to that function, except for the
-last, which is a list of arguments to pass.
-
-Previously, `apply' required exactly two arguments.  Its old behavior
-follows as a special case of the new definition.
-
-* New code-letter for `interactive'.
-
-(interactive "NFoo: ") is like (interactive "nFoo: ") in reading
-a number using the minibuffer to serve as the argument; however,
-if a prefix argument was specified, it uses the prefix argument
-value as the argument, and does not use the minibuffer at all.
-
-This is used by the `goto-line' and `goto-char' commands.
-
-* Semantics of variables.
-
-** Built-in per-buffer variables improved.
-
-Several built-in variables which in the past had a different value in
-each buffer now behave exactly as if `make-variable-buffer-local' had
-been done to them.
-
-These variables are `tab-width', `ctl-arrow', `truncate-lines',
-`fill-column', `left-margin', `mode-line-format', `abbrev-mode',
-`overwrite-mode', `case-fold-search', `auto-fill-hook',
-`selective-display', `selective-display-ellipses'.
-
-To be precise, each variable has a default value which shows through
-in most buffers and can be accessed with `default-value' and set with
-`set-default'.  Setting the variable with `setq' makes the variable
-local to the current buffer.  Changing the default value has retroactive
-effect on all buffers in which the variable is not local.
-
-The variables `default-case-fold-search', etc., are now obsolete.
-They now refer to the default value of the variable, which is not
-quite the same behavior as before, but it should enable old init files
-to continue to work.
-
-** New per-buffer variables.
-
-The variables `fill-prefix', `comment-column' and `indent-tabs-mode'
-are now per-buffer.  They work just like `fill-column', etc.
-
-** New function `setq-default'.
-
-`setq-default' sets the default value of a variable, and uses the
-same syntax that `setq' accepts: the variable name is not evaluated
-and need not be quoted.
-
-`(setq-default case-fold-search nil)' would make searches case-sensitive
-in all buffers that do not have local values for `case-fold-search'.
-
-You can set multiple variables sequentially, each with its own value,
-in `setq-default' just as in `setq'.
-
-** Functions `global-set' and `global-value' deleted.
-
-These functions were never used except by mistake by users expecting
-the functionality of `set-default' and `default-value'.
-
-* Changes in defaulting of major modes.
-
-When `default-major-mode' is `nil', new buffers are supposed to
-get their major mode from the buffer that is current.  However,
-certain major modes (such as Dired mode, Rmail mode, Rmail Summary mode,
-and others) are not reasonable to use in this way.
-
-Now such modes' names have been given non-`nil' `mode-class' properties.
-If the current buffer's mode has such a property, Fundamental mode is
-used as the default for newly created buffers.
-
-* `where-is-internal' requires additional arguments.
-
-This function now accepts three arguments, two of them required:
-DEFINITION, the definition to search for; LOCAL-KEYMAP, the keymap
-to use as the local map when doing the searching, and FIRST-ONLY,
-which is nonzero to return only the first key found.
-
-This function returns a list of keys (strings) whose definitions
-(in the LOCAL-KEYMAP or the current global map) are DEFINITION.
-
-If FIRST-ONLY is non-nil, it returns a single key (string).
-
-This function has changed incompatibly in that now two arguments
-are required when previously only one argument was allowed.  To get
-the old behavior of this function, write `(current-local-map)' as
-the expression for the second argument.
-
-The incompatibility is sad, but `nil' is a legitimate value for the
-second argument (it means there is no local keymap), so it cannot also
-serve as a default meaning to use the current local keymap.
-
-* Abbrevs with hooks.
-
-When an abbrev defined with a hook is expanded, it now performs the
-usual replacement of the abbrev with the expansion before running the
-hook.  Previously the abbrev itself was deleted but the expansion was
-not inserted.
-
-* Function `scan-buffer' deleted.
-
-Use `search-forward' or `search-backward' in place of `scan-buffer'.
-You will have to rearrange the arguments.
-
-* X window interface improvements.
-
-** Detect release of mouse buttons.
-
-Button-up events can now be detected.  See the file `lisp/x-mouse.el'
-for details.
-
-** New pop-up menu facility.
-
-The new function `x-popup-menu' pops up a menu (in a X window)
-and returns an indication of which selection the user made.
-For more information, see its self-documentation.
-
-* M-x disassemble.
-
-This command prints the disassembly of a byte-compiled Emacs Lisp function.
-
-Would anyone like to interface this to the debugger?
-
-* `insert-buffer-substring' can insert part of the current buffer.
-
-The old restriction that the text being inserted had to come from
-a different buffer is now lifted.
-
-When inserting text from the current buffer, the text to be inserted
-is determined from the specified bounds before any copying takes place.
-
-* New function `substitute-key-definition'.
-
-This is a new way to replace one command with another command as the
-binding of whatever keys may happen to refer to it.
-
-(substitute-key-definition OLDDEF NEWDEF KEYMAP) looks through KEYMAP
-for keys defined to run OLDDEF, and rebinds those keys to run NEWDEF
-instead.
-
-* New function `insert-char'.
-
-Insert a specified character, a specified number of times.
-
-* `mark-marker' changed.
-
-When there is no mark, this now returns a marker that points
-nowhere, rather than `nil'.
-
-* `ding' accepts argument.
-
-When given an argument, the function `ding' does not terminate
-execution of a keyboard macro.  Normally, `ding' does terminate
-all macros that are currently executing.
-
-* New function `minibuffer-depth'.
-
-This function returns the current depth in minibuffer activations.
-The value is zero when the minibuffer is not in use.
-Values greater than one are possible if the user has entered the
-minibuffer recursively.
-
-* New function `documentation-property'.
-
-(documentation-property SYMBOL PROPNAME) is like (get SYMBOL PROPNAME),
-except that if the property value is a number `documentation-property'
-will take that number (or its absolute value) as a character position
-in the DOC file and return the string found there.
-
-(documentation-property VAR 'variable-documentation) is the proper
-way for a Lisp program to get the documentation of variable VAR.
-
-* New documentation-string expansion feature.
-
-If a documentation string (for a variable or function) contains text
-of the form `\<FOO>', it means that all command names specified in
-`\[COMMAND]' construct from that point on should be turned into keys
-using the value of the variable FOO as the local keymap.  Thus, for example,
-
-  `\<emacs-lisp-mode-map>\[eval-defun] evaluates the defun containing point.'
-
-will expand into
-
-  "ESC C-x evaluates the defun containing point."
-
-regardless of the current major mode, because ESC C-x is defined to
-run `eval-defun' in the keymap `emacs-lisp-mode-map'.  The effect is
-to show the key for `eval-defun' in Emacs Lisp mode regardless of the
-current major mode.
-
-The `\<...>' construct applies to all `\[...]' constructs that follow it,
-up to the end of the documentation string or the next `\<...>'.
-
-Without `\<...>', the keys for commands specified in `\[...]' are found
-in the current buffer's local map.
-
-The current global keymap is always searched second, whether `\<...>'
-has been used or not.
-
-* Multiple hooks allowed in certain contexts.
-
-The old hook variables `find-file-hook', `find-file-not-found-hook' and
-`write-file-hook' have been replaced.
-
-The replacements are `find-file-hooks', `find-file-not-found-hooks'
-and `write-file-hooks'.  Each holds a list of functions to be called;
-by default, `nil', for no functions.  The functions are called in
-order of appearance in the list.
-
-In the case of `find-file-hooks', all the functions are executed.
-
-In the case of `find-file-not-found-hooks', if any of the functions
-returns non-`nil', the rest of the functions are not called.
-
-In the case of `write-file-hooks', if any of the functions returns
-non-`nil', the rest of the functions are not called, and the file is
-considered to have been written already; so actual writing in the
-usual way is not done.  If `write-file-hooks' is local to a buffer,
-it is set to its global value if `set-visited-file-name' is called
-(and thus by C-x C-w as well).
-
-`find-file-not-found-hooks' and `write-file-hooks' can be used
-together to implement editing of files that are not stored as Unix
-files: stored in archives, or inside version control systems, or on
-other machines running other operating systems and accessible via ftp.
-
-* New hooks for suspending Emacs.
-
-Suspending Emacs runs the hook `suspend-hook' before suspending
-and the hook `suspend-resume-hook' if the suspended Emacs is resumed.
-Running a hook is done by applying the variable's value to no arguments
-if the variable has a non-`nil' value.  If `suspend-hook' returns
-non-`nil', then suspending is inhibited and so is running the
-`suspend-resume-hook'.  The non-`nil' value means that the `suspend-hook'
-has done whatever suspending is required.
-
-* Disabling commands can print a special message.
-
-A command is disabled by giving it a non-`nil' `disabled' property.
-Now, if this property is a string, it is included in the message
-printed when the user tries to run the command.
-
-* Emacs can open TCP connections.
-
-The function `open-network-stream' opens a TCP connection to
-a specified host and service.  Its value is a Lisp object that represents
-the connection.  The object is a kind of "subprocess", and I/O are
-done like I/O to subprocesses.
-
-* Display-related changes.
-
-** New mode-line control features.
-
-The display of the mode line used to be controlled by a format-string
-that was the value of the variable `mode-line-format'.
-
-This variable still exists, but it now allows more general values,
-not just strings.  Lists, cons cells and symbols are also meaningful.
-
-The mode line contents are created by outputting various mode elements
-one after the other.  Here are the kinds of objects that can be
-used as mode elements, and what they do in the display:
-
-  string        the contents of the string are output to the mode line,
-		and %-constructs are replaced by other text.
-
-  t or nil	ignored; no output results.
-
-  symbol	the symbol's value is used.  If the value is a string,
-		the string is output verbatim to the mode line
-		(so %-constructs are not interpreted).  Otherwise,
-		the symbol's value is processed as a mode element.
-
-  list (whose first element is a string or list or cons cell)
-		the elements of the list are treated as as mode elements,
-		so that the output they generate is concatenated,
-
-  list (whose car is a symbol)
-		if the symbol's value is non-nil, the second element of the
-		list is treated as a mode element.  Otherwise, the third
-		element (if any) of the list is treated as a mode element.
-
-  cons (whose car is a positive integer)
-		the cdr of the cons is used as a mode element, but
-		the text it produces is padded, if necessary, to have
-		at least the width specified by the integer.
-
-  cons (whose car is a negative integer)
-		the cdr of the cons is used as a mode element, but
-		the text it produces is truncated, if necessary, to have
-		at most the width specified by the integer.
-
-There is always one mode element to start with, that being the value of
-`mode-line-format', but if this value is a list then it leads to several
-more mode elements, which can lead to more, and so on.
-
-There is one new %-construct for mode elements that are strings:
-`%n' displays ` Narrow' for a buffer that is narrowed.
-
-The default value of `mode-line-format' refers to several other variables.
-These variables are `mode-name', `mode-line-buffer-identification',
-`mode-line-process', `mode-line-modified', `global-mode-string' and
-`minor-mode-alist'.  The first four are local in every buffer in which they
-are changed from the default.
-
-mode-name	Name of buffer's major mode.  Local in every buffer.
-
-mode-line-buffer-identification
-		Normally the list ("Emacs: %17b"), it is responsible
-		for displaying text to indicate what buffer is being shown
-		and what kind of editing it is doing.  `Emacs' means
-		that a file of characters is being edited.  Major modes
-		such as Info and Dired which edit or view other kinds
-		of data often change this value.  This variables becomes
-		local to the current buffer if it is setq'd.
-
-mode-line-process
-		Normally nil, this variable is responsible for displaying
-		information about the process running in the current buffer.
-		M-x shell-mode and M-x compile alter this variable.
-
-mode-line-modified
-		This variable is responsible for displaying the indication
-		of whether the current buffer is modified or read-only.
-		By default its value is `("--%*%*-")'.
-
-minor-mode-alist
-		This variable is responsible for displaying text for those
-		minor modes that are currently enabled.  Its value
-		is a list of elements of the form (VARIABLE STRING),
-		where STRING is to be displayed if VARIABLE's value
-		(in the buffer whose mode line is being displayed)
-		is non-nil.  This variable is not made local to particular
-		buffers, but loading some libraries may add elements to it.
-
-global-mode-string
-		This variable is used to display the time, if you ask
-		for that.
-
-The idea of these variables is to eliminate the need for major modes
-to alter mode-line-format itself.
-
-** `window-point' valid for selected window.
-
-The value returned by `window-point' used to be incorrect when its
-argument was the selected window.  Now the value is correct.
-
-** Window configurations may be saved as Lisp objects.
-
-The function `current-window-configuration' returns a special type of
-Lisp object that represents the current layout of windows: the
-sizes and positions of windows, which buffers appear in them, and
-which parts of the buffers appear on the screen.
-
-The function `set-window-configuration' takes one argument, which must
-be a window configuration object, and restores that configuration.
-
-** New hook `temp-output-buffer-show-hook'.
-
-This hook allows you to control how help buffers are displayed.
-Whenever `with-output-to-temp-buffer' has executed its body and wants
-to display the temp buffer, if this variable is bound and non-`nil'
-then its value is called with one argument, the temp buffer.
-The hook function is solely responsible for displaying the buffer.
-The standard manner of display--making the buffer appear in a window--is
-used only if there is no hook function.
-
-** New function `minibuffer-window'.
-
-This function returns the window used (sometimes) for displaying
-the minibuffer.  It can be used even when the minibuffer is not active.
-
-** New feature to `next-window'.
-
-If the optional second argument is neither `nil' nor `t', the minibuffer
-window is omitted from consideration even when active; if the starting
-window was the last non-minibuffer window, the value will be the first
-non-minibuffer window.
-
-** New variable `minibuffer-scroll-window'.
-
-When this variable is non-`nil', the command `scroll-other-window'
-uses it as the window to be scrolled.  Displays of completion-lists
-set this variable to the window containing the display.
-
-** New argument to `sit-for'.
-
-A non-nil second argument to `sit-for' means do not redisplay;
-just wait for the specified time or until input is available.
-
-** Deleted function `set-minor-mode'; minor modes must be changed.
-
-The function `set-minor-mode' has been eliminated.  The display
-of minor mode names in the mode line is now controlled by the
-variable `minor-mode-alist'.  To specify display of a new minor
-mode, it is sufficient to add an element to this list.  Once that
-is done, you can turn the mode on and off just by setting a variable,
-and the display will show its status automatically.
-
-** New variable `cursor-in-echo-area'.
-
-If this variable is non-nil, the screen cursor appears on the
-last line of the screen, at the end of the text displayed there.
-
-Binding this variable to t is useful at times when reading single
-characters of input with `read-char'.
-
-** New per-buffer variable `selective-display-ellipses'.
-
-If this variable is non-nil, an ellipsis (`...') appears on the screen
-at the end of each text line that is followed by invisible text.
-
-If this variable is nil, no ellipses appear.  Then there is no sign
-on the screen that invisible text is present.
-
-Text is made invisible under the control of the variable
-`selective-display'; this is how Outline mode and C-x $ work.
-
-** New variable `no-redraw-on-reenter'.
-
-If you set this variable non-nil, Emacs will not clear the screen when
-you resume it after suspending it.  This is for the sake of terminals
-with multiple screens of memory, where the termcap entry has been set
-up to switch between screens when Emacs is suspended and resumed.
-
-** New argument to `set-screen-height' or `set-screen-width'.
-
-These functions now take an optional second argument which says
-what significance the newly specified height or width has.
-
-If the argument is nil, or absent, it means that Emacs should
-believe that the terminal height or width really is as just specified.
-
-If the argument is t, it means Emacs should not believe that the
-terminal really is this high or wide, but it should use the
-specific height or width as the number of lines or columns to display.
-Thus, you could display only 24 lines on a screen known to have 48 lines.
-
-What practical difference is there between using only 24 lines for display
-and really believing that the terminal has 24 lines?
-
-1. The "real" height of the terminal says what the terminal command
-to move the cursor to the last line will do.
-
-2. The "real" height of the terminal determines how much padding is
-needed.
-
-* File-related changes.
-
-** New parameter `backup-by-copying-when-mismatch'.
-
-If this variable is non-`nil', then when Emacs is about to save a
-file, it will create the backup file by copying if that would avoid
-changing the file's uid or gid.
-
-The default value of this variable is `nil', because usually it is
-useful to have the uid of a file change according to who edited it
-last.  I recommend thet this variable be left normally `nil' and
-changed with a local variables list in those particular files where
-the uid needs to be preserved.
-
-** New parameter `file-precious-flag'.
-
-If this variable is non-`nil', saving the buffer tries to avoid
-leaving an incomplete file due to disk full or other I/O errors.
-It renames the old file before saving.  If saving is successful,
-the renamed file is deleted; if saving gets an error, the renamed
-file is renamed back to the name you visited.
-
-Backups are always made by copying for such files.
-
-** New variable `buffer-offer-save'.
-
-If the value of this variable is non-`nil' in a buffer then exiting
-Emacs will offer to save the buffer (if it is modified and nonempty)
-even if the buffer is not visiting a file.  This variable is
-automatically made local to the current buffer whenever it is set.
-
-** `rename-file', `copy-file', `add-name-to-file' and `make-symbolic-link'.
-
-The third argument to these functions used to be `t' or `nil'; `t'
-meaning go ahead even if the specified new file name already has a file,
-and `nil' meaning to get an error.
-
-Now if the third argument is a number it means to ask the user for
-confirmation in this case.
-
-** New optional argument to `copy-file'.
-
-If `copy-file' receives a non-nil fourth argument, it attempts
-to give the new copy the same time-of-last-modification that the
-original file has.
-
-** New function `file-newer-than-file-p'.
-
-(file-newer-than-file-p FILE1 FILE2) returns non-nil if FILE1 has been
-modified more recently than FILE2.  If FILE1 does not exist, the value
-is always nil; otherwise, if FILE2 does not exist, the value is t.
-This is meant for use when FILE2 depends on FILE1, to see if changes
-in FILE1 make it necessary to recompute FILE2 from it.
-
-** Changed function `file-exists-p'.
-
-This function is no longer the same as `file-readable-p'.
-`file-exists-p' can now return t for a file that exists but which
-the fascists won't allow you to read.
-
-** New function `file-locked-p'.
-
-This function receives a file name as argument and returns `nil'
-if the file is not locked, `t' if locked by this Emacs, or a
-string giving the name of the user who has locked it.
-
-** New function `file-name-sans-versions'.
-
-(file-name-sans-versions NAME) returns a substring of NAME, with any
-version numbers or other backup suffixes deleted from the end.
-
-** New functions for directory names.
-
-Although a directory is really a kind of file, specifying a directory
-uses a somewhat different syntax from specifying a file.
-In Emacs, a directory name is used as part of a file name.
-
-On Unix, the difference is small: a directory name ends in a slash,
-while a file name does not: thus, `/usr/rms/' to name a directory,
-while `/usr/rms' names the file which holds that directory.
-
-On VMS, the difference is considerable: `du:[rms.foo]' specifies a
-directory, but the name of the file that holds that directory is
-`du:[rms]foo.dir'.
-
-There are two new functions for converting between directory names
-and file names.  `directory-file-name' takes a directory name and
-returns the name of the file in which that directory's data is stored.
-`file-name-as-directory' takes the name of a file and returns
-the corresponding directory name.  These always understand Unix file name
-syntax; on VMS, they understand VMS syntax as well.
-
-For example, (file-name-as-directory "/usr/rms") returns "/usr/rms/"
-and (directory-file-name "/usr/rms/") returns "/usr/rms".
-On VMS, (file-name-as-directory "du:[rms]foo.dir") returns "du:[rms.foo]"
-and (directory-file-name "du:[rms.foo]") returns "du:[rms]foo.dir".
-
-** Value of `file-attributes' changed.
-
-The function file-attributes returns a list containing many kinds of
-information about a file.  Now the list has eleven elements.
-
-The tenth element is `t' if deleting the file and creating another
-file of the same name would result in a change in the file's group;
-`nil' if there would be no change.  You can also think of this as
-comparing the file's group with the default group for files created in
-the same directory by you.
-
-The eleventh element is the inode number of the file.
-
-** VMS-only function `file-name-all-versions'.
-
-This function returns a list of all the completions, including version
-number, of a specified version-number-less file name.  This is like
-`file-name-all-completions', except that the latter returns values
-that do not include version numbers.
-
-** VMS-only variable `vms-stmlf-recfm'.
-
-On a VMS system, if this variable is non-nil, Emacs will give newly
-created files the record format `stmlf'.  This is necessary for files
-that must contain lines of arbitrary length, such as compiled Emacs
-Lisp.
-
-When writing a new version of an existing file, Emacs always keeps
-the same record format as the previous version; so this variable has
-no effect.
-
-This variable has no effect on Unix systems.
-
-** `insert-file-contents' on an empty file.
-
-This no longer sets the buffer's "modified" flag.
-
-** New function (VMS only) `define-logical-name':
-
-(define-logical-name LOGICAL TRANSLATION) defines a VMS logical name
-LOGICAL whose translation is TRANSLATION.  The new name applies to
-the current process only.
-
-** Deleted variable `ask-about-buffer-names'.
-
-If you want buffer names for files to be generated in a special way,
-you must redefine `create-file-buffer'.
-
-* Subprocess-related changes.
-
-** New function `process-list'.
-
-This function takes no arguments and returns a list of all
-of Emacs's asynchronous subprocesses.
-
-** New function `process-exit-status'.
-
-This function, given a process, process name or buffer as argument,
-returns the exit status code or signal number of the process.
-If the process has not yet exited or died, this function returns 0.
-
-** Process output ignores `buffer-read-only'.
-
-Output from a process will go into the process's buffer even if the
-buffer is read only.
-
-** Switching buffers in filter functions and sentinels.
-
-Emacs no longer saves and restore the current buffer around calling
-the filter and sentinel functions, so these functions can now
-permanently alter the selected buffer in a straightforward manner.
-
-** Specifying environment variables for subprocesses.
-
-When a subprocess is started with `start-process' or `call-process',
-the value of the variable `process-environment' is taken to
-specify the environment variables to give the subprocess.  The
-value should be a list of strings, each of the form "VAR=VALUE".
-
-`process-environment' is initialized when Emacs starts up
-based on Emacs's environment.
-
-** New variable `process-connection-type'.
-
-If this variable is `nil', when a subprocess is created, Emacs uses
-a pipe rather than a pty to communicate with it.  Normally this
-variable is `t', telling Emacs to use a pty if ptys are supported
-and one is available.
-
-** New function `waiting-for-user-input-p'.
-
-This function, given a subprocess as argument, returns `t' if that
-subprocess appears to be waiting for input sent from Emacs,
-or `nil' otherwise.
-
-** New hook `shell-set-directory-error-hook'.
-
-The value of this variable is called, with no arguments, whenever
-Shell mode gets an error trying to keep track of directory-setting
-commands (such as `cd' and `pushd') used in the shell buffer.
-
-* New functions `user-uid' and `user-real-uid'.
-
-These functions take no arguments and return, respectively,
-the effective uid and the real uid of the Emacs process.
-The value in each case is an integer.
-
-* New variable `print-escape-newlines' controls string printing.
-
-If this variable is non-`nil', then when a Lisp string is printed
-by the Lisp printing function `prin1' or `print', newline characters
-are printed as `\n' rather than as a literal newline.
-
-* New function `sysnetunam' on HPUX.
-
-This function takes two arguments, a network address PATH and a
-login string LOGIN, and executes the system call `netunam'.
-It returns `t' if the call succeeds, otherwise `nil'.
-
-News regarding installation:
-
-* Many `s-...' file names changed.
-
-Many `s-...' files have been renamed.  All periods in such names,
-except the ones just before the final `h', have been changed to
-hyphens.  Thus, `s-bsd4.2.h' has been renamed to `s-bsd4-2.h'.
-
-This is so a Unix distribution can be moved mechanically to VMS.
-
-* `DOCSTR...' file now called `DOC-...'.
-
-The file of on-line documentation strings, that used to be
-`DOCSTR.mm.nn.oo' in this directory, is now called `DOC-mm.nn.oo'.
-This is so that it can port to VMS using the standard conventions
-for translating filenames for VMS.
-
-This file also now contains the doc strings for variables as
-well as functions.
-
-* Emacs no longer uses floating point arithmetic.
-
-This may make it easier to port to some machines.
-
-* Macros `XPNTR' and `XSETPNTR'; flag `DATA_SEG_BITS'.
-
-These macros exclusively are used to unpack a pointer from a Lisp_Object
-and to insert a pointer into a Lisp_Object.  Redefining them may help
-port Emacs to machines in which all pointers to data objects have
-certain high bits set.
-
-If `DATA_SEG_BITS' is defined, it should be a number which contains
-the high bits to be inclusive or'ed with pointers that are unpacked.
-
-* New flag `HAVE_X_MENU'.
-
-Define this flag in `config.h' in addition to `HAVE_X_WINDOWS'
-to enable use of the Emacs interface to X Menus.  On some operating
-systems, the rest of the X interface works properly but X Menus
-do not work; hence this separate flag.  See the file `src/xmenu.c'
-for more information.
-
-* Macros `ARRAY_MARK_FLAG' and `DONT_COPY_FLAG'.
-
-* `HAVE_ALLOCA' prevents assembly of `alloca.s'.
-
-* `SYSTEM_MALLOC' prevents use of GNU `malloc.c'.
-
-SYSTEM_MALLOC, if defined, means use the system's own `malloc' routines
-rather than those that come with Emacs.
-
-Use this only if absolutely necessary, because if it is used you do
-not get warnings when space is getting low.
-
-* New flags to control unexec.
-
-See the file `unexec.c' for a long comment on the compilation
-switches that suffice to make it work on many machines.
-
-* `PNTR_COMPARISON_TYPE'
-
-Pointers that need to be compared for ordering are converted to this type
-first.  Normally this is `unsigned int'.
-
-* `HAVE_VFORK', `HAVE_DUP2' and `HAVE_GETTIMEOFDAY'.
-
-These flags just say whether certain system calls are available.
-
-* New macros control compiler switches, linker switches and libraries.
-
-The m- and s- files can now control in a modular fashion the precise
-arguments passed to `cc' and `ld'.
-
-LIBS_STANDARD defines the standard C libraries.  Default is `-lc'.
-LIBS_DEBUG defines the extra libraries to use when debugging.  Default `-lg'.
-LIBS_SYSTEM can be defined by the s- file to specify extra libraries.
-LIBS_MACHINE can be defined by the m- file to specify extra libraries.
-LIBS_TERMCAP defines the libraries for Termcap or Terminfo.
-  It is defined by default in a complicated fashion but the m- or s- file
-  can override it.
-
-LD_SWITCH_SYSTEM can be defined by the s- file to specify extra `ld' switches.
-  The default is `-X' on BSD systems except those few that use COFF object files.
-LD_SWITCH_MACHINE can be defined by the m- file to specify extra `ld' switches.
-
-C_DEBUG_SWITCH defines the switches to give `cc' when debugging.  Default `-g'.
-C_OPTIMIZE_SWITCH defines the switches to give `cc' to optimize.  Default `-O'.
-C_SWITCH_MACHINE can be defined by the m- file to specify extra `cc' switches.
-
-For older news, see the file ONEWS.3.
-
-----------------------------------------------------------------------
-Copyright information:
-
-Copyright (C) 1992 Free Software Foundation, Inc.
-
-   Permission is granted to anyone to make or distribute verbatim copies
-   of this document as received, in any medium, provided that the
-   copyright notice and this permission notice are preserved,
-   thus giving the recipient permission to redistribute in turn.
-
-   Permission is granted to distribute modified versions
-   of this document, or of portions of it,
-   under the above conditions, provided also that they
-   carry prominent notices stating who last changed them.
-
-Local variables:
-mode: text
-end:
-
-arch-tag: 373312be-99a8-46d5-bcb0-a62577ab5045