*** empty log message ***
[bpt/emacs.git] / etc / NEWS
index db3406f..19f10be 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1,5 +1,6 @@
 GNU Emacs NEWS -- history of user-visible changes.  2003-05-21
-Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+          Free Software Foundation, Inc.
 See the end for copying conditions.
 
 Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
@@ -14,7 +15,7 @@ When you add a new item, please add it without either +++ or ---
 so we will look at it and add it to the manual.
 
 \f
-* Installation Changes in Emacs 21.4
+* Installation Changes in Emacs 22.1
 
 ** Emacs includes now support for loading image libraries on demand.
 (Currently this feature is only used on MS Windows.)  You can configure
@@ -28,6 +29,7 @@ setting the variable `image-library-alist'.
    choose one of them in case your language setup doesn't automatically
    select the right one.
 
+---
 ** You can build Emacs with Gtk+ widgets by specifying `--with-x-toolkit=gtk'
 when you run configure.  This requires Gtk+ 2.0 or newer.  This port
 provides a way to display multilingual text in menus (with some caveats).
@@ -35,6 +37,7 @@ provides a way to display multilingual text in menus (with some caveats).
 ---
 ** Emacs can now be built without sound support.
 
+---
 ** The `emacsserver' program has been removed, replaced with elisp code.
 
 ---
@@ -73,6 +76,7 @@ together with the Emacs User Manual, into the Info directory.  A menu
 item was added to the menu bar that makes it easy accessible
 (Help->More Manuals->Introduction to Emacs Lisp).
 
+---
 ** Support for Cygwin was added.
 
 ---
@@ -88,6 +92,11 @@ See the files mac/README and mac/INSTALL for build instructions.
 ---
 ** Support for GNU/Linux systems on X86-64 machines was added.
 
+---
+** Mac OS 9 port now uses the Carbon API by default.  You can also
+create non-Carbon build by specifying `NonCarbon' as a target.  See
+the files mac/README and mac/INSTALL for build instructions.
+
 ---
 ** A French translation of the `Emacs Survival Guide' is available.
 
@@ -96,29 +105,91 @@ See the files mac/README and mac/INSTALL for build instructions.
 types any more.  Add -DUSE_LISP_UNION_TYPE if you want union types.
 
 \f
-* Changes in Emacs 21.4
+* Changes in Emacs 22.1
+
+** Languange environment and various default coding systems are setup
+more correctly according to the current locale name.  If the locale
+name doesn't specify a charset, the default is what glibc defines.
+This change may result in using the different coding systems as
+default in some locale (e.g. vi_VN).
+
++++
+** The commands copy-file, rename-file, make-symbolic-link and
+add-name-to-file, when given a directory as the "new name" argument,
+convert it to a file name by merging in the within-directory part of
+the existing file's name.  (This is the same convention that shell
+commands cp, mv, and ln follow.)  Thus, M-x copy-file RET ~/foo RET
+/tmp RET copies ~/foo to /tmp/foo.
+
++++
+** M-o now is the prefix key for setting text properties;
+M-o M-o requests refontification.
+
++++
+** M-g is now a prefix key.  M-g g and M-g M-g run goto-line.
+
++++
+** font-lock-lines-before specifies a number of lines before the
+current line that should be refontified when you change the buffer.
+The default value is 1.
+
++++
+** C-u M-x goto-line now switches to the most recent previous buffer,
+and goes to the specified line in that buffer.
+
+When goto-line starts to execute, if there's a number in the buffer at
+point then it acts as the default argument for the minibuffer.
+
+---
+** Emacs now responds to mouse-clicks on the mode-line, header-line and
+display margin, when run in an xterm.
+
++++
+** M-SPC (just-one-space) when given a numeric argument N
+converts whitespace around point to N spaces.
+
++++
+** Control characters and escape glyphs are now shown in the new
+escape-glyph face.
+
++++
+** Non-breaking space and hyphens are now prefixed with an escape
+character, unless the new user variable `show-nonbreak-escape' is set
+to nil.
+
+---
+** The type-break package now allows `type-break-file-name' to be nil
+and if so, doesn't store any data across sessions.  This is handy if
+you don't want the .type-break file in your home directory or are
+annoyed by the need for interaction when you kill Emacs.
+
+---
+** display-battery has been replaced by display-battery-mode.
 
-** calculator.el now has radix grouping mode.  In this mode a
-separator character is used between every few digits, making it
-easier to indicate byte boundries etc.  See the documentation of
-the `calculator-radix-grouping-mode' custom variable.
+---
+** calculator.el now has radix grouping mode, which is available when
+`calculator-output-radix' is non-nil.  In this mode a separator
+character is used every few digits, making it easier to see byte
+boundries etc.  For more info, see the documentation of the variable
+`calculator-radix-grouping-mode'.
 
++++
 ** You can now follow links by clicking Mouse-1 on the link.
 
 Traditionally, Emacs uses a Mouse-1 click to set point and a Mouse-2
 click to follow a link, whereas most other applications use a Mouse-1
 click for both purposes, depending on whether you click outside or
-inside a link.  With release 21.4, the behaviour of a Mouse-1 click
-has been changed to match this context-sentitive dual behaviour.
+inside a link.  Now the behavior of a Mouse-1 click has been changed
+to match this context-sentitive dual behavior.
 
 Depending on the current mode, a Mouse-2 click in Emacs may do much
-more than just follow a link, so the new Mouse-1 behaviour is only
+more than just follow a link, so the new Mouse-1 behavior is only
 activated for modes which explicitly mark a clickable text as a "link"
-(see the new function `mouse-on-link-p' for details).  The lisp
-packages that are included in release 21.4 have been adapted to do
+(see the new function `mouse-on-link-p' for details).  The Lisp
+packages that are included in release 22.1 have been adapted to do
 this, but external packages may not yet support this.  However, there
 is no risk in using such packages, as the worst thing that could
-happen is that you get the original Mouse-1 behaviour when you click
+happen is that you get the original Mouse-1 behavior when you click
 on a link, which typically means that you set point where you click.
 
 If you want to get the original Mouse-1 action also inside a link, you
@@ -129,16 +200,36 @@ you release it).
 Dragging the Mouse-1 inside a link still performs the original
 drag-mouse-1 action, typically copy the text.
 
-You can customize the new Mouse-1 behaviour via the new user option
-`mouse-1-click-follows-link'.
+You can customize the new Mouse-1 behavior via the new user options
+`mouse-1-click-follows-link' and `mouse-1-click-in-non-selected-windows'.
+
++++
+** require-final-newline now has two new possible values:
+
+`visit' means add a newline (as an undoable change) if it's needed
+when visiting the file.
+
+`visit-save' means add a newline (as an undoable change) if it's
+needed when visiting the file, and also add a newline if it's needed
+when saving the file.
+
++++
+** The new option mode-require-final-newline controls how certain
+major modes enable require-final-newline.  Any major mode that's
+designed for a kind of file that should normally end in a newline
+sets require-final-newline based on mode-require-final-newline.
+So you can customize mode-require-final-newline to control what these
+modes do.
 
 +++
 ** When the undo information of the current command gets really large
