mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-23 10:34:07 +00:00
78f841d6db
* lisp/emacs-lisp/edebug.el (edebug-max-depth): Add defcustom. (Bug#24713) * etc/NEWS: Mention edebug-max-depth. * doc/lispref/edebug.texi (Checking Whether to Stop): Mention edebug-max-depth and index it. Add cross-references for max-lisp-eval-depth and max-specpdl-size. Co-authored-by: Eli Zaretskii <eliz@gnu.org>
1019 lines
36 KiB
Plaintext
1019 lines
36 KiB
Plaintext
GNU Emacs NEWS -- history of user-visible changes.
|
||
|
||
Copyright (C) 2014-2017 Free Software Foundation, Inc.
|
||
See the end of the file for license conditions.
|
||
|
||
Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
|
||
If possible, use M-x report-emacs-bug.
|
||
|
||
This file is about changes in Emacs version 26.
|
||
|
||
See file HISTORY for a list of GNU Emacs versions and release dates.
|
||
See files NEWS.25, NEWS.24, NEWS.23, NEWS.22, NEWS.21, NEWS.20,
|
||
NEWS.19, NEWS.18, and NEWS.1-17 for changes in older Emacs versions.
|
||
|
||
You can narrow news to a specific version by calling 'view-emacs-news'
|
||
with a prefix argument or by typing C-u C-h C-n.
|
||
|
||
Temporary note:
|
||
+++ indicates that all necessary documentation updates are complete.
|
||
(This means all relevant manuals in doc/ AND lisp doc-strings.)
|
||
--- means no change in the manuals is needed.
|
||
When you add a new item, use the appropriate mark if you are sure it applies,
|
||
|
||
+++
|
||
** The version number of CC Mode has been changed from 5.33 to
|
||
5.32.99, although the software itself hasn't changed. This aims to
|
||
reduce confusion with the standalone CC Mode 5.33 (available from
|
||
http://cc-mode.sourceforge.net), which is a more mature version than
|
||
the one in Emacs 25.2.
|
||
|
||
|
||
* Installation Changes in Emacs 26.1
|
||
|
||
** By default libgnutls is now required when building Emacs.
|
||
Use 'configure --with-gnutls=no' to build even when GnuTLS is missing.
|
||
|
||
** GnuTLS version 2.12.2 or later is now required, instead of merely
|
||
version 2.6.6 or later.
|
||
|
||
** The new option 'configure --enable-gcc-warnings=warn-only' causes
|
||
GCC to issue warnings without stopping the build. This behavior is
|
||
now the default in developer builds. As before, use
|
||
'--disable-gcc-warnings' to suppress GCC's warnings, and
|
||
'--enable-gcc-warnings' to stop the build if GCC issues warnings.
|
||
|
||
+++
|
||
** The Emacs server now has socket-launching support. This allows
|
||
socket based activation, where an external process like systemd can
|
||
invoke the Emacs server process upon a socket connection event and
|
||
hand the socket over to Emacs. Emacs uses this socket to service
|
||
emacsclient commands. This new functionality can be disabled with the
|
||
configure option '--disable-libsystemd'.
|
||
|
||
+++
|
||
** A systemd user unit file is provided. Use it in the standard way:
|
||
systemctl --user enable emacs
|
||
(If your Emacs is installed in a non-standard location, you may
|
||
need to copy the emacs.service file to eg ~/.config/systemd/user/)
|
||
|
||
** New configure option '--disable-build-details' attempts to build an
|
||
Emacs that is more likely to be reproducible; that is, if you build
|
||
and install Emacs twice, the second Emacs is a copy of the first.
|
||
Deterministic builds omit the build date from the output of the
|
||
emacs-version and erc-cmd-SV functions, and the leave the following
|
||
variables nil: emacs-build-system, emacs-build-time,
|
||
erc-emacs-build-time.
|
||
|
||
** Emacs no longer works on IRIX. We expect that Emacs users are not
|
||
affected by this, as SGI stopped supporting IRIX in December 2013.
|
||
|
||
|
||
* Startup Changes in Emacs 26.1
|
||
|
||
** New option '--new-daemon'. This is the same as '--daemon', except
|
||
it runs in the foreground and does not fork. This is intended for
|
||
modern init systems such as systemd, which manage many of the traditional
|
||
aspects of daemon behavior themselves. '--old-daemon' is now an alias
|
||
for '--daemon'.
|
||
|
||
|
||
* Changes in Emacs 26.1
|
||
|
||
+++
|
||
** The new function 'mapbacktrace' applies a function to all frames of
|
||
the current stack trace.
|
||
|
||
+++
|
||
** Emacs now provides a limited form of concurrency with Lisp threads.
|
||
Concurrency in Emacs Lisp is "mostly cooperative", meaning that
|
||
Emacs will only switch execution between threads at well-defined
|
||
times: when Emacs waits for input, during blocking operations related
|
||
to threads (such as mutex locking), or when the current thread
|
||
explicitly yields. Global variables are shared among all threads, but
|
||
a 'let' binding is thread-local. Each thread also has its own current
|
||
buffer and its own match data.
|
||
|
||
See the chapter "Threads" in the ELisp manual for full documentation
|
||
of these facilities.
|
||
|
||
+++
|
||
** The new function 'file-name-case-insensitive-p' tests whether a
|
||
given file is on a case-insensitive filesystem.
|
||
|
||
+++
|
||
** The new user variable 'electric-quote-chars' provides a list
|
||
of curved quotes for 'electric-quote-mode', allowing user to choose
|
||
the types of quotes to be used.
|
||
|
||
+++
|
||
** The new user variable 'dired-omit-case-fold' allows the user to
|
||
customize the case-sensitivity of dired-omit-mode. It defaults to
|
||
the same sensitivity as that of the filesystem for the corresponding
|
||
dired buffer.
|
||
|
||
+++
|
||
** Emacs now uses double buffering to reduce flicker when editing and
|
||
resizing graphical Emacs frames on the X Window System. This support
|
||
requires the DOUBLE-BUFFER extension, which major X servers have
|
||
supported for many years. If your system has this extension, but an
|
||
Emacs built with double buffering misbehaves on some displays you use,
|
||
you can disable the feature by adding
|
||
|
||
'(inhibit-double-buffering . t)
|
||
|
||
to default-frame-parameters. Or inject this parameter into the
|
||
selected frame by evaluating this form:
|
||
|
||
(modify-frame-parameters nil '((inhibit-double-buffering . t)))
|
||
|
||
---
|
||
The group 'wp', whose label was "text", is now deprecated.
|
||
Use the new group 'text', which inherits from 'wp', instead.
|
||
|
||
+++
|
||
** The new function 'call-shell-region' executes a command in an
|
||
inferior shell with the buffer region as input.
|
||
|
||
+++
|
||
** The new user option 'shell-command-dont-erase-buffer' controls
|
||
if the output buffer is erased between shell commands; if non-nil,
|
||
the output buffer is not erased; this variable also controls where
|
||
to set the point in the output buffer: beginning of the output,
|
||
end of the buffer or save the point.
|
||
When 'shell-command-dont-erase-buffer' is nil, the default value,
|
||
the behavior of 'shell-command', 'shell-command-on-region' and
|
||
'async-shell-command' is as usual.
|
||
|
||
+++
|
||
** 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.
|
||
|
||
+++
|
||
** The new user option 'confirm-kill-processes' allows the user to
|
||
skip a confirmation prompt for killing subprocesses when exiting
|
||
Emacs. When set to t (the default), Emacs will prompt for
|
||
confirmation before killing subprocesses on exit, which is the same
|
||
behavior as before.
|
||
|
||
---
|
||
** '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
|
||
outside 'load-path'.
|
||
|
||
+++
|
||
** Faces in 'minibuffer-prompt-properties' no longer overwrite properties
|
||
in the text in functions like 'read-from-minibuffer', but instead are
|
||
added to the end of the face list. This allows users to say things
|
||
like '(read-from-minibuffer (propertize "Enter something: " 'face 'bold))'.
|
||
|
||
+++
|
||
** The new variable 'extended-command-suggest-shorter' has been added
|
||
to control whether to suggest shorter 'M-x' commands or not.
|
||
|
||
---
|
||
** icomplete now respects 'completion-ignored-extensions'.
|
||
|
||
+++
|
||
** Non-breaking hyphens are now displayed with the 'nobreak-hyphen'
|
||
face instead of the 'escape-glyph' face.
|
||
|
||
+++
|
||
** Approximations to quotes are now displayed with the new 'homoglyph'
|
||
face instead of the 'escape-glyph' face.
|
||
|
||
---
|
||
** 'C-x h' ('mark-whole-buffer') will now avoid marking the prompt
|
||
part of minibuffers.
|
||
|
||
---
|
||
** 'find-library' now takes a prefix argument to pop to a different
|
||
window.
|
||
|
||
---
|
||
** 'process-attributes' on Darwin systems now returns more information.
|
||
|
||
+++
|
||
** Several accessors for the value returned by 'file-attributes'
|
||
have been added. They are: 'file-attribute-type',
|
||
'file-attribute-link-number', 'file-attribute-user-id',
|
||
'file-attribute-group-id', 'file-attribute-access-time',
|
||
'file-attribute-modification-time',
|
||
'file-attribute-status-change-time', 'file-attribute-size',
|
||
'file-attribute-modes', 'file-attribute-inode-number',
|
||
'file-attribute-device-number' and 'file-attribute-collect'.
|
||
|
||
+++
|
||
** 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
|
||
actually changed something.
|
||
|
||
---
|
||
** The locale language name 'ca' is now mapped to the language
|
||
environment 'Catalan', which has been added.
|
||
|
||
---
|
||
** 'align-regexp' has a separate history for its interactive argument.
|
||
'align-regexp' no longer shares its history with all other
|
||
history-less functions that use 'read-string'.
|
||
|
||
+++
|
||
** The networking code has been reworked so that it's more
|
||
asynchronous than it was (when specifying :nowait t in
|
||
'make-network-process'). How asynchronous it is varies based on the
|
||
capabilities of the system, but on a typical GNU/Linux system the DNS
|
||
resolution, the connection, and (for TLS streams) the TLS negotiation
|
||
are all done without blocking the main Emacs thread. To get
|
||
asynchronous TLS, the TLS boot parameters have to be passed in (see
|
||
the manual for details).
|
||
|
||
Certain process oriented functions (like 'process-datagram-address')
|
||
will block until socket setup has been performed. The recommended way
|
||
to deal with asynchronous sockets is to avoid interacting with them
|
||
until they have changed status to "run". This is most easily done
|
||
from a process sentinel.
|
||
|
||
** 'make-network-process' and 'open-network-stream' sometimes allowed
|
||
:service to be an integer string (e.g., :service "993") and sometimes
|
||
required an integer (e.g., :service 993). This difference has been
|
||
eliminated, and integer strings work everywhere.
|
||
|
||
** It is possible to disable attempted recovery on fatal signals.
|
||
|
||
Two new variables support disabling attempts to recover from stack
|
||
overflow and to avoid automatic auto-save when Emacs is delivered a
|
||
fatal signal. 'attempt-stack-overflow-recovery', if set to 'nil',
|
||
will disable attempts to recover from C stack overflows; Emacs will
|
||
then crash as with any other fatal signal.
|
||
'attempt-orderly-shutdown-on-fatal-signal', if set to 'nil', will
|
||
disable attempts to auto-save the session and shut down in an orderly
|
||
fashion when Emacs receives a fatal signal; instead, Emacs will
|
||
terminate immediately. Both variables are non-'nil' by default.
|
||
These variables are for users who would like to avoid the small
|
||
probability of data corruption due to techniques Emacs uses to recover
|
||
in these situations.
|
||
|
||
+++
|
||
** File local and directory local variables are now initialized each
|
||
time the major mode is set, not just when the file is first visited.
|
||
These local variables will thus not vanish on setting a major mode.
|
||
|
||
+++
|
||
** A second dir-local file (.dir-locals-2.el) is now accepted.
|
||
See the variable 'dir-locals-file-2' for more information.
|
||
|
||
+++
|
||
** Connection-local variables can be used to specify local variables
|
||
with a value depending on the connected remote server. For details,
|
||
see the node "Connection Local Variables" in the ELisp manual.
|
||
|
||
---
|
||
** International domain names (IDNA) are now encoded via the new
|
||
puny.el library, so that one can visit web sites with non-ASCII URLs.
|
||
|
||
+++
|
||
** The new 'timer-list' command lists all active timers in a buffer,
|
||
where you can cancel them with the 'c' command.
|
||
|
||
+++
|
||
** 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.
|
||
|
||
+++
|
||
** The new variable 'debugger-stack-frame-as-list' allows displaying
|
||
all call stack frames in a Lisp backtrace buffer as lists. Both
|
||
debug.el and edebug.el have been updated to heed to this variable.
|
||
|
||
+++
|
||
** The new variable 'x-ctrl-keysym' has been added to the existing
|
||
roster of X keysyms. It can be used in combination with another
|
||
variable of this kind to swap modifiers in Emacs.
|
||
|
||
---
|
||
** New input methods: 'cyrillic-tuvan', 'polish-prefix'.
|
||
|
||
+++
|
||
** File name quoting by adding the prefix "/:" is now possible for the
|
||
local part of a remote file name. Thus, if you have a directory named
|
||
"/~" on the remote host "foo", you can prevent it from being
|
||
substituted by a home directory by writing it as "/foo:/:/~/file".
|
||
|
||
+++
|
||
** The new variable 'maximum-scroll-margin' allows having effective
|
||
settings of 'scroll-margin' up to half the window size, instead of
|
||
always restricting the margin to a quarter of the window.
|
||
|
||
|
||
* Editing Changes in Emacs 26.1
|
||
|
||
+++
|
||
** Two new user options 'list-matching-lines-jump-to-current-line' and
|
||
'list-matching-lines-current-line-face' to show highlighted the current
|
||
line in *Occur* buffer.
|
||
|
||
+++
|
||
** The 'occur' command can now operate on the region.
|
||
|
||
+++
|
||
** New bindings for 'query-replace-map'.
|
||
'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.
|
||
|
||
** No more prompt about changed file when the file's content is unchanged.
|
||
Instead of only checking the modification time, Emacs now also checks
|
||
the file's actual content before prompting the user.
|
||
|
||
|
||
* Changes in Specialized Modes and Packages in Emacs 26.1
|
||
|
||
** TeX: Add luatex and xetex as alternatives to pdftex
|
||
|
||
** Electric-Buffer-menu
|
||
|
||
+++
|
||
*** Key 'U' is bound to 'Buffer-menu-unmark-all' and key 'M-DEL' is
|
||
bound to 'Buffer-menu-unmark-all-buffers'.
|
||
|
||
** bs
|
||
|
||
---
|
||
*** Two new commands 'bs-unmark-all', bound to 'U', and
|
||
'bs-unmark-previous', bound to <backspace>.
|
||
|
||
** Buffer-menu
|
||
|
||
+++
|
||
*** Two new commands 'Buffer-menu-unmark-all', bound to 'U' and
|
||
'Buffer-menu-unmark-all-buffers', bound to 'M-DEL'.
|
||
|
||
** Gnus
|
||
|
||
---
|
||
*** The .newsrc file will now only be saved if the native select
|
||
method is an NNTP select method.
|
||
|
||
+++
|
||
*** A new command for sorting articles by readedness marks has been
|
||
added: `C-c C-s C-m C-m'.
|
||
|
||
** Ibuffer
|
||
|
||
---
|
||
*** New filter commands `ibuffer-filter-by-basename',
|
||
`ibuffer-filter-by-file-extension', `ibuffer-filter-by-directory',
|
||
`ibuffer-filter-by-starred-name', `ibuffer-filter-by-modified'
|
||
and `ibuffer-filter-by-visiting-file'; bound respectively
|
||
to '/b', '/.', '//', '/*', '/i' and '/v'.
|
||
|
||
---
|
||
*** Two new commands 'ibuffer-filter-chosen-by-completion'
|
||
and `ibuffer-and-filter', the second bound to '/&'.
|
||
|
||
---
|
||
*** The commands `ibuffer-pop-filter', `ibuffer-pop-filter-group',
|
||
`ibuffer-or-filter' and `ibuffer-filter-disable' have the alternative
|
||
bindings '/<up>', '/S-<up>', '/|' and '/DEL', respectively.
|
||
|
||
---
|
||
*** The data format specifying filters has been extended to allow
|
||
explicit logical 'and', and a more flexible form for logical 'not'.
|
||
See 'ibuffer-filtering-qualifiers' doc string for full details.
|
||
|
||
---
|
||
*** 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'.
|
||
|
||
** Browse-URL
|
||
|
||
*** Support for opening links to man pages in Man or WoMan mode.
|
||
|
||
** Comint
|
||
|
||
---
|
||
*** New user option 'comint-move-point-for-matching-input' to control
|
||
where to place point after C-c M-r and C-c M-s.
|
||
|
||
** Compilation mode
|
||
|
||
---
|
||
*** Messages from CMake are now recognized.
|
||
|
||
** Dired
|
||
|
||
+++
|
||
*** A new option 'dired-always-read-filesystem' default to nil.
|
||
If non-nil, buffers visiting files are reverted before search them;
|
||
for instance, in 'dired-mark-files-containing-regexp' a non-nil value
|
||
of this option means the file is revisited in a temporary buffer;
|
||
this temporary buffer is the actual buffer searched: the original buffer
|
||
visiting the file is not modified.
|
||
|
||
+++
|
||
*** In wdired, when editing files to contain slash characters,
|
||
the resulting directories are automatically created. Whether to do
|
||
this is controlled by the 'wdired-create-parent-directories' variable.
|
||
|
||
+++
|
||
*** 'W' is now bound to 'browse-url-of-dired-file', and is useful for
|
||
viewing HTML files and the like.
|
||
|
||
** Edebug
|
||
|
||
*** Edebug 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'.
|
||
|
||
+++
|
||
*** New customizable option 'edebug-max-depth'
|
||
This allows to enlarge the maximum recursion depth when instrumenting
|
||
code.
|
||
|
||
** Eshell
|
||
|
||
*** 'eshell-input-filter's value is now a named function
|
||
'eshell-input-filter-default', and has a new custom option
|
||
'eshell-input-filter-initial-space' to ignore adding commands prefixed
|
||
with blank space to eshell history.
|
||
|
||
** eww
|
||
|
||
+++
|
||
*** New 'M-RET' command for opening a link at point in a new eww buffer.
|
||
|
||
+++
|
||
*** A new 's' command for switching to another eww buffer via the minibuffer.
|
||
|
||
---
|
||
*** The 'o' command ('shr-save-contents') has moved to 'O' to avoid collision
|
||
with the 'o' command from 'image-map'.
|
||
|
||
+++
|
||
*** A new command 'C' ('eww-toggle-colors') can be used to toggle
|
||
whether to use the HTML-specified colors or not. The user can also
|
||
customize the 'shr-use-colors' variable.
|
||
|
||
---
|
||
*** Images that are being loaded are now marked with gray
|
||
"placeholder" images of the size specified by the HTML. They are then
|
||
replaced by the real images asynchronously, which will also now
|
||
respect width/height HTML specs (unless they specify widths/heights
|
||
bigger than the current window).
|
||
|
||
** Images
|
||
|
||
+++
|
||
*** Images are automatically scaled before displaying based on the
|
||
'image-scaling-factor' variable (if Emacs supports scaling the images
|
||
in question).
|
||
|
||
+++
|
||
*** Images inserted with 'insert-image' and related functions get a
|
||
keymap put into the text properties (or overlays) that span the
|
||
image. This keymap binds keystrokes for manipulating size and
|
||
rotation, as well as saving the image to a file. These commands are
|
||
also available in 'image-mode'.
|
||
|
||
+++
|
||
*** A new library for creating and manipulating SVG images has been
|
||
added. See the "SVG Images" section in the Lisp reference manual for
|
||
details.
|
||
|
||
+++
|
||
*** New setf-able function to access and set image parameters is
|
||
provided: 'image-property'.
|
||
|
||
---
|
||
*** New commands 'image-scroll-left' and 'image-scroll-right'
|
||
for 'image-mode' that complement 'image-scroll-up' and
|
||
'image-scroll-down': they have the same prefix arg behavior and stop
|
||
at image boundaries.
|
||
|
||
** Image-Dired
|
||
|
||
*** Now provides a minor mode 'image-dired-minor-mode' which replaces
|
||
the function 'image-dired-setup-dired-keybindings'.
|
||
|
||
*** Thumbnail generation is now asynchronous
|
||
The number of concurrent processes is limited by the variable
|
||
'image-dired-thumb-job-limit'.
|
||
|
||
*** 'image-dired-thumbnail-storage' has a new option 'standard-large'
|
||
for generating 256x256 thumbnails according to the Thumbnail Managing
|
||
Standard.
|
||
|
||
*** Inherits movement keys from 'image-mode' for viewing full images.
|
||
This includes the usual char, line, and page movement commands.
|
||
|
||
*** All the -options types have been changed to argument lists
|
||
instead of shell command strings. This change affects
|
||
'image-dired-cmd-create-thumbnail-options',
|
||
'image-dired-cmd-create-temp-image-options',
|
||
'image-dired-cmd-rotate-thumbnail-options',
|
||
'image-dired-cmd-rotate-original-options',
|
||
'image-dired-cmd-write-exif-data-options',
|
||
'image-dired-cmd-read-exif-data-options', and introduces
|
||
'image-dired-cmd-pngnq-options', 'image-dired-cmd-pngcrush-options',
|
||
'image-dired-cmd-create-standard-thumbnail-options'
|
||
|
||
*** Recognizes more tools by default, including pngnq-s9 and OptiPNG
|
||
|
||
*** 'find-file' and related commands now work on thumbnails and
|
||
displayed images, providing a default argument of the original file name
|
||
via an addition to 'file-name-at-point-functions'.
|
||
|
||
---
|
||
** 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
|
||
'change-log-directory-files' to nil for the old behavior.
|
||
|
||
---
|
||
** Support for non-string values of 'time-stamp-format' has been removed.
|
||
|
||
** Message
|
||
|
||
---
|
||
*** '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
|
||
longer warn about sending emails to top-level domains it hasn't heard
|
||
about.
|
||
|
||
*** 'message-beginning-of-line' (bound to C-a) understands folded headers.
|
||
In 'visual-line-mode' it will look for the true beginning of a header
|
||
while in non-'visual-line-mode' it will move the point to the indented
|
||
header's value.
|
||
|
||
** Tramp
|
||
|
||
+++
|
||
*** New connection method "sg", which supports editing files under a
|
||
different group ID.
|
||
|
||
+++
|
||
*** New connection method "doas" for OpenBSD hosts.
|
||
|
||
+++
|
||
*** New connection method "gdrive", which allows to access Google
|
||
Drive onsite repositories.
|
||
|
||
+++
|
||
*** Gateway methods in Tramp have been removed. Instead, the Tramp
|
||
manual documents how to configure ssh and PuTTY accordingly.
|
||
|
||
+++
|
||
Setting the "ENV" environment variable in 'tramp-remote-process-environment'
|
||
enables reading of shell initialization files.
|
||
|
||
---
|
||
** 'auto-revert-use-notify' is set back to t in 'global-auto-revert-mode'.
|
||
|
||
** CSS mode
|
||
|
||
---
|
||
*** Support for completing attribute values, at-rules, bang-rules,
|
||
HTML tags, classes and IDs using the 'completion-at-point' command.
|
||
Completion candidates for HTML classes and IDs are retrieved from open
|
||
HTML mode buffers.
|
||
|
||
---
|
||
*** CSS mode now binds 'C-h S' to a function that will show
|
||
information about a CSS construct (an at-rule, property, pseudo-class,
|
||
pseudo-element, with the default being guessed from context). By
|
||
default the information is looked up on the Mozilla Developer Network,
|
||
but this can be customized using 'css-lookup-url-format'.
|
||
|
||
+++
|
||
** Emacs now supports character name escape sequences in character and
|
||
string literals. The syntax variants \N{character name} and
|
||
\N{U+code} are supported.
|
||
|
||
+++
|
||
** Prog mode has some support for multi-mode indentation.
|
||
This allows better indentation support in modes that support multiple
|
||
programming languages in the same buffer, like literate programming
|
||
environments or ANTLR programs with embedded Python code.
|
||
|
||
A major mode can provide indentation context for a sub-mode through
|
||
the 'prog-indentation-context' variable. To support this, modes that
|
||
provide indentation should use 'prog-widen' instead of 'widen' and
|
||
'prog-first-column' instead of a literal zero. See the node
|
||
"Mode-Specific Indent" in the ELisp manual for more details.
|
||
|
||
** ERC
|
||
|
||
*** New variable 'erc-default-port-tls' used to connect to TLS IRC
|
||
servers.
|
||
|
||
** URL
|
||
|
||
+++
|
||
*** The new function 'url-cookie-delete-cookie' can be used to
|
||
programmatically delete all cookies, or cookies from a specific
|
||
domain.
|
||
|
||
+++
|
||
*** 'url-retrieve-synchronously' now takes an optional timeout parameter.
|
||
|
||
---
|
||
*** The URL package now support HTTPS over proxies supporting CONNECT.
|
||
|
||
+++
|
||
*** 'url-user-agent' now defaults to 'default', and the User-Agent
|
||
string is computed dynamically based on 'url-privacy-level'.
|
||
|
||
** VC and related modes
|
||
|
||
---
|
||
*** The VC state indicator in the mode line now defaults to more
|
||
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.
|
||
|
||
** Flymake
|
||
|
||
+++
|
||
*** Emacs does no longer prompt the user before killing Flymake
|
||
processes on exit.
|
||
|
||
|
||
* New Modes and Packages in Emacs 26.1
|
||
|
||
** New Elisp data-structure library 'radix-tree'.
|
||
|
||
|
||
* Incompatible Lisp Changes in Emacs 26.1
|
||
|
||
+++
|
||
** Resizing a frame no longer runs 'window-configuration-change-hook'.
|
||
Put your function on 'window-size-change-functions' instead.
|
||
|
||
** 'C-up', 'C-down', 'C-left' and 'C-right' are now defined in term
|
||
mode to send the same escape sequences that xterm does. This makes
|
||
things like forward-word in readline work.
|
||
|
||
---
|
||
** hideshow mode got four key bindings that are analogous to outline
|
||
mode bindings: 'C-c @ C-a', 'C-c @ C-t', 'C-c @ C-d', and 'C-c @ C-e.'
|
||
|
||
** The grep/rgrep/lgrep functions will now ask about saving files
|
||
before running. This is controlled by the 'grep-save-buffers'
|
||
variable.
|
||
|
||
** Some obsolete functions, variables, and faces have been removed:
|
||
*** make-variable-frame-local. Variables cannot be frame-local any more.
|
||
*** From subr.el: window-dot, set-window-dot, read-input, show-buffer,
|
||
eval-current-buffer, string-to-int
|
||
*** All the default-FOO variables that hold the default value of the
|
||
FOO variable. Use 'default-value' and 'setq-default' to access and
|
||
change FOO, respectively. The exhaustive list of removed variables is:
|
||
'default-mode-line-format', 'default-header-line-format',
|
||
'default-line-spacing', 'default-abbrev-mode', 'default-ctl-arrow',
|
||
'default-truncate-lines', 'default-left-margin', 'default-tab-width',
|
||
'default-case-fold-search', 'default-left-margin-width',
|
||
'default-right-margin-width', 'default-left-fringe-width',
|
||
'default-right-fringe-width', 'default-fringes-outside-margins',
|
||
'default-scroll-bar-width', 'default-vertical-scroll-bar',
|
||
'default-indicate-empty-lines', 'default-indicate-buffer-boundaries',
|
||
'default-fringe-indicator-alist', 'default-fringe-cursor-alist',
|
||
'default-scroll-up-aggressively', 'default-scroll-down-aggressively',
|
||
'default-fill-column', 'default-cursor-type',
|
||
'default-cursor-in-non-selected-windows',
|
||
'default-buffer-file-coding-system', 'default-major-mode', and
|
||
'default-enable-multibyte-characters'.
|
||
*** Many variables obsoleted in 22.1 referring to face symbols
|
||
|
||
+++
|
||
** 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.
|
||
|
||
+++
|
||
** The regular expression character class [:blank:] now matches
|
||
Unicode horizontal whitespace as defined in the Unicode Technical
|
||
Standard #18. If you only want to match space and tab, use [ \t]
|
||
instead.
|
||
|
||
|
||
* Lisp Changes in Emacs 26.1
|
||
|
||
+++
|
||
** 'save-some-buffers' now uses 'save-some-buffers-default-predicate'
|
||
to decide which buffers to ask about, if the PRED argument is nil.
|
||
The default value of 'save-some-buffers-default-predicate' is nil,
|
||
which means ask about all file-visiting buffers.
|
||
|
||
** string-(to|as|make)-(uni|multi)byte are now declared obsolete.
|
||
** New variable 'while-no-input-ignore-events' which allow
|
||
setting which special events 'while-no-input' should ignore.
|
||
It is a list of symbols.
|
||
|
||
** New function 'undo-amalgamate-change-group' to get rid of
|
||
undo-boundaries between two states.
|
||
|
||
** New var 'definition-prefixes' is a hash table 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
|
||
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.
|
||
|
||
** Autoload files can be generated without timestamps,
|
||
by setting 'autoload-timestamps' to nil.
|
||
FIXME As an experiment, nil is the current default.
|
||
If no insurmountable problems before next release, it can stay that way.
|
||
|
||
---
|
||
** 'gnutls-boot' now takes a parameter ':complete-negotiation' that
|
||
says that negotiation should complete even on non-blocking sockets.
|
||
|
||
+++
|
||
** New functions 'window-pixel-width-before-size-change' and
|
||
'window-pixel-height-before-size-change' support detecting which
|
||
window changed size when 'window-size-change-functions' are run.
|
||
|
||
+++
|
||
** New function 'display-buffer-reuse-mode-window' is an action function
|
||
suitable for use in 'display-buffer-alist'. For example, to avoid creating
|
||
a new window when opening man pages when there's already one, use
|
||
(add-to-list 'display-buffer-alist
|
||
'("\\`\\*Man .*\\*\\'" .
|
||
(display-buffer-reuse-mode-window
|
||
(inhibit-same-window . nil)
|
||
(mode . Man-mode))))
|
||
|
||
---
|
||
** There is now a new variable 'flyspell-sort-corrections-function'
|
||
that allows changing the way corrections are sorted.
|
||
|
||
---
|
||
** The new command 'fortune-message' has been added, which displays
|
||
fortunes in the echo area.
|
||
|
||
+++
|
||
** New function 'func-arity' returns information about the argument list
|
||
of an arbitrary function. This generalizes 'subr-arity' for functions
|
||
that are not built-in primitives. We recommend using this new
|
||
function instead of 'subr-arity'.
|
||
|
||
** New function 'region-bounds' can be used in the interactive spec
|
||
to provide region boundaries (for rectangular regions more than one)
|
||
to an interactively callable function as a single argument instead of
|
||
two separate arguments region-beginning and region-end.
|
||
|
||
+++
|
||
** 'parse-partial-sexp' state has a new element. Element 10 is
|
||
non-nil when the last character scanned might be the first character
|
||
of a two character construct, i.e., a comment delimiter or escaped
|
||
character. Its value is the syntax of that last character.
|
||
|
||
+++
|
||
** 'parse-partial-sexp's state, element 9, has now been confirmed as
|
||
permanent and documented, and may be used by Lisp programs. Its value
|
||
is a list of currently open parenthesis positions, starting with the
|
||
outermost parenthesis.
|
||
|
||
---
|
||
** 'read-color' will now display the color names using the color itself
|
||
as the background color.
|
||
|
||
** The function 'redirect-debugging-output' now works on platforms
|
||
other than GNU/Linux.
|
||
|
||
+++
|
||
** The new function 'string-version-lessp' compares strings by
|
||
interpreting consecutive runs of numerical characters as numbers, and
|
||
compares their numerical values. According to this predicate,
|
||
"foo2.png" is smaller than "foo12.png".
|
||
|
||
+++
|
||
** The new function 'char-from-name' converts a Unicode name string
|
||
to the corresponding character code.
|
||
|
||
+++
|
||
** New functions 'sxhash-eq' and 'sxhash-eql' return hash codes of a
|
||
Lisp object suitable for use with 'eq' and 'eql' correspondingly. If
|
||
two objects are 'eq' ('eql'), then the result of 'sxhash-eq'
|
||
('sxhash-eql') on them will be the same.
|
||
|
||
+++
|
||
** Function 'sxhash' has been renamed to 'sxhash-equal' for
|
||
consistency with the new functions. For compatibility, 'sxhash'
|
||
remains as an alias to 'sxhash-equal'.
|
||
|
||
+++
|
||
** New function `add-variable-watcher' can be used to call a function
|
||
when a symbol's value is changed. This is used to implement the new
|
||
debugger command `debug-on-variable-change'.
|
||
|
||
+++
|
||
** Time conversion functions that accept a time zone rule argument now
|
||
allow it to be OFFSET or a list (OFFSET ABBR), where the integer
|
||
OFFSET is a count of seconds east of Universal Time, and the string
|
||
ABBR is a time zone abbreviation. The affected functions are
|
||
'current-time-string', 'current-time-zone', 'decode-time',
|
||
'format-time-string', and 'set-time-zone-rule'.
|
||
|
||
+++
|
||
** 'format-time-string' now formats "%q" to the calendar quarter.
|
||
|
||
** New built-in function 'mapcan' which avoids unnecessary consing (and garbage
|
||
collection).
|
||
|
||
+++
|
||
** 'car' and 'cdr' compositions 'cXXXr' and 'cXXXXr' are now part of Elisp.
|
||
|
||
---
|
||
** 'if-let*', 'when-let*', and 'and-let*' are new in subr-x.el.
|
||
The incumbent 'if-let' and 'when-let' are now aliases.
|
||
|
||
+++
|
||
** The new functions 'make-nearby-temp-file' and 'temporary-file-directory'
|
||
can be used for creation of temporary files of remote or mounted directories.
|
||
|
||
+++
|
||
** The new function 'file-local-name' can be used to specify arguments
|
||
of remote processes.
|
||
|
||
+++
|
||
** The new functions 'file-name-quote', 'file-name-unquote' and
|
||
'file-name-quoted-p' can be used to quote / unquote file names with
|
||
the prefix "/:".
|
||
|
||
+++
|
||
** The new error 'file-missing', a subcategory of 'file-error', is now
|
||
signaled instead of 'file-error' if a file operation acts on a file
|
||
that does not exist.
|
||
|
||
+++
|
||
** The function 'delete-directory' no longer signals an error when
|
||
operating recursively and when some other process deletes the directory
|
||
or its files before 'delete-directory' gets to them.
|
||
|
||
** Changes in Frame- and Window- Handling
|
||
|
||
+++
|
||
*** Support for side windows is now official. The display action
|
||
function 'display-buffer-in-side-window' will display its buffer in a
|
||
side window. Functions for toggling all side windows on a frame,
|
||
changing and reversing the layout of side windows and returning the main
|
||
(major non-side) window of a frame are provided. For details consult
|
||
the section "Side Windows" in the Elisp manual.
|
||
|
||
+++
|
||
*** Support for atomic windows - rectangular compositions of windows
|
||
treated by 'split-window', 'delete-window' and 'delete-other-windows'
|
||
like a single live window - is now official. For details consult the
|
||
section "Atomic Windows" in the Elisp manual.
|
||
|
||
+++
|
||
*** New 'display-buffer' alist entry 'window-parameters' allows to
|
||
assign window parameters to the window used for displaying the buffer.
|
||
|
||
+++
|
||
*** New window parameter 'no-delete-other-window' prevents that
|
||
its window gets deleted by 'delete-other-windows'.
|
||
|
||
+++
|
||
*** New command 'window-swap-states' swaps the states of two live
|
||
windows.
|
||
|
||
|
||
* Changes in Emacs 26.1 on Non-Free Operating Systems
|
||
|
||
** Intercepting hotkeys on Windows 7 and later now works better.
|
||
The new keyboard hooking code properly grabs system hotkeys such as
|
||
Win-* and Alt-TAB, in a way that Emacs can get at them before the
|
||
system. This makes the 'w32-register-hot-key' functionality work
|
||
again on all versions of MS-Windows starting with Windows 7. On
|
||
Windows NT and later you can now register any hotkey combination. (On
|
||
Windows 9X, the previous limitations, spelled out in the Emacs manual,
|
||
still apply.)
|
||
|
||
** 'convert-standard-filename' no longer mirrors slashes on MS-Windows.
|
||
Previously, on MS-Windows this function converted slash characters in
|
||
file names into backslashes. It no longer does that. If your Lisp
|
||
program used 'convert-standard-filename' to prepare file names to be
|
||
passed to subprocesses (which is not the recommended usage of that
|
||
function), you will now have to mirror slashes in your application
|
||
code. One possible way is this:
|
||
|
||
(let ((start 0))
|
||
(while (string-match "/" file-name start)
|
||
(aset file-name (match-beginning 0) ?\\)
|
||
(setq start (match-end 0))))
|
||
|
||
** GUI sessions now treat SIGINT like Posix platforms do.
|
||
The effect of delivering a Ctrl-C (SIGINT) signal to a GUI Emacs on
|
||
MS-Windows is now the same as on Posix platforms -- Emacs saves the
|
||
session and exits. In particular, this will happen if you start
|
||
emacs.exe from the Windows shell, then type Ctrl-C into that shell's
|
||
window.
|
||
|
||
---
|
||
** 'signal-process' supports SIGTRAP on Windows XP and later.
|
||
The 'kill' emulation on Windows now maps SIGTRAP to a call to the
|
||
'DebugBreakProcess' API. This causes the receiving process to break
|
||
execution and return control to the debugger. If no debugger is
|
||
attached to the receiving process, the call is typically ignored.
|
||
This is in contrast to the default action on POSIX Systems, where it
|
||
causes the receiving process to terminate with a core dump if no
|
||
debugger has been attached to it.
|
||
|
||
|
||
----------------------------------------------------------------------
|
||
This file is part of GNU Emacs.
|
||
|
||
GNU Emacs is free software: you can redistribute it and/or modify
|
||
it under the terms of the GNU General Public License as published by
|
||
the Free Software Foundation, either version 3 of the License, or
|
||
(at your option) any later version.
|
||
|
||
GNU Emacs is distributed in the hope that it will be useful,
|
||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
GNU General Public License for more details.
|
||
|
||
You should have received a copy of the GNU General Public License
|
||
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||
|
||
|
||
Local variables:
|
||
coding: us-ascii
|
||
mode: outline
|
||
paragraph-separate: "[ ]*$"
|
||
end:
|