-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
** 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
+++
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