-GNU Emacs NEWS -- history of user-visible changes. 2000-08-14
+GNU Emacs NEWS -- history of user-visible changes. 2000-09-27
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
See the end for copying conditions.
Unix-98-style support for large files if that is available.
** You can build a 64-bit Emacs for SPARC/Solaris systems which
-support 64-bit executables. See etc/MACHINES for instructions.
+support 64-bit executables and also on Irix 6.5. This increases the
+maximum buffer size. See etc/MACHINES for instructions.
\f
* Changes in Emacs 21.1
-* When an error is signaled during the loading of the user's init
+** `browse-url-gnome-moz' is a new option for
+`browse-url-browser-function', invoking Mozilla in GNOME.
+
++++
+** The new global minor mode `auto-image-file-mode' allows image files
+to be visited as images.
+
++++
+** The functions `keep-lines', `flush-lines' and `how-many' now
+operate on the active region in Transient Mark mode.
+
+** The header line in an Info buffer is now displayed as an emacs header-line
+(which is like a mode-line, but at the top of the window), so that it
+remains visible even when the buffer has been scrolled. This behavior
+may be disabled by customizing the option `Info-use-header-line'.
+
++++
+** `gnus-user-agent' is a new possibility for `mail-user-agent'. It
+is like `message-user-agent', but with all the Gnus paraphernalia.
+
++++
+** The recommended way of using Iswitchb is via the new global minor
+mode `iswitchb-mode'.
+
++++
+** Gnus changes.
+
+The Gnus NEWS entries are short, but they reflect sweeping changes in
+four areas: Article display treatment, MIME treatment,
+internationalization and mail-fetching.
+
+*** The mail-fetching functions have changed. See the manual for the
+many details. In particular, all procmail fetching variables are gone.
+
+If you used procmail like in
+
+(setq nnmail-use-procmail t)
+(setq nnmail-spool-file 'procmail)
+(setq nnmail-procmail-directory "~/mail/incoming/")
+(setq nnmail-procmail-suffix "\\.in")
+
+this now has changed to
+
+(setq mail-sources
+ '((directory :path "~/mail/incoming/"
+ :suffix ".in")))
+
+More information is available in the info doc at Select Methods ->
+Getting Mail -> Mail Sources
+
+*** Gnus is now a MIME-capable reader. This affects many parts of
+Gnus, and adds a slew of new commands. See the manual for details.
+
+*** Gnus has also been multilingualized. This also affects too many
+parts of Gnus to summarize here, and adds many new variables.
+Separate MIME packages like SEMI will not work. There are built-in
+facilities equivalent to those of gnus-mule.el, which is now just a
+compatibility layer.
+
+*** gnus-auto-select-first can now be a function to be
+called to position point.
+
+*** The user can now decide which extra headers should be included in
+summary buffers and NOV files.
+
+*** `gnus-article-display-hook' has been removed. Instead, a number
+of variables starting with `gnus-treat-' have been added.
+
+*** The Gnus posting styles have been redone again and now work in a
+subtly different manner.
+
+*** New web-based backends have been added: nnslashdot, nnwarchive
+and nnultimate. nnweb has been revamped, again, to keep up with
+ever-changing layouts.
+
+*** Gnus can now read IMAP mail via nnimap.
+
+*** There is image support.
+
+** When your terminal can't display characters from some of the ISO
+8859 character sets but can display Latin-1, you can display
+more-or-less mnemonic sequences of ASCII/Latin-1 characters instead of
+empty boxes (under a window system) or question marks (not under a
+window system). Customize the option `latin1-display' to turn this
+on.
+
+** The new user-option `find-file-suppress-same-file-warnings' can be
+set to suppress warnings ``X and Y are the same file'' when visiting a
+file that is already visited under a different name.
+
+** The new user-option `electric-help-shrink-window' can be set to
+nil to prevent adjusting the help window size to the buffer size.
+
+** Emacs now checks for recursive loads of Lisp files. If the
+recursion depth exceeds `recursive-load-depth-limit', an error is
+signaled.
+
+** The Strokes package has been updated. If your Emacs has XPM
+support, you can use it for pictographic editing. In Strokes mode,
+use C-mouse-2 to compose a complex stoke and insert it into the
+buffer. You can encode or decode a strokes buffer with new commands
+M-x strokes-encode-buffer and M-x strokes-decode-buffer. There is a
+new command M-x strokes-list-strokes.
+
++++
+** New command M-x describe-character-set reads a character set name
+and displays information about that.
+
+** When an error is signaled during the loading of the user's init
file, Emacs now pops up the *Messages* buffer.
** Polish and German translations of Emacs' reference card have been
** New function executable-make-buffer-file-executable-if-script-p is
suitable as an after-save-hook as an alternative to `executable-chmod'.
++++
** The most preferred coding-system is now used to save a buffer if
buffer-file-coding-system is `undecided' and it is safe for the buffer
contents. (The most preferred is set by set-language-environment or
the file will be saved silently with the appropriate coding.
Previously you would be prompted for a safe coding system.
++++
** New variable `inhibit-iso-escape-detection' determines if Emacs'
coding system detection algorithm should pay attention to ISO2022's
escape sequences. If this variable is non-nil, the algorithm ignores
** C-u C-x = provides detailed information about the character at
point in a pop-up window.
++++
** New command M-x list-charset-chars reads a character set name and
displays all characters in that character set.
** M-x set-terminal-coding-system (C-x RET t) now allows CCL-based
coding systems such as cpXXX and cyrillic-koi8.
++++
** M-; now calls comment-dwim which tries to do something clever based
-on the context.
+on the context. M-x kill-comment is now an alias to comment-kill,
+defined on newcomment.el.
+++
** The function `getenv' is now callable interactively.
** New commands iso-iso2sgml and iso-sgml2iso convert between Latin-1
characters and the corresponding SGML (HTML) entities.
++++
** Emacs now refuses to load compiled Lisp files which weren't
compiled with Emacs. Set `load-dangerous-libraries' to t to change
this behavior.
MS-DOS, either in the echo area or with tooltips. Many standard menus
displayed by Emacs now have help strings.
++++
** Highlighting of mouse-sensitive regions is now supported in the
MS-DOS version of Emacs.
** New user option `read-mail-command' specifies a command to use to
read mail from the menu etc.
++++
** Hexl contains a new command `hexl-insert-hex-string' which inserts
a string of hexadecimal numbers read from the mini-buffer.
`outline-headers-as-kill' copies the visible headings in the region to
the kill ring, e.g. to produce a table of contents.
-** Changes to Emacs Server
+** Changes to Emacs Server
-*** There new option `server-kill-new-buffers' specifies what to do
++++
+*** The new option `server-kill-new-buffers' specifies what to do
with buffers when done with them. If non-nil, the default, buffers
are killed, unless they were already present before visiting them with
Emacs Server. If nil, `server-temp-file-regexp' specifies which
buffers to kill, as before.
Please note that only buffers are killed that still have a client,
-i.e. buffers visited which `emacsclient --no-wait' are never killed in
+i.e. buffers visited with `emacsclient --no-wait' are never killed in
this way.
** Changes to Show Paren mode.
The new user option show-paren-priority specifies the priority to
use. Default is 1000.
++++
** New command M-x check-parens can be used to find unbalanced paren
groups and strings in buffers in Lisp mode (or other modes).
`foreground-color' or `background-color' sets the colors of the
`default' face and vice versa.
++++
** New face `menu'.
The face `menu' can be used to change colors and font of Emacs' menus.
displayed if point is at the end of the line containing the
whitespace.
++++
** Busy-cursor.
Emacs can optionally display a busy-cursor under X. You can turn the
and related parameters like frequency and delay can be customized in
the group `cursor'.
++++
** New font-lock support mode `jit-lock-mode'.
This support mode is roughly equivalent to `lazy-lock' but is
*** Arrows that indicate sub-menus are now drawn with shadows, as in
LessTif and Motif.
++++
** Hscrolling in C code.
Horizontal scrolling now happens automatically if
`automatic-hscrolling' is set (the default). This setting can be
customized.
++++
** Tool bar support.
Emacs supports a tool bar at the top of a frame under X. For details
how to define a tool bar, see the page describing Lisp-level changes.
+Tool-bar global minor mode controls whether or not it is displayed.
+To make the tool bar more useful, we need contributions of extra icons
+for specific modes (with copyright assignments).
+++
** Mouse-sensitive mode line.
The default is 200; set the variable to nil to disable the feature.
++++
** A block cursor can be drawn as wide as the glyph under it under X.
As an example: if a block cursor is over a tab character, it will be
drawn as wide as that tab on the display. To do this, set
`x-stretch-cursor' to a non-nil value.
++++
** Empty display lines at the end of a buffer may be marked with a
bitmap (this is similar to the tilde displayed by vi).
`indicate-empty-lines' to a non-nil value. The default value of this
variable is found in `default-indicate-empty-lines'.
++++
** There is a new "aggressive" scrolling method.
When scrolling up because point is above the window start, if the
value of the buffer-local variable `scroll-up-aggessively' is a
number, Emacs chooses a new window start so that point ends up that
-fraction of the window's height from the bottom of the window.
+fraction of the window's height from the top of the window.
When scrolling down because point is below the window end, if the
value of the buffer-local variable `scroll-down-aggessively' is a
number, Emacs chooses a new window start so that point ends up that
-fraction of the window's height from the top of the window.
+fraction of the window's height from the bottom of the window.
** The rectangle commands now avoid inserting undesirable spaces,
notably at the end of lines.
query-replace-regexp, but takes a Lisp expression which is evaluated
after each match to get the replacement text.
++++
** M-x query-replace recognizes a new command `e' (or `E') that lets
you edit the replacement string.
you complete mail aliases in the text, analogous to
lisp-complete-symbol.
++++
** Emacs now resizes mini-windows if appropriate.
If a message is longer than one line, or minibuffer contents are
** Changes to hideshow.el
Hideshow is now at version 5.x. It uses a new algorithms for block
-selection and traversal and includes more isearch support.
+selection and traversal, includes more isearch support, and has more
+conventional keybindings.
*** Generalized block selection and traversal
(lambda ()
(add-to-list 'mode-line-format 'hs-headline)))
+*** New customization var: `hs-hide-all-non-comment-function'
+
+Normally, `hs-hide-all' hides everything, leaving only the
+header lines of top-level forms (and comments, unless var
+`hs-hide-comments-when-hiding-all' is non-nil). It does this by
+moving point to each top-level block beginning and hiding the
+block there. In some major modes (for example, Java), this
+behavior results in few blocks left visible, which may not be so
+useful.
+
+You can now set var `hs-hide-all-non-comment-function' to a
+function to be called at each top-level block beginning, instead
+of the normal block-hiding function. For example, the following
+code defines a function to hide one level down and move point
+appropriately, and then tells hideshow to use the new function.
+
+(defun ttn-hs-hide-level-1 ()
+ (hs-hide-level 1)
+ (forward-sexp 1))
+(setq hs-hide-all-non-comment-function 'ttn-hs-hide-level-1)
+
+The name `hs-hide-all-non-comment-function' was chosen to
+emphasize that this function is not called for comment blocks,
+only for code blocks.
+
+*** Command deleted: `hs-show-region'
+
+Historical Note: This command was added to handle "unbalanced
+parentheses" emergencies back when hideshow.el used selective
+display for implementation.
+
+*** Commands rebound to more conventional keys
+
+The hideshow commands used to be bound to keys of the form "C-c
+LETTER". This is contrary to the Emacs keybinding convention,
+which reserves that space for user modification. Here are the
+new bindings (which includes the addition of `hs-toggle-hiding'):
+
+ hs-hide-block C-c C-h
+ hs-show-block C-c C-s
+ hs-hide-all C-c C-M-h
+ hs-show-all C-c C-M-s
+ hs-hide-level C-c C-l
+ hs-toggle-hiding C-c C-c
+ hs-mouse-toggle-hiding [(shift button-2)]
+
+These were chosen to roughly imitate those used by Outline mode.
+
** Changes to Change Log mode and Add-Log functions
+++
-If you invoke `add-change-log-entry' from a backup file, it makes an
-entry appropriate for the file's parent. This is useful for making
+*** If you invoke `add-change-log-entry' from a backup file, it makes
+an entry appropriate for the file's parent. This is useful for making
log entries by comparing a version with deleted functions.
+++
-New command M-x change-log-merge merges another log into the current
-buffer.
+**** New command M-x change-log-merge merges another log into the
+current buffer.
+++
-New command M-x change-log-redate fixes any old-style date entries in
-a log file.
+*** New command M-x change-log-redate fixes any old-style date entries
+in a log file.
-Change Log mode now adds a file's version number to change log entries
-if user-option `change-log-version-info-enabled' is non-nil.
++++
+*** Change Log mode now adds a file's version number to change log
+entries if user-option `change-log-version-info-enabled' is non-nil.
-Unless the file is under version control the search for a file's
++++
+*** Unless the file is under version control the search for a file's
version number is performed based on regular expressions from
`change-log-version-number-regexp-list' which can be cutomized.
Version numbers are only found in the first 10 percent of a file.
+*** Change Log mode now defines its own faces for font-lock
+highlighting.
+
** Changes in Font Lock
*** The new function `font-lock-remove-keywords' can be used to remove
** Comint (subshell) changes
By default, comint no longer uses the variable `comint-prompt-regexp' to
-distiguish prompts from user-input. Instead, it notices which parts of
+distinguish prompts from user-input. Instead, it notices which parts of
the text were output by the process, and which entered by the user, and
attaches `field' properties to allow emacs commands to use this information.
Common movement commands, notably beginning-of-line, respect field
** Ispell changes
++++
*** The command `ispell' now spell-checks a region if
transient-mark-mode is on, and the mark is active. Otherwise it
spell-checks the current buffer.
++++
*** Support for synchronous subprocesses - DOS/Windoze - has been
added.
*** In Isearch mode, mouse-2 in the echo area now yanks the current
selection into the search string rather than giving an error.
++++
*** There is a new lazy highlighting feature in incremental search.
Lazy highlighting is switched on/off by customizing variable
set to nil, you can remove the highlights manually with `M-x
isearch-lazy-highlight-cleanup'.
++++
** Changes in sort.el
The function sort-numeric-fields interprets numbers starting with `0'
as octal and numbers starting with `0x' or `0X' as hexadecimal. The
-new user-option sort-numberic-base can be used to specify a default
+new user-option sort-numeric-base can be used to specify a default
numeric base.
** Changes to Ange-ftp
*** .ss files are Scheme files, .pdb is Postscript with C syntax, .psw is
for PSWrap.
++++
** Changes in etags.el
*** The new user-option tags-case-fold-search can be used to make
and preferred and locale coding systems systematically from the
LC_ALL, LC_CTYPE, and LANG environment variables during startup.
++++
** New language environments `Polish', `Latin-8' and `Latin-9'.
Latin-8 and Latin-9 correspond respectively to the ISO character sets
8859-14 (Celtic) and 8859-15 (updated Latin-1, with the Euro sign).
-There is currently no specific input method support for them.
+GNU Intlfonts doesn't support these yet; there are basic 8859-14 and
+8859-15 fonts at <URL:http://czyborra.com/charsets/> and recent X
+releases have 8859-15. There are new Latin-8 and Latin-9 prefix
+(only) and Polish slash input methods in Leim.
+++
** Fortran mode has a new command `fortran-strip-sequence-nos' to
+++
** A new command `view-emacs-problems' (C-h P) displays the PROBLEMS file.
-** The Dabbrev package has a new user-option `dabbrev-ignore-regexps'
++++
+** The Dabbrev package has a new user-option `dabbrev-ignored-regexps'
containing a list of regular expressions. Buffers matching a regular
expression from that list, are not checked.
** The buffer menu (C-x C-b) no longer lists the *Buffer List* buffer.
++++
+** When invoked with a prefix argument, the command `list-abbrevs' now
+displays local abbrevs, only.
+
+** VC Changes
+
+VC has been overhauled internally. It is now modular, making it
+easier to plug-in arbitrary version control backends. (See Lisp
+Changes for details on the new structure.) As a result, the mechanism
+to enable and disable support for particular version systems has
+changed: everything is now controlled by the new variable
+`vc-handled-backends'. Its value is a list of atoms that identify
+version systems; the default is '(RCS CVS SCCS). When finding a file,
+each of the backends in that list is tried in order to see whether the
+file is registered in that backend.
+
+When registering a new file, VC first tries each of the listed
+backends to see if any of them considers itself "responsible" for the
+directory of the file (e.g. because a corresponding subdirectory for
+master files exists). If none of the backends is responsible, then
+the first backend in the list that could register the file is chosen.
+As a consequence, the variable `vc-default-back-end' is now obsolete.
+
+The old variable `vc-master-templates' is also obsolete, although VC
+still supports it for backward compatibility. To define templates for
+RCS or SCCS, you should rather use the new variables
+vc-{rcs,sccs}-master-templates. (There is no such feature under CVS
+where it doesn't make sense.)
+
+The variables `vc-ignore-vc-files' and `vc-handle-cvs' are also
+obsolete now, you must set `vc-handled-backends' to nil or exclude
+`CVS' from the list, respectively, to achieve their effect now.
+
+*** General Changes
+
+The variable `vc-checkout-carefully' is obsolete: the corresponding
+checks are always done now.
+
+VC Dired buffers are now kept up-to-date during all version control
+operations.
+
+*** Changes for CVS
+
+There is a new user option, `vc-cvs-stay-local'. If it is `t' (the
+default), then VC avoids network queries for files registered in
+remote repositories. The state of such files is then only determined
+by heuristics and past information. `vc-cvs-stay-local' can also be a
+regexp to match against repository hostnames; only files from hosts
+that match it are treated locally. If the variable is nil, then VC
+queries the repository just as often as it does for local files.
+
+If `vc-cvs-stay-local' is on, and there have been changes in the
+repository, VC notifies you about it when you actually try to commit.
+If you want to check for updates from the repository without trying to
+commit, you can either use C-u C-x v m to perform an update on the
+current file, or you can use C-x v r RET to get an update for an
+entire directory tree.
+
+The new user option `vc-cvs-use-edit' indicates whether VC should call
+"cvs edit" to make files writeable; it defaults to `t'. (This option
+is only meaningful if the CVSREAD variable is set, or if files are
+"watched" by other developers.)
+
+*** Lisp Changes in VC
+
+VC has been restructured internally to make it modular. You can now
+add support for arbitrary version control backends by writing a
+library that provides a certain set of backend-specific functions, and
+then telling VC to use that library. For example, to add support for
+a version system named FOO, you write a library named vc-foo.el, which
+provides a number of functions vc-foo-... (see commentary at the end
+of vc.el for a detailed list of them). To make VC use that library,
+you need to put it somewhere into Emacs' load path and add the atom
+`FOO' to the list `vc-handled-backends'.
+
** New modes and packages
++++
*** The new package timeclock.el is a mode is for keeping track of time
intervals. You can use it for whatever purpose you like, but the
typical scenario is to keep track of how much time you spend working
on certain projects.
++++
*** The new package hi-lock.el, text matching interactively entered
regexp's can be highlighted. For example,
The command `M-x woman-find-file' asks for the file name of a man
page, then formats and displays it like `M-x woman' does.
++++
*** The new command M-x re-builder offers a convenient interface for
authoring regular expressions with immediate visual feedback.
*** ansi-color.el translates ANSI terminal escapes into text-properties.
+Please note: if `ansi-color-for-shell-mode' and
+`global-font-lock-mode' are non-nil, loading ansi-color.el will
+disable font-lock and add `ansi-color-apply' to
+`comint-preoutput-filter-functions' for all shell-mode buffers. This
+displays the output of "ls --color=yes" using the correct foreground
+and background colors.
+
*** delphi.el provides a major mode for editing the Delphi (Object
Pascal) language.
++++
*** quickurl.el provides a simple method of inserting a URL based on
the text at point.
*** The function `turn-off-auto-fill' unconditionally turns off Auto
Fill mode.
+*** gnus-mule.el is now just a compatibility layer over the built-in
+Gnus facilities.
+
** Withdrawn packages
*** mldrag.el has been removed. mouse.el provides the same
* Lisp changes made after edition 2.6 of the Emacs Lisp Manual,
(Display-related features are described in a page of their own below.)
++++
+** The new function `display-message-or-buffer' displays a message in
+the echo area or pops up a buffer, depending on the length of the
+message.
+
+** The new macro `with-auto-compression-mode' allows evaluating an
+expression with auto-compression-mode enabled.
+
+** In image specifications, `:heuristic-mask' has been replaced
+with the more general `:mask' property.
+
+** Image specifications accept more `:algorithm's.
+
+** A `?' can be used in a symbol name without escaping it with a
+backslash.
+
+++
** Reading from the mini-buffer now reads from standard input if Emacs
is running in batch mode. For example,
will raise frames displaying a buffer, instead of creating a new
frame or window.
++++
** Two new functions for removing elements from lists/sequences
were added
** The function `apropos-mode' runs the hook `apropos-mode-hook'.
++++
** `concat' no longer accepts individual integer arguments, as
promised long ago.
signal an error instead of returning nil if decoding fails.
** The function sendmail-user-agent-compose now recognizes a `body'
-header is the list of headers passed to it.
+header in the list of headers passed to it.
** The new function member-ignore-case works like `member', but
ignores differences in case and text representation.
* Lisp-level Display features added after release 2.6 of the Emacs
Lisp Manual
+*** On window systems, `glyph-table' is no longer used.
+
+++
** Help strings in menu items are now used to provide `help-echo' text.
font). FRAME is the frame on which the image will be displayed.
FRAME nil or omitted means use the selected frame.
+** The function `image-mask-p' can be used to determine if an image
+has a mask bitmap.
+
+- Function: image-mask-p SPEC &optional FRAME
+
+Return t if image SPEC has a mask bitmap.
+FRAME is the frame on which the image will be displayed. FRAME nil
+or omitted means use the selected frame.
+
++++
** The function `find-image' can be used to find a usable image
satisfying one of a list of specifications.
** The STRING argument of `put-image' and `insert-image' is now
optional.
-** Image specifications may contain the property `:ascent center'.
-
-When this property is specified, the image is vertically centered
-around a centerline which would be the vertical center of text drawn
-at the position of the image, in the manner specified by the text
-properties and overlays that apply to the image.
++++
+** Image specifications may contain the property `:ascent center' (see
+below).
\f
* New Lisp-level Display features in Emacs 21.1
`:height'
-VALUE must be an integer specifying the height of the font to use in
-1/10 pt.
+VALUE must be either an integer specifying the height of the font to use
+in 1/10 pt, a floating point number specifying the amount by which to
+scale any underlying face, or a function, which is called with the old
+height (from the underlying face), and should return the new height.
`:weight'
Please see also the documentation of `set-face-attribute' and
`defface'.
+`:inherit'
+
+VALUE is the name of a face from which to inherit attributes, or a list
+of face names. Attributes from inherited faces are merged into the face
+like an underlying face would be, with higher priority than underlying faces.
+
*** Face attributes and X resources
The following X resource names can be used to set face attributes
`:algorithm ALGO'
-Apply an image algorithm to the image before displaying it. ALGO must
-be a symbol specifying the algorithm. Currently only `laplace' is
-supported which applies a Laplace edge detection algorithm to an image
-which is intended to display images "disabled."
+Apply an image algorithm to the image before displaying it.
-`:heuristic-mask BG'
+ALGO `laplace' or `emboss' means apply a Laplace or ``emboss''
+edge-detection algorithm to the image.
-If BG is not nil, build a clipping mask for the image, so that the
-background of a frame is visible behind the image. If BG is t,
-determine the background color of the image by looking at the 4
-corners of the image, assuming the most frequently occuring color from
-the corners is the background color of the image. Otherwise, BG must
-be a list `(RED GREEN BLUE)' specifying the color to assume for the
-background of the image.
+ALGO `(edge-detection :matrix MATRIX :color-adjust ADJUST)' means
+apply a general edge-detection algorithm. MATRIX must be either a
+nine-element list or a nine-element vector of numbers. A pixel at
+position x/y in the transformed image is computed from original pixels
+around that position. MATRIX specifies, for each pixel in the
+neighborhood of x/y, a factor with which that pixel will influence the
+transformed pixel; element 0 specifies the factor for the pixel at
+x-1/y-1, element 1 the factor for the pixel at x/y-1 etc. as shown
+below.
+
+ (x-1/y-1 x/y-1 x+1/y-1
+ x-1/y x/y x+1/y
+ x-1/y+1 x/y+1 x+1/y+1)
+
+The resulting pixel is computed from the color intensity of the color
+resulting from summing up the RGB values of surrounding pixels,
+multiplied by the specified factors, and dividing that sum by the sum
+of the factors' absolute values.
+
+Laplace edge-detection currently uses a matrix of
+
+ (1 0 0
+ 0 0 0
+ 9 9 -1)
+
+Emboss edge-detection uses a matrix of
+
+ ( 2 -1 0
+ -1 0 1
+ 0 1 -2)
+
+ALGO `disabled' means transform the image so that it looks
+``disabled''.
+
+`:mask MASK'
+
+If MASK is `heuristic' or `(heuristic BG)', build a clipping mask for
+the image, so that the background of a frame is visible behind the
+image. If BG is not specified, or if BG is t, determine the
+background color of the image by looking at the 4 corners of the
+image, assuming the most frequently occuring color from the corners is
+the background color of the image. Otherwise, BG must be a list `(RED
+GREEN BLUE)' specifying the color to assume for the background of the
+image.
+
+If MASK is nil, remove a mask from the image, if it has one. Images
+in some formats include a mask which can be removed by specifying
+`:mask nil'.
`:file FILE'
Gives a help string to display for the tool bar item. This help
is displayed when the mouse is moved over the item.
+The function `toolbar-add-item' is a convenience function for adding
+toolbar items generally, and `tool-bar-add-item-from-menu' can be used
+to define a toolbar item with a binding copied from an item on the
+menu bar.
+
*** Tool-bar-related variables.
If `auto-resize-tool-bar' is non-nil, the tool bar will automatically
+++
** Text property `display'
-The `display' text property is used to insert images into text, and
-also control other aspects of how text displays. The value of the
-`display' property should be a display specification, as described
+The `display' text property is used to insert images into text,
+replace text with other text, display text in marginal area, and it is
+also used to control other aspects of how text displays. The value of
+the `display' property should be a display specification, as described
below, or a list or vector containing display specifications.
+*** Replacing text, displaying text in marginal areas
+
+To replace the text having the `display' property with some other
+text, use a display specification of the form `(LOCATION STRING)'.
+
+If LOCATION is `(margin left-margin)', STRING is displayed in the left
+marginal area, if it is `(margin right-margin)', it is displayed in
+the right marginal area, and if LOCATION is `(margin nil)' STRING
+is displayed in the text. In the latter case you can also use the
+simpler form STRING as property value.
+
*** Variable width and height spaces
To display a space of fractional width or height, use a display