-(beyond the value of `undo-outer-limit'), Emacs asks you whether to
-discard it or keep it.
+(beyond the value of `undo-outer-limit'), Emacs discards it and warns
+you about it.
 
++++
 ** line-move-ignore-invisible now defaults to t.
 
++++
 ** In Outline mode, hide-body no longer hides lines at the top
 of the file that precede the first header line.
 
@@ -155,6 +246,7 @@ suffix are from every line before processing all the lines.
 ** `apply-macro-to-region-lines' now operates on all lines that begin
 in the region, rather than on all complete lines in the region.
 
+---
 ** global-whitespace-mode is a new alias for whitespace-global-mode.
 
 +++
@@ -172,30 +264,40 @@ existing values.  For example:
 will start up Emacs on an initial frame of 100x20 with red background,
 irrespective of geometry or background setting on the Windows registry.
 
+---
+** The terminal emulation code in term.el has been improved, it can
+run most curses applications now.
+
 ** New features in evaluation commands
 
 +++
 *** The function `eval-defun' (C-M-x) called on defface reinitializes
 the face to the value specified in the defface expression.
 
++++
 *** Typing C-x C-e twice prints the value of the integer result
 in additional formats (octal, hexadecimal, character) specified
 by the new function `eval-expression-print-format'.  The same
 function also defines the result format for `eval-expression' (M-:),
 `eval-print-last-sexp' (C-j) and some edebug evaluation functions.
 
+---
 ** New input method chinese-sisheng for inputting Chinese Pinyin
 characters.
 
++++
 ** New command quail-show-key shows what key (or key sequence) to type
 in the current input method to input a character at point.
 
++++
 ** Convenient commands to switch buffers in a cyclic order are C-x <left>
 (prev-buffer) and C-x <right> (next-buffer).
 
+---
 ** Commands winner-redo and winner-undo, from winner.el, are now bound to
 C-c <left> and C-c <right>, respectively.  This is an incompatible change.
 
+---
 ** Help commands `describe-function' and `describe-key' now show function
 arguments in lowercase italics on displays that support it.  To change the
 default, customize face `help-argument-name' or redefine the function
@@ -223,9 +325,11 @@ not the case, then `comint-kill-region' behaves just like
 `kill-region' if read-only are involved: it copies the text to the
 kill-ring, but does not delete it.
 
++++
 ** You can now use next-error (C-x `) and previous-error to advance to
 the next/previous matching line found by M-x occur.
 
++++
 ** Telnet now prompts you for a port number with C-u M-x telnet.
 
 +++
@@ -235,13 +339,20 @@ This is like using -q --no-site-file, but in addition it also disables
 the menu-bar, the tool-bar, the scroll-bars, tool tips, the blinking
 cursor, and the fancy startup screen.
 
++++
+** New command line option -nbc or --no-blinking-cursor disables
+the blinking cursor on graphical terminals.
+
++++
 ** C-h v and C-h f commands now include a hyperlink to the C source for
 variables and functions defined in C (if the C source is available).
 
+---
 ** When used interactively, `format-write-file' now asks for confirmation
 before overwriting an existing file, unless a prefix argument is
 supplied.  This behavior is analogous to `write-file'.
 
++++
 ** You can now use Auto Revert mode to `tail' a file.
 If point is at the end of a file buffer before reverting, Auto Revert
 mode keeps it at the end after reverting.  Similarly if point is
@@ -256,6 +367,7 @@ then you can tail the file more efficiently by using the new minor
 mode Auto Revert Tail mode.  The function `auto-revert-tail-mode'
 toggles this mode.
 
++++
 ** Auto Revert mode is now more careful to avoid excessive reverts and
 other potential problems when deciding which non-file buffers to
 revert.  This matters especially if Global Auto Revert mode is enabled
@@ -266,16 +378,19 @@ decides whether the buffer should be reverted.  Currently, this means
 that auto reverting works for Dired buffers (although this may not
 work properly on all operating systems) and for the Buffer Menu.
 
++++
 ** If the new user option `auto-revert-check-vc-info' is non-nil, Auto
 Revert mode reliably updates version control info (such as the version
 control number in the mode line), in all version controlled buffers in
 which it is active.  If the option is nil, the default, then this info
 only gets updated whenever the buffer gets reverted.
 
++++
 ** New command `Buffer-menu-toggle-files-only' toggles display of file
 buffers only in the Buffer Menu.  It is bound to `T' in Buffer Menu
 mode.
 
+---
 ** M-x compile has become more robust and reliable
 
 Quite a few more kinds of messages are recognized.  Messages that are
@@ -303,21 +418,31 @@ This option allows you to specify environment variables for inferior
 compilation processes without affecting the environment that all
 subprocesses inherit.
 
++++
 ** Grep has been decoupled from compilation mode setup.
 
+---
 *** There's a new separate package grep.el.
 
+---
 *** M-x grep has been adapted to new compile
 
 Hits are fontified in green, and hits in binary files in orange.  Grep buffers
 can be saved and automatically revisited with the new Grep mode.
 
+---
 *** Grep commands now have their own submenu and customization group.
 
++++
+*** `grep-find' is now also available under the name `find-grep' where
+people knowing `find-grep-dired' would probably expect it.
+
+---
 *** The new variables `grep-window-height', `grep-auto-highlight', and
 `grep-scroll-output' can be used to override the corresponding
 compilation mode settings for grep commands.
 
++++
 *** New option `grep-highlight-matches' highlightes matches in *grep*
 buffer.  It uses a special feature of some grep programs which accept
 --color option to output markers around matches.  When going to the next
@@ -325,6 +450,7 @@ match with `next-error' the exact match is highlighted in the source
 buffer.  Otherwise, if `grep-highlight-matches' is nil, the whole
 source line is highlighted.
 
++++
 *** New key bindings in grep output window:
 SPC and DEL scrolls window up and down.  C-n and C-p moves to next and
 previous match in the grep window.  RET jumps to the source line of
@@ -333,10 +459,12 @@ other window, but does not switch buffer.  `{' and `}' jumps to the
 previous or next file in the grep output.  TAB also jumps to the next
 file.
 
