\f
* Changes in Emacs 21.4
+** 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.
+
++++
+** `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' whether a regular expression matches
+** 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.
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
** BibTeX mode:
*** The new command bibtex-url browses a URL for the BibTeX entry at
-point (bound to C-c C-l and mouse-2 on clickable fields).
+point (bound to C-c C-l and mouse-2, RET on clickable fields).
+
*** The new command bibtex-entry-update (bound to C-c C-u) updates
an existing BibTeX entry.
+
*** New `bibtex-entry-format' option `required-fields', enabled by default.
+
*** bibtex-maintain-sorted-entries can take values `plain',
`crossref', and `entry-class' which control the sorting scheme used
-for BibTeX entries. `bibtex-sort-entry-class' controls the sorting
-scheme `entry-class'. TAB completion for reference keys and
+for BibTeX entries. `bibtex-sort-entry-class' controls the sorting
+scheme `entry-class'. TAB completion for reference keys and
automatic detection of duplicates does not require anymore that
bibtex-maintain-sorted-entries is non-nil.
point according to context (bound to M-tab).
*** The new commands bibtex-find-entry and bibtex-find-crossref
-locate entries and crossref'd entries.
+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 variables bibtex-files and bibtex-file-path define a set
+of BibTeX files that are searched for entry keys.
+
+*** The new command bibtex-validate-globally checks for duplicate keys
+in multiple BibTeX files.
+
+*** 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.
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.
---
** The pop up menus for Lucid now stay up if you do a fast click and can
-be navigated with the arrow keys (like Gtk+ and W32).
+be navigated with the arrow keys (like Gtk+, Mac and W32).
---
-** Dialogs for Lucid/Athena and Lesstif/Motif pops down when pressing ESC.
+** Dialogs for Lucid/Athena and Lesstif/Motif now pops down when pressing
+ESC, like they do for Gtk+, Mac and W32.
+
+---
+** 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
+to support existing GUI file selection dialogs better.
+++
-** The file selection dialog for Gtk+, W32 and Motif/Lesstif can be
+** The file selection dialog for Gtk+, Mac, W32 and Motif/Lesstif can be
disabled by customizing the variable `use-file-dialog'.
++++
+** For Gtk+ version 2.4, you can make Emacs use the old file dialog
+by setting the variable `x-use-old-gtk-file-dialog' to t. Default is to use
+the new dialog.
+
+++
** Emacs can produce an underscore-like (horizontal bar) cursor.
The underscore cursor is set by putting `(cursor-type . hbar)' in
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.
\f
* New modes and packages in Emacs 21.4
+** 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
+section { }). Many files under /etc/, or with suffixes like .cf through
+.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.
\f
* Lisp Changes in Emacs 21.4
+** (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.
+
+---
+** 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.
+
+---
+** set-buffer-file-coding-system now takes an additional argument,
+NOMODIFY. If it is non-nil, it means don't mark the buffer modified.
+
++++
+** 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.
+
++++
+** The new primitive `get-internal-run-time' returns the processor
+run time used by Emacs since start-up.
+
++++
+** The new function `called-interactively-p' does what many people
+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
+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.
+
+++
** Major mode functions now run the new normal hook
`after-change-major-mode-hook', at their very end, after the mode hooks.
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
and scroll-bar settings if non-nil.
+++
-** Renamed file hooks to follow the convention:
+** Renamed hooks to better follow the naming convention:
find-file-hooks to find-file-hook,
find-file-not-found-hooks to find-file-not-found-functions,
write-file-hooks to write-file-functions,
-write-contents-hooks to write-contents-functions.
+write-contents-hooks to write-contents-functions,
+x-lost-selection-hooks to x-lost-selection-functions,
+x-sent-selection-hooks to x-sent-selection-functions.
Marked local-write-file-hooks as obsolete (use the LOCAL arg of `add-hook').
+++
** 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
+++
** New function `call-process-shell-command'.
+** New function `process-file'.
+
+This is similar to `call-process', but obeys file handlers. The file
+handler is chosen based on default-directory.
+
---
** The dummy function keys made by easymenu
are now always lower case. If you specify the
This returns the mode-line or header-line of the selected (or a
specified) window as a string with or without text properties.
++++
+** New function safe-plist-get.
+
+This function is like plist-get, but never signals an error for
+a malformed property list.
+
+++
** New functions `lax-plist-get' and `lax-plist-put'.
** 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