]> code.delx.au - gnu-emacs/blobdiff - etc/NEWS
Upgraded to MH-E version 7.82.
[gnu-emacs] / etc / NEWS
index e28ba30d3f403c1f69ffacd479047a952a71a3a7..c10ec4531b2e593546d4edf02a91ed2c73359606 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -4,6 +4,8 @@ See the end for copying conditions.
 
 Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
 For older news, see the file ONEWS
+You can narrow news to the specific version by calling
+`view-emacs-news' with a prefix argument or by typing C-u C-h C-n.
 
 Temporary note:
  +++ indicates that the appropriate manual has already been updated.
@@ -14,8 +16,17 @@ so we will look at it and add it to the manual.
 \f
 * Installation Changes in Emacs 21.4
 
+** Emacs includes now support for loading image libraries on demand.
+(Currently this feature is only used on MS Windows.)  You can configure
+the supported image types and their associated dynamic libraries by
+setting the variable `image-library-alist'.
+
 ---
-** A Bulgarian translation of the Emacs Tutorial is available.
+** New translations of the Emacs Tutorial are available in the following
+   languages: Brasilian, Bulgarian, Chinese (both with simplified and
+   traditional characters), French, and Italian.  Type `C-u C-h t' to
+   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
@@ -81,21 +92,84 @@ See the files mac/README and mac/INSTALL for build instructions.
 ** A French translation of the `Emacs Survival Guide' is available.
 
 ---
-** A French translation of the Emacs Tutorial is available.
 ** Building with -DENABLE_CHECKING does not automatically build with union
 types any more.  Add -DUSE_LISP_UNION_TYPE if you want union types.
 
 \f
 * Changes in Emacs 21.4
 
+** global-whitespace-mode is a new alias for whitespace-global-mode.
+
++++
+** There are now two new regular expression operators, \_< and \_>,
+for matching the beginning and end of a symbol.  A symbol is a
+non-empty sequence of either word or symbol constituent characters, as
+specified by the syntax table.
+
+** Passing resources on the command line now works on MS Windows.
+You can use --xrm to pass resource settings to Emacs, overriding any
+existing values.  For example:
+
+  emacs --xrm "Emacs.Background:red" --xrm "Emacs.Geometry:100x20"
+
+will start up Emacs on an initial frame of 100x20 with red background,
+irrespective of geometry or background setting on the Windows registry.
+
+** 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
+`help-default-arg-highlight'.
+
 ---
-** The IELM prompt is now, by default, read-only.  This can be
-controlled with the new user option `ielm-prompt-read-only'.
+** The comint prompt can now be made read-only, using the new user
+option `comint-prompt-read-only'.  This is not enabled by default,
+except in IELM buffers.  The read-only status of IELM prompts can be
+controlled with the new user option `ielm-prompt-read-only', which
+overrides `comint-prompt-read-only'.
+
+The new commands `comint-kill-whole-line' and `comint-kill-region'
+support editing comint buffers with read-only prompts.
+
+`comint-kill-whole-line' is like `kill-whole-line', but ignores both
+read-only and field properties.  Hence, it always kill entire
+lines, including any prompts.
+
+`comint-kill-region' is like `kill-region', except that it ignores
+read-only properties, if it is safe to do so.  This means that if any
+part of a prompt is deleted, then the entire prompt must be deleted
+and that all prompts must stay at the beginning of a line.  If this is
+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 will now prompt you for a port number with C-u M-x telnet.
+** Telnet now prompts you for a port number with C-u M-x telnet.
 
 +++
 ** New command line option -Q.
@@ -114,9 +188,9 @@ 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
-displayed at the end of a file buffer in any window, it will stay at
+displayed at the end of a file buffer in any window, it stays at
 the end of the buffer in that window.  This allows to tail a file:
-just put point at the end of the buffer and it will stay there.  This
+just put point at the end of the buffer and it stays there.  This
 rule applies to file buffers.  For non-file buffers, the behavior may
 be mode dependent.
 