++++
 ** New options `next-error-highlight' and `next-error-highlight-no-select'
 specify the method of highlighting of the corresponding source line
 in new face `next-error'.
 
++++
 ** A new minor mode `next-error-follow-minor-mode' can be used in
 compilation-mode, grep-mode, occur-mode, and diff-mode (i.e. all the
 modes that can use `next-error').  In this mode, cursor motion in the
@@ -344,11 +472,14 @@ buffer causes automatic display in another window of the corresponding
 matches, compilation errors, etc.  This minor mode can be toggled with
 C-c C-f.
 
++++
 ** M-x diff uses diff-mode instead of compilation-mode.
 
++++
 ** M-x compare-windows now can automatically skip non-matching text to
 resync points in both windows.
 
+---
 ** New command `strokes-global-set-stroke-string'.
 This is like `strokes-global-set-stroke', but it allows you to bind
 the stroke directly to a string to insert.  This is convenient for
@@ -356,40 +487,59 @@ using strokes as an input method.
 
 ** Gnus package
 
+---
 *** Gnus now includes Sieve and PGG
 Sieve is a library for managing Sieve scripts.  PGG is a library to handle
 PGP/MIME.
 
+---
 *** There are many news features, bug fixes and improvements.
 See the file GNUS-NEWS or the node "Oort Gnus" in the Gnus manual for details.
 
 +++
 ** Desktop package
 
++++
 *** Desktop saving is now a minor mode, desktop-save-mode. Variable
 desktop-enable is obsolete. Customize desktop-save-mode to enable desktop
 saving.
 
+---
 *** Buffers are saved in the desktop file in the same order as that in the
 buffer list.
 
++++
+*** The desktop package can be customized to restore only some buffers immediately,
+remaining buffers are restored lazily (when Emacs is idle).
+
++++
 *** New commands:
   - desktop-revert reverts to the last loaded desktop.
   - desktop-change-dir kills current desktop and loads a new.
   - desktop-save-in-desktop-dir saves desktop in the directory from which
     it was loaded.
+  - desktop-lazy-complete runs the desktop load to completion.
+  - desktop-lazy-abort aborts lazy loading of the desktop.
 
+---
 *** New customizable variables:
   - desktop-save. Determins whether the desktop should be saved when it is
     killed.
-  - desktop-file-name-format.
+  - desktop-file-name-format. Format in which desktop file names should be saved.
   - desktop-path. List of directories in which to lookup the desktop file.
-  - desktop-locals-to-save.
-  - desktop-globals-to-clear.
-  - desktop-clear-preserve-buffers-regexp.
+  - desktop-locals-to-save. List of local variables to save.
+  - desktop-globals-to-clear. List of global variables that `desktop-clear' will clear.
+  - desktop-clear-preserve-buffers-regexp. Regexp identifying buffers that `desktop-clear'
+    should not delete.
+  - desktop-restore-eager. Number of buffers to restore immediately. Remaining buffers are
+    restored lazily (when Emacs is idle).
+  - desktop-lazy-verbose. Verbose reporting of lazily created buffers.
+  - desktop-lazy-idle-delay. Idle delay before starting to create buffers.
 
++++
 *** New command line option --no-desktop
 
+---
 *** New hooks:
   - desktop-after-read-hook run after a desktop is loaded.
   - desktop-no-desktop-file-hook run when no desktop file is found.
@@ -403,6 +553,7 @@ to get the old behavior.  The new options `save-place-save-skipped'
 and `save-place-skip-check-regexp' allow further fine-tuning of this
 feature.
 
++++
 ** You can have several Emacs servers on the same machine.
 
        % emacs --eval '(setq server-name "foo")' -f server-start &
@@ -418,7 +569,7 @@ Instead, the newline now "overflows" into the right fringe, and the
 cursor will be displayed in the fringe when positioned on that newline.
 
 The new user option 'overflow-newline-into-fringe' may be set to nil to
-revert to the old behaviour of continuing such lines.
+revert to the old behavior of continuing such lines.
 
 +++
 ** The buffer boundaries (i.e. first and last line in the buffer) may
@@ -441,18 +592,21 @@ in left fringe, the bottom angle bitmap in right fringe, and both
 arrow bitmaps in right fringe.  To show just the angle bitmaps in the
 left fringe, but no arrow bitmaps, use ((top . left) (bottom . left)).
 
++++
 ** New command `display-local-help' displays any local help at point
 in the echo area.  It is bound to `C-h .'.  It normally displays the
 same string that would be displayed on mouse-over using the
 `help-echo' property, but, in certain cases, it can display a more
 keyboard oriented alternative.
 
++++
 ** New user option `help-at-pt-display-when-idle' allows to
 automatically show the help provided by `display-local-help' on
 point-over, after suitable idle time.  The amount of idle time is
 determined by the user option `help-at-pt-timer-delay' and defaults
 to one second.  This feature is turned off by default.
 
+---
 ** New commands `scan-buf-next-region' and `scan-buf-previous-region'
 move to the start of the next (previous, respectively) region with
 non-nil help-echo property and display any help found there in the
@@ -467,6 +621,7 @@ hyperlinks to Info anchors (or nodes) if the anchor (or node) name is
 enclosed in single quotes and preceded by `info anchor' or `Info
 anchor' (in addition to earlier `info node' and `Info node').
 
++++
 ** The max size of buffers and integers has been doubled.
 On 32bit machines, it is now 256M (i.e. 268435455).
 
@@ -475,7 +630,7 @@ On 32bit machines, it is now 256M (i.e. 268435455).
 now reads arguments for the function interactively if it is
 an interactively callable function.
 
-
+---
 ** sql changes.
 
 *** The variable `sql-product' controls the highlightng of different
@@ -547,16 +702,19 @@ defaults.
 appropriate sql-interactive-mode wrapper for the current setting of
 `sql-product'.
 
+---
 ** M-x view-file and commands that use it now avoid interfering
 with special modes such as Tar mode.
 
 ** Enhancements to apropos commands:
 
++++
 *** The apropos commands now accept a list of words to match.
 When more than one word is specified, at least two of those words must
 be present for an item to match.  Regular expression matching is still
 available.
 
++++
 *** The new option `apropos-sort-by-scores' causes the matching items
 to be sorted according to their score.  The score for an item is a
 number calculated to indicate how well the item matches the words or
@@ -569,21 +727,26 @@ matching item.
 since there are situations where one or the other will shut down
 the operating system or your X server.
 
+---
 ** New minor mode, Visible mode, toggles invisibility in the current buffer.
 When enabled, it makes all invisible text visible.  When disabled, it
 restores the previous value of `buffer-invisibility-spec'.
 
+---
 ** New command `kill-whole-line' kills an entire line at once.
 By default, it is bound to C-S-<backspace>.
 
+---
 ** New commands to operate on pairs of open and close characters:
 `insert-pair', `delete-pair', `raise-sexp'.
 
++++
 ** A prefix argument of C-M-q in Emacs Lisp mode pretty-printifies the
 list starting after point.
 
 ** Dired mode:
 
+---
 *** New faces dired-header, dired-mark, dired-marked, dired-flagged,
 dired-ignored, dired-directory, dired-symlink, dired-warning
 introduced for Dired mode instead of font-lock faces.
@@ -604,16 +767,13 @@ doublequotes make no difference in the shell, but they prevent
 special treatment in `dired-do-shell-command'.
 
 +++
-*** Dired's v command now runs external viewers to view certain
-types of files.  The variable `dired-view-command-alist' controls
-what external viewers to use and when.
-
 *** In Dired, the w command now copies the current line's file name
 into the kill ring.  With a zero prefix arg, copies absolute file names.
 
 +++
 ** Dired-x:
 
++++
 *** Omitting files is now a minor mode, dired-omit-mode. The mode toggling
 command is bound to M-o. A new command dired-mark-omitted, bound to M-O,
 marks omitted files. The variable dired-omit-files-p is obsoleted, use the
@@ -642,16 +802,28 @@ multiple files, and C-x d passes it to `dired'.
 
 ** Info mode:
 
++++
 *** A numeric prefix argument of `info' selects an Info buffer
-with the number appended to the *info* buffer name.
+with the number appended to the *info* buffer name (e.g. "*info*<2>").
 
-*** Regexp isearch (C-M-s and C-M-r) can search through multiple nodes.
-Failed isearch wraps to the top/final node.
+---
+*** isearch in Info uses Info-search and searches through multiple nodes.
+Before leaving the initial Info node isearch fails once with the error
+message [initial node], and with subsequent C-s/C-r continues through
+other nodes.  When isearch fails for the rest of the manual, it wraps
+aroung the whole manual to the top/final node.  The user option
+`Info-isearch-search' controls whether to use Info-search for isearch,
+or the default isearch search function that wraps around the current
+Info node.
 
 *** New search commands: `Info-search-case-sensitively' (bound to S),
 `Info-search-backward', and `Info-search-next' which repeats the last
 search without prompting for a new search string.
 
+*** New command `Info-history-forward' (bound to r and new toolbar icon)
+moves forward in history to the node you returned from after using
+`Info-history-back' (renamed from `Info-last').
+
 *** New command `Info-history' (bound to L) displays a menu of visited nodes.
 
 *** New command `Info-toc' (bound to T) creates a node with table of contents
@@ -687,6 +859,7 @@ version 4.7 or newer, compiles to Info pages with embedded images.
 ---
 *** Info-index offers completion.
 
+---
 ** Support for the SQLite interpreter has been added to sql.el by calling
 'sql-sqlite'.
 
@@ -734,10 +907,12 @@ in multiple BibTeX files.
 *** The new command bibtex-copy-summary-as-kill pushes summary
 of BibTeX entry to kill ring (bound to C-c C-t).
 
++++
 ** When display margins are present in a window, the fringes are now
 displayed between the margins and the buffer's text area, rather than
 at the edges of the window.
 
++++
 ** A window may now have individual fringe and scroll-bar settings,
 in addition to the individual display margin settings.
 
@@ -745,16 +920,18 @@ Such individual settings are now preserved when windows are split
 horizontally or vertically, a saved window configuration is restored,
 or when the frame is resized.
 
++++
 ** New functions frame-current-scroll-bars and window-current-scroll-bars.
 
 These functions return the current locations of the vertical and
 horizontal scroll bars in a frame or window.
 
----
++++
 ** Emacs now supports drag and drop for X.  Dropping a file on a window
    opens it, dropping text inserts the text.  Dropping a file on a dired
    buffer copies or moves the file to that directory.
 
++++
 ** Under X, mouse-wheel-mode is turned on by default.
 
 ** The X resource useXIM can be used to turn off use of XIM, which may
@@ -763,46 +940,58 @@ speed up Emacs with slow networking to the X server.
 If the configure option `--without-xim' was used to turn off use of
 XIM by default, the X resource useXIM can be used to turn it on.
 
++++
 ** `undo-only' does an undo which does not redo any previous undo.
 
+---
 ** `uniquify-strip-common-suffix' tells uniquify to prefer
 `file|dir1' and `file|dir2' to `file|dir1/subdir' and `file|dir2/subdir'.
 
++++
 ** If the user visits a file larger than `large-file-warning-threshold',
 Emacs prompts her for confirmation.
 
+---
 ** A UTF-7 coding system is available in the library `utf-7'.
 
+---
 ** GUD mode has its own tool bar for controlling execution of the inferior
 and other common debugger commands.
 
+---
 ** recentf changes.
 
 The recent file list is now automatically cleanup when recentf mode is
 enabled.  The new option `recentf-auto-cleanup' controls when to do
 automatic cleanup.
 
+The `recentf-keep' option replaces `recentf-keep-non-readable-files-p'
+and provides a more general mechanism to customize which file names to
+keep in the recent list.
+
 With the more advanced option: `recentf-filename-handler', you can
 specify a function that transforms filenames handled by recentf.  For
 example, if set to `file-truename', the same file will not be in the
 recent list with different symbolic links.
 
-To follow naming convention, `recentf-keep-non-readable-files-flag'
-and `recentf-menu-append-commands-flag' respectively replace the
-misnamed options `recentf-keep-non-readable-files-p' and
-`recentf-menu-append-commands-p'.  The old names remain available as
-aliases, but have been marked obsolete.
+To follow naming convention, `recentf-menu-append-commands-flag'
+replaces the misnamed option `recentf-menu-append-commands-p'.  The
+old name remains available as alias, but has been marked obsolete.
 
++++
 ** The default for the paper size (variable ps-paper-type) is taken
 from the locale.
 
++++
 ** Init file changes
 
 You can now put the init files .emacs and .emacs_SHELL under
 ~/.emacs.d or directly under ~.  Emacs will find them in either place.
 
+---
 ** partial-completion-mode now does partial completion on directory names.
 
+---
 ** skeleton.el now supports using - to mark the skeleton-point without
    interregion interaction.  @ has reverted to only setting
    skeleton-positions and no longer sets skeleton-point.  Skeletons
@@ -820,6 +1009,7 @@ version 5.0.2; see MH-E-NEWS for details.
 `--display' which tell Emacs respectively to evaluate the given elisp
 expression and to use the given display when visiting files.
 
++++
 ** User option `server-mode' can be used to start a server process.
 
 +++
@@ -827,6 +1017,7 @@ expression and to use the given display when visiting files.
 When the file is maintained under version control, that information
 appears between the position information and the major mode.
 
++++
 ** C-x s (save-some-buffers) now offers an option `d' to diff a buffer
 against its file, so you can see what changes you would be saving.
 
@@ -849,9 +1040,11 @@ read-only, the Emacs buffer is now read-only too.  Type C-x C-q if you
 want to make the buffer writable.  (As root, you can in fact alter the
 file.)
 
++++
 ** The new command `revert-buffer-with-coding-system' (C-x RET r)
 revisits the current file using a coding system that you specify.
 
++++
 ** The new command `recode-file-name' changes the encoding of the name
 of a file.
 
@@ -886,12 +1079,14 @@ now look at the character after point.  If a face or faces are
 specified for that character, the commands by default customize those
 faces.
 
+---
 ** New language environments: French, Ukrainian, Tajik,
 Bulgarian, Belarusian, Ukrainian, UTF-8, Windows-1255, Welsh, Latin-6,
 Latin-7, Lithuanian, Latvian, Swedish, Slovenian, Croatian, Georgian,
 Italian, Russian, Malayalam, Tamil, Russian, Chinese-EUC-TW.  (Set up
 automatically according to the locale.)
 
+---
 ** Indian support has been updated.
 The in-is13194 coding system is now Unicode-based.  CDAC fonts are
 assumed.  There is a framework for supporting various
@@ -919,6 +1114,7 @@ obsolete and is used only in the MS-DOS port of Emacs.  windows-1252
 and windows-1251 are preloaded since the former is so common and the
 latter is used by GNU locales.
 
+---
 ** The utf-8/16 coding systems have been enhanced.
 By default, untranslatable utf-8 sequences are simply composed into
 single quasi-characters.  User option `utf-translate-cjk-mode' (it is
@@ -932,13 +1128,16 @@ coding system now also encodes characters from most of Emacs's
 one-dimensional internal charsets, specifically the ISO-8859 ones.
 The utf-16 coding system is affected similarly.
 
+---
 ** New variable `utf-translate-cjk-unicode-range' controls which
 Unicode characters to translate in `utf-translate-cjk-mode'.
 
