]> code.delx.au - gnu-emacs/blobdiff - etc/NEWS
*** empty log message ***
[gnu-emacs] / etc / NEWS
index 18ea0f3a544adbb25fb00dbb7b071a94ff163710..4c9564b24eaf69e21eb2dce498e683400c94f183 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,6 +16,14 @@ 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.
+
 ** 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).
@@ -74,18 +84,238 @@ See the files mac/README and mac/INSTALL for build instructions.
 ---
 ** Support for GNU/Linux systems on X86-64 machines was added.
 
----
-** A Bulgarian translation of the Emacs Tutorial is available.
-
 ---
 ** 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
 
+** 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 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 will 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.
+
++++
+** New command line option -Q.
+
+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.
+
+** 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
+displayed at the end of a file buffer in any window, it will stay 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
+rule applies to file buffers.  For non-file buffers, the behavior may
+be mode dependent.
+
+** 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
+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
+`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
+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
+recognized as warnings or informational come in orange or green, instead of
+red.  Informational messages are by default skipped with `next-error'
+(controlled by `compilation-skip-threshold').
+
+Location data is collected on the fly as the *compilation* buffer changes.
+This means you could modify messages to make them point to different files.
+This also means you can not go to locations of messages you may have deleted.
+
+The variable `compilation-error-regexp-alist' has now become customizable.  If
+you had added your own regexps to this, you'll probably need to include a
+leading `^', otherwise they'll match anywhere on a line.  There is now also a
+`compilation-mode-font-lock-keywords' and it nicely handles all the checks
+that configure outputs and -o options so you see at a glance where you are.
+
+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'.
+
+** 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
+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
+include files that aren't readable, e.g. files that don't exist.
+Customize the new option `save-place-forget-unreadable-files' to nil
+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 &
+       % emacs --eval '(setq server-name "bar")' -f server-start &
+       % emacsclient -s foo file1
+       % emacsclient -s bar file2
+
+** On window systems, lines which are exactly as wide as the window
+(not counting the final newline character) are no longer broken into
+two lines on the display (with just the newline on the second line).
+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.
+
+** The buffer boundaries (i.e. first and last line in the buffer) may
+now be marked with angle bitmaps in the fringes.  In addition, up and
+down arrow bitmaps may be shown at the top and bottom of the left or
+right fringe if the window can be scrolled in either direction.
+
+This behavior is activated by setting the buffer-local variable
+`indicate-buffer-boundaries' to a non-nil value.  The default value of
+this variable is found in `default-indicate-buffer-boundaries'.
+
+If value is `left' or `right', both angle and arrow bitmaps are
+displayed in the left or right fringe, resp.  Any other non-nil value
+causes the bitmap on the top line to be displayed in the left fringe,
+and the bitmap on the bottom line in the right fringe.
+
+If value is a cons (ANGLES . ARROWS), the car specifies the position
+of the angle bitmaps, and the cdr specifies the position of the arrow
+bitmaps.
+
+For example, (t .  right) places the top angle bitmap 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 (left . nil).
+
 ** 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
@@ -152,13 +382,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
@@ -167,7 +399,7 @@ highlighted in `font-lock-doc-face'.
 *** Microsoft SQLServer support has been significantly improved.
 Keyword highlighting for SqlServer 2000 is implemented.
 sql-interactive-mode defaults to use osql, rather than isql, because
-osql flushes it's error stream more frequently.  Thus error messages
+osql flushes its error stream more frequently.  Thus error messages
 are displayed when they occur rather than when the session is
 terminated.
 
@@ -175,6 +407,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.
@@ -212,15 +451,100 @@ 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' 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
+control substitution of the file names only when they are surrounded
+by whitespace.  This means you can now use them as shell wildcards
+too.  If you want to use just plain `*' as a wildcard, type `*""'; the
+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
+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.
+*** 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.
 
+*** 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
+version 4.7 or newer, compiles to Info pages with embedded images.
+
++++
+*** The default value for `Info-scroll-prefer-subnodes' is now nil.
+
+---
+*** Info-index offers completion.
+
 ** Support for the SQLite interpreter has been added to sql.el by calling
 '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
@@ -261,7 +585,12 @@ 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
-horisontal scroll bars in a frame or window.
+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.
 
@@ -271,9 +600,6 @@ 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.
 
-** `describe-char' can show data from the Unicode database file.  See
-user option `unicode-data'.
-
 ** `undo-only' does an undo which does not redo any previous undo.
 
 ** `uniquify-strip-common-suffix' tells uniquify to prefer
@@ -431,11 +757,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
@@ -565,12 +892,19 @@ 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
+the variable x-mouse-click-focus-ignore-position to t, the selected
+window and cursor position do not change when you click on a frame
+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
@@ -586,6 +920,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,
@@ -624,9 +962,6 @@ mode-line.
 in a directory or in a file.  See the documentation of the user option
 `display-time-mail-directory'.
 
-+++
-** The default value for `Info-scroll-prefer-subnodes' is now nil.
-
 ---
 ** LDAP support now defaults to ldapsearch from OpenLDAP version 2.
 
@@ -665,6 +1000,13 @@ than 8 colors.  For example, for `xterm', 16-color, 88-color, and
 the extended number of colors, and defines the appropriate entries for
 all of these colors.
 
++++
+*** Emacs now uses the full range of available colors for the default
+faces when running on a color terminal, including 16-, 88-, and
+256-color xterms.  This means that when you run "emacs -nw" on an
+88-color or 256-color xterm, you will see essentially the same face
+colors as on X.
+
 ---
 *** There's a new support for colors on `rxvt' terminal emulator.
 
@@ -676,9 +1018,6 @@ When Emacs is invoked on a window system, the new command-line options
 whose width, height, or both width and height take up the entire
 screen size.  (For now, this does not work with some window managers.)
 
----
-** Info-index offers completion.
-
 ---
 ** Emacs now tries to set up buffer coding systems for HTML/XML files
 automatically.
@@ -807,6 +1146,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 will prefer "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.
 
 +++
@@ -814,19 +1159,6 @@ counter to the specified source line (the one where point is).
 to hide its text.  This should be mostly transparent but slightly
 changes the behavior of motion commands like C-e and C-p.
 
-+++
-** In Dired's ! command (dired-do-shell-command), `*' and `?' now
-control substitution of the file names only when they are surrounded
-by whitespace.  This means you can now use them as shell wildcards
-too.  If you want to use just plain `*' as a wildcard, type `*""'; the
-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.
-
 +++
 ** Unquoted `$' in file names do not signal an error any more when
 the corresponding environment variable does not exist.
@@ -834,13 +1166,20 @@ Instead, the `$ENVVAR' text is left as is, so that `$$' quoting
 is only rarely needed.
 
 ---
-** jit-lock can now be delayed with `jit-lock-defer-time'.
+** JIT-lock changes
+*** jit-lock can now be delayed with `jit-lock-defer-time'.
 
 If this variable is non-nil, its value should be the amount of Emacs
 idle time in seconds to wait before starting fontification.  For
 example, if you set `jit-lock-defer-time' to 0.25, fontification will
 only happen after 0.25s of idle time.
 
+*** contextual refontification is now separate from stealth fontification.
+
+jit-lock-defer-contextually is renamed jit-lock-contextually and
+jit-lock-context-time determines the delay after which contextual
+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
@@ -888,9 +1227,6 @@ With positive arg, M-h marks the current and the following paragraphs;
 if the arg is negative, it marks the current and the preceding
 paragraphs.
 
-** In Dired, the w command now copies the current line's file name
-into the kill ring.
-
 +++
 ** The variables dired-free-space-program and dired-free-space-args
 have been renamed to directory-free-space-program and
@@ -939,7 +1275,7 @@ attempt to construct a unique auto-save name (e.g. for remote files).
 +++
 ** Diary sexp entries can have custom marking in the calendar.
 Diary sexp functions which only apply to certain days (such as
-`diary-block' or `diary-cyclic' now take an optional parameter MARK,
+`diary-block' or `diary-cyclic') now take an optional parameter MARK,
 which is the name of a face or a single-character string indicating
 how to highlight the day in the calendar display.  Specifying a
 single-character string as @var{mark} places the character next to the
@@ -962,6 +1298,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
@@ -1414,6 +1757,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.
@@ -1441,6 +1788,20 @@ 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
+have in common and where they begin to differ.
+
+The common prefix shared by all possible completions uses the face
+`completions-common-part', while the first character that isn't the
+same uses the face `completions-first-difference'.  By default,
+`completions-common-part' inherits from `default', and
+`completions-first-difference' inherits from `bold'.  The idea of
+`completions-common-part' is that you can use it to make the common
+parts less visible than normal, so that the rest of the differing
+parts is, by contrast, slightly highlighted.
+
 +++
 ** New user option `inhibit-startup-buffer-menu'.
 When loading many files, for instance with `emacs *', Emacs normally
@@ -1492,7 +1853,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.
@@ -1529,8 +1890,43 @@ use for the modifiers.  For example, the following two lines swap
 Meta and Alt:
     (setq x-alt-keysym 'meta)
     (setq x-meta-keysym 'alt)
+
++++
+** vc-annotate-mode enhancements
+
+In vc-annotate mode, you can now use the following key bindings for
+enhanced functionality to browse the annotations of past revisions, or
+to view diffs or log entries directly from vc-annotate-mode:
+
+    P:  annotates the previous revision
+    N:  annotates the next revision
+    J:  annotates the revision at line
+    A:  annotates the revision previous to line
+    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.
+
 \f
-* New modes and packages in 21.4
+* 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 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.
 
 +++
 ** The new global minor mode `size-indication-mode' (off by default)
@@ -1615,6 +2011,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.
 
@@ -1753,6 +2150,245 @@ configuration files.
 \f
 * Lisp Changes in Emacs 21.4
 
+** If a command sets transient-mark-mode to `only', that 
+enables Transient Mark mode for the following command, only.
+
++++
+** 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.
+
+** The display space :width and :align-to text properties are now
+supported on text terminals.
+
+** Support for displaying image slices
+
+*** New display property (slice X Y WIDTH HEIGHT) may be used with
+an image property to display only a specific slice of the image.
+
+*** Function insert-image has new optional fourth arg to
+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).
+
+** 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
+
+The display property stretch specification form `(space PROPS)', where
+PROPS is a property list now allows pixel based width and height
+specifications, as well as enhanced horizontal text alignment.
+
+The value of these properties can now be a (primitive) expression
+which is evaluated during redisplay.  The following expressions
+are supported:
+
+EXPR ::= NUM | (NUM) | UNIT | ELEM | POS | IMAGE | FORM
+NUM  ::= INTEGER | FLOAT | SYMBOL
+UNIT ::= in | mm | cm | width | height
+ELEM ::= left-fringe | right-fringe | left-margin | right-margin
+      |  scroll-bar | text
+POS  ::= left | center | right
+FORM ::= (NUM . EXPR) | (OP EXPR ...)
+OP   ::= + | -
+
+The form `NUM' specifies a fractional width or height of the default
+frame font size.  The form `(NUM)' specifies an absolute number of
+pixels.  If a symbol is specified, its buffer-local variable binding
+is used.  The `in', `mm', and `cm' units specifies the number of
+pixels per inch, milli-meter, and centi-meter, resp.  The `width' and
+`height' units correspond to the width and height of the current face
+font.  An image specification corresponds to the width or height of
+the image.
+
+The `left-fringe', `right-fringe', `left-margin', `right-margin',
+`scroll-bar', and `text' elements specify to the width of the
+corresponding area of the window.
+
+The `left', `center', and `right' positions can be used with :align-to
+to specify a position relative to the left edge, center, or right edge
+of the text area.  One of the above window elements (except `text')
+can also be used with :align-to to specify that the position is
+relative to the left edge of the given area.  Once the base offset for
+a relative position has been set (by the first occurrence of one of
+these symbols), further occurences of these symbols are interpreted as
+the width of the area.
+
+For example, to align to the center of the left-margin, use
+    :align-to (+ left-margin (0.5 . left-margin))
+
+If no specific base offset is set for alignment, it is always relative
+to the left edge of the text area.  For example, :align-to 0 in a
+header-line aligns with the first text column in the text area.
+
+The value of the form `(NUM . EXPR)' is the value of NUM multiplied by
+the value of the expression EXPR.  For example, (2 . in) specifies a
+width of 2 inches, while (0.5 . IMAGE) specifies half the width (or
+height) of the specified image.
+
+The form `(+ EXPR ...)' adds up the value of the expressions.
+The form `(- EXPR ...)' negates or subtracts the value of the expressions.
+
+** 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.
+
++++
+** New face attribute `min-colors' can be used to tailor the face color
+to the number of colors supported by a display, and define the
+foreground and background colors accordingly so that they look best on
+a terminal that supports at least this many colors.  This is now the
+preferred method for defining default faces in a way that makes a good
+use of the capabilities of the display.
+
+** New function 'define-fringe-bitmap' can now be used to change the
+built-in fringe bitmaps, as well as create new fringe bitmaps.
+The return value is a number identifying the new fringe bitmap.
+
+To change a built-in bitmap, do (require 'fringe) and identify the
+bitmap to change with the value of the corresponding symbol, like
+`left-truncation-fringe-bitmap' or `continued-line-fringe-bitmap'.
+
+** New function 'destroy-fringe-bitmap' may be used to destroy a
+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.
+
+** 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
+bitmap of the display line.
+
+Format is 'display '(left-fringe BITMAP [FACE]), where BITMAP is a
+number identifying a fringe bitmap, either built-in or as returned by
+`define-fringe-bitmap', and FACE is an optional face name to be used
+for displaying the bitmap.
+
+** New function `fringe-bitmaps-at-pos' returns a cons (LEFT . RIGHT)
+identifying the current fringe bitmaps in the display line at a given
+buffer position.  A nil value means no bitmap.
+
+** 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
+the original `overlay-arrow-position' variable.
+
+Each variable on this list may have individual `overlay-arrow-string'
+and `overlay-arrow-bitmap' properties that specify an overlay arrow
+string (for non-window terminals) or fringe bitmap (for window
+systems) to display at the corresponding overlay arrow position.
+If either property is not set, the default `overlay-arrow-string' or
+'overlay-arrow-fringe-bitmap' will be used.
+
++++
+** New function `line-number-at-pos' returns line number of current
+line in current buffer, or if optional buffer position is given, line
+number of corresponding line in current buffer.
+
+** The default value of `sentence-end' is now defined using the new
+variable `sentence-end-without-space' which contains such characters
+that end a sentence without following spaces.
+
+** The function `sentence-end' should be used to obtain the value of
+the variable `sentence-end'.  If the variable `sentence-end' is nil,
+then this function returns the regexp constructed from the variables
+`sentence-end-without-period', `sentence-end-double-space' and
+`sentence-end-without-space'.
+
++++
+** The flags, width, and precision options for %-specifications in function
+`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
+if no expansion is done, which may be tested using `eq'.
+
++++
+** New function `delete-dups' destructively removes `equal' duplicates
+from a list.  Of several `equal' occurrences of an element in the list,
+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.
@@ -1762,6 +2398,7 @@ before saving buffers.  This allows packages to perform various final
 tasks, for example; it can be used by the copyright package to make
 sure saved files have the current year in any copyright headers.
 
++++
 ** The function `insert-for-yank' now supports strings where the
 `yank-handler' property does not span the first character of the
 string.  The old behavior is available if you call
@@ -2181,7 +2818,7 @@ file, you can put a `coding:' tags to override it.)
 ** The new function `merge-coding-systems' fills in unspecified aspects
 of one coding system from another coding system.
 
----
++++
 ** The variable `safe-local-eval-forms' specifies a list of forms that
 are ok to evaluate when they appear in an `eval' local variables
 specification.  Normally Emacs asks for confirmation before evaluating
@@ -2527,6 +3164,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
@@ -2536,6 +3177,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
 
@@ -3001,6 +3649,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
@@ -3041,10 +3692,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).