\f
* Changes in Emacs 25.2
++++
+** The new user option 'mouse-select-region-move-to-beginning'
+controls the position of point when double-clicking mouse-1 on the end
+of a parenthetical grouping or string-delimiter: the default value nil
+keeps point at the end of the region, setting it to non-nil moves
+point to the beginning of the region.
+
---
** 'find-library-name' will now fall back on looking at 'load-history'
to try to locate libraries that have been loaded with an explicit path
'file-attribute-device-number'.
+++
-** The new function 'buffer-hash' computes compute a fast, non-consing
-hash of a buffer's contents.
+** The new function 'buffer-hash' computes a fast, non-consing hash of
+a buffer's contents.
---
** 'fill-paragraph' no longer marks the buffer as changed unless it
** The new function 'read-multiple-choice' prompts for multiple-choice
questions, with a handy way to display help texts.
++++
+** 'switch-to-buffer-preserve-window-point' now defaults to t.
+
\f
* Editing Changes in Emacs 25.2
'undo', undo the last replacement; bound to 'u'.
'undo-all', undo all replacements; bound to 'U'.
+** 'delete-trailing-whitespace' deletes whitespace after form feed.
+In modes where form feed was treated as a whitespace character,
+'delete-trailing-whitespace' would keep lines containing it unchanged.
+It now deletes whitespace after the last form feed thus behaving the
+same as in modes where the character is not whitespace.
+
\f
* Changes in Specialized Modes and Packages in Emacs 25.2
+** Ibuffer
+
+---
+*** A new command 'ibuffer-copy-buffername-as-kill'; bound
+to 'B'.
+
+---
+*** New command 'ibuffer-change-marks'; bound to '* c'.
+
+---
+*** A new command 'ibuffer-mark-by-locked' to mark
+all locked buffers; bound to '% L'.
+
+---
+*** A new option 'ibuffer-locked-char' to indicate
+locked buffers; Ibuffer shows a new column displaying
+'ibuffer-locked-char' for locked buffers.
+
+---
+*** A new command 'ibuffer-unmark-all-marks' to unmark
+all buffers without asking confirmation; bound to
+'U'; 'ibuffer-do-replace-regexp' bound to 'r'.
+
+---
+*** A new command `ibuffer-mark-by-content-regexp' to mark buffers
+whose content matches a regexp; bound to '% g'.
+
+---
+*** Two new options `ibuffer-never-search-content-name' and
+`ibuffer-never-search-content-mode' used by
+`ibuffer-mark-by-content-regexp'.
+
** Compilation mode
---
*** Ediff can be prevented from pausing 1 second after reaching a
breakpoint (e.g. with "f" and "o") by customizing the new option
-`edebug-sit-on-break'.
+'edebug-sit-on-break'.
+
+** ElDoc
+
++++
+*** 'eldoc-documentation-functions' replaces 'eldoc-documentation-function'.
** eww
*** New setf-able function to access and set image parameters is
provided: 'image-property'.
+---
+** The default 'Info-default-directory-list' no longer checks some obsolete
+directory suffixes (gnu, gnu/lib, gnu/lib/emacs, emacs, lib, lib/emacs)
+when searching for info directories.
+
+++
** The commands that add ChangeLog entries now prefer a VCS root directory
for the ChangeLog file, if none already exists. Customize
*** 'message-use-idna' now defaults to t (because Emacs comes with
built-in IDNA support now).
+---
+*** When sending HTML messages with embedded images, and you have
+exiftool installed, and you rotate images with EXIF data (i.e.,
+JPEGs), the rotational information will be inserted into the outgoing
+image in the message. (The original image will not have its
+orientation affected.)
+
---
*** The 'message-valid-fqdn-regexp' variable has been removed, since
there are now top-level domains added all the time. Message will no
+++
*** New connection method "doas" for OpenBSD hosts.
++++
+*** New connection method "gdrive", which allows to access Google
+Drive onsite repositories.
+
---
** 'auto-revert-use-notify' is set back to t in 'global-auto-revert-mode'.
colorful faces to make it more obvious to the user what the state is.
See the 'vc-faces' customization group.
+** CC mode
+
+*** Opening a .h file will turn C or C++ mode depending on language used.
+This is done with the help of 'c-or-c++-mode' function which analyses
+contents of the buffer to determine whether it's a C or C++ source
+file.
+
\f
* New Modes and Packages in Emacs 25.2
+** New Elisp data-structure library `radix-tree'.
+
\f
* Incompatible Lisp Changes in Emacs 25.2
before running. This is controlled by the 'grep-save-buffers'
variable.
++++
+** The variable 'text-quoting-style' no longer affects the treatment
+of curved quotes in format arguments to functions like 'message' and
+'format-message'. In particular, when this variable's value is
+'grave', all quotes in formats are output as-is.
+
+** Functions like 'check-declare-file' and 'check-declare-directory'
+now generate less chatter and more-compact diagnostics. The auxiliary
+function 'check-declare-errmsg' has been removed.
+
\f
* Lisp Changes in Emacs 25.2
+** New var `definition-prefixes' is a hashtable mapping prefixes to the
+files where corresponding definitions can be found. This can be used
+to fetch definitions that are not yet loaded, for example for `C-h f'.
+
** New var syntax-ppss-table to control the syntax-table used in syntax-ppss.
+++
-** `define-derived-mode' can now specify an :after-hook form, which
+** 'define-derived-mode' can now specify an :after-hook form, which
gets evaluated after the new mode's hook has run. This can be used to
incorporate configuration changes made in the mode hook into the
mode's setup.
FIXME As an experiment, nil is the current default.
If no insurmountable problems before next release, it can stay that way.
-** 'ert-with-function-mocked' of 'ert-x package allows mocking of functions
-in unit tests.
-
---
** 'gnutls-boot' now takes a parameter :complete-negotiation that says
that negotiation should complete even on non-blocking sockets.
'current-time-string', 'current-time-zone', 'decode-time',
'format-time-string', and 'set-time-zone-rule'.
++++
+*** New basic face 'fixed-pitch-serif', for a fixed-width font with serifs.
+The Info-quoted and tex-verbatim faces now default to inheriting from it.
+
+** New built-in function `mapcan' which avoids unnecessary consing (and garbage
+ collection).
+
\f
* Changes in Emacs 25.2 on Non-Free Operating Systems
---
** The configure option '--with-gameuser' now allows you to specify a
group instead of a user if its argument is prefixed by ':' (a colon).
-This will cause the game score files in ${localstatedir}/games/emacs
+This will cause the game score files in "${localstatedir}/games/emacs"
to be owned by that group, and the helper program for updating them to
be installed setgid. The option now defaults to the 'games' group.
'initial-buffer-choice' is non-nil, display both the file and
'initial-buffer-choice'. When Emacs is given more than one file and
'initial-buffer-choice' is non-nil, show 'initial-buffer-choice'
-and *Buffer List*. This makes Emacs convenient to use from the
+and '*Buffer List*'. This makes Emacs convenient to use from the
command line when 'initial-buffer-choice' is non-nil.
+++
the 'network-security-level' variable.
+++
-** C-h l now also lists the commands that were run.
+** 'C-h l' now also lists the commands that were run.
+++
-** x-select-enable-clipboard is renamed select-enable-clipboard
-and x-select-enable-primary is renamed select-enable-primary.
+** 'x-select-enable-clipboard' is renamed 'select-enable-clipboard'
+and 'x-select-enable-primary' is renamed 'select-enable-primary'.
Additionally they both now apply to all systems (OSX, GNUstep, Windows, you
name it), with the proviso that on some systems (e.g. Windows)
-select-enable-primary is ineffective since the system doesn't
+'select-enable-primary' is ineffective since the system doesn't
have the equivalent of a primary selection.
+++
'even-window-sizes' and now handles window widths as well.
+++
-** terpri gets an optional arg ENSURE to conditionally output a newline.
+** 'terpri' gets an optional arg ENSURE to conditionally output a newline.
+++
** 'insert-register' now leaves point after the inserted text
+++
** The Emacs pseudo-random number generator can be securely seeded.
-On system where Emacs can access the system entropy or some other
+On systems where Emacs can access the system entropy or some other
cryptographically secure random stream, it now uses that when 'random'
-is called with its argument 't'. This allows cryptographically strong
+is called with its argument t. This allows cryptographically strong
random values; in particular, the Emacs server now uses this facility
to produce its authentication key.
* Editing Changes in Emacs 25.1
+++
-** M-x suggests shorthands and ignores obsolete commands for completion.
+** 'M-x' suggests shorthands and ignores obsolete commands for completion.
** Changes in undo
** New and improved facilities for inserting Unicode characters
---
-*** Unicode names entered via C-x 8 RET now use substring completion by default.
+*** Unicode names entered via 'C-x 8 RET' now use substring completion
+by default.
+++
-*** C-x 8 now has shorthands for several chars, such as U+2010
+*** 'C-x 8' now has shorthands for several chars, such as U+2010
(HYPHEN), U+2011 (NON-BREAKING HYPHEN), and U+2012 (FIGURE DASH). As
-before, you can type C-x 8 C-h to list shorthands.
+before, you can type 'C-x 8 C-h' to list shorthands.
+++
-*** New minor mode electric-quote-mode for using curved quotes as you
+*** New minor mode 'electric-quote-mode' for using curved quotes as you
type. See also the new variable 'text-quoting-style'.
---
-** New minor mode global-eldoc-mode is enabled by default.
+** New minor mode 'global-eldoc-mode' is enabled by default.
---
** Emacs now uses "bracketed paste mode" on text terminals that support it.
standards.
+++
-** You can access 'mouse-buffer-menu' (C-down-mouse-1) using C-f10.
+** You can access 'mouse-buffer-menu' ('C-down-mouse-1') using 'C-f10'.
+++
** New buffer-local 'electric-pair-local-mode'.
+++
** New variable 'fast-but-imprecise-scrolling' inhibits
fontification during full screen scrolling operations, giving less
-hesitant operation during auto-repeat of C-v, M-v at the cost of
+hesitant operation during auto-repeat of 'C-v', 'M-v' at the cost of
possible inaccuracies in the end position.
+++
is intended for adding to 'kill-emacs-query-functions'.
+++
-** The old 'C-x w' bindings in hi-lock-mode are officially deprecated
-in favor of the global 'M-s h' bindings introduced in Emacs-23.1.
+** The old 'C-x w' bindings in 'hi-lock-mode' are officially deprecated
+in favor of the global 'M-s h' bindings introduced in Emacs 23.1.
They'll disappear soon.
\f
*** The desktop format version has been upgraded from 206 to 208.
Although Emacs 25.1 can read a version 206 desktop, earlier Emacsen
cannot read a version 208 desktop. To upgrade your desktop file, you
-must explicitly request the upgrade, by C-u M-x desktop-save. You are
+must explicitly request the upgrade, by 'C-u M-x desktop-save'. You are
recommended to do this as soon as you have firmly upgraded to Emacs
25.1 (or later). Should you ever need to downgrade your desktop file
-to version 206, you can do this with C-u C-u M-x desktop-save.
+to version 206, you can do this with 'C-u C-u M-x desktop-save'.
+
+---
+*** desktop-restore-in-current-display now defaults to t, not nil.
+That is, Emacs by default now restores frames into the current display.
+++
-** New function 'bookmark-set-no-overwrite' bound to C-x r M.
+** New function 'bookmark-set-no-overwrite' bound to 'C-x r M'.
It raises an error if a bookmark of that name already exists,
unlike 'bookmark-set' which silently updates an existing bookmark.
**** New play/pause command 'mpc-toggle-play' bound to 's'
**** 'g' bound to new command 'mpc-seek-current' will navigate current
- track.
+track.
**** New commands 'mpc-toggle-{consume,repeat,single,shuffle}' for
- toggling playback modes.
+toggling playback modes.
---
*** Now supports connecting to a UNIX domain socket.
+++
** Shell
-When you invoke 'shell' interactively, the *shell* buffer will now
+When you invoke 'shell' interactively, the '*shell*' buffer will now
display in a new window. However, you can customize this behavior via
the 'display-buffer-alist' variable. For example, to get
-the old behavior -- *shell* buffer displays in current window -- use
+the old behavior -- '*shell*' buffer displays in current window -- use
(add-to-list 'display-buffer-alist
'("^\\*shell\\*$" . (display-buffer-same-window))).
Use the equivalent facilities from cl-generic.el instead.
+++
*** 'constructor' is now an obsolete alias for 'make-instance'.
---- 'pcase' accepts a new UPattern 'eieio'.
+---
+*** 'pcase' accepts a new UPattern 'eieio'.
** ido
+++
-*** New command 'ido-bury-buffer-at-head' bound to C-S-b
-Bury the buffer at the head of 'ido-matches', analogous to how C-k
+*** New command 'ido-bury-buffer-at-head' bound to 'C-S-b'.
+Bury the buffer at the head of 'ido-matches', analogous to how 'C-k'
kills the buffer at head.
---
A).
Character folding is enabled by customizing 'search-default-mode' to
-the value 'character-fold-to-regexp'. You can also toggle character
+the value 'char-fold-to-regexp'. You can also toggle character
folding in the middle of a search by typing 'M-s ''.
'query-replace' honors character folding if the new variable
-'replace-character-fold' is customized to a non-nil value.
+'replace-char-fold' is customized to a non-nil value.
+++
*** New user option 'search-default-mode'.
as in previous Emacs versions).
+++
-*** New function 'character-fold-to-regexp' can be used
+*** New function 'char-fold-to-regexp' can be used
by searching commands to produce a regexp matching anything that
-character-folds into STRING.
+char-folds into STRING.
+++
-*** The new M-s M-w key binding uses eww to search the web for the
+*** The new 'M-s M-w' key binding uses eww to search the web for the
text in the region. The search engine to use for this is specified by
the customizable variable 'eww-search-prefix'.
+++
-*** Query-replace history is enhanced.
-When query-replace reads the FROM string from the minibuffer, typing
+*** 'query-replace' history is enhanced.
+When 'query-replace' reads the FROM string from the minibuffer, typing
'M-p' will now show previous replacements as "FROM SEP TO", where FROM
and TO are the original text and its replacement, and SEP is an arrow
string defined by the new variable 'query-replace-from-to-separator'.
result of the calculation into the current buffer.
+++
-** In Edebug, you can now set the initial mode with C-x C-a C-m. With
-this you can tell Edebug not to stop at the start of the first
+** In Edebug, you can now set the initial mode with 'C-x C-a C-m'.
+With this you can tell Edebug not to stop at the start of the first
instrumented function.
** ElDoc
+++
-*** New minor mode 'global-eldoc-mode'
+*** New minor mode 'global-eldoc-mode'.
It is turned on by default, and affects '*scratch*' and other buffers
whose major mode supports Emacs Lisp.
---
-*** 'eldoc-documentation-function' now defaults to 'ignore'
+*** 'eldoc-documentation-function' now defaults to 'ignore'.
---
*** 'describe-char-eldoc' displays information about character at point,
*** Rectangle Mark mode can have corners past EOL or in the middle of a TAB.
+++
-*** C-x C-x in rectangle-mark-mode now cycles through the four corners.
+*** 'C-x C-x' in 'rectangle-mark-mode' now cycles through the four corners.
*** 'string-rectangle' provides on-the-fly preview of the result.
+++
** Calendar and diary
+++
-*** The default 'diary-file' is now located in .emacs.d.
+*** The default 'diary-file' is now located in "~/.emacs.d".
+++
*** New commands to insert diary entries with Chinese dates:
libxml2 or if you have the Lynx browser installed. By default, Rmail
will display the HTML version of a mail message that has both HTML and
plain text parts, if display of HTML email is possible; customize the
-'rmail-mime-prefer-html' option to 'nil' if you don't want that.
+'rmail-mime-prefer-html' option to nil if you don't want that.
+++
*** In the commands that make summaries by subject, recipients, or senders,
---
*** If URL is used with a https connection, the first callback argument
-plist will contain a :peer element that has the output of
+PLIST will contain a :peer element that has the output of
'gnutls-peer-status' (if Emacs is built with GnuTLS support).
** Tramp
+++
*** Basic push support, via 'vc-push', bound to 'C-x v P'.
Implemented for Bzr, Git, Hg. As part of this change, the pre-existing
-(undocumented) command vc-hg-push now behaves slightly differently.
+(undocumented) command 'vc-hg-push' now behaves slightly differently.
+++
-*** The new command vc-region-history shows the log+diff of the active region.
+*** The new command 'vc-region-history' shows the log+diff of the active region.
+++
*** You can refresh the VC state of a file buffer with 'M-x vc-refresh-state'.
*** New custom variable 'hide-ifdef-expand-reinclusion-protection' to prevent
reinclusion protected (a.k.a. "idempotent") header files from being hidden.
(This could happen when an idempotent header file is visited again,
-when its guard symbol is already defined.) Defaults to 't'.
+when its guard symbol is already defined.) Defaults to t.
---
*** New custom variable 'hide-ifdef-exclude-define-regexp' to define symbol
helper functions) obsolete.
+++
-** New package Xref replaces Etags's front-end and UI
+** New package Xref replaces Etags's front-end and UI.
The new package Xref provides a generic framework and new commands to
find and move to definitions of functions, macros, data structures
+++
*** 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.
+If provided with an optional non-nil argument, the scrollback contents
+will be cleared.
+++
*** New buffer syntax '#<buffer-name>', which is equivalent to
*** Support for several ancient browsers is now officially obsolete.
+++
-** tar-mode: new 'tar-new-entry' command, allowing for new members to
+** 'tar-mode': new 'tar-new-entry' command, allowing for new members to
be added to the archive.
** Autorevert
** Dired
+++
-*** The command 'dired-do-compress' bound to 'Z' now can compress
+*** The command 'dired-do-compress', bound to 'Z', now can compress
directories and decompress zip files.
+++
-*** New command 'dired-do-compress-to' bound to 'c' can be used to
+*** New command 'dired-do-compress-to', bound to 'c', can be used to
compress many marked files into a single named archive. The
compression command is determined from the new
'dired-compress-files-alist' variable.
header.
+++
-*** 'tabulated-list-print' takes a second optional argument, update,
+*** 'tabulated-list-print' takes a second optional argument, UPDATE,
which specifies an alternative printing method which is faster when
few or no entries have changed.
node "Generic Functions" in the Emacs Lisp manual for more details.
---
-** scss-mode (a minor variant of css-mode) is a major mode for editing
+** 'scss-mode' (a minor variant of 'css-mode') is a major mode for editing
SCSS (Sassy CSS) files.
---
-** let-alist is a new macro (and a package) that allows one to easily
+** 'let-alist' is a new macro (and a package) that allows one to easily
let-bind the values stored in an alist.
---
evaluation of forms.
---
-** js-jsx-mode (a minor variant of js-mode) provides indentation
+** 'js-jsx-mode' (a minor variant of 'js-mode') provides indentation
support for JSX, an XML-like syntax extension to ECMAScript.
\f
+++
** 'syntax-begin-function' is declared obsolete.
-Removed font-lock-beginning-of-syntax-function and the SYNTAX-BEGIN
-slot in font-lock-defaults.
+Removed 'font-lock-beginning-of-syntax-function' and the SYNTAX-BEGIN
+slot in 'font-lock-defaults'.
+++
** The new implementation of Subword mode affects word movement everywhere.
to the special value 'dragging' in the body of the form.
---
-** The optional 'predicate' argument of 'lisp-complete-symbol' no longer
+** The optional PREDICATE argument of 'lisp-complete-symbol' no longer
has any effect. (This change was made in Emacs 24.4 but was not
advertised at the time.)
+++
** '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.
+'symbol-function' was changed not to signal 'void-function' any more.
+++
*** As a consequence, the second arg of 'indirect-function' is now obsolete.
+++
-** M-x shell and M-x compile no longer set the EMACS environment variable.
+** 'M-x shell' and 'M-x compile' no longer set the EMACS environment variable.
This avoids clashing when other programs use the variable for other purposes.
-Although M-x term still sets EMACS for compatibility with Bash 4.3 and earlier,
-this is deprecated and will be phased out when Bash 4.4 or later takes over.
-Use the INSIDE_EMACS environment variable instead.
+Although 'M-x term' still sets EMACS for compatibility with Bash 4.3
+and earlier, this is deprecated and will be phased out when Bash 4.4
+or later takes over. Use the INSIDE_EMACS environment variable instead.
+++
** 'save-excursion' does not save&restore the mark any more.
+++
** 'read-buffer' and 'read-buffer-function' can now be called with a 4th
-argument ('predicate').
+argument (PREDICATE).
+++
** 'completion-table-dynamic' by default stays in the minibuffer.
The minibuffer will be the current buffer when the function is called.
If you want the old behavior of calling the function in the buffer
from which the minibuffer was entered, use the new argument
-'switch-buffer' to 'completion-table-dynamic'.
+SWITCH-BUFFER to 'completion-table-dynamic'.
---
** window-configurations no longer record the buffers' marks.
---
-** inhibit-modification-hooks now also inhibits lock-file checks, as well as
-active region handling.
+** 'inhibit-modification-hooks' now also inhibits lock-file checks, as
+well as active region handling.
+++
-** deactivate-mark is now buffer-local.
+** 'deactivate-mark' is now buffer-local.
+++
** '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'.
+group ID instead of t.
+++
** Mouse click events on mode line or header line no longer include
---
** Menu items in keymaps do not support the "key shortcut cache" any more.
These slots used to hold key-shortcut data, but have been obsolete since
-Emacs-21.
+Emacs 21.
---
** Emacs no longer downcases the first letter of a system diagnostic
"...." foo bar)).
+++
-** substitute-command-keys now replaces quotes.
+** 'substitute-command-keys' now replaces quotes.
That is, it converts documentation strings' quoting style as per the
value of 'text-quoting-style'. Doc strings in source code can use
either curved single quotes or grave accents and apostrophes. As
\f
* Lisp Changes in Emacs 25.1
-** pcase
+** 'pcase'
+++
*** New UPatterns 'quote', 'app'.
+++
*** New vector QPattern.
---
-** syntax-propertize is now automatically called on-demand during forward
+** 'syntax-propertize' is now automatically called on-demand during forward
parsing functions like 'forward-sexp'.
+++
+++
** The default value of 'load-read-function' is now 'read'.
-Previously, the default value of 'nil' implied using 'read'.
+Previously, the default value of nil implied using 'read'.
+++
** New hook 'pre-redisplay-functions'.
'cursor-sensor-mode' minor modes.
+++
-** 'inhibit-point-motion-hooks' now defaults to 't' and is obsolete.
+** 'inhibit-point-motion-hooks' now defaults to t and is obsolete.
Use the new minor modes 'cursor-intangible-mode' and
'cursor-sensor-mode' instead.
+++
** New process type 'pipe', which can be used in combination with the
-':stderr' keyword of make-process to handle standard error output
+':stderr' keyword of 'make-process' to handle standard error output
of subprocess.
+++
process filter, sentinel, etc., through keyword arguments (similar to
'make-network-process').
++++
+** Subprocesses are automatically told about changes in window dimensions.
+The new option 'window-adjust-process-window-size-function' controls
+how subprocesses are told to adapt their logical window sizes to
+changes in the Emacs window configuration. Its default value calls
+'set-process-window-size' with the smallest dimensions of all the
+windows that display the subprocess's buffer.
+
+++
** A new function 'directory-files-recursively' returns all matching
files (recursively) under a directory.
+++
** New variable 'inhibit-message', when bound to non-nil, inhibits
'message' and related functions from displaying messages in the echo
-area. The output is still logged to the *Messages* buffer.
+area. The output is still logged to the '*Messages*' buffer.
+++
** A new text property 'inhibit-read-only' can be used in read-only
+++
** A new variable 'comment-end-can-be-escaped' is useful in languages
- such as C and C++ where line comments with escaped newlines are
- continued to the next line.
+such as C and C++ where line comments with escaped newlines are
+continued to the next line.
+++
** New macro 'define-advice'.
details.
---
-** lexical closures can use (:documentation FORM) to build their docstring.
+** Lexical closures can use '(:documentation FORM)' to build their docstring.
It should be placed right where the docstring would be, and FORM is then
evaluated (and should return a string) when the closure is built.
+++
-** define-inline provides a new way to define inlinable functions.
+** 'define-inline' provides a new way to define inlinable functions.
+++
** New function 'macroexpand-1' to perform a single step of macro expansion.
+++
** Some "x-*" functions were obsoleted and/or renamed:
-*** x-select-text is renamed gui-select-text.
-*** x-selection-value is renamed gui-selection-value.
-*** x-get-selection is renamed gui-get-selection.
-*** x-get-clipboard and x-clipboard-yank are marked obsolete.
-*** x-get-selection-value is renamed to gui-get-primary-selection.
-*** x-set-selection is renamed to gui-set-selection
+*** 'x-select-text' is renamed 'gui-select-text'.
+*** 'x-selection-value' is renamed 'gui-selection-value'.
+*** 'x-get-selection' is renamed 'gui-get-selection'.
+*** 'x-get-clipboard' and 'x-clipboard-yank' are marked obsolete.
+*** 'x-get-selection-value' is renamed to 'gui-get-primary-selection'.
+*** 'x-set-selection' is renamed to 'gui-set-selection'.
+++
** New function 'string-greaterp', which return the opposite result of
MS-Windows doesn't support UTF-8 as codeset in its locales.
+++
-** New function 'alist-get', which is also a valid place (aka lvalue).
+** New function 'alist-get', which is a generalized variable
+suitable for use with 'setf'.
+++
** New function 'funcall-interactively', which works like 'funcall'
+++
** New properties that can be specified with 'declare':
-*** (interactive-only INSTEAD), says to use INSTEAD for non-interactive use.
-*** (pure VAL), if VAL is non-nil, indicates the function is pure.
-*** (side-effect-free VAL), if VAL is non-nil, indicates the function does not
+*** '(interactive-only INSTEAD)', says to use INSTEAD for non-interactive use.
+*** '(pure VAL)', if VAL is non-nil, indicates the function is pure.
+*** '(side-effect-free VAL)', if VAL is non-nil, indicates the function does not
have side effects.
+++
---
** New utilities in subr-x.el:
+
*** New macros 'if-let' and 'when-let' allow defining bindings and to
- execute code depending whether all values are true.
+execute code depending whether all values are true.
+
*** New macros 'thread-first' and 'thread-last' allow threading a form
- as the first or last argument of subsequent forms.
+as the first or last argument of subsequent forms.
+++
** Documentation strings now support quoting with curved single quotes
'text-quoting-style'.
+++
-** show-help-function's arg is converted via substitute-command-keys
+** 'show-help-function's arg is converted via 'substitute-command-keys'
before being passed to the function. Help strings, help-echo
properties, etc. can therefore contain command key escapes and
quotation marks.
Unix systems, forward- or backslash on MS-Windows and MS-DOS).
---
-** ASCII approximations to curved quotes are put in standard-display-table
+** ASCII approximations to curved quotes are put in 'standard-display-table'
if the terminal cannot display curved quotes.
+++
** Standard output and error streams now transliterate characters via
-standard-display-table, and encode output using locale-coding-system.
+'standard-display-table', and encode output using 'locale-coding-system'.
To force a specific encoding, bind 'coding-system-for-write' to the
coding-system of your choice when invoking functions like 'prin1' and
'message'.
Horizontal scroll bars are turned off by default.
**** New function 'horizontal-scroll-bars-available-p' telling whether
- horizontal scroll bars are available on the underlying system.
+horizontal scroll bars are available on the underlying system.
**** New mode 'horizontal-scroll-bar-mode' to toggle horizontal scroll
- bars on all existing and future frames.
+bars on all existing and future frames.
**** New function 'toggle-horizontal-scroll-bar' to toggle horizontal
- scroll bars on the selected frame.
+scroll bars on the selected frame.
**** New frame parameters 'horizontal-scroll-bars' and
- 'scroll-bar-height' to set horizontal scroll bars and their height
- for individual frames and in 'default-frame-alist'.
+'scroll-bar-height' to set horizontal scroll bars and their height
+for individual frames and in 'default-frame-alist'.
**** New functions 'frame-scroll-bar-height' and
- 'window-scroll-bar-height' return the height of horizontal scroll
- bars on a specific frame or window.
+'window-scroll-bar-height' return the height of horizontal scroll
+bars on a specific frame or window.
**** 'set-window-scroll-bars' now accepts five parameters where the last
- two specify height and type of the window's horizontal scroll bar.
+two specify height and type of the window's horizontal scroll bar.
**** 'window-scroll-bars' now returns type and sizes of horizontal scroll
- bars too.
+bars too.
**** New buffer-local variables 'horizontal-scroll-bar' and
- 'scroll-bar-height'.
+'scroll-bar-height'.
+++
*** New functions 'frame-geometry' and 'frame-edges' give access to a
scroll bars. In particular, maximized and fullscreen frames are
conceptually never resized if such settings change. For fullheight and
fullwidth frames, the behavior may depend on the toolkit used.
+
**** New option 'frame-inhibit-implied-resize' if non-nil, means that
- setting default font, menu bar, fringe width, or scroll bars of a
- specific frame does not resize that frame in order to preserve the
- number of columns or lines it displays.
+setting default font, menu bar, fringe width, or scroll bars of a
+specific frame does not resize that frame in order to preserve the
+number of columns or lines it displays.
+++
*** New function 'window-preserve-size' allows you to preserve the size of
* Changes in Emacs 25.1 on Non-Free Operating Systems
---
-** MS-Windows specific Emacs build scripts are no longer in the distribution
+** MS-Windows specific Emacs build scripts are no longer in the distribution.
This includes the makefile.w32-in files in various subdirectories, and
the support files. The file nt/configure.bat now just tells the user
to use the procedure described in nt/INSTALL, by running the Posix