This happens by default if a suitably recent version of the library is
found at build time. To prevent this, use the configure option
`--without-imagemagick'. See below for ImageMagick features.
+This feature is not available for the Nextstep or MS ports.
---
** Emacs can be compiled with libxml2 support.
**** The command `mail-attach-file' was renamed to `mail-insert-file'.
The old name is now an obsolete alias to the new name.
++++
+*** You can type C-c m from M-x report-emacs-bug if you prefer, and if
+your system supports it, to transfer your report to your desktop's
+preferred mail client. This uses either the "xdg-email" utility, or
+OS X's "open" command.
+
** Emacs server and client changes
+++
*** New option `server-port' specifies the port on which the Emacs
+++
** Archive Mode has basic support for browsing and updating 7z archives.
-+++
-** browse-url has a new variable `browse-url-mailto-function'
-specifies how mailto: URLs are handled. The default is `browse-url-mail'.
-
---
** BibTeX mode
*** Some diary function aliases (obsolete since Emacs 22.1) have been removed:
view-diary-entries, list-diary-entries, show-all-diary-entries
+** Browse-url
+
++++
+*** New option `browse-url-mailto-function' specifies how to handle "mailto:"s.
+
+---
+*** The default browser used by the package is now the "xdg-open" program,
+on platforms that support it. This calls your desktop's preferred browser.
+
** CC Mode (C, C++, etc.)
*** New feature to "guess" the style in an existing buffer.
inserted by the compilation filter function, when calling
compilation-filter-hook.
-*** `compilation-error-screen-columns' is obeyed in the editing buffer.
-So programming language modes can set it, whereas previously only the value
-in the *compilation* buffer was used.
+*** `compilation-error-screen-columns' and `compilation-first-column'
+are obeyed in the editing buffer. So programming language modes can
+set them, whereas previously only the value in the *compilation* buffer
+was used.
** Customize
*** Custom options now start out hidden if at their default values.
Use the arrow to the left of the option name to toggle visibility.
+---
*** custom-buffer-sort-alphabetically now defaults to t.
+++
** ERC changes
-*** New vars `erc-autojoin-timing' and `erc-autojoin-delay'.
-If the value of `erc-autojoin-timing' is 'ident, ERC autojoins after a
-successful NickServ identification, or after `erc-autojoin-delay'
-seconds. The default value, 'ident, means to autojoin immediately
-after connecting.
+---
+*** New options `erc-autojoin-timing' and `erc-autojoin-delay',
+controlling attempts to autojoin a channel.
*** New variable `erc-coding-system-precedence': If we use `undecided'
as the server coding system, this variable will then be consulted.
** MH-E has been upgraded to MH-E version 8.3.1.
See MH-E-NEWS for details.
+---
** Modula-2 mode provides auto-indentation.
+---
** mpc.el: Can use pseudo tags of the form tag1|tag2 as a union of two tags.
+---
** Prolog mode has been completely revamped, with lots of additional
functionality such as more intelligent indentation, electricity, support for
more variants, including Mercury, and a lot more.
** Rmail
++++
*** The command `rmail-epa-decrypt' decrypts OpenPGP data
in the Rmail incoming message.
$ESHELL nor the variable `explicit-shell-file-name' is set.
---
-** SQL Mode enhancements.
+** SQL mode
-*** `sql-dialect' is an alias for `sql-product'.
+---
+*** New options `sql-port', `sql-connection-alist', `sql-send-terminator',
+and `sql-oracle-scan-on'.
-*** New variable `sql-port' specifies the port number for connecting
-to a MySQL or Postgres server.
+---
+*** New custom variables control prompting for login parameters.
+Each supported product has a custom variable `sql-*-login-params',
+which is a list of the parameters to be prompted for before a
+connection is established.
+---
*** The command `sql-product-interactive' now takes a prefix argument,
-which causes it to prompt for an SQL product instead of the current
-value of `sql-product'.
+which causes it to prompt for an SQL product.
-*** Product-specific SQL interactive commands now take prefix args.
+---
+*** Product-specific SQL interactive commands now take prefix arguments.
These commands (`sql-sqlite', `sql-postgres', `sql-mysql', etc.),
given a prefix argument, prompt for a name for the SQL interactive
buffer. This reduces the need for calling `sql-rename-buffer'.
+---
*** SQL interactive modes suppress command continuation prompts, and
replace tabs with spaces. The first change impacts multiple line SQL
statements entered with C-j between each line, statements yanked into
the buffer and statements sent with `sql-send-*' functions. The
-second change prevents the MySQL and Postgres interpreters from
-listing object name completions when sent text via `sql-send-*'
-functions.
-
-*** New custom variables control prompting for login parameters.
-Each supported product has a custom variable `sql-*-login-params',
-which is a list of the parameters to be prompted for before a
-connection is established.
-
-*** New variable `sql-connection-alist' for login parameter values.
-This can be used to store different username, database and server
-values. Connections defined in this variable appear in the submenu
-SQL->Start... for making new SQLi sessions.
+second prevents the MySQL and Postgres interpreters from listing
+object name completions when sent text via `sql-send-*' functions.
+---
*** New command `sql-connect' starts a predefined SQLi session,
using the login parameters from `sql-connection-alist'.
+---
*** New "Save Connection" menu item in SQLi buffers.
This gathers the login params specified for the SQLi session, if it
was not started by a connection, and saves them as a new connection.
-*** Commands for listing database objects and details.
-In an SQLi session, you can get a list of objects in the database.
-The contents of these lists are product specific.
-
-**** `C-c C-l a' or the "SQL->List all objects" menu item
-lists all the objects in the database. With a prefix argument, it
-displays additional details or extend the listing to include other
-schemas objects.
-
-**** `C-c C-l t' or the "SQL->List Table details" menu item
-prompts for the name of a database table or view and displays the list
-of columns in the relation. With a prefix argument, it displays
-additional details about each column.
-
-*** New options `sql-send-terminator' and `sql-oracle-scan-on'.
+---
+*** New commands for listing database objects and details:
+sql-list-all and sql-list-table.
+---
*** An API for manipulating SQL product definitions has been added.
** TeX modes
++++
*** latex-electric-env-pair-mode keeps \begin..\end matched on the fly.
** Tramp
Since Emacs 23, it has done the same thing as `toggle-read-only', but
this was not advertised at the time.
-** FIXME: xdg-open for browse-url and reportbug, 2010/08.
-
** Obsolete modes
-*** partial-completion-mode is obsolete.
+---
+*** abbrevlist.el
+
+---
+*** erc-hecomplete.el (use erc-pcomplete.el instead)
+
+*** partial-completion-mode (complete.el) is obsolete.
You can get a comparable behavior with:
(setq completion-styles '(partial-completion initials))
(setq completion-pcm-complete-word-inserts-delimiters t)
-*** pc-mode.el is obsolete.
+---
+*** pc-mode.el is obsolete (CUA mode is much more comprehensive).
+
+*** pgg is obsolete (use EasyPG instead)
+---
*** sregex.el is obsolete, since rx.el is a strict superset.
-*** s-region.el and pc-select are obsolete.
-They are superseded by shift-select-mode enabled by default in 23.1.
+---
+*** s-region.el and pc-select.el are obsolete.
+They are superseded by shift-select-mode, enabled by default since 23.1.
+
++++
+*** vc-mcvs.el is obsolete (for lack of a maintainer)
** Miscellaneous
** Occur Edit mode applies edits made in *Occur* buffers to the
original buffers. It is bound to "e" in Occur mode.
-** New global minor modes electric-pair-mode, electric-indent-mode,
-and electric-layout-mode.
+** New global minor mode electric-pair-mode.
+When enabled, typing an open parenthesis automatically inserts the
+matching closing one.
+
+** New global minor mode electric-indent-mode.
+When enabled, typing certain characters triggers reindentation.
+
+** New global minor mode electric-layout-mode.
+When enabled, typing certain characters automatically inserts newlines.
** tabulated-list.el provides a generic major mode for tabulated data,
from which other modes can be derived.
** soap-client.el supports access to SOAP web services from Emacs.
soap-inspect.el is an interactive inspector for SOAP WSDL structures.
-** xmodmap-generic-mode for xmodmap files.
+---
+** New generic mode, xmodmap-generic-mode, for xmodmap files.
+---
** New emacs-lock.el package.
-(The pre-existing one has been renamed to old-emacs-lock.el and moved
-to obsolete/.) Now, Emacs Lock is a proper minor mode
-`emacs-lock-mode'. Protection against exiting Emacs and killing the
-buffer can be set separately. The mechanism for auto turning off
-protection for buffers with inferior processes has been generalized.
+(The previous version has been moved to obsolete/old-emacs-lock.el.)
+Now, there is a proper minor mode `emacs-lock-mode'.
+Protection against exiting Emacs and killing the buffer can be set
+separately. The mechanism for automatically turning off protection
+for buffers with dead inferior processes has been generalized.
\f
* Incompatible Lisp Changes in Emacs 24.1
area, excluding any header line. Previously, it counted from the top
of the header line.
-** A backquote not followed by a space is now always treated as new-style.
+---
+** Support for "old-style" backquotes, which have been obsolete for
+more than 10 years, has been further reduced. Now a backquote not
+followed by a space is always treated as a "new-style" backquote.
+Please consider completely removing all "old-style" backquotes from
+your code as a matter of some urgency. If your code uses backquotes
+as documented in the Elisp manual, and compiles without warning, then
+you have nothing to do in this regard. Code not following the
+appropriate conventions may fail to compile. The most common cause of
+trouble seems to be an old-style backquote followed by a newline.
---
** view-buffer now treats special mode-class in the same way that
view-file has since Emacs 22 (ie, it won't enable View mode if the
major-mode is special).
-** Passing a nil argument to a minor mode function now turns the mode
-ON unconditionally.
++++
+** Passing a nil argument to a minor mode defined by define-minor-mode
+now turns the mode ON unconditionally. This is so that you can write, e.g.
+ (add-hook 'text-mode-hook 'foo-minor-mode)
+to enable foo-minor-mode in Text mode buffers, thus removing the need
+for `turn-on-foo-minor-mode' style functions.
+++
** During startup, Emacs no longer adds entries for `menu-bar-lines'
** The menu bar bindings's caches are not used any more.
Use (where-is-internal <def> nil t) instead.
-** The following obsolete functions and aliases were removed:
-comint-kill-output, decompose-composite-char, outline-visible,
-internal-find-face, internal-get-face, frame-update-faces,
-frame-update-face-colors, x-frob-font-weight, x-frob-font-slant,
-x-make-font-bold, x-make-font-demibold, x-make-font-unbold
-x-make-font-italic, x-make-font-oblique, x-make-font-unitalic
-x-make-font-bold-italic, mldrag-drag-mode-line, mldrag-drag-vertical-line,
-iswitchb-default-keybindings, char-bytes, isearch-return-char,
-make-local-hook
-
+++
-** The following obsolete variables and varaliases were removed:
-checkdoc-minor-keymap, vc-header-alist, directory-sep-char,
-font-lock-defaults-alist, and e (use float-e).
+** The following obsolete (mostly since at least 21.1) functions and aliases
+have been removed (the appropriate new function is given in parentheses):
+comint-kill-output (comint-delete-output),
+decompose-composite-char (char-to-string),
+outline-visible (outline-invisible-p),
+internal-find-face (facep), internal-get-face (facep and check-face),
+frame-update-faces (not needed),
+frame-update-face-colors (frame-set-background-mode),
+x-frob-font-weight and x-frob-font-slant (appropriate make-face-* function),
+x-make-font-bold and x-make-font-demibold (make-face-bold),
+x-make-font-italic and x-make-font-oblique (make-face-italic),
+x-make-font-bold-italic (make-face-bold-italic),
+x-make-font-unbold (make-face-unbold),
+x-make-font-unitalic (make-face-unitalic),
+mldrag-drag-mode-line (mouse-drag-mode-line),
+mldrag-drag-vertical-line (mouse-drag-vertical-line),
+iswitchb-default-keybindings (iswitchb-mode), char-bytes (== 1),
+isearch-return-char (isearch-printing-char), make-local-hook (not needed)
+
++++
+** The following obsolete (mostly since at least 21.1) variables and varaliases
+have been removed (the appropriate new variable is given in parentheses):
+checkdoc-minor-keymap (checkdoc-minor-mode-map),
+vc-header-alist (vc-BACKEND-header), directory-sep-char (== ?/)
+font-lock-defaults-alist (font-lock-defaults), and e (float-e).
---
** The following obsolete files were removed:
*** New function `special-variable-p' to check whether a variable is
declared as dynamically bound.
++++
** An Emacs Lisp testing tool is now included.
Emacs Lisp developers can use this tool to write automated tests for
their code. See the ERT info manual for details.
** New hook types
++++
*** New function `run-hook-wrapped' for running an abnormal hook by
passing the hook functions as arguments to a "wrapping" function.
+Like `run-hook-with-args-until-success', it stops at the first
+non-nil return value.
+
+++
*** New macro `with-wrapper-hook' for running an abnormal hook as a
set of "wrapping" filters, similar to around advice.
(A version of this macro was actually added in Emacs 23.2 but was not
advertised at the time.)
++++
+** The macros `condition-case-no-debug' and `with-demoted-errors' were
+added in Emacs 23.1, but not advertised.
+
+++
** The new function `server-eval-at' allows evaluation of Lisp forms on
named Emacs server instances, using TCP sockets.
or RGB triplet, instead of signaling an error if the user provides
invalid input.
++++
** Tool-bars can display separators.
Tool-bar separators are handled like menu separators in menu-bar maps,
i.e. via menu entries of the form `(menu-item "--")'.
*** `image-extension-data' has been renamed to `image-metadata'.
The old name is an obsolete alias to the new one.
-*** Emacs can be compiled with ImageMagick support.
++++
+*** Image mode can view any image type that ImageMagick supports.
+This requires Emacs to be built with ImageMagick support.
Then the function `imagemagick-types' returns a list of image file
extensions that your installation of ImageMagick supports. The
function `imagemagick-register-types' enables ImageMagick support for
these image types, minus those listed in `imagemagick-types-inhibit'.
+Visiting one of these file types will then use Image mode.
-See the Emacs Lisp Reference Manual for more information.
+---
+*** New commands to resize and rotate images in Image mode.
+These require Emacs to be built with ImageMagick support.
+image-transform-fit-to-height, image-transform-fit-to-width,
+image-transform-set-rotation, image-transform-set-scale.
** XML and HTML parsing
If Emacs is compiled with libxml2 support, there are two new functions:
with a nil or omitted VALUE argument, the reporter message is
displayed with a "spinning bar".
++++
** New variable `revert-buffer-in-progress-p' is true while a buffer is
being reverted, even if the buffer has a local `revert-buffer-function'.
-** New variables `delayed-warnings-list' and `delayed-warnings-hook' allow
-deferring warnings until the main command loop is executed.
+---
+** New variables `delayed-warnings-list' and `delayed-warnings-hook'.
+If delayed-warnings-list is non-nil, the command loop calls
+delayed-warnings-hook after post-command-hook. At present, this is
+only used by Emacs on some platforms to display warnings during
+startup, which might otherwise not be noticed. This uses the functions
+display-delayed-warnings and collapse-delayed-warnings.
+
+++
** `set-auto-mode' now respects mode: local variables at the end of files,
---
** rx.el has a new `group-n' construct for explicitly numbered groups.
-** keymaps can inherit from multiple parents.
++++
+** New function `make-composed-keymap' that constructs a new keymap
+from multiple input maps. You can use this to make a keymap that
+inherits from multiple maps, eg:
+ (set-keymap-parent newmap (make-composed-keymap othermap parent))
-** `debug-on-event' lets you debug Emacs when stuck because of inhibit-quit.
++++
+** Set `debug-on-event' to make Emacs enter the debugger e.g. on receipt
+of SIGUSR1. This can be useful when `inhibit-quit' is set.
+++
-** New reader macro ## which stands for the empty symbol.
+** New reader macro ## that stands for the empty symbol.
This means that the empty symbol can now be read back. Also, #: by itself
(when not immediately followed by a possible symbol character) stands for
an empty uninterned symbol.
** New configure.bat options
++++
*** --enable-checking builds Emacs with extra runtime checks.
++++
*** --distfiles specifies files to be included in binary distribution.
++++
*** --without-gnutls disables automatic GnuTLS detection.
-*** --lib for general library linkage, works with the USER_LIBS build
-variable.
++++
+*** --lib for general library linkage, works with the USER_LIBS build variable.
++++
** New make target `dist' to create binary distribution for MS Windows.
-** Function `w32-default-color-map' is now obsolete.
+---
+** The Lisp function `w32-default-color-map' is now obsolete.
+(It is only used internally in the Emacs C code.)
-** On Nextstep/OSX, the menu bar can be hidden by customizing
-ns-auto-hide-menu-bar.
++++
+** Customize ns-auto-hide-menu-bar to have the menu-bar hidden, but
+reappear on mouse-over. (Requires OS X 10.6 or later.)
\f
----------------------------------------------------------------------