]> code.delx.au - gnu-emacs/blobdiff - etc/NEWS
Minor wording changes, suggested by Per Starback <starback@ling.uu.se>.
[gnu-emacs] / etc / NEWS
index 51564b281266a3be274302871ddbabdb0d78b9d5..7dcd709b4dbd7c0263483e5222dc683a6d07a5be 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1,4 +1,4 @@
-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.
 
@@ -26,12 +26,121 @@ Emacs to not use X Input Methods (XIM), if these are available.
 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
@@ -269,7 +378,7 @@ There is now support for Imenu to index headings.  A new command
 `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
 
 +++
 *** The new option `server-kill-new-buffers' specifies what to do
@@ -446,6 +555,7 @@ terminals having terminal capabilities `vi', `vs', and `ve'.  Blinking
 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
@@ -483,10 +593,14 @@ 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.
@@ -614,7 +728,8 @@ Default is 0.25.
 ** 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
 
@@ -645,31 +760,82 @@ something like this in your .emacs.
          (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
@@ -679,7 +845,7 @@ mode.
 ** 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
@@ -1210,6 +1376,81 @@ the buffer, just like for the local files.
 
 ** 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
 
 +++
@@ -1366,6 +1607,13 @@ containing diff3-style conflict markers, such as generated by RCS.
 
 *** 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.
 
@@ -1489,6 +1737,9 @@ numeric keys supply prefix args rather than self inserting.
 *** 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
@@ -1502,6 +1753,22 @@ functionality with aliases for the mldrag functions.
 * 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,
@@ -1782,7 +2049,7 @@ argument function's results.
 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.
@@ -2320,6 +2587,8 @@ strings that have been consed so far.
 * 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.
 
@@ -2336,6 +2605,15 @@ character units (fractions of the width/height of the frame's default
 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.
@@ -2587,8 +2865,10 @@ It must be one of the symbols `ultra-condensed', `extra-condensed',
 
 `: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'
 
@@ -2678,6 +2958,12 @@ must be t or nil in that case.  A value of `unspecified' is not allowed."
 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
@@ -2906,20 +3192,59 @@ around an image.
 
 `: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.
+
+ALGO `laplace' or `emboss' means apply a Laplace or ``emboss''
+edge-detection algorithm to 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)
 
-`:heuristic-mask BG'
+Emboss edge-detection uses a matrix of
 
-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.
+  ( 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'
 
@@ -3202,8 +3527,6 @@ suppresses the tool bar.  If the value is non-zero and
 `auto-resize-tool-bars' is non-nil the tool bar's size will be changed
 automatically so that all tool bar items are visible.
 
-before this facility can be useful, we need people to donate icons.
-
 *** Tool bar item definitions
 
 Tool bar items are defined using `define-key' with a prefix-key
@@ -3261,6 +3584,11 @@ algorithm is used on that image to draw the image in disabled state.
 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
@@ -3341,11 +3669,23 @@ position in the header-line.
 +++
 ** 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