Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
For older news, see the file ONEWS
+Temporary note: +++ indicates that the appropriate manual
+has already been updated. --- means no change in the manuals
+is called for.
+\f
+* Installation Changes in Emacs 21.3
+
+** Emacs now supports new configure options `--program-prefix',
+`--program-suffix' and `--program-transform-name' that affect the names of
+installed programs.
+
+** Support for FreeBSD/Alpha has been added.
+
+\f
+* Changes in Emacs 21.3
+
+** hide-ifdef-mode now uses overlays rather than selective-display
+to hide its text. This should be mostly transparent but slightly
+changes the behavior of motion commands line C-e and C-p.
+
+** Unquoted `$' in file names do not signal an error any more when
+the corresponding environment variable does not exist.
+Instead, the `$ENVVAR' text is left as is, so that `$$' quoting
+is only rarely needed.
+
+** jit-lock can now be delayed with `jit-lock-defer-time'.
+
+If this variable is non-nil, its value should be the amount of Emacs
+idle time inseconds to wait before starting fontification. For
+example, if you set `jit-lock-defer-time' to 0.25, fontification will
+only happen after 0.25s of idle time.
+
+** If you hit M-C-SPC (mark-sexp) repeatedly, the marked region
+will now be extended each time, so you can mark the next two sexps with
+M-C-SPC M-C-SPC, for example.
+
+** mouse-wheels can now scroll a specific fraction of the window
+(rather than a fixed number of lines) and the scrolling is `progressive'.
+
+** The keyboard-coding-system is now automatically set based on
+your current locale settings. If it turns out that your terminal
+does not support the encoding implied by your locale (for example,
+it inserts non-ASCII chars if you hit M-i), you will need to add
+
+ (set-keyboard-coding-system nil)
+
+to your .emacs to revert to the old behavior.
+
++++
+** Emacs now reads the standard abbrevs file ~/.abbrev_defs
+automatically at startup, if it exists. And it always offers to save
+abbrevs (if you have changed them) when if offers to save modified
+buffers.
+
+** Display of hollow cursors now obeys the buffer-local value (if any)
+of `cursor-in-non-selected-windows' in the buffer that the cursor
+appears in.
+
+** The default values of `tooltip-delay' and `tooltip-hide-delay'
+were changed.
+
+** On terminals whose erase-char is ^H (Backspace), Emacs
+now uses normal-erase-is-backspace-mode.
+
++++
+** The command line option --no-windows has been changed to
+--no-window-system. The old one still works, but is deprecated.
+
+** `buffer-menu' and `list-buffers' now list buffers whose names begin
+with a space, if they visit files.
+
+** You can now customize fill-nobreak-predicate to control where
+filling can break lines. We provide two sample predicates,
+fill-single-word-nobreak-p and fill-french-nobreak-p.
+
+** New user option `add-log-always-start-new-record'.
+When this option is enabled, M-x add-change-log-entry will always
+start a new record regardless of when the last record is.
+
+** New user option `sgml-xml'.
+When this option is enabled, SGML tags are inserted in XML style,
+i.e., there is always a closing tag.
+When not customized, it becomes buffer-local when it can be inferred
+from the file name or buffer contents.
+
+** When the *scratch* buffer is recreated, its mode is set from
+initial-major-mode, which normally is lisp-interaction-mode,
+instead of using default-major-mode.
+
+** Byte compiler warning and error messages have been brought more
+in line with the output of other GNU tools.
+
+** Lisp-mode now uses font-lock-doc-face for the docstrings.
+
+** perl-mode has a new variable `perl-indent-continued-arguments'.
+
+** `special-display-buffer-names' and `special-display-regexps' now
+understand two new boolean pseudo-frame-parameters `same-frame' and
+`same-window'.
+
+** When pure storage overflows while dumping, Emacs now prints how
+much pure storage it will approximately need.
+
+** M-x setenv now expands environment variables of the form `$foo' and
+`${foo}' in the specified new value of the environment variable. To
+include a `$' in the value, use `$$'.
+
++++
+** File-name completion can now ignore directories.
+If an element of the list in `completion-ignored-extensions' ends in a
+slash `/', it indicates a subdirectory that should be ignored when
+completing file names. Elements of `completion-ignored-extensions'
+which do not end in a slash are never considered when a completion
+candidate is a directory.
+
+** New user option `inhibit-startup-buffer-menu'.
+When loading many files, for instance with `emacs *', Emacs normally
+displays a buffer menu. This option turns the buffer menu off.
+
+** Rmail now displays 5-digit message ids in its summary buffer.
+
+** When using M-x revert-buffer in a compilation buffer to rerun a
+compilation, it is now made sure that the compilation buffer is reused
+in case it has been renamed.
+
+** On MS Windows, the "system caret" now follows the cursor.
+This enables Emacs to work better with programs that need to track
+the cursor, for example screen magnifiers and text to speech programs.
+
+** Tooltips now work on MS Windows.
+See the Emacs 21.1 NEWS entry for tooltips for details.
+
+---
+** A French translation of the `Emacs Survival Guide' is available.
+
+---
+** A French translation of the Emacs Tutorial is available.
+
+** New modes and packages
+
++++
+*** Calc is now part of the Emacs distribution.
+
+Calc is an advanced desk calculator and mathematical tool written in
+Emacs Lisp. Its documentation is in a separate manual; within Emacs,
+type "C-h i m calc RET" to read that manual. A reference card is
+available in `etc/calccard.tex' and `etc/calccard.ps'.
+
++++
+*** The Emacs Lisp Reference Manual is now part of the distribution.
+
+The ELisp reference manual in Info format is built as part of the
+Emacs build procedure and installed together with the Emacs User
+Manual.
+
+*** The Introduction to Programming in Emacs Lisp manual is now part of
+the distribution.
+
+This manual is now part of the standard distribution and is installed,
+together with the Emacs User Manual, into the Info directory.
+
+*** The ruler-mode.el library provides a minor mode for displaying an
+"active" ruler in the header line. You can use the mouse to visually
+change the `fill-column', `window-margins' and `tab-stop-list'
+settings.
+
+*** The reveal.el package provides the minor modes `reveal-mode' and
+`global-reveal-mode' which will make text visible on the fly as you
+move your cursor into hidden region of the buffer.
+It should work with any package that uses overlays to hide parts
+of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ...
+
+*** master-mode.el implements a minor mode for scrolling a slave
+buffer without leaving your current buffer, the master buffer.
+
+It can be used by sql.el, for example: the SQL buffer is the master
+and its SQLi buffer is the slave. This allows you to scroll the SQLi
+buffer containing the output from the SQL buffer containing the
+commands.
+
+This is how to use sql.el and master.el together: the variable
+sql-buffer contains the slave buffer. It is a local variable in the
+SQL buffer.
+
+(add-hook 'sql-mode-hook
+ (function (lambda ()
+ (master-mode t)
+ (master-set-slave sql-buffer))))
+(add-hook 'sql-set-sqli-hook
+ (function (lambda ()
+ (master-set-slave sql-buffer))))
+
+\f
+* Lisp Changes in Emacs 21.3
+
+** The precedence of file-name-handlers has been changed.
+Instead of blindly choosing the first handler that matches,
+find-file-name-handler now gives precedence to a file-name handler
+that matches near the end of the file name. More specifically, the
+handler whose (match-beginning 0) is the largest is chosen.
+In case of ties, the old "first matched" rule applies.
+
+** Dense keymaps now handle inheritance correctly.
+To that end, binding a key to t now behaves the same as binding it to
+nil (it shadows parent bindings but not bindings in keymaps of lower
+precedence).
+
+** jit-lock obeys a new text-property `jit-lock-defer-multiline'.
+If a piece of text with that property gets contextually refontified
+(see jit-lock-defer-contextually), then all of that text will
+be refontified. This is useful when the syntax of a textual element
+depends on text several lines further down (and when font-lock-multiline
+is not appropriate to solve that problem). For example in Perl:
+
+ s{
+ foo
+ }{
+ bar
+ }e
+
+Adding/removing the last `e' changes the `bar' from being a piece of
+text to being a piece of code, so you'd put a jit-lock-defer-multiline
+property over the second half of the command to force (deferred)
+refontification of `bar' whenever the `e' is added/removed.
+
+** describe-vector now takes a second argument `describer' which is
+called to print the entries' values. It default to `princ'.
+
+** defcustom and other custom declarations now use a default group
+(the last group defined in the same file) when no :group was given.
+
+** emacsserver now runs pre-command-hook and post-command-hook when
+it receives a request from emacsclient.
+
+** The variable `recursive-load-depth-limit' has been deleted.
+Emacs now signals an error if the same file is loaded with more
+than 3 levels of nesting.
+
+** The default values of paragraph-start and indent-line-function have
+been changed to reflect those used in Text mode rather than those used
+in Indented-Text mode.
+
+** If a major mode function has a non-nil `no-clone-indirect'
+property, `clone-indirect-buffer' signals an error if you use
+it in that buffer.
+
+** If you set `query-replace-skip-read-only' non-nil,
+`query-replace' and related functions simply ignore
+a match if part of it has a read-only property.
+
+** In `replace-match', the replacement text no longer inherits
+properties from surrounding text.
+
+** New function `buffer-local-value'.
+
+- Function: buffer-local-value variable buffer
+
+This function returns the buffer-local binding of VARIABLE (a symbol)
+in buffer BUFFER. If VARIABLE does not have a buffer-local binding in
+buffer BUFFER, it returns the default value of VARIABLE instead.
+
+** The default value of `paragraph-start' and `indent-line-function' has
+been changed to reflect the one used in Text mode rather than the one
+used in Indented Text mode.
+
+** New function `text-clone-create'. Text clones are chunks of text
+that are kept identical by transparently propagating changes from one
+clone to the other.
+
+** font-lock can manage arbitrary text-properties beside `face'.
+*** the FACENAME returned in font-lock-keywords can be a list
+of the form (face FACE PROP1 VAL1 PROP@ VAL2 ...) so you can set
+other properties than `face'.
+*** font-lock-extra-managed-props can be set to make sure those extra
+properties are automatically cleaned up by font-lock.
+
+** The new function `run-mode-hooks' and the new macro `delay-mode-hooks'
+are used by define-derived-mode to make sure the mode hook for the
+parent mode is run at the end of the child mode.
+
+** `provide' and `featurep' now accept an optional second argument
+to test/provide subfeatures. Also `provide' now checks `after-load-alist'
+and run any code associated with the provided feature.
+
+** The variable `compilation-parse-errors-filename-function' can
+be used to transform filenames found in compilation output.
+
++++
+** Functions `file-name-sans-extension' and `file-name-extension' now
+ignore the leading dots in file names, so that file names such as
+`.emacs' are treated as extensionless.
+
+** Functions `user-uid' and `user-real-uid' now return floats if the
+user UID doesn't fit in a Lisp integer. Function `user-full-name'
+accepts a float as UID parameter.
+
+** `define-key-after' now accepts keys longer than 1.
+
+** `define-derived-mode' now accepts nil as the parent.
+
+** The local variable `no-byte-compile' in elisp files is now obeyed.
+
+** New functions `keymap-prompt' and `current-active-maps'.
+
+** New function `describe-buffer-bindings'.
+
+** New vars `exec-suffixes' and `load-suffixes' used when
+searching for an executable resp. an elisp file.
+
+** Variable aliases have been implemented
+
+- Macro: defvaralias ALIAS-VAR BASE-VAR
+
+This defines the symbol ALIAS-VAR as a variable alias for symbol
+BASE-VAR. This means that retrieving the value of ALIAS-VAR returns
+the value of BASE-VAR, and changing the value of ALIAS-VAR changes the
+value of BASE-VAR.
+
+- Function: indirect-variable VARIABLE
+
+This function returns the variable at the end of the chain of aliases
+of VARIABLE. If VARIABLE is not a symbol, or if VARIABLE is not
+defined as an alias, the function returns VARIABLE.
+
+It might be noteworthy that variables aliases work for all kinds of
+variables, including buffer-local and frame-local variables.
+
+** Functions from `post-gc-hook' are run at the end of garbage
+collection. The hook is run with GC inhibited, so use it with care.
+
+** If the second argument to `copy-file' is the name of a directory,
+the file is copied to that directory instead of signaling an error.
+
+** The variables most-positive-fixnum and most-negative-fixnum
+have been moved from the CL package to the core.
+
+** On MS Windows, locale-coding-system is used to interact with the OS.
+The Windows specific variable w32-system-coding-system, which was
+formerly used for that purpose is now an alias for locale-coding-system.
+
+** New packages:
+
+*** The new package syntax.el provides an efficient way to find the
+current syntactic context (as returned by parse-partial-sexp).
+
+*** The TCL package tcl-mode.el was replaced by tcl.el.
+This was actually done in Emacs-21.1 was not documented.
+
\f
* Installation Changes in Emacs 21.1
** Support for LynxOS has been added.
-** `movemail' defaults to supporting POP. You can turn this off using
-the --without-pop configure option, should that be necessary.
-
** There are new configure options associated with the support for
images and toolkit scrollbars. Use the --help option in `configure'
to list them.
-** There is a new configure option `--without-xim' that instructs
-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 and also on Irix 6.5. This increases the
maximum buffer size. See etc/MACHINES for instructions. Changes to
build on other 64-bit systems should be straightforward modulo any
necessary changes to unexec.
-** Note that the MS-Windows port does not yet implement various of the
-new display features described below.
+** There is a new configure option `--disable-largefile' to omit
+Unix-98-style support for large files if that is available.
+
+** There is a new configure option `--without-xim' that instructs
+Emacs to not use X Input Methods (XIM), if these are available.
+
+** `movemail' defaults to supporting POP. You can turn this off using
+the --without-pop configure option, should that be necessary.
** This version can be built for the Macintosh, but does not implement
all of the new display features described below. The port currently
"Emacs and the Mac OS" appendix in the Emacs manual, for the
description of aspects specific to the Mac.
+** Note that the MS-Windows port does not yet implement various of the
+new display features described below.
+
\f
* Changes in Emacs 21.1
The command-line options `-fg COLOR', `-bg COLOR', and `-rv' are now
supported on character terminals.
+Emacs automatically remaps all X-style color specifications to one of
+the colors supported by the terminal. This means you could have the
+same color customizations that work both on a windowed display and on
+a TTY or when Emacs is invoked with the -nw option.
+
** New default font is Courier 12pt under X.
-+++
+** Sound support
+
+Emacs supports playing sound files on GNU/Linux and FreeBSD (Voxware
+driver and native BSD driver, a.k.a. Luigi's driver). Currently
+supported file formats are RIFF-WAVE (*.wav) and Sun Audio (*.au).
+You must configure Emacs with the option `--with-sound=yes' to enable
+sound support.
+
** Emacs now resizes mini-windows if appropriate.
If a message is longer than one line, or minibuffer contents are
from a menu will pop up a file selection dialog if `use-dialog-box' is
non-nil.
+** File selection dialog on MS-Windows is supported.
+
+When a file is visited by clicking File->Open, the MS-Windows version
+now pops up a standard file selection dialog where you can select a
+file to visit. File->Save As also pops up that dialog.
+
** Toolkit scroll bars.
Emacs now uses toolkit scroll bars if available. When configured for
imake configuration file contains the necessary information. Since
Emacs doesn't use imake, this has do be done manually.
-+++
-** Automatic Hscrolling
-
-Horizontal scrolling now happens automatically if
-`automatic-hscrolling' is set (the default). This setting can be
-customized.
-
-If a window is scrolled horizontally with set-window-hscroll, or
-scroll-left/scroll-right (C-x <, C-x >), this serves as a lower bound
-for automatic horizontal scrolling. Automatic scrolling will scroll
-the text more to the left if necessary, but won't scroll the text more
-to the right than the column set with set-window-hscroll etc.
-
-+++
** Tool bar support.
Emacs supports a tool bar at the top of a frame under X. For details
icons will be used.
To make the tool bar more useful, we need contributions of extra icons
-for specific modes (with copyright assignments). Contributions would
-also be useful to touch up some of the PBM icons manually.
+for specific modes (with copyright assignments).
-+++
** Tooltips.
Tooltips are small X windows displaying a help string at the current
the mouse in source buffers. You can customize various aspects of the
tooltip display in the group `tooltip'.
-+++
+** Automatic Hscrolling
+
+Horizontal scrolling now happens automatically if
+`automatic-hscrolling' is set (the default). This setting can be
+customized.
+
+If a window is scrolled horizontally with set-window-hscroll, or
+scroll-left/scroll-right (C-x <, C-x >), this serves as a lower bound
+for automatic horizontal scrolling. Automatic scrolling will scroll
+the text more to the left if necessary, but won't scroll the text more
+to the right than the column set with set-window-hscroll etc.
+
** When using a windowing terminal, each Emacs window now has a cursor
of its own. By default, when a window is selected, the cursor is
solid; otherwise, it is hollow. The user-option
the window to be partially obscured.)
The variable `mode-line-inverse-video', which was used in older
-versions of emacs to make the mode-line stand out, now defaults to nil,
-and its use is deprecated.
+versions of emacs to make the mode-line stand out, is now deprecated.
+However, setting it to nil will cause the `mode-line' face to be
+ignored, and mode-lines to be drawn using the default text face.
-+++
** Mouse-sensitive mode line.
Different parts of the mode line have been made mouse-sensitive on all
Currently, the following actions have been defined:
-- Mouse-1 on the buffer name in the mode line switches between two
-buffers.
-
-- Mouse-2 on the buffer-name switches to the next buffer, and
-M-mouse-2 switches to the previous buffer in the buffer list.
+- Mouse-1 on the buffer name in the mode line goes to the next buffer.
-- Mouse-3 on the buffer-name displays a buffer menu.
+- Mouse-3 on the buffer-name goes to the previous buffer.
- Mouse-2 on the read-only or modified status in the mode line (`%' or
`*') toggles the status.
- Mouse-3 on the mode name displays a minor-mode menu.
-+++
** Hourglass pointer
Emacs can optionally display an hourglass pointer under X. You can
turn the display on or off by customizing group `cursor'.
-+++
** Blinking cursor
M-x blink-cursor-mode toggles a blinking cursor under X and on
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
Font-lock uses jit-lock-mode as default support mode, so you don't
have to do anything to activate it.
-+++
+** The default binding of the Delete key has changed.
+
+The new user-option `normal-erase-is-backspace' can be set to
+determine the effect of the Delete and Backspace function keys.
+
+On window systems, the default value of this option is chosen
+according to the keyboard used. If the keyboard has both a Backspace
+key and a Delete key, and both are mapped to their usual meanings, the
+option's default value is set to t, so that Backspace can be used to
+delete backward, and Delete can be used to delete forward. On
+keyboards which either have only one key (usually labeled DEL), or two
+keys DEL and BS which produce the same effect, the option's value is
+set to nil, and these keys delete backward.
+
+If not running under a window system, setting this option accomplishes
+a similar effect by mapping C-h, which is usually generated by the
+Backspace key, to DEL, and by mapping DEL to C-d via
+`keyboard-translate'. The former functionality of C-h is available on
+the F1 key. You should probably not use this setting on a text-only
+terminal if you don't have both Backspace, Delete and F1 keys.
+
+Programmatically, you can call function normal-erase-is-backspace-mode
+to toggle the behavior of the Delete and Backspace keys.
+
** The default for user-option `next-line-add-newlines' has been
changed to nil, i.e. C-n will no longer add newlines at the end of a
buffer by default.
** When an error is signaled during the loading of the user's init
file, Emacs now pops up the *Messages* buffer.
-+++
** Emacs now refuses to load compiled Lisp files which weren't
compiled with Emacs. Set `load-dangerous-libraries' to t to change
this behavior.
-The reason for this change is an incompatible change in XEmacs' byte
+The reason for this change is an incompatible change in XEmacs's byte
compiler. Files compiled with XEmacs can contain byte codes that let
Emacs dump core.
** Item Save Options on the Options menu allows saving options set
using that menu.
-+++
** Highlighting of trailing whitespace.
When `show-trailing-whitespace' is non-nil, Emacs displays trailing
displayed if point is at the end of the line containing the
whitespace.
-+++
** C-x 5 1 runs the new command delete-other-frames which deletes
all frames except the selected one.
** The new user-option `confirm-kill-emacs' can be customized to
let Emacs ask for confirmation before exiting.
-+++
-** Highlighting of mouse-sensitive regions is now supported in the
-MS-DOS version of Emacs.
-
** 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'.
-+++
-** The recommended way of using Iswitchb is via the new global minor
-mode `iswitchb-mode'.
-
-+++
-** Just loading the msb package doesn't switch on Msb mode anymore.
-If you have `(require 'msb)' in your .emacs, please replace it with
-`(msb-mode 1)'.
-
** Polish, Czech, German, and French translations of Emacs' reference card
have been added. They are named `pl-refcard.tex', `cs-refcard.tex',
`de-refcard.tex' and `fr-refcard.tex'. Postscript files are included.
`dired-ref.tex'. A French translation is available in
`fr-drdref.tex'.
-+++
** 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
menu or the Edit menu if there is no major mode menu.
-** Variable `load-path' is no longer customizable throuh Customize.
+** Variable `load-path' is no longer customizable through Customize.
You can no longer use `M-x customize-variable' to customize `load-path'
because it now contains a version-dependent component. You can still
use `add-to-list' and `setq' to customize this variable in your
`~/.emacs' init file or to modify it from any Lisp program in general.
-** The new user-option `normal-erase-is-backspace' can be set to
-determine the effect of the Delete and Backspace function keys.
-
-On window systems, the default value of this option is chosen
-according to the keyboard used. If the keyboard has both a Backspace
-key and a Delete key, and both are mapped to their usual meanings, the
-option's default value is set to t, so that Backspace can be used to
-delete backward, and Delete can be used to delete forward. On
-keyboards which either have only one key (usually labeled DEL), or two
-keys DEL and BS which produce the same effect, the option's value is
-set to nil, and these keys delete backward.
-
-If not running under a window system, setting this option accomplishes
-a similar effect by mapping C-h, which is usually generated by the
-Backspace key, to DEL, and by mapping DEL to C-d via
-`keyboard-translate'. The former functionality of C-h is available on
-the F1 key. You should probably not use this setting on a text-only
-terminal if you don't have both Backspace, Delete and F1 keys.
-
-Programmatically, you can call function normal-erase-is-backspace-mode
-to toggle the behavior of the Delete and Backspace keys.
-
-+++
** C-u C-x = provides detailed information about the character at
point in a pop-up window.
-+++
** Emacs can now support 'wheeled' mice (such as the MS IntelliMouse)
under XFree86. To enable this, use the `mouse-wheel-mode' command, or
customize the variable `mouse-wheel-mode'.
The variables `mouse-wheel-follow-mouse' and `mouse-wheel-scroll-amount'
determine where and by how much buffers are scrolled.
-+++
** Emacs' auto-save list files are now by default stored in a
sub-directory `.emacs.d/auto-save-list/' of the user's home directory.
(On MS-DOS, this subdirectory's name is `_emacs.d/auto-save.list/'.)
You can customize `auto-save-list-file-prefix' to change this location.
-+++
** The function `getenv' is now callable interactively.
-** The many obsolete language `setup-...-environment' commands have
-been removed -- use `set-language-environment'.
+** The new user-option `even-window-heights' can be set to nil
+to prevent `display-buffer' from evening out window heights.
-+++
-** The environment variable `EMACSLOCKDIR' is no longer used on MS-Windows.
-This environment variable was used when creating lock files. Emacs on
-MS-Windows does not use this variable anymore. This change was made
-before Emacs 21.1, but wasn't documented until now.
+** The new command M-x delete-trailing-whitespace RET will delete the
+trailing whitespace within the current restriction. You can also add
+this function to `write-file-hooks' or `local-write-file-hooks'.
-** Flyspell mode has various new options. See the `flyspell' Custom
-group.
-
-** The user option `backward-delete-char-untabify-method' controls the
-behavior of `backward-delete-char-untabify'. The following values
-are recognized:
-
-`untabify' -- turn a tab to many spaces, then delete one space;
-`hungry' -- delete all whitespace, both tabs and spaces;
-`all' -- delete all whitespace, including tabs, spaces and newlines;
-nil -- just delete one character.
-
-Default value is `untabify'.
-
-[This change was made in Emacs 20.3 but not mentioned then.]
-
-** In Cperl mode `cperl-invalid-face' should now be a normal face
-symbol, not double-quoted.
-
-** Some packages are declared obsolete, to be removed in a future
-version. They are: auto-show, c-mode, hilit19, hscroll, ooutline,
-rnews, rnewspost. Their implementations have been moved to
-lisp/obsolete.
-
-+++
-** The new Custom option `keyboard-coding-system' specifies a coding
-system for keyboard input.
-
-+++
-** The new user-option `even-window-heights' can be set to nil
-to prevent `display-buffer' from evening out window heights.
-
-+++
-** The new command `msdos-set-mouse-buttons' forces Emacs to behave
-as if the mouse had a specified number of buttons. This comes handy
-with mice that don't report their number of buttons correctly. One
-example is the wheeled mice, which report 3 buttons, but clicks on the
-middle button are not passed to the MS-DOS version of Emacs.
-
-** The new command M-x delete-trailing-whitespace RET will delete the
-trailing whitespace within the current restriction. You can also add
-this function to `write-file-hooks' or `local-write-file-hooks'.
-
-** When visiting a file with M-x find-file-literally, no newlines will
-be added to the end of the buffer even if `require-final-newline' is
-non-nil.
-
-** auto-compression mode is no longer enabled just by loading jka-compr.el.
-To control it, set `auto-compression-mode' via Custom or use the
-`auto-compression-mode' command.
-
-** `browse-url-gnome-moz' is a new option for
-`browse-url-browser-function', invoking Mozilla in GNOME, and
-`browse-url-kde' can be chosen for invoking the KDE browser.
-
-** The user-option `browse-url-new-window-p' has been renamed to
-`browse-url-new-window-flag'.
-
-+++
-** The functions `keep-lines', `flush-lines' and `how-many' now
-operate on the active region in Transient Mark mode.
-
-+++
-** `gnus-user-agent' is a new possibility for `mail-user-agent'. It
-is like `message-user-agent', but with all the Gnus paraphernalia.
-
-+++
-** 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.
-Separate MIME packages like RMIME, mime-compose etc., will probably no
-longer work; remove them and use the native facilities.
-
-The FLIM/SEMI package still works with Emacs 21, but if you want to
-use the native facilities, you must remove any mailcap.el[c] that was
-installed by FLIM/SEMI version 1.13 or earlier.
-
-*** Gnus has also been multilingualized. This also affects too many
-parts of Gnus to summarize here, and adds many new variables. 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 of various kinds and some sound 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.
+** When visiting a file with M-x find-file-literally, no newlines will
+be added to the end of the buffer even if `require-final-newline' is
+non-nil.
** 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
** The new user-option `electric-help-shrink-window' can be set to
nil to prevent adjusting the help window size to the buffer size.
-** 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.
** 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.
-+++
+** The many obsolete language `setup-...-environment' commands have
+been removed -- use `set-language-environment'.
+
+** The new Custom option `keyboard-coding-system' specifies a coding
+system for keyboard input.
+
** 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
** Variable `default-korean-keyboard' is initialized properly from the
environment variable `HANGUL_KEYBOARD_TYPE'.
-+++
** 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.
-+++
+** Emacs now attempts to determine the initial language environment
+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).
+GNU Intlfonts doesn't support these yet but recent X releases have
+8859-15. See etc/INSTALL for information on obtaining extra fonts.
+There are new Leim input methods for Latin-8 and Latin-9 prefix (only)
+and Polish `slash'.
+
+** New language environments `Dutch' and `Spanish'.
+These new environments mainly select appropriate translations
+of the tutorial.
+
+** In Ethiopic language environment, special key bindings for
+function keys are changed as follows. This is to conform to "Emacs
+Lisp Coding Convention".
+
+ new command old-binding
+ --- ------- -----------
+ f3 ethio-fidel-to-sera-buffer f5
+ S-f3 ethio-fidel-to-sera-region f5
+ C-f3 ethio-fidel-to-sera-mail-or-marker f5
+
+ f4 ethio-sera-to-fidel-buffer unchanged
+ S-f4 ethio-sera-to-fidel-region unchanged
+ C-f4 ethio-sera-to-fidel-mail-or-marker unchanged
+
+ S-f5 ethio-toggle-punctuation f3
+ S-f6 ethio-modify-vowel f6
+ S-f7 ethio-replace-space f7
+ S-f8 ethio-input-special-character f8
+ S-f9 ethio-replace-space unchanged
+ C-f9 ethio-toggle-space f2
+
+** There are new Leim input methods.
+New input methods "turkish-postfix", "turkish-alt-postfix",
+"greek-mizuochi", "TeX", and "greek-babel" are now part of the Leim
+package.
+
+** The rule of input method "slovak" is slightly changed. Now the
+rules for translating "q" and "Q" to "`" (backquote) are deleted, thus
+typing them inserts "q" and "Q" respectively. Rules for translating
+"=q", "+q", "=Q", and "+Q" to "`" are also deleted. Now, to input
+"`", you must type "=q".
+
+** 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.
+
** M-; now calls comment-dwim which tries to do something clever based
on the context. M-x kill-comment is now an alias to comment-kill,
defined in newcomment.el. You can choose different styles of region
commenting with the variable `comment-style'.
-+++
** New user options `display-time-mail-face' and
`display-time-use-mail-icon' control the appearance of mode-line mail
indicator used by the display-time package. On a suitable display the
indicator can be an icon and is mouse-sensitive.
-+++
** On window-systems, additional space can be put between text lines
on the display using several methods
-+++
- By setting frame parameter `line-spacing' to PIXELS. PIXELS must be
a positive integer, and specifies that PIXELS number of pixels should
be put below text lines on the affected frame or frames.
-+++
- By setting X resource `lineSpacing', class `LineSpacing'. This is
equivalent to specifying the frame parameter.
- By setting buffer-local variable `line-spacing'. The meaning is
the same, but applies to the a particular buffer only.
-+++
** The new command `clone-indirect-buffer' can be used to create
an indirect buffer that is a twin copy of the current buffer. The
command `clone-indirect-buffer-other-window', bound to C-x 4 c,
does the same but displays the indirect buffer in another window.
-+++
** New user options `backup-directory-alist' and
`make-backup-file-name-function' control the placement of backups,
typically in a single directory or in an invisible sub-directory.
** New commands iso-iso2sgml and iso-sgml2iso convert between Latin-1
characters and the corresponding SGML (HTML) entities.
-+++
** New X resources recognized
*** The X resource `synchronous', class `Synchronous', specifies
emacs.privateColormap: true
-+++
-** The variable `echo-keystrokes' may now have a floating point value.
-
-** If your init file is compiled (.emacs.elc), `user-init-file' is set
-to the source name (.emacs.el), if that exists, after loading it.
+** Faces and frame parameters.
-** The help string specified for a menu-item whose definition contains
-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.
+There are four new faces `scroll-bar', `border', `cursor' and `mouse'.
+Setting the frame parameters `scroll-bar-foreground' and
+`scroll-bar-background' sets foreground and background color of face
+`scroll-bar' and vice versa. Setting frame parameter `border-color'
+sets the background color of face `border' and vice versa. Likewise
+for frame parameters `cursor-color' and face `cursor', and frame
+parameter `mouse-color' and face `mouse'.
-** New user option `read-mail-command' specifies a command to use to
-read mail from the menu etc.
+Changing frame parameter `font' sets font-related attributes of the
+`default' face and vice versa. Setting frame parameters
+`foreground-color' or `background-color' sets the colors of the
+`default' face and vice versa.
-+++
-** Hexl contains a new command `hexl-insert-hex-string' which inserts
-a string of hexadecimal numbers read from the mini-buffer.
+** New face `menu'.
-** Changes in Texinfo mode.
+The face `menu' can be used to change colors and font of Emacs' menus.
-*** A couple of new key bindings have been added for inserting Texinfo
-macros
+** New frame parameter `screen-gamma' for gamma correction.
- Key binding Macro
- -------------------------
- C-c C-c C-s @strong
- C-c C-c C-e @emph
- C-c C-c u @uref
- C-c C-c q @quotation
- C-c C-c m @email
- C-c C-o @<block> ... @end <block>
- M-RET @item
+The new frame parameter `screen-gamma' specifies gamma-correction for
+colors. Its value may be nil, the default, in which case no gamma
+correction occurs, or a number > 0, usually a float, that specifies
+the screen gamma of a frame's display.
-*** The " key now inserts either " or `` or '' depending on context.
+PC monitors usually have a screen gamma of 2.2. smaller values result
+in darker colors. You might want to try a screen gamma of 1.5 for LCD
+color displays. The viewing gamma Emacs uses is 0.4545. (1/2.2).
-** Changes in Outline mode.
+The X resource name of this parameter is `screenGamma', class
+`ScreenGamma'.
-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
-
-+++
-*** 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 with `emacsclient --no-wait' are never killed in
-this way.
-
-** Both emacsclient and Emacs itself now accept command line options
-of the form +LINE:COLUMN in addition to +LINE.
-
-** 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).
-
-+++
-** You can now easily create new *Info* buffers using either
-M-x clone-buffer, C-u m <entry> RET or C-u g <entry> RET.
-M-x clone-buffer can also be used on *Help* and several other special
-buffers.
-
-** Listing buffers with M-x list-buffers (C-x C-b) now shows
-abbreviated file names. Abbreviations can be customized by changing
-`directory-abbrev-alist'.
-
-** Faces and frame parameters.
-
-There are four new faces `scroll-bar', `border', `cursor' and `mouse'.
-Setting the frame parameters `scroll-bar-foreground' and
-`scroll-bar-background' sets foreground and background color of face
-`scroll-bar' and vice versa. Setting frame parameter `border-color'
-sets the background color of face `border' and vice versa. Likewise
-for frame parameters `cursor-color' and face `cursor', and frame
-parameter `mouse-color' and face `mouse'.
-
-Changing frame parameter `font' sets font-related attributes of the
-`default' face and vice versa. Setting frame parameters
-`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.
-
-+++
-** New frame parameter `screen-gamma' for gamma correction.
-
-The new frame parameter `screen-gamma' specifies gamma-correction for
-colors. Its value may be nil, the default, in which case no gamma
-correction occurs, or a number > 0, usually a float, that specifies
-the screen gamma of a frame's display.
-
-PC monitors usually have a screen gamma of 2.2. smaller values result
-in darker colors. You might want to try a screen gamma of 1.5 for LCD
-color displays. The viewing gamma Emacs uses is 0.4545. (1/2.2).
-
-The X resource name of this parameter is `screenGamma', class
-`ScreenGamma'.
-
-** Tabs and variable-width text.
+** Tabs and variable-width text.
Tabs are now displayed with stretch properties; the width of a tab is
defined as a multiple of the normal character width of a frame, and is
** Enhancements of the Lucid menu bar
-+++
*** The Lucid menu bar now supports the resource "margin".
emacs.pane.menubar.margin: 5
*** Arrows that indicate sub-menus are now drawn with shadows, as in
LessTif and Motif.
-** Sound support
-
-Emacs supports playing sound files on GNU/Linux and FreeBSD (Voxware
-driver and native BSD driver, a.k.a. Luigi's driver). Currently
-supported file formats are RIFF-WAVE (*.wav) and Sun Audio (*.au).
-
-+++
-** A new variable, backup-by-copying-when-privileged-mismatch, gives
-the highest file uid for which backup-by-copying-when-mismatch will be
-forced on. The assumption is that uids less than or equal to this
-value are special uids (root, bin, daemon, etc.--not real system
-users) and that files owned by these users should not change ownership,
-even if your system policy allows users other than root to edit them.
-
-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).
+bitmap (this is similar to the tilde displayed by vi and Less).
This behavior is activated by setting the buffer-local variable
`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
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.
+** You can now easily create new *Info* buffers using either
+M-x clone-buffer, C-u m <entry> RET or C-u g <entry> RET.
+M-x clone-buffer can also be used on *Help* and several other special
+buffers.
+
+** The command `Info-search' now uses a search history.
+
+** Listing buffers with M-x list-buffers (C-x C-b) now shows
+abbreviated file names. Abbreviations can be customized by changing
+`directory-abbrev-alist'.
+
+** A new variable, backup-by-copying-when-privileged-mismatch, gives
+the highest file uid for which backup-by-copying-when-mismatch will be
+forced on. The assumption is that uids less than or equal to this
+value are special uids (root, bin, daemon, etc.--not real system
+users) and that files owned by these users should not change ownership,
+even if your system policy allows users other than root to edit them.
+
+The default is 200; set the variable to nil to disable the feature.
+
** The rectangle commands now avoid inserting undesirable spaces,
notably at the end of lines.
All these functions have been rewritten to avoid inserting unwanted
spaces, and an optional prefix now allows them to behave the old way.
-+++
** The function `replace-rectangle' is an alias for `string-rectangle'.
** The new command M-x string-insert-rectangle is like `string-rectangle',
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.
-** The new command mail-abbrev-complete-alias, bound to `M-TAB', lets
-you complete mail aliases in the text, analogous to
-lisp-complete-symbol.
-
-** The command `Info-search' now uses a search history.
+** The new command mail-abbrev-complete-alias, bound to `M-TAB'
+(if you load the library `mailabbrev'), lets you complete mail aliases
+in the text, analogous to lisp-complete-symbol.
-** Changes to hideshow.el
+** The variable `echo-keystrokes' may now have a floating point value.
-*** Generalized block selection and traversal
+** If your init file is compiled (.emacs.elc), `user-init-file' is set
+to the source name (.emacs.el), if that exists, after loading it.
-A block is now recognized by its start and end regexps (both strings),
-and an integer specifying which sub-expression in the start regexp
-serves as the place where a `forward-sexp'-like function can operate.
-See the documentation of variable `hs-special-modes-alist'.
+** The help string specified for a menu-item whose definition contains
+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.
-*** During incremental search, if Hideshow minor mode is active,
-hidden blocks are temporarily shown. The variable `hs-headline' can
-be used in the mode line format to show the line at the beginning of
-the open block.
+--
+** New user option `read-mail-command' specifies a command to use to
+read mail from the menu etc.
-*** User option `hs-hide-all-non-comment-function' specifies a
-function to be called at each top-level block beginning, instead of
-the normal block-hiding function.
+** The environment variable `EMACSLOCKDIR' is no longer used on MS-Windows.
+This environment variable was used when creating lock files. Emacs on
+MS-Windows does not use this variable anymore. This change was made
+before Emacs 21.1, but wasn't documented until now.
-*** The command `hs-show-region' has been removed.
+** Highlighting of mouse-sensitive regions is now supported in the
+MS-DOS version of Emacs.
-*** The key bindings have changed to fit the Emacs conventions,
-roughly imitating those of Outline minor mode. Notably, the prefix
-for all bindings is now `C-c @'. For details, see the documentation
-for `hs-minor-mode'.
+** The new command `msdos-set-mouse-buttons' forces the MS-DOS version
+of Emacs to behave as if the mouse had a specified number of buttons.
+This comes handy with mice that don't report their number of buttons
+correctly. One example is the wheeled mice, which report 3 buttons,
+but clicks on the middle button are not passed to the MS-DOS version
+of Emacs.
-*** The variable `hs-show-hidden-short-form' has been removed, and
-hideshow.el now always behaves as if this variable were set to t.
+** Customize changes
-** Changes to Change Log mode and Add-Log functions
+*** Customize now supports comments about customized items. Use the
+`State' menu to add comments, or give a prefix argument to
+M-x customize-set-variable or M-x customize-set-value. Note that
+customization comments will cause the customizations to fail in
+earlier versions of Emacs.
-+++
-*** 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.
+*** The new option `custom-buffer-done-function' says whether to kill
+Custom buffers when you've done with them or just bury them (the
+default).
-+++
-**** New command M-x change-log-merge merges another log into the
-current buffer.
+*** If Emacs was invoked with the `-q' or `--no-init-file' options, it
+does not allow you to save customizations in your `~/.emacs' init
+file. This is because saving customizations from such a session would
+wipe out all the other customizationss you might have on your init
+file.
-+++
-*** New command M-x change-log-redate fixes any old-style date entries
-in a log file.
+** New features in evaluation commands
-+++
-*** 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
-version number is performed based on regular expressions from
-`change-log-version-number-regexp-list' which can be customized.
-Version numbers are only found in the first 10 percent of a file.
+*** The commands to evaluate Lisp expressions, such as C-M-x in Lisp
+modes, C-j in Lisp Interaction mode, and M-:, now bind the variables
+print-level, print-length, and debug-on-error based on the new
+customizable variables eval-expression-print-level,
+eval-expression-print-length, and eval-expression-debug-on-error.
-*** Change Log mode now defines its own faces for font-lock highlighting.
+The default values for the first two of these variables are 12 and 4
+respectively, which means that `eval-expression' now prints at most
+the first 12 members of a list and at most 4 nesting levels deep (if
+the list is longer or deeper than that, an ellipsis `...' is
+printed).
-** Changes to cmuscheme
+<RET> or <mouse-2> on the printed text toggles between an abbreviated
+printed representation and an unabbreviated one.
-*** The user-option `scheme-program-name' has been renamed
-`cmuscheme-program-name' due to conflicts with xscheme.el.
+The default value of eval-expression-debug-on-error is t, so any error
+during evaluation produces a backtrace.
-** Changes in Font Lock
+*** The function `eval-defun' (C-M-x) now loads Edebug and instruments
+code when called with a prefix argument.
-*** The new function `font-lock-remove-keywords' can be used to remove
-font-lock keywords from the current buffer or from a specific major mode.
+** CC mode changes.
-*** Multi-line patterns are now supported. Modes using this, should
-set font-lock-multiline to t in their font-lock-defaults.
+Note: This release contains changes that might not be compatible with
+current user setups (although it's believed that these
+incompatibilities will only show in very uncommon circumstances).
+However, since the impact is uncertain, these changes may be rolled
+back depending on user feedback. Therefore there's no forward
+compatibility guarantee wrt the new features introduced in this
+release.
-*** `font-lock-syntactic-face-function' allows major-modes to choose
-the face used for each string/comment.
+*** The hardcoded switch to "java" style in Java mode is gone.
+CC Mode used to automatically set the style to "java" when Java mode
+is entered. This has now been removed since it caused too much
+confusion.
-*** A new standard face `font-lock-doc-face'.
-Meant for Lisp docstrings, Javadoc comments and other "documentation in code".
+However, to keep backward compatibility to a certain extent, the
+default value for c-default-style now specifies the "java" style for
+java-mode, but "gnu" for all other modes (as before). So you won't
+notice the change if you haven't touched that variable.
-** Changes to Shell mode
+*** New cleanups, space-before-funcall and compact-empty-funcall.
+Two new cleanups have been added to c-cleanup-list:
-*** The `shell' command now accepts an optional argument to specify the buffer
-to use, which defaults to "*shell*". When used interactively, a
-non-default buffer may be specified by giving the `shell' command a
-prefix argument (causing it to prompt for the buffer name).
+space-before-funcall causes a space to be inserted before the opening
+parenthesis of a function call, which gives the style "foo (bar)".
-** Comint (subshell) changes
+compact-empty-funcall causes any space before a function call opening
+parenthesis to be removed if there are no arguments to the function.
+It's typically useful together with space-before-funcall to get the
+style "foo (bar)" and "foo()".
-These changes generally affect all modes derived from comint mode, which
-include shell-mode, gdb-mode, scheme-interaction-mode, etc.
+*** Some keywords now automatically trigger reindentation.
+Keywords like "else", "while", "catch" and "finally" have been made
+"electric" to make them reindent automatically when they continue an
+earlier statement. An example:
-*** Comint now by default interprets some carriage-control characters.
-Comint now removes CRs from CR LF sequences, and treats single CRs and
-BSs in the output in a way similar to a terminal (by deleting to the
-beginning of the line, or deleting the previous character,
-respectively). This is achieved by adding `comint-carriage-motion' to
-the `comint-output-filter-functions' hook by default.
-
-*** By default, comint no longer uses the variable `comint-prompt-regexp'
-to 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 boundaries in a fairly natural manner. To disable this
-feature, and use the old behavior, customize the user option
-`comint-use-prompt-regexp-instead-of-fields'.
-
-*** Comint now includes new features to send commands to running processes
-and redirect the output to a designated buffer or buffers.
-
-*** The command M-x comint-redirect-send-command reads a command and
-buffer name from the mini-buffer. The command is sent to the current
-buffer's process, and its output is inserted into the specified buffer.
-
-The command M-x comint-redirect-send-command-to-process acts like
-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 now highlight user input and program prompts,
-and support choosing previous input with mouse-2. To control these features,
-see the user-options `comint-highlight-input' and `comint-highlight-prompt'.
-
-*** The new command `comint-write-output' (usually bound to `C-c C-s')
-saves the output from the most recent command to a file. With a prefix
-argument, it appends to the file.
-
-*** The command `comint-kill-output' has been renamed `comint-delete-output'
-(usually bound to `C-c C-o'); the old name is aliased to it for
-compatibility.
-
-*** The new function `comint-add-to-input-history' adds commands to the input
-ring (history).
-
-*** The new variable `comint-input-history-ignore' is a regexp for
-identifying history lines that should be ignored, like tcsh time-stamp
-strings, starting with a `#'. The default value of this variable is "^#".
-
-** Changes to Rmail mode
-
-*** The new user-option rmail-user-mail-address-regexp can be
-set to fine tune the identification of the correspondent when
-receiving new mail. If it matches the address of the sender, the
-recipient is taken as correspondent of a mail. If nil, the default,
-`user-login-name' and `user-mail-address' are used to exclude yourself
-as correspondent.
-
-Usually you don't have to set this variable, except if you collect
-mails sent by you under different user names. Then it should be a
-regexp matching your mail addresses.
-
-*** The new user-option rmail-confirm-expunge controls whether and how
-to ask for confirmation before expunging deleted messages from an
-Rmail file. You can choose between no confirmation, confirmation
-with y-or-n-p, or confirmation with yes-or-no-p. Default is to ask
-for confirmation with yes-or-no-p.
-
-*** RET is now bound in the Rmail summary to rmail-summary-goto-msg,
-like `j'.
-
-*** There is a new user option `rmail-digest-end-regexps' that
-specifies the regular expressions to detect the line that ends a
-digest message.
-
-*** The new user option `rmail-automatic-folder-directives' specifies
-in which folder to put messages automatically.
-
-*** The new function `rmail-redecode-body' allows to fix a message
-with non-ASCII characters if Emacs happens to decode it incorrectly
-due to missing or malformed "charset=" header.
-
-** The new user-option `mail-envelope-from' can be used to specify
-an envelope-from address different from user-mail-address.
-
-** Changes to TeX mode
-
-*** The default mode has been changed from `plain-tex-mode' to
-`latex-mode'.
-
-*** latex-mode now has a simple indentation algorithm.
-
-*** M-f and M-p jump around \begin...\end pairs.
-
-*** Added support for outline-minor-mode.
-
-** Changes to RefTeX mode
-
-*** RefTeX has new support for index generation. Index entries can be
- created with `C-c <', with completion available on index keys.
- Pressing `C-c /' indexes the word at the cursor with a default
- macro. `C-c >' compiles all index entries into an alphabetically
- sorted *Index* buffer which looks like the final index. Entries
- can be edited from that buffer.
-
-*** Label and citation key selection now allow to select several
- items and reference them together (use `m' to mark items, `a' or
- `A' to use all marked entries).
-
-*** reftex.el has been split into a number of smaller files to reduce
- memory use when only a part of RefTeX is being used.
-
-*** a new command `reftex-view-crossref-from-bibtex' (bound to `C-c &'
- in BibTeX-mode) can be called in a BibTeX database buffer in order
- to show locations in LaTeX documents where a particular entry has
- been cited.
-
-** Emacs Lisp mode now allows multiple levels of outline headings.
-The level of a heading is determined from the number of leading
-semicolons in a heading line. Toplevel forms starting with a `('
-in column 1 are always made leaves.
-
-** The M-x time-stamp command (most commonly used on write-file-hooks)
-has the following new features:
-
-*** The patterns for finding the time stamp and for updating a pattern
-may match text spanning multiple lines. For example, some people like
-to have the filename and date on separate lines. The new variable
-time-stamp-inserts-lines controls the matching for multi-line patterns.
-
-*** More than one time stamp can be updated in the same file. This
-feature is useful if you need separate time stamps in a program source
-file to both include in formatted documentation and insert in the
-compiled binary. The same time-stamp will be written at each matching
-pattern. The variable time-stamp-count enables this new feature; it
-defaults to 1.
-
-** Partial Completion mode now completes environment variables in
-file names.
-
-+++
-** Customize changes
-
-*** Customize now supports comments about customized items. Use the
-`State' menu to add comments, or give a prefix argument to
-M-x customize-set-variable or M-x customize-set-value. Note that
-customization comments will cause the customizations to fail in
-earlier versions of Emacs.
-
-*** The new option `custom-buffer-done-function' says whether to kill
-Custom buffers when you've done with them or just bury them (the
-default).
-
-*** If Emacs was invoked with the `-q' or `--no-init-file' options, it
-does not allow you to save customizations in your `~/.emacs' init
-file. This is because saving customizations from such a session would
-wipe out all the other customizationss you might have on your init
-file.
-
-** New features in evaluation commands
-
-*** The commands to evaluate Lisp expressions, such as C-M-x in Lisp
-modes, C-j in Lisp Interaction mode, and M-:, now bind the variables
-print-level, print-length, and debug-on-error based on the new
-customizable variables eval-expression-print-level,
-eval-expression-print-length, and eval-expression-debug-on-error.
-
-The default values for the first two of these variables are 12 and 4
-respectively, which means that `eval-expression' now prints at most
-the first 12 members of a list and at most 4 nesting levels deep (if
-the list is longer or deeper than that, an ellipsis `...' is
-printed).
-
-The default value of eval-expression-debug-on-error is t, so any error
-during evaluation produces a backtrace.
-
-*** 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, Portuguese, and Slovak 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
-command will delete non-empty directories recursively. The default
-is, delete only empty directories.
-
-*** New variable `dired-recursive-copies' determines if the copy
-command will copy directories recursively. The default is, do not
-copy directories recursively.
-
-*** In command `dired-do-shell-command' (usually bound to `!') a `?'
-in the shell command has a special meaning similar to `*', but with
-the difference that the command will be run on each file individually.
-
-*** The new command `dired-find-alternate-file' (usually bound to `a')
-replaces the Dired buffer with the buffer for an alternate file or
-directory.
-
-*** The new command `dired-show-file-type' (usually bound to `w') shows
-a message in the echo area describing what type of file the point is on.
-This command invokes the external program `file' do its work, and so
-will only work on systems with that program, and will be only as
-accurate or inaccurate as it is.
-
-*** Dired now properly handles undo changes of adding/removing `-R'
-from ls switches.
-
-*** Dired commands that prompt for a destination file now allow the use
-of the `M-n' command in the minibuffer to insert the source filename,
-which the user can then edit. This only works if there is a single
-source file, not when operating on multiple marked files.
-
-** The variable mail-specify-envelope-from controls whether to
-use the -f option when sending mail.
-
-** CC mode changes.
-
-Note: This release contains changes that might not be compatible with
-current user setups (although it's believed that these
-incompatibilities will only show in very uncommon circumstances).
-However, since the impact is uncertain, these changes may be rolled
-back depending on user feedback. Therefore there's no forward
-compatibility guarantee wrt the new features introduced in this
-release.
-
-*** The hardcoded switch to "java" style in Java mode is gone.
-CC Mode used to automatically set the style to "java" when Java mode
-is entered. This has now been removed since it caused too much
-confusion.
-
-However, to keep backward compatibility to a certain extent, the
-default value for c-default-style now specifies the "java" style for
-java-mode, but "gnu" for all other modes (as before). So you won't
-notice the change if you haven't touched that variable.
-
-*** New cleanups, space-before-funcall and compact-empty-funcall.
-Two new cleanups have been added to c-cleanup-list:
-
-space-before-funcall causes a space to be inserted before the opening
-parenthesis of a function call, which gives the style "foo (bar)".
-
-compact-empty-funcall causes any space before a function call opening
-parenthesis to be removed if there are no arguments to the function.
-It's typically useful together with space-before-funcall to get the
-style "foo (bar)" and "foo()".
-
-*** Some keywords now automatically trigger reindentation.
-Keywords like "else", "while", "catch" and "finally" have been made
-"electric" to make them reindent automatically when they continue an
-earlier statement. An example:
-
-for (i = 0; i < 17; i++)
- if (a[i])
- res += a[i]->offset;
-else
+for (i = 0; i < 17; i++)
+ if (a[i])
+ res += a[i]->offset;
+else
Here, the "else" should be indented like the preceding "if", since it
continues that statement. CC Mode will automatically reindent it after
available from the CC Mode web site (http://www.python.org/emacs/
cc-mode/).
+**** The variables `c-hanging-comment-starter-p' and
+`c-hanging-comment-ender-p', which controlled how comment starters and
+enders were filled, are not used anymore. The new version of the
+function `c-fill-paragraph' keeps the comment starters and enders as
+they were before the filling.
+
**** It's now possible to selectively turn off auto filling.
The variable c-ignore-auto-fill is used to ignore auto fill mode in
specific contexts, e.g. in preprocessor directives and in string
*** Minor improvements to many movement functions in tricky situations.
-** Makefile mode changes
+** Dired changes
-*** The mode now uses the abbrev table `makefile-mode-abbrev-table'.
+*** New variable `dired-recursive-deletes' determines if the delete
+command will delete non-empty directories recursively. The default
+is, delete only empty directories.
-*** Conditionals and include statements are now highlighted when
-Fontlock mode is active.
+*** New variable `dired-recursive-copies' determines if the copy
+command will copy directories recursively. The default is, do not
+copy directories recursively.
-** Isearch changes
+*** In command `dired-do-shell-command' (usually bound to `!') a `?'
+in the shell command has a special meaning similar to `*', but with
+the difference that the command will be run on each file individually.
-*** Isearch now puts a call to `isearch-resume' in the command history,
-so that searches can be resumed.
+*** The new command `dired-find-alternate-file' (usually bound to `a')
+replaces the Dired buffer with the buffer for an alternate file or
+directory.
-*** 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.
+*** The new command `dired-show-file-type' (usually bound to `y') shows
+a message in the echo area describing what type of file the point is on.
+This command invokes the external program `file' do its work, and so
+will only work on systems with that program, and will be only as
+accurate or inaccurate as it is.
+
+*** Dired now properly handles undo changes of adding/removing `-R'
+from ls switches.
+
+*** Dired commands that prompt for a destination file now allow the use
+of the `M-n' command in the minibuffer to insert the source filename,
+which the user can then edit. This only works if there is a single
+source file, not when operating on multiple marked files.
+
+** 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.
+Separate MIME packages like RMIME, mime-compose etc., will probably no
+longer work; remove them and use the native facilities.
+
+The FLIM/SEMI package still works with Emacs 21, but if you want to
+use the native facilities, you must remove any mailcap.el[c] that was
+installed by FLIM/SEMI version 1.13 or earlier.
+
+*** Gnus has also been multilingualized. This also affects too many
+parts of Gnus to summarize here, and adds many new variables. There
+are built-in facilities equivalent to those of gnus-mule.el, which is
+now just a compatibility layer.
+
+*** gnus-mule.el is now just a compatibility layer over the built-in
+Gnus facilities.
+
+*** 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 of various kinds and some sound support.
+
+** Changes in Texinfo mode.
+
+*** A couple of new key bindings have been added for inserting Texinfo
+macros
+
+ Key binding Macro
+ -------------------------
+ C-c C-c C-s @strong
+ C-c C-c C-e @emph
+ C-c C-c u @uref
+ C-c C-c q @quotation
+ C-c C-c m @email
+ C-c C-o @<block> ... @end <block>
+ M-RET @item
+
+*** The " key now inserts either " or `` or '' depending on context.
+
+** Changes in Outline mode.
+
+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
+
+*** 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 with `emacsclient --no-wait' are never killed in
+this way.
+
+** Both emacsclient and Emacs itself now accept command line options
+of the form +LINE:COLUMN in addition to +LINE.
+
+** 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).
+
+** Changes to hideshow.el
+
+*** Generalized block selection and traversal
+
+A block is now recognized by its start and end regexps (both strings),
+and an integer specifying which sub-expression in the start regexp
+serves as the place where a `forward-sexp'-like function can operate.
+See the documentation of variable `hs-special-modes-alist'.
+
+*** During incremental search, if Hideshow minor mode is active,
+hidden blocks are temporarily shown. The variable `hs-headline' can
+be used in the mode line format to show the line at the beginning of
+the open block.
+
+*** User option `hs-hide-all-non-comment-function' specifies a
+function to be called at each top-level block beginning, instead of
+the normal block-hiding function.
+
+*** The command `hs-show-region' has been removed.
+
+*** The key bindings have changed to fit the Emacs conventions,
+roughly imitating those of Outline minor mode. Notably, the prefix
+for all bindings is now `C-c @'. For details, see the documentation
+for `hs-minor-mode'.
+
+*** The variable `hs-show-hidden-short-form' has been removed, and
+hideshow.el now always behaves as if this variable were set to t.
+
+** 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
+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-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.
+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 customized.
+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 to cmuscheme
+
+*** The user-option `scheme-program-name' has been renamed
+`cmuscheme-program-name' due to conflicts with xscheme.el.
+
+** Changes in Font Lock
+
+*** The new function `font-lock-remove-keywords' can be used to remove
+font-lock keywords from the current buffer or from a specific major mode.
+
+*** Multi-line patterns are now supported. Modes using this, should
+set font-lock-multiline to t in their font-lock-defaults.
+
+*** `font-lock-syntactic-face-function' allows major-modes to choose
+the face used for each string/comment.
+
+*** A new standard face `font-lock-doc-face'.
+Meant for Lisp docstrings, Javadoc comments and other "documentation in code".
+
+** Changes to Shell mode
+
+*** The `shell' command now accepts an optional argument to specify the buffer
+to use, which defaults to "*shell*". When used interactively, a
+non-default buffer may be specified by giving the `shell' command a
+prefix argument (causing it to prompt for the buffer name).
-*** In Isearch mode, mouse-2 in the echo area now yanks the current
-selection into the search string rather than giving an error.
+** Comint (subshell) changes
-+++
-*** There is a new lazy highlighting feature in incremental search.
+These changes generally affect all modes derived from comint mode, which
+include shell-mode, gdb-mode, scheme-interaction-mode, etc.
-Lazy highlighting is switched on/off by customizing variable
-`isearch-lazy-highlight'. When active, all matches for the current
-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'.
+*** Comint now by default interprets some carriage-control characters.
+Comint now removes CRs from CR LF sequences, and treats single CRs and
+BSs in the output in a way similar to a terminal (by deleting to the
+beginning of the line, or deleting the previous character,
+respectively). This is achieved by adding `comint-carriage-motion' to
+the `comint-output-filter-functions' hook by default.
-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.
-Highlighting of these additional matches happens in a deferred fashion
-using "idle timers," so the cycles needed do not rob isearch of its
-usual snappy response.
+*** By default, comint no longer uses the variable `comint-prompt-regexp'
+to 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 boundaries in a fairly natural manner. To disable this
+feature, and use the old behavior, customize the user option
+`comint-use-prompt-regexp-instead-of-fields'.
-If `isearch-lazy-highlight-cleanup' is set to t, highlights for
-matches are automatically cleared when you end the search. If it is
-set to nil, you can remove the highlights manually with `M-x
-isearch-lazy-highlight-cleanup'.
+*** Comint now includes new features to send commands to running processes
+and redirect the output to a designated buffer or buffers.
-+++
-** Changes in sort.el
+*** The command M-x comint-redirect-send-command reads a command and
+buffer name from the mini-buffer. The command is sent to the current
+buffer's process, and its output is inserted into the specified buffer.
-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-numeric-base can be used to specify a default
-numeric base.
+The command M-x comint-redirect-send-command-to-process acts like
+M-x comint-redirect-send-command but additionally reads the name of
+the buffer whose process should be used from the mini-buffer.
-** Changes to Ange-ftp
+*** Packages based on comint now highlight user input and program prompts,
+and support choosing previous input with mouse-2. To control these features,
+see the user-options `comint-highlight-input' and `comint-highlight-prompt'.
-+++
-*** Ange-ftp allows you to specify of a port number in remote file
-names cleanly. It is appended to the host name, separated by a hash
-sign, e.g. `/foo@bar.org#666:mumble'. (This syntax comes from EFS.)
+*** The new command `comint-write-output' (usually bound to `C-c C-s')
+saves the output from the most recent command to a file. With a prefix
+argument, it appends to the file.
-*** If the new user-option `ange-ftp-try-passive-mode' is set, passive
-ftp mode will be used if the ftp client supports that.
+*** The command `comint-kill-output' has been renamed `comint-delete-output'
+(usually bound to `C-c C-o'); the old name is aliased to it for
+compatibility.
-*** Ange-ftp handles the output of the w32-style clients which
-output ^M at the end of lines.
+*** The new function `comint-add-to-input-history' adds commands to the input
+ring (history).
-** Shell script mode changes.
+*** The new variable `comint-input-history-ignore' is a regexp for
+identifying history lines that should be ignored, like tcsh time-stamp
+strings, starting with a `#'. The default value of this variable is "^#".
-Shell script mode (sh-script) can now indent scripts for shells
-derived from sh and rc. The indentation style is customizable, and
-sh-script can attempt to "learn" the current buffer's style.
+** Changes to Rmail mode
-** Etags changes.
+*** The new user-option rmail-user-mail-address-regexp can be
+set to fine tune the identification of the correspondent when
+receiving new mail. If it matches the address of the sender, the
+recipient is taken as correspondent of a mail. If nil, the default,
+`user-login-name' and `user-mail-address' are used to exclude yourself
+as correspondent.
-*** In DOS, etags looks for file.cgz if it cannot find file.c.
+Usually you don't have to set this variable, except if you collect
+mails sent by you under different user names. Then it should be a
+regexp matching your mail addresses.
-*** New option --ignore-case-regex is an alternative to --regex. It is now
-possible to bind a regexp to a language, by prepending the regexp with
-{lang}, where lang is one of the languages that `etags --help' prints out.
-This feature is useful especially for regex files, where each line contains
-a regular expression. The manual contains details.
+*** The new user-option rmail-confirm-expunge controls whether and how
+to ask for confirmation before expunging deleted messages from an
+Rmail file. You can choose between no confirmation, confirmation
+with y-or-n-p, or confirmation with yes-or-no-p. Default is to ask
+for confirmation with yes-or-no-p.
-*** In C and derived languages, etags creates tags for function
-declarations when given the --declarations option.
+*** RET is now bound in the Rmail summary to rmail-summary-goto-msg,
+like `j'.
-*** In C++, tags are created for "operator". The tags have the form
-"operator+", without spaces between the keyword and the operator.
+*** There is a new user option `rmail-digest-end-regexps' that
+specifies the regular expressions to detect the line that ends a
+digest message.
-*** You shouldn't generally need any more the -C or -c++ option: etags
-automatically switches to C++ parsing when it meets the `class' or
-`template' keywords.
+*** The new user option `rmail-automatic-folder-directives' specifies
+in which folder to put messages automatically.
-*** Etags now is able to delve at arbitrary deeps into nested structures in
-C-like languages. Previously, it was limited to one or two brace levels.
+*** The new function `rmail-redecode-body' allows to fix a message
+with non-ASCII characters if Emacs happens to decode it incorrectly
+due to missing or malformed "charset=" header.
-*** New language Ada: tags are functions, procedures, packages, tasks, and
-types.
+** The new user-option `mail-envelope-from' can be used to specify
+an envelope-from address different from user-mail-address.
-*** In Fortran, `procedure' is not tagged.
+** The variable mail-specify-envelope-from controls whether to
+use the -f option when sending mail.
-*** In Java, tags are created for "interface".
+** The Rmail command `o' (`rmail-output-to-rmail-file') now writes the
+current message in the internal `emacs-mule' encoding, rather than in
+the encoding taken from the variable `buffer-file-coding-system'.
+This allows to save messages whose characters cannot be safely encoded
+by the buffer's coding system, and makes sure the message will be
+displayed correctly when you later visit the target Rmail file.
-*** In Lisp, "(defstruct (foo", "(defun (operator" and similar constructs
-are now tagged.
+If you want your Rmail files be encoded in a specific coding system
+other than `emacs-mule', you can customize the variable
+`rmail-file-coding-system' to set its value to that coding system.
-*** In makefiles, tags the targets.
+** Changes to TeX mode
-*** In Perl, the --globals option tags global variables. my and local
-variables are tagged.
+*** The default mode has been changed from `plain-tex-mode' to
+`latex-mode'.
-*** New language Python: def and class at the beginning of a line are tags.
+*** latex-mode now has a simple indentation algorithm.
-*** .ss files are Scheme files, .pdb is Postscript with C syntax, .psw is
-for PSWrap.
+*** M-f and M-p jump around \begin...\end pairs.
-+++
-** Changes in etags.el
+*** Added support for outline-minor-mode.
-*** The new user-option tags-case-fold-search can be used to make
-tags operations case-sensitive or case-insensitive. The default
-is to use the same setting as case-fold-search.
+** Changes to RefTeX mode
-*** You can display additional output with M-x tags-apropos by setting
-the new variable tags-apropos-additional-actions.
+*** RefTeX has new support for index generation. Index entries can be
+ created with `C-c <', with completion available on index keys.
+ Pressing `C-c /' indexes the word at the cursor with a default
+ macro. `C-c >' compiles all index entries into an alphabetically
+ sorted *Index* buffer which looks like the final index. Entries
+ can be edited from that buffer.
-If non-nil, the variable's value should be a list of triples (TITLE
-FUNCTION TO-SEARCH). For each triple, M-x tags-apropos processes
-TO-SEARCH and lists tags from it. TO-SEARCH should be an alist,
-obarray, or symbol. If it is a symbol, the symbol's value is used.
+*** Label and citation key selection now allow to select several
+ items and reference them together (use `m' to mark items, `a' or
+ `A' to use all marked entries).
-TITLE is a string to use to label the list of tags from TO-SEARCH.
+*** reftex.el has been split into a number of smaller files to reduce
+ memory use when only a part of RefTeX is being used.
-FUNCTION is a function to call when an entry is selected in the Tags
-List buffer. It is called with one argument, the selected symbol.
+*** a new command `reftex-view-crossref-from-bibtex' (bound to `C-c &'
+ in BibTeX-mode) can be called in a BibTeX database buffer in order
+ to show locations in LaTeX documents where a particular entry has
+ been cited.
-A useful example value for this variable might be something like:
+** Emacs Lisp mode now allows multiple levels of outline headings.
+The level of a heading is determined from the number of leading
+semicolons in a heading line. Toplevel forms starting with a `('
+in column 1 are always made leaves.
- '(("Emacs Lisp" Info-goto-emacs-command-node obarray)
- ("Common Lisp" common-lisp-hyperspec common-lisp-hyperspec-obarray)
- ("SCWM" scwm-documentation scwm-obarray))
+** The M-x time-stamp command (most commonly used on write-file-hooks)
+has the following new features:
-*** The face tags-tag-face can be used to customize the appearance
-of tags in the output of M-x tags-apropos.
+*** The patterns for finding the time stamp and for updating a pattern
+may match text spanning multiple lines. For example, some people like
+to have the filename and date on separate lines. The new variable
+time-stamp-inserts-lines controls the matching for multi-line patterns.
-*** Setting tags-apropos-verbose to a non-nil value displays the
-names of tags files in the *Tags List* buffer.
+*** More than one time stamp can be updated in the same file. This
+feature is useful if you need separate time stamps in a program source
+file to both include in formatted documentation and insert in the
+compiled binary. The same time-stamp will be written at each matching
+pattern. The variable time-stamp-count enables this new feature; it
+defaults to 1.
-*** You can now search for tags that are part of the filename itself.
-If you have tagged the files topfile.c subdir/subfile.c
-/tmp/tempfile.c, you can now search for tags "topfile.c", "subfile.c",
-"dir/sub", "tempfile", "tempfile.c". If the tag matches the file name,
-point will go to the beginning of the file.
+** Partial Completion mode now completes environment variables in
+file names.
-*** Compressed files are now transparently supported if
-auto-compression-mode is active. You can tag (with Etags) and search
-(with find-tag) both compressed and uncompressed files.
+** Ispell changes
-*** Tags commands like M-x tags-search no longer change point
-in buffers where no match is found. In buffers where a match is
-found, the original value of point is pushed on the marker ring.
+*** 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.
-+++
-** Emacs now attempts to determine the initial language environment
-and preferred and locale coding systems systematically from the
-LC_ALL, LC_CTYPE, and LANG environment variables during startup.
+*** Support for synchronous subprocesses - DOS/Windoze - has been
+added.
-+++
-** 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).
-GNU Intlfonts doesn't support these yet but recent X releases have
-8859-15. See etc/INSTALL for information on obtaining extra fonts.
-There are new Leim input methods for Latin-8 and Latin-9 prefix (only)
-and Polish `slash'.
+*** An "alignment error" bug was fixed when a manual spelling
+correction is made and re-checked.
-+++
-** New language environments `Dutch' and `Spanish'.
-These new environments mainly select appropriate translations
-of the tutorial.
+*** An Italian, Portuguese, and Slovak dictionary definition has been added.
-** In Ethiopic language environment, special key bindings for
-function keys are changed as follows. This is to conform to "Emacs
-Lisp Coding Convention".
+*** Region skipping performance has been vastly improved in some
+cases.
- new command old-binding
- --- ------- -----------
- f3 ethio-fidel-to-sera-buffer f5
- S-f3 ethio-fidel-to-sera-region f5
- C-f3 ethio-fidel-to-sera-mail-or-marker f5
+*** Spell checking HTML buffers has been improved and isn't so strict
+on syntax errors.
- f4 ethio-sera-to-fidel-buffer unchanged
- S-f4 ethio-sera-to-fidel-region unchanged
- C-f4 ethio-sera-to-fidel-mail-or-marker unchanged
+*** The buffer-local words are now always placed on a new line at the
+end of the buffer.
- S-f5 ethio-toggle-punctuation f3
- S-f6 ethio-modify-vowel f6
- S-f7 ethio-replace-space f7
- S-f8 ethio-input-special-character f8
- S-f9 ethio-replace-space unchanged
- C-f9 ethio-toggle-space f2
+*** Spell checking now works in the MS-DOS version of Emacs.
+
+** Makefile mode changes
-** The rule of input method "slovak" is slightly changed. Now the
-rules for translating "q" and "Q" to "`" (backquote) are deleted, thus
-typing them inserts "q" and "Q" respectively. Rules for translating
-"=q", "+q", "=Q", and "+Q" to "`" are also deleted. Now, to input
-"`", you must type "=q".
+*** The mode now uses the abbrev table `makefile-mode-abbrev-table'.
-+++
-** Fortran mode has a new command `fortran-strip-sequence-nos' to
-remove text past column 72. The syntax class of `\' in Fortran is now
-appropriate for C-style escape sequences in strings.
+*** Conditionals and include statements are now highlighted when
+Fontlock mode is active.
-** SGML mode's default `sgml-validate-command' is now `nsgmls'.
+** Isearch changes
-+++
-** A new command `view-emacs-problems' (C-h P) displays the PROBLEMS file.
+*** Isearch now puts a call to `isearch-resume' in the command history,
+so that searches can be resumed.
-+++
-** 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.
+*** In Isearch mode, C-M-s and C-M-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.
-** 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.
+*** In Isearch mode, mouse-2 in the echo area now yanks the current
+selection into the search string rather than giving an error.
-** The buffer menu (C-x C-b) no longer lists the *Buffer List* buffer.
+*** There is a new lazy highlighting feature in incremental search.
-+++
-** When invoked with a prefix argument, the command `list-abbrevs' now
-displays local abbrevs, only.
+Lazy highlighting is switched on/off by customizing variable
+`isearch-lazy-highlight'. When active, all matches for the current
+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'.
+
+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.
+Highlighting of these additional matches happens in a deferred fashion
+using "idle timers," so the cycles needed do not rob isearch of its
+usual snappy response.
+
+If `isearch-lazy-highlight-cleanup' is set to t, highlights for
+matches are automatically cleared when you end the search. If it is
+set to nil, you can remove the highlights manually with `M-x
+isearch-lazy-highlight-cleanup'.
** VC Changes
- Picture mode compatibility: Artist is picture mode compatible (this
can be turned off).
-+++
*** The new package Eshell is an operating system command shell
implemented entirely in Emacs Lisp. Use `M-x eshell' to invoke it.
It functions similarly to bash and zsh, and allows running of Lisp
rewritten in Lisp, it offers an operating-system independent shell,
all within the scope of your Emacs process.
-+++
*** 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 provides commands to highlight matches
of interactively entered regexps. For example,
corresponding file is read. There are commands to highlight matches
to phrases and to highlight entire lines containing a match.
-+++
*** The new package zone.el plays games with Emacs' display when
Emacs is idle.
-+++
*** The new package tildify.el allows to add hard spaces or other text
fragments in accordance with the current major mode.
`comment-region' now doesn't always comment a-line-at-a-time, but only
comments the region, breaking the line at point if necessary.
-+++
*** The Ebrowse package implements a C++ class browser and tags
facilities tailored for use with C++. It is documented in a
separate Texinfo file.
-+++
*** The PCL-CVS package available by either running M-x cvs-examine or
by visiting a CVS administrative directory (with a prefix argument)
provides an alternative interface to VC-dired for CVS. It comes with
`log-view-mode' to view RCS and SCCS logs and `log-edit-mode' used to
enter check-in log messages.
-+++
*** The new package called `woman' allows to browse Unix man pages
without invoking external programs.
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.
probably also want to use the sub-expression mode when the regexp
contains such to get feedback about their respective limits.
-+++
*** glasses-mode is a minor mode that makes
unreadableIdentifiersLikeThis readable. It works as glasses, without
actually modifying content of a buffer.
example, it will align variable names in declaration lists, or the
equal signs of assignments.
-+++
*** `paragraph-indent-minor-mode' is a new minor mode supporting
paragraphs in the same style as `paragraph-indent-text-mode'.
-+++
*** bs.el is a new package for buffer selection similar to
list-buffers or electric-buffer-list. Use M-x bs-show to display a
buffer menu with this package. See the Custom group `bs'.
not be confused with "calc" which is a much bigger mathematical tool
which answers different needs.
-+++
*** The minor modes cwarn-mode and global-cwarn-mode highlights
suspicious C and C++ constructions. Currently, assignments inside
expressions, semicolon following `if', `for' and `while' (except, of
reference parameters are recognized. The modes require font-lock mode
to be enabled.
-+++
*** smerge-mode.el provides `smerge-mode', a simple minor-mode for files
containing diff3-style conflict markers, such as generated by RCS.
-+++
*** 5x5.el is a simple puzzle game.
-+++
-*** hl-line.el provides a minor mode to highlight the current line.
+*** hl-line.el provides `hl-line-mode', a minor mode to highlight the
+current line in the current buffer. It also provides
+`global-hl-line-mode' to provide the same behaviour in all buffers.
*** ansi-color.el translates ANSI terminal escapes into text-properties.
*** 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.
*** sql.el provides an interface to SQL data bases.
-+++
*** fortune.el uses the fortune program to create mail/news signatures.
*** whitespace.el is a package for warning about and cleaning bogus
dog pineapple car EXTRA
porcupine strawberry airplane
-Doing the following settings:
+Doing the following settings:
+
+ (setq delimit-columns-str-before "[ ")
+ (setq delimit-columns-str-after " ]")
+ (setq delimit-columns-str-separator ", ")
+ (setq delimit-columns-separator "\t")
+
+
+Selecting the lines above and typing:
+
+ M-x delimit-columns-region
+
+It results:
+
+[ horse , apple , bus , ]
+[ dog , pineapple , car , EXTRA ]
+[ porcupine, strawberry, airplane, ]
+
+delim-col has the following options:
+
+ delimit-columns-str-before Specify a string to be inserted
+ before all columns.
+
+ delimit-columns-str-separator Specify a string to be inserted
+ between each column.
+
+ delimit-columns-str-after Specify a string to be inserted
+ after all columns.
+
+ delimit-columns-separator Specify a regexp which separates
+ each column.
+
+delim-col has the following commands:
+
+ delimit-columns-region Prettify all columns in a text region.
+ delimit-columns-rectangle Prettify all columns in a text rectangle.
+
+*** Recentf mode maintains a menu for visiting files that were
+operated on recently. User option recentf-menu-filter specifies a
+menu filter function to change the menu appearance. For example, the
+recent file list can be displayed:
+
+- organized by major modes, directories or user defined rules.
+- sorted by file paths, file names, ascending or descending.
+- showing paths relative to the current default-directory
+
+The `recentf-filter-changer' menu filter function allows to
+dynamically change the menu appearance.
+
+*** elide-head.el provides a mechanism for eliding boilerplate header
+text.
+
+*** footnote.el provides `footnote-mode', a minor mode supporting use
+of footnotes. It is intended for use with Message mode, but isn't
+specific to Message mode.
+
+*** diff-mode.el provides `diff-mode', a major mode for
+viewing/editing context diffs (patches). It is selected for files
+with extension `.diff', `.diffs', `.patch' and `.rej'.
+
+*** EUDC, the Emacs Unified Directory Client, provides a common user
+interface to access directory servers using different directory
+protocols. It has a separate manual.
+
+*** autoconf.el provides a major mode for editing configure.in files
+for Autoconf, selected automatically.
+
+*** windmove.el provides moving between windows.
+
+*** crm.el provides a facility to read multiple strings from the
+minibuffer with completion.
+
+*** todo-mode.el provides management of TODO lists and integration
+with the diary features.
+
+*** autoarg.el provides a feature reported from Twenex Emacs whereby
+numeric keys supply prefix args rather than self inserting.
+
+*** The function `turn-off-auto-fill' unconditionally turns off Auto
+Fill mode.
+
+*** pcomplete.el is a library that provides programmable completion
+facilities for Emacs, similar to what zsh and tcsh offer. The main
+difference is that completion functions are written in Lisp, meaning
+they can be profiled, debugged, etc.
+
+*** antlr-mode is a new major mode for editing ANTLR grammar files.
+It is automatically turned on for files whose names have the extension
+`.g'.
+
+** 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-numeric-base can be used to specify a default
+numeric base.
+
+** Changes to Ange-ftp
+
+*** Ange-ftp allows you to specify of a port number in remote file
+names cleanly. It is appended to the host name, separated by a hash
+sign, e.g. `/foo@bar.org#666:mumble'. (This syntax comes from EFS.)
+
+*** 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.
+
+** The recommended way of using Iswitchb is via the new global minor
+mode `iswitchb-mode'.
+
+** Just loading the msb package doesn't switch on Msb mode anymore.
+If you have `(require 'msb)' in your .emacs, please replace it with
+`(msb-mode 1)'.
+
+** Flyspell mode has various new options. See the `flyspell' Custom
+group.
+
+** The user option `backward-delete-char-untabify-method' controls the
+behavior of `backward-delete-char-untabify'. The following values
+are recognized:
+
+`untabify' -- turn a tab to many spaces, then delete one space;
+`hungry' -- delete all whitespace, both tabs and spaces;
+`all' -- delete all whitespace, including tabs, spaces and newlines;
+nil -- just delete one character.
+
+Default value is `untabify'.
+
+[This change was made in Emacs 20.3 but not mentioned then.]
+
+** In Cperl mode `cperl-invalid-face' should now be a normal face
+symbol, not double-quoted.
+
+** Some packages are declared obsolete, to be removed in a future
+version. They are: auto-show, c-mode, hilit19, hscroll, ooutline,
+profile, rnews, rnewspost, and sc. Their implementations have been
+moved to lisp/obsolete.
+
+** auto-compression mode is no longer enabled just by loading jka-compr.el.
+To control it, set `auto-compression-mode' via Custom or use the
+`auto-compression-mode' command.
+
+** `browse-url-gnome-moz' is a new option for
+`browse-url-browser-function', invoking Mozilla in GNOME, and
+`browse-url-kde' can be chosen for invoking the KDE browser.
+
+** The user-option `browse-url-new-window-p' has been renamed to
+`browse-url-new-window-flag'.
+
+** The functions `keep-lines', `flush-lines' and `how-many' now
+operate on the active region in Transient Mark mode.
+
+** `gnus-user-agent' is a new possibility for `mail-user-agent'. It
+is like `message-user-agent', but with all the Gnus paraphernalia.
+
+** 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.
+
+** Hexl contains a new command `hexl-insert-hex-string' which inserts
+a string of hexadecimal numbers read from the mini-buffer.
+
+** Hexl mode allows to insert non-ASCII characters.
+
+The non-ASCII characters are encoded using the same encoding as the
+file you are visiting in Hexl mode.
+
+** Shell script mode changes.
+
+Shell script mode (sh-script) can now indent scripts for shells
+derived from sh and rc. The indentation style is customizable, and
+sh-script can attempt to "learn" the current buffer's style.
+
+** Etags changes.
+
+*** In DOS, etags looks for file.cgz if it cannot find file.c.
+
+*** New option --ignore-case-regex is an alternative to --regex. It is now
+possible to bind a regexp to a language, by prepending the regexp with
+{lang}, where lang is one of the languages that `etags --help' prints out.
+This feature is useful especially for regex files, where each line contains
+a regular expression. The manual contains details.
+
+*** In C and derived languages, etags creates tags for function
+declarations when given the --declarations option.
+
+*** In C++, tags are created for "operator". The tags have the form
+"operator+", without spaces between the keyword and the operator.
- (setq delimit-columns-str-before "[ ")
- (setq delimit-columns-str-after " ]")
- (setq delimit-columns-str-separator ", ")
- (setq delimit-columns-separator "\t")
+*** You shouldn't generally need any more the -C or -c++ option: etags
+automatically switches to C++ parsing when it meets the `class' or
+`template' keywords.
+*** Etags now is able to delve at arbitrary deeps into nested structures in
+C-like languages. Previously, it was limited to one or two brace levels.
-Selecting the lines above and typing:
+*** New language Ada: tags are functions, procedures, packages, tasks, and
+types.
- M-x delimit-columns-region
+*** In Fortran, `procedure' is not tagged.
-It results:
+*** In Java, tags are created for "interface".
-[ horse , apple , bus , ]
-[ dog , pineapple , car , EXTRA ]
-[ porcupine, strawberry, airplane, ]
+*** In Lisp, "(defstruct (foo", "(defun (operator" and similar constructs
+are now tagged.
-delim-col has the following options:
+*** In makefiles, tags the targets.
- delimit-columns-str-before Specify a string to be inserted
- before all columns.
+*** In Perl, the --globals option tags global variables. my and local
+variables are tagged.
- delimit-columns-str-separator Specify a string to be inserted
- between each column.
+*** New language Python: def and class at the beginning of a line are tags.
- delimit-columns-str-after Specify a string to be inserted
- after all columns.
+*** .ss files are Scheme files, .pdb is Postscript with C syntax, .psw is
+for PSWrap.
- delimit-columns-separator Specify a regexp which separates
- each column.
+** Changes in etags.el
-delim-col has the following commands:
+*** The new user-option tags-case-fold-search can be used to make
+tags operations case-sensitive or case-insensitive. The default
+is to use the same setting as case-fold-search.
- delimit-columns-region Prettify all columns in a text region.
- delimit-columns-rectangle Prettify all columns in a text rectangle.
+*** You can display additional output with M-x tags-apropos by setting
+the new variable tags-apropos-additional-actions.
-+++
-*** Recentf mode maintains a menu for visiting files that were
-operated on recently. User option recentf-menu-filter specifies a
-menu filter function to change the menu appearance. For example, the
-recent file list can be displayed:
+If non-nil, the variable's value should be a list of triples (TITLE
+FUNCTION TO-SEARCH). For each triple, M-x tags-apropos processes
+TO-SEARCH and lists tags from it. TO-SEARCH should be an alist,
+obarray, or symbol. If it is a symbol, the symbol's value is used.
-- organized by major modes, directories or user defined rules.
-- sorted by file paths, file names, ascending or descending.
-- showing paths relative to the current default-directory
+TITLE is a string to use to label the list of tags from TO-SEARCH.
-The `recentf-filter-changer' menu filter function allows to
-dynamically change the menu appearance.
+FUNCTION is a function to call when an entry is selected in the Tags
+List buffer. It is called with one argument, the selected symbol.
-*** elide-head.el provides a mechanism for eliding boilerplate header
-text.
+A useful example value for this variable might be something like:
-+++
-*** footnote.el provides `footnote-mode', a minor mode supporting use
-of footnotes. It is intended for use with Message mode, but isn't
-specific to Message mode.
+ '(("Emacs Lisp" Info-goto-emacs-command-node obarray)
+ ("Common Lisp" common-lisp-hyperspec common-lisp-hyperspec-obarray)
+ ("SCWM" scwm-documentation scwm-obarray))
-+++
-*** diff-mode.el provides `diff-mode', a major mode for
-viewing/editing context diffs (patches). It is selected for files
-with extension `.diff', `.diffs', `.patch' and `.rej'.
+*** The face tags-tag-face can be used to customize the appearance
+of tags in the output of M-x tags-apropos.
-*** EUDC, the Emacs Unified Directory Client, provides a common user
-interface to access directory servers using different directory
-protocols. It has a separate manual.
+*** Setting tags-apropos-verbose to a non-nil value displays the
+names of tags files in the *Tags List* buffer.
-*** autoconf.el provides a major mode for editing configure.in files
-for Autoconf, selected automatically.
+*** You can now search for tags that are part of the filename itself.
+If you have tagged the files topfile.c subdir/subfile.c
+/tmp/tempfile.c, you can now search for tags "topfile.c", "subfile.c",
+"dir/sub", "tempfile", "tempfile.c". If the tag matches the file name,
+point will go to the beginning of the file.
-+++
-*** windmove.el provides moving between windows.
+*** Compressed files are now transparently supported if
+auto-compression-mode is active. You can tag (with Etags) and search
+(with find-tag) both compressed and uncompressed files.
-*** crm.el provides a facility to read multiple strings from the
-minibuffer with completion.
+*** Tags commands like M-x tags-search no longer change point
+in buffers where no match is found. In buffers where a match is
+found, the original value of point is pushed on the marker ring.
-*** todo-mode.el provides management of TODO lists and integration
-with the diary features.
+** Fortran mode has a new command `fortran-strip-sequence-nos' to
+remove text past column 72. The syntax class of `\' in Fortran is now
+appropriate for C-style escape sequences in strings.
-*** autoarg.el provides a feature reported from Twenex Emacs whereby
-numeric keys supply prefix args rather than self inserting.
+** SGML mode's default `sgml-validate-command' is now `nsgmls'.
-*** The function `turn-off-auto-fill' unconditionally turns off Auto
-Fill mode.
+** A new command `view-emacs-problems' (C-h P) displays the PROBLEMS file.
-*** gnus-mule.el is now just a compatibility layer over the built-in
-Gnus facilities.
+** 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.
-*** pcomplete.el is a library that provides programmable completion
-facilities for Emacs, similar to what zsh and tcsh offer. The main
-difference is that completion functions are written in Lisp, meaning
-they can be profiled, debugged, etc.
+** 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.
-*** antlr-mode is a new major mode for editing ANTLR grammar files.
-It is automatically turned on for files whose names have the extension
-`.g'.
+** 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.
-+++
** Refill minor mode provides preliminary support for keeping
paragraphs filled as you modify them.
-+++
+** The variable `double-click-fuzz' specifies how much the mouse
+may be moved between clicks that are recognized as a pair. Its value
+is measured in pixels.
+
** The new global minor mode `auto-image-file-mode' allows image files
to be visited as images.
+** Two new user-options `grep-command' and `grep-find-command'
+were added to compile.el.
+
** Withdrawn packages
*** mldrag.el has been removed. mouse.el provides the same
** Since `format' preserves text properties, the idiom
`(format "%s" foo)' no longer works to copy and remove properties.
-Use `copy-sequence' and `set-text-properties'.
+Use `copy-sequence' to copy the string, then use `set-text-properties'
+to remove the properties of the copy.
** Since the `keymap' text property now has significance, some code
which uses both `local-map' and `keymap' properties (for portability)
** Code that uses `concat' with integer args now gets an error, as
long promised.
+** The function base64-decode-string now always returns a unibyte
+string.
+
** Not a Lisp incompatibility as such but, with the introduction of
extra private charsets, there is now only one slot free for a new
dimension-2 private charset. User code which tries to add more than
* 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 amimate-string, from lisp/play/animate.el
+** Function assq-delete-all replaces function assoc-delete-all.
+
+** The new function animate-string, from lisp/play/animate.el
allows the animated display of strings.
** The new function `interactive-form' can be used to obtain the
args. The hook is run independent of how the macro was terminated
(signal or normal termination).
-+++
** Functions `butlast' and `nbutlast' for removing trailing elements
from a list are now available without requiring the CL package.
-+++
** The new user-option `even-window-heights' can be set to nil
to prevent `display-buffer' from evening out window heights.
-+++
** The user-option `face-font-registry-alternatives' specifies
alternative font registry names to try when looking for a font.
** Function `md5' calculates the MD5 "message digest"/"checksum".
-+++
** Function `delete-frame' runs `delete-frame-hook' before actually
deleting the frame. The hook is called with one arg, the frame
being deleted.
-+++
** `add-hook' now makes the hook local if called with a non-nil LOCAL arg.
-+++
** The treatment of non-ASCII characters in search ranges has changed.
If a range in a regular expression or the arg of
skip-chars-forward/backward starts with a unibyte character C and ends
C..?\377, the other is C1..C2, where C1 is the first character of C2's
charset.
-+++
** 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 `:conversion'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 read a Lisp expression from standard input and print the result
to standard output.
-+++
** The argument of `down-list', `backward-up-list', `up-list',
`kill-sexp', `backward-kill-sexp' and `mark-sexp' is now optional.
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
Return a copy of LIST with all occurrences 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.
+has been changed: WEAK can now have new values `key-or-value' and
+`key-and-value', in addition the `nil', `key', `value', and `t'.
-+++
** 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.
-+++
** The value of the `help-echo' text property is called as a function
or evaluated, if it is not a string already, to obtain a help string.
** 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
retained as an alias).
minibuffer window only if it's active. MINIBUF neither nil nor t
means never include the minibuffer window.
-** There's a new function `some-window' defined as follows
+** There's a new function `get-window-with-predicate' defined as follows
-- Function: some-window PREDICATE &optional MINIBUF ALL-FRAMES DEFAULT
+- Function: get-window-with-predicate PREDICATE &optional MINIBUF ALL-FRAMES DEFAULT
Return a window satisfying PREDICATE.
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,
meaning no limit.
-+++
** The new user option `line-number-display-limit-width' controls
the maximum width of lines in a buffer for which Emacs displays line
numbers in the mode line. The default is 200.
coding-system if buffer-file-coding-system is `undecided' and
DEFAULT-CODING-SYSTEM is not specified,
-+++
** The function `subr-arity' provides information about the argument
list of a primitive.
** `where-is-internal' now also accepts a list of keymaps.
-+++
** The text property `keymap' specifies a key map which overrides the
buffer's local map and the map specified by the `local-map' property.
This is probably what most current uses of `local-map' want, rather
** The function `apropos-mode' runs the hook `apropos-mode-hook'.
-+++
** `concat' no longer accepts individual integer arguments,
as promised long ago.
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 new package rx.el provides an alternative sexp notation for
+regular expressions.
+
+- Function: rx-to-string SEXP
+
+Translate SEXP into a regular expression in string notation.
+
+- Macro: rx SEXP
+
+Translate SEXP into a regular expression in string notation.
+
+The following are valid subforms of regular expressions in sexp
+notation.
+
+STRING
+ matches string STRING literally.
+
+CHAR
+ matches character CHAR literally.
+
+`not-newline'
+ matches any character except a newline.
+ .
+`anything'
+ matches any character
+
+`(any SET)'
+ matches any character in SET. SET may be a character or string.
+ Ranges of characters can be specified as `A-Z' in strings.
+
+'(in SET)'
+ like `any'.
+
+`(not (any SET))'
+ matches any character not in SET
+
+`line-start'
+ matches the empty string, but only at the beginning of a line
+ in the text being matched
+
+`line-end'
+ is similar to `line-start' but matches only at the end of a line
+
+`string-start'
+ matches the empty string, but only at the beginning of the
+ string being matched against.
+
+`string-end'
+ matches the empty string, but only at the end of the
+ string being matched against.
+
+`buffer-start'
+ matches the empty string, but only at the beginning of the
+ buffer being matched against.
+
+`buffer-end'
+ matches the empty string, but only at the end of the
+ buffer being matched against.
+
+`point'
+ matches the empty string, but only at point.
+
+`word-start'
+ matches the empty string, but only at the beginning or end of a
+ word.
+
+`word-end'
+ matches the empty string, but only at the end of a word.
+
+`word-boundary'
+ matches the empty string, but only at the beginning or end of a
+ word.
+
+`(not word-boundary)'
+ matches the empty string, but not at the beginning or end of a
+ word.
+
+`digit'
+ matches 0 through 9.
+
+`control'
+ matches ASCII control characters.
+
+`hex-digit'
+ matches 0 through 9, a through f and A through F.
+
+`blank'
+ matches space and tab only.
+
+`graphic'
+ matches graphic characters--everything except ASCII control chars,
+ space, and DEL.
+
+`printing'
+ matches printing characters--everything except ASCII control chars
+ and DEL.
+
+`alphanumeric'
+ matches letters and digits. (But at present, for multibyte characters,
+ it matches anything that has word syntax.)
+
+`letter'
+ matches letters. (But at present, for multibyte characters,
+ it matches anything that has word syntax.)
+
+`ascii'
+ matches ASCII (unibyte) characters.
+
+`nonascii'
+ matches non-ASCII (multibyte) characters.
+
+`lower'
+ matches anything lower-case.
+
+`upper'
+ matches anything upper-case.
+
+`punctuation'
+ matches punctuation. (But at present, for multibyte characters,
+ it matches anything that has non-word syntax.)
+
+`space'
+ matches anything that has whitespace syntax.
+
+`word'
+ matches anything that has word syntax.
+
+`(syntax SYNTAX)'
+ matches a character with syntax SYNTAX. SYNTAX must be one
+ of the following symbols.
+
+ `whitespace' (\\s- in string notation)
+ `punctuation' (\\s.)
+ `word' (\\sw)
+ `symbol' (\\s_)
+ `open-parenthesis' (\\s()
+ `close-parenthesis' (\\s))
+ `expression-prefix' (\\s')
+ `string-quote' (\\s\")
+ `paired-delimiter' (\\s$)
+ `escape' (\\s\\)
+ `character-quote' (\\s/)
+ `comment-start' (\\s<)
+ `comment-end' (\\s>)
+
+`(not (syntax SYNTAX))'
+ matches a character that has not syntax SYNTAX.
+
+`(category CATEGORY)'
+ matches a character with category CATEGORY. CATEGORY must be
+ either a character to use for C, or one of the following symbols.
+
+ `consonant' (\\c0 in string notation)
+ `base-vowel' (\\c1)
+ `upper-diacritical-mark' (\\c2)
+ `lower-diacritical-mark' (\\c3)
+ `tone-mark' (\\c4)
+ `symbol' (\\c5)
+ `digit' (\\c6)
+ `vowel-modifying-diacritical-mark' (\\c7)
+ `vowel-sign' (\\c8)
+ `semivowel-lower' (\\c9)
+ `not-at-end-of-line' (\\c<)
+ `not-at-beginning-of-line' (\\c>)
+ `alpha-numeric-two-byte' (\\cA)
+ `chinse-two-byte' (\\cC)
+ `greek-two-byte' (\\cG)
+ `japanese-hiragana-two-byte' (\\cH)
+ `indian-tow-byte' (\\cI)
+ `japanese-katakana-two-byte' (\\cK)
+ `korean-hangul-two-byte' (\\cN)
+ `cyrillic-two-byte' (\\cY)
+ `ascii' (\\ca)
+ `arabic' (\\cb)
+ `chinese' (\\cc)
+ `ethiopic' (\\ce)
+ `greek' (\\cg)
+ `korean' (\\ch)
+ `indian' (\\ci)
+ `japanese' (\\cj)
+ `japanese-katakana' (\\ck)
+ `latin' (\\cl)
+ `lao' (\\co)
+ `tibetan' (\\cq)
+ `japanese-roman' (\\cr)
+ `thai' (\\ct)
+ `vietnamese' (\\cv)
+ `hebrew' (\\cw)
+ `cyrillic' (\\cy)
+ `can-break' (\\c|)
+
+`(not (category CATEGORY))'
+ matches a character that has not category CATEGORY.
+
+`(and SEXP1 SEXP2 ...)'
+ matches what SEXP1 matches, followed by what SEXP2 matches, etc.
+
+`(submatch SEXP1 SEXP2 ...)'
+ like `and', but makes the match accessible with `match-end',
+ `match-beginning', and `match-string'.
+
+`(group SEXP1 SEXP2 ...)'
+ another name for `submatch'.
+
+`(or SEXP1 SEXP2 ...)'
+ matches anything that matches SEXP1 or SEXP2, etc. If all
+ args are strings, use `regexp-opt' to optimize the resulting
+ regular expression.
+
+`(minimal-match SEXP)'
+ produce a non-greedy regexp for SEXP. Normally, regexps matching
+ zero or more occurrances of something are \"greedy\" in that they
+ match as much as they can, as long as the overall regexp can
+ still match. A non-greedy regexp matches as little as possible.
+
+`(maximal-match SEXP)'
+ produce a greedy regexp for SEXP. This is the default.
+
+`(zero-or-more SEXP)'
+ matches zero or more occurrences of what SEXP matches.
+
+`(0+ SEXP)'
+ like `zero-or-more'.
+
+`(* SEXP)'
+ like `zero-or-more', but always produces a greedy regexp.
+
+`(*? SEXP)'
+ like `zero-or-more', but always produces a non-greedy regexp.
+
+`(one-or-more SEXP)'
+ matches one or more occurrences of A.
+
+`(1+ SEXP)'
+ like `one-or-more'.
+
+`(+ SEXP)'
+ like `one-or-more', but always produces a greedy regexp.
+
+`(+? SEXP)'
+ like `one-or-more', but always produces a non-greedy regexp.
+
+`(zero-or-one SEXP)'
+ matches zero or one occurrences of A.
+
+`(optional SEXP)'
+ like `zero-or-one'.
+
+`(? SEXP)'
+ like `zero-or-one', but always produces a greedy regexp.
+
+`(?? SEXP)'
+ like `zero-or-one', but always produces a non-greedy regexp.
+
+`(repeat N SEXP)'
+ matches N occurrences of what SEXP matches.
+
+`(repeat N M SEXP)'
+ matches N to M occurrences of what SEXP matches.
+
+`(eval FORM)'
+ evaluate FORM and insert result. If result is a string,
+ `regexp-quote' it.
+
+`(regexp REGEXP)'
+ include REGEXP in string notation in the result.
+
*** The features `md5' and `overlay' are now provided by default.
*** The special form `save-restriction' now works correctly even if the
when they find 8-bit characters. Previously, they included `ascii' in a
multibyte buffer and `unknown' in a unibyte buffer.
-*** The functions `set-buffer-modified', `string-as-multibyte' and
-`string-as-unibyte' change the byte sequence of a buffer if it
-contains a character from the `eight-bit-control' character set.
+*** The functions `set-buffer-multibyte', `string-as-multibyte' and
+`string-as-unibyte' change the byte sequence of a buffer or a string
+if it contains a character from the `eight-bit-control' character set.
*** The handling of multibyte sequences in a multibyte buffer is
changed. Previously, a byte sequence matching the pattern
** The new character sets `latin-iso8859-14' and `latin-iso8859-15'
have been introduced.
-+++
** The new character sets `eight-bit-control' and `eight-bit-graphic'
have been introduced for 8-bit characters in the ranges 0x80..0x9F and
0xA0..0xFF respectively. Note that the multibyte representation of
must be multibyte, otherwise such characters will be converted to
their multibyte equivalent.
-+++
** If the APPEND argument of `write-region' is an integer, it seeks to
that offset in the file before writing.
argument function's results.
** The functions base64-decode-region and base64-decode-string now
-signal an error instead of returning nil if decoding fails.
+signal an error instead of returning nil if decoding fails. Also,
+`base64-decode-string' now always returns a unibyte string (in Emacs
+20, it returned a multibyte string when the result was a valid multibyte
+sequence).
** The function sendmail-user-agent-compose now recognizes a `body'
header in the list of headers passed to it.
value, the documentation is taken from that value. If the value is
not a string, it is evaluated to obtain a string.
-+++
** The last argument of `define-key-after' defaults to t for convenience.
** The new function `replace-regexp-in-string' replaces all matches
** The variable keyword-symbols-constants-flag has been removed.
Keywords are now always considered constants.
-+++
** The new function `delete-and-extract-region' deletes text and
returns it.
** The function `clear-this-command-keys' now also clears the vector
returned by function `recent-keys'.
-+++
** Variables `beginning-of-defun-function' and `end-of-defun-function'
can be used to define handlers for the functions that find defuns.
-Major modes can define these locally instead of rebinding M-C-a
+Major modes can define these locally instead of rebinding C-M-a
etc. if the normal conventions for defuns are not appropriate for the
mode.
-+++
** easy-mmode-define-minor-mode now takes an additional BODY argument
and is renamed `define-minor-mode'.
-+++
** If an abbrev has a hook function which is a symbol, and that symbol
has a non-nil `no-self-insert' property, the return value of the hook
function specifies whether an expansion has been done or not. If it
hook function returns non-nil meaning expansion has been done,
then the self-inserting character is not inserted.
-+++
** The function `intern-soft' now accepts a symbol as first argument.
In this case, that exact symbol is looked up in the specified obarray,
and the function's value is nil if it is not found.
-+++
** The new macro `with-syntax-table' can be used to evaluate forms
with the syntax table of the current buffer temporarily set to a
specified table.
saved table is restored, even in case of an abnormal exit. Value is
what BODY returns.
-+++
** Regular expressions now support intervals \{n,m\} as well as
Perl's shy-groups \(?:...\) and non-greedy *? +? and ?? operators.
Also back-references like \2 are now considered as an error if the
corresponding subgroup does not exist (or is not closed yet).
Previously it would have been silently turned into `2' (ignoring the `\').
-+++
** The optional argument BUFFER of function file-local-copy has been
removed since it wasn't used by anything.
-+++
** The file name argument of function `file-locked-p' is now required
instead of being optional.
-+++
** The new built-in error `text-read-only' is signaled when trying to
modify read-only text.
** New functions and variables for locales.
-+++
The new variable `locale-coding-system' specifies how to encode and
decode strings passed to low-level message functions like strerror and
time functions like strftime. The new variables
`locale-language-names', `locale-charset-language-names', and
`locale-preferred-coding-systems' to make its decisions.
-+++
** syntax tables now understand nested comments.
To declare a comment syntax as allowing nesting, just add an `n'
modifier to either of the characters of the comment end and the comment
start sequences.
-+++
** The function `pixmap-spec-p' has been renamed `bitmap-spec-p'
because `bitmap' is more in line with the usual X terminology.
-+++
** New function `propertize'
The new function `propertize' can be used to conveniently construct
(propertize "foo" 'face 'bold 'read-only t)
-+++
** push and pop macros.
Simple versions of the push and pop macros of Common Lisp
inclusive, to COUNT, exclusive.
Then return the value of RESULT, or nil if RESULT is omitted.
-+++
** Regular expressions now support Posix character classes such as
[:alpha:], [:space:] and so on. These must be used within a character
class--for instance, [-[:digit:].+] matches digits or a period
[:upper:] matches anything upper-case.
[:word:] matches anything that has word syntax.
-+++
** Emacs now has built-in hash tables.
The following functions are defined for hash tables:
(make-hash-table :test 'case-fold)
-+++
** The Lisp reader handles circular structure.
It now works to use the #N= and #N# constructs to represent
circular structures. For example, #1=(a . #1#) represents
a cons cell which is its own cdr.
-+++
** The Lisp printer handles circular structure.
If you bind print-circle to a non-nil value, the Lisp printer outputs
#N= and #N# constructs to represent circular and shared structure.
-+++
** If the second argument to `move-to-column' is anything but nil or
t, that means replace a tab with spaces if necessary to reach the
specified column, but do not add spaces at the end of the line if it
is too short to reach that column.
-+++
** perform-replace has a new feature: the REPLACEMENTS argument may
now be a cons cell (FUNCTION . DATA). This means to call FUNCTION
after each match to get the replacement text. FUNCTION is called with
perform-replace also turns off `case-fold-search' temporarily
and inserts the replacement text without altering case in it.
-+++
** The function buffer-size now accepts an optional argument
to specify which buffer to return the size of.
-+++
** The calendar motion commands now run the normal hook
calendar-move-hook after moving point.
-+++
** The new variable small-temporary-file-directory specifies a
directory to use for creating temporary files that are likely to be
small. (Certain Emacs features use this directory.) If
small-temporary-file-directory is nil, they use
temporary-file-directory instead.
-+++
** The variable `inhibit-modification-hooks', if non-nil, inhibits all
the hooks that track changes in the buffer. This affects
`before-change-functions' and `after-change-functions', as well as
hooks attached to text properties and overlay properties.
-+++
** assq-delete-all is a new function that deletes all the
elements of an alist which have a car `eq' to a particular value.
-+++
** make-temp-file provides a more reliable way to create a temporary file.
make-temp-file is used like make-temp-name, except that it actually
creates the file before it returns. This prevents a timing error,
ensuring that no other job can use the same name for a temporary file.
-+++
** New exclusive-open feature in `write-region'
The optional seventh arg is now called MUSTBENEW. If non-nil, it insists
to get an error if the file exists at that time.
The error reported is `file-already-exists'.
-+++
** Function `format' now handles text properties.
Text properties of the format string are applied to the result string.
results in a bold-face string with an italic `world' at the end.
-+++
** Messages can now be displayed with text properties.
Text properties are handled as described above for function `format'.
(put-text-property 0 (length arg) 'face 'italic arg)
(message msg arg))
-+++
** Sound support
Emacs supports playing sound files on GNU/Linux and the free BSDs
** `multimedia' is a new Finder keyword and Custom group.
-+++
** keywordp is a new predicate to test efficiently for an object being
a keyword symbol.
* Lisp-level Display features added after release 2.6 of the Emacs
Lisp Manual
-+++
** The user-option `resize-mini-windows' controls how Emacs resizes
mini-windows.
-+++
** The function `pos-visible-in-window-p' now has a third optional
argument, PARTIALLY. If a character is only partially visible, nil is
returned, unless PARTIALLY is non-nil.
** On window systems, `glyph-table' is no longer used.
-+++
** Help strings in menu items are now used to provide `help-echo' text.
-+++
** The function `image-size' can be used to determine the size of an
image.
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.
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' (see
below).
Emacs faces have been reimplemented from scratch. They don't use XLFD
font names anymore and face merging now works as expected.
-+++
*** New faces.
Each face can specify the following display attributes:
have a nil value. Faces specifying all attributes are called
`fully-specified'.
-+++
*** Face merging.
The display style of a given character in the text is determined by
that the default face is always fully-specified, face merging always
results in a fully-specified face.
-+++
*** Face realization.
After all face attributes for a character have been determined by
registry and encoding `face-default-registry'. This is consistent
with the fact that languages can also be set globally, only.
-+++
**** Clearing face caches.
The Lisp function `clear-face-cache' can be called to clear face caches
on all frames. If called with a non-nil argument, it will also unload
unused fonts.
-+++
*** Font selection.
Font selection tries to find the best available matching font for a
Setting face-ignored-fonts allows the user to ignore specific fonts.
-+++
**** Scalable fonts
Emacs can make use of scalable fonts but doesn't do so by default,
allows the use of scalable fonts with registry `muleindian-2'.
-+++
*** Functions and variables related to font selection.
- Function: x-family-fonts &optional FAMILY FRAME
won't load more than that number of fonts when searching for a
matching font. The default is currently 100.
-+++
*** Setting face attributes.
For the most part, the new face implementation is interface-compatible
:italic attributeItalic . Face.AttributeItalic
:font attributeFont Face.AttributeFont
-+++
*** Text property `face'.
The value of the `face' text property can now be a single face
(BACKGROUND-COLOR . COLOR) where COLOR is a color name. This is
for compatibility with previous Emacs versions.
-+++
** Support functions for colors on text-only terminals.
The function `tty-color-define' can be used to define colors for use
The new function `display-images-p' returns non-nil if a particular
display can display image files.
-+++
** The minibuffer prompt is now actually inserted in the minibuffer.
This makes it possible to scroll through the prompt, if you want to.
A field is a region of text with the same `field' property.
If POS is nil, the value of point is used for POS.
-+++
** Image support.
Emacs can now display images. Images are inserted into text by giving
`put-image' and `insert-image' can be used to insert an image into a
buffer.
-+++
** Display margins.
Windows can now have margins which are used for special text
string, an image specification or a stretch specification (see later
in this file).
-+++
** Help display
Emacs displays short help messages in the echo area, when the mouse
the help string differently. For example, enabling a tooltip window
causes the help display to appear there instead of in the echo area.
-+++
** Vertical fractional scrolling.
The display of text in windows can be scrolled smoothly in pixels.
(set-window-vscroll (selected-window)
(- (window-vscroll) 0.5)))))
-+++
** New hook `fontification-functions'.
Functions from `fontification-functions' are called from redisplay
property. It may be reasonable for these functions to check for the
`fontified' property and not put it back on, but they do not have to.
-+++
** Tool bar support.
Emacs supports a tool bar at the top of a frame under X. The frame
** Mode line changes.
-+++
*** Mouse-sensitive mode line.
The mode line can be made mouse-sensitive by displaying strings there
*** If a mode line element has the form `(:eval FORM)', FORM is
evaluated and the result is used as mode line element.
-+++
*** You can suppress mode-line display by setting the buffer-local
variable mode-line-format to nil.
-+++
*** A headerline can now be displayed at the top of a window.
This mode line's contents are controlled by the new variable
The function `coordinates-in-window-p' returns `header-line' for a
position in the header-line.
-+++
** Text property `display'
The `display' text property is used to insert images into text,
*** Conditional display properties
All display specifications can be conditionalized. If a specification
-has the form `(:when CONDITION . SPEC)', the specification SPEC
-applies only when CONDITION yields a non-nil value when evaluated.
-During evaluation, point is temporarily set to the end position of
-the text having the `display' property.
+has the form `(when CONDITION . SPEC)', the specification SPEC applies
+only when CONDITION yields a non-nil value when evaluated. During the
+evaluation, `object' is bound to the string or buffer having the
+conditional display property; `position' and `buffer-position' are
+bound to the position within `object' and the buffer position where
+the display property was found, respectively. Both positions can be
+different when object is a string.
The normal specification consisting of SPEC only is equivalent to
-`(:when t SPEC)'.
+`(when t . SPEC)'.
-+++
** New menu separator types.
Emacs now supports more than one menu separator type. Menu items with
Under LessTif/Motif, the last four separator types are displayed like
the corresponding single-line separators.
-+++
** New frame parameters for scroll bar colors.
The new frame parameters `scroll-bar-foreground' and
Setting these parameters overrides toolkit specific X resource
settings for scroll bar colors.
-+++
** You can set `redisplay-dont-pause' to a non-nil value to prevent
display updates from being interrupted when input is pending.
----
** Changing a window's width may now change its window start if it
starts on a continuation line. The new window start is computed based
on the window's new width, starting from the start of the continued
line as the start of the screen line with the minimum distance from
the original window start.
----
** The variable `hscroll-step' and the functions
`hscroll-point-visible' and `hscroll-window-column' have been removed
now that proper horizontal scrolling is implemented.
-+++
** Windows can now be made fixed-width and/or fixed-height.
A window is fixed-size if its buffer has a buffer-local variable
support a vertical-bar cursor).
-
\f
* Emacs 20.7 is a bug-fix release with few user-visible changes
The fontset height and width are determined by the ASCII characters
(that is, by the font in the fontset which is used for ASCII
-characters). If another font in the fontset has a different height,
-or the wrong width, then characters assigned to that font are clipped,
-and displayed within a box if highlight-wrong-size-font is non-nil.
+characters).
*** Defining fontsets.
* @ dired-mark-symlinks @ (binding deleted)
* u dired-unmark u
* DEL dired-unmark-backward DEL
- * ? dired-unmark-all-files M-C-?
+ * ? dired-unmark-all-files C-M-?
* ! dired-unmark-all-marks
* % dired-mark-files-regexp % m
* C-n dired-next-marked-file M-}
generating lines in buffers.
*** Several commands in the group buffer can be undone with
-`M-C-_'.
+`C-M-_'.
*** Scoring can be done on words using the new score type `w'.
`M-x gnus-group-clear-data-on-native-groups'
*** A new command for reading collections of documents
-(nndoc with nnvirtual on top) has been added -- `M-C-d'.
+(nndoc with nnvirtual on top) has been added -- `C-M-d'.
*** Process mark sets can be pushed and popped.
appropriate functions.
*** New interactive functions for repositioning and marking of
-entries. They are bound by default to M-C-l and M-C-h.
+entries. They are bound by default to C-M-l and C-M-h.
*** New hook bibtex-clean-entry-hook. It is called after entry has
been cleaned.