mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-14 09:39:42 +00:00
3b44829823
* doc/emacs/custom.texi (Prefix Keymaps): Document 'project-prefix-map'. * doc/emacs/maintaining.texi (Project File Commands) (Switching Projects): Describe key bindings for the commands described in the sections. Document 'project-list-file'. (Project Buffer Commands): New section. * doc/emacs/emacs.texi (Top): Add Project sections to the detailed menu. * etc/NEWS: Add entries for project.el, and mark documented entries as appropriate.
778 lines
28 KiB
Plaintext
778 lines
28 KiB
Plaintext
GNU Emacs NEWS -- history of user-visible changes.
|
||
|
||
Copyright (C) 2017-2020 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 28.
|
||
|
||
See file HISTORY for a list of GNU Emacs versions and release dates.
|
||
See files NEWS.27, NEWS.26, ..., 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 relevant manuals in doc/ have been updated.
|
||
--- means no change in the manuals is needed.
|
||
When you add a new item, use the appropriate mark if you are sure it
|
||
applies, and please also update docstrings as needed.
|
||
|
||
|
||
* Installation Changes in Emacs 28.1
|
||
|
||
** Cairo graphics library is now used by default if found.
|
||
'--with-cairo' is now the default, if the appropriate development files
|
||
are found by 'configure'. Note that building with Cairo means using
|
||
Pango instead of libXFT for font support. Since Pango 1.44 has
|
||
removed support for bitmapped fonts, this may require you to adjust
|
||
your font settings.
|
||
|
||
Note also that 'FontBackend' settings in ".Xdefaults" or
|
||
".Xresources", or 'font-backend' frame parameter settings in your init
|
||
files, may need to be adjusted, as 'xft' is no longer a valid backend
|
||
when using Cairo. Use 'ftcrhb' if your Emacs was built with HarfBuzz
|
||
text shaping support, and 'ftcr' otherwise. You can determine this by
|
||
checking 'system-configuration-features'. The 'ftcr' backend will
|
||
still be available when HarfBuzz is supported, but will not be used by
|
||
default. We strongly recommend building with HarBuzz support. 'x' is
|
||
still a valid backend.
|
||
|
||
---
|
||
** 'configure' now warns about building with libXft support.
|
||
libXft is unmaintained, and causes a number of problems with modern
|
||
fonts including but not limited to crashes; support for it may be
|
||
removed in a future version of Emacs. Please consider using
|
||
Cairo + HarfBuzz instead.
|
||
|
||
---
|
||
** 'configure' now warns about not using HarfBuzz if using Cairo.
|
||
We want to encourage people to use the most modern font features
|
||
available, and this is the Cairo graphics library + HarfBuzz for font
|
||
shaping, so 'configure' now recommends that combination.
|
||
|
||
---
|
||
** The ftx font backend driver has been removed.
|
||
It was declared obsolete in Emacs 27.1.
|
||
|
||
---
|
||
** Emacs no longer supports old OpenBSD systems.
|
||
OpenBSD 5.3 and older releases are no longer supported, as they lack
|
||
proper pty support that Emacs needs.
|
||
|
||
|
||
* Startup Changes in Emacs 28.1
|
||
|
||
** Emacs can support 24-bit color TTY without terminfo database.
|
||
If your text-mode terminal supports 24-bit true color, but your system
|
||
lacks the terminfo database, you can instruct Emacs to support 24-bit
|
||
true color by setting 'COLORTERM=truecolor' in the environment. This is
|
||
useful on systems such as FreeBSD which ships only with "etc/termcap".
|
||
|
||
|
||
* Changes in Emacs 28.1
|
||
|
||
** Support for '(box . SIZE)' 'cursor-type'.
|
||
By default, 'box' cursor always has a filled box shape. But if you
|
||
specify 'cursor-type' to be '(box . SIZE)', the cursor becomes a hollow
|
||
box if the point is on an image larger than 'SIZE' pixels in any
|
||
dimension.
|
||
|
||
---
|
||
*** Improved language transliteration in Malayalam input methods.
|
||
Added a new Mozhi scheme. The inapplicable ITRANS scheme is now
|
||
deprecated. Errors in the Inscript method were corrected.
|
||
|
||
|
||
* Editing Changes in Emacs 28.1
|
||
|
||
+++
|
||
** New command 'undo-redo'.
|
||
It undoes previous undo commands, but doesn't record itself as an
|
||
undoable command.
|
||
|
||
+++
|
||
** 'read-number' now has its own history variable.
|
||
Additionally, the function now accepts a HIST argument which can be
|
||
used to specify a custom history variable.
|
||
|
||
+++
|
||
** Input history for 'goto-line' is now local to every buffer.
|
||
Each buffer will keep a separate history of line numbers used with
|
||
'goto-line'. This should help making faster the process of finding
|
||
line numbers that were previously jumped to.
|
||
|
||
+++
|
||
** When 'suggest-key-bindings' is non-nil, the completion list of 'M-x'
|
||
shows equivalent key bindings for all commands that have them.
|
||
|
||
---
|
||
** Movement commands in 'gomoku-mode' are fixed.
|
||
'gomoku-move-sw' and 'gomoku-move-ne' now work correctly, and
|
||
horizontal movements now stop at the edge of the board.
|
||
|
||
** Autosaving via 'auto-save-visited-mode' can now be inhibited by
|
||
setting the variable 'auto-save-visited-mode' buffer-locally to nil.
|
||
|
||
|
||
* Changes in Specialized Modes and Packages in Emacs 28.1
|
||
|
||
** Windows
|
||
|
||
*** The key prefix 'C-x 4 1' displays next command buffer in the same window.
|
||
It's bound to the command 'same-window-prefix' that requests the buffer
|
||
of the next command to be displayed in the same window.
|
||
|
||
*** The key prefix 'C-x 4 4' displays next command buffer in a new window.
|
||
It's bound to the command 'other-window-prefix' that requests the buffer
|
||
of the next command to be displayed in a new window.
|
||
|
||
** Frames
|
||
|
||
*** The key prefix 'C-x 5 5' displays next command buffer in a new frame.
|
||
It's bound to the command 'other-frame-prefix' that requests the buffer
|
||
of the next command to be displayed in a new frame.
|
||
|
||
** Tab Bars
|
||
|
||
*** The key prefix 'C-x t t' displays next command buffer in a new tab.
|
||
It's bound to the command 'other-tab-prefix' that requests the buffer
|
||
of the next command to be displayed in a new tab.
|
||
|
||
*** The tab bar is frame-local when 'tab-bar-show' is a number.
|
||
Show/hide the tab bar independently for each frame, according to the
|
||
value of 'tab-bar-show'.
|
||
|
||
** New bindings in occur-mode, 'next-error-no-select' bound to 'n' and
|
||
'previous-error-no-select' bound to 'p'.
|
||
|
||
** EIEIO
|
||
|
||
+++
|
||
*** The macro 'oref-default' can now be used with 'setf'.
|
||
It is now defined as a generalized variable that can be used with
|
||
'setf' to modify the value stored in a given class slot.
|
||
|
||
** New minor mode 'cl-font-lock-built-in-mode' for `lisp-mode'.
|
||
The mode provides refined highlighting of built-in functions, types,
|
||
and variables.
|
||
|
||
** Archive mode
|
||
|
||
*** Can now modify members of 'ar' archives.
|
||
|
||
*** Display of summaries unified between backends.
|
||
|
||
*** New user option 'archive-hidden-columns' and command
|
||
'archive-hideshow-column'. These let you control which columns are
|
||
displayed and which are kept hidden.
|
||
|
||
** Emacs Lisp mode
|
||
|
||
*** The mode-line now indicates whether we're using lexical or dynamic scoping.
|
||
|
||
*** A space between an open paren and a symbol changes the indentation rule.
|
||
The presence of a space between an open paren and a symbol now is
|
||
taken as a statement by the programmer that this should be indented
|
||
as a data list rather than as a piece of code.
|
||
|
||
** Dired
|
||
|
||
*** New user option 'dired-mark-region' affects all Dired commands
|
||
that mark files. When non-nil and the region is active in Transient
|
||
Mark mode, then Dired commands operate only on files in the active
|
||
region. The values 'file' and 'line' of this user option define the
|
||
details of marking the file at the end of the region.
|
||
|
||
*** State changing VC operations are supported in Dired on files and
|
||
directories with the help of new command 'dired-vc-next-action'.
|
||
|
||
** Change Logs and VC
|
||
|
||
*** More VC commands can be used from non-file buffers.
|
||
The relevant commands are those that don't change the VC state.
|
||
The non-file buffers which can use VC commands are those that have
|
||
their 'default-directory' under VC.
|
||
|
||
*** New command 'vc-dir-root' uses the root directory without asking.
|
||
|
||
*** New commands 'vc-dir-mark-registered-files' (bound to '* r') and
|
||
'vc-dir-mark-unregistered-files'.
|
||
|
||
*** Support for bookmark.el.
|
||
Bookmark locations can refer to VC directory buffers.
|
||
|
||
** Gnus
|
||
|
||
+++
|
||
*** The name of dependent Gnus sessions has changed from "slave" to "child".
|
||
The names of the commands 'gnus-slave', 'gnus-slave-no-server' and
|
||
'gnus-slave-unplugged' have changed to 'gnus-child',
|
||
'gnus-child-no-server' and 'gnus-child-unplugged' respectively.
|
||
|
||
+++
|
||
*** The 'W Q' summary mode command now takes a numerical prefix to
|
||
allow adjusting the fill width.
|
||
|
||
---
|
||
*** Change to default value of 'message-draft-headers' user option.
|
||
The 'Date' symbol has been removed from the default value, meaning that
|
||
draft or delayed messages will get a date reflecting when the message
|
||
was sent. To restore the original behavior of dating a message
|
||
from when it is first saved or delayed, add the symbol 'Date' back to
|
||
this user option.
|
||
|
||
** Help
|
||
|
||
+++
|
||
*** New command 'describe-keymap' describes keybindings in a keymap.
|
||
|
||
---
|
||
*** The command 'view-lossage' can now be invoked from the menu bar.
|
||
The menu-bar Help menu now has a "Show Recent Inputs" item under the
|
||
"Describe" sub-menu.
|
||
|
||
---
|
||
** The old non-SMIE indentation of 'sh-mode' has been removed.
|
||
|
||
---
|
||
** The sb-image.el library is now marked obsolete.
|
||
This file was a compatibility kludge which is no longer needed.
|
||
|
||
---
|
||
** Lisp mode now uses 'common-lisp-indent-function'.
|
||
To revert to the previous behaviour,
|
||
'(setq lisp-indent-function 'lisp-indent-function)' from 'lisp-mode-hook'.
|
||
|
||
** Edebug
|
||
|
||
+++
|
||
*** Edebug specification lists can use the new keyword '&error', which
|
||
unconditionally aborts the current edebug instrumentation with the
|
||
supplied error message.
|
||
|
||
+++
|
||
** ElDoc
|
||
|
||
*** New hook 'eldoc-documentation-functions'.
|
||
This hook is intended to be used for registering doc string functions.
|
||
These functions don't need to produce the doc string right away, they
|
||
may arrange for it to be produced asynchronously. The results of all
|
||
doc string functions are accessible to the user through the existing
|
||
variable 'eldoc-documentation-strategy'.
|
||
|
||
*** New user option 'eldoc-documentation-strategy'.
|
||
The built-in choices available for this user option let users compose
|
||
the results of 'eldoc-documentation-functions' in various ways, even
|
||
if some of those functions are sychronous and some asynchchronous.
|
||
The user option replaces 'eldoc-documentation-function', which is now
|
||
obsolete.
|
||
|
||
*** 'eldoc-echo-area-use-multiline-p' is now handled by ElDoc.
|
||
The user option 'eldoc-echo-area-use-multiline-p' is now handled
|
||
by the ElDoc library itself. Functions in
|
||
'eldoc-documentation-functions' don't need to worry about consulting
|
||
it when producing a doc string.
|
||
|
||
** Eshell
|
||
|
||
---
|
||
*** Environment variable 'INSIDE_EMACS' is now copied to subprocesses.
|
||
Its value equals the result of evaluating '(format "%s,eshell" emacs-version)'.
|
||
|
||
---
|
||
*** Eshell no longer re-initializes its keymap every call.
|
||
This allows users to use (define-key eshell-mode-map ...) as usual.
|
||
Some modules have their own minor mode now to account for these
|
||
changes.
|
||
|
||
** EUDC
|
||
|
||
+++
|
||
*** New macOS Contacts backend.
|
||
This backend works on newer versions of macOS and is generally
|
||
preferred over the eudcb-mab.el backend.
|
||
|
||
** Tramp
|
||
|
||
+++
|
||
*** New connection method "media", which allows accessing media devices
|
||
like cell phones, tablets or cameras.
|
||
|
||
+++
|
||
*** New command 'tramp-crypt-add-directory'.
|
||
This command marks a remote directory to contain only encrypted files.
|
||
See the "(tramp) Keeping files encrypted" node of the Tramp manual for
|
||
details. This feature is experimental.
|
||
|
||
** Tempo
|
||
|
||
---
|
||
*** 'tempo-define-template' can now re-assign templates to tags.
|
||
Previously, assigning a new template to an already defined tag had no
|
||
effect.
|
||
|
||
** map.el
|
||
|
||
*** Pcase 'map' pattern added keyword symbols abbreviation.
|
||
A pattern like '(map :sym)' binds the map's value for ':sym' to 'sym',
|
||
equivalent to '(map (:sym sym))'.
|
||
|
||
** Package
|
||
|
||
+++
|
||
*** New functions to filter the package list.
|
||
The filter command key bindings are as follows:
|
||
|
||
key binding
|
||
--- -------
|
||
/ a package-menu-filter-by-archive
|
||
/ k package-menu-filter-by-keyword
|
||
/ n package-menu-filter-by-name
|
||
/ s package-menu-filter-by-status
|
||
/ v package-menu-filter-by-version
|
||
/ m package-menu-filter-marked
|
||
/ / package-menu-filter-clear
|
||
|
||
---
|
||
+++ Column widths in 'list-packages' display can now be customized.
|
||
See the new user options 'package-name-column-width',
|
||
'package-version-column-width', 'package-status-column-width', and
|
||
'package-archive-column-width'.
|
||
|
||
** gdb-mi
|
||
|
||
+++
|
||
*** gdb-mi can now store and restore window configurations.
|
||
Use 'gdb-save-window-configuration' to save window configuration to a
|
||
file and 'gdb-load-window-configuration' to load from a file. These
|
||
commands can also be accessed through the menu bar under 'Gud --
|
||
GDB-Windows'. 'gdb-default-window-configuration-file', when non-nil,
|
||
is loaded when GDB starts up.
|
||
|
||
+++
|
||
*** gdb-mi can now restore window configuration after quit.
|
||
Set 'gdb-restore-window-configuration-after-quit' to non-nil and Emacs
|
||
will remember the window configuration before GDB started and restore
|
||
it after GDB quits. A toggle button is also provided under 'Gud --
|
||
GDB-Windows'.
|
||
|
||
+++
|
||
*** gdb-mi now has a better logic for displaying source buffers.
|
||
Now GDB only uses one source window to display source file by default.
|
||
Customize 'gdb-max-source-window-count' to use more than one window.
|
||
Control source file display by 'gdb-display-source-buffer-action'.
|
||
|
||
** Gravatar
|
||
|
||
---
|
||
*** New user option 'gravatar-service' for host to query for gravatars.
|
||
Defaults to 'libravatar', with 'unicornify' and 'gravatar' as options.
|
||
|
||
** Compilation mode
|
||
|
||
*** Regexp matching of messages is now case-sensitive by default.
|
||
The variable 'compilation-error-case-fold-search' can be set for
|
||
case-insensitive matching of messages when the old behaviour is
|
||
required, but the recommended solution is to use a correctly matching
|
||
regexp instead.
|
||
|
||
** Hi Lock mode
|
||
|
||
---
|
||
*** Matching in 'hi-lock-mode' is case-sensitive when regexp contains
|
||
upper case characters and 'search-upper-case' is non-nil.
|
||
'highlight-phrase' also uses 'search-whitespace-regexp'
|
||
to substitute spaces in regexp search.
|
||
|
||
---
|
||
*** The default value of 'hi-lock-highlight-range' was enlarged.
|
||
The new default value is 2000000 (2 megabytes).
|
||
|
||
** Texinfo
|
||
|
||
---
|
||
*** New user option 'texinfo-texi2dvi-options'.
|
||
This is used when invoking 'texi2dvi' from 'texinfo-tex-buffer'.
|
||
|
||
** Rmail
|
||
|
||
---
|
||
*** New user option 'rmail-re-abbrevs'.
|
||
Its default value matches localized abbreviations of the "reply"
|
||
prefix on the Subject line in various languages.
|
||
|
||
** Apropos
|
||
|
||
*** New commands 'apropos-next-symbol' and 'apropos-previous-symbol'.
|
||
These new navigation commands are bound to 'n' and 'p' in
|
||
'apropos-mode'.
|
||
|
||
** CC Mode
|
||
|
||
*** Added support for Doxygen documentation style.
|
||
'doxygen' is now a valid 'c-doc-comment-style' which recognises all
|
||
comment styles supported by Doxygen (namely '///', '//!', '/** … */'
|
||
and '/*! … */'. 'gtkdoc' remains the default for C and C++ modes; to
|
||
use 'doxygen' by default one might evaluate:
|
||
|
||
(setq-default c-doc-comment-style
|
||
'((java-mode . javadoc)
|
||
(pike-mode . autodoc)
|
||
(c-mode . doxygen)
|
||
(c++-mode . doxygen)))
|
||
|
||
or use it in a custom 'c-style'.
|
||
|
||
*** Added support to line up '?' and ':' of a ternary operator.
|
||
The new 'c-lineup-ternary-bodies' function can be used as a lineup
|
||
function to align question mark and colon which are part of a ternary
|
||
operator ('?:'). For example:
|
||
|
||
return arg % 2 == 0 ? arg / 2
|
||
: (3 * arg + 1);
|
||
|
||
To enable, add it to appropriate entries in 'c-offsets-alist', e.g.:
|
||
|
||
(c-set-offset 'arglist-cont '(c-lineup-ternary-bodies
|
||
c-lineup-gcc-asm-reg))
|
||
(c-set-offset 'arglist-cont-nonempty '(c-lineup-ternary-bodies
|
||
c-lineup-gcc-asm-reg
|
||
c-lineup-arglist))
|
||
(c-set-offset 'statement-cont '(c-lineup-ternary-bodies +))
|
||
|
||
** browse-url
|
||
|
||
*** Added support for custom URL handlers.
|
||
There is a new variable 'browse-url-default-handlers' and a user
|
||
option 'browse-url-handlers' being alists with '(REGEXP-OR-PREDICATE
|
||
. FUNCTION)' entries allowing to define different browsing FUNCTIONs
|
||
depending on the URL to be browsed. The variable is for default
|
||
handlers provided by Emacs itself or external packages, the user
|
||
option is for the user (and allows for overriding the default
|
||
handlers).
|
||
|
||
Formerly, one could do the same by setting
|
||
'browse-url-browser-function' to such an alist. This usage is still
|
||
supported but deprecated.
|
||
|
||
*** Categorization of browsing functions in internal vs. external.
|
||
All standard browsing functions such as 'browse-url-firefox',
|
||
'browse-url-mail', or 'eww' have been categorized into internal (URL
|
||
is browsed in Emacs) or external (an external application is spawned
|
||
with the URL). This is done by adding a 'browse-url-browser-kind'
|
||
symbol property to the browsing functions. With a new command
|
||
'browse-url-with-browser-kind', an URL can explicitly be browsed with
|
||
either an internal or external browser.
|
||
|
||
*** Support for the conkeror browser is now obsolete.
|
||
|
||
** SHR
|
||
|
||
---
|
||
*** The command 'shr-browse-url' now supports custom mailto handlers.
|
||
Clicking on or otherwise following a 'mailto:' link in a HTML buffer
|
||
rendered by SHR previously invoked the command 'browse-url-mailto'.
|
||
This is still the case by default, but if you customize
|
||
'browse-url-mailto-function' or 'browse-url-handlers' to call some
|
||
other function, it will now be called instead of the default.
|
||
|
||
+++
|
||
*** New variable 'shr-max-width'.
|
||
If this variable is non-nil, and 'shr-width' is nil, then SHR will use
|
||
the value of 'shr-max-width' to limit the width of the rendered HTML.
|
||
The default is 120 characters, so even if you have very wide frames,
|
||
HTML text will be rendered more narrowly, which usually leads to a
|
||
more readable text. Set this variable to nil to get the previous
|
||
behavior of rendering as wide as the window-width allows. If
|
||
'shr-width' is non-nil, it overrides this variable.
|
||
|
||
** EWW
|
||
|
||
---
|
||
*** The command 'eww-follow-link' now supports custom mailto handlers.
|
||
The function that is invoked when clicking on or otherwise following a
|
||
'mailto:' link in an EWW buffer can now be customized. For more
|
||
information, see the related entry about 'shr-browse-url' above.
|
||
|
||
** Project
|
||
|
||
*** New user option 'project-vc-merge-submodules'.
|
||
|
||
*** Project commands now have their own history.
|
||
Previously used project directories are now suggested by all commands
|
||
that prompt for a project directory.
|
||
|
||
+++
|
||
*** New prefix keymap 'project-prefix-map'.
|
||
Key sequences that invoke project-related commands start with the
|
||
prefix 'C-x p'. Type "C-x p C-h" to show the full list.
|
||
|
||
+++
|
||
*** New commands 'project-dired', 'project-vc-dir', 'project-shell',
|
||
'project-eshell'. These commands run Dired/VC-Dir and Shell/Eshell in
|
||
a project's root directory, respectively.
|
||
|
||
+++
|
||
*** New command 'project-compile'.
|
||
This command runs compilation in the current project's root
|
||
directory.
|
||
|
||
+++
|
||
*** New command 'project-switch-project'.
|
||
This command lets you "switch" to another project and run a project
|
||
command chosen from a dispatch menu.
|
||
|
||
+++
|
||
*** New user option 'project-list-file'.
|
||
|
||
** json.el
|
||
|
||
---
|
||
*** JSON number parsing is now stricter.
|
||
Numbers with a leading plus sign, leading zeros, or a missing integer
|
||
component are now rejected by 'json-read' and friends. This makes
|
||
them more compliant with the JSON specification and consistent with
|
||
the native JSON parsing functions.
|
||
|
||
** xml.el
|
||
|
||
*** XML serialization functions now reject invalid characters.
|
||
Previously 'xml-print' would produce invalid XML when given a string
|
||
with characters that are not valid in XML (see
|
||
https://www.w3.org/TR/xml/#charsets). Now it rejects such strings.
|
||
|
||
** Battery
|
||
|
||
---
|
||
*** UPower is now the default battery status backend when available.
|
||
UPower support via the function 'battery-upower' was added in Emacs
|
||
26.1, but was disabled by default. It is now the default value of
|
||
'battery-status-function' when the system provides a UPower D-Bus
|
||
service. The user options 'battery-upower-device' and
|
||
'battery-upower-subscribe' control which power sources to query and
|
||
whether to respond to status change notifications in addition to
|
||
polling, respectively.
|
||
|
||
---
|
||
*** A richer syntax can be used to format battery status information.
|
||
The user options 'battery-mode-line-format' and
|
||
'battery-echo-area-format' now support the full formatting syntax of
|
||
the function 'format-spec' documented under node "(elisp) Custom Format
|
||
Strings". The new syntax includes specifiers for padding and
|
||
truncation, amongst other things.
|
||
|
||
** bug-reference.el
|
||
|
||
---
|
||
*** Bug reference mode auto-setup. If 'bug-reference-mode' or
|
||
'bug-reference-prog-mode' have been activated, their respective hook
|
||
has been run and still 'bug-reference-bug-regexp' and
|
||
'bug-reference-url-format' aren't both set, it tries to guess
|
||
appropriate values for those two variables. There are three guessing
|
||
mechanisms so far: based on version control information of the current
|
||
buffer's file, based on newsgroup/mail-folder name and several news
|
||
and mail message headers in Gnus buffers, and based on IRC channel and
|
||
network in rcirc and ERC buffers. All mechanisms are extensible with
|
||
custom rules, see the variables 'bug-reference-setup-from-vc-alist',
|
||
'bug-reference-setup-from-mail-alist', and
|
||
'bug-reference-setup-from-irc-alist'.
|
||
|
||
|
||
* New Modes and Packages in Emacs 28.1
|
||
|
||
** Lisp Data mode
|
||
|
||
The new command 'lisp-data-mode' enables a major mode for buffers
|
||
composed of Lisp symbolic expressions that do not form a computer
|
||
program. The ".dir-locals.el" file is automatically set to use this
|
||
mode, as are other data files produced by Emacs.
|
||
|
||
|
||
* Incompatible Editing Changes in Emacs 28.1
|
||
|
||
** In 'nroff-mode', 'center-line' is now bound to 'M-o M-s'.
|
||
The original key binding was 'M-s', which interfered with I-search,
|
||
since the latter uses 'M-s' as a prefix key of the search prefix map.
|
||
|
||
** 'vc-print-branch-log' shows the change log for BRANCH from its root
|
||
directory instead of the default directory.
|
||
|
||
|
||
* Incompatible Lisp Changes in Emacs 28.1
|
||
|
||
** 'equal' no longer examines some contents of window configurations.
|
||
Instead, it considers window configurations to be equal only if they
|
||
are 'eq'. To compare contents, use 'compare-window-configurations'
|
||
instead. This change helps fix a bug in 'sxhash-equal', which returned
|
||
incorrect hashes for window configurations and some other objects.
|
||
|
||
** When its first argument is a string, 'make-text-button' no longer
|
||
modifies the string's text properties; instead, it uses and returns
|
||
a copy of the string. This helps avoid trouble when strings are
|
||
shared or constants.
|
||
|
||
---
|
||
** The obsolete function 'thread-alive-p' has been removed.
|
||
|
||
** 'dns-query' now consistently uses Lisp integers to represent integers.
|
||
Formerly it made an exception for integer components of SOA records,
|
||
because SOA serial numbers can exceed fixnum ranges on 32-bit platforms.
|
||
Emacs now supports bignums so this old glitch is no longer needed.
|
||
|
||
** The Lisp variables 'previous-system-messages-locale' and
|
||
'previous-system-time-locale' have been removed, as they were created
|
||
by mistake and were not useful to Lisp code.
|
||
|
||
** The 'load-dangerous-libraries' variable is now obsolete.
|
||
It was used to allow loading Lisp libraries compiled by XEmacs, a
|
||
modified version of Emacs which is no longer actively maintained.
|
||
This is no longer supported, and setting this variable has no effect.
|
||
|
||
+++
|
||
** The macro 'with-displayed-buffer-window' is now obsolete.
|
||
Use macro 'with-current-buffer-window' with action alist entry 'body-function'.
|
||
|
||
** The metamail.el library is now marked obsolete.
|
||
|
||
---
|
||
** Some obsolete variable and function aliases in dbus.el have been removed.
|
||
In Emacs 24.3, the variable 'dbus-event-error-hooks' was renamed to
|
||
'dbus-event-error-functions' and the function
|
||
'dbus-call-method-non-blocking' was renamed to 'dbus-call-method'.
|
||
The old names, which were kept as obsolete aliases of the new names,
|
||
have now been removed.
|
||
|
||
---
|
||
** Some libraries obsolete since Emacs 23 have been removed:
|
||
'ledit.el', 'lmenu.el', 'lucid.el and 'old-whitespace.el'.
|
||
|
||
|
||
* Lisp Changes in Emacs 28.1
|
||
|
||
+++
|
||
** New function 'file-modes-number-to-symbolic' to convert a numeric
|
||
file mode specification into symbolic form.
|
||
|
||
** New macro 'dlet' to dynamically bind variables.
|
||
|
||
** The variable 'force-new-style-backquotes' has been removed.
|
||
This removes the final remaining trace of old-style backquotes.
|
||
|
||
** The module header 'emacs-module.h' now contains type aliases
|
||
'emacs_function' and 'emacs_finalizer' for module functions and
|
||
finalizers, respectively.
|
||
|
||
** Module functions can now install an optional finalizer that is
|
||
called when the function object is garbage-collected. Use
|
||
'set_function_finalizer' to set the finalizer and
|
||
'get_function_finalizer' to retrieve it.
|
||
|
||
** Modules can now open a channel to an existing pipe process using
|
||
the new module function 'open_channel'. Modules can use this
|
||
functionality to asynchronously send data back to Emacs.
|
||
|
||
** 'file-modes', 'set-file-modes', and 'set-file-times' now have an
|
||
optional argument specifying whether to follow symbolic links.
|
||
|
||
** 'parse-time-string' can now parse ISO 8601 format strings,
|
||
such as "2020-01-15T16:12:21-08:00".
|
||
|
||
+++
|
||
** The new function 'dom-remove-attribute' has been added.
|
||
|
||
---
|
||
** 'make-network-process', 'make-serial-process' ':coding' behavior change.
|
||
Previously, passing ':coding nil' to either of these functions would
|
||
override any non-nil binding for 'coding-system-for-read' and
|
||
'coding-system-for-write'. For consistency with 'make-process' and
|
||
'make-pipe-process', passing ':coding nil' is now ignored. No code in
|
||
Emacs depended on the previous behavior; if you really want the
|
||
process' coding-system to be nil, use 'set-process-coding-system'
|
||
after the process has been created, or pass in ':coding '(nil nil)'.
|
||
|
||
+++
|
||
** 'open-network-stream' now accepts a ':coding' argument.
|
||
This allows specifying the coding systems used by a network process
|
||
for encoding and decoding without having to bind
|
||
'coding-system-for-{read,write}' or call 'set-process-coding-system'.
|
||
|
||
+++
|
||
** 'open-network-stream' can now take a :capability-command that's a function.
|
||
The function is called with the greeting from the server as its only
|
||
parameter, and allows sending different TLS capability commands to the
|
||
server based on that greeting.
|
||
|
||
+++
|
||
** 'open-gnutls-stream' now also accepts a ':coding' argument.
|
||
|
||
+++
|
||
** New user option 'process-file-return-signal-string'.
|
||
It controls, whether 'process-file' returns a string when a remote
|
||
process is interrupted by a signal.
|
||
|
||
+++
|
||
** The behavior of 'format-spec' is now closer to that of 'format'.
|
||
In order for the two functions to behave more consistently,
|
||
'format-spec' now pads and truncates based on string width rather than
|
||
length, and also supports format specifications that include a
|
||
truncating precision field, such as '%.2a'.
|
||
|
||
---
|
||
** New function 'color-values-from-color-spec'.
|
||
This can be used to parse RGB color specs in several formats and
|
||
convert them to a list '(R G B)' of primary color values.
|
||
|
||
|
||
* Changes in Emacs 28.1 on Non-Free Operating Systems
|
||
|
||
+++
|
||
** On macOS, Emacs can now load dynamic modules with a ".dylib" suffix.
|
||
'module-file-suffix' now has the value ".dylib" on macOS, but the
|
||
".so" suffix is supported as well.
|
||
|
||
+++
|
||
** On MS-Windows, Emacs can now toggle the IME.
|
||
A new function 'w32-set-ime-open-status' can now be used to disable
|
||
and enable the MS-Windows native Input Method Editor (IME) at run
|
||
time. A companion function 'w32-get-ime-open-status' returns the
|
||
current IME activation status.
|
||
|
||
+++
|
||
** On MS-Windows, Emacs can now use the native image API to display images.
|
||
Emacs can now use the MS-Windows GDI+ library to load and display
|
||
images in JPEG, PNG, GIF and TIFF formats. This support is enabled
|
||
unless Emacs was configured '--without-native-image-api'.
|
||
|
||
This feature is experimental, and needs to be turned on to be used.
|
||
To turn this on, set the variable 'w32-use-native-image-API' to a
|
||
non-nil value. Please report any bugs you find while using the native
|
||
image API via 'M-x report-emacs-bug'.
|
||
|
||
|
||
----------------------------------------------------------------------
|
||
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 <https://www.gnu.org/licenses/>.
|
||
|
||
|
||
Local variables:
|
||
coding: utf-8
|
||
mode: outline
|
||
paragraph-separate: "[ ]*$"
|
||
end:
|