-GNU Emacs NEWS -- history of user-visible changes. 5 Jan 2000
+GNU Emacs NEWS -- history of user-visible changes. 2000-08-14
Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
See the end for copying conditions.
Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
-For older news, see the file ONEWS.
+For older news, see the file ONEWS
\f
* Installation Changes in Emacs 21.1
+** Support for GNU/Linux on IA64 machines has been added.
+
** `movemail' defaults to supporting POP. You can turn this off using
the --without-pop configure option, should that be necessary.
to list them.
** There is a new configure option `--without-xim' that instructs
-Emacs to not use X Input Methods (XIM), if they these are available.
+Emacs to not use X Input Methods (XIM), if these are available.
+
+** There is a new configure option `--disable-largefile' to omit
+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.
+
\f
* Changes in Emacs 21.1
+* 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
+added. They are named `pl-refcard.tex' and `de-refcard.tex'.
+Postscript files are included.
+
+** A reference card for Dired has been added. Its name is
+`dired-ref.tex'.
+
+** The new variable `auto-mode-interpreter-regexp' contains a regular
+expression matching interpreters, for file mode determination.
+
+This regular expression is matched against the first line of a file to
+determine the file's mode in `set-auto-mode' when Emacs can't deduce a
+mode from the file's name. If it matches, the file is assumed to be
+interpreted by the interpreter matched by the second group of the
+regular expression. The mode is then determined as the mode
+associated with that interpreter in `interpreter-mode-alist'.
+
** C-down-mouse-3 is bound differently. Now if the menu bar is not
displayed it pops up a menu containing the items which would be on the
menu bar. If the menu bar is displayed, it pops up the major mode
to the source name (.emacs.el), if that exists, after loading it.
** The help string specified for a menu-item whose definition contains
-the property `:help HELP' is now displayed under X either in the echo
-area or with tooltips.
+the property `:help HELP' is now displayed under X, on MS-Windows, and
+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.
`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 Show Paren mode.
+
+*** Overlays used by Show Paren mode now use a priority property.
+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).
** 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
+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
+boundaries in a fairly natural manner.
+To disable this feature, and use the old behavior, set the variable
+`comint-use-prompt-regexp-instead-of-fields' to a non-nil value.
+
Comint now includes new features to send commands to running processes
and redirect the output to a designated buffer or buffers.
M-x comint-redirect-send-command but additionally reads the name of
the buffer whose process should be used from the mini-buffer.
-Packages based on comint.el like shell-mode, and
-scheme-interaction-mode now highlight user input, and support choosing
-previous input with mouse-2. To control this feature, see the
-user-option `comint-highlight-input'.
+Packages based on comint.el like shell-mode, and scheme-interaction-mode
+now highlight user input and program prompts, and support choosing
+previous input with mouse-2. To control these feature, see the
+user-options `comint-highlight-input' and `comint-highlight-prompt'.
** Changes to Rmail mode
pattern. The variable time-stamp-count enables this new feature; it
defaults to 1.
-** Partial Completion mode now completes environment variables in
+** Partial Completion mode now completes environment variables in
file names.
** Tooltips.
*** The function `eval-defun' (M-C-x) now loads Edebug and instruments
code when called with a prefix argument.
+** 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.
+
+*** An "alignment error" bug was fixed when a manual spelling
+correction is made and re-checked.
+
+*** An Italian and a Portuguese dictionary definition has been added.
+
+*** Region skipping performance has been vastly improved in some
+cases.
+
+*** Spell checking HTML buffers has been improved and isn't so strict
+on syntax errors.
+
+*** The buffer-local words are now always placed on a new line at the
+end of the buffer.
+
** Dired changes
*** New variable `dired-recursive-deletes' determines if the delete
Defaulting c-style-variables-are-local-p to t avoids the confusing
situation that occurs when a user sets some style variables globally
-and edit both a Java and a non-Java file in the same Emacs session.
+and edits both a Java and a non-Java file in the same Emacs session.
If the style variables aren't buffer local in this case, loading of
the second file will cause the default style (either "gnu" or "java"
by default) to override the global settings made by the user.
*** The mode now uses the abbrev table `makefile-mode-abbrev-table'.
-*** Conditionals and include statements are now highlighted when
+*** Conditionals and include statements are now highlighted when
Fontlock mode is active.
** Isearch changes
-** In Isearch mode, M-C-s and M-C-r are now bound like C-s and C-r,
+*** Isearch now puts a call to `isearch-resume' in the command history,
+so that searches can be resumed.
+
+*** In Isearch mode, M-C-s and M-C-r are now bound like C-s and C-r,
respectively, i.e. you can repeat a regexp isearch with the same keys
that started the search.
search string are highlighted. The current match is highlighted as
before using face `isearch' or `region'. All other matches are
highlighted using face `isearch-lazy-highlight-face' which defaults to
-`secondary-selection'.
+`secondary-selection'.
The extra highlighting makes it easier to anticipate where the cursor
will end up each time you press C-s or C-r to repeat a pending search.
*** If the new user-option `ange-ftp-try-passive-mode' is set, passive
ftp mode will be used if the ftp client supports that.
+*** Ange-ftp handles the output of the w32-style clients which
+output ^M at the end of lines.
+
** Shell script mode changes.
Shell script mode (sh-script) can now indent scripts for shells
containing a list of regular expressions. Buffers matching a regular
expression from that list, are not checked.
+** Emacs can now figure out modification times of remote files.
+When you do C-x C-f /user@host:/path/file RET and edit the file,
+and someone else modifies the file, you will be prompted to revert
+the buffer, just like for the local files.
+
+** The buffer menu (C-x C-b) no longer lists the *Buffer List* buffer.
+
** 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,
+
+ M-x highlight-regexp RET clearly RET RET
+
+will highlight all occurrences of `clearly' using a yellow background
+face. New occurrences of `clearly' will be highlighted as they are
+typed. `M-x unhighlight-regexp RET' will remove the highlighting.
+Any existing face can be used for highlighting and a set of
+appropriate faces is provided. The regexps can be written into the
+current buffer in a form that will be recognized the next time the
+corresponding file is read.
+
+*** The new package zone.el plays games with Emacs' display when
+Emacs is idle.
+
*** The new package xml.el provides a simple but generic XML
parser. It doesn't parse the DTDs however.
*** windmove.el provides moving between windows.
-*** crm.el provides a facility to read multiple strings from the
+*** crm.el provides a facility to read multiple strings from the
minibuffer with completion.
*** todo-mode.el provides management of TODO lists and integration
* Lisp changes made after edition 2.6 of the Emacs Lisp Manual,
(Display-related features are described in a page of their own below.)
+** If `display-buffer-reuse-frames' is set, function `display-buffer'
+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
+
+- Function: remove ELT SEQ
+
+Return a copy of SEQ with all occurences of ELT removed. SEQ must be
+a list, vector, or string. The comparison is done with `equal'.
+
+- Function: remq ELT LIST
+
+Return a copy of LIST with all occurences of ELT removed. The
+comparison is done with `eq'.
+
+** The function `delete' now also works with vectors and strings.
+
+** The meaning of the `:weakness WEAK' argument of make-hash-table
+has been changed.
+
** Function `aset' stores any multibyte character in any string
without signaling "Attempt to change char length of a string". It may
convert a unibyte string to multibyte if necessary.
** Function `make-obsolete' now has an optional arg to say when the
function was declared obsolete.
-** Function plist-member is renamed from widget-plist-member (which is
+** Function `plist-member' is renamed from `widget-plist-member' (which is
retained as an alias).
** Easy-menu's :filter now works as in XEmacs.
If ALL-FRAMES is a frame, it means include windows on that frame.
Anything else means restrict to the selected frame.
-** The function `single-key-description' now encloses function key
-and event names in angle brackets.
+** The function `single-key-description' now encloses function key and
+event names in angle brackets. When called with a second optional
+argument non-nil, angle brackets won't be printed.
** If the variable `message-truncate-lines' is bound to t around a
call to `message', the echo area will not be resized to display that
message; it will be truncated instead, as it was done in 20.x.
Default value is nil.
-** The user option line-number-display-limit can now be set to nil,
+** The user option `line-number-display-limit' can now be set to nil,
meaning no limit.
-** select-safe-coding-system now also checks the most preferred
+** `select-safe-coding-system' now also checks the most preferred
coding-system if buffer-file-coding-system is `undecided' and
DEFAULT-CODING-SYSTEM is not specified,
** `concat' no longer accepts individual integer arguments, as
promised long ago.
+** The new function `float-time' returns the current time as a float.
\f
* Lisp changes in Emacs 21.1 (see following page for display-related features)
When you add a new item, please add it without either +++ or ---
so I will know I still need to look at it -- rms.
+*** The special form `save-restriction' now works correctly even if the
+buffer is widened inside the save-restriction and changes made outside
+the original restriction. Previously, doing this would cause the saved
+restriction to be restored incorrectly.
+
*** The functions `find-charset-region' and `find-charset-string' include
`eight-bit-control' and/or `eight-bit-graphic' in the returned list
when it finds 8-bit characters. Previously, it included `ascii' in a
*** `#BINTEGER' or `#bINTEGER' reads INTEGER in binary (radix 2).
INTEGER optionally contains a sign.
- #b1111
+ #b1111
=> 15
- #b-1111
+ #b-1111
=> -15
*** `#OINTEGER' or `#oINTEGER' reads INTEGER in octal (radix 8).
- #o666
+ #o666
=> 438
*** `#XINTEGER' or `#xINTEGER' reads INTEGER in hexadecimal (radix 16).
- #xbeef
+ #xbeef
=> 48815
*** `#RADIXrINTEGER' reads INTEGER in radix RADIX, 2 <= RADIX <= 36.
- #2R-111
+ #2R-111
=> -7
- #25rah
+ #25rah
=> 267
** The function `documentation-property' now evaluates the value of
:weakness WEAK
-WEAK must be either nil, one of the symbols `key, `value', or t.
-Entries are removed from weak tables during garbage collection if
-their key and/or value are not referenced elsewhere outside of the
-hash table. Default are non-weak hash tables.
+WEAK must be either nil, one of the symbols `key, `value',
+`key-or-value', `key-and-value', or t, meaning the same as
+`key-and-value'. Entries are removed from weak tables during garbage
+collection if their key and/or value are not referenced elsewhere
+outside of the hash table. Default are non-weak hash tables.
- Function: makehash &optional TEST
Returns the size of TABLE.
-- Function: hash-table-rehash-test TABLE
+- Function: hash-table-test TABLE
Returns the test TABLE uses to compare keys.
There is now code to support an abstraction called `fields' in emacs
buffers. A field is a contiguous region of text with the same `field'
-text-property.
+property (which can be a text property or an overlay).
Many emacs functions, such as forward-word, forward-sentence,
forward-paragraph, beginning-of-line, etc., stop moving when they come
The following functions are defined for operating on fields:
-- Function: constrain-to-field NEW-POS OLD-POS &optional ESCAPE-FROM-EDGE ONLY-IN-LINE
+- Function: constrain-to-field NEW-POS OLD-POS &optional ESCAPE-FROM-EDGE ONLY-IN-LINE INHIBIT-CAPTURE-PROPERTY
Return the position closest to NEW-POS that is in the same field as OLD-POS.
+
A field is a region of text with the same `field' property.
If NEW-POS is nil, then the current point is used instead, and set to the
constrained position if that is is different.
If OLD-POS is at the boundary of two fields, then the allowable
positions for NEW-POS depends on the value of the optional argument
ESCAPE-FROM-EDGE: If ESCAPE-FROM-EDGE is nil, then NEW-POS is
-constrained to the field that has the same `field' text-property
+constrained to the field that has the same `field' char-property
as any new characters inserted at OLD-POS, whereas if ESCAPE-FROM-EDGE
is non-nil, NEW-POS is constrained to the union of the two adjacent
-fields.
+fields. Additionally, if two fields are separated by another field with
+the special value `boundary', then any point within this special field is
+also considered to be `on the boundary'.
If the optional argument ONLY-IN-LINE is non-nil and constraining
NEW-POS would move it to a different line, NEW-POS is returned
C-n or C-a, which should generally respect field boundaries
only in the case where they can still move to the right line.
-- Function: erase-field &optional POS
+If the optional argument INHIBIT-CAPTURE-PROPERTY is non-nil, and OLD-POS has
+a non-nil property of that name, then any field boundaries are ignored.
+
+Field boundaries are not noticed if `inhibit-field-text-motion' is non-nil.
-Erases the field surrounding POS.
+- Function: delete-field &optional POS
+
+Delete the field surrounding POS.
A field is a region of text with the same `field' property.
-If POS is nil, the position of the current buffer's point is used.
+If POS is nil, the value of point is used for POS.
- Function: field-beginning &optional POS ESCAPE-FROM-EDGE
Return the beginning of the field surrounding POS.
A field is a region of text with the same `field' property.
-If POS is nil, the position of the current buffer's point is used.
-If ESCAPE-FROM-EDGE is non-nil and POS is already at beginning of an
+If POS is nil, the value of point is used for POS.
+If ESCAPE-FROM-EDGE is non-nil and POS is at the beginning of its
field, then the beginning of the *previous* field is returned.
- Function: field-end &optional POS ESCAPE-FROM-EDGE
Return the end of the field surrounding POS.
A field is a region of text with the same `field' property.
-If POS is nil, the position of the current buffer's point is used.
-If ESCAPE-FROM-EDGE is non-nil and POS is already at end of a field,
+If POS is nil, the value of point is used for POS.
+If ESCAPE-FROM-EDGE is non-nil and POS is at the end of its field,
then the end of the *following* field is returned.
- Function: field-string &optional POS
Return the contents of the field surrounding POS as a string.
A field is a region of text with the same `field' property.
-If POS is nil, the position of the current buffer's point is used.
+If POS is nil, the value of point is used for POS.
- Function: field-string-no-properties &optional POS
Return the contents of the field around POS, without text-properties.
A field is a region of text with the same `field' property.
-If POS is nil, the position of the current buffer's point is used.
+If POS is nil, the value of point is used for POS.
+++
** Image support.
ASCENT must be a number in the range 0..100, or the symbol `center'.
If it is a number, it specifies the percentage of the image's height
-to use for its ascent.
+to use for its ascent.
If not specified, ASCENT defaults to the value 50 which means that the
image will be centered with the base line of the row it appears in.
-If ASCENT is `center' the image is vertically centered around a
+If ASCENT is `center' the image is vertically centered around a
centerline which is 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.
POS is the position in the overlay's buffer under the mouse.
If OBJECT is a string (an overlay string or a string displayed with
-the `display' property). POS is the position in that string under the
+the `display' property), POS is the position in that string under the
mouse.
If the value of the `help-echo' property is neither a function nor a
overrides this as it does on Unix, except that the bar cursor is
horizontal rather than vertical (since the MS-DOS display doesn't
support a vertical-bar cursor).
+
+
^L
* Emacs 20.7 is a bug-fix release with few user-visible changes
*** The commands lm-verify and lm-synopsis are now interactive. lm-verify
checks that the library file has proper sections and headers, and
lm-synopsis extracts first line "synopsis'"information.
+
+
\f
-* For older news, see the file ONEWS.
+* For older news, see the file ONEWS
----------------------------------------------------------------------
Copyright information: