GNU Emacs NEWS -- history of user-visible changes.
-Copyright (C) 2007, 2008 Free Software Foundation, Inc.
+Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
See the end of the file for license conditions.
Please send Emacs bug reports to emacs-pretest-bug@gnu.org.
starts the server. Clients can connect and create graphical or
terminal frames using emacsclient.
+**** emacsclient starts emacs in daemon mode and connects to it when
+--alternate-editor="" is used (or when the evironment variable
+ALTERNATE_EDITOR is set to "") and emacsclient cannot connect to an
+emacs server.
+
*** The new command close-display-connection closes a connection to a
-remote display.
+remote display. There are some bugs for Gtk+. See etc/PROBLEMS.
*** Emacs now supports the XEmbed specification.
You can embed Emacs in another application on X11. The new command line
*** Emacs can now set the frame opacity.
The opacity of a frame can be controlled by setting the `alpha' frame
parameter. This only takes effect on a compositing window manager for
-the X Window System, such as Compiz, Beryl and Compiz Fusion, or on
-Windows 2000 and later versions of Windows.
+the X Window System, such as Compiz, Beryl and Compiz Fusion, on Mac
+OS X, or on Windows 2000 and later versions of Windows.
The alpha parameter should be an integer between 0 (transparent) and
100 (opaque), or a float number between 0.0 and 1.0. It can also be a
+++
** File deletion can make use of the Recycle Bin or system Trash folder.
Set `delete-by-moving-to-trash' non-nil to use this. Deleted files
-and directories will then be sent to the Recyle Bin on Windows, and
+and directories will then be sent to the Recycle Bin on Windows, and
to `trash-directory' on other systems.
+++
the minibuffer that toggles word search (i.e. using key sequences
`C-s RET C-w' or `C-s M-e C-w') is obsolete. You can use the global key
`M-s w' to start word search, or type `M-s w' in Isearch mode to
-toggle word search.
+toggle word search. To start nonincremental word search you can now use
+`M-s w RET' and `M-s w C-r RET' instead of `C-s RET C-w' and `C-r RET C-w'.
+
++++
+** In Info, `Info-search' is unbound from `M-s' to allow using `M-s w'
+for word search as well as other search commands from the global prefix
+key `M-s'. `Info-search' is still bound to `s', and also incremental
+search commands `C-s', `C-M-s', `C-r', `C-M-r' are available for searching
+through multiple Info nodes, together with their nonincremental versions
+`C-s RET', `C-r RET', `C-M-s RET', `C-M-r RET', `M-s w RET'.
---
** In Text mode, `center-line' and `center-paragraph' are rebound
and swedish-alt-postfix. Use the versions without "alt-", which are
identical.
++++
+** If a function in write-region-annotate-functions returns with a
+different buffer current, Emacs no longer kills that buffer
+automatically. This behavior existed in previous versions of Emacs,
+but was undocumented. To kill a buffer after write-region, give the
+variable `write-region-post-annotation-function' a buffer-local value
+of `kill-buffer'.
+
\f
* Editing Changes in Emacs 23.1
*** You can disable kill ring commands from accessing the primary
selection by setting `x-select-enable-primary' to nil.
+---
** Continuation lines can now be wrapped at word boundaries
(word-wrapping). This is controlled by the new per-buffer variable
`word-wrap'. Word wrapping does not take place if continuation lines
*** The new command balance-windows-area balances windows both
vertically and horizontally.
-
+---
*** pop-to-buffer now always sets input focus when the popped-to window
is on a different frame.
*** C-l is bound to the new command recenter-top-bottom, rather than recenter.
This moves the current line to window center, top and bottom on
successive invokations.
-
++++
*** scroll-preserve-screen-position also preserves the column position.
+++
*** If `yank-pop-change-selection' is t, rotating the kill ring also
*** The new commands `pp-macroexpand-expression' and
`pp-macroexpand-last-sexp' pretty-print macro expansions.
-
++++
*** The new command `set-file-modes' allows to set file's mode bits.
The mode bits can be specified in symbolic notation, like with GNU
-Coreutils, in addition to an octal number.
+Coreutils, in addition to an octal number. `chmod' is a new
+convenience alias for this function.
*** `next-error-recenter' specifies how next-error should recenter the
visited source file. Its value can be a number (for example, 0 for
+++
*** When typing in a password in the echo area, C-y yanks the current
kill into the password.
+
+*** `mkdir' is a new convenience alias for `make-directory'.
\f
* New Modes and Packages in Emacs 23.1
It uses `auto-composition-function' (default `auto-compose-chars').
** Bubbles, a new game, is similar to SameGame.
+---
+** butterfly flips the desired bit on the drive platter.
+See http://xkcd.com/378/
** bug-reference.el provides clickable links to bug reports.
D-Bus is an inter-process communication mechanism for applications
residing on the same host. See the manual for details.
-** Doc View mode allows viewing of PDF, PostScript and DVI documents.
++++
+** DocView mode allows viewing of PDF, PostScript and DVI documents.
One can also search for a regular expression in the document. For
details, see the commentary in doc-view.el.
attribute name or data value by using information about what is
allowed by the schema in that context.
-** proced.el provides a Dired-like interface for operating on processes.
-Proced makes an Emacs buffer containing a listing of the current
-processes (using ps(1)). You can use the normal Emacs commands to
-move around in this buffer, and special Proced commands to operate on
-the processes listed.
+** proced.el provides a Dired-like interface for operating on
+processes. Proced makes an Emacs buffer containing a listing of the
+current processes. You can use the normal Emacs commands to move
+around in this buffer, and special Proced commands to operate on the
+processes listed. It is currently only functional on GNU/Linux,
+MS-Windows and Solaris.
** Remember Mode is a mode for jotting down things to remember.
Notes can be saved to a Diary file. For details, see the Remember
Manual.
-** RST mode is a major mode for editing ReSTructured-Text files.
+** RST mode is a major mode for editing reStructuredText files.
+
++++
+** Ruby mode is a major mode for Ruby files.
+++
** Visual Line mode provides support for editing by visual lines.
buffer and tries to create ChangeLog entries for each change.
It is bound to `C-x 4 A'.
+++
-*** The new function `diff-show-trailing-whitespaces' shows
-trailing whitespace problems in the modified lines of a diff buffer.
+*** Turning on `whitespace-mode' in a diff buffer will show trailing
+whitespace problems in the modified lines.
** Dired
+++
remote files, if there is no established connection to the
corresponding remote host.
+** Rmail
+
+*** Rmail no longer converts the messages to Babyl format.
+Instead, it keeps them in their original mbox format, both on disk and
+in Rmail buffers, and does conversion and decoding when a message is
+displayed.
+
+First time you visit an Rmail file in Babyl format, Rmail
+automatically converts it to mbox format. This is a one-time
+conversion, but it can take a few minutes, depending on how fast is
+your machine and on the size of the file. You should find the rest of
+Rmail usage unaltered.
+
+FIXME: Add more mbox merge details
+
** TeX modes
---
*** New option latex-indent-within-escaped-parens
been introduced. There are also new so-called gateway methods
"tunnel" and "socks".
+*** IPv6 addresses.
+IPv6 addresses are supported now as host names. They must be embedded
+in square brackets, like in "/ssh:[::1]:".
+
*** Multihop syntax has been removed.
The pseudo-method "multi" has been removed. Instead of, multi hops
can be specified by the new variable `tramp-default-proxies-alist'.
status. It allows to apply various VC operations to a file, a
directory or a set of files/directories.
+++
+*** VC switches are no longer appended, rather the first non-nil value is used.
+(This was for the most part true in Emacs 22, but was not advertised).
+This is because there is an increasing variety of VC systems, and they
+do not all accept the same "common" options. For example, a CVS diff
+command used to append the values of `vc-cvs-diff-switches',
+`vc-diff-switches', and `diff-switches'. Now the first non-nil value
+from that sequence is used. The special value `t' means "no switches".
++++
*** Clicking on the VC mode-line entry now pops the VC menu.
+++
*** The VC mode-line entry now has a tooltip that explains the VC file status.
*** comint-mode uses `start-file-process' now (see Lisp Changes).
If `default-directory' is a remote file name, subprocesses are started
on the corresponding remote system.
-
+---
*** Eldoc highlights the function argument under point
with the face `eldoc-highlight-function-argument'.
+++
*** The new variable `ffap-rfc-directories' specifies a list of local
directories in which `ffap-rfc' will first search for RFCs.
-
++++
*** hide-ifdef-mode allows shadowing ifdef-blocks instead of hiding them.
See option `hide-ifdef-shadow' and function `hide-ifdef-toggle-shadowing'.
*** view-remove-frame-by-deleting is now by default t
since users found iconification of view-mode frames distracting.
-
+---
*** WoMan tries to add locale-specific manual page directories to the
search path. This can be disabled by setting `woman-locale' to nil.
** `mode-name' is no longer guaranteed to be a string.
Use `(format-mode-line mode-name)' to ensure a string value.
++++
+** The function x-font-family-list has been removed.
+Use the new function font-family-list (see Lisp Changes, below).
+
** Internationalization changes
*** The value of the function `charset-id' is now always 0.
**** `tamil' and `tml-util, and all associated tamil-* and tml-*
functions and variables (formerly used for Tamil script).
+** The variable temp_file_name_pattern has been removed.
+This variable was only used by call-process-region, which now uses
+temporary-file-directory instead.
+
\f
* Lisp Changes in Emacs 23.1
** New coding system alias `emacs-internal'.
++++
+** The new variable `generate-autoload-cookie' controls the magic comment
+string used by `update-file-autoloads' to find autoloaded forms. The
+variable `generated-autoload-file' similarly controls the name of the
+file where `update-file-autoloads' writes the calls to `autoload'.
+The default values are ";;;###autoload" and `loaddefs.el',
+respectively.
+
+++
** New primitives `list-system-processes' and `system-process-attributes'
let Lisp programs access the processes that are running on the local
an active region that they should operate on.
*** `region-active-p' returns non-nil when Transient Mark mode is
-enabled and there is an active region. This is NOT the best function
-to use to test whether a command should operate on the region instead
-of the usual behavior -- for that, use `use-region-p'.
+enabled and the mark is active. Most commands that act specially on
+the active region in Transient Mark mode should use `use-region-p'
+instead of `region-active-p', because `use-region-p' obeys the new
+user option `use-empty-active-region' (see Editing Changes, above).
+++
*** If a command sets `transient-mark-mode' to (only . OLDVAL), that
*** minibuffer-local-must-match-filename-map is now named
minibuffer-local-filename-must-match-map.
----
-*** `all-completions' may now return the base size in the last cdr.
-Since this means the returned list is not properly nil-terminated, this
-is an incompatible change and is thus enabled by the new variable
-completion-all-completions-with-base-size.
-
+++
*** The `require-match' argument to `completing-read' accepts the new
values `confirm-only' and `confirm-after-completion'.
variables defined in the current buffer.
** Face-remapping
-
++++
*** Each face can be remapped to a different face definition using the
variable `face-remapping-alist'. This is an alist that maps faces to
replacement definitions (which can be face names, lists of face names,
Editing Changes, above).
*** New functions:
-
++++
**** `face-remap-add-relative' adds a face remapping entry to the
current buffer.
-
++++
**** ``face-remap-remove-relative' removes a face remapping entry from
the current buffer.
-
++++
**** `face-remap-reset-base' restores a face to its global definition.
-
++++
**** `face-remap-set-base' sets the base remapping of a face.
-** Process changes +++
+** Process changes
++++
*** The new function `start-file-process' is similar to `start-process',
but obeys file handlers. The file handler is chosen based on
`default-directory'. The functions `start-file-process-shell-command'
+++
*** The functions `encode-char' and `decode-char' now accept any character sets.
+---
*** The function `define-charset' now accepts a completely different
form of arguments (old-style arguments still work).
*** The value of the function `char-charset' depends on the current
priorities of charsets.
++++
*** The function get-char-code-property now accepts many Unicode base
character properties. They are `name', `general-category',
`canonical-combining-class', `bidi-class', `decomposition',
**** `characterp' returns t if and only if the argument is a character.
This replaces `char-valid-p', which is now obsolete.
++++
**** `max-char' returns the maximum character code (currently #x3FFFFF).
+---
**** `define-charset-alias' defines an alias of a charset.
+++
+++
**** `unibyte-string' makes a unibyte string from bytes.
+---
**** `define-char-code-property' defines a character code property.
++++
**** `char-code-property-description' returns the description string of
a character code property.
**** `find-word-boundary-function-table' is a char-table of functions to
search for a word boundary.
++++
**** `char-script-table' is a char-table of script names.
++++
**** `char-width-table' is a char-table of character widths.
+---
**** `print-charset-text-property' controls how to handle `charset' text
property on printing a string.
++++
**** `printable-chars' is a char-table of printable characters.
** Code conversion changes
+---
*** The new function `define-coding-system' should be used to define a
coding system instead of `make-coding-system' (which is now obsolete).
++++
*** The functions `encode-coding-region' and `decode-coding-region'
have an optional 4th argument to specify where the result of
conversion should go.
++++
*** The functions `encode-coding-string' and `decode-coding-string'
have an optional 4th argument specifying a buffer to store the result
of conversion.
++++
+*** The new variable `inhibit-null-byte-detection' controls whether to
+consider text with null bytes as binary data. By default, it is
+`nil', and Emacs uses `no-conversion' for any text containing null
+bytes.
+
+---
*** The functions `set-coding-priority' and `make-coding-system' are obsolete.
*** New functions:
++++
**** `with-coding-priority' executes Lisp code using the specified
coding system priority order.
++++
**** `check-coding-systems-region' checks if the text in the region is
encodable by the specified coding systems.
++++
**** `coding-system-aliases' returns a list of aliases of a coding system.
++++
**** `coding-system-charset-list' returns a list of charsets supported
by a coding system.
++++
**** `coding-system-priority-list' returns a list of coding systems
ordered by their priorities.
++++
**** `set-coding-system-priority' sets priorities of coding systems.
+**** `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).
set the font.
*** New functions:
-
++++
**** `fontp' checks if the argument is a font-spec or font-entity.
-
++++
**** `font-spec' creates a new font-spec object.
-
++++
**** `font-get' returns a font property value.
-
++++
**** `font-put' sets a font property value.
-
++++
**** `font-face-attributes' returns a plist of face attributes set by a font.
-
++++
**** `list-fonts' returns a list of font-entities matching a font spec.
-
-**** `font-font' returns the font-entity best matching the given font spec.
-
-**** `list-families' returns a list of family names of available fonts.
-
++++
+**** `find-font' returns the font-entity best matching the given font spec.
++++
+**** `font-family-list' returns a list of family names of available fonts.
++++
**** `font-xlfd-name' returns an XLFD name of a given font spec, font
entity, or font object.
-
+---
**** `clear-font-cache' clears all font caches.
** Changes related to multiple-terminal (multi-tty) support
+---
*** $TERM is now set to `dumb' for subprocesses. If you want to know the
$TERM inherited by Emacs you will have to look inside initial-environment.
+---
*** $DISPLAY is now dynamically inherited from the frame's `display'.
++++
*** The `window-system' variable is now frame-local. The new
`initial-window-system' variable contains the `window-system' value
for the first frame. `window-system' is also now a function that
takes a frame argument.
++++
*** The `keyboard-translate-table' variable and the terminal and
keyboard coding systems are now terminal-local.
+---
*** You can specify a terminal device (`tty' parameter) and a terminal
type (`tty-type' parameter) to `make-terminal-frame'.
+---
*** The function `make-frame-on-display' now works during a tty
-session, and `make-frame-on-tty' works during a graphical session.
+session.
-*** A new data type for terminals with functions: `get-device-terminal',
-`terminal-parameters', `terminal-parameter', `set-terminal-parameter'.
++++
+*** A new `terminal' data type.
+The functions `get-device-terminal', `terminal-parameters',
+`terminal-parameter', `set-terminal-parameter' use this data type.
++++
*** Function key sequences are now mapped using `local-function-key-map',
a new variable. This inherits from the global variable function-key-map,
which is not used directly any more.
variable file-local-variables-alist, and before actually applying the
file-local variables.
++++
**** `suspend-tty-functions' and `resume-tty-functions' are called
after a tty frame has been suspended or resumed, respectively. The
functions are called with the terminal id of the frame being
suspended/resumed as a parameter.
++++
**** The special hook `delete-terminal-functions' is called before
deleting a terminal.
*** New functions:
-**** `environment'
-
-**** `make-frame-on-tty' creates a new frame on another tty device.
-
-**** `delete-tty'
++++
+**** `delete-terminal'
++++
**** `suspend-tty'
++++
**** `resume-tty'.
++++
*** `initial-environment' holds the environment inherited from Emacs's parent.
** Redisplay changes
*** `buffer-swap-text' swaps text between two buffers. This can be
useful for modes such as tar-mode, archive-mode, RMAIL.
+*** New variable `buffer-swapped-with' lets the modes that use
+`buffer-swap-text' arrange to save the file from the proper buffer.
+
+++
*** `read-color' reads a color name using the minibuffer.