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.
facilities (`sendmail-send-it' on GNU/Linux and other Unix-like
systems, and `mailclient-send-it' on Windows).
-*** smtpmail changes
+---
+*** `compose-mail' now accepts an optional 8th arg, RETURN-ACTION, and
+passes it to the mail user agent function. This argument specifies an
+action for returning to the caller after finishing with the mail.
+For example, this is used by Rmail to optionally delete a mail window.
-**** smtpmail now uses encrypted connections (via STARTTLS) if the
-mail server supports them. It also uses the auth-source framework for
-getting credentials.
+*** smtpmail
++++
+**** smtpmail now uses encrypted connections (via STARTTLS) by default
+if the mail server supports them. This uses either built-in GnuTLS
+support, or the starttls.el library. Customize `smtpmail-stream-type'
+to change this.
+
++++
**** The variable `smtpmail-auth-credentials' has been removed.
-That variable used to have the default value "~/.authinfo", in which
-case you won't see any difference. But if you changed it to be a list
-of user names and passwords, that setting is now ignored; you will be
-prompted for the user name and the password, which will then be saved
-to ~/.authinfo. (To control where and how the credentials are stored,
-see the auth-source manual. You may want to change the auth-source
-preferences if you want to store the credentials encrypted, for
-instance.)
-
-You can also manually copy the credentials to your ~/.authinfo file.
-For example, if you had
+By default, the information is now stored in the file ~/.authinfo.
+This was the default value of smtpmail-auth-credentials.
+If you had customized smtpmail-auth-credentials to a list of user
+names and passwords, those settings will not be used. Your first
+connection to the smtp server will prompt for the user name and password,
+and then offer to save them to the ~/.authinfo file. Or you can
+manually copy the credentials to your ~/.authinfo files. For example,
+if you had
(setq smtpmail-auth-credentials
'(("mail.example.org" 25 "jim" "s!cret")))
machine mail.example.org port 25 login jim password s!cret
+See the auth-source manual for more information, e.g. on encrypting
+the credentials file.
+
++++
**** The variable `smtpmail-starttls-credentials' has been removed.
If you had that set, then you need to put
**** 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
+++
*** Emacs preserves the SELinux file context when backing up, and
-optionally when copying files. To this end, copy-file has an extra
-optional argument, and backup-buffer and friends include the SELinux
-context in their return values.
+optionally when copying files. To this end, `copy-file' has an extra
+optional argument, and the return value of `backup-buffer' now
+includes the SELinux context.
+++
*** The new functions file-selinux-context and set-file-selinux-context
get and set the SELinux context of a file.
----
-*** Tramp offers handlers for file-selinux-context and set-file-selinux-context
-for remote machines which support SELinux.
** Changes for exiting Emacs
+++
*** Calling `delete-file' or `delete-directory' with a prefix argument
now forces true deletion, regardless of `delete-by-moving-to-trash'.
++++
** New option `list-colors-sort' defines the color sort order
for `list-colors-display'.
offers to save the theme to `custom-safe-themes' automatically. By
default, all themes included in Emacs are treated as safe.
-** The user option `remote-file-name-inhibit-cache' controls whether
-the remote file-name cache is used for read access.
-
** File- and directory-local variable changes
+++
*** You can stop directory local vars from applying to subdirectories.
+++
** The variable `focus-follows-mouse' now always defaults to nil.
-** New primitive `secure-hash' that supports many secure hash algorithms
-including md5, sha-1 and sha-2 (sha-224, sha-256, sha-384 and sha-512).
-The elisp implementation sha1.el is removed. Feature sha1 is provided
-by default.
++++
+** New primitive `secure-hash' that supports many secure hash algorithms:
+md5, sha1, sha2, sha224, sha256, sha384, and sha512. The lisp library
+sha1.el has been removed. The `sha1' feature is provided by default.
** Menu-bar changes
---
These functions allow to navigate through the live buffers that have
been shown in a specific window.
++++
** The inactive minibuffer has its own major mode `minibuffer-inactive-mode'.
-This is handy for minibuffer-only frames, and is also used for the "mouse-1
-pops up *Messages*" feature, which can now easily be changed.
-
----
-** `tooltip-use-echo-area' is obsolete.
-Rather than setting this to t, disable Tooltip mode instead.
+This is handy for minibuffer-only frames, and is also used for the feature
+where mouse-1 pops up *Messages*"', which can now easily be changed.
\f
* Editing Changes in Emacs 24.1
+++
** 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
-
+---
*** BibTeX mode now supports biblatex.
-Use the variable bibtex-dialect to select support for different BibTeX
-dialects. bibtex-entry-field-alist is now an obsolete alias for
-bibtex-BibTeX-entry-alist.
-
+Use the variable bibtex-dialect to select different BibTeX dialects.
+bibtex-entry-field-alist is now an obsolete alias forbibtex-BibTeX-entry-alist.
+---
*** New command `bibtex-search-entries' bound to C-c C-a.
-
+---
*** New `bibtex-entry-format' option `sort-fields', disabled by default.
-
+---
*** New variable `bibtex-search-entry-globally'.
** Calendar, Diary, and Appt
*** Some diary function aliases (obsolete since Emacs 22.1) have been removed:
view-diary-entries, list-diary-entries, show-all-diary-entries
-** CC Mode (C, C++, etc.)
+** Browse-url
-*** New feature to "guess" the style in an existing buffer.
++++
+*** 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.
+
++++
+** New CC Mode feature to "guess" the style in an existing buffer.
+The main entry is M-x c-guess.
** comint and modes derived from it use the generic completion code.
*** Compilation mode can be used without font-lock-mode.
`compilation-parse-errors-function' is now obsolete.
-*** `compilation-filter-start' is let-bound to the start of the text
-inserted by the compilation filter function, when calling
-compilation-filter-hook.
+---
+*** New variable `compilation-filter-start', bound while
+compilation-filter-hook runs. It records the start position of the
+text inserted by compilation-filter.
-*** `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.
+++
** D-Bus
-*** It is possible now, to access alternative buses than the default
-system or session bus.
+*** It is now possible to access buses other than the default system
+or session bus.
-*** dbus-register-{service,method,property}
-The -method and -property functions do not automatically register
-names anymore.
+*** The dbus-register-method and dbus-register-property functions
+optionally do not register names.
-The new function dbus-register-service registers a service known name
+*** The new function dbus-register-service registers a known service name
on a D-Bus without simultaneously registering a property or a method.
** Dired-x
** 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.
** Eshell changes
-*** The default value of eshell-directory-name is a directory named
-"eshell" in `user-emacs-directory'. If the old "~/.eshell/" directory
-exists, that is used instead.
+---
+*** The default value of `eshell-directory-name' has changed
+to be an "eshell" directory in `user-emacs-directory'.
+The old "~/.eshell/" directory is still used if it exists, though.
** gdb-mi
+++
-*** GDB User Interface migrated to GDB Machine Interface and now
-supports multithread non-stop debugging and debugging of several
-threads simultaneously.
-
-** In ido-mode, C-v is no longer bound to ido-toggle-vc.
-The reason is that this interferes with cua-mode.
+*** The GDB User Interface has been migrated to GDB Machine Interface.
+It now supports multithread non-stop debugging and simultaneous
+debugging of several threads.
** Image mode
-*** RET (`image-toggle-animation') toggles animation, if the displayed
-image can be animated.
-
-*** Option `image-animate-loop', if non-nil, loops the animation.
-If nil, `image-toggle-animation' plays the animation once.
++++
+*** RET (`image-toggle-animation') toggles animation, if applicable.
+Animation plays once, unless the option `image-animate-loop' is non-nil.
** Info
-*** New command `info-display-manual' displays an Info manual
-specified by its name. If that manual is already visited in some Info
-buffer within the current session, the command will display that
-buffer. Otherwise, it will load the manual and display it. This is
-handy if you have many manuals in many Info buffers, and don't
-remember the name of the buffer visiting the manual you want to
-consult.
++++
+*** New command `info-display-manual' displays a named Info manual.
+If that manual is already visited in some Info buffer, it displays
+that buffer. (This is handy if you have many manuals in many *info*
+buffers, and don't remember the name of the buffer visiting the manual
+you want to consult.) Otherwise, it loads and displays the manual.
+++
*** `e' is now bound to `end-of-buffer' rather than to `Info-edit'.
by default.
+++
-** The Landmark game is now invoked with `landmark', not `lm'.
-
** 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
---
*** The following access methods are discontinued: "ssh1_old",
"ssh2_old", "scp1_old", "scp2_old", "imap", "imaps" and "fish".
++++
+*** The user option `remote-file-name-inhibit-cache' controls whether
+remote file attributes are cached for better performance.
---
*** The option `ange-ftp-binary-file-name-regexp' has changed its
default value to "".
+---
+*** Handlers for file-selinux-context and set-file-selinux-context for
+remote machines that support SELinux.
-** `url-queue-retrieve' downloads web pages asynchronously, but allow
-controlling the degree of parallelism.
++++
+** New function, `url-queue-retrieve', which behaves like url-retrieve,
+but with limits (`url-queue-parallel-processes', `url-queue-timeout') on
+the degree of parallelism.
** VC and related modes
+++
*** Support for pulling on distributed version control systems.
-`C-x v +' (`vc-pull') runs a "pull" operation, if it is supported, to
-update the current branch and working tree. A prefix argument means
-to prompt the user for specifics, e.g. a pull location.
+`C-x v +' (`vc-pull') runs a "pull" operation, if it is supported
+(currently with Bzr, Git, and Mercurial), to update the current branch
+and working tree. A prefix argument means to prompt the user for
+specifics, e.g. a pull location.
-**** `vc-update' is now an alias for `vc-pull'.
-
-**** Currently supported by Bzr, Git, and Mercurial.
+---
+*** `vc-update' is now an alias for `vc-pull'.
+++
*** Support for merging on distributed version control systems.
-The vc-merge command now runs a "merge" operation, if it is supported,
-to merge changes from another branch into the current one. It prompts
-for specifics, e.g. a merge source.
-
-**** Currently supported for Bzr, Git, and Mercurial.
+The vc-merge command now runs a "merge" operation, if it is supported
+(currently with Bzr, Git, and Mercurial), to merge changes from
+another branch into the current one. It prompts for specifics, e.g. a
+merge source.
+++
*** New option `vc-revert-show-diff' controls whether `vc-revert'
+++
*** Log entries in some Log View buffers can be toggled to display a
longer description by typing RET (log-view-toggle-entry-display).
+This is currently supported for Bzr, Git, and Mercurial (to support
+another backend, define a `log-view-expanded-log-entry-function').
In the Log View buffers made by `C-x v L' (vc-print-root-log), you can
use this to display the full log entry for the revision at point.
-**** Currently supported for Bzr, Git, and Mercurial.
-
-**** Packages using Log View mode can enable this functionality by
-binding `log-view-expanded-log-entry-function' to a suitable function.
-
+++
*** New command `vc-ediff' allows visual comparison of two revisions
of a file similar to `vc-diff', but using ediff backend.
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).
+
+[FIXME gnus.texi, message.texi need updating]
+*** 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
++++
+*** The Landmark game is now invoked with `landmark', not `lm'.
+Its functions and variables have been similarly renamed.
+
+---
+*** In `ido-file-completion-map', C-v is no longer bound to ido-toggle-vc.
+(This interfered with cua-mode.)
+
+++
*** f90.el has some support for Fortran 2008 syntax.
** 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.
+** When `occur' is called with the prefix argument `C-u'
+the matching strings are collected into the `*Occur*' buffer
+without line numbers. If there are parenthesized subexpressions
+in the specified regexp, `occur' reads replacement text that
+may contain \\& and \\N whose convention follows `replace-match'.
++++
+** 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.
+Major modes wishing to use this can set electric-indent-chars or
+electric-indent-functions.
+
++++
+** New global minor mode electric-layout-mode.
+When enabled, typing certain characters automatically inserts newlines.
+Major modes wishing to use this can set electric-layout-rules.
+
++++
** 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
++++
+** The return value of `backup-buffer' has changed.
+It is now a list of three elements, where the second element is a list
+describing the original file's SELinux context. If Emacs or the
+system lacks SELinux cupport, the context list is (nil nil nil nil).
+See the "Basic SELinux support" entry under "Changes in Emacs 24.1",
+above.
+
---
** `char-direction-table' and the associated function `char-direction'
were deleted. They were buggy and inferior to the new support of
new optional arg COPY-CONTENTS, if non-nil, makes the function copy
the contents directly into a pre-existing target directory.
-** `compose-mail' now accepts an optional 8th arg, RETURN-ACTION, and
-passes it to the mail user agent function. This argument specifies an
-action for returning to the caller after finishing with the mail.
-This is currently used by Rmail to delete a mail window.
-
++++
** For mouse click input events in the text area, the Y pixel
coordinate in the POSITION list now counts from the top of the text
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 mode's test for a special mode-class is now in view-buffer.
-So now this command respects special modes too - previously only
-view-file did. Note that commands such as view-file-other-frame still
-do not respect this feature - this inconsistency should probably be
-fixed in a future release.
+** 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'
versions, these regions were delineated by `mouse-drag-overlay', which
has now been removed.
++++
+** The fourth argument of filter-buffer-substring, which says to remove
+text properties from the final result, has been removed.
+Eg simply pass the result through substring-no-properties if you need this.
+
---
** cl.el no longer provides `cl-19'.
++++
** 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:
sc.el, x-menu.el, rnews.el, rnewspost.el
-** FIXME finder-inf.el changes.
+---
+** The format of the finder-inf.el file has changed, since the finder
+mechanism is now based on the package concept. The variable
+finder-package-info is replaced by package--builtins and finder-keywords-hash.
+
+---
+** When generating autoloads, `update-directory-autoloads' no longer
+assumes every inspected file is in your `load-path'. It instead
+generates relative names according to the current `load-path'.
\f
* Lisp changes in Emacs 24.1
++++
** Code can now use lexical scoping by default instead of dynamic scoping.
The `lexical-binding' variable lets code use lexical scoping for local
variables. It is typically set via a file-local variable in the first
line of the file, in which case it applies to all the code in that file.
-
++++
*** `eval' takes a new optional argument `lexical' to choose the new lexical
binding instead of the old dynamic binding mode.
-
++++
*** Lexically scoped interpreted functions are represented with a new form
of function value which looks like (closure ENV ARGS &rest BODY).
*** New macro `letrec' to define recursive local functions.
-
++++
*** 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.
** `glyphless-char-display' can now distinguish between graphical and
text terminal display, via a char-table entry that is a cons cell.
++++
** `open-network-stream' can now be used to open an encrypted stream.
It now accepts an optional `:type' parameter for initiating a TLS
connection, directly or via STARTTLS. To do STARTTLS, additional
** 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.)
-** `server-eval-at' is provided to allow evaluating forms on different
-Emacs server instances.
+** Debugger changes
++++
+*** New macro `condition-case-unless-debug' (this was actually added in
+Emacs 23.1 as condition-case-no-debug, but not advertised)
++++
+*** The macro `with-demoted-errors' was added in Emacs 23.1, but not advertised.
+---
+*** Variable `stack-trace-on-error' removed.
++++
+*** The debugger can now "continue" from an error, which means it will
+jump to the error handler as if the debugger had not been invoked
+instead of jumping all the way to the top-level.
++++
+*** Set `debug-on-event' to enter the debugger on events like SIGUSR1.
+This can be useful when `inhibit-quit' is set.
-** `call-process' allows a `(:file "file")' spec to redirect STDOUT to
-a file.
++++
+** The new function `server-eval-at' allows evaluation of Lisp forms on
+named Emacs server instances, using TCP sockets.
----
-** Variable `stack-trace-on-error' removed.
-Also the debugger can now "continue" from an error, which means it will jump
-to the error handler as if the debugger had not been invoked instead of
-jumping all the way to the top-level.
++++
+** `call-process' and `call-process-region' allow a `(:file "file")' spec
+to redirect STDOUT to a file.
+++
** The function format-time-string now supports the %N directive, for
higher-resolution time stamps.
-** New function `read-char-choice' reads a restricted set of characters,
-discarding any inputs not inside the set.
+** New input reading functions
++++
+*** New function `read-char-choice' reads a restricted set of
+characters, discarding any inputs not inside the set.
++++
+*** The command `read-color' now requires a match for a color name
+or RGB triplet, instead of signaling an error if the user provides
+invalid input.
+---
+**** `facemenu-read-color' is now an alias for `read-color'.
++++
** `image-library-alist' is renamed to `dynamic-library-alist'.
The variable is now used to load all kind of supported dynamic libraries,
not just image libraries. The previous name is still available as an
obsolete alias.
-** New variable `syntax-propertize-function'.
+** Syntax parsing changes
++++
+*** New variable `syntax-propertize-function'.
This replaces `font-lock-syntactic-keywords' which is now obsolete.
This allows syntax-table properties to be set independently from font-lock:
just call syntax-propertize to make sure the text is propertized.
syntax-propertize-via-font-lock to reuse old font-lock-syntactic-keywords
as-is; and syntax-propertize-rules which provides a new way to specify
syntactic rules.
-
-** New hook post-self-insert-hook run at the end of self-insert-command.
++++
+*** Syntax tables support a new "comment style c" additionally to style b.
+++
-** Syntax tables support a new "comment style c" additionally to style b.
+** New hook post-self-insert-hook run at the end of self-insert-command.
+---
** frame-local variables cannot be let-bound any more.
** Major and minor mode changes
+++
+*** `set-auto-mode' now respects mode: local variables at the end of files,
+as well as those in the -*- line.
++++
*** `prog-mode' is a new major mode from which programming modes
should be derived.
-
++++
**** `prog-mode-hook' can be used to enable features for programming
modes, e.g. (add-hook 'prog-mode-hook 'flyspell-prog-mode) to enable
on-the-fly spell checking for comments and strings.
-
++++
*** New hook `change-major-mode-after-body-hook', run by
`run-mode-hooks' just before any other mode hooks.
-
-*** Enabled globalized minor modes can be disabled in specific modes,
-by running (FOO-mode-hook 0) via a mode hook.
-
-*** `define-minor-mode' accepts a new keyword :variable.
++++
+*** Enabled globalized minor modes can be disabled in specific major modes.
+If the global mode is global-FOO-mode, then run (FOO-mode -1) in the
+major mode's hook, where FOO-mode toggles the mode on a per-buffer basis.
++++
+*** `define-minor-mode' accepts new keywords :variable, :after-hook.
+++
** `delete-file' and `delete-directory' now accept optional arg TRASH.
both non-nil. Interactively, TRASH defaults to t, unless a prefix
argument is supplied (see Trash changes, above).
-** `facemenu-read-color' is now an alias for `read-color'.
-The command `read-color' now requires a match for a color name or RGB
-triplet, instead of signaling an error if the user provides a invalid
-input.
++++
+** New file predicate functions: files-equal-p, file-subdir-of-p.
++++
** 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 API
++++
*** Animated images support (currently animated gifs only).
++++
**** `image-animated-p' returns non-nil if an image can be animated.
++++
**** `image-animate' animates a supplied image spec.
++++
**** `image-animate-timer' returns the timer object for an image that
is being animated.
-*** `image-extension-data' is renamed to `image-metadata'.
+---
+*** `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.
-Then the function `imagemagick-types' returns a list of image file
++++
+*** Image mode can view any image type that ImageMagick supports.
+This requires Emacs to be built with ImageMagick support.
+If your Emacs has ImageMagick support, then the function
+`imagemagick-types' is defined, and 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:
*** New library `gnutls.el'.
This requires Emacs to have been built with GnuTLS support.
-The main functions are `open-gnutls-stream' and `gnutls-negotiate'.
-It's easiest to use these functions through `open-network-stream'
-because it can upgrade connections through STARTTLS opportunistically
-or use plain SSL, depending on your needs. For debugging, set
-`gnutls-log-level' greater than 0.
+If your Emacs has GnuTLS support, the function gnutls-available-p is
+defined and returns non-nil. The main functions are `open-gnutls-stream'
+and `gnutls-negotiate'. It's easiest to use these functions through
+`open-network-stream' because it can upgrade connections through
+STARTTLS opportunistically or use plain SSL, depending on your needs.
+For debugging, set `gnutls-log-level' greater than 0.
** Isearch
+---
*** New hook `isearch-update-post-hook' that runs in `isearch-update'.
+++
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.
-
-+++
-** `set-auto-mode' now respects mode: local variables at the end of files,
-as well as those in the -*- line.
+---
+** 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.
---
** rx.el has a new `group-n' construct for explicitly numbered groups.
-** keymaps can inherit from multiple parents.
-
-** `debug-on-event' lets you debug Emacs when stuck because of inhibit-quit.
++++
+** 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))
+++
-** 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.
** Obsolete functions and variables
+---
+*** `tooltip-use-echo-area' is obsolete.
+Rather than setting this to t, disable Tooltip mode instead.
+
++++
*** buffer-substring-filters is obsolete.
Use `filter-buffer-substring-functions' instead.
+---
*** `byte-compile-disable-print-circle' is obsolete.
+---
*** `deferred-action-list' and `deferred-action-function' are obsolete.
+Use `post-command-hook' instead.
+
+++
*** `font-lock-maximum-size' is obsolete.
** 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.)
+
++++
+** On Mac OS X, dragging a file into Emacs visits the file, like on
+other platforms, rather than inserting its contents into the buffer.
\f
----------------------------------------------------------------------