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
+++
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.
+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.
----
** 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
*** 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.
++++
+** 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' 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
** 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
** 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'.
---
*** 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.
-
-**** `vc-update' is now an alias for `vc-pull'.
+`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.
-**** 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.
---
*** pc-mode.el is obsolete (CUA mode is much more comprehensive).
+[FIXME gnus.texi, message.texi need updating]
*** pgg is obsolete (use EasyPG instead)
---
** Miscellaneous
-*** FIXME: xdg-open for reportbug, 2010/08.
-
+++
*** 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.
** Occur Edit mode applies edits made in *Occur* buffers to the
original buffers. It is bound to "e" in Occur 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.
\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
---
** 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 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
** `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
(A version of this macro was actually added in Emacs 23.2 but was not
advertised at the time.)
+** Debugger changes
+++
-** The macros `condition-case-no-debug' and `with-demoted-errors' were
-added in Emacs 23.1, but not advertised.
+*** 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.
+++
** The new function `server-eval-at' allows evaluation of Lisp forms on
** `call-process' and `call-process-region' allow a `(:file "file")' spec
to redirect STDOUT to a file.
----
-** 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.
-
+++
** The function format-time-string now supports the %N directive, for
higher-resolution time stamps.
+** New input reading functions
+++
-** New function `read-char-choice' reads a restricted set of characters,
-discarding any inputs not inside the set.
+*** 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'.
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 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 a new keyword :variable.
+*** `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
-invalid input.
+** New file predicate functions: files-equal-p, file-subdir-of-p.
+++
** Tool-bars can display separators.
+++
*** 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
+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'.
*** 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 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.
inherits from multiple maps, eg:
(set-keymap-parent newmap (make-composed-keymap othermap parent))
-+++
-** 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 ## that stands for the empty symbol.
This means that the empty symbol can now be read back. Also, #: by itself
** 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
----------------------------------------------------------------------
This file is part of GNU Emacs.