]> code.delx.au - gnu-emacs/blobdiff - etc/NEWS
*** empty log message ***
[gnu-emacs] / etc / NEWS
index 7c9d68d6e36c0884202036e5ac15bb32cd4c8aeb..d0c4c4734de8d8806502760bc10378e8867462a8 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -5,6 +5,353 @@ See the end for copying conditions.
 Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
 For older news, see the file ONEWS
 
+Temporary note: +++ indicates that the appropriate manual
+has already been updated.  --- means no change in the manuals
+is called for.
+\f
+* Installation Changes in Emacs 21.3
+
+** Emacs now supports new configure options `--program-prefix',
+`--program-suffix' and `--program-transform-name' that affect the names of
+installed programs.
+
+** Support for FreeBSD/Alpha has been added.
+
+\f
+* Changes in Emacs 21.3
+
+** hide-ifdef-mode now uses overlays rather than selective-display
+to hide its text.  This should be mostly transparent but slightly
+changes the behavior of motion commands line C-e and C-p.
+
+** Unquoted `$' in file names do not signal an error any more when
+the corresponding environment variable does not exist.
+Instead, the `$ENVVAR' text is left as is, so that `$$' quoting
+is only rarely needed.
+
+** jit-lock can now be delayed with `jit-lock-defer-time'.
+
+If this variable is non-nil, its value should be the amount of Emacs
+idle time inseconds to wait before starting fontification.  For
+example, if you set `jit-lock-defer-time' to 0.25, fontification will
+only happen after 0.25s of idle time.
+
+** If you hit M-C-SPC (mark-sexp) repeatedly, the marked region
+will now be extended each time, so you can mark the next two sexps with
+M-C-SPC M-C-SPC, for example.
+
+** mouse-wheels can now scroll a specific fraction of the window
+(rather than a fixed number of lines) and the scrolling is `progressive'.
+
+** The keyboard-coding-system is now automatically set based on
+your current locale settings.  If it turns out that your terminal
+does not support the encoding implied by your locale (for example,
+it inserts non-ASCII chars if you hit M-i), you will need to add
+
+       (set-keyboard-coding-system nil)
+
+to your .emacs to revert to the old behavior.
+
++++
+** Emacs now reads the standard abbrevs file ~/.abbrev_defs
+automatically at startup, if it exists.  And it always offers to save
+abbrevs (if you have changed them) when if offers to save modified
+buffers.
+
+** Display of hollow cursors now obeys the buffer-local value (if any)
+of `cursor-in-non-selected-windows' in the buffer that the cursor
+appears in.
+
+** 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.
+
++++
+** The command line option --no-windows has been changed to
+--no-window-system.  The old one still works, but is deprecated.
+
+** `buffer-menu' and `list-buffers' now list buffers whose names begin
+with a space, if they visit files.
+
+** You can now customize fill-nobreak-predicate to control where
+filling can break lines.  We provide two sample predicates,
+fill-single-word-nobreak-p and fill-french-nobreak-p.
+
+** New user option `add-log-always-start-new-record'.
+When this option is enabled, M-x add-change-log-entry will always
+start a new record regardless of when the last record is.
+
+** New user option `sgml-xml'.
+When this option is enabled, SGML tags are inserted in XML style,
+i.e., there is always a closing tag.
+When not customized, it becomes buffer-local when it can be inferred
+from the file name or buffer contents.
+
+** 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.
+
+** Byte compiler warning and error messages have been brought more
+in line with the output of other GNU tools.
+
+** Lisp-mode now uses font-lock-doc-face for the docstrings.
+
+** perl-mode has a new variable `perl-indent-continued-arguments'.
+
+** `special-display-buffer-names' and `special-display-regexps' now
+understand two new boolean pseudo-frame-parameters `same-frame' and
+`same-window'.
+
+** When pure storage overflows while dumping, Emacs now prints how
+much pure storage it will approximately need.
+
+** M-x setenv now expands environment variables of the form `$foo' and
+`${foo}' in the specified new value of the environment variable.  To
+include a `$' in the value, use `$$'.
+
++++
+** File-name completion can now ignore directories.
+If an element of the list in `completion-ignored-extensions' ends in a
+slash `/', it indicates a subdirectory that should be ignored when
+completing file names.  Elements of `completion-ignored-extensions'
+which do not end in a slash are never considered when a completion
+candidate is a directory.
+
+** New user option `inhibit-startup-buffer-menu'.
+When loading many files, for instance with `emacs *', Emacs normally
+displays a buffer menu.  This option turns the buffer menu off.
+
+** Rmail now displays 5-digit message ids in its summary buffer.
+
+** When using M-x revert-buffer in a compilation buffer to rerun a
+compilation, it is now made sure that the compilation buffer is reused
+in case it has been renamed.
+
+** On MS Windows, the "system caret" now follows the cursor.
+This enables Emacs to work better with programs that need to track
+the cursor, for example screen magnifiers and text to speech programs.
+
+** Tooltips now work on MS Windows.
+See the Emacs 21.1 NEWS entry for tooltips for details.
+
+---
+** A French translation of the `Emacs Survival Guide' is available.
+
+---
+** A French translation of the Emacs Tutorial is available.
+
+** New modes and packages
+
++++
+*** Calc is now part of the Emacs distribution.
+
+Calc is an advanced desk calculator and mathematical tool written in
+Emacs Lisp.  Its documentation is in a separate manual; within Emacs,
+type "C-h i m calc RET" to read that manual.  A reference card is
+available in `etc/calccard.tex' and `etc/calccard.ps'.
+
++++
+*** The Emacs Lisp Reference Manual is now part of the distribution.
+
+The ELisp reference manual in Info format is built as part of the
+Emacs build procedure and installed together with the Emacs User
+Manual.
+
+*** The Introduction to Programming in Emacs Lisp manual is now part of
+the distribution.
+
+This manual is now part of the standard distribution and is installed,
+together with the Emacs User Manual, into the Info directory.
+
+*** The ruler-mode.el library provides a minor mode for displaying an
+"active" ruler in the header line.  You can use the mouse to visually
+change the `fill-column', `window-margins' and `tab-stop-list'
+settings.
+
+*** The reveal.el package provides the minor modes `reveal-mode' and
+`global-reveal-mode' which will make text visible on the fly as you
+move your cursor into hidden region of the buffer.
+It should work with any package that uses overlays to hide parts
+of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ...
+
+*** master-mode.el implements a minor mode for scrolling a slave
+buffer without leaving your current buffer, the master buffer.
+
+It can be used by sql.el, for example: the SQL buffer is the master
+and its SQLi buffer is the slave.  This allows you to scroll the SQLi
+buffer containing the output from the SQL buffer containing the
+commands.
+
+This is how to use sql.el and master.el together: the variable
+sql-buffer contains the slave buffer.  It is a local variable in the
+SQL buffer.
+
+(add-hook 'sql-mode-hook
+   (function (lambda ()
+              (master-mode t)
+              (master-set-slave sql-buffer))))
+(add-hook 'sql-set-sqli-hook
+   (function (lambda ()
+              (master-set-slave sql-buffer))))
+
+\f
+* Lisp Changes in Emacs 21.3
+
+** The precedence of file-name-handlers has been changed.
+Instead of blindly choosing the first handler that matches,
+find-file-name-handler now gives precedence to a file-name handler
+that matches near the end of the file name.  More specifically, the
+handler whose (match-beginning 0) is the largest is chosen.
+In case of ties, the old "first matched" rule applies.
+
+** Dense keymaps now handle inheritance correctly.
+To that end, binding a key to t now behaves the same as binding it to
+nil (it shadows parent bindings but not bindings in keymaps of lower
+precedence).
+
+** jit-lock obeys a new text-property `jit-lock-defer-multiline'.
+If a piece of text with that property gets contextually refontified
+(see jit-lock-defer-contextually), then all of that text will
+be refontified.  This is useful when the syntax of a textual element
+depends on text several lines further down (and when font-lock-multiline
+is not appropriate to solve that problem).  For example in Perl:
+
+       s{
+               foo
+       }{
+               bar
+       }e
+
+Adding/removing the last `e' changes the `bar' from being a piece of
+text to being a piece of code, so you'd put a jit-lock-defer-multiline
+property over the second half of the command to force (deferred)
+refontification of `bar' whenever the `e' is added/removed.
+
+** describe-vector now takes a second argument `describer' which is
+called to print the entries' values.  It default to `princ'.
+
+** defcustom and other custom declarations now use a default group
+(the last group defined in the same file) when no :group was given.
+
+** emacsserver now runs pre-command-hook and post-command-hook when
+it receives a request from emacsclient.
+
+** The variable `recursive-load-depth-limit' has been deleted.
+Emacs now signals an error if the same file is loaded with more
+than 3 levels of nesting.
+
+** The default values of paragraph-start and indent-line-function have
+been changed to reflect those used in Text mode rather than those used
+in Indented-Text mode.
+
+** If a major mode function has a non-nil `no-clone-indirect'
+property, `clone-indirect-buffer' signals an error if you use
+it in that buffer.
+
+** If you set `query-replace-skip-read-only' non-nil,
+`query-replace' and related functions simply ignore
+a match if part of it has a read-only property.
+
+** In `replace-match', the replacement text no longer inherits
+properties from surrounding text.
+
+** New function `buffer-local-value'.
+
+- Function: buffer-local-value variable buffer
+
+This function returns the buffer-local binding of VARIABLE (a symbol)
+in buffer BUFFER.  If VARIABLE does not have a buffer-local binding in
+buffer BUFFER, it returns the default value of VARIABLE instead.
+
+** The default value of `paragraph-start' and `indent-line-function' has
+been changed to reflect the one used in Text mode rather than the one
+used in Indented Text mode.
+
+** New function `text-clone-create'.  Text clones are chunks of text
+that are kept identical by transparently propagating changes from one
+clone to the other.
+
+** font-lock can manage arbitrary text-properties beside `face'.
+*** the FACENAME returned in font-lock-keywords can be a list
+of the form (face FACE PROP1 VAL1 PROP@ VAL2 ...) so you can set
+other properties than `face'.
+*** font-lock-extra-managed-props can be set to make sure those extra
+properties are automatically cleaned up by font-lock.
+
+** The new function `run-mode-hooks' and the new macro `delay-mode-hooks'
+are used by define-derived-mode to make sure the mode hook for the
+parent mode is run at the end of the child mode.
+
+** `provide' and `featurep' now accept an optional second argument
+to test/provide subfeatures.  Also `provide' now checks `after-load-alist'
+and run any code associated with the provided feature.
+
+** The variable `compilation-parse-errors-filename-function' can
+be used to transform filenames found in compilation output.
+
++++
+** Functions `file-name-sans-extension' and `file-name-extension' now
+ignore the leading dots in file names, so that file names such as
+`.emacs' are treated as extensionless.
+
+** Functions `user-uid' and `user-real-uid' now return floats if the
+user UID doesn't fit in a Lisp integer.  Function `user-full-name'
+accepts a float as UID parameter.
+
+** `define-key-after' now accepts keys longer than 1.
+
+** `define-derived-mode' now accepts nil as the parent.
+
+** The local variable `no-byte-compile' in elisp files is now obeyed.
+
+** New functions `keymap-prompt' and `current-active-maps'.
+
+** New function `describe-buffer-bindings'.
+
+** New vars `exec-suffixes' and `load-suffixes' used when
+searching for an executable resp. an elisp file.
+
+** Variable aliases have been implemented
+
+- Macro: defvaralias ALIAS-VAR BASE-VAR
+
+This defines the symbol ALIAS-VAR as a variable alias for symbol
+BASE-VAR.  This means that retrieving the value of ALIAS-VAR returns
+the value of BASE-VAR, and changing the value of ALIAS-VAR changes the
+value of BASE-VAR.
+
+- Function: indirect-variable VARIABLE
+
+This function returns the variable at the end of the chain of aliases
+of VARIABLE.  If VARIABLE is not a symbol, or if VARIABLE is not
+defined as an alias, the function returns VARIABLE.
+
+It might be noteworthy that variables aliases work for all kinds of
+variables, including buffer-local and frame-local variables.
+
+** Functions from `post-gc-hook' are run at the end of garbage
+collection.  The hook is run with GC inhibited, so use it with care.
+
+** If the second argument to `copy-file' is the name of a directory,
+the file is copied to that directory instead of signaling an error.
+
+** The variables most-positive-fixnum and most-negative-fixnum
+have been moved from the CL package to the core.
+
+** On MS Windows, locale-coding-system is used to interact with the OS.
+The Windows specific variable w32-system-coding-system, which was
+formerly used for that purpose is now an alias for locale-coding-system.
+
+** New packages:
+
+*** The new package syntax.el provides an efficient way to find the
+current syntactic context (as returned by parse-partial-sexp).
+
+*** The TCL package tcl-mode.el was replaced by tcl.el.
+This was actually done in Emacs-21.1 was not documented.
+       
 \f
 * Installation Changes in Emacs 21.1
 
@@ -16,27 +363,24 @@ charsets in this release.
 
 ** Support for LynxOS has been added.
 
-** `movemail' defaults to supporting POP.  You can turn this off using
-the --without-pop configure option, should that be necessary.
-
 ** There are new configure options associated with the support for
 images and toolkit scrollbars.  Use the --help option in `configure'
 to list them.
 
-** There is a new configure option `--without-xim' that instructs
-Emacs to not use X Input Methods (XIM), if these are available.
-
-** There is a new configure option `--disable-largefile' to omit
-Unix-98-style support for large files if that is available.
-
 ** 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.
 
-** Note that the MS-Windows port does not yet implement various of the
-new display features described below.
+** 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
@@ -44,6 +388,9 @@ 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.
+
 \f
 * Changes in Emacs 21.1
 
@@ -80,9 +427,21 @@ 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
@@ -118,6 +477,12 @@ 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
@@ -147,20 +512,6 @@ 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.
 
-+++
-** 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.
-
-+++
 ** Tool bar support.
 
 Emacs supports a tool bar at the top of a frame under X.  For details
@@ -171,10 +522,8 @@ 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).  Contributions would
-also be useful to touch up some of the PBM icons manually.
+for specific modes (with copyright assignments).
 
-+++
 ** Tooltips.
 
 Tooltips are small X windows displaying a help string at the current
@@ -186,7 +535,18 @@ 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
@@ -207,10 +567,10 @@ 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, now defaults to nil,
-and its use is deprecated.
+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
@@ -222,26 +582,20 @@ have enabled one.
 
 Currently, the following actions have been defined:
 
-- Mouse-1 on the buffer name in the mode line switches between two
-buffers.
-
-- Mouse-2 on the buffer-name switches to the next buffer, and
-M-mouse-2 switches to the previous buffer in the buffer list.
+- Mouse-1 on the buffer name in the mode line goes to the next buffer.
 
-- Mouse-3 on the buffer-name displays a buffer menu.
+- 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 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
@@ -249,7 +603,6 @@ 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
@@ -260,7 +613,30 @@ 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.
@@ -276,12 +652,11 @@ 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' byte
+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.
 
@@ -298,7 +673,6 @@ 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
@@ -308,32 +682,18 @@ 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.
 
-+++
-** Highlighting of mouse-sensitive regions is now supported in the
-MS-DOS version of Emacs.
-
 ** 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'.
 
-+++
-** 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)'.
-
 ** 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.
@@ -344,46 +704,21 @@ have been added.  They are named `pl-refcard.tex', `cs-refcard.tex',
 `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 throuh Customize.
+** 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.
 
-** 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.
-
-+++
 ** 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'.
@@ -391,157 +726,23 @@ 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 many obsolete language `setup-...-environment' commands have
-been removed -- use `set-language-environment'.
+** The new user-option `even-window-heights' can be set to nil
+to prevent `display-buffer' from evening out window heights.
 
-+++
-** 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.
+** 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'.
 
-** Flyspell mode has various new options.  See the `flyspell' Custom
-group.
-
-** 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,
-rnews, rnewspost.  Their implementations have been moved to
-lisp/obsolete.
-
-+++
-** The new Custom option `keyboard-coding-system' specifies a coding
-system for keyboard input.
-
-+++
-** The new user-option `even-window-heights' can be set to nil
-to prevent `display-buffer' from evening out window heights.
-
-+++
-** The new command `msdos-set-mouse-buttons' forces 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.
-
-** 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.
-
-** 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.
-
-+++
-** 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-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.
-
-+++
-** 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.
+** 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
@@ -550,14 +751,6 @@ 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.
 
-** 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.
-
-+++
 ** New command M-x describe-character-set reads a character set name
 and displays information about that.
 
@@ -574,7 +767,6 @@ 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
@@ -583,7 +775,12 @@ 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
@@ -597,35 +794,84 @@ 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.
 
@@ -634,13 +880,11 @@ equivalent to specifying the frame parameter.
 - 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.
@@ -648,7 +892,6 @@ 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
@@ -694,119 +937,40 @@ Example:
 
   emacs.privateColormap: true
 
-+++
-** 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.
+** Faces and frame parameters.
 
-** 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.
+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'.
 
-** New user option `read-mail-command' specifies a command to use to
-read mail from the menu etc.
+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.
 
-+++
-** Hexl contains a new command `hexl-insert-hex-string' which inserts
-a string of hexadecimal numbers read from the mini-buffer.
+** New face `menu'.
 
-** Changes in Texinfo mode.
+The face `menu' can be used to change colors and font of Emacs' menus.
 
-*** A couple of new key bindings have been added for inserting Texinfo
-macros
+** New frame parameter `screen-gamma' for gamma correction.
 
-  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 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.
 
-*** The " key now inserts either " or `` or '' depending on context.
+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).
 
-** Changes in Outline mode.
+The X resource name of this parameter is `screenGamma', class
+`ScreenGamma'.
 
-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).
-
-+++
-** 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.
-
-** 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'.
-
-** 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 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
@@ -815,7 +979,6 @@ 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
@@ -826,38 +989,19 @@ LessTif/Motif one.
 *** Arrows that indicate sub-menus are now drawn with shadows, as in
 LessTif and Motif.
 
-** 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).
-
-+++
-** 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.
-
-+++
 ** 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).
+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
@@ -870,13 +1014,32 @@ 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',
@@ -886,376 +1049,123 @@ but inserts text instead of replacing it.
 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', lets
-you complete mail aliases in the text, analogous to
-lisp-complete-symbol.
-
-** The command `Info-search' now uses a search history.
+** 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.
 
-** Changes to hideshow.el
+** The variable `echo-keystrokes' may now have a floating point value.
 
-*** Generalized block selection and traversal
+** 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.
 
-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'.
+** 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.
 
-*** 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.
+--
+** New user option `read-mail-command' specifies a command to use to
+read mail from the menu etc.
 
-*** 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 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.
 
-*** The command `hs-show-region' has been removed.
+** Highlighting of mouse-sensitive regions is now supported in the
+MS-DOS version of Emacs.
 
-*** 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 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.
 
-*** The variable `hs-show-hidden-short-form' has been removed, and
-hideshow.el now always behaves as if this variable were set to t.
+** Customize changes
 
-** Changes to Change Log mode and Add-Log functions
+*** 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.
 
-+++
-*** 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.
+*** 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).
 
-+++
-**** New command M-x change-log-merge merges another log into the
-current buffer.
+*** 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.
 
-+++
-*** New command M-x change-log-redate fixes any old-style date entries
-in a log file.
+** New features in evaluation commands
 
-+++
-*** 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.
+*** 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.
 
-*** Change Log mode now defines its own faces for font-lock highlighting.
+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).
 
-** Changes to cmuscheme
+<RET> or <mouse-2> on the printed text toggles between an abbreviated
+printed representation and an unabbreviated one.
 
-*** The user-option `scheme-program-name' has been renamed
-`cmuscheme-program-name' due to conflicts with xscheme.el.
+The default value of eval-expression-debug-on-error is t, so any error
+during evaluation produces a backtrace.
 
-** Changes in Font Lock
+*** The function `eval-defun' (C-M-x) now loads Edebug and instruments
+code when called with a prefix argument.
 
-*** 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.
+** CC mode changes.
 
-*** Multi-line patterns are now supported.  Modes using this, should
-set font-lock-multiline to t in their font-lock-defaults.
+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.
 
-*** `font-lock-syntactic-face-function' allows major-modes to choose
-the face used for each string/comment.
+*** 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.
 