+---
 ** iso-10646-1 (`Unicode') fonts can be used to display any range of
 characters encodable by the utf-8 coding system.  Just specify the
 fontset appropriately.
 
+---
 ** New command `ucs-insert' inserts a character specified by its
 unicode.
 
@@ -962,11 +1161,13 @@ into Unicode characters (from the latin-iso8859-1 and
 mule-unicode-0100-24ff charsets) on decoding.  Note that this mode
 will often effectively clobber data with an iso-2022 encoding.
 
+---
 ** There is support for decoding Greek and Cyrillic characters into
 either Unicode (the mule-unicode charsets) or the iso-8859 charsets,
 when possible.  The latter are more space-efficient.  This is
 controlled by user option utf-fragment-on-decoding.
 
++++
 ** The new command `set-file-name-coding-system' (C-x RET F) sets
 coding system for encoding and decoding file names.  A new menu item
 (Options->Mule->Set Coding Systems->For File Name) invokes this
@@ -985,6 +1186,9 @@ be navigated with the arrow keys (like Gtk+, Mac and W32).
 ** Dialogs for Lucid/Athena and Lesstif/Motif now pops down when pressing
 ESC, like they do for Gtk+, Mac and W32.
 
+---
+**  Dialogs and menus pop down when pressing C-g.
+
 ---
 ** The menu item "Open File..." has been split into two items, "New File..."
 and "Open File...".  "Open File..." now opens only existing files.  This is
@@ -1050,15 +1254,20 @@ The variable `automatic-hscrolling' was renamed to
 `auto-hscroll-mode'.  The old name is still available as an alias.
 
 ** TeX modes:
+
 *** C-c C-c prompts for a command to run, and tries to offer a good default.
+
 +++
 *** The user option `tex-start-options-string' has been replaced
 by two new user options: `tex-start-options', which should hold
 command-line options to feed to TeX, and `tex-start-commands' which should hold
 TeX commands to use at startup.
+
+---
 *** verbatim environments are now highlighted in courier by font-lock
 and super/sub-scripts are made into super/sub-scripts.
 
++++
 *** New major mode doctex-mode for *.dtx files.
 
 +++
@@ -1069,6 +1278,7 @@ different Emacs window will select that window (minibuffer window can
 be selected only when it is active).  The default is nil, so that this
 feature is not enabled.
 
++++
 ** On X, when the window manager requires that you click on a frame to
 select it (give it focus), the selected window and cursor position
 normally changes according to the mouse click position.  If you set
@@ -1090,14 +1300,17 @@ search multiple buffers.  There is also a new command
 buffers to search by their filename.  Internally, Occur mode has been
 rewritten, and now uses font-lock, among other changes.
 
++++
 ** 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.
 
+---
 ** New user option `query-replace-skip-read-only': when non-nil,
 `query-replace' and related functions simply ignore
 a match if part of it has a read-only property.
 
++++
 ** When used interactively, the commands `query-replace-regexp' and
 `replace-regexp' allow \,expr to be used in a replacement string,
 where expr is an arbitrary Lisp expression evaluated at replacement
@@ -1108,9 +1321,11 @@ All regular expression replacement commands now allow `\?' in the
 replacement string to specify a position where the replacement string
 can be edited for each replacement.
 
++++
 ** query-replace uses isearch lazy highlighting when the new user option
 `query-replace-lazy-highlight' is non-nil.
 
+---
 ** The current match in query-replace is highlighted in new face
 `query-replace' which by default inherits from isearch face.
 
@@ -1121,6 +1336,7 @@ can optionally enable mouse highlighting only after you move the
 mouse, so that highlighting disappears when you press a key.  You can
 also disable mouse highlighting.
 
++++
 ** You can now customize if selecting a region by dragging the mouse
 shall not copy the selected text to the kill-ring by setting the new
 variable mouse-drag-copy-region to nil.
@@ -1336,6 +1552,7 @@ the previous value becomes the "backup value" of the variable.
 You can go back to that backup value by selecting "Use Backup Value"
 under the "[State]" button.
 
+---
 ** The new customization type `float' specifies numbers with floating
 point (no integers are allowed).
 
@@ -1446,6 +1663,7 @@ C-g.
 previous mark, i.e. C-u C-SPC C-SPC C-SPC ... cycles through the
 mark ring.  Use C-u C-u C-SPC to set the mark immediately after a jump.
 
++++
 ** Movement commands `beginning-of-buffer', `end-of-buffer',
 `beginning-of-defun', `end-of-defun' do not set the mark if the mark
 is already active in Transient Mark mode.
@@ -1476,9 +1694,10 @@ directory listing into a buffer.
 ** mouse-wheels can now scroll a specific fraction of the window
 (rather than a fixed number of lines) and the scrolling is `progressive'.
 
+---
 ** Unexpected yanking of text due to accidental clicking on the mouse
 wheel button (typically mouse-2) during wheel scrolling is now avoided.
-This behaviour can be customized via the mouse-wheel-click-event and
+This behavior can be customized via the mouse-wheel-click-event and
 mouse-wheel-inhibit-click-time variables.
 
 +++
@@ -1503,6 +1722,7 @@ according to the value of `save-abbrevs'.
 of `cursor-in-non-selected-windows' in the buffer that the cursor
 appears in.
 
++++
 ** The variable `cursor-in-non-selected-windows' can now be set to any
 of the recognized cursor types.
 
@@ -1536,12 +1756,17 @@ count backward from the end of the year.
 prompts for a year and a week number, and moves to the first
 day of that ISO week.
 
+---
+** The new variable `calendar-minimum-window-height' affects the
+window generated by the function `generate-calendar-window'.
+
 ---
 ** The functions `holiday-easter-etc' and `holiday-advent' now take
 optional arguments, in order to only report on the specified holiday
 rather than all. This makes customization of variables such as
 `christian-holidays' simpler.
 
+---
 ** The function `simple-diary-display' now by default sets a header line.
 This can be controlled through the variables `diary-header-line-flag'
 and `diary-header-line-format'.
@@ -1552,6 +1777,7 @@ the new function `appt-activate'. The new variable
 `appt-display-format' controls how reminders are displayed, replacing
 appt-issue-message, appt-visible, and appt-msg-window.
 
++++
 ** The new functions `diary-from-outlook', `diary-from-outlook-gnus',
 and `diary-from-outlook-rmail' can be used to import diary entries
 from Outlook-format appointments in mail messages.  The variable
@@ -1561,6 +1787,7 @@ formats.
 
 ** VC Changes
 
++++
 *** The key C-x C-q no longer checks files in or out, it only changes
 the read-only state of the buffer (toggle-read-only).  We made this
 change because we held a poll and found that many users were unhappy
@@ -1579,6 +1806,7 @@ means they are inserted before the command name.  For example, this
 allows you to specify a compression level using the "-z#" option for
 CVS.
 
++++
 *** New backends for Subversion and Meta-CVS.
 
 ** EDiff changes.
@@ -1801,12 +2029,15 @@ The functions c-hungry-backspace and c-hungry-delete-forward can be
 bound to keys to get this feature without toggling a mode.
 Contributed by Kevin Ryde.
 
-*** Better control over require-final-newline.
-The variable that controls how to handle a final newline when the
-buffer is saved, require-final-newline, is now customizable on a
-per-mode basis through c-require-final-newline.  The default is to set
-it to t only in languages that mandate a final newline in source files
-(C, C++ and Objective-C).
+*** Better control over require-final-newline.  The variable that
+controls how to handle a final newline when the buffer is saved,
+require-final-newline, is now customizable on a per-mode basis through
+c-require-final-newline.  That is a list of modes, and only those
+modes set require-final-newline.  By default that's C, C++ and
+Objective-C.
+
+The specified modes set require-final-newline based on
+mode-require-final-newline, as usual.
 
 *** Format change for syntactic context elements.
 The elements in the syntactic context returned by c-guess-basic-syntax
@@ -1963,6 +2194,7 @@ line is left untouched.
 The function c-toggle-syntactic-indentation can be used to toggle
 syntactic indentation.
 
++++
 ** The command line option --no-windows has been changed to
 --no-window-system.  The old one still works, but is deprecated.
 
@@ -1977,8 +2209,11 @@ whose names begin with space are omitted.
 
 +++
 ** 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.
+filling can break lines.  The value is now normally a list of
+functions, but it can also be a single function, for compatibility.
+
+We provide two sample predicates, fill-single-word-nobreak-p and
+fill-french-nobreak-p, for use in the value of fill-nobreak-predicate.
 
 +++
 ** New user option `add-log-always-start-new-record'.
@@ -2007,10 +2242,11 @@ from the file name or buffer contents.
 Adapt this to match the format of any compiler directives you use.
 Lines that match are never indented, and are given distinctive font-locking.
 
----
++++
 ** F90 mode has new navigation commands `f90-end-of-block',
 `f90-beginning-of-block', `f90-next-block', `f90-previous-block'.
 
+---
 ** F90 mode now has support for hs-minor-mode (hideshow).
 It cannot deal with every code format, but ought to handle a sizeable
 majority.
@@ -2046,6 +2282,7 @@ candidate is a directory.
 to the text before point.  If there is text in the buffer after point,
 it remains unchanged.
 
+---
 ** Enhanced visual feedback in *Completions* buffer.
 
 Completions lists use faces to highlight what all completions
@@ -2068,6 +2305,14 @@ displays a buffer menu.  This option turns the buffer menu off.
 ---
 ** Rmail now displays 5-digit message ids in its summary buffer.
 
++++
+** Support for `movemail' from GNU mailutils was added to Rmail.
+This version of `movemail' allows to read mail from a wide range of
+mailbox formats, including remote POP3 and IMAP4 mailboxes with or
+without TLS encryption.  If GNU mailutils is installed on the system
+and its version of `movemail' can be found in exec-path, it will be
+used instead of the native one.
+
 ---
 ** On MS Windows, the "system caret" now follows the cursor.
 This enables Emacs to work better with programs that need to track
@@ -2113,6 +2358,14 @@ some of them to initialize some of the default faces.
 `list-colors-display' shows the list of System color names, in case
 you wish to use them in other faces.
 
+---
+** On MS Windows NT/W2K/XP, Emacs uses Unicode for clipboard operations.
+Those systems use Unicode internally, so this allows Emacs to share
+multilingual text with other applications. On other versions of
+MS Windows, Emacs now uses the appropriate locale coding-system, so
+the clipboard should work correctly for your local language without
+any customizations.
+
 +++
 ** Under X11, it is possible to swap Alt and Meta (and Super and Hyper).
 The new variables `x-alt-keysym', `x-hyper-keysym', `x-meta-keysym',
@@ -2148,14 +2401,19 @@ anyone has committed to the repository since you last executed
 "checkout", "update" or "commit".  That means using cvs diff options
 -rBASE -rHEAD.
 
+---
 ** New variable `hs-set-up-overlay' allows customization of the overlay
 used to effect hiding for hideshow minor mode.  Integration with isearch
 handles the overlay property `display' specially, preserving it during
 temporary overlay showing in the course of an isearch operation.
 
+** New command `recode-region' decodes the region again by a specified
+coding system.
+
 \f
-* New modes and packages in Emacs 21.4
+* New modes and packages in Emacs 22.1
 
++++
 ** The new package conf-mode.el handles thousands of configuration files, with
 varying syntaxes for comments (;, #, //, /* */ or !), assignment (var = value,
 var : value, var value or keyword var value) and sections ([section] or
@@ -2163,8 +2421,6 @@ section { }).  Many files under /etc/, or with suffixes like .cf through
 .config, .properties (Java), .desktop (KDE/Gnome), .ini and many others are
 recognized.
 
-** The new package password.el provide a password cache and expiring mechanism.
-
 ** The new package dns-mode.el add syntax highlight of DNS master files.
 The key binding C-c C-s (`dns-mode-soa-increment-serial') can be used
 to increment the SOA serial.
@@ -2182,6 +2438,7 @@ buffers to change filenames, permissions, etc...
 ** The thumbs.el package allows you to preview image files as thumbnails
 and can be invoked from a Dired buffer.
 
++++
 ** The new python.el package is used to edit Python and Jython programs.
 
 ** The URL package (which had been part of W3) is now part of Emacs.
@@ -2296,7 +2553,7 @@ before calling it, if used while defining a macro.
 
 In addition, when ending or calling a macro with C-x e, the macro can
 be repeated immediately by typing just the `e'.  You can customize
-this behaviour via the variable kmacro-call-repeat-key and
+this behavior via the variable kmacro-call-repeat-key and
 kmacro-call-repeat-with-arg.
 
 Keyboard macros can now be debugged and edited interactively.
@@ -2340,7 +2597,11 @@ connection using base64 or uu encoding) and the `out-of-band' methods
 `rsync' to do the copying).
 
 Shell connections can be acquired via `rsh', `ssh', `telnet' and also
-`su' and `sudo'.
+`su' and `sudo'.  Ange-FTP is still supported via the `ftp' method.
+
+If you want to disable Tramp you should set
+
+  (setq tramp-default-method "ftp")
 
 ---
 ** The new global minor mode `file-name-shadow-mode' modifies the way
@@ -2393,17 +2654,58 @@ mode-lines in inverse-video.
 ** New package benchmark.el contains simple support for convenient
 timing measurements of code (including the garbage collection component).
 
+---
 ** The new Lisp library fringe.el controls the appearance of fringes.
 
 ** `cfengine-mode' is a major mode for editing GNU Cfengine
 configuration files.
 \f
-* Lisp Changes in Emacs 21.4
+* Incompatible Lisp Changes in Emacs 22.1
+
+** The new interactive-specification `G' reads a file name
+much like `F', but if the input is a directory name (even defaulted),
+it returns just the directory name.
+
++++
+** `suppress-keymap' now works by remapping `self-insert-command' to
+the command `undefined'.  (In earlier Emacs versions, it used
+`substitute-key-definition' to rebind self inserting characters to
+`undefined'.)
+
++++
+** Mode line display ignores text properties as well as the
+:propertize and :eval forms in the value of a variable whose
+`risky-local-variable' property is nil.
+\f
+* Lisp Changes in Emacs 22.1
+
++++
+** An element of buffer-undo-list can now have the form (apply FUNNAME
+. ARGS), where FUNNAME is a symbol other than t or nil.  That stands
+for a high-level change that should be undone by evaluating (apply
+FUNNAME ARGS).
+
+These entries can also have the form (apply DELTA BEG END FUNNAME . ARGS)
+which indicates that the change which took place was limited to the
+range BEG...END and increased the buffer size by DELTA.
+
++++
+** The line-move, scroll-up, and scroll-down functions will now
+modify the window vscroll to scroll through display rows that are
+taller that the height of the window, for example in the presense of
+large images.  To disable this feature, Lisp code may bind the new
+variable `auto-window-vscroll' to nil.
+
++++
+** If a buffer sets buffer-save-without-query to non-nil,
+save-some-buffers will always save that buffer without asking
+(if it's modified).
 
 +++
 ** The function symbol-file tells you which file defined
 a certain function or variable.
 
++++
 ** Lisp code can now test if a given buffer position is inside a
 clickable link with the new function `mouse-on-link-p'.  This is the
 function used by the new `mouse-1-click-follows-link' functionality.
@@ -2427,9 +2729,9 @@ back the match can start; this is a way to keep it from taking too long.
 
 +++
 ** New functions `make-progress-reporter', `progress-reporter-update',
-`progress-reporter-force-update' and `progress-reporter-done' provide
-a simple and efficient way for a command to present progress messages
-for the user.
+`progress-reporter-force-update', `progress-reporter-done', and
+`dotimes-with-progress-reporter' provide a simple and efficient way for
+a command to present progress messages for the user.
 
 ---
 ** To manipulate the File menu using easy-menu, you must specify the
@@ -2484,6 +2786,7 @@ been declared obsolete.
 the up-event that was discarded in case the last key sequence read for a
 previous 'k' or 'K' argument was a down-event; otherwise nil is used.
 
++++
 ** Function `translate-region' accepts also a char-table as TABLE
 argument.
 
@@ -2500,6 +2803,7 @@ argument.
 been renamed to `disabled-command-function'.  The variable
 `disabled-command-hook' has been kept as an obsolete alias.
 
++++
 ** Function `compute-motion' now calculates the usable window
 width if the WIDTH argument is nil.  If the TOPOS argument is nil,
 the usable window height and width is used.
@@ -2508,6 +2812,7 @@ the usable window height and width is used.
 ** `visited-file-modtime' and `calendar-time-from-absolute' now return
 a list of two integers, instead of a cons.
 
++++
 ** If a command sets transient-mark-mode to `only', that
 enables Transient Mark mode for the following command only.
 During that following command, the value of transient-mark-mode
@@ -2523,12 +2828,14 @@ example,
 
 (kbd "C-x C-f") => "\^x\^f"
 
++++
 ** The sentinel is now called when a network process is deleted with
 delete-process.  The status message passed to the sentinel for a
 deleted network process is "deleted".  The message passed to the
 sentinel when the connection is closed by the remote peer has been
 changed to "connection broken by remote peer".
 
++++
 ** If the buffer's undo list for the current command gets longer than
 undo-outer-limit, garbage collection empties it.  This is to prevent
 it from using up the available memory and choking Emacs.
@@ -2542,14 +2849,17 @@ current input method to input a character.
 click-event-style position information for a given visible buffer
 position or for a given window pixel coordinate.
 
++++
 ** skip-chars-forward and skip-chars-backward now handle
 character classes such as [:alpha:], along with individual characters
 and ranges.
 
++++
 ** Function pos-visible-in-window-p now returns the pixel coordinates
 and partial visiblity state of the corresponding row, if the PARTIALLY
 arg is non-nil.
 
++++
 ** The function `eql' is now available without requiring the CL package.
 
 +++
@@ -2579,7 +2889,7 @@ specified number of evenly sized slices (rows x columns).
 A newline may now have line-height and line-spacing text or overlay
 properties that control the height of the corresponding display row.
 
-If the line-height property value is 0, the newline does not
+If the line-height property value is t, the newline does not
 contribute to the height of the display row; instead the height of the
 newline glyph is reduced.  Also, a line-spacing property on this
 newline is ignored.  This can be used to tile small images or image
@@ -2593,10 +2903,19 @@ If the line-height property value is a float, the minimum line height
 is calculated by multiplying the default frame line height by the
 given value.
 
-If the line-height property value is a cons (RATIO . FACE), the
+If the line-height property value is a cons (FACE . RATIO), the
 minimum line height is calculated as RATIO * height of named FACE.
 RATIO is int or float.  If FACE is t, it specifies the current face.
 
+If the line-height property value is a cons (nil . RATIO), the line
+height is calculated as RATIO * actual height of the line's contents.
+
+If the line-height value is a cons (HEIGHT . TOTAL), HEIGHT specifies
+the line height as described above, while TOTAL is any of the forms
+described above and specifies the total height of the line, causing a
+varying number of pixels to be inserted after the line to make it line
+exactly that many pixels high.
+
 If the line-spacing property value is an positive integer, the value
 is used as additional pixels to insert after the display line; this
 overrides the default frame line-spacing and any buffer local value of
@@ -2605,11 +2924,7 @@ the line-spacing variable.
 If the line-spacing property may be a float or cons, the line spacing
 is calculated as specified above for the line-height property.
 
-If the line-spacing value is a cons (total . SPACING) where SPACING is
-any of the forms described above, the value of SPACING is used as the
-total height of the line, i.e. a varying number of pixels are inserted
-after each line to make each line exactly that many pixels high.
-
++++
 ** The buffer local line-spacing variable may now have a float value,
 which is used as a height relative to the default frame line height.
 
@@ -2676,6 +2991,7 @@ text property string that may be present at the current window
 position.  The cursor may now be placed on any character of such
 strings by giving that character a non-nil `cursor' text property.
 
++++
 ** New macro with-local-quit temporarily sets inhibit-quit to nil for use
 around potentially blocking or long-running code in timers
 and post-command-hooks.
@@ -2706,9 +3022,9 @@ identifing the bitmap such as `left-truncation or `continued-line'.
 previously created bitmap, or restore a built-in bitmap.
 
 *** New function 'set-fringe-bitmap-face' can now be used to set a
-specific face to be used for a specific fringe bitmap.  Normally,
-this should be a face derived from the `fringe' face, specifying
-the foreground color as the desired color of the bitmap.
+specific face to be used for a specific fringe bitmap.  The face is
+automatically merged with the `fringe' face, so normally, the face
+should only specify the foreground color of the bitmap.
 
 *** There are new display properties, left-fringe and right-fringe,
 that can be used to show a specific bitmap in the left or right fringe
@@ -2717,11 +3033,13 @@ bitmap of the display line.
 Format is 'display '(left-fringe BITMAP [FACE]), where BITMAP is a
 symbol identifying a fringe bitmap, either built-in or defined with
 `define-fringe-bitmap', and FACE is an optional face name to be used
-for displaying the bitmap.
+for displaying the bitmap instead of the default `fringe' face.
+When specified, FACE is automatically merged with the `fringe' face.
 
 *** New function `fringe-bitmaps-at-pos' returns the current fringe
 bitmaps in the display line at a given buffer position.
 
++++
 ** Multiple overlay arrows can now be defined and managed via the new
 variable `overlay-arrow-variable-list'.  It contains a list of
 varibles which contain overlay arrow position markers, including
@@ -2756,6 +3074,7 @@ then this function returns the regexp constructed from the variables
 `format' are now documented.  Some flags that were accepted but not
 implemented (such as "*") are no longer accepted.
 
++++
 ** New function `macroexpand-all' expands all macros in a form.
 It is similar to the Common-Lisp function of the same name.
 One difference is that it guarantees to return the original argument
@@ -2770,6 +3089,7 @@ the first one is kept.
 ** `declare' is now a macro.  This change was made mostly for
 documentation purposes and should have no real effect on Lisp code.
 
++++
 ** The new hook `before-save-hook' is invoked by `basic-save-buffer'
 before saving buffers.  This allows packages to perform various final
 tasks, for example; it can be used by the copyright package to make
@@ -2781,6 +3101,7 @@ sure saved files have the current year in any copyright headers.
 string.  The old behavior is available if you call
 `insert-for-yank-1' instead.
 
++++
 ** New function `get-char-property-and-overlay' accepts the same
 arguments as `get-char-property' and returns a cons whose car is the
 return value of `get-char-property' called with those arguments and
@@ -2828,13 +3149,16 @@ mouse event, e.g. [area4 mouse-1] if the hot-spot's ID is `area4'.
 
 ** Mouse event enhancements:
 
++++
 *** Mouse clicks on fringes now generates left-fringe or right-fringes
 events, rather than a text area click event.
 
++++
 *** Mouse clicks in the left and right marginal areas now includes a
 sensible buffer position corresponding to the first character in the
 corresponding text row.
 
++++
 *** Function `mouse-set-point' now works for events outside text area.
 
 +++
@@ -2870,6 +3194,7 @@ the top left corner of the object (image or character) clicked on.
 click, the x and y pixel coordinates relative to the top left corner
 of that object, and the total width and height of that object.
 
++++
 ** New function `force-window-update' can initiate a full redisplay of
 one or all windows.  Normally, this is not needed as changes in window
 contents are detected automatically.  However, certain implicit
@@ -3044,7 +3369,7 @@ created and can be changed later by `set-process-filter-multibyte'.
 buffer is multibyte, the output of the process is at first converted
 to multibyte by `string-to-multibyte' then inserted in the buffer.
 Previously, it was converted to multibyte by `string-as-multibyte',
-which was not compatible with the behaviour of file reading.
+which was not compatible with the behavior of file reading.
 
 +++
 ** New function `string-to-multibyte' converts a unibyte string to a
@@ -3167,6 +3492,7 @@ can start with this line:
 
    #!/usr/bin/emacs --script
 
++++
 ** The option --directory DIR now modifies `load-path' immediately.
 Directories are added to the front of `load-path' in the order they
 appear on the command line.  For example, with this command line:
@@ -3197,7 +3523,8 @@ and `display-warning'.
 ** The functions all-completions and try-completion now accept lists
 of strings as well as hash-tables additionally to alists, obarrays
 and functions.  Furthermore, the function `test-completion' is now
-exported to Lisp.
+exported to Lisp.  The keys in alists and hash tables may be either
+strings or symbols, which are automatically converted with to strings.
 
 ---
 ** When pure storage overflows while dumping, Emacs now prints how
@@ -3317,7 +3644,7 @@ variable is used by read-file-name-internal to filter the completion list.
 ** The new variable `read-file-name-function' can be used by lisp code
 to override the internal read-file-name function.
 
-
++++
 ** The new variable `read-file-name-completion-ignore-case' specifies
 whether completion ignores case when reading a file name with the
 `read-file-name' function.
@@ -3532,7 +3859,7 @@ elements with the following format:
 The `insert-for-yank' function looks for a yank-handler property on
 the first character on its string argument (typically the first
 element on the kill-ring).  If a yank-handler property is found,
-the normal behaviour of `insert-for-yank' is modified in various ways:
+the normal behavior of `insert-for-yank' is modified in various ways:
 
   When FUNCTION is present and non-nil, it is called instead of `insert'
 to insert the string.  FUNCTION takes one argument--the object to insert.
@@ -3549,10 +3876,12 @@ by `yank-pop' to undo the insertion of the current object.  It is
 called with two arguments, the start and end of the current region.
 FUNCTION may set `yank-undo-function' to override the UNDO value.
 
++++
 *** The functions kill-new, kill-append, and kill-region now have an
 optional argument to specify the yank-handler text property to put on
 the killed text.
 
++++
 *** The function yank-pop will now use a non-nil value of the variable
 `yank-undo-function' (instead of delete-region) to undo the previous
 yank or yank-pop command (or a call to insert-for-yank).  The function
@@ -3567,6 +3896,7 @@ A new predicate `supports' has also been added to the `defface' face
 specification language, which can be used to do this test for faces
 defined with defface.
 
+---
 ** The function face-differs-from-default-p now truly checks whether the
 given face displays differently from the default face or not (previously
 it did only a very cursory check).
@@ -3580,6 +3910,7 @@ inheritance is used when determining the value of a face attribute.
 ** New functions face-attribute-relative-p and merge-face-attribute
 help with handling relative face attributes.
 
++++
 ** The priority of faces in an :inherit attribute face-list is reversed.
 If a face contains an :inherit attribute with a list of faces, earlier
 faces in the list override later faces in the list; in previous releases
@@ -3616,11 +3947,12 @@ integer, also inhibit running timers.  This feature is generally not
 recommended, but may be necessary for specific applications, such as
 speech synthesis.
 
+---
 *** Adaptive read buffering of subprocess output.
 
 On some systems, when emacs reads the output from a subprocess, the
 output data is read in very small blocks, potentially resulting in
-very poor performance.  This behaviour can be remedied to some extent
+very poor performance.  This behavior can be remedied to some extent
 by setting the new variable process-adaptive-read-buffering to a
 non-nil value (the default), as it will automatically delay reading
 from such processes, to allowing them to produce more output before
@@ -3711,6 +4043,7 @@ status, and other information about a specific network interface.
 +++
 ** New function `call-process-shell-command'.
 
++++
 ** New function `process-file'.
 
 This is similar to `call-process', but obeys file handlers.  The file
@@ -3816,11 +4149,6 @@ Reference manual for more detailed documentation.
 ** The new mode-line construct `(:propertize ELT PROPS...)' can be
 used to add text properties to mode-line elements.
 
-+++
-** Mode line display ignores text properties as well as the
-:propertize and :eval forms in the value of a variable whose
-`risky-local-variable' property is nil.
-
 +++
 ** The new `%i' and `%I' constructs for `mode-line-format' can be used
 to display the size of the accessible part of the buffer on the mode
@@ -3925,6 +4253,7 @@ 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 defaults to `princ'.
 
++++
 ** defcustom and other custom declarations now use a default group
 (the last prior group defined in the same file) when no :group was given.
 
@@ -4067,6 +4396,7 @@ hold the largest and smallest possible integer values.
 The Windows specific variable w32-system-coding-system, which was
 formerly used for that purpose is now an alias for locale-coding-system.
 
+---
 ** Functions y-or-n-p, read-char, read-key-sequence and the like, that
 display a prompt but don't use the minibuffer, now display the prompt
 using the text properties (esp. the face) of the prompt string.
@@ -4074,6 +4404,7 @@ using the text properties (esp. the face) of the prompt string.
 ** New function x-send-client-message sends a client message when
 running under X.
 
++++
 ** Arguments for remove-overlays are now optional, so that you can remove
 all overlays in the buffer by just calling (remove-overlay).
 
@@ -4098,6 +4429,7 @@ data structures.
 *** The TCL package tcl-mode.el was replaced by tcl.el.
 This was actually done in Emacs-21.1, and was not documented.
 
++++
 *** The new package button.el implements simple and fast `clickable buttons'
 in emacs buffers.  `buttons' are much lighter-weight than the `widgets'
 implemented by widget.el, and can be used by lisp code that doesn't
@@ -4139,7 +4471,7 @@ By default `unify-8859-on-encoding-mode' is turned on.
 If you want the old behavior, set selection-coding-system to
 compound-text, which may be significantly more efficient.  Using
 compound-text-with-extensions seems to be necessary only for decoding
-text from applications under XFree86 4.2, whose behaviour is actually
+text from applications under XFree86 4.2, whose behavior is actually
 contrary to the compound text specification.
 
 \f
@@ -12134,7 +12466,7 @@ For example, if a string or comment terminating character is deleted, then if
 this feature is enabled subsequent lines in the buffer will be correctly
 refontified to reflect their new syntactic context.  Previously, only the line
 containing the deleted character would be refontified and you would have to use
-the command M-g M-g (font-lock-fontify-block) to refontify some lines.
+the command M-o M-o (font-lock-fontify-block) to refontify some lines.
 
 As a consequence of this new feature, two other variables have changed: