*** empty log message ***
[bpt/emacs.git] / etc / NEWS
index 01f4251..35d2392 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1,5 +1,5 @@
-GNU Emacs NEWS -- history of user-visible changes.  2001-03-15
-Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+GNU Emacs NEWS -- history of user-visible changes.  2003-05-21
+Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
 See the end for copying conditions.
 
 Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
@@ -14,9 +14,15 @@ so we will look at it and add it to the manual.
 \f
 * Installation Changes in Emacs 21.4
 
+** 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).
+
 ---
 ** Emacs can now be built without sound support.
 
+** The `emacsserver' program has been removed, replaced with elisp code.
+
 ---
 ** Emacs now supports new configure options `--program-prefix',
 `--program-suffix' and `--program-transform-name' that affect the names of
@@ -36,6 +42,25 @@ in each user's home directory.
 You no longer need to download a separate tarball in order to build
 Emacs with Leim.
 
++++
+** The Emacs Lisp Reference Manual is now part of the distribution.
+
+The ELisp reference manual in Info format is built as part of the
+Emacs build procedure and installed together with the Emacs User
+Manual.  A menu item was added to the menu bar that makes it easy
+accessible (Help->More Manuals->Emacs Lisp Reference).
+
+---
+** The Introduction to Programming in Emacs Lisp manual is now part of
+the distribution.
+
+This manual is now part of the standard distribution and is installed,
+together with the Emacs User Manual, into the Info directory.  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.
+
 ---
 ** Support for AIX 5.1 was added.
 
@@ -54,9 +79,104 @@ See the files mac/README and mac/INSTALL for build instructions.
 
 ---
 ** Support for GNU/Linux systems on X86-64 machines was added.
+
+---
+** A French translation of the `Emacs Survival Guide' is available.
+
+---
+** A French translation of the Emacs Tutorial is available.
+
 \f
 * Changes in Emacs 21.4
 
+** Support for the SQLite interpreter has been added to sql.el by calling
+'sql-sqlite'.
+
+** BibTeX mode:
+*** 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
+for BibTeX entries. `bibtex-sort-entry-class' controls the sorting
+scheme `entry-class'.
+
+** 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.
+
+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.
+
+** 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
+speed up Emacs with slow networking to the X server.
+
+** `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
+`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.
+
+** 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.
+
+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.
+
+** 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
+   which used @ to mark skeleton-point independent of _ should now use -
+   instead.  The updated skeleton-insert docstring explains these new
+   features along with other details of skeleton construction.
+
+** MH-E changes.
+
+Upgraded to MH-E version 7.3. There have been major changes since
+version 5.0.2; see MH-E-NEWS for details.
+
++++
+** The `emacsclient' command understands the options `--eval' and
+`--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.
+
 +++
 ** The mode line position information now comes before the major mode.
 When the file is maintained under version control, that information
@@ -87,8 +207,11 @@ to 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.
+
 ---
-** `ps-print' can now print Unicode characters.
+** `ps-print' can now print characters from the mule-unicode charsets.
 
 Printing text with characters from the mule-unicode-* sets works with
 ps-print, provided that you have installed the appropriate BDF fonts.
@@ -118,16 +241,25 @@ 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, Cyrillic-KOI8-U, Windows-1251,
-Cyrillic-KOI8-T, Bulgarian, Belarusian, Ukrainian, UTF-8,
-Windows-1255, Welsh, Latin-7, Lithuanian, Latvian.
+** New language environments: French, Ukrainian, Windows-1251, 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
+Indian scripts, but currently only Devanagari, Malayalam and Tamil are
+supported.
 
 ---
 ** New input methods: latin-alt-postfix, latin-postfix, latin-prefix,
 ukrainian-computer, belarusian, bulgarian-bds, russian-computer,
 vietnamese-telex, lithuanian-numeric, lithuanian-keyboard,
 latvian-keyboard, welsh, georgian, rfc1345, ucs, sgml,
-bulgarian-phonetic, dutch.
+bulgarian-phonetic, dutch, slovenian, croatian, malayalam-inscript,
+tamil-inscript.
 
 ---
 ** A new coding system `euc-tw' has been added for traditional Chinese
@@ -137,36 +269,56 @@ Big 5 is then converted to CNS.
 ---
 ** Many new coding systems are available by loading the `code-pages'
 library.  These include complete versions of most of those in
-codepage.el, based Unicode mappings.
-
-** The utf-8 coding system has been enhanced.  Untranslatable utf-8
-sequences (mostly representing CJK characters) are composed into
-single quasi-characters.  By loading the library utf-8-subst, you can
-arrange to translate many utf-8 CJK character sequences into real
-Emacs characters in a similar way to the Mule-UCS system.  The utf-8
-coding system will now encode characters from most of Emacs's
+codepage.el, based on Unicode mappings.
+
+** 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.
+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
 one-dimensional internal charsets, specifically the ISO-8859 ones.
+The utf-16 coding system is affected similarly.
+
+** 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.
+unicode.
 
 +++
-** Limited support for character unification has been added.
-Emacs now knows how to translate Latin-N chars between their charset
-and some other Latin-N charset or Unicode.  By default this
-translation will happen automatically on encoding.  Quail input
-methods use the translations to make the input conformant with the
-encoding of the buffer in which it's being used where possible.
+** Limited support for character `unification' has been added.
+Emacs now knows how to translate between different representations of
+the same characters in various Emacs charsets according to standard
+Unicode mappings.  This applies mainly to characters in the ISO 8859
+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.
+Self-inserting characters are translated to make the input conformant
+with the encoding of the buffer in which it's being used, where
+possible.
 
 You can force a more complete unification with the user option
 unify-8859-on-decoding-mode.  That maps all the Latin-N character sets
 into Unicode characters (from the latin-iso8859-1 and
-mule-unicode-0100-24ff charsets) on decoding.
+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-8-fragment-on-decoding.
+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
+command.
 
 ---
 ** The scrollbar under LessTif or Motif has a smoother drag-scrolling.
@@ -209,12 +361,17 @@ it blinks off by setting the variable `blink-cursor-alist'.
 
 Some versions of X, notably XFree86, use Extended Segments to encode
 in X selections characters that belong to character sets which are not
-part of the list of approved standard encodings defined by the ICCCM
-spec.  Examples of such non-standard encodings include ISO 8859-14, ISO
-8859-15, KOI8-R, and BIG5.  The new coding system
-`compound-text-with-extensions' supports these extensions, and is now
-used by default for encoding and decoding X selections.  If you don't
-want this support, set `selection-coding-system' to `compound-text'.
+part of the list of approved standard encodings defined by the
+compound text spec.  An example of such non-standard encodings is
+BIG5.  The new coding system `compound-text-with-extensions' supports
+these extensions, and is now used by default for encoding and decoding
+X selections.  If you don't want this support, set
+`selection-coding-system' to `compound-text'.
+
+** The new variable `x-select-request-type' controls how Emacs
+requests X selection.  The default value is nil, which means that
+Emacs requests X selection with types COMPOUND_TEXT and UTF8_STRING,
+and use the more appropriately result.
 
 +++
 ** The parameters of automatic hscrolling can now be customized.
@@ -232,18 +389,25 @@ gives the fraction of the window's width to scroll the window.
 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
+*** 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.
 
 +++
-** New display feature: focus follows mouse.  If you set the variable
-mouse-autoselect-window to non-nil value, moving the mouse to a 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.
+** New display feature: focus follows the mouse from one Emacs window
+to another, even within a frame.  If you set the variable
+mouse-autoselect-window to non-nil value, moving the mouse to a
+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.
 
 +++
 ** The new command `describe-char' (C-u C-x =) pops up a buffer with
@@ -300,7 +464,7 @@ mode-line.
 ** Speedbar has moved from the "Tools" top level menu to "Show/Hide".
 
 +++
-** Emacs can now indicate in the mode-line the presence of new e-mails
+** Emacs can now indicate in the mode-line the presence of new e-mail
 in a directory or in a file.  See the documentation of the user option
 `display-time-mail-directory'.
 
@@ -368,15 +532,12 @@ screen size.  (For now, this does not work with some window managers.)
 ---
 ** Info-index offers completion.
 
----
-** shell-mode now supports programmable completion using `pcomplete'.
-
 ---
 ** Emacs now tries to set up buffer coding systems for HTML/XML files
 automatically.
 
 +++
-** The new command `comint-input-previous-argument' in comint-derived
+** The new command `comint-insert-previous-argument' in comint-derived
 modes (shell-mode etc) inserts arguments from previous command lines,
 like bash's `ESC .' binding.  It is bound by default to `C-c .', but
 otherwise behaves quite similarly to the bash version.
@@ -451,6 +612,15 @@ sense for the attribute.  When an attribute is de-selected by unchecking
 its check-box, then the (now ignored, but still present temporarily in
 case you re-select the attribute) value is hidden.
 
++++
+** When you set or reset a variable's value in a Customize buffer,
+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).
+
 +++
 ** In GUD mode, when talking to GDB, C-x C-a C-j "jumps" the program
 counter to the specified source line (the one where point is).
@@ -584,15 +754,20 @@ 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'.
 
-+++
-** The keyboard-coding-system is now automatically set based on
-your current locale settings.  If it turns out that your terminal
-does not support the encoding implied by your locale (for example,
-it inserts non-ASCII chars if you hit M-i), you will need to add
-
-       (set-keyboard-coding-system nil)
+** 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
+mouse-wheel-inhibit-click-time variables.
 
-to your .emacs to revert to the old behavior.
++++
+** The keyboard-coding-system is now automatically set based on your
+current locale settings if you are not using a window system.  This
+may mean that the META key doesn't work but generates non-ASCII
+characters instead, depending on how the terminal (or terminal
+emulator) works.  Use `set-keyboard-coding-system' (or customize
+keyboard-coding-system) if you prefer META to work (the old default)
+or if the locale doesn't describe the character set actually generated
+by the keyboard.  See Info node `Single-Byte Character Support'.
 
 +++
 ** Emacs now reads the standard abbrevs file ~/.abbrev_defs
@@ -608,7 +783,7 @@ appears in.
 
 ** The variable `cursor-in-non-selected-windows' can now be set to any
 of the recognized cursor types.
-  
+
 +++
 ** The default values of `tooltip-delay' and `tooltip-hide-delay'
 were changed.
@@ -653,6 +828,8 @@ 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.
 
 +++
@@ -668,7 +845,7 @@ currently highlighted regions in an inferior Ediff session. If you answer 'n'
 then it reverts to the old behavior and asks the user to select regions for
 comparison.
 
-** The new command `ediff-backup' compares a file with its most recent
+*** The new command `ediff-backup' compares a file with its most recent
 backup using `ediff'.  If you specify the name of a backup file,
 `ediff-backup' compares it with the file of which it is a backup.
 
@@ -776,7 +953,7 @@ By default, its setting is inferred on a buffer-by-buffer basis
 from the file name or buffer contents.
 
 +++
-** `xml-mode' is now an alias for `smgl-mode', which has XML support.
+** `xml-mode' is now an alias for `sgml-mode', which has XML support.
 
 +++
 ** New user option `isearch-resume-enabled'.
@@ -848,9 +1025,24 @@ the cursor, for example screen magnifiers and text to speech programs.
 See the Emacs 21.1 NEWS entry for tooltips for details.
 
 ---
-** Some images are now supported on Windows.
-PBM and XBM images are supported, other formats which require external
-libraries may be supported in future.
+** Images are now supported on MS Windows.
+PBM and XBM images are supported out of the box. Other image formats
+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.
+
+---
+** Sound is now supported on MS Windows.
+WAV format is supported on all versions of Windows, other formats such
+as AU, AIFF and MP3 may be supported in the more recent versions of
+Windows, or when other software provides hooks into the system level
+sound support for those formats.
+
+---
+** Different shaped mouse pointers are supported on MS Windows.
+The mouse pointer changes shape depending on what is under the pointer.
 
 ---
 ** Pointing devices with more than 3 buttons are now supported on MS Windows.
@@ -858,6 +1050,16 @@ The new variable `w32-pass-extra-mouse-buttons-to-system' controls
 whether Emacs should handle the extra buttons itself (the default), or
 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.
+
 +++
 ** 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',
@@ -867,22 +1069,33 @@ Meta and Alt:
     (setq x-alt-keysym 'meta)
     (setq x-meta-keysym 'alt)
 
----
-** A French translation of the `Emacs Survival Guide' is available.
+* New modes and packages in 21.4
 
----
-** A French translation of the Emacs Tutorial is available.
+** GDB-Script-mode is used for files like .gdbinit.
+** GDB-UI is now part of the Emacs distribution.
 
-** New modes and packages
+This mode acts as an enhanced graphical user interface to GDB. You can
+interact with GDB through the GUD buffer in the usual way, but there are also
+further buffers which control the execution and describe the state of your
+program.  It separates the input/output of your program from that of GDB and
+displays expressions and their current values in their own buffers.  It also
+uses features of Emacs 21 such as the display margin for breakpoints, and the
+tool bar.
+
+Use M-x gdba to start GDB-UI.
 
 ---
-*** The new ido package is an extension of the iswitchb package
-to do interactive opening of files and directories in addition to
-interactive buffer switching.  Ido is a superset of iswitchb (with a
-few exceptions), so don't enable both packages.
+** Ido mode is now part of the Emacs distribution.
+
+The ido (interactively do) package is an extension of the iswitchb
+package to do interactive opening of files and directories in addition
+to interactive buffer switching.  Ido is a superset of iswitchb (with
+a few exceptions), so don't enable both packages.
 
 ---
-*** The new cua package provides CUA-like keybindings using C-x for
+** CUA mode is now part of the Emacs distribution.
+
+The new cua package provides CUA-like keybindings using C-x for
 cut (kill), C-c for copy, C-v for paste (yank), and C-z for undo.
 With cua, the region can be set and extended using shifted movement
 keys (like pc-selection-mode) and typed text replaces the active
@@ -919,10 +1132,36 @@ kill, copy, yank, and undo.  If you want to use cua mode, but don't
 want the C-x, C-c, C-v, and C-z bindings, you may customize the
 `cua-enable-cua-keys' variable.
 
-*** The new keypad setup package provides simplified configuration
-of the numeric keypad which is available on most keyboards.
-
-*** The new kmacro package provides a simpler user interface to
+Note: This version of cua mode is not backwards compatible with older
+versions of cua.el and cua-mode.el.  To ensure proper operation, you
+must remove older versions of cua.el or cua-mode.el as well as the
+loading and customization of those packages from the .emacs file.
+
+** The new keypad setup package provides several common bindings for
+the numeric keypad which is available on most keyboards.  The numeric
+keypad typically has the digits 0 to 9, a decimal point, keys marked
++, -, /, and *, an Enter key, and a NumLock toggle key.  The keypad
+package only controls the use of the digit and decimal keys.
+
+By customizing the variables `keypad-setup', `keypad-shifted-setup',
+`keypad-numlock-setup', and `keypad-numlock-shifted-setup', or by
+using the function `keypad-setup', you can rebind all digit keys and
+the decimal key of the keypad in one step for each of the four
+possible combinations of the Shift key state (not pressed/pressed) and
+the NumLock toggle state (off/on).
+
+The choices for the keypad keys in each of the above states are:
+`Plain numeric keypad' where the keys generates plain digits,
+`Numeric keypad with decimal key' where the character produced by the
+decimal key can be customized individually (for internationalization),
+`Numeric Prefix Arg' where the keypad keys produce numeric prefix args
+for emacs editing commands, `Cursor keys' and `Shifted Cursor keys'
+where the keys work like (shifted) arrow keys, home/end, etc., and
+`Unspecified/User-defined' where the keypad keys (kp-0, kp-1, etc.)
+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.
 
 Basically, it uses two function keys (default F3 and F4) like this:
@@ -955,8 +1194,23 @@ Keyboard macros can now be debugged and edited interactively.
 C-x C-k SPC will step through the last keyboard macro one key sequence
 at a time, prompting for the actions to take.
 
+---
+** The old Octave mode bindings C-c f and C-c i have been changed
+to C-c C-f and C-c C-i.  The C-c C-i subcommands now have duplicate
+bindings on control characters--thus, C-c C-i C-b is the same as
+C-c C-i b, and so on.
+
+** The printing package is now part of the Emacs distribution.
+
+If you enable the printing package by including (require 'printing) in
+the .emacs file, the normal Print item on the File menu is replaced
+with a Print sub-menu which allows you to preview output through
+ghostview, use ghostscript to print (if you don't have a PostScript
+printer) or send directly to printer a PostScript code generated by
+`ps-print' package.  Use M-x pr-help for more information.
+
 +++
-*** Calc is now part of the Emacs distribution.
+** Calc is now part of the Emacs distribution.
 
 Calc is an advanced desk calculator and mathematical tool written in
 Emacs Lisp.  Its documentation is in a separate manual; within Emacs,
@@ -964,15 +1218,7 @@ type "C-h i m calc RET" to read that manual.  A reference card is
 available in `etc/calccard.tex' and `etc/calccard.ps'.
 
 +++
-*** The Emacs Lisp Reference Manual is now part of the distribution.
-
-The ELisp reference manual in Info format is built as part of the
-Emacs build procedure and installed together with the Emacs User
-Manual.  A menu item was added to the menu bar that makes it easy
-accessible (Help->More Manuals->Emacs Lisp Reference).
-
-+++
-*** Tramp is now part of the distribution.
+** Tramp is now part of the distribution.
 
 This package is similar to Ange-FTP: it allows you to edit remote
 files.  But whereas Ange-FTP uses FTP to access the remote host,
@@ -988,16 +1234,7 @@ Shell connections can be acquired via `rsh', `ssh', `telnet' and also
 `su' and `sudo'.
 
 ---
-*** The Introduction to Programming in Emacs Lisp manual is now part of
-the distribution.
-
-This manual is now part of the standard distribution and is installed,
-together with the Emacs User Manual, into the Info directory.  A menu
-item was added to the menu bar that makes it easy accessible
-(Help->More Manuals->Introduction to Emacs Lisp).
-
----
-*** The new global minor mode `file-name-shadow-mode' modifies the way
+** The new global minor mode `file-name-shadow-mode' modifies the way
 filenames being entered by the user in the minibuffer are displayed, so
 that it's clear when part of the entered filename will be ignored due to
 emacs' filename parsing rules.  The ignored portion can be made dim,
@@ -1005,42 +1242,209 @@ invisible, or otherwise less visually noticable.  The display method may
 be displayed by customizing the variable `file-name-shadow-properties'.
 
 ---
-*** The ruler-mode.el library provides a minor mode for displaying an
+** The ruler-mode.el library provides a minor mode for displaying an
 "active" ruler in the header line.  You can use the mouse to visually
 change the `fill-column', `window-margins' and `tab-stop-list'
 settings.
 
 ---
-*** The minor mode Reveal mode makes text visible on the fly as you
-move your cursor into hidden region of the buffer.
+** The minor mode Reveal mode makes text visible on the fly as you
+move your cursor into hidden regions of the buffer.
 It should work with any package that uses overlays to hide parts
 of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ...
 
 There is also Global Reveal mode which affects all buffers.
 
 ---
-*** The new package ibuffer provides a powerful, completely
+** The new package ibuffer provides a powerful, completely
 customizable replacement for buff-menu.el.
 
-*** The new package table.el implements editable, WYSIWYG, embedded
+** The new package table.el implements editable, WYSIWYG, embedded
 `text tables' in Emacs buffers.  It simulates the effect of putting
 these tables in a special major mode.  The package emulates WYSIWYG
 table editing available in modern word processors.  The package also
 can generate a table source in typesetting and markup languages such
 as latex and html from the visually laid out text table.
 
++++
+** SES mode (ses-mode) is a new major mode for creating and editing
+spreadsheet files.  Besides the usual Emacs features (intuitive command
+letters, undo, cell formulas in Lisp, plaintext files, etc.) it also offers
+viral immunity and import/export of tab-separated values.
+
 ---
 ** Support for `magic cookie' standout modes has been removed.
 Emacs will still work on terminals that require magic cookies in order
 to use standout mode, however they will not be able to display
 mode-lines in inverse-video.
 
+---
 ** The obsolete C mode (c-mode.el) has been removed to avoid problems
-with Custom.
+with Custom.  cplus-md.el, which required it, has also been removed.
+
+** New package benchmark.el contains simple support for convenient
+timing measurements of code (including the garbage collection component).
 
 \f
 * Lisp Changes in Emacs 21.4
 
+** The kill-buffer-hook is now permanent-local.
+
+** The `local-map' property now also works at the ends of overlays and
+text-properties, according to their stickiness.  This also means that it
+works with empty overlays.  The same hold for the `keymap' property.
+
+** `select-window' takes a second optional argument `norecord', like
+`switch-to-buffer'.  `with-selected-window' is a new macro that uses
+this to temporarily switch the selected window without impacting
+the order of buffer-list.
+
+** (map-keymap FUNCTION KEYMAP) applies the function to each binding
+in the keymap.
+
+** VC changes for backends:
+*** (vc-switches BACKEND OPERATION) is a new function for use by backends.
+*** The new `find-version' backend function replaces the `destfile'
+parameter of the `checkout' backend function.
+Old code still works thanks to a default `find-version' behavior that
+uses the old `destfile' parameter.
+
+** `minor-mode-list' now holds a list of minor mode commands.
+
+** The new command `modify-all-frames-parameters' modifies parameters
+for all (existing and future) frames.
+
+** `sit-for' can now be called with args (SECONDS &optional NODISP).
+
+** New standard font-lock face `font-lock-preprocessor-face'.
+
+** The macro `with-syntax-table' does not copy the table any more.
+
+** The variable `face-font-rescale-alist' specifies how much larger
+(or smaller) font we should use.  For instance, if the value is
+'((SOME-FONTNAME-PATTERN . 1.3)) and a face requests a font of 10
+point, we actually use a font of 13 point if the font matches
+SOME-FONTNAME-PATTERN.
+
+** The function `number-sequence' returns a list of equally-separated
+numbers.  For instance, (number-sequence 4 9) returns (4 5 6 7 8 9).
+By default, the separation is 1, but you can specify a different separation
+as the third argument.  (number-sequence 1.5 6 2) returns (1.5 3.5 5.5).
+
+** `file-chase-links' now takes an optional second argument LIMIT which
+specifies the maximum number of links to chase through.  If after that
+many iterations the file name obtained is still a symbolic link,
+`file-chase-links' returns it anyway.
+
+** `set-fontset-font', `fontset-info', `fontset-font' now operate on
+the default fontset if the argument NAME is nil..
+
+** The escape sequence \s is now interpreted as a SPACE character,
+unless it is followed by a `-' in a character constant (e.g. ?\s-A),
+in which case it is still interpreted as the super modifier.
+In strings, \s is always interpreted as a space.
+
+** New function `set-process-filter-multibyte' sets the multibyteness
+of a string given to a process's filter.
+
+** New function `process-filter-multibyte-p' returns t if
+a string given to a process's filter is multibyte.
+
+** A filter function of a process is called with a multibyte string if
+the filter's multibyteness is t.  That multibyteness is decided by the
+value of `default-enable-multibyte-characters' when the process is
+created and can be changed later by `set-process-filter-multibyte'.
+
+** If a process's coding system is raw-text or no-conversion and its
+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.
+
+** New function `string-to-multibyte' converts a unibyte string to a
+multibyte string with the same individual character codes.
+
+** New variables `gc-elapsed' and `gcs-done' provide extra information
+on garbage collection.
+
+** New function `decode-coding-inserted-region' decodes a region as if
+it is read from a file without decoding.
+
+** New function `langinfo' accesses locale information.
+
+** `save-selected-window' now saves and restores the selected window
+of every frame.  This way, it restores everything that can be changed
+by calling `select-window'.
+
+** `easy-menu-define' now allows you to use nil for the symbol name
+if you don't need to give the menu a name.  If you install the menu
+into other keymaps right away (MAPS is non-nil), it usually doesn't
+need to have a name.
+
+** Byte compiler changes:
+
+*** `(featurep 'xemacs)' is treated by the compiler as nil.  This
+helps to avoid noisy compiler warnings in code meant to run under both
+Emacs and XEmacs and may sometimes make the result significantly more
+efficient.  Since byte code from recent versions of XEmacs won't
+generally run in Emacs and vice versa, this optimization doesn't lose
+you anything.
+
+*** You can avoid warnings for possibly-undefined symbols with a
+simple convention that the compiler understands.  (This is mostly
+useful in code meant to be portable to different Emacs versions.)
+Write forms like the following, or code that macroexpands into such
+forms:
+
+  (if (fboundp 'foo) <then> <else>)
+  (if (boundp 'foo) <then> <else)
+
+In the first case, using `foo' as a function inside the <then> form
+won't produce a warning if it's not defined as a function, and in the
+second case, using `foo' as a variable won't produce a warning if it's
+unbound.  The test must be in exactly one of the above forms (after
+macro expansion), but such tests may be nested.  Note that `when' and
+`unless' expand to `if', but `cond' doesn't.
+
+** New translation table `translation-table-for-input'.
+
++++
+** `load-history' can now have elements of the form (t . FUNNAME),
+which means FUNNAME was previously defined as an autoload (before the
+current file redefined it).
+
+** New Lisp library testcover.el works with edebug to help you determine
+whether you've tested all your Lisp code.  Function testcover-start
+instruments all functions in a given file.  Then test your code.  Function
+testcover-mark-all adds overlay "splotches" to the Lisp file's buffer to
+show where coverage is lacking.  Command testcover-next-mark (bind it to
+a key!) will move point forward to the next spot that has a splotch.
+
+*** Normally, a red splotch indicates the form was never completely evaluated;
+a brown splotch means it always evaluated to the same value.  The red
+splotches are skipped for forms that can't possibly complete their evaluation,
+such as `error'.  The brown splotches are skipped for forms that are expected
+to always evaluate to the same value, such as (setq x 14).
+
+*** For difficult cases, you can add do-nothing macros to your code to help
+out the test coverage tool.  The macro 1value suppresses a brown splotch for
+its argument.  The macro noreturn suppresses a red splotch.
+
++++
+** New function unsafep returns nil if the given Lisp form can't possibly
+do anything dangerous; otherwise it returns a reason why the form might be
+unsafe (calls dangerous function, alters global variable, etc).
+
+** When you are printing using print-continuous-numbering,
+if no objects have had to be recorded in print-number-table,
+all elements of print-number-table are nil.
+
+** When using non-toolkit scroll bars with the default width,
+the scroll-bar-width frame parameter value is nil.
+
+** The new function copy-abbrev-table returns a new abbrev table that
+is a copy of a given abbrev table.
+
 +++
 ** The option --script FILE runs Emacs in batch mode and loads FILE.
 It is useful for writing Emacs Lisp shell script files, because they
@@ -1054,8 +1458,9 @@ its last line.  It should match the regexp "\n\n(fn.*)\\'".
 ** New CCL functions `lookup-character' and `lookup-integer' access
 hash tables defined by the Lisp function `define-translation-hash-table'.
 
-** The new function `minibufferp' returns non-nil if the current buffer
-is a minibuffer.
+** The new function `minibufferp' returns non-nil if its optional buffer
+argument is a minibuffer.  If the argument is omitted it defaults to
+the current buffer.
 
 ** There is a new Warnings facility; see the functions `warn'
 and `display-warning'.
@@ -1092,25 +1497,62 @@ with the form as argument, and if any returns t, the form is ok to call.
 If the form is not "ok to call", that means Emacs asks for
 confirmation as before.
 
-** Controlling the left and right fringe widths.
+** Controlling the default left and right fringe widths.
 
-The left and right fringe widths can now be controlled by setting the
-`left-fringe' and `right-fringe' frame parameters to an integer value
-specifying the width in pixels.  Setting the width to 0 effectively
-removes the corresponding fringe.
+The default left and right fringe widths for all windows of a frame
+can now be controlled by setting the `left-fringe' and `right-fringe'
+frame parameters to an integer value specifying the width in pixels.
+Setting the width to 0 effectively removes the corresponding fringe.
 
-The actual fringe widths may deviate from the specified widths, since
-the combined fringe widths must match an integral number of columns.
-The extra width is distributed evenly between the left and right fringe.
-For force a specific fringe width, specify the width as a negative
-integer (if both widths are negative, only the left fringe gets the
-specified width).
+The actual default fringe widths for the frame may deviate from the
+specified widths, since the combined fringe widths must match an
+integral number of columns.  The extra width is distributed evenly
+between the left and right fringe.  For force a specific fringe width,
+specify the width as a negative integer (if both widths are negative,
+only the left fringe gets the specified width).
 
 Setting the width to nil (the default), restores the default fringe
 width which is the minimum number of pixels necessary to display any
 of the currently defined fringe bitmaps.  The width of the built-in
 fringe bitmaps is 8 pixels.
 
+** Per-window fringes settings
+
+Windows can now have their own individual fringe widths and position
+settings.
+
+To control the fringe widths of a window, either set the buffer-local
+variables `left-fringe-width', `right-fringe-width', or call
+`set-window-fringes'.
+
+To control the fringe position in a window, that is, whether fringes
+are positioned between the display margins and the window's text area,
+or at the edges of the window, either set the buffer-local variable
+`fringes-outside-margins' or call `set-window-fringes'.
+
+The function `window-fringes' can be used to obtain the current
+settings.  To make `left-fringe-width', `right-fringe-width', and
+`fringes-outside-margins' take effect, you must set them before
+displaying the buffer in a window, or use `set-window-buffer' to force
+an update of the display margins.
+
+** Per-window vertical scroll-bar settings
+
+Windows can now have their own individual scroll-bar settings
+controlling the width and position of scroll-bars.
+
+To control the scroll-bar of a window, either set the buffer-local
+variables `scroll-bar-mode' and `scroll-bar-width', or call
+`set-window-scroll-bars'.  The function `window-scroll-bars' can be
+used to obtain the current settings.  To make `scroll-bar-mode' and
+`scroll-bar-width' take effect, you must set them before displaying
+the buffer in a window, or use `set-window-buffer' to force an update
+of the display margins.
+
+** The function `set-window-buffer' now has an optional third argument
+KEEP-MARGINS which will preserve the window's current margin, fringe,
+and scroll-bar settings if non-nil.
+
 +++
 ** Renamed file hooks to follow the convention:
 find-file-hooks to find-file-hook,
@@ -1119,6 +1561,10 @@ write-file-hooks to write-file-functions,
 write-contents-hooks to write-contents-functions.
 Marked local-write-file-hooks as obsolete (use the LOCAL arg of `add-hook').
 
+** The new variable `delete-frame-functions' replaces `delete-frame-hook'.
+It was renamed to follow the naming conventions for abnormal hooks.  The old
+name remains available as an alias, but has been marked obsolete.
+
 ** The `read-file-name' function now takes an additional argument which
 specifies a predicate which the file name read must satify.  The
 new variable `read-file-name-predicate' contains the predicate argument
@@ -1197,8 +1643,8 @@ The following changes have been made to provide command remapping:
   to definition DEF in keymap MAP.  The definition is not limited to
   another command; it can be anything accepted for a normal binding.
 
-- The new function `remap-command' returns the binding for a remapped
-  command in the current keymaps, or nil if it isn't remapped.
+- The new function `command-remapping' returns the binding for a
+  remapped command in the current keymaps, or nil if not remapped.
 
 - key-binding now remaps interactive commands unless the optional
   third argument NO-REMAP is non-nil.
@@ -1298,13 +1744,61 @@ The new function `remove-list-of-text-properties' is almost the same
 as `remove-text-properties'.  The only difference is that it takes
 a list of property names as argument rather than a property list.
 
-** New functions insert-for-yank and insert-buffer-substring-as-yank.
+** New function insert-for-yank.
+
+This function normally works like `insert' but removes the text
+properties in the `yank-excluded-properties' list.  However, if the
+inserted text has a `yank-handler' text property on the first
+character of the string, the insertion of the text may be modified in
+a number of ways.  See the description of `yank-handler' below.
+
+** New function insert-buffer-substring-as-yank.
 
-These functions work like `insert' and `insert-buffer-substring', but
-removes the text properties in the `yank-excluded-properties' list.
+This function works like `insert-buffer-substring', but removes the
+text properties in the `yank-excluded-properties' list.
 
 ** New function insert-buffer-substring-no-properties.
 
+This function is like insert-buffer-substring, but removes all
+text properties from the inserted substring.
+
+** New `yank-handler' text property may be used to control how
+previously killed text on the kill-ring is reinserted.
+
+The value of the yank-handler property must be a list with one to five
+elements with the following format:
+  (FUNCTION PARAM NOEXCLUDE UNDO).
+
+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:
+
+  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.
+  If PARAM is present and non-nil, it replaces STRING as the object
+passed to FUNCTION (or `insert'); for example, if FUNCTION is
+`yank-rectangle', PARAM should be a list of strings to insert as a
+rectangle.
+  If NOEXCLUDE is present and non-nil, the normal removal of the
+yank-excluded-properties is not performed; instead FUNCTION is
+responsible for removing those properties.  This may be necessary
+if FUNCTION adjusts point before or after inserting the object.
+  If UNDO is present and non-nil, it is a function that will be called
+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 has an
+optional third 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
+insert-for-yank automatically sets that variable according to the UNDO
+element of the string argument's yank-handler text property if present.
+
 ** New function display-supports-face-attributes-p may be used to test
 whether a given set of face attributes is actually displayable.
 
@@ -1319,6 +1813,28 @@ 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.
 
+** Enhancements to process support
+
+*** Function list-processes now has an optional argument; if non-nil,
+only the processes whose query-on-exit flag is set are listed.
+
+*** New set-process-query-on-exit-flag and process-query-on-exit-flag
+functions.  The existing process-kill-without-query function is still
+supported, but new code should use the new functions.
+
+*** Function signal-process now accepts a process object or process
+name in addition to a process id to identify the signalled process.
+
+*** Processes now have an associated property list where programs can
+maintain process state and other per-process related information.
+
+The new functions process-get and process-put are used to access, add,
+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.
+
+
 ** Enhanced networking support.
 
 *** There is a new `make-network-process' function which supports
@@ -1330,6 +1846,9 @@ create a stream or datagram server inside emacs.
 - A server can open on a random port using :service t arg.
 - Local sockets are supported using :family 'local arg.
 - Non-blocking connect is supported using :nowait t arg.
+- The process' property list may be initialized using :plist PLIST arg;
+  a copy of the server process' property list is automatically inherited
+  by new client processes created to handle incoming connections.
 
 To test for the availability of a given feature, use featurep like this:
   (featurep 'make-network-process '(:type datagram))
@@ -1339,16 +1858,30 @@ To test for the availability of a given feature, use featurep like this:
 *** New function open-network-stream-nowait.
 
 This function initiates a non-blocking connect and returns immediately
-before the connection is established.  The filter and sentinel
-functions can be specified as arguments to open-network-stream-nowait.
-When the non-blocking connect completes, the sentinel is called with
-the status matching "open" or "failed".
+without waiting for the connection to be established.  It takes the
+filter and sentinel functions as arguments; when the non-blocking
+connect completes, the sentinel is called with a status string
+matching "open" or "failed".
 
 *** New function open-network-stream-server.
-MORE INFO NEEDED HERE.
+
+This function creates a network server process for a TCP service.
+When a client connects to the specified service, a new subprocess
+is created to handle the new connection, and the sentinel function
+is called for the new process.
 
 *** New functions process-datagram-address and set-process-datagram-address.
-MORE INFO NEEDED HERE.
+
+These functions are used with datagram-based network processes to get
+and set the current address of the remote partner.
+
+*** New function format-network-address.
+
+This function reformats the lisp representation of a network address
+to a printable string.  For example, an IP address A.B.C.D and port
+number P is represented as a five element vector [A B C D P], and the
+printable string returned for this vector is "A.B.C.D:P".  See the doc
+string for other formatting options.
 
 *** By default, the function process-contact still returns (HOST SERVICE)
 for a network process.  Using the new optional KEY arg, the complete list
@@ -1364,13 +1897,6 @@ the fifth is the port number.
 connections are accepted in the stopped state.  For a client process,
 no input is received in the stopped state.
 
-*** Function list-processes now has an optional argument; if non-nil,
-only the processes whose query-on-exit flag is set are listed.
-
-*** New set-process-query-on-exit-flag and process-query-on-exit-flag
-functions.  The existing process-kill-without-query function is still
-supported, but new code should use the new functions.
-
 ** New function copy-tree.
 
 ** New function substring-no-properties.
@@ -1440,7 +1966,7 @@ compare the property name using `equal' rather than `eq'.
 
 ** New function `tool-bar-local-item-from-menu'
 
-The `tool-bar-add-item-from-menu' most not be used (as previously
+The `tool-bar-add-item-from-menu' must not be used (as previously
 recommended) for making entries in the tool bar for local keymaps.
 Instead, use the function `tool-bar-local-item-from-menu', which lets
 you specify the map to use as an argument.
@@ -1502,19 +2028,39 @@ over minor mode keymaps.
 ** A hex escape in a string forces the string to be multibyte.
 An octal escape makes it unibyte.
 
+** At the end of a command, point moves out from within invisible
+text, in the same way it moves out from within text covered by an
+image or composition property.
+
+This makes it generally unnecessary to mark invisible text as intangible.
+This is particularly good because the intangible property often has
+unexpected side-effects since the property applies to everything
+(including `goto-char', ...) whereas this new code is only run after
+post-command-hook and thus does not care about intermediate states.
+
 ** Only one of the beginning or end of an invisible, intangible region is
 considered an acceptable value for point; which one is determined by
 examining how the invisible/intangible properties are inherited when new
-text is inserted adjacent to them.  If text inserted at the beginning would
-inherit the invisible/intangible properties, then that position is
-considered unacceptable, and point is forced to the position following the
-invisible/intangible text.  If text inserted at the end would inherit the
-properties, then the opposite happens.
+text is inserted adjacent to them.  (The `front-sticky' and `rear-sticky'
+properties control this.)
+
+If the invisible/intangible would be inherited by any text inserted
+before this region, then the position before it is considered
+unacceptable, and point is forced to continue (if moving forwards, to
+the position following the invisible/intangible text; if moving
+backwards, to one position before).  If the properties would be
+inherited by any text inserted after, then the position after is
+considered unacceptable, and point is forced to keep moving (if moving
+backwards, to the position preceding the invisible/intangible text; if
+moving forwards, to one position later).
 
 Thus, point can only go to one end of an invisible, intangible region, but
 not the other one.  This prevents C-f and C-b from appearing to stand still
 on the screen.
 
+You should not set it up so that both the position before and the position
+after are unacceptable.
+
 ** field-beginning and field-end now accept an additional optional
 argument, LIMIT.
 
@@ -1613,10 +2159,16 @@ or `bg:COLOR' has been removed.  Lisp programs should use the
 are used by define-derived-mode to make sure the mode hook for the
 parent mode is run at the end of the child mode.
 
+** define-minor-mode now accepts arbitrary additional keyword arguments
+and simply passes them to defcustom, if applicable.
+
+** define-derived-mode by default creates a new empty abbrev table.
+It does not copy abbrevs from the parent mode's abbrev table.
+
 +++
 ** `provide' and `featurep' now accept an optional second argument
 to test/provide subfeatures.  Also `provide' now checks `after-load-alist'
-and run any code associated with the provided feature.
+and runs any code associated with the provided feature.
 
 ** The variable `compilation-parse-errors-filename-function' can
 be used to transform filenames found in compilation output.
@@ -1632,8 +2184,6 @@ accepts a float as UID parameter.
 
 ** `define-key-after' now accepts keys longer than 1.
 
-** `define-derived-mode' now accepts nil as the parent.
-
 ** The local variable `no-byte-compile' in elisp files is now obeyed.
 
 ** The Emacs Lisp byte-compiler now displays the actual line and
@@ -3114,7 +3664,7 @@ added.
 *** An "alignment error" bug was fixed when a manual spelling
 correction is made and re-checked.
 
-*** An Italian, Portuguese, and Slovak dictionary definition has been added.
+*** Italian, Portuguese, and Slovak dictionary definitions have been added.
 
 *** Region skipping performance has been vastly improved in some
 cases.
@@ -4330,7 +4880,7 @@ CHAR
      `chinse-two-byte'                 (\\cC)
      `greek-two-byte'                  (\\cG)
      `japanese-hiragana-two-byte'      (\\cH)
-     `indian-tow-byte'                 (\\cI)
+     `indian-two-byte'                 (\\cI)
      `japanese-katakana-two-byte'      (\\cK)
      `korean-hangul-two-byte'          (\\cN)
      `cyrillic-two-byte'               (\\cY)
@@ -5801,16 +6351,16 @@ support strings as DATA, some types allow additional types of DATA.
 **** XBM, image type `xbm'.
 
 XBM images don't require an external library.  Additional image
-properties supported are
+properties supported are:
 
 `:foreground FG'
 
 FG must be a string specifying the image foreground color, or nil
-meaning to use the default.  Default is the frame's foreground.
+meaning to use the default.  Default is the frame's foreground color.
 
 `:background BG'
 
-BG must be a string specifying the image foreground color, or nil
+BG must be a string specifying the image background color, or nil
 meaning to use the default.  Default is the frame's background color.
 
 XBM images can be constructed from data instead of file.  In this
@@ -5866,23 +6416,23 @@ to display compressed images.
 
 PBM images don't require an external library.  Color, gray-scale and
 mono images are supported.  Additional image properties supported for
-mono images are
+mono images are:
 
 `:foreground FG'
 
 FG must be a string specifying the image foreground color, or nil
-meaning to use the default.  Default is the frame's foreground.
+meaning to use the default.  Default is the frame's foreground color.
 
 `:background FG'
 
-BG must be a string specifying the image foreground color, or nil
+BG must be a string specifying the image background color, or nil
 meaning to use the default.  Default is the frame's background color.
 
 **** JPEG, image type `jpeg'
 
 Support for JPEG images requires the external library `libjpeg',
-package `jpegsrc.v6a.tar.gz', or later.  Additional image properties
-are:
+package `jpegsrc.v6a.tar.gz', or later.  There are no additional image
+properties defined.
 
 **** TIFF, image type `tiff'
 
@@ -10945,7 +11495,7 @@ select one of those items.
 ----------------------------------------------------------------------
 Copyright information:
 
-Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
 
    Permission is granted to anyone to make or distribute verbatim copies
    of this document as received, in any medium, provided that the