@@ -124,7 +198,7 @@ be mode dependent.
 other potential problems when deciding which non-file buffers to
 revert.  This matters especially if Global Auto Revert mode is enabled
 and `global-auto-revert-non-file-buffers' is non-nil.  Auto Revert
-mode will only revert a non-file buffer if the buffer has a non-nil
+mode only reverts a non-file buffer if the buffer has a non-nil
 `revert-buffer-function' and a non-nil `buffer-stale-function', which
 decides whether the buffer should be reverted.  Currently, this means
 that auto reverting works for Dired buffers (although this may not
@@ -162,7 +236,7 @@ The new file etc/compilation.txt gives examples of each type of message.
 ** 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 will again be loaded with the new `grep-mode'.
+can be saved and automatically revisited with the new Grep mode.
 
 ** M-x diff uses diff-mode instead of compilation-mode.
 
@@ -174,6 +248,37 @@ 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
 using strokes as an input method.
 
++++
+** 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.
+
+*** 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.
+
+*** New customizable variables:
+  - desktop-save. Determins whether the desktop should be saved when it is
+    killed.
+  - desktop-file-name-format.
+  - 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.
+
+*** 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.
+
 ---
 ** The saveplace.el package now filters out unreadable files.
 When you exit Emacs, the saved positions in visited files no longer
@@ -288,13 +393,15 @@ The technique of setting `sql-mode-font-lock-defaults' directly in
 your .emacs will no longer establish the default highlighting -- Use
 `sql-product' to accomplish this.
 
+ANSI keywords are always highlighted.
+
 *** The function `sql-add-product-keywords' can be used to add
 font-lock rules to the product specific rules.  For example, to have
 all identifiers ending in "_t" under MS SQLServer treated as a type,
 you would use the following line in your .emacs file:
 
   (sql-add-product-keywords 'ms
-             '("\\<\\w+_t\\>" . font-lock-type-face))
+             '(("\\<\\w+_t\\>" . font-lock-type-face)))
 
 *** Oracle support includes keyword highlighting for Oracle 9i.  Most
 SQL and PL/SQL keywords are implemented.  SQL*Plus commands are
@@ -311,6 +418,13 @@ If the username and password are not provided to `sql-ms', osql is
 called with the -E command line argument to use the operating system
 credentials to authenticate the user.
 
+*** Postgres support is enhanced.
+Keyword highlighting of Postgres 7.3 is implemented.  Prompting for
+the username and the pgsql `-U' option is added.
+
+*** MySQL support is enhanced.
+Keyword higlighting of MySql 4.0 is implemented.
+
 *** Imenu support has been enhanced to locate tables, views, indexes,
 packages, procedures, functions, triggers, sequences, rules, and
 defaults.
@@ -324,7 +438,7 @@ with special modes such as Tar mode.
 
 ** Enhancements to apropos commands:
 
-*** The apropos commands will now accept a list of words to match.
+*** 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.
@@ -348,14 +462,24 @@ 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.
 
-*** New Dired command `dired-compare-directories' to mark files with
-different file attributes in two dired buffers.
+*** New Dired command `dired-compare-directories' marks files
+with different file attributes in two dired buffers.
+
++++
+*** New Dired command `dired-do-touch' (bound to T) changes timestamps
+of marked files with the value entered in the minibuffer.
 
 +++
 *** In Dired's ! command (dired-do-shell-command), `*' and `?' now
@@ -371,18 +495,50 @@ 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.
+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
+mode toggling function instead.
 
 ** Info mode:
+
+*** A numeric prefix argument of `info' selects an Info buffer
+with the number appended to the *info* buffer name.
+
+*** 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
+from the tree structure of menus of the current Info file.
+
+*** New command `info-apropos' searches the indices of the known
+Info files on your system for a string, and builds a menu of the
+possible matches.
+
+*** New command `Info-copy-current-node-name' (bound to w) copies
+the current Info node name into the kill ring.  With a zero prefix
+arg, puts the node name inside the `info' function call.
+
+*** New command `Info-search-case-sensitively' (bound to S).
+
+*** New command `Info-search-next' (unbound) repeats the last search
+without prompting for a new search string.
+
+*** New face `info-xref-visited' distinguishes visited nodes from unvisited
+and a new option `Info-fontify-visited-nodes' to control this.
+
+*** http and ftp links in Info are now operational: they look like cross
+references and following them calls `browse-url'.
+
 +++
 *** Info now hides node names in menus and cross references by default.
 If you prefer the old behavior, you can set the new user option
 `Info-hide-note-references' to nil.
 
-*** The new command `info-apropos' searches the indices of the known
-Info files on your system for a string, and builds a menu of the
-possible matches.
-
 *** Images in Info pages are supported.
 Info pages show embedded images, in Emacs frames with image support.
 Info documentation that includes images, processed with makeinfo
@@ -398,6 +554,8 @@ version 4.7 or newer, compiles to Info pages with embedded images.
 'sql-sqlite'.
 
 ** BibTeX mode:
+*** The new command bibtex-entry-update (bound to C-c C-u) updates
+an existing BibTeX entry.
 *** New `bibtex-entry-format' option `required-fields', enabled by default.
 *** bibtex-maintain-sorted-entries can take values `plain',
 `crossref', and `entry-class' which control the sorting scheme used
@@ -459,7 +617,7 @@ XIM by default, the X resource useXIM can be used to turn it on.
 `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 will prompt her for confirmation.
+Emacs prompts her for confirmation.
 
 ** A UTF-7 coding system is available in the library `utf-7'.
 
@@ -502,7 +660,7 @@ You can now put the init files .emacs and .emacs_SHELL under
 
 ** MH-E changes.
 
-Upgraded to MH-E version 7.3. There have been major changes since
+Upgraded to MH-E version 7.82. There have been major changes since
 version 5.0.2; see MH-E-NEWS for details.
 
 +++
@@ -536,8 +694,8 @@ directory is used for auto-save files of mail buffers.  It defaults to
 +++
 ** When you are root, and you visit a file whose modes specify
 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 will in fact be able
-to alter the file.)
+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.
@@ -559,7 +717,7 @@ in the menu dropped down when you click "Buffers" from the menu bar.
 
 `buffers-menu-show-directories' controls whether the menu displays
 leading directories as part of the file name visited by the buffer.
-If its value is `unless-uniquify', the default, directories will be
+If its value is `unless-uniquify', the default, directories are
 shown unless uniquify-buffer-name-style' is non-nil.  The value of nil
 and t turn the display of directories off and on, respectively.
 
@@ -610,11 +768,12 @@ 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 (mostly representing CJK
-characters) are simply composed into single quasi-characters.  User
-option `utf-translate-cjk' arranges to translate many utf-8 CJK
-character sequences into real Emacs characters in a similar way to the
-Mule-UCS system.  This uses significant space, so is not the default.
+By default, untranslatable utf-8 sequences are simply composed into
+single quasi-characters.  User option `utf-translate-cjk-mode' (it is
+turned on by default) arranges to translate many utf-8 CJK character
+sequences into real Emacs characters in a similar way to the Mule-UCS
+system.  As this loads a fairly big data on demand, people who are not
+interested in CJK characters may want to customize it to nil.
 You can augment/amend the CJK translation via hash tables
 `ucs-mule-cjk-to-unicode' and `ucs-unicode-to-mule-cjk'.  The utf-8
 coding system now also encodes characters from most of Emacs's
@@ -637,7 +796,7 @@ sets plus some other 8-bit sets, but can be extended.  For instance,
 translation works amongst the Emacs ...-iso8859-... charsets and the
 mule-unicode-... ones.
 
-By default this translation will happen automatically on encoding.
+By default this translation happens automatically on encoding.
 Self-inserting characters are translated to make the input conformant
 with the encoding of the buffer in which it's being used, where
 possible.
@@ -715,7 +874,7 @@ the window edge point is allowed to get before automatic hscrolling
 will horizontally scroll the window.  The default value is 5.
 
 The variable `hscroll-step' determines how many columns automatic
-hscrolling will scroll the window when point gets too close to the
+hscrolling scrolls the window when point gets too close to the
 window edge.  If its value is zero, the default, Emacs scrolls the
 window so as to center point.  If its value is an integer, it says how
 many columns to scroll.  If the value is a floating-point number, it
@@ -754,9 +913,9 @@ to give it focus.
 +++
 ** The new command `describe-char' (C-u C-x =) pops up a buffer with
 description various information about a character, including its
-encodings and syntax, its text properties, overlays, and widgets at
-point.  You can get more information about some of them, by clicking
-on mouse-sensitive areas or moving there and pressing RET.
+encodings and syntax, its text properties, how to input, overlays, and
+widgets at point.  You can get more information about some of them, by
+clicking on mouse-sensitive areas or moving there and pressing RET.
 
 +++
 ** The new command `multi-occur' is just like `occur', except it can
@@ -765,6 +924,24 @@ 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
+time.  In many cases, this will be more convenient than using
+`query-replace-regexp-eval'.  `\#' in a replacement string now refers
+to the count of replacements already made by the replacement command.
+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.
+
 +++
 ** Emacs normally highlights mouse sensitive text whenever the mouse
 is over the text.  By setting the new variable `mouse-highlight', you
@@ -772,6 +949,10 @@ 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.
+
 +++
 ** font-lock: in modes like C and Lisp where the fontification assumes that
 an open-paren in column 0 is always outside of any string or comment,
@@ -917,6 +1098,16 @@ making the decision in a heuristic way.  This new job is done by the
 command `isearch-yank-word-or-char'.  To restore the old behavior,
 bind C-w to `isearch-yank-word' in `isearch-mode-map'.
 
++++
+** C-M-w deletes and C-M-y grabs a character in isearch mode.
+Another method to grab a character is to enter the minibuffer by `M-e'
+and to type `C-f' at the end of the search string in the minibuffer.
+
++++
+** M-% and C-M-% typed in isearch mode invoke `query-replace' and
+`query-replace-regexp' with the current search string inserted
+in the minibuffer as initial input for the string to replace.
+
 +++
 ** Yanking text now discards certain text properties that can
 be inconvenient when you did not expect them.  The variable
@@ -931,8 +1122,8 @@ remove `turn-on-font-lock' from `Info-mode-hook'.
 
 +++
 ** M-x grep now tries to avoid appending `/dev/null' to the command line
-by using GNU grep `-H' option instead.  M-x grep will automatically
-detect whether this is possible or not the first time it is invoked.
+by using GNU grep `-H' option instead.  M-x grep automatically
+detects whether this is possible or not the first time it is invoked.
 When `-H' is used, the grep command line supplied by the user is passed
 unchanged to the system to execute, which allows more complicated
 command lines to be used than was possible before.
@@ -994,6 +1185,12 @@ counter to the specified source line (the one where point is).
 
   Minor Improvements
 
+*** The STARTTLS elisp wrapper (starttls.el) can now use GNUTLS
+instead of the OpenSSL based "starttls" tool.  For backwards
+compatibility, it prefers "starttls", but you can toggle
+`starttls-use-gnutls' to switch to GNUTLS (or simply remove the
+"starttls" tool).
+
 *** Do not allow debugger output history variable to grow without bounds.
 
 +++
@@ -1025,10 +1222,10 @@ refontification takes place.
 +++
 ** Marking commands extend the region when invoked multiple times.  If
 you hit M-C-SPC (mark-sexp), M-@ (mark-word), M-h (mark-paragraph), or
-C-M-h (mark-defun) 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.  This feature also works for mark-end-of-sentence, if you
-bind that to a key.
+C-M-h (mark-defun) repeatedly, the marked region extends each time, so
+you can mark the next two sexps with M-C-SPC M-C-SPC, for example.
+This feature also works for mark-end-of-sentence, if you bind that to
+a key.
 
 +++
 ** Some commands do something special in Transient Mark mode when the
@@ -1050,7 +1247,7 @@ C-g.
 
 +++
 ** A prefix argument is no longer required to repeat a jump to a
-previous mark, i.e. C-u C-SPC C-SPC C-SPC ... will cycle through the
+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.
 
 +++
@@ -1140,6 +1337,13 @@ 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
+`diary-outlook-formats' can be customized to recognize additional
+formats.
+
+
 ** VC Changes
 
 *** The key C-x C-q no longer checks files in or out, it only changes
@@ -1250,7 +1454,7 @@ writes tags pointing to the source file.
 *** New option --parse-stdin=FILE.
 This option is mostly useful when calling etags from programs.  It can
 be used (only once) in place of a file name on the command line.  Etags
-will read from standard input and mark the produced tags as belonging to
+reads from standard input and mark the produced tags as belonging to
 the file FILE.
 
 +++
@@ -1558,8 +1762,8 @@ 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.
+When this option is enabled, M-x add-change-log-entry always
+starts a new record regardless of when the last record is.
 
 +++
 ** SGML mode has indentation and supports XML syntax.
@@ -1592,6 +1796,10 @@ 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.
+
 ---
 ** Prolog mode has a new variable `prolog-font-lock-keywords'
 to support use of font-lock.
@@ -1649,6 +1857,8 @@ subprocesses inherit.
 
 ** Grep has been decoupled from compilation mode setup.
 
+*** There's a new separate package grep.el.
+
 *** Grep commands now have their own submenu and customization group.
 
 *** The new variables `grep-window-height', `grep-auto-highlight', and
@@ -1684,7 +1894,7 @@ depend on external libraries.  All of these libraries have been ported
 to Windows, and can be found in both source and binary form at
 http://gnuwin32.sourceforge.net/.  Note that libpng also depends on
 zlib, and tiff depends on the version of jpeg that it was compiled
-against.
+against.  For additional information, see nt/INSTALL.
 
 ---
 ** Sound is now supported on MS Windows.
@@ -1705,13 +1915,13 @@ pass them to Windows to be handled with system-wide functions.
 
 ---
 ** Emacs takes note of colors defined in Control Panel on MS-Windows.
-The Control Panel defines some default colors for applications in
-much the same way as wildcard X Resources do on X.  Emacs now
-adds these colors to the colormap prefixed by System (eg SystemMenu
-for the default Menu background, SystemMenuText for the foreground),
-and uses some of them to initialize some of the default faces.
-`list-colors-display' will show the list of System color names if you
-wish to use them in other faces.
+The Control Panel defines some default colors for applications in much
+the same way as wildcard X Resources do on X.  Emacs now adds these
+colors to the colormap prefixed by System (eg SystemMenu for the
+default Menu background, SystemMenuText for the foreground), and uses
+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.
 
 +++
 ** Under X11, it is possible to swap Alt and Meta (and Super and Hyper).
@@ -1736,9 +1946,34 @@ to view diffs or log entries directly from vc-annotate-mode:
     D:  shows the diff of the revision at line with its previous revision
     L:  shows the log of the revision at line
     W:  annotates the workfile (most up to date) version
+
++++
+** In pcl-cvs mode, there is a new `d y' command to view the diffs
+between the local version of the file and yesterday's head revision
+in the repository.
+
++++
+** In pcl-cvs mode, there is a new `d r' command to view the changes
+anyone has committed to the repository since you last executed
+"checkout", "update" or "commit".  That means using cvs diff options
+-rBASE -rHEAD.
+
 \f
 * New modes and packages in Emacs 21.4
 
+** The new package flymake.el does on-the-fly syntax checking of program
+source files.  See the Flymake's Info manual for more details.
+
+** The library tree-widget.el provides a new widget to display a set
+of hierarchical data as an outline.  For example, the tree-widget is
+well suited to display a hierarchy of directories and files.
+
+** The wdired.el package allows you to use normal editing commands on Dired
+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.
@@ -1826,6 +2061,7 @@ where the keys work like (shifted) arrow keys, home/end, etc., and
 are left unspecified and can be bound individually through the global
 or local keymaps.
 
++++
 ** The new kmacro package provides a simpler user interface to
 emacs' keyboard macro facilities.
 
@@ -1856,7 +2092,7 @@ this behaviour via the variable kmacro-call-repeat-key and
 kmacro-call-repeat-with-arg.
 
 Keyboard macros can now be debugged and edited interactively.
-C-x C-k SPC will step through the last keyboard macro one key sequence
+C-x C-k SPC steps through the last keyboard macro one key sequence
 at a time, prompting for the actions to take.
 
 ---
@@ -1949,31 +2185,79 @@ mode-lines in inverse-video.
 ** New package benchmark.el contains simple support for convenient
 timing measurements of code (including the garbage collection component).
 
-** 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 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.
-
-** The new Lisp library fringe.el controls the apperance of fringes.
+** 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
 
-** New functions posn-at-point and posn-at-x-y returns
++++
+** Both the variable and the function `disabled-command-hook' have
+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.
+
++++
+** `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
+is `identity'.  If it is still `identity' at the end of the command,
+it changes to nil.
+
++++
+** Cleaner way to enter key sequences.
+
+You can enter a constant key sequence in a more natural format, the
+same one used for saving keyboard macros, using the macro `kbd'.  For
+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.
+
+---
+** New function quail-find-key returns a list of keys to type in the
+current input method to input a character.
+
++++
+** New functions posn-at-point and posn-at-x-y return
 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.
 
++++
+** The new primitive `set-file-times' sets a file's access and
+modification times.  Magic file name handlers can handle this
+operation.
+
+** file-remote-p now returns an identifier for the remote system,
+if the file is indeed remote.  (Before, the return value was t in
+this case.)
+
 ** The display space :width and :align-to text properties are now
 supported on text terminals.
 
@@ -1988,9 +2272,45 @@ specify image slice (X Y WIDTH HEIGHT).
 *** New function insert-sliced-image inserts a given image as a
 specified number of evenly sized slices (rows x columns).
 
-*** Trailing newlines no longer contribute to the height of a display
-row; instead the height of the newline glyph is reduced.  This allows
-sliced images to use a height less than the default line height.
+** New line-height and line-spacing properties for newline characters
+
+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
+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
+slices without adding blank areas between the images.
+
+If the line-height property value is a positive integer, the value
+specifies the minimum line height in pixels.  If necessary, the line
+height it increased by increasing the line's ascent.
+
+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
+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-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
+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.
 
 ** Enhancements to stretch display properties
 
@@ -2662,6 +2982,11 @@ 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.
+
 +++
 ** The new function `read-directory-name' can be used instead of
 `read-file-name' to read a directory name; when used, completion
@@ -2906,6 +3231,10 @@ 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).
+
 +++
 ** face-attribute, face-foreground, face-background, and face-stipple now
 accept a new optional argument, INHERIT, which controls how face
@@ -2915,6 +3244,13 @@ 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
+of Emacs, the order was the opposite.  This change was made so that
+:inherit face-lists operate identically to face-lists in text `face'
+properties.
+
 +++
 ** Enhancements to process support
 
@@ -2937,7 +3273,13 @@ and modify elements on this property list.
 The new low-level functions process-plist and set-process-plist are
 used to access and replace the entire property list of a process.
 
-???
+*** Function accept-process-output now has an optional fourth arg
+`just-this-one'.  If non-nil, only output from the specified process
+is handled, suspending output from other processes.  If value is an
+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
@@ -3257,6 +3599,11 @@ it in that buffer.
 ** In `replace-match', the replacement text no longer inherits
 properties from surrounding text.
 
++++
+** The list returned by `(match-data t)' now has the buffer as a final
+element, if the last match was on a buffer.  `set-match-data'
+accepts such a list for restoring the match state.
+
 +++
 ** New function `buffer-local-value'.
 
@@ -3380,6 +3727,9 @@ 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).
+
 ** New packages:
 
 *** The new package gdb-ui.el provides an enhanced graphical interface to
@@ -3420,10 +3770,7 @@ been added.
 with Custom.
 
 ** UTF-16 coding systems are available, encoding the same characters
-as mule-utf-8.  Coding system `utf-16-le-dos' is useful as the value
-of `selection-coding-system' in MS Windows, allowing you to paste
-multilingual text from the clipboard.  Set it interactively with
-C-x RET x or in .emacs with `(set-selection-coding-system 'utf-16-le-dos)'.
+as mule-utf-8.
 
 ** There is a new language environment for UTF-8 (set up automatically
 in UTF-8 locales).