* Installation Changes in Emacs 25.1
+++
-
** Building Emacs now requires C99 or later.
-** The variable `redisplay-dont-pause' is obsolete.
-
** Building Emacs now requires GNU make, version 3.81 or later.
-+++
-** `call-process-shell-command' and `process-file-shell-command'
-don't take "&rest args" any more.
-
** By default, Emacs no longer works on IRIX. We expect that Emacs
users are not affected by this, as SGI stopped supporting IRIX in
December 2013. If you are affected, please send a bug report. You
undumping code to GCC under IRIX, or by configuring --with-wide-int,
or by sticking with Emacs 24.4.
-** ERC
-
** 'configure' now prefers gnustep-config when configuring GNUstep.
If gnustep-config is not available, the old heuristics are used.
-+++
-*** New option `erc-rename-buffers'.
-
----
-*** New faces `erc-my-nick-prefix-face' and `erc-nick-prefix-face'.
-
-+++
-*** `erc-format-@nick' displays all user modes instead of only op and voice.
-
----
-*** The display of irc commands in the current buffer has been disabled.
-
----
-*** `erc-version' now follows the Emacs version.
-
-** Obsolete packages
-
---
-*** cc-compat.el
+** The configure option '--with-pkg-config-prog' has been removed.
+Use './configure PKG_CONFIG=/full/name/of/pkg-config' if you need to.
---
-** The configure option `--with-pkg-config-prog' has been removed.
-Use './configure PKG_CONFIG=/full/name/of/pkg-config' if you need to.
+** The configure option '--with-mmdf' has been removed.
+It was no longer useful, as it relied on libraries that are no longer
+supported, and its presence led to confusion during configuration.
+This affects only the 'movemail' utility; Emacs itself can still
+process MMDF-format files as before.
** The configure option '--enable-silent-rules' is now the default,
and silent rules are now quieter. To get the old behavior where
In particular, it now returns the average width of the font's
characters, which can be used for geometry-related calculations.
+** A new function `default-font-width' returns the average width of a
+character in the current buffer's default font. If the default face
+is remapped (see `face-remapping-alist'), the value for the remapped
+face is returned. This function complements the existing function
+`default-font-height'.
+
+** New functions `window-font-height' and `window-font-width' return
+the height and average width of characters in a specified face and
+window. If FACE is remapped (see `face-remapping-alist'), the
+function returns the information for the remapped face.
+
+** A new function `window-max-chars-per-line' returns the maximal
+number of characters that can be displayed on one line. If a face
+and/or window are provided, these values are used for the
+calculation. This function is different from `window-body-width' in
+that it accounts for (i) continuation glyphs, (ii) the size of the
+font, and (iii) the specified window.
+
+** New possible value for `system-type': nacl.
+
++++
+** New variable `inhibit-message', when bound to non-nil, inhibits
+ `message' and related functions from displaying messages the Echo
+ Area. The output is still logged to the *Messages* buffer.
+
\f
* Editing Changes in Emacs 25.1
+** Successive single-char deletions are collapsed in the undo-log just like
+successive char insertions.
+
** Unicode names entered via C-x 8 RET now use substring completion by default.
** New minor mode global-eldoc-mode is enabled by default.
** You can access `mouse-buffer-menu' (C-down-mouse-1) using C-f10.
++++
+** New buffer-local `electric-pair-local-mode'.
+
\f
* Changes in Specialized Modes and Packages in Emacs 25.1
+
+** New `xterm-screen-extra-capabilities' config.
+
+** The `save-place' variable is replaced by a `save-place-mode'.
+
+** Midnight-mode
+*** `midnight-mode' is a proper minor mode.
+*** clean-buffer-*-regexps can now specify buffers via predicate functions.
+
+** In xterms, killing text now also sets the CLIPBOARD/PRIMARY selection
+in the surrounding GUI (using the OSC-52 escape sequence). This only works
+if your xterm supports it and enables the `allowWindowOps' options (disabled
+by default at least in Debian, for security reasons).
+
+** xterm-mouse-mode now supports mouse-tracking (if your xterm supports it).
+
** package.el
+
+*** New "external" package status.
+An external package is any installed package that's not built-in and
+not from `package-user-dir', which usually means it's from an entry in
+`package-directory-list'. They are treated much like built-in
+packages, in that they cannot be deleted through the package menu and
+are not considered for upgrades.
+
+The effect, is that a user can manually place a specific version of a
+package inside `package-directory-list' and the package menu will
+always respect that.
+
+*** If a package is available on multiple archives and one has higher
+priority (as per `package-archive-priorities') only that one is
+listed. This can be configured with `package-menu-hide-low-priority'.
+
+*** `package-menu-hide-obsolete' now toggles the hiding of packages.
+This includes the above-mentioned low-priority packages, as well as
+available packages whose version is lower than the currently installed
+version (which were previously impossible to display).
+This allows users to downgrade a package if a lower version is
+available.
+
+*** When filtering the package menu, keywords starting with "arc:" or
+"status:" represent package archive or status, respectively, instead
+of actual keywords.
+
+*** Most functions which involve downloading information now take an
+ASYNC argument. If it is non-nil, package.el performs the download(s)
+asynchronously.
+
+*** New variable `package-menu-async' controls whether the
+package-menu uses asynchronous downloads.
+
*** `package-install-from-buffer' and `package-install-file' work on directories.
This follows the same rules as installing from a .tar file, except the
-pkg file is optional.
** EIEIO
++++
*** The `:protection' slot option is not obeyed any more.
++++
*** The `newname' argument to constructors is optional&deprecated.
If you need your objects to be named, do it by inheriting from `eieio-named'.
++++
*** The <class>-list-p and <class>-child-p functions are declared obsolete.
++++
*** The <class> variables are declared obsolete.
++++
*** The <initarg> variables are declared obsolete.
*** defgeneric and defmethod are declared obsolete.
++++
*** `constructor' is now an obsolete alias for `make-instance'.
** ido
transformed into multipart/related messages before sending.
** pcase
-*** New UPatterns `quote' and `app'.
+*** New UPatterns `quote', `app', `cl-struct', and `eieio'.
*** New UPatterns can be defined with `pcase-defmacro'.
+++
*** New vector QPattern.
** New ERT function `ert-summarize-tests-batch-and-exit'.
+** New js.el option `js-indent-first-init'.
+
---
** `Info-fontify-maximum-menu-size' can be t for no limit.
*** Two new faces `compare-windows-removed' and `compare-windows-added'
replace the obsolete face `compare-windows'.
+---
+*** `log-edit-insert-changelog' converts "(tiny change)" to
+"Copyright-paperwork-exempt: yes". Set `log-edit-rewrite-tiny-change'
+nil to disable this.
+
** VHDL mode supports VHDL'08.
** Calculator: decimal display mode uses "," groups, so it's more
*** Custom variable `eudc-inline-expansion-format' defaults to
"Firstname Surname <mail-address>".
+*** Custom variable `eudc-options-file' defaults to
+"~/.emacs.d/eudc-options".
+
*** New custom variable `ldap-ldapsearch-password-prompt-regexp' to
allow overriding the regular expression that recognizes the ldapsearch
command line's password prompt.
+** Eshell
+
++++
+*** The new built-in command `clear' can scroll window contents out of sight.
+If provided with an optional non-nil argument, the scrollback contents will be cleared.
+
+** Browse-url
+
+*** Support for the Conkeror web browser.
+
+---
+*** Support for several ancient browsers is now officially obsolete.
+
+++
** tar-mode: new `tar-new-entry' command, allowing for new members to
be added to the archive.
---
*** gulp.el
++++
+** The character classes [:graph:] and [:print:] in regular expressions
+no longer match every multibyte character. Instead, Emacs now
+consults the Unicode character properties to determine which
+characters are graphic or printable. In particular, surrogates and
+unassigned codepoints are now rejected. If you want the old behavior,
+use [:multibyte:] instead.
+
\f
* New Modes and Packages in Emacs 25.1
\f
* Incompatible Lisp Changes in Emacs 25.1
+** `indirect-function' does not signal `void-function' any more.
+This is mostly a bug-fix, since this change was missed back in 24.4 when
+symbol-function was changed not to signal `void-function' any more.
+*** As a consequence, the second arg of `indirect-function' is now obsolete.
+
+** Comint, term, and compile do not set the EMACS env var any more.
+Use the INSIDE_EMACS environment variable instead.
+
+** `save-excursion' does not save&restore the mark any more.
+
+** read-buffer-function can now be called with a 4th argument (`predicate').
+
** completion-table-dynamic stays in the minibuffer.
If you want the old behavior of calling the function in the buffer
from which the minibuffer was entered, call it with the new argument
** `cl-the' now asserts that its argument is of the given type.
+** `process-running-child-p` may now return a numeric process
+group ID instead of `t'.
+
+++
** Mouse click events on mode line or header line no longer include
any reference to a buffer position. The 6th member of the mouse
If you want the old behavior where they matched any character with
word syntax, use `\sw' instead.
++++
+** The `diff' command uses the unified format now. To restore the old
+behavior, set `diff-switches' to `-c'.
+
\f
* Lisp Changes in Emacs 25.1
+** The default value of `load-read-function' is now `read'.
+
+** New hook `pre-redisplay-functions', a bit easier to use than pre-redisplay-function.
+
+** The second arg of `looking-back' should always be provided explicitly.
+
+** Obsolete text properties `intangible', `point-entered', and `point-left'.
+Replaced by properties `cursor-intangible' and `cursor-sensor-functions',
+implemented by the new `cursor-intangible-mode' and
+`cursor-sensor-mode' minor modes.
+
+** New process type `pipe', which can be used in combination with the
+`:stderr' keyword of make-process to handle standard error output
+of subprocess.
+
+** New function `make-process' provides an alternative interface to
+`start-process'. It allows programs to set process parameters such as
+process filter, sentinel, etc., through keyword arguments (similar to
+`make-network-process').
+
+** `read-buffer' takes a new `predicate' argument.
+
** Emacs Lisp now supports generators.
** New finalizer facility for running code when objects
+++
** Function `write-region' no longer outputs "Wrote FILE" in batch mode.
+** If `pwd' is called with a prefix argument, insert the current default
+directory at point.
+
---
** New utilities in subr-x.el:
*** New macros `if-let' and `when-let' allow defining bindings and to
** New function `set-binary-mode' allows to switch a standard stream
of the Emacs process to binary I/O mode.
+** Miscellaneous name change
+
+For consistency with the usual Emacs spelling, the Lisp variable
+`hfy-optimisations' has been renamed to `hfy-optimizations'.
+The old name should still work, as an obsolescent alias.
+
\f
* Changes in Frames and Windows Code in Emacs 25.1