-*** A new standard face `font-lock-doc-face'.
-Meant for Lisp docstrings, Javadoc comments and other "documentation in code".
+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.
 
-** Changes to Shell mode
+*** New cleanups, space-before-funcall and compact-empty-funcall.
+Two new cleanups have been added to c-cleanup-list:
 
-*** 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).
+space-before-funcall causes a space to be inserted before the opening
+parenthesis of a function call, which gives the style "foo (bar)".
 
-** Comint (subshell) changes
+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()".
 
-These changes generally affect all modes derived from comint mode, which
-include shell-mode, gdb-mode, scheme-interaction-mode, etc.
+*** 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:
 
-*** 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.
-
-** 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.
-
-+++
-** 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.
-
-** 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).
-
-The default value of eval-expression-debug-on-error is t, so any error
-during evaluation produces a backtrace.
-
-*** The function `eval-defun' (M-C-x) now loads Edebug and instruments
-code when called with a prefix argument.
-
-** 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.
-
-*** An Italian, Portuguese, and Slovak dictionary definition has 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.
-
-** 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 `w') 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.
-
-** The variable mail-specify-envelope-from controls whether to
-use the -f option when sending mail.
-
-** 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
+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
@@ -1404,6 +1314,12 @@ 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
@@ -1457,233 +1373,441 @@ Provan).
 
 *** Minor improvements to many movement functions in tricky situations.
 
-** Makefile mode changes
+** Dired changes
 
-*** The mode now uses the abbrev table `makefile-mode-abbrev-table'.
+*** New variable `dired-recursive-deletes' determines if the delete
+command will delete non-empty directories recursively.  The default
+is, delete only empty directories.
 
-*** Conditionals and include statements are now highlighted when
-Fontlock mode is active.
+*** New variable `dired-recursive-copies' determines if the copy
+command will copy directories recursively.  The default is, do not
+copy directories recursively.
 
-** Isearch changes
+*** 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.
 
-*** Isearch now puts a call to `isearch-resume' in the command history,
-so that searches can be resumed.
+*** The new command `dired-find-alternate-file' (usually bound to `a')
+replaces the Dired buffer with the buffer for an alternate file or
+directory.
 
-*** In Isearch mode, M-C-s and M-C-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.
+*** 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).
 
-*** In Isearch mode, mouse-2 in the echo area now yanks the current
-selection into the search string rather than giving an error.
+** Comint (subshell) changes
 
-+++
-*** There is a new lazy highlighting feature in incremental search.
+These changes generally affect all modes derived from comint mode, which
+include shell-mode, gdb-mode, scheme-interaction-mode, etc.
 
-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'.
+*** 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.
 
-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.
+*** 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'.
 
-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'.
+*** Comint now includes new features to send commands to running processes
+and redirect the output to a designated buffer or buffers.
 
-+++
-** Changes in sort.el
+*** 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 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.
+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.
 
-** Changes to Ange-ftp
+*** 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'.
 
-+++
-*** 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.)
+*** 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.
 
-*** If the new user-option `ange-ftp-try-passive-mode' is set, passive
-ftp mode will be used if the ftp client supports that.
+*** 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.
 
-*** Ange-ftp handles the output of the w32-style clients which
-output ^M at the end of lines.
+*** The new function `comint-add-to-input-history' adds commands to the input
+ring (history).
 
-** Shell script mode changes.
+*** 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 "^#".
 
-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.
+** Changes to Rmail mode
 
-** Etags changes.
+*** 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.
 
-*** In DOS, etags looks for file.cgz if it cannot find file.c.
+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.
 
-*** 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.
+*** 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.
 
-*** In C and derived languages, etags creates tags for function
-declarations when given the --declarations option.
+*** RET is now bound in the Rmail summary to rmail-summary-goto-msg,
+like `j'.
 
-*** In C++, tags are created for "operator".  The tags have the form
-"operator+", without spaces between the keyword and the operator.
+*** There is a new user option `rmail-digest-end-regexps' that
+specifies the regular expressions to detect the line that ends a
+digest message.
 
-*** 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.
+*** The new user option `rmail-automatic-folder-directives' specifies
+in which folder to put messages automatically.
 
-*** 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.
+*** 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.
 
-*** New language Ada: tags are functions, procedures, packages, tasks, and
-types.
+** The new user-option `mail-envelope-from' can be used to specify
+an envelope-from address different from user-mail-address.
 
-*** In Fortran, `procedure' is not tagged.
+** The variable mail-specify-envelope-from controls whether to
+use the -f option when sending mail.
 
-*** In Java, tags are created for "interface".
+** 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.
 
-*** In Lisp, "(defstruct (foo", "(defun (operator" and similar constructs
-are now tagged.
+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.
 
-*** In makefiles, tags the targets.
+** Changes to TeX mode
 
-*** In Perl, the --globals option tags global variables.  my and local
-variables are tagged.
+*** The default mode has been changed from `plain-tex-mode' to
+`latex-mode'.
 
-*** New language Python: def and class at the beginning of a line are tags.
+*** latex-mode now has a simple indentation algorithm.
 
-*** .ss files are Scheme files, .pdb is Postscript with C syntax, .psw is
-for PSWrap.
+*** M-f and M-p jump around \begin...\end pairs.
 
-+++
-** Changes in etags.el
+*** Added support for outline-minor-mode.
 
-*** 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.
+** Changes to RefTeX mode
 
-*** You can display additional output with M-x tags-apropos by setting
-the new variable tags-apropos-additional-actions.
+*** 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.
 
-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.
+*** 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).
 
-TITLE is a string to use to label the list of tags from TO-SEARCH.
+*** reftex.el has been split into a number of smaller files to reduce
+    memory use when only a part of RefTeX is being used.
 
-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 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.
 
-A useful example value for this variable might be something like:
+** 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.
 
-  '(("Emacs Lisp" Info-goto-emacs-command-node obarray)
-    ("Common Lisp" common-lisp-hyperspec common-lisp-hyperspec-obarray)
-    ("SCWM" scwm-documentation scwm-obarray))
+** The M-x time-stamp command (most commonly used on write-file-hooks)
+has the following new features:
 
-*** The face tags-tag-face can be used to customize the appearance
-of tags in the output of M-x tags-apropos.
+*** 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.
 
-*** Setting tags-apropos-verbose to a non-nil value displays the
-names of tags files in the *Tags List* buffer.
+*** 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.
 
-*** 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.
+** Partial Completion mode now completes environment variables in
+file names.
 
-*** 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.
+** Ispell changes
 
-*** 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.
+*** 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.
 
-+++
-** 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.
+*** Support for synchronous subprocesses - DOS/Windoze - has been
+added.
 
-+++
-** 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'.
+*** An "alignment error" bug was fixed when a manual spelling
+correction is made and re-checked.
 
-+++
-** New language environments `Dutch' and `Spanish'.
-These new environments mainly select appropriate translations
-of the tutorial.
+*** An Italian, Portuguese, and Slovak dictionary definition has been added.
 
-** In Ethiopic language environment, special key bindings for
-function keys are changed as follows.  This is to conform to "Emacs
-Lisp Coding Convention".
+*** Region skipping performance has been vastly improved in some
+cases.
 
-    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
+*** Spell checking HTML buffers has been improved and isn't so strict
+on syntax errors.
 
-    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
+*** The buffer-local words are now always placed on a new line at the
+end of the buffer.
 
-    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
+*** Spell checking now works in the MS-DOS version of Emacs.
+
+** Makefile mode changes
 
-** 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".
+*** The mode now uses the abbrev table `makefile-mode-abbrev-table'.
 
-+++
-** 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.
+*** Conditionals and include statements are now highlighted when
+Fontlock mode is active.
 
-** SGML mode's default `sgml-validate-command' is now `nsgmls'.
+** Isearch changes
 
-+++
-** A new command `view-emacs-problems' (C-h P) displays the PROBLEMS file.
+*** Isearch now puts a call to `isearch-resume' in the command history,
+so that searches can be resumed.
 
-+++
-** 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.
+*** 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.
 
-** 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.
+*** In Isearch mode, mouse-2 in the echo area now yanks the current
+selection into the search string rather than giving an error.
 
-** The buffer menu (C-x C-b) no longer lists the *Buffer List* buffer.
+*** There is a new lazy highlighting feature in incremental search.
 
-+++
-** When invoked with a prefix argument, the command `list-abbrevs' now
-displays local abbrevs, only.
+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
 
@@ -1889,7 +2013,6 @@ Features are:
 - 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
@@ -1900,13 +2023,11 @@ 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,
 
@@ -1921,11 +2042,9 @@ 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.
 
@@ -1938,19 +2057,16 @@ 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.
 
@@ -1963,7 +2079,6 @@ 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.
 
@@ -1979,7 +2094,6 @@ 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.
@@ -2022,11 +2136,9 @@ 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'.
@@ -2040,7 +2152,6 @@ 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
@@ -2048,15 +2159,14 @@ 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 a minor mode to highlight the current line.
+*** 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 behaviour in all buffers.
 
 *** ansi-color.el translates ANSI terminal escapes into text-properties.
 
@@ -2070,13 +2180,11 @@ 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
@@ -2098,111 +2206,307 @@ horse apple   bus
 dog    pineapple       car     EXTRA
 porcupine      strawberry      airplane
 
-Doing the following settings:
+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)'.
+
+** Flyspell mode has various new options.  See the `flyspell' Custom
+group.
+
+** 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.
 
-   (setq delimit-columns-str-before "[ ")
-   (setq delimit-columns-str-after " ]")
-   (setq delimit-columns-str-separator ", ")
-   (setq delimit-columns-separator "\t")
+*** 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.
 
-Selecting the lines above and typing:
+*** New language Ada: tags are functions, procedures, packages, tasks, and
+types.
 
-   M-x delimit-columns-region
+*** In Fortran, `procedure' is not tagged.
 
-It results:
+*** In Java, tags are created for "interface".
 
-[ horse    , apple     , bus     ,       ]
-[ dog      , pineapple , car     , EXTRA ]
-[ porcupine, strawberry, airplane,       ]
+*** In Lisp, "(defstruct (foo", "(defun (operator" and similar constructs
+are now tagged.
 
-delim-col has the following options:
+*** In makefiles, tags the targets.
 
-   delimit-columns-str-before          Specify a string to be inserted
-                                       before all columns.
+*** In Perl, the --globals option tags global variables.  my and local
+variables are tagged.
 
-   delimit-columns-str-separator       Specify a string to be inserted
-                                       between each column.
+*** New language Python: def and class at the beginning of a line are tags.
 
-   delimit-columns-str-after           Specify a string to be inserted
-                                       after all columns.
+*** .ss files are Scheme files, .pdb is Postscript with C syntax, .psw is
+for PSWrap.
 
-   delimit-columns-separator           Specify a regexp which separates
-                                       each column.
+** Changes in etags.el
 
-delim-col has the following commands:
+*** 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.
 
-   delimit-columns-region      Prettify all columns in a text region.
-   delimit-columns-rectangle   Prettify all columns in a text rectangle.
+*** You can display additional output with M-x tags-apropos by setting
+the new variable tags-apropos-additional-actions.
 
-+++
-*** 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:
+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.
 
-- 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
+TITLE is a string to use to label the list of tags from TO-SEARCH.
 
-The `recentf-filter-changer' menu filter function allows to
-dynamically change the menu appearance.
+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.
 
-*** elide-head.el provides a mechanism for eliding boilerplate header
-text.
+A useful example value for this variable might be something like:
 
-+++
-*** 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.
+  '(("Emacs Lisp" Info-goto-emacs-command-node obarray)
+    ("Common Lisp" common-lisp-hyperspec common-lisp-hyperspec-obarray)
+    ("SCWM" scwm-documentation scwm-obarray))
 
-+++
-*** 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'.
+*** The face tags-tag-face can be used to customize the appearance
+of tags in the output of M-x tags-apropos.
 
-*** EUDC, the Emacs Unified Directory Client, provides a common user
-interface to access directory servers using different directory
-protocols.  It has a separate manual.
+*** Setting tags-apropos-verbose to a non-nil value displays the
+names of tags files in the *Tags List* buffer.
 
-*** autoconf.el provides a major mode for editing configure.in files
-for Autoconf, selected automatically.
+*** 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.
 
-+++
-*** windmove.el provides moving between windows.
+*** 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.
 
-*** crm.el provides a facility to read multiple strings from the
-minibuffer with completion.
+*** 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.
 
-*** todo-mode.el provides management of TODO lists and integration
-with the diary features.
+** 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.
 
-*** autoarg.el provides a feature reported from Twenex Emacs whereby
-numeric keys supply prefix args rather than self inserting.
+** SGML mode's default `sgml-validate-command' is now `nsgmls'.
 
-*** The function `turn-off-auto-fill' unconditionally turns off Auto
-Fill mode.
+** A new command `view-emacs-problems' (C-h P) displays the PROBLEMS file.
 
-*** gnus-mule.el is now just a compatibility layer over the built-in
-Gnus facilities.
+** 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.
 
-*** 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.
+** 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.
 
-*** 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'.
+** 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
@@ -2221,7 +2525,8 @@ 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' and `set-text-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)
@@ -2262,6 +2567,9 @@ appropriate for reading truly binary files.
 ** Code that uses `concat' with integer args now gets an error, as
 long promised.
 
+** 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
@@ -2286,7 +2594,9 @@ 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.)
 
-** The new function amimate-string, from lisp/play/animate.el 
+** 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
@@ -2312,29 +2622,23 @@ 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
@@ -2342,7 +2646,6 @@ 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.
@@ -2350,17 +2653,14 @@ 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,
 
@@ -2369,7 +2669,6 @@ is running in batch mode.  For example,
 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.
 
@@ -2377,7 +2676,6 @@ to standard output.
 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
 
@@ -2391,25 +2689,22 @@ a list, vector, or string.  The comparison is done with `equal'.
 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.
+has been changed: WEAK can now have new values `key-or-value' and
+`key-and-value', in addition the `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).
 
@@ -2428,9 +2723,9 @@ 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 `some-window' defined as follows
+** There's a new function `get-window-with-predicate' defined as follows
 
-- Function: some-window PREDICATE &optional MINIBUF ALL-FRAMES DEFAULT
+- Function: get-window-with-predicate PREDICATE &optional MINIBUF ALL-FRAMES DEFAULT
 
 Return a window satisfying PREDICATE.
 
@@ -2469,11 +2764,9 @@ 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.
@@ -2482,13 +2775,11 @@ numbers in the mode line.  The default is 200.
 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
@@ -2501,7 +2792,6 @@ instead.
 
 ** The function `apropos-mode' runs the hook `apropos-mode-hook'.
 
-+++
 ** `concat' no longer accepts individual integer arguments,
 as promised long ago.
 
@@ -2519,6 +2809,273 @@ Note that +++ before an item means the Lisp manual has been updated.
 When you add a new item, please add it without either +++ or ---
 so I will know I still need to look at it -- rms.
 
+** 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-tow-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 occurrances 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
@@ -2531,9 +3088,9 @@ restriction to be restored incorrectly.
 when they find 8-bit characters.  Previously, they included `ascii' in a
 multibyte buffer and `unknown' in a unibyte buffer.
 
-*** The functions `set-buffer-modified', `string-as-multibyte' and
-`string-as-unibyte' change the byte sequence of a buffer if it
-contains a character from the `eight-bit-control' character set.
+*** 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
@@ -2631,7 +3188,6 @@ 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
@@ -2642,7 +3198,6 @@ 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.
 
@@ -2687,7 +3242,10 @@ is currently displayed in some window.
 argument function's results.
 
 ** The functions base64-decode-region and base64-decode-string now
-signal an error instead of returning nil if decoding fails.
+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.
@@ -2757,7 +3315,6 @@ 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
@@ -2772,25 +3329,21 @@ 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 M-C-a
+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
@@ -2802,12 +3355,10 @@ 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.
@@ -2819,28 +3370,23 @@ 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
@@ -2855,17 +3401,14 @@ 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
@@ -2880,7 +3423,6 @@ 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
@@ -2906,7 +3448,6 @@ are now defined in Emacs Lisp.
       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
@@ -2936,7 +3477,6 @@ or a sign.
 [: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:
@@ -3071,26 +3611,22 @@ be strings that are compared case-insensitively.
 
   (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
@@ -3100,39 +3636,32 @@ 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
@@ -3147,7 +3676,6 @@ 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.
@@ -3168,7 +3696,6 @@ Example:
 
 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'.
@@ -3181,7 +3708,6 @@ argument in it.
      (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
@@ -3226,7 +3752,6 @@ An alternative interface is called as
 
 ** `multimedia' is a new Finder keyword and Custom group.
 
-+++
 ** keywordp is a new predicate to test efficiently for an object being
 a keyword symbol.
 
@@ -3242,21 +3767,17 @@ 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.
 
@@ -3270,7 +3791,6 @@ 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.
 
@@ -3280,15 +3800,12 @@ 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).
 
@@ -3322,7 +3839,6 @@ in your `.emacs'.
 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:
@@ -3371,7 +3887,6 @@ 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
@@ -3381,7 +3896,6 @@ 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
@@ -3414,14 +3928,12 @@ Currently all unibyte text, i.e. all buffers with
 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
@@ -3462,7 +3974,6 @@ 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,
@@ -3480,7 +3991,6 @@ that list.  Example:
 
 allows the use of scalable fonts with registry `muleindian-2'.
 
-+++
 *** Functions and variables related to font selection.
 
 - Function: x-family-fonts &optional FAMILY FRAME
@@ -3513,7 +4023,6 @@ 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
@@ -3667,7 +4176,6 @@ from X resources:
   :italic              attributeItalic .       Face.AttributeItalic
   :font                        attributeFont           Face.AttributeFont
 
-+++
 *** Text property `face'.
 
 The value of the `face' text property can now be a single face
@@ -3685,7 +4193,6 @@ specification can be
    (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
@@ -3726,7 +4233,6 @@ 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.
@@ -3822,7 +4328,6 @@ 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
@@ -4118,7 +4623,6 @@ 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
@@ -4138,7 +4642,6 @@ 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
@@ -4173,7 +4676,6 @@ 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.
@@ -4196,7 +4698,6 @@ used.
        (set-window-vscroll (selected-window)
                            (- (window-vscroll) 0.5)))))
 
-+++
 ** New hook `fontification-functions'.
 
 Functions from `fontification-functions' are called from redisplay
@@ -4210,7 +4711,6 @@ 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
@@ -4321,7 +4821,6 @@ item.
 
 ** Mode line changes.
 
-+++
 *** Mouse-sensitive mode line.
 
 The mode line can be made mouse-sensitive by displaying strings there
@@ -4345,11 +4844,9 @@ 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
@@ -4364,7 +4861,6 @@ The appearance of top mode lines is controlled by the face
 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,
@@ -4489,15 +4985,17 @@ amount of raising or lowering is computed without taking account of the
 *** 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 evaluation, point is temporarily set to the end position of
-the text having the `display' property.
+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)'.
+`(when t . SPEC)'.
 
-+++
 ** New menu separator types.
 
 Emacs now supports more than one menu separator type.  Menu items with
@@ -4562,7 +5060,6 @@ 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
@@ -4580,23 +5077,19 @@ The X resource name of these parameters are `scrollBarForeground'
 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
@@ -4629,7 +5122,6 @@ horizontal rather than vertical (since the MS-DOS display doesn't
 support a vertical-bar cursor).
 
 
-
 \f
 * Emacs 20.7 is a bug-fix release with few user-visible changes
 
@@ -6643,9 +7135,7 @@ 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).  If another font in the fontset has a different height,
-or the wrong width, then characters assigned to that font are clipped,
-and displayed within a box if highlight-wrong-size-font is non-nil.
+characters).
 
 *** Defining fontsets.
 
@@ -7136,7 +7626,7 @@ new key           dired.el binding                old key
   * @          dired-mark-symlinks             @  (binding deleted)
   * u          dired-unmark                    u
   * DEL                dired-unmark-backward           DEL
-  * ?          dired-unmark-all-files          M-C-?
+  * ?          dired-unmark-all-files          C-M-?
   * !          dired-unmark-all-marks
   * %          dired-mark-files-regexp         % m
   * C-n                dired-next-marked-file          M-}
@@ -7208,7 +7698,7 @@ another have been added.
 generating lines in buffers.
 
 *** Several commands in the group buffer can be undone with
-`M-C-_'.
+`C-M-_'.
 
 *** Scoring can be done on words using the new score type `w'.
 
@@ -7229,7 +7719,7 @@ 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 -- `M-C-d'.
+(nndoc with nnvirtual on top) has been added -- `C-M-d'.
 
 *** Process mark sets can be pushed and popped.
 
@@ -7975,7 +8465,7 @@ 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 M-C-l and M-C-h.
+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.