** Support for systems without alloca has been removed.
+** The `emacstool' utility has been removed.
+
\f
* Changes in Emacs 23.1
+** Emacs now supports using both X displays and ttys in one session.
+You can also use any number of different ttys.
+
+You can test for the presence of this feature in your Lisp code by
+testing for the `multi-tty' feature.
+
** Emacs comes with a new set of icons for Mac OS X.
OS-X-style icons (an application icon and a relevant document icon)
were contributed by Kentaro Ohkouchi.
** split-window-preferred-function specifies whether display-buffer should
split windows vertically or horizontally.
-** Support for multiple terminal devices and simultaneous graphical
-and tty frames has been added. You can test for the presence of this
-feature in your Lisp code by testing for the `multi-tty' feature.
-
** Emacsclient has been extended to support opening a new terminal
frame. Its behavior has been changed to open a new Emacs frame by
default. Use the -c option to get the old behavior of opening files in
** Emacs now supports the SVG image format through librsvg2.
-** The Gtk+ build now uses stock tool bar icons, so that a theme change
-is visible in Emacs tool bar.
-
** If you set find-file-confirm-nonexistent-file to t, then C-x C-f
requires confirmation before opening a non-existent file.
recenter the visited source file. Its value can be a number (for example,
0 for top line, -1 for bottom line), or nil for no recentering.
-** The mode-line display a `@' if the default-directory for the current buffer
+** The mode-line displays a `@' if the default-directory for the current buffer
is on a remote machine, or a hyphen otherwise.
-** The new command balance-window-area balances windows both vertically
+** The mode-line displays a mode menu when mouse-1 is clicked on a minor mode,
+in the same way as it already did for major modes.
+
+** The new command balance-windows-area balances windows both vertically
and horizontally.
** The new command close-display-connection can be used to close a connection
** The command shell prompts for the default directory, when it is
called with a prefix, and the default directory is a remote file name.
-This is because some file name handler (like ange-ftp) are not able to
+This is because some file name handlers (like ange-ftp) are not able to
run processes remotely.
** The new command `display-time-world' starts an updating time display
after starting Emacs: startup screen, *scratch* buffer, visiting a
file or directory.
+** New alias `argv' for `command-line-args-left'
+This is a convenience alias, so that one can write `(pop argv)'
+inside of --eval command line arguments in order to access
+following arguments.
+
+** The abbrev file is no longer read at startup in batch mode.
\f
* Incompatible Editing Changes in Emacs 23.1
\f
* Editing Changes in Emacs 23.1
++++
+** M-q now fills the region if the region is active and
+`transient-mark-mode' is turned on. Otherwise, it fills the current
+paragraph.
+
++++
+** M-$ now checks spelling of the region if the region is active and
+`transient-mark-mode' is turned on. Otherwise, it checks spelling of the
+word at point.
+
+** TAB now indents the region if the region is active and
+`transient-mark-mode' is turned on.
+
** C-z now invokes `suspend-frame', C-x C-c now invokes
`save-buffers-kill-terminal'.
** New command kill-matching-buffers kills buffers whose name matches a regexp.
+** `interprogram-paste-function' can now return one string or a list
+of strings. In the latter case, Emacs puts the second and following
+strings on the kill ring.
+
** Minibuffer changes:
*** isearch started in the minibuffer searches in the minibuffer history.
\f
* Changes in Specialized Modes and Packages in Emacs 23.1
+** abbrev was rewritten in Elisp and extended with more flexibility.
+*** New functions: abbrev-get, abbrev-put, abbrev-table-get, abbrev-table-put,
+ abbrev-table-p.
+*** Special hook `abbrev-expand-functions' obsoletes `pre-abbrev-expand-hook'.
+*** `make-abbrev-table', `define-abbrev', `define-abbrev-table' all take
+ extra arguments for arbitrary properties.
+*** New variable `abbrev-minor-mode-table-alist'.
+*** `local-abbrev-table' can hold a list of abbrev-tables.
+*** Abbrevs have now the following special properties:
+ `count', `system-flag', `:enable-function', `:case-fixed'.
+*** Abbrev-tables have now the following special properties:
+ `:parents', `:case-fixed', `:enable-function', `:regexp',
+ `abbrev-table-modiff'.
+
+** isearch can now search through multiple ChangeLog files.
+When running isearch in a ChangeLog file, if the search fails,
+then another C-s tries searching the previous ChangeLog,
+if there is one (e.g. go from ChangeLog to ChangeLog.12).
+
+This is enabled if isearch-buffers-multi is non-nil.
+
++++
+** In Dired-x, all command guesses for ! are now added to the default
+list accessible by M-n instead of pushing all guesses temporarily into
+the history list.
+
+** smerge-refine highlights word-level details of changes in conflict.
+It's used automatically as you move through conflicts, see smerge-auto-refine.
+
+** diff-refine-hunk highlights word-level details of changes in a diff hunk.
+It's used automatically as you move through hunks, see diff-auto-refine.
+
** archive-mode has basic support to browse Rar archives.
+
** talk.el has been extended for multiple tty support.
** compilation-auto-jump-to-first-error tells `compile' to jump to
the first error encountered during compilations.
-** In the `copyright' package, you can specify your copyright holders's names.
+** In the `copyright' package, you can specify your copyright holders' names.
Only copyright lines with holders matching copyright-names-regexp will be
considered for update.
** eldoc highlights the function argument under point
with the face `eldoc-highlight-function-argument'.
++++
+** defcustom accepts new keyword arguments, `:safe' and `:risky', which
+set a variable's `safe-local-variable' and `risky-local-variable' property.
+
** VC
*** Clicking on the VC mode-line entry now pops the VC menu.
*** VC now supports applying VC operations to a set of files at a time.
+This enables VC to work much more effectively with changeset-oriented
+version-control systems such as Subversion, GNU Arch, Mercurial, and
+Bzr. VC will now pass a multiple-file commit to these systems
+as a single changeset.
+
** sgml-electric-tag-pair-mode lets you simultaneously edit matched tag pairs.
+** The appearance of superscript and subscript in TeX is more customizable.
+See the documentation of the variables: tex-fontify-script,
+tex-font-script-display, tex-suscript-height-ratio, and
+tex-suscript-height-minimum.
+
** BibTeX mode:
*** New `bibtex-entry-format' options `whitespace', `braces', and
`string', disabled by default.
*** New variable `bibtex-cite-matcher-alist' contains rules to
-identify cited keys in BibTeX entries, used by `bibtex-find-crossref.
+identify cited keys in BibTeX entries, used by `bibtex-find-crossref'.
*** Command `bibtex-url' now allows multiple URLs per entry.
** Miscellaneous programming mode changes
+*** The file etc/emacs.py now supports both Python 2 and 3, meaning
+that either version can be used as inferior Python by python.el.
+
*** The variable `fortran-line-length' can change the fixed-form line-length.
++++
+*** (The increasingly misnamed) F90 mode supports Fortran 2003 syntax.
+
** Miscellaneous
*** comint-mode uses `start-file-process' now (see Lisp Changes).
+++
** The function `dired-call-process' has been removed.
+** The variable `byte-compile-warnings' can now be a list starting with `not',
+meaning to disable the specified warnings. The meaning of this list
+may therefore be the reverse of what you expect (of course, this is
+only an issue if you make use of the new `not' syntax). Rather than
+checking/manipulating elements directly, use the new functions
+`byte-compile-warning-enabled-p', `byte-compile-disable-warning', and
+`byte-compile-enable-warning.'
+
+** shell.el no longer defines the aliases `dirtrack-toggle' and
+`dirtrack-mode' for `shell-dirtrack-mode'. These names were removed
+because they clash with command provided by dirtrack.el. Use
+`shell-dirtrack-mode' instead.
+
\f
* Lisp Changes in Emacs 23.1
++++
+** A list of default values can be specified for the DEFAULT argument of
+functions `read-from-minibuffer', `read-string', `read-command',
+`read-variable', `read-buffer', `completing-read'. Elements of this list
+are available for inserting into the minibuffer by typing `M-n'.
+For empty input these functions return the first element of this list.
+
+** `custom-note-var-changed' tells Custom to treat the change in a certain
+variable as having been made within Custom.
+
+** `frame-inherited-parameters' lets new frames inherit parameters from
+the selected frame.
+
+** New keymap `input-decode-map' overrides like key-translation-map, but
+applies before function-key-map. Also it is terminal-local contrary to
+key-translation-map. Terminal-specific key-sequences are generally added to
+this map rather than to function-key-map now.
+
** Changes related to multiple 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 has been made frame-local. The new
`initial-window-system' variable contains the `window-system' value
for the first frame.
*** New functions: `delete-tty', `suspend-tty', `resume-tty'.
-*** New functions: `terminal-id', `terminal-parameters',
-`terminal-parameter', `set-terminal-parameter',
-`modify-terminal-parameters'.
+*** A new data type for terminals with functions: `get-device-terminal',
+`terminal-parameters', `terminal-parameter', `set-terminal-parameter'.
*** New hooks: `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
+respectively. The functions are called with the terminal id of the frame
being suspended/resumed as a parameter.
-*** New functions: `environment', `let-environment'.
-
-*** New variables: `local-key-translation-map', `local-function-key-map'.
-These are in addition to the global key-translation-map and
-function-key-map variables that already existed.
+*** New function: `environment'.
-??? How do the new variables relate to the old ones?
+*** New variable: `local-function-key-map'.
+This in addition to the global function-key-map variable that
+already existed. The global variable is not used directly any more;
+instead, the local-function-key-map is initialized so as to inherit from
+function-key-map.
*** `initial-environment' holds the environment inherited from Emacs's parent.
-*** New frame parameter `display-environment-variable'.
-
*** The `keyboard-translate-table' variable and the terminal and
keyboard coding systems have been made terminal-local.
-*** In addition to the global key-translation-map and
-function-key-map, Emacs has terminal-local local-key-translation-map
-and local-function-key-map variables, and uses them instead of the
+*** In addition to the global function-key-map, Emacs has terminal-local
+local-function-key-map variables, and uses them instead of the
global keymaps to set up translations and function key sequences
relevant to a specific terminal device.
Use this instead of "~/.emacs.d".
+++
-** The new function `start-file-process is similar to `start-process',
+** 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'
and `process-file-shell-command' are also new; they call internally
-`start-file-process and `process-file', respectively.
+`start-file-process' and `process-file', respectively.
+++
** `file-remote-p' has new optional parameters IDENTIFICATION and CONNECTED.
\f
* New Packages for Lisp Programming in Emacs 23.1
+** The package isearch-multi.el has been added. It implements a new mode
+`isearch-buffers-minor-mode' that allows isearch to search through
+multiple buffers. In this mode a new variable
+`isearch-buffers-next-buffer-function' defines the function to call
+to get the next buffer to search in the series of multiple buffers.
+
** The new package avl-tree.el deals with the AVL tree data structure.
\f