GNU Emacs NEWS -- history of user-visible changes.
-Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
+Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
See the end of the file for license conditions.
-Please send Emacs bug reports to emacs-pretest-bug@gnu.org.
+Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
If possible, use M-x report-emacs-bug.
This file is about changes in Emacs version 23.
You can narrow news to a specific version by calling `view-emacs-news'
with a prefix argument or by typing C-u C-h C-n.
+\f
+* Installation Changes in Emacs 23.3
+
+* Startup Changes in Emacs 23.3
+
+* Changes in Emacs 23.3
+
+\f
+* Editing Changes in Emacs 23.3
-Temporary note:
- +++ indicates that the appropriate manual has already been updated.
- --- means no change in the manuals is called for.
-When you add a new item, please add it without either +++ or ---
-so we will look at it and add it to the manual.
+\f
+* Changes in Specialized Modes and Packages in Emacs 23.3
+
+---
+** The appt-add command takes an optional argument for the warning time.
+This can be used in place of the default appt-message-warning-time.
+
+\f
+* New Modes and Packages in Emacs 23.3
+
+\f
+* Incompatible Lisp Changes in Emacs 23.3
+
+\f
+* Lisp changes in Emacs 23.3
+
+** New function byte-to-string, like char-to-string but for bytes.
+
+\f
+* Changes in Emacs 23.3 on non-free operating systems
\f
* Installation Changes in Emacs 23.2
-** New configure options for Emacs developers
+** New configure options for Emacs developers.
These are not new features; only the configure flags are new.
*** --enable-profiling builds Emacs with profiling enabled.
*** --enable-checking[=OPTIONS] builds emacs with extra runtime checks.
----
** `make install' now consistently ignores umask, creating a
world-readable install.
-** Emacs compiles with Gconf support by default, if it is detected.
+** Emacs compiles with Gconf support, if it is detected.
Use the configure option --without-gconf to disable this.
+This is used by the `font-use-system-font' feature (see below).
* Startup Changes in Emacs 23.2
*** The new variable `inhibit-x-resources' shows whether X resources
were loaded.
-+++
** New command-line option -mm (--maximized) maximizes the initial frame.
* Changes in Emacs 23.2
unconditionally. The previous behavior, toggling the mode, was
neither reliable nor generally desirable.
-*** New commands for adding and removing file-local variables:
+*** There are new commands for adding and removing file-local variables:
`add-file-local-variable', `delete-file-local-variable',
`add-file-local-variable-prop-line', and
`delete-file-local-variable-prop-line'.
-*** New commands for adding and removing directory-local variables,
+*** There are new commands for adding and removing directory-local variables,
and copying them to and from file-local variable lists:
`add-dir-local-variable', `delete-dir-local-variable',
`copy-dir-locals-to-file-locals',
** Function arguments in *Help* buffers are now shown in upper-case.
Customize `help-downcase-arguments' to t to show them in lower-case.
+** New command `async-shell-command', bound globally to `M-&'.
+This executes the command asynchronously, similar to calling `M-!' and
+manually adding an ampersand to the end of the command. With `M-&',
+you don't need the ampersand. The output appears in the buffer
+`*Async Shell Command*'.
+
+** When running in a new enough xterm (newer than version 242), Emacs
+asks xterm what the background color is and it sets up faces
+accordingly for a dark background if needed (the current default is to
+consider the background light).
+
\f
* Editing Changes in Emacs 23.2
** Kill-ring and selection changes
-+++
+
*** If `select-active-regions' is t, any active region automatically
becomes the primary selection (for interaction with other window
applications). If you enable this, you might want to bind
are displayed in the *Completions* buffer. If you set it to
`vertical', completions are sorted vertically in columns.
-+++
** The default value of `blink-matching-paren-distance' is increased.
** M-n provides more default values in the minibuffer for commands
** The new variable `recenter-positions' determines the default
cycling order of C-l (`recenter-top-bottom').
+** The abbrevs file is now a file named abbrev_defs in
+user-emacs-directory; but the old location, ~/.abbrev_defs, is used if
+that file exists.
+
\f
* Changes in Specialized Modes and Packages in Emacs 23.2
** The bookmark menu has a narrowing search via bookmark-bmenu-search.
-** LaTeX mode now provides completion via latex-complete and
-latex-indent-or-complete.
-
-** sym-comp.el is now declared obsolete, superceded by completion-at-point.
-
-** lucid.el and levents.el are now declared obsolete.
-
-** pcomplete provides a new command `pcomplete-std-completion' which
-is similar to `pcomplete' but using the standard completion UI code.
+** Calc
-** .calc.el and .abbrev_defs obey user-emacs-directory.
+*** The Calc settings file is now a file named calc.el in
+user-emacs-directory; but the old location, ~/.calc.el, is used if
+that file exists.
-** Calc graphing commands (`g f' etc.) now work on MS-Windows,
-if you have the native Windows port of Gnuplot version 3.8 or later
-installed.
+*** Graphing commands (`g f' etc.) now work on MS-Windows, if you have
+the native Windows port of Gnuplot version 3.8 or later installed.
** Calendar and diary
-+++
*** Fancy diary display is now the default.
If you prefer the simple display, customize `diary-display-function'.
-+++
*** The diary's fancy display now enables view-mode.
----
*** The command `calendar-current-date' accepts an optional argument
giving an offset from today.
** Desktop
----
+
*** The default value for `desktop-buffers-not-to-save' is nil.
This means Desktop will try restoring all buffers, when you restart
your Emacs session. Also, `desktop-buffers-not-to-save' is only
** Dired
-*** The new variable `dired-auto-revert-buffer' allows to revert
-dired buffers automatically on revisiting.
+*** The new variable `dired-auto-revert-buffer', if non-nil, causes
+Dired buffers to be reverted automatically on revisiting them.
** DocView
*** When `doc-view-continuous' is non-nil, scrolling a line
on the page edge advances to the next/previous page.
-** FIXME gdb-mi
+** Elint
+
+*** Elint now uses compilation-mode.
+
+*** Elint can now scan individual files and whole directories,
+and can be run in batch mode.
+
+*** Elint does a more thorough initialization, and recognizes more built-in
+functions and variables. Customize `elint-scan-preloaded' if you want
+to sacrifice some accuracy for a faster startup.
+
+*** Elint attempts some basic understanding of featurep and (f)boundp tests.
+
+*** Customize `elint-ignored-warnings' to suppress some warnings.
+
+** GDB-UI
+
+*** Toolbar functionality for reverse debugging. Display of STL
+collections as watch expressions. These features require GDB 7.0 or later.
** Grep
-A new command `zrgrep' searches recursively in gzipped files.
+*** A new command `zrgrep' searches recursively in gzipped files.
** Info
manual that generates an Info file which gives the same information
through a menu structure.
+** LaTeX mode now provides completion (via completion-at-point).
+
** Message mode is now the default mode for composing mail.
The default for `mail-user-agent' is now message-user-agent, so the
To disable this check, set compose-mail-user-agent-warnings to nil.
+** The default value of mail-interactive is t, since Emacs 23.1.
+(This was not announced at the time.) It means that when sending mail,
+Emacs will wait for the process sending mail to return. If you
+experience delays when sending mail, you may wish to set this to nil.
+
** nXML mode is now the default for editing XML files.
-** Shell
+** pcomplete provides a new command `pcomplete-std-completion' which
+is similar to `pcomplete' but using the standard completion UI code.
+
+** Shell (and other comint modes)
+
+*** M-s is no longer bound to `comint-next-matching-input'.
-*** ansi-color is now enabled by default.
+*** M-r is now bound to `comint-history-isearch-backward-regexp'.
+This starts an incremental search of the comint/shell input history.
+
+*** ansi-color is now enabled by default in Shell mode.
To disable it, set ansi-color-for-comint-mode to nil.
-+++
** Tramp
*** New connection methods "rsyncc", "imap" and "imaps".
use to create a repository, create a new repository and register the
file.
-*** FIXME: add info about the new VC functions: vc-root-diff and
-vc-root-print-log once they stabilize.
+*** New command `vc-root-print-log', bound to `C-x v L'.
+This displays a `*vc-change-log*' buffer showing the history of the
+version-controlled directory tree as a whole.
+
+*** New command `vc-root-diff', bound to `C-x v D'.
+This is similar to `vc-diff', but compares the entire directory tree
+of the current VC directory with its working revision.
-*** The log functions (C-x v l and C-x v L) do not show the full log
-by default anymore. The number of entries shown can be chosen
-interactively with a prefix argument, by customizing
-vc-log-show-limit. The log buffer display buttons that can be used
-to change the number of entries shown.
-RCS, SCCS, CVS do not support this feature.
+*** `C-x v l' and `C-x v L' do not show the full log by default.
+The number of entries shown can be chosen interactively with a prefix
+argument, or by customizing vc-log-show-limit. The `*vc-change-log*'
+buffer now contains buttons at the end of the buffer, which can be
+used to increase the number of entries shown. RCS, SCCS, and CVS do
+not support this feature.
*** vc-annotate supports annotations through file copies and renames,
it displays the old names for the files and it can show logs/diffs for
*** When a file is not found, VC will not try to check it out of RCS anymore.
-*** Diff and log operations can be used from dired buffers.
+*** Diff and log operations can be used from Dired buffers.
*** vc-git changes
-**** The short log format for git makes use of the graph display, so
-it's not supported on git versions earlier than 1.5.
-
-**** The new variable vc-git-add-signoff can be used to add a
-Signed-off-by line when committing.
+**** The short log format for git makes use of the graph display,
+so it's not supported on git versions earlier than 1.5.6.
-**** Support for operating with stashes has been added to vc-dir: the stash list is
-displayed in the *vc-dir* header, stashes can be created, removed, applied and
-their content displayed.
+**** vc-dir uses the --relative option of git, and so requires at least
+git version 1.5.5.
-**** vc-dir displays the stash status
+**** Support for operating with stashes has been added to vc-dir:
+the stash list is displayed in the *vc-dir* header, stashes can be
+created, removed, applied and their content displayed.
*** vc-bzr supports operating with shelves: the shelve list is
displayed in the *vc-dir* header, shelves can be created, removed and applied.
*** log-edit-strip-single-file-name controls whether or not single filenames
are stripped when copying text from the ChangeLog to the *VC-Log* buffer.
-** Elint
-
----
-*** Elint now uses compilation-mode.
-
----
-*** Elint can now scan individual files and whole directories,
-and can be run in batch mode.
-
----
-*** Elint does a more thorough initialization, and recognizes more built-in
-functions and variables. Customize `elint-scan-preloaded' if you want
-to sacrifice some accuracy for a faster startup.
-
----
-*** Elint attempts some basic understanding of featurep and (f)boundp tests.
-
----
-*** Customize `elint-ignored-warnings' to suppress some warnings.
-
** Miscellaneous
-*** The new command `async-shell-command' bound globally to `M-&' executes
-the command asynchronously without the need to manually add ampersand to
-the end of the command. Its output appears in the buffer `*Async Shell
-Command*'.
-
-*** Isearch searches in the comint/shell input history when the new variable
-`comint-history-isearch' is non-nil. New commands `comint-history-isearch-backward'
-and `comint-history-isearch-backward-regexp' (bound to M-r) start Isearch
-in the input history regardless of the value of `comint-history-isearch'.
-
*** Interactively `multi-isearch-buffers' and `multi-isearch-buffers-regexp'
read buffer names to search, one by one, ended with RET. With a prefix
argument, they ask for a regexp, and search in buffers whose names match
ended with RET. With a prefix argument, they ask for a wildcard, and
search in file buffers whose file names match the specified wildcard.
-+++
*** Autorevert Tail mode now works also for remote files.
-*** The new commands `eshell/su' and `eshell/sudo' support Tramp.
-That means, they change `default-directory' to the new users value,
-and let commands run under that user permissions. It works even when
-`default-directory' is already remote.
+*** The new eshell built-in commands `su' and `sudo' support Tramp.
+Thus, they change `default-directory' to reflect the new user id, and
+let commands run under that user's permissions. This works even when
+`default-directory' is already remote. Calling the external commands
+is possible via `*su' or `*sudo', respectively.
-*** When running in a new enough xterm (newer than version 242), emacs
-asks xterm what the background color is and it sets up faces
-accordingly for a dark background if needed (the current default is to
-consider the background light).
+** Obsolete packages
+
+*** sym-comp.el is now obsolete, superseded by completion-at-point.
+
+*** lucid.el and levents.el are now obsolete.
\f
* New Modes and Packages in Emacs 23.2
\f
* Incompatible Lisp Changes in Emacs 23.2
+** The Lisp reader turns integers that are too large/small into floats.
+For instance, on machines where `536870911' is the largest integer,
+reading `536870912' gives the floating-point object `536870912.0'.
+
+This change only concerns the Lisp reader; it does not affect how
+actual integer objects overflow.
+
** Several obsolete functions removed.
The functions have been obsolete since Emacs 19, and are unlikely to
be in use:
time-stamp-yyyy-mm-dd, time-stamp-yymmdd, time-stamp-hh:mm:ss,
time-stamp-hhmm, baud-rate
----
** Support for generating Emacs 18 compatible bytecode (by setting
the variable `byte-compile-compatibility') has been removed.
-** In image-mode.el `image-mode-maybe' is obsolete. Instead, you can
-either use `image-mode' that displays an image file as the actual image
-inititally, or `image-mode-as-text' when you want to display an image file
-as text inititally. `image-mode-as-text' is a combination of a non-image
-mode from `auto-mode-alist' (or Fundamental mode) and `image-minor-mode'.
-`image-minor-mode' provides `C-c C-c' key binding to toggle image display.
+** In image-mode.el `image-mode-maybe' is obsolete.
+Instead, you can either use `image-mode' (which displays an image file
+as the actual image initially), or `image-mode-as-text' (when you want
+to display an image file as text initially). `image-mode-as-text' is a
+combination of a non-image mode from `auto-mode-alist' (or Fundamental
+mode) and `image-minor-mode'. `image-minor-mode' provides a `C-c C-c'
+key binding to toggle image display.
`image-toggle-display-text' removes image properties.
`image-toggle-display-image' adds image properties.
-`image-toggle-display' toggles between `image-mode-as-text' and
-`image-mode'.
+`image-toggle-display' toggles between `image-mode-as-text' and `image-mode'.
\f
* Lisp changes in Emacs 23.2
-** make-network-socket can now also create `seqpacket' Unix sockets.
-
-** New function `completion-in-region' to use the standard completion
-facilities on a particular region of text.
-
-** The 4th arg to all-completions (aka hide-spaces) is declared obsolete.
+** All the default-FOO variables that hold the default value of the FOO
+variable, are now declared obsolete.
-** read-file-name-predicate is obsolete. It was used to pass the predicate
-to read-file-name-internal because read-file-name-internal abused its `pred'
-argument to pass the current directory, but this hack is not needed
-any more.
+** read-key is a function halfway between read-event and read-key-sequence.
+It reads a single key, but obeys input and escape sequence decoding.
** Frame parameter changes
*** You can give the `fullscreen' frame parameter the value `maximized'.
This maximizes the frame.
-+++
*** The new frame parameter `sticky' makes Emacs frames sticky in
virtual desktops.
-** completion-base-size is obsoleted by completion-base-position.
+** Completion changes
+
+*** completion-base-size is obsoleted by completion-base-position.
This change causes a few backward incompatibilities, mostly with
choose-completion-string-functions where the `mini-p' argument has
been replaced by a `base-position' argument, and where the `base-size'
argument is now always nil.
+*** New function `completion-in-region' to use the standard completion
+facilities on a particular region of text.
+
+*** The 4th arg to all-completions (aka hide-spaces) is declared obsolete.
+
+*** completion-annotate-function specifies how to compute annotations
+for completions displayed in *Completions*.
+
+** Minibuffer changes
+
+*** read-file-name-predicate is obsolete. It was used to pass the predicate
+to read-file-name-internal because read-file-name-internal abused its `pred'
+argument to pass the current directory, but this hack is not needed
+any more.
+
+** Changes to file-manipulation functions
+
+*** `delete-directory' has an optional parameter RECURSIVE.
+
+*** New function `copy-directory', which copies a directory recursively.
+
** called-interactively-p now takes one argument and replaces interactive-p
which is now marked obsolete.
+
** New function set-advertised-calling-convention makes it possible
to obsolete arguments as well as make some arguments mandatory.
-** eval-next-after-load is obsolete.
-** New hook `after-load-functions' run after loading an Elisp file.
** You can control which binding is preferentially shown in menus and
docstrings by adding a `:advertised-binding' property to the corresponding
command's symbol. That property can hold a single binding or a list
of bindings.
-** New macro with-silent-modifications to tweak text properties without
-affecting the buffer's modification state.
-** All the default-FOO variables that hold the default value of the FOO
-variable, are now declared obsolete.
-
-** read-key is a function halfway between read-event and read-key-sequence.
-It reads a single key, but obeys input and escape sequence decoding.
+** Network and process changes
-** start-process-shell-command and start-file-process-shell-command
+*** start-process-shell-command and start-file-process-shell-command
now only take a single `command' argument.
-** The variable `process-file-side-effects' shall be bound to nil, if
-a `process-file' call does not change a remote file. By this, file
-name handlers like Tramp can apply optimizations.
+*** The new variable `process-file-side-effects' should be set to nil
+if a `process-file' call does not change a remote file. This allows
+file name handlers such as Tramp to optimizations.
+
+*** make-network-process can now also create `seqpacket' Unix sockets.
+
+** Loading changes
+
+*** eval-next-after-load is obsolete.
+
+*** New hook `after-load-functions' run after loading an Elisp file.
+
+** Byte compilation changes
+
+*** Changing the file-names generated by byte-compilation by redefining
+the function `byte-compile-dest-file' before loading bytecomp.el is obsolete.
+Instead, customize byte-compile-dest-file-function.
+
+*** `byte-compile-warnings' has new members, `constants' and `suspicious'.
+
+** New macro with-silent-modifications to tweak text properties without
+affecting the buffer's modification state.
** Hash tables have a new printed representation that is readable.
The feature `hashtable-print-readable' identifies this new
functionality.
-** Functions performing Unicode normalization are added. They are:
+** New functions for performing Unicode normalization:
ucs-normalize-NFD-region, ucs-normalize-NFD-string,
ucs-normalize-NFC-region, ucs-normalize-NFC-string,
ucs-normalize-NFKD-region, ucs-normalize-NFKD-string,
ucs-normalize-HFS-NFD-region, ucs-normalize-HFS-NFD-string,
ucs-normalize-HFS-NFC-region, ucs-normalize-HFS-NFC-string.
-** completion-annotate-function specifies how to compute annotations
-for completions displayed in *Completions*.
-
-+++
** Face aliases can now be marked as obsolete, using the macro
`define-obsolete-face-alias'.
----
-** Changing the file-names generated by byte-compilation by redefining
-the function `byte-compile-dest-file' before loading bytecomp.el is obsolete.
-Instead, customize byte-compile-dest-file-function.
-
----
-** `byte-compile-warnings' has new members, `constants' and `suspicious'.
-
-** `delete-directory' has an optional parameter RECURSIVE.
-
-** New function `copy-directory', which copies a directory recursively.
-
-+++
** New function `window-full-height-p', analogous to the full-width version.
\f
* Changes in Emacs 23.2 on non-free operating systems
----
** On MS-Windows, `display-time' now displays the system load average
as well as the time, as it does on GNU and Unix.
*** Emacs now supports multi-page TIFF images.
-** New NeXTSTEP-based port
+** New NeXTSTEP-based port.
This provides support for GNUstep (via the GNUstep libraries) and Mac
OS X (via the Cocoa libraries).
*** Old GNU/Linux systems based on libc version 5.
*** Old FreeBSD, NetBSD, and OpenBSD systems based on the COFF
- executable format.
+executable format.
*** Solaris versions 2.6 and below.
** Abbrev has been rewritten in Elisp and extended with more flexibility.
*** New functions: abbrev-get, abbrev-put, abbrev-table-get, abbrev-table-put,
- abbrev-table-p, abbrev-insert, abbrev-table-menu.
+abbrev-table-p, abbrev-insert, abbrev-table-menu.
*** Special hook `abbrev-expand-functions' obsoletes `pre-abbrev-expand-hook'.
*** `make-abbrev-table', `define-abbrev', `define-abbrev-table' all take
- extra arguments for arbitrary properties.
+extra arguments for arbitrary properties.
*** New variable `abbrev-minor-mode-table-alist'.
*** `local-abbrev-table' can hold a list of abbrev-tables.
*** Abbrevs have now the following special properties:
- `:count', `:system', `:enable-function', `:case-fixed'.
+`:count', `:system', `:enable-function', `:case-fixed'.
*** Abbrev-tables have now the following special properties:
- `:parents', `:case-fixed', `:enable-function', `:regexp',
- `abbrev-table-modiff'.
+`:parents', `:case-fixed', `:enable-function', `:regexp',
+`abbrev-table-modiff'.
** Apropos
** Gnus
*** The Gnus package has been updated
-There are many news features, bug fixes and improvements; see the file
+There are many new features, bug fixes and improvements; see the file
GNUS-NEWS or the node "No Gnus" in the Gnus manual for details.
*** In Emacs 23, Gnus uses Emacs' new internal coding system `utf-8-emacs' for
-saving articles drafts and ~/.newsrc.eld. These file may not be read
+saving articles, drafts, and ~/.newsrc.eld. These file may not be read
correctly in Emacs 22 and below. If you want to Gnus across different Emacs
versions, you may set `mm-auto-save-coding-system' to `emacs-mule'.
*** `C-h C-h' in Isearch mode displays isearch-specific Help screen,
`C-h b' displays all Isearch key bindings, `C-h k' displays the full
documentation of the given Isearch key sequence, `C-h m' displays
-documentation of Isearch mode. All the rest Help commands exit Isearch mode
-and execute their global definitions.
+documentation for Isearch mode. All the other Help commands exit
+Isearch mode and execute their global definitions.
*** When started in the minibuffer, Isearch searches in the minibuffer
history. See `Minibuffer changes', above.
**** `coding-system-from-name' returns a coding system matching with
the argument name.
-
** There is a new input method, Robin, different from Quail.
It has three functionalities:
i) a simple input method (converts an ASCII sequence into a string).