GNU Emacs NEWS -- history of user-visible changes. 2003-05-21
-Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+ Free Software Foundation, Inc.
See the end for copying conditions.
Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
so we will look at it and add it to the manual.
\f
-* Installation Changes in Emacs 21.4
+* Installation Changes in Emacs 22.1
** Emacs includes now support for loading image libraries on demand.
(Currently this feature is only used on MS Windows.) You can configure
choose one of them in case your language setup doesn't automatically
select the right one.
+---
** You can build Emacs with Gtk+ widgets by specifying `--with-x-toolkit=gtk'
when you run configure. This requires Gtk+ 2.0 or newer. This port
provides a way to display multilingual text in menus (with some caveats).
---
** Emacs can now be built without sound support.
+---
** The `emacsserver' program has been removed, replaced with elisp code.
---
item was added to the menu bar that makes it easy accessible
(Help->More Manuals->Introduction to Emacs Lisp).
+---
** Support for Cygwin was added.
---
---
** Support for GNU/Linux systems on X86-64 machines was added.
+---
+** Mac OS 9 port now uses the Carbon API by default. You can also
+create non-Carbon build by specifying `NonCarbon' as a target. See
+the files mac/README and mac/INSTALL for build instructions.
+
---
** A French translation of the `Emacs Survival Guide' is available.
types any more. Add -DUSE_LISP_UNION_TYPE if you want union types.
\f
-* Changes in Emacs 21.4
+* Changes in Emacs 22.1
+
+** Languange environment and various default coding systems are setup
+more correctly according to the current locale name. If the locale
+name doesn't specify a charset, the default is what glibc defines.
+This change may result in using the different coding systems as
+default in some locale (e.g. vi_VN).
+
++++
+** The commands copy-file, rename-file, make-symbolic-link and
+add-name-to-file, when given a directory as the "new name" argument,
+convert it to a file name by merging in the within-directory part of
+the existing file's name. (This is the same convention that shell
+commands cp, mv, and ln follow.) Thus, M-x copy-file RET ~/foo RET
+/tmp RET copies ~/foo to /tmp/foo.
+
++++
+** M-o now is the prefix key for setting text properties;
+M-o M-o requests refontification.
+
++++
+** M-g is now a prefix key. M-g g and M-g M-g run goto-line.
+
++++
+** font-lock-lines-before specifies a number of lines before the
+current line that should be refontified when you change the buffer.
+The default value is 1.
+
++++
+** C-u M-x goto-line now switches to the most recent previous buffer,
+and goes to the specified line in that buffer.
+
+When goto-line starts to execute, if there's a number in the buffer at
+point then it acts as the default argument for the minibuffer.
+
+---
+** Emacs now responds to mouse-clicks on the mode-line, header-line and
+display margin, when run in an xterm.
+
++++
+** M-SPC (just-one-space) when given a numeric argument N
+converts whitespace around point to N spaces.
+
++++
+** Control characters and escape glyphs are now shown in the new
+escape-glyph face.
+
++++
+** Non-breaking space and hyphens are now prefixed with an escape
+character, unless the new user variable `show-nonbreak-escape' is set
+to nil.
+
+---
+** The type-break package now allows `type-break-file-name' to be nil
+and if so, doesn't store any data across sessions. This is handy if
+you don't want the .type-break file in your home directory or are
+annoyed by the need for interaction when you kill Emacs.
+
+---
+** display-battery has been replaced by display-battery-mode.
-** calculator.el now has radix grouping mode. In this mode a
-separator character is used between every few digits, making it
-easier to indicate byte boundries etc. See the documentation of
-the `calculator-radix-grouping-mode' custom variable.
+---
+** calculator.el now has radix grouping mode, which is available when
+`calculator-output-radix' is non-nil. In this mode a separator
+character is used every few digits, making it easier to see byte
+boundries etc. For more info, see the documentation of the variable
+`calculator-radix-grouping-mode'.
++++
** You can now follow links by clicking Mouse-1 on the link.
Traditionally, Emacs uses a Mouse-1 click to set point and a Mouse-2
click to follow a link, whereas most other applications use a Mouse-1
click for both purposes, depending on whether you click outside or
-inside a link. With release 21.4, the behaviour of a Mouse-1 click
-has been changed to match this context-sentitive dual behaviour.
+inside a link. Now the behavior of a Mouse-1 click has been changed
+to match this context-sentitive dual behavior.
Depending on the current mode, a Mouse-2 click in Emacs may do much
-more than just follow a link, so the new Mouse-1 behaviour is only
+more than just follow a link, so the new Mouse-1 behavior is only
activated for modes which explicitly mark a clickable text as a "link"
-(see the new function `mouse-on-link-p' for details). The lisp
-packages that are included in release 21.4 have been adapted to do
+(see the new function `mouse-on-link-p' for details). The Lisp
+packages that are included in release 22.1 have been adapted to do
this, but external packages may not yet support this. However, there
is no risk in using such packages, as the worst thing that could
-happen is that you get the original Mouse-1 behaviour when you click
+happen is that you get the original Mouse-1 behavior when you click
on a link, which typically means that you set point where you click.
If you want to get the original Mouse-1 action also inside a link, you
Dragging the Mouse-1 inside a link still performs the original
drag-mouse-1 action, typically copy the text.
-You can customize the new Mouse-1 behaviour via the new user option
-`mouse-1-click-follows-link'.
+You can customize the new Mouse-1 behavior via the new user options
+`mouse-1-click-follows-link' and `mouse-1-click-in-non-selected-windows'.
+
++++
+** require-final-newline now has two new possible values:
+
+`visit' means add a newline (as an undoable change) if it's needed
+when visiting the file.
+
+`visit-save' means add a newline (as an undoable change) if it's
+needed when visiting the file, and also add a newline if it's needed
+when saving the file.
+
++++
+** The new option mode-require-final-newline controls how certain
+major modes enable require-final-newline. Any major mode that's
+designed for a kind of file that should normally end in a newline
+sets require-final-newline based on mode-require-final-newline.
+So you can customize mode-require-final-newline to control what these
+modes do.
+++
** When the undo information of the current command gets really large
-(beyond the value of `undo-outer-limit'), Emacs asks you whether to
-discard it or keep it.
+(beyond the value of `undo-outer-limit'), Emacs discards it and warns
+you about it.
++++
** line-move-ignore-invisible now defaults to t.
++++
** In Outline mode, hide-body no longer hides lines at the top
of the file that precede the first header line.
** `apply-macro-to-region-lines' now operates on all lines that begin
in the region, rather than on all complete lines in the region.
+---
** global-whitespace-mode is a new alias for whitespace-global-mode.
+++
will start up Emacs on an initial frame of 100x20 with red background,
irrespective of geometry or background setting on the Windows registry.
+---
+** The terminal emulation code in term.el has been improved, it can
+run most curses applications now.
+
** New features in evaluation commands
+++
*** The function `eval-defun' (C-M-x) called on defface reinitializes
the face to the value specified in the defface expression.
++++
*** Typing C-x C-e twice prints the value of the integer result
in additional formats (octal, hexadecimal, character) specified
by the new function `eval-expression-print-format'. The same
function also defines the result format for `eval-expression' (M-:),
`eval-print-last-sexp' (C-j) and some edebug evaluation functions.
+---
** New input method chinese-sisheng for inputting Chinese Pinyin
characters.
++++
** New command quail-show-key shows what key (or key sequence) to type
in the current input method to input a character at point.
++++
** Convenient commands to switch buffers in a cyclic order are C-x <left>
(prev-buffer) and C-x <right> (next-buffer).
+---
** Commands winner-redo and winner-undo, from winner.el, are now bound to
C-c <left> and C-c <right>, respectively. This is an incompatible change.
+---
** Help commands `describe-function' and `describe-key' now show function
arguments in lowercase italics on displays that support it. To change the
default, customize face `help-argument-name' or redefine the function
`kill-region' if read-only are involved: it copies the text to the
kill-ring, but does not delete it.
++++
** You can now use next-error (C-x `) and previous-error to advance to
the next/previous matching line found by M-x occur.
++++
** Telnet now prompts you for a port number with C-u M-x telnet.
+++
the menu-bar, the tool-bar, the scroll-bars, tool tips, the blinking
cursor, and the fancy startup screen.
++++
+** New command line option -nbc or --no-blinking-cursor disables
+the blinking cursor on graphical terminals.
+
++++
** C-h v and C-h f commands now include a hyperlink to the C source for
variables and functions defined in C (if the C source is available).
+---
** When used interactively, `format-write-file' now asks for confirmation
before overwriting an existing file, unless a prefix argument is
supplied. This behavior is analogous to `write-file'.
++++
** You can now use Auto Revert mode to `tail' a file.
If point is at the end of a file buffer before reverting, Auto Revert
mode keeps it at the end after reverting. Similarly if point is
mode Auto Revert Tail mode. The function `auto-revert-tail-mode'
toggles this mode.
++++
** Auto Revert mode is now more careful to avoid excessive reverts and
other potential problems when deciding which non-file buffers to
revert. This matters especially if Global Auto Revert mode is enabled
that auto reverting works for Dired buffers (although this may not
work properly on all operating systems) and for the Buffer Menu.
++++
** If the new user option `auto-revert-check-vc-info' is non-nil, Auto
Revert mode reliably updates version control info (such as the version
control number in the mode line), in all version controlled buffers in
which it is active. If the option is nil, the default, then this info
only gets updated whenever the buffer gets reverted.
++++
** New command `Buffer-menu-toggle-files-only' toggles display of file
buffers only in the Buffer Menu. It is bound to `T' in Buffer Menu
mode.
+---
** M-x compile has become more robust and reliable
Quite a few more kinds of messages are recognized. Messages that are
compilation processes without affecting the environment that all
subprocesses inherit.
++++
** Grep has been decoupled from compilation mode setup.
+---
*** There's a new separate package grep.el.
+---
*** M-x grep has been adapted to new compile
Hits are fontified in green, and hits in binary files in orange. Grep buffers
can be saved and automatically revisited with the new Grep mode.
+---
*** Grep commands now have their own submenu and customization group.
++++
+*** `grep-find' is now also available under the name `find-grep' where
+people knowing `find-grep-dired' would probably expect it.
+
+---
*** The new variables `grep-window-height', `grep-auto-highlight', and
`grep-scroll-output' can be used to override the corresponding
compilation mode settings for grep commands.
++++
*** New option `grep-highlight-matches' highlightes matches in *grep*
buffer. It uses a special feature of some grep programs which accept
--color option to output markers around matches. When going to the next
buffer. Otherwise, if `grep-highlight-matches' is nil, the whole
source line is highlighted.
++++
*** New key bindings in grep output window:
SPC and DEL scrolls window up and down. C-n and C-p moves to next and
previous match in the grep window. RET jumps to the source line of
previous or next file in the grep output. TAB also jumps to the next
file.
++++
** New options `next-error-highlight' and `next-error-highlight-no-select'
specify the method of highlighting of the corresponding source line
in new face `next-error'.
++++
** A new minor mode `next-error-follow-minor-mode' can be used in
compilation-mode, grep-mode, occur-mode, and diff-mode (i.e. all the
modes that can use `next-error'). In this mode, cursor motion in the
matches, compilation errors, etc. This minor mode can be toggled with
C-c C-f.
++++
** M-x diff uses diff-mode instead of compilation-mode.
++++
** M-x compare-windows now can automatically skip non-matching text to
resync points in both windows.
+---
** New command `strokes-global-set-stroke-string'.
This is like `strokes-global-set-stroke', but it allows you to bind
the stroke directly to a string to insert. This is convenient for
** Gnus package
+---
*** Gnus now includes Sieve and PGG
Sieve is a library for managing Sieve scripts. PGG is a library to handle
PGP/MIME.
+---
*** There are many news features, bug fixes and improvements.
See the file GNUS-NEWS or the node "Oort Gnus" in the Gnus manual for details.
+++
** Desktop package
++++
*** Desktop saving is now a minor mode, desktop-save-mode. Variable
desktop-enable is obsolete. Customize desktop-save-mode to enable desktop
saving.
+---
*** Buffers are saved in the desktop file in the same order as that in the
buffer list.
++++
+*** The desktop package can be customized to restore only some buffers immediately,
+remaining buffers are restored lazily (when Emacs is idle).
+
++++
*** New commands:
- desktop-revert reverts to the last loaded desktop.
- desktop-change-dir kills current desktop and loads a new.
- desktop-save-in-desktop-dir saves desktop in the directory from which
it was loaded.
+ - desktop-lazy-complete runs the desktop load to completion.
+ - desktop-lazy-abort aborts lazy loading of the desktop.
+---
*** New customizable variables:
- desktop-save. Determins whether the desktop should be saved when it is
killed.
- - desktop-file-name-format.
+ - desktop-file-name-format. Format in which desktop file names should be saved.
- desktop-path. List of directories in which to lookup the desktop file.
- - desktop-locals-to-save.
- - desktop-globals-to-clear.
- - desktop-clear-preserve-buffers-regexp.
+ - desktop-locals-to-save. List of local variables to save.
+ - desktop-globals-to-clear. List of global variables that `desktop-clear' will clear.
+ - desktop-clear-preserve-buffers-regexp. Regexp identifying buffers that `desktop-clear'
+ should not delete.
+ - desktop-restore-eager. Number of buffers to restore immediately. Remaining buffers are
+ restored lazily (when Emacs is idle).
+ - desktop-lazy-verbose. Verbose reporting of lazily created buffers.
+ - desktop-lazy-idle-delay. Idle delay before starting to create buffers.
++++
*** New command line option --no-desktop
+---
*** New hooks:
- desktop-after-read-hook run after a desktop is loaded.
- desktop-no-desktop-file-hook run when no desktop file is found.
and `save-place-skip-check-regexp' allow further fine-tuning of this
feature.
++++
** You can have several Emacs servers on the same machine.
% emacs --eval '(setq server-name "foo")' -f server-start &
cursor will be displayed in the fringe when positioned on that newline.
The new user option 'overflow-newline-into-fringe' may be set to nil to
-revert to the old behaviour of continuing such lines.
+revert to the old behavior of continuing such lines.
+++
** The buffer boundaries (i.e. first and last line in the buffer) may
arrow bitmaps in right fringe. To show just the angle bitmaps in the
left fringe, but no arrow bitmaps, use ((top . left) (bottom . left)).
++++
** New command `display-local-help' displays any local help at point
in the echo area. It is bound to `C-h .'. It normally displays the
same string that would be displayed on mouse-over using the
`help-echo' property, but, in certain cases, it can display a more
keyboard oriented alternative.
++++
** New user option `help-at-pt-display-when-idle' allows to
automatically show the help provided by `display-local-help' on
point-over, after suitable idle time. The amount of idle time is
determined by the user option `help-at-pt-timer-delay' and defaults
to one second. This feature is turned off by default.
+---
** New commands `scan-buf-next-region' and `scan-buf-previous-region'
move to the start of the next (previous, respectively) region with
non-nil help-echo property and display any help found there in the
enclosed in single quotes and preceded by `info anchor' or `Info
anchor' (in addition to earlier `info node' and `Info node').
++++
** The max size of buffers and integers has been doubled.
On 32bit machines, it is now 256M (i.e. 268435455).
now reads arguments for the function interactively if it is
an interactively callable function.
-
+---
** sql changes.
*** The variable `sql-product' controls the highlightng of different
appropriate sql-interactive-mode wrapper for the current setting of
`sql-product'.
+---
** M-x view-file and commands that use it now avoid interfering
with special modes such as Tar mode.
** Enhancements to apropos commands:
++++
*** The apropos commands now accept a list of words to match.
When more than one word is specified, at least two of those words must
be present for an item to match. Regular expression matching is still
available.
++++
*** The new option `apropos-sort-by-scores' causes the matching items
to be sorted according to their score. The score for an item is a
number calculated to indicate how well the item matches the words or
since there are situations where one or the other will shut down
the operating system or your X server.
+---
** New minor mode, Visible mode, toggles invisibility in the current buffer.
When enabled, it makes all invisible text visible. When disabled, it
restores the previous value of `buffer-invisibility-spec'.
+---
** New command `kill-whole-line' kills an entire line at once.
By default, it is bound to C-S-<backspace>.
+---
** New commands to operate on pairs of open and close characters:
`insert-pair', `delete-pair', `raise-sexp'.
++++
** A prefix argument of C-M-q in Emacs Lisp mode pretty-printifies the
list starting after point.
** Dired mode:
+---
*** New faces dired-header, dired-mark, dired-marked, dired-flagged,
dired-ignored, dired-directory, dired-symlink, dired-warning
introduced for Dired mode instead of font-lock faces.
special treatment in `dired-do-shell-command'.
+++
-*** Dired's v command now runs external viewers to view certain
-types of files. The variable `dired-view-command-alist' controls
-what external viewers to use and when.
-
*** In Dired, the w command now copies the current line's file name
into the kill ring. With a zero prefix arg, copies absolute file names.
+++
** Dired-x:
++++
*** Omitting files is now a minor mode, dired-omit-mode. The mode toggling
command is bound to M-o. A new command dired-mark-omitted, bound to M-O,
marks omitted files. The variable dired-omit-files-p is obsoleted, use the
** Info mode:
++++
*** A numeric prefix argument of `info' selects an Info buffer
-with the number appended to the *info* buffer name.
+with the number appended to the *info* buffer name (e.g. "*info*<2>").
-*** Regexp isearch (C-M-s and C-M-r) can search through multiple nodes.
-Failed isearch wraps to the top/final node.
+---
+*** isearch in Info uses Info-search and searches through multiple nodes.
+Before leaving the initial Info node isearch fails once with the error
+message [initial node], and with subsequent C-s/C-r continues through
+other nodes. When isearch fails for the rest of the manual, it wraps
+aroung the whole manual to the top/final node. The user option
+`Info-isearch-search' controls whether to use Info-search for isearch,
+or the default isearch search function that wraps around the current
+Info node.
*** New search commands: `Info-search-case-sensitively' (bound to S),
`Info-search-backward', and `Info-search-next' which repeats the last
search without prompting for a new search string.
+*** New command `Info-history-forward' (bound to r and new toolbar icon)
+moves forward in history to the node you returned from after using
+`Info-history-back' (renamed from `Info-last').
+
*** New command `Info-history' (bound to L) displays a menu of visited nodes.
*** New command `Info-toc' (bound to T) creates a node with table of contents
---
*** Info-index offers completion.
+---
** Support for the SQLite interpreter has been added to sql.el by calling
'sql-sqlite'.
*** The new command bibtex-copy-summary-as-kill pushes summary
of BibTeX entry to kill ring (bound to C-c C-t).
++++
** When display margins are present in a window, the fringes are now
displayed between the margins and the buffer's text area, rather than
at the edges of the window.
++++
** A window may now have individual fringe and scroll-bar settings,
in addition to the individual display margin settings.
horizontally or vertically, a saved window configuration is restored,
or when the frame is resized.
++++
** New functions frame-current-scroll-bars and window-current-scroll-bars.
These functions return the current locations of the vertical and
horizontal scroll bars in a frame or window.
----
++++
** Emacs now supports drag and drop for X. Dropping a file on a window
opens it, dropping text inserts the text. Dropping a file on a dired
buffer copies or moves the file to that directory.
++++
** Under X, mouse-wheel-mode is turned on by default.
** The X resource useXIM can be used to turn off use of XIM, which may
If the configure option `--without-xim' was used to turn off use of
XIM by default, the X resource useXIM can be used to turn it on.
++++
** `undo-only' does an undo which does not redo any previous undo.
+---
** `uniquify-strip-common-suffix' tells uniquify to prefer
`file|dir1' and `file|dir2' to `file|dir1/subdir' and `file|dir2/subdir'.
++++
** If the user visits a file larger than `large-file-warning-threshold',
Emacs prompts her for confirmation.
+---
** A UTF-7 coding system is available in the library `utf-7'.
+---
** GUD mode has its own tool bar for controlling execution of the inferior
and other common debugger commands.
+---
** recentf changes.
The recent file list is now automatically cleanup when recentf mode is
enabled. The new option `recentf-auto-cleanup' controls when to do
automatic cleanup.
+The `recentf-keep' option replaces `recentf-keep-non-readable-files-p'
+and provides a more general mechanism to customize which file names to
+keep in the recent list.
+
With the more advanced option: `recentf-filename-handler', you can
specify a function that transforms filenames handled by recentf. For
example, if set to `file-truename', the same file will not be in the
recent list with different symbolic links.
-To follow naming convention, `recentf-keep-non-readable-files-flag'
-and `recentf-menu-append-commands-flag' respectively replace the
-misnamed options `recentf-keep-non-readable-files-p' and
-`recentf-menu-append-commands-p'. The old names remain available as
-aliases, but have been marked obsolete.
+To follow naming convention, `recentf-menu-append-commands-flag'
+replaces the misnamed option `recentf-menu-append-commands-p'. The
+old name remains available as alias, but has been marked obsolete.
++++
** The default for the paper size (variable ps-paper-type) is taken
from the locale.
++++
** Init file changes
You can now put the init files .emacs and .emacs_SHELL under
~/.emacs.d or directly under ~. Emacs will find them in either place.
+---
** partial-completion-mode now does partial completion on directory names.
+---
** skeleton.el now supports using - to mark the skeleton-point without
interregion interaction. @ has reverted to only setting
skeleton-positions and no longer sets skeleton-point. Skeletons
`--display' which tell Emacs respectively to evaluate the given elisp
expression and to use the given display when visiting files.
++++
** User option `server-mode' can be used to start a server process.
+++
When the file is maintained under version control, that information
appears between the position information and the major mode.
++++
** C-x s (save-some-buffers) now offers an option `d' to diff a buffer
against its file, so you can see what changes you would be saving.
want to make the buffer writable. (As root, you can in fact alter the
file.)
++++
** The new command `revert-buffer-with-coding-system' (C-x RET r)
revisits the current file using a coding system that you specify.
++++
** The new command `recode-file-name' changes the encoding of the name
of a file.
specified for that character, the commands by default customize those
faces.
+---
** New language environments: French, Ukrainian, Tajik,
Bulgarian, Belarusian, Ukrainian, UTF-8, Windows-1255, Welsh, Latin-6,
Latin-7, Lithuanian, Latvian, Swedish, Slovenian, Croatian, Georgian,
Italian, Russian, Malayalam, Tamil, Russian, Chinese-EUC-TW. (Set up
automatically according to the locale.)
+---
** Indian support has been updated.
The in-is13194 coding system is now Unicode-based. CDAC fonts are
assumed. There is a framework for supporting various
and windows-1251 are preloaded since the former is so common and the
latter is used by GNU locales.
+---
** The utf-8/16 coding systems have been enhanced.
By default, untranslatable utf-8 sequences are simply composed into
single quasi-characters. User option `utf-translate-cjk-mode' (it is
one-dimensional internal charsets, specifically the ISO-8859 ones.
The utf-16 coding system is affected similarly.
+---
** New variable `utf-translate-cjk-unicode-range' controls which
Unicode characters to translate in `utf-translate-cjk-mode'.
+---
** iso-10646-1 (`Unicode') fonts can be used to display any range of
characters encodable by the utf-8 coding system. Just specify the
fontset appropriately.
+---
** New command `ucs-insert' inserts a character specified by its
unicode.
mule-unicode-0100-24ff charsets) on decoding. Note that this mode
will often effectively clobber data with an iso-2022 encoding.
+---
** There is support for decoding Greek and Cyrillic characters into
either Unicode (the mule-unicode charsets) or the iso-8859 charsets,
when possible. The latter are more space-efficient. This is
controlled by user option utf-fragment-on-decoding.
++++
** The new command `set-file-name-coding-system' (C-x RET F) sets
coding system for encoding and decoding file names. A new menu item
(Options->Mule->Set Coding Systems->For File Name) invokes this
** Dialogs for Lucid/Athena and Lesstif/Motif now pops down when pressing
ESC, like they do for Gtk+, Mac and W32.
+---
+** Dialogs and menus pop down when pressing C-g.
+
---
** The menu item "Open File..." has been split into two items, "New File..."
and "Open File...". "Open File..." now opens only existing files. This is
`auto-hscroll-mode'. The old name is still available as an alias.
** TeX modes:
+
*** C-c C-c prompts for a command to run, and tries to offer a good default.
+
+++
*** The user option `tex-start-options-string' has been replaced
by two new user options: `tex-start-options', which should hold
command-line options to feed to TeX, and `tex-start-commands' which should hold
TeX commands to use at startup.
+
+---
*** verbatim environments are now highlighted in courier by font-lock
and super/sub-scripts are made into super/sub-scripts.
++++
*** New major mode doctex-mode for *.dtx files.
+++
be selected only when it is active). The default is nil, so that this
feature is not enabled.
++++
** On X, when the window manager requires that you click on a frame to
select it (give it focus), the selected window and cursor position
normally changes according to the mouse click position. If you set
buffers to search by their filename. Internally, Occur mode has been
rewritten, and now uses font-lock, among other changes.
++++
** 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.
+---
** New user option `query-replace-skip-read-only': when non-nil,
`query-replace' and related functions simply ignore
a match if part of it has a read-only property.
++++
** When used interactively, the commands `query-replace-regexp' and
`replace-regexp' allow \,expr to be used in a replacement string,
where expr is an arbitrary Lisp expression evaluated at replacement
replacement string to specify a position where the replacement string
can be edited for each replacement.
++++
** query-replace uses isearch lazy highlighting when the new user option
`query-replace-lazy-highlight' is non-nil.
+---
** The current match in query-replace is highlighted in new face
`query-replace' which by default inherits from isearch face.
mouse, so that highlighting disappears when you press a key. You can
also disable mouse highlighting.
++++
** You can now customize if selecting a region by dragging the mouse
shall not copy the selected text to the kill-ring by setting the new
variable mouse-drag-copy-region to nil.
You can go back to that backup value by selecting "Use Backup Value"
under the "[State]" button.
+---
** The new customization type `float' specifies numbers with floating
point (no integers are allowed).
previous mark, i.e. C-u C-SPC C-SPC C-SPC ... cycles through the
mark ring. Use C-u C-u C-SPC to set the mark immediately after a jump.
++++
** Movement commands `beginning-of-buffer', `end-of-buffer',
`beginning-of-defun', `end-of-defun' do not set the mark if the mark
is already active in Transient Mark mode.
** mouse-wheels can now scroll a specific fraction of the window
(rather than a fixed number of lines) and the scrolling is `progressive'.
+---
** Unexpected yanking of text due to accidental clicking on the mouse
wheel button (typically mouse-2) during wheel scrolling is now avoided.
-This behaviour can be customized via the mouse-wheel-click-event and
+This behavior can be customized via the mouse-wheel-click-event and
mouse-wheel-inhibit-click-time variables.
+++
of `cursor-in-non-selected-windows' in the buffer that the cursor
appears in.
++++
** The variable `cursor-in-non-selected-windows' can now be set to any
of the recognized cursor types.
prompts for a year and a week number, and moves to the first
day of that ISO week.
+---
+** The new variable `calendar-minimum-window-height' affects the
+window generated by the function `generate-calendar-window'.
+
---
** The functions `holiday-easter-etc' and `holiday-advent' now take
optional arguments, in order to only report on the specified holiday
rather than all. This makes customization of variables such as
`christian-holidays' simpler.
+---
** The function `simple-diary-display' now by default sets a header line.
This can be controlled through the variables `diary-header-line-flag'
and `diary-header-line-format'.
`appt-display-format' controls how reminders are displayed, replacing
appt-issue-message, appt-visible, and appt-msg-window.
++++
** The new functions `diary-from-outlook', `diary-from-outlook-gnus',
and `diary-from-outlook-rmail' can be used to import diary entries
from Outlook-format appointments in mail messages. The variable
** VC Changes
++++
*** The key C-x C-q no longer checks files in or out, it only changes
the read-only state of the buffer (toggle-read-only). We made this
change because we held a poll and found that many users were unhappy
allows you to specify a compression level using the "-z#" option for
CVS.
++++
*** New backends for Subversion and Meta-CVS.
** EDiff changes.
bound to keys to get this feature without toggling a mode.
Contributed by Kevin Ryde.
-*** Better control over require-final-newline.
-The variable that controls how to handle a final newline when the
-buffer is saved, require-final-newline, is now customizable on a
-per-mode basis through c-require-final-newline. The default is to set
-it to t only in languages that mandate a final newline in source files
-(C, C++ and Objective-C).
+*** Better control over require-final-newline. The variable that
+controls how to handle a final newline when the buffer is saved,
+require-final-newline, is now customizable on a per-mode basis through
+c-require-final-newline. That is a list of modes, and only those
+modes set require-final-newline. By default that's C, C++ and
+Objective-C.
+
+The specified modes set require-final-newline based on
+mode-require-final-newline, as usual.
*** Format change for syntactic context elements.
The elements in the syntactic context returned by c-guess-basic-syntax
The function c-toggle-syntactic-indentation can be used to toggle
syntactic indentation.
++++
** The command line option --no-windows has been changed to
--no-window-system. The old one still works, but is deprecated.
+++
** 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.
+filling can break lines. The value is now normally a list of
+functions, but it can also be a single function, for compatibility.
+
+We provide two sample predicates, fill-single-word-nobreak-p and
+fill-french-nobreak-p, for use in the value of fill-nobreak-predicate.
+++
** New user option `add-log-always-start-new-record'.
Adapt this to match the format of any compiler directives you use.
Lines that match are never indented, and are given distinctive font-locking.
----
++++
** F90 mode has new navigation commands `f90-end-of-block',
`f90-beginning-of-block', `f90-next-block', `f90-previous-block'.
+---
** F90 mode now has support for hs-minor-mode (hideshow).
It cannot deal with every code format, but ought to handle a sizeable
majority.
to the text before point. If there is text in the buffer after point,
it remains unchanged.
+---
** Enhanced visual feedback in *Completions* buffer.
Completions lists use faces to highlight what all completions
---
** Rmail now displays 5-digit message ids in its summary buffer.
++++
+** Support for `movemail' from GNU mailutils was added to Rmail.
+This version of `movemail' allows to read mail from a wide range of
+mailbox formats, including remote POP3 and IMAP4 mailboxes with or
+without TLS encryption. If GNU mailutils is installed on the system
+and its version of `movemail' can be found in exec-path, it will be
+used instead of the native one.
+
---
** On MS Windows, the "system caret" now follows the cursor.
This enables Emacs to work better with programs that need to track
`list-colors-display' shows the list of System color names, in case
you wish to use them in other faces.
+---
+** On MS Windows NT/W2K/XP, Emacs uses Unicode for clipboard operations.
+Those systems use Unicode internally, so this allows Emacs to share
+multilingual text with other applications. On other versions of
+MS Windows, Emacs now uses the appropriate locale coding-system, so
+the clipboard should work correctly for your local language without
+any customizations.
+
+++
** Under X11, it is possible to swap Alt and Meta (and Super and Hyper).
The new variables `x-alt-keysym', `x-hyper-keysym', `x-meta-keysym',
"checkout", "update" or "commit". That means using cvs diff options
-rBASE -rHEAD.
+---
** New variable `hs-set-up-overlay' allows customization of the overlay
used to effect hiding for hideshow minor mode. Integration with isearch
handles the overlay property `display' specially, preserving it during
temporary overlay showing in the course of an isearch operation.
+** New command `recode-region' decodes the region again by a specified
+coding system.
+
\f
-* New modes and packages in Emacs 21.4
+* New modes and packages in Emacs 22.1
++++
** The new package conf-mode.el handles thousands of configuration files, with
varying syntaxes for comments (;, #, //, /* */ or !), assignment (var = value,
var : value, var value or keyword var value) and sections ([section] or
.config, .properties (Java), .desktop (KDE/Gnome), .ini and many others are
recognized.
-** The new package password.el provide a password cache and expiring mechanism.
-
** The new package dns-mode.el add syntax highlight of DNS master files.
The key binding C-c C-s (`dns-mode-soa-increment-serial') can be used
to increment the SOA serial.
** The thumbs.el package allows you to preview image files as thumbnails
and can be invoked from a Dired buffer.
++++
** The new python.el package is used to edit Python and Jython programs.
** The URL package (which had been part of W3) is now part of Emacs.
In addition, when ending or calling a macro with C-x e, the macro can
be repeated immediately by typing just the `e'. You can customize
-this behaviour via the variable kmacro-call-repeat-key and
+this behavior via the variable kmacro-call-repeat-key and
kmacro-call-repeat-with-arg.
Keyboard macros can now be debugged and edited interactively.
`rsync' to do the copying).
Shell connections can be acquired via `rsh', `ssh', `telnet' and also
-`su' and `sudo'.
+`su' and `sudo'. Ange-FTP is still supported via the `ftp' method.
+
+If you want to disable Tramp you should set
+
+ (setq tramp-default-method "ftp")
---
** The new global minor mode `file-name-shadow-mode' modifies the way
** New package benchmark.el contains simple support for convenient
timing measurements of code (including the garbage collection component).
+---
** The new Lisp library fringe.el controls the appearance of fringes.
** `cfengine-mode' is a major mode for editing GNU Cfengine
configuration files.
\f
-* Lisp Changes in Emacs 21.4
+* Incompatible Lisp Changes in Emacs 22.1
+
+** The new interactive-specification `G' reads a file name
+much like `F', but if the input is a directory name (even defaulted),
+it returns just the directory name.
+
++++
+** `suppress-keymap' now works by remapping `self-insert-command' to
+the command `undefined'. (In earlier Emacs versions, it used
+`substitute-key-definition' to rebind self inserting characters to
+`undefined'.)
+
++++
+** Mode line display ignores text properties as well as the
+:propertize and :eval forms in the value of a variable whose
+`risky-local-variable' property is nil.
+\f
+* Lisp Changes in Emacs 22.1
+
++++
+** An element of buffer-undo-list can now have the form (apply FUNNAME
+. ARGS), where FUNNAME is a symbol other than t or nil. That stands
+for a high-level change that should be undone by evaluating (apply
+FUNNAME ARGS).
+
+These entries can also have the form (apply DELTA BEG END FUNNAME . ARGS)
+which indicates that the change which took place was limited to the
+range BEG...END and increased the buffer size by DELTA.
+
++++
+** The line-move, scroll-up, and scroll-down functions will now
+modify the window vscroll to scroll through display rows that are
+taller that the height of the window, for example in the presense of
+large images. To disable this feature, Lisp code may bind the new
+variable `auto-window-vscroll' to nil.
+
++++
+** If a buffer sets buffer-save-without-query to non-nil,
+save-some-buffers will always save that buffer without asking
+(if it's modified).
+++
** The function symbol-file tells you which file defined
a certain function or variable.
++++
** Lisp code can now test if a given buffer position is inside a
clickable link with the new function `mouse-on-link-p'. This is the
function used by the new `mouse-1-click-follows-link' functionality.
+++
** New functions `make-progress-reporter', `progress-reporter-update',
-`progress-reporter-force-update' and `progress-reporter-done' provide
-a simple and efficient way for a command to present progress messages
-for the user.
+`progress-reporter-force-update', `progress-reporter-done', and
+`dotimes-with-progress-reporter' provide a simple and efficient way for
+a command to present progress messages for the user.
---
** To manipulate the File menu using easy-menu, you must specify the
the up-event that was discarded in case the last key sequence read for a
previous 'k' or 'K' argument was a down-event; otherwise nil is used.
++++
** Function `translate-region' accepts also a char-table as TABLE
argument.
been renamed to `disabled-command-function'. The variable
`disabled-command-hook' has been kept as an obsolete alias.
++++
** Function `compute-motion' now calculates the usable window
width if the WIDTH argument is nil. If the TOPOS argument is nil,
the usable window height and width is used.
** `visited-file-modtime' and `calendar-time-from-absolute' now return
a list of two integers, instead of a cons.
++++
** If a command sets transient-mark-mode to `only', that
enables Transient Mark mode for the following command only.
During that following command, the value of transient-mark-mode
(kbd "C-x C-f") => "\^x\^f"
++++
** The sentinel is now called when a network process is deleted with
delete-process. The status message passed to the sentinel for a
deleted network process is "deleted". The message passed to the
sentinel when the connection is closed by the remote peer has been
changed to "connection broken by remote peer".
++++
** If the buffer's undo list for the current command gets longer than
undo-outer-limit, garbage collection empties it. This is to prevent
it from using up the available memory and choking Emacs.
click-event-style position information for a given visible buffer
position or for a given window pixel coordinate.
++++
** skip-chars-forward and skip-chars-backward now handle
character classes such as [:alpha:], along with individual characters
and ranges.
++++
** Function pos-visible-in-window-p now returns the pixel coordinates
and partial visiblity state of the corresponding row, if the PARTIALLY
arg is non-nil.
++++
** The function `eql' is now available without requiring the CL package.
+++
A newline may now have line-height and line-spacing text or overlay
properties that control the height of the corresponding display row.
-If the line-height property value is 0, the newline does not
+If the line-height property value is t, the newline does not
contribute to the height of the display row; instead the height of the
newline glyph is reduced. Also, a line-spacing property on this
newline is ignored. This can be used to tile small images or image
is calculated by multiplying the default frame line height by the
given value.
-If the line-height property value is a cons (RATIO . FACE), the
+If the line-height property value is a cons (FACE . RATIO), the
minimum line height is calculated as RATIO * height of named FACE.
RATIO is int or float. If FACE is t, it specifies the current face.
+If the line-height property value is a cons (nil . RATIO), the line
+height is calculated as RATIO * actual height of the line's contents.
+
+If the line-height value is a cons (HEIGHT . TOTAL), HEIGHT specifies
+the line height as described above, while TOTAL is any of the forms
+described above and specifies the total height of the line, causing a
+varying number of pixels to be inserted after the line to make it line
+exactly that many pixels high.
+
If the line-spacing property value is an positive integer, the value
is used as additional pixels to insert after the display line; this
overrides the default frame line-spacing and any buffer local value of
If the line-spacing property may be a float or cons, the line spacing
is calculated as specified above for the line-height property.
-If the line-spacing value is a cons (total . SPACING) where SPACING is
-any of the forms described above, the value of SPACING is used as the
-total height of the line, i.e. a varying number of pixels are inserted
-after each line to make each line exactly that many pixels high.
-
++++
** The buffer local line-spacing variable may now have a float value,
which is used as a height relative to the default frame line height.
position. The cursor may now be placed on any character of such
strings by giving that character a non-nil `cursor' text property.
++++
** New macro with-local-quit temporarily sets inhibit-quit to nil for use
around potentially blocking or long-running code in timers
and post-command-hooks.
previously created bitmap, or restore a built-in bitmap.
*** New function 'set-fringe-bitmap-face' can now be used to set a
-specific face to be used for a specific fringe bitmap. Normally,
-this should be a face derived from the `fringe' face, specifying
-the foreground color as the desired color of the bitmap.
+specific face to be used for a specific fringe bitmap. The face is
+automatically merged with the `fringe' face, so normally, the face
+should only specify the foreground color of the bitmap.
*** There are new display properties, left-fringe and right-fringe,
that can be used to show a specific bitmap in the left or right fringe
Format is 'display '(left-fringe BITMAP [FACE]), where BITMAP is a
symbol identifying a fringe bitmap, either built-in or defined with
`define-fringe-bitmap', and FACE is an optional face name to be used
-for displaying the bitmap.
+for displaying the bitmap instead of the default `fringe' face.
+When specified, FACE is automatically merged with the `fringe' face.
*** New function `fringe-bitmaps-at-pos' returns the current fringe
bitmaps in the display line at a given buffer position.
++++
** Multiple overlay arrows can now be defined and managed via the new
variable `overlay-arrow-variable-list'. It contains a list of
varibles which contain overlay arrow position markers, including
`format' are now documented. Some flags that were accepted but not
implemented (such as "*") are no longer accepted.
++++
** New function `macroexpand-all' expands all macros in a form.
It is similar to the Common-Lisp function of the same name.
One difference is that it guarantees to return the original argument
** `declare' is now a macro. This change was made mostly for
documentation purposes and should have no real effect on Lisp code.
++++
** The new hook `before-save-hook' is invoked by `basic-save-buffer'
before saving buffers. This allows packages to perform various final
tasks, for example; it can be used by the copyright package to make
string. The old behavior is available if you call
`insert-for-yank-1' instead.
++++
** New function `get-char-property-and-overlay' accepts the same
arguments as `get-char-property' and returns a cons whose car is the
return value of `get-char-property' called with those arguments and
** Mouse event enhancements:
++++
*** Mouse clicks on fringes now generates left-fringe or right-fringes
events, rather than a text area click event.
++++
*** Mouse clicks in the left and right marginal areas now includes a
sensible buffer position corresponding to the first character in the
corresponding text row.
++++
*** Function `mouse-set-point' now works for events outside text area.
+++
click, the x and y pixel coordinates relative to the top left corner
of that object, and the total width and height of that object.
++++
** New function `force-window-update' can initiate a full redisplay of
one or all windows. Normally, this is not needed as changes in window
contents are detected automatically. However, certain implicit
buffer is multibyte, the output of the process is at first converted
to multibyte by `string-to-multibyte' then inserted in the buffer.
Previously, it was converted to multibyte by `string-as-multibyte',
-which was not compatible with the behaviour of file reading.
+which was not compatible with the behavior of file reading.
+++
** New function `string-to-multibyte' converts a unibyte string to a
#!/usr/bin/emacs --script
++++
** The option --directory DIR now modifies `load-path' immediately.
Directories are added to the front of `load-path' in the order they
appear on the command line. For example, with this command line:
** The functions all-completions and try-completion now accept lists
of strings as well as hash-tables additionally to alists, obarrays
and functions. Furthermore, the function `test-completion' is now
-exported to Lisp.
+exported to Lisp. The keys in alists and hash tables may be either
+strings or symbols, which are automatically converted with to strings.
---
** When pure storage overflows while dumping, Emacs now prints how
** The new variable `read-file-name-function' can be used by lisp code
to override the internal read-file-name function.
-
++++
** The new variable `read-file-name-completion-ignore-case' specifies
whether completion ignores case when reading a file name with the
`read-file-name' function.
The `insert-for-yank' function looks for a yank-handler property on
the first character on its string argument (typically the first
element on the kill-ring). If a yank-handler property is found,
-the normal behaviour of `insert-for-yank' is modified in various ways:
+the normal behavior of `insert-for-yank' is modified in various ways:
When FUNCTION is present and non-nil, it is called instead of `insert'
to insert the string. FUNCTION takes one argument--the object to insert.
called with two arguments, the start and end of the current region.
FUNCTION may set `yank-undo-function' to override the UNDO value.
++++
*** The functions kill-new, kill-append, and kill-region now have an
optional argument to specify the yank-handler text property to put on
the killed text.
++++
*** The function yank-pop will now use a non-nil value of the variable
`yank-undo-function' (instead of delete-region) to undo the previous
yank or yank-pop command (or a call to insert-for-yank). The function
specification language, which can be used to do this test for faces
defined with defface.
+---
** The function face-differs-from-default-p now truly checks whether the
given face displays differently from the default face or not (previously
it did only a very cursory check).
** New functions face-attribute-relative-p and merge-face-attribute
help with handling relative face attributes.
++++
** The priority of faces in an :inherit attribute face-list is reversed.
If a face contains an :inherit attribute with a list of faces, earlier
faces in the list override later faces in the list; in previous releases
recommended, but may be necessary for specific applications, such as
speech synthesis.
+---
*** Adaptive read buffering of subprocess output.
On some systems, when emacs reads the output from a subprocess, the
output data is read in very small blocks, potentially resulting in
-very poor performance. This behaviour can be remedied to some extent
+very poor performance. This behavior can be remedied to some extent
by setting the new variable process-adaptive-read-buffering to a
non-nil value (the default), as it will automatically delay reading
from such processes, to allowing them to produce more output before
+++
** New function `call-process-shell-command'.
++++
** New function `process-file'.
This is similar to `call-process', but obeys file handlers. The file
** The new mode-line construct `(:propertize ELT PROPS...)' can be
used to add text properties to mode-line elements.
-+++
-** Mode line display ignores text properties as well as the
-:propertize and :eval forms in the value of a variable whose
-`risky-local-variable' property is nil.
-
+++
** The new `%i' and `%I' constructs for `mode-line-format' can be used
to display the size of the accessible part of the buffer on the mode
** describe-vector now takes a second argument `describer' which is
called to print the entries' values. It defaults to `princ'.
++++
** defcustom and other custom declarations now use a default group
(the last prior group defined in the same file) when no :group was given.
The Windows specific variable w32-system-coding-system, which was
formerly used for that purpose is now an alias for locale-coding-system.
+---
** Functions y-or-n-p, read-char, read-key-sequence and the like, that
display a prompt but don't use the minibuffer, now display the prompt
using the text properties (esp. the face) of the prompt string.
** New function x-send-client-message sends a client message when
running under X.
++++
** Arguments for remove-overlays are now optional, so that you can remove
all overlays in the buffer by just calling (remove-overlay).
*** The TCL package tcl-mode.el was replaced by tcl.el.
This was actually done in Emacs-21.1, and was not documented.
++++
*** The new package button.el implements simple and fast `clickable buttons'
in emacs buffers. `buttons' are much lighter-weight than the `widgets'
implemented by widget.el, and can be used by lisp code that doesn't
If you want the old behavior, set selection-coding-system to
compound-text, which may be significantly more efficient. Using
compound-text-with-extensions seems to be necessary only for decoding
-text from applications under XFree86 4.2, whose behaviour is actually
+text from applications under XFree86 4.2, whose behavior is actually
contrary to the compound text specification.
\f
this feature is enabled subsequent lines in the buffer will be correctly
refontified to reflect their new syntactic context. Previously, only the line
containing the deleted character would be refontified and you would have to use
-the command M-g M-g (font-lock-fontify-block) to refontify some lines.
+the command M-o M-o (font-lock-fontify-block) to refontify some lines.
As a consequence of this new feature, two other variables have changed: