\f
* Changes in Emacs 21.4
-** line-move-ignore-invisible now defaults to t.
+** 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.
-** In Outline mode, hide-body no longer hides lines at the top
-of the file that precede the first header line.
+** You can now follow links by clicking Mouse-1 on the link.
-+++
-** `set-auto-mode' now gives the interpreter magic line (if present)
-precedence over the file name. Likewise an <?xml or <!DOCTYPE declaration
-will give the buffer XML or SGML mode, based on the new var
-`magic-mode-alist'.
+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.
-+++
-** New function `looking-back' checks whether a regular expression matches
-the text before point. Specifying the LIMIT argument bounds how far
-back the match can start; this is a way to keep it from taking too long.
+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
+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
+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
+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
+just need to press the Mouse-1 button a little longer than a normal
+click (i.e. press and hold the Mouse-1 button for half a second before
+you release it).
+
+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'.
+++
-** New functions `make-progress-reporter', `progress-reporter-update',
-`progress-reporter-force-update' and `progress-reporter-done' provide
-a simple and efficient way of printing progress messages to the user.
+** 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.
+
+** 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.
+++
** In Enriched mode, `set-left-margin' and `set-right-margin' are now
marks omitted files. The variable dired-omit-files-p is obsoleted, use the
mode toggling function instead.
++++
+** find-file-read-only visits multiple files in read-only mode,
+when the file name contains wildcard characters.
+
++++
+** find-alternate-file replaces the current file with multiple files,
+when the file name contains wildcard characters.
+
+** FFAP
+
++++
+*** New ffap commands and keybindings: C-x C-r (`ffap-read-only'),
+C-x C-v (`ffap-alternate-file'), C-x C-d (`ffap-list-directory'),
+C-x 4 r (`ffap-read-only-other-window'), C-x 4 d (`ffap-dired-other-window'),
+C-x 5 r (`ffap-read-only-other-frame'), C-x 5 d (`ffap-dired-other-frame').
+
+---
+*** FFAP accepts wildcards in a file name by default. C-x C-f passes
+it to `find-file' with non-nil WILDCARDS argument, which visits
+multiple files, and C-x d passes it to `dired'.
+
** Info mode:
*** A numeric prefix argument of `info' selects an Info buffer
point according to context (bound to M-tab).
*** The new commands bibtex-find-entry and bibtex-find-crossref
-locate entries and crossref'd entries. Crossref fields are clickable
-(bound to mouse-2, RET).
+locate entries and crossref'd entries (bound to C-c C-s and C-c C-x).
+Crossref fields are clickable (bound to mouse-2, RET).
*** In BibTeX mode the command fill-paragraph (bound to M-q) fills
individual fields of a BibTeX entry.
-*** The new command bibtex-validate-globally checks for duplicate keys
-in multiple BibTeX files. See also the new variables bibtex-files
-and bibtex-file-path.
+*** The new variables bibtex-files and bibtex-file-path define a set
+of BibTeX files that are searched for entry keys.
-*** The new command bibtex-find-entry-globally searches BibTeX entries
+*** The new command bibtex-validate-globally checks for duplicate keys
in multiple BibTeX files.
*** The new command bibtex-copy-summary-as-kill pushes summary
+++
** For Gtk+ version 2.4, you can make Emacs use the old file dialog
-by setting the variable `use-old-gtk-file-dialog' to t. Default is to use
+by setting the variable `x-use-old-gtk-file-dialog' to t. Default is to use
the new dialog.
+++
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.
+
+++
** Emacs normally highlights mouse sensitive text whenever the mouse
is over the text. By setting the new variable `mouse-highlight', you
C-M-h (mark-defun) repeatedly, the marked region extends each time, so
you can mark the next two sexps with M-C-SPC M-C-SPC, for example.
This feature also works for mark-end-of-sentence, if you bind that to
-a key.
+a key. It also extends the region when the mark is active in Transient
+Mark mode, regardless of the last command. To start a new region with
+one of marking commands in Transient Mark mode, you can deactivate the
+active region with C-g, or set the new mark with C-SPC.
+++
** Some commands do something special in Transient Mark mode when the
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.
+
+++
** In the *Occur* buffer, `o' switches to it in another window, and
C-o displays the current line's occurrence in another window without
---
** The functions `holiday-easter-etc' and `holiday-advent' now take
-arguments, and only report on the specified holiday rather than all.
-This makes customization of the variable `christian-holidays' simpler,
-but existing customizations may need to be updated.
+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'
It cannot deal with every code format, but ought to handle a sizeable
majority.
+---
+** The new function `f90-backslash-not-special' can be used to change
+the syntax of backslashes in F90 buffers.
+
---
** Prolog mode has a new variable `prolog-font-lock-keywords'
to support use of font-lock.
"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.
+
\f
* New modes and packages in Emacs 21.4
\f
* Lisp Changes in Emacs 21.4
++++
+** 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.
+
++++
+** (while-no-input BODY...) runs BODY, but only so long as no input
+arrives. If the user types or clicks anything, BODY stops as if a
+quit had occurred. while-no-input returns the value of BODY, if BODY
+finishes. It returns nil if BODY was aborted.
+
++++
+** `set-auto-mode' now gives the interpreter magic line (if present)
+precedence over the file name. Likewise an <?xml or <!DOCTYPE declaration
+will give the buffer XML or SGML mode, based on the new var
+`magic-mode-alist'.
+
++++
+** New function `looking-back' checks whether a regular expression matches
+the text before point. Specifying the LIMIT argument bounds how far
+back the match can start; this is a way to keep it from taking too long.
+
++++
+** 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.
+
+---
+** To manipulate the File menu using easy-menu, you must specify the
+proper name "file". In previous Emacs versions, you had to specify
+"files", even though the menu item itself was changed to say "File"
+several versions ago.
+
++++
+** read-from-minibuffer now accepts an additional argument KEEP-ALL
+saying to put all inputs in the history list, even empty ones.
+
++++
+** The new variable search-spaces-regexp controls how to search
+for spaces in a regular expression. If it is non-nil, it should be a
+regular expression, and any series of spaces stands for that regular
+expression. If it is nil, spaces stand for themselves.
+
+Spaces inside of constructs such as [..] and *, +, ? are never
+replaced with search-spaces-regexp.
+
---
** list-buffers-noselect now takes an additional argument, BUFFER-LIST.
If it is non-nil, it specifies which buffers to list.
** The new function syntax-after returns the syntax code
of the character after a specified buffer position, taking account
of text properties as well as the character code.
-It returns the value compatibly with char-syntax, except
-that the value can be a list (SYNTAX . MATCHER) which says
-what the matching character is.
+++
** The new primitive `get-internal-run-time' returns the processor
+++
** The new function `called-interactively-p' does what many people
-have mistakenly believed `interactively-p' did: it returns t if the
-calling function was called through `call-interactively'.
-This should only be used when you cannot add a new "interactively"
-argument to the command.
+have mistakenly believed `interactive-p' did: it returns t if the
+calling function was called through `call-interactively'. This should
+only be used when you cannot add a new "interactive" argument to the
+command.
+
++++
+** The new function `assoc-string' replaces `assoc-ignore-case' and
+`assoc-ignore-representation', which are still available, but have
+been declared obsolete.
+++
** An interactive specification may now use the code letter 'U' to get
modification times. Magic file name handlers can handle this
operation.
-** file-remote-p now returns an identifier for the remote system,
-if the file is indeed remote. (Before, the return value was t in
-this case.)
-
+++
** The display space :width and :align-to text properties are now
supported on text terminals.
around potentially blocking or long-running code in timers
and post-command-hooks.
+** The first face specification element in a defface can specify
+`default' instead of frame classification. Then its attributes act as
+defaults that apply to all the subsequent cases (and may be overridden
+by them).
+
+++
** New face attribute `min-colors' can be used to tailor the face color
to the number of colors supported by a display, and define the
which means FUNNAME was previously defined as an autoload (before the
current file redefined it).
++++
+** `load-history' now records (defun . FUNNAME) when a function is
+defined. For a variable, it records just the variable name.
+
+++
** New Lisp library testcover.el works with edebug to help you determine
whether you've tested all your Lisp code. Function testcover-start
** The new function `file-remote-p' tests a file name and returns
non-nil if it specifies a remote file (one that Emacs accesses using
its own special methods and not directly through the file system).
+The value in that case is an identifier for the remote file system.
---
** When a Lisp file uses CL functions at run-time, compiling the file
** Function `plist-member' is renamed from `widget-plist-member' (which is
retained as an alias).
-** Easy-menu's :filter now works as in XEmacs.
-It takes the unconverted (i.e. XEmacs) form of the menu and the result
-is automatically converted to Emacs' form.
+** Easy-menu's :filter now takes the unconverted form of the menu and
+the result is automatically converted to Emacs' form.
** The new function `window-list' has been defined