---
** Sorting commands no longer necessarily change modification status.
-In earlier Emacs versions, commands like 'M-x sort-lines' would always
+In earlier Emacs versions, commands like 'sort-lines' would always
change buffer modification status to "modified", whether they changed
something in the buffer or not. This has been changed: the buffer is
marked as modified only if the sorting ended up actually changing the
This is to open up the 'C-x 8 .' map to bind further characters there.
---
-** 'C-x 8 =' moved to 'C-x 8 = ='.
+** 'C-x 8 =' has been moved to 'C-x 8 = ='.
You can now use 'C-x 8 =' to insert several characters with macron;
for example, 'C-x 8 = a' will insert U+0101 LATIN SMALL LETTER A WITH
MACRON. To insert a lone macron, type 'C-x 8 = =' instead of the
*** Eshell's PATH is now derived from 'exec-path'.
For consistency with remote connections, Eshell now uses 'exec-path'
-to determine the execution path on the local system, instead of using
-the PATH environment variable directly.
+to determine the execution path on the local or remote system, instead
+of using the PATH environment variable directly.
---
*** 'source' and '.' no longer accept the '--help' option.
---
** The 'delete-forward-char' command now deletes by grapheme clusters.
-This command is by default bound to the <Delete> function key
-(a.k.a. <deletechar>). When invoked without a prefix argument or with
-a positive prefix numeric argument, the command will now delete
+This command is by default bound to the '<Delete>' function key
+(a.k.a. '<deletechar>'). When invoked without a prefix argument or
+with a positive prefix numeric argument, the command will now delete
complete grapheme clusters produced by character composition. For
-example, if point is before an Emoji sequence, pressing <Delete> will
-delete the entire sequence, not just a single character at its
+example, if point is before an Emoji sequence, pressing '<Delete>'
+will delete the entire sequence, not just a single character at its
beginning.
+++
---
** The thumbs.el library is now obsolete.
-We recommend using 'M-x image-dired' instead.
+We recommend using command 'image-dired' instead.
---
** The autoarg.el library is now marked obsolete.
+++
** 'network-lookup-address-info' can now check numeric IP address validity.
-Specifying 'numeric' as the new optional 'hints' argument makes it
+Specifying 'numeric' as the new optional HINTS argument makes it
check if the passed address is a valid IPv4/IPv6 address (without DNS
traffic).
the current Emacs process at the end, it starts a new Emacs process
(using the same command line arguments as the running Emacs process).
'kill-emacs' and 'save-buffers-kill-emacs' have also gained new
-optional parameters to restart instead of just killing the current
+optional arguments to restart instead of just killing the current
process.
** Drag and Drop
---
*** Select active regions with xterm selection support.
-On terminals with xterm setSelection support, the active region may be
+On terminals with xterm "setSelection" support, the active region may be
saved to the X primary selection, following the
'select-active-regions' variable. This support is enabled when
'tty-select-active-regions' is non-nil.
*** New user option 'help-enable-variable-value-editing'.
If enabled, 'e' on a value in "*Help*" will pop you to a new buffer
where you can edit the value. This is not enabled by default, because
-it's easy to make an edit that yields an invalid result.
+it is easy to make an edit that yields an invalid result.
---
*** 'C-h b' uses outlining by default.
'C-h C-q'.
** Emacs now comes with Org v9.6.
-See the file ORG-NEWS for user-visible changes in Org.
+See the file "ORG-NEWS" for user-visible changes in Org.
** Outline Mode
*** 'display-buffer' now can set up the body size of the chosen window.
For example, a 'display-buffer-alist' entry of
- '(window-width . (body-columns . 40))'
+ (window-width . (body-columns . 40))
will make the body of the chosen window 40 columns wide. For the
height use 'window-height' and 'body-lines', respectively.
---
*** You can customize on which window 'scroll-other-window' operates.
-This is controlled by the new 'other-window-scroll-default' user option.
+This is controlled by the new 'other-window-scroll-default' variable.
** Frames
highlights segments of buffer text whose reordering for display is
suspicious and could be malicious.
-** Emacs server and client changes
+** Emacs Server and Client
+++
*** New command-line option '-r'/'--reuse-frame' for emacsclient.
*** New user option 'rcirc-bridge-bot-alist'.
If you are in a channel where a bot is responsible for bridging
between networks, you can use this variable to make these messages
-appear more native. For example you might set the option to:
+appear more native. For example, you might set the option to:
- (setq rcirc-bridge-bot-alist '(("bridge" . "{\\(.+?\\)}[[:space:]]+")))
+ (setopt rcirc-bridge-bot-alist '(("bridge" . "{\\(.+?\\)}[[:space:]]+")))
for messages like
this feature, given the ability to display buffers with very long
lines.)
+\f
* Editing Changes in Emacs 29.1
+++
---
** New user option 'yank-menu-max-items'.
Customize this option to limit the number of entries in the menu
-"Edit->Paste from Kill Menu". The default is 60.
+"Edit → Paste from Kill Menu". The default is 60.
+++
** Performing a pinch gesture on a touchpad now increases the text scale.
-** show-paren-mode
+** Show Paren Mode
+++
*** New user option 'show-paren-context-when-offscreen'.
---
*** New user options for alternate wheel events.
-The options 'mouse-wheel-down-alternate-event',
-'mouse-wheel-up-alternate-event', 'mouse-wheel-left-alternate-event',
-and 'mouse-wheel-right-alternate-event' have been added to better
-support systems where two kinds of wheel events can be received.
+The user options 'mouse-wheel-down-alternate-event' and
+'mouse-wheel-up-alternate-event' as well as the variables
+'mouse-wheel-left-alternate-event' and
+'mouse-wheel-right-alternate-event' have been added to better support
+systems where two kinds of wheel events can be received.
-** Internationalization changes
+** Internationalization
---
-*** The <Delete> function key now allows deleting the entire composed sequence.
+*** The '<Delete>' function key now allows deleting the entire composed sequence.
For the details, see the item about the 'delete-forward-char' command
above.
'tamil-translation-rules'.
---
-*** New tamil99 input method for the Tamil language.
+*** New 'tamil99' input method for the Tamil language.
This supports the keyboard layout specifically designed for the Tamil
language.
If non-nil, this user option describes what entries not to add to the
database stored on disk.
-** Auth-Source
+** Auth Source
+++
*** New user option 'auth-source-pass-extra-query-keywords'.
+++
*** 'dired-do-relsymlink-regexp' moved from dired-x to dired.
-The corresponding key '% Y' is now bound by default in Dired.
+The corresponding key sequence '% Y' is now bound by default in Dired.
---
*** 'M-G' is now bound to 'dired-goto-subdir'.
instead of having it on a separate line. To get the previous behavior
back, say:
- (setq dired-free-space 'separate)
+ (setopt dired-free-space 'separate)
---
*** New user option 'dired-make-directory-clickable'.
This is bound to 'H' and toggles whether to hide or show the widget
contents.
-** Diff mode
+** Diff Mode
---
*** New user option 'diff-whitespace-style'.
+++
*** New user option 'compilation-max-output-line-length'.
-Lines longer than the value of this variable will have their ends
+Lines longer than the value of this option will have their ends
hidden, with a button to reveal the hidden text. This speeds up
operations like grepping on files that have few newlines. The default
value is 400; set to nil to disable hiding.
---
** savehist.el can now truncate variables that are too long.
-An element of 'savehist-additional-variables' can now be of the form
-'(VARIABLE . MAX-ELTS)', which means to truncate the VARIABLE's value to
-at most MAX-ELTS elements (if the value is a list) before saving the
-value.
+An element of user option 'savehist-additional-variables' can now be
+of the form '(VARIABLE . MAX-ELTS)', which means to truncate the
+VARIABLE's value to at most MAX-ELTS elements (if the value is a list)
+before saving the value.
** Minibuffer and Completions
face" or "heart with arrow"), like 'C-x 8 e e', with minibuffer
completion, and adds the Emoji into the search string.
-** Glyphless characters
+** Glyphless Characters
+++
*** New minor mode 'glyphless-display-mode'.
*** "Replacement character" feature for undisplayable characters on TTYs.
The 'acronym' method of displaying glyphless characters on text-mode
frames treats single-character acronyms specially: they are displayed
-without the surrounding [..] "box", thus in effect treating such
+without the surrounding '[..]' "box", thus in effect treating such
"acronyms" as replacement characters.
** Registers
(set-register ?m '(buffer . "*Messages*"))
-** Pixel-fill
+** Pixel Fill
+++
*** This is a new package that deals with filling variable-pitch text.
** Info
+++
-*** 'M-x info-apropos' now takes a prefix argument to search for regexps.
+*** Command 'info-apropos' now takes a prefix argument to search for regexps.
---
*** New command 'Info-goto-node-web' and key binding 'G'.
-This will take you to the gnu.org web server's version of the current
+This will take you to the "gnu.org" web server's version of the current
info node. This command only works for the Emacs and Emacs Lisp manuals.
** Shortdoc
+++
*** 'eudc-expansion-overwrites-query' to 'eudc-expansion-save-query-as-kill'.
-'eudc-expansion-overwrites-query' is renamed to
+The user option 'eudc-expansion-overwrites-query' is renamed to
'eudc-expansion-save-query-as-kill' to reflect the actual behavior of
-the user option.
+the user option. The former is kept as alias.
+++
*** New command 'eudc-expand-try-all'.
*** New behavior and default for user option 'eudc-inline-expansion-format'.
EUDC inline expansion result formatting defaulted to
- '("%s %s <%s>" firstname name email)
+ ("%s %s <%s>" firstname name email)
Since email address specifications need to comply with RFC 5322 in
order to be useful in messages, there was a risk to produce syntax
The 'eww-auto-rename-buffer' user option can be configured to rename
rendered web pages by using their title, URL, or a user-defined
function which returns a string. For the first two cases, the length
-of the resulting name is controlled by 'eww-buffer-name-length'. By
-default, no automatic renaming is performed.
+of the resulting name is controlled by the user option
+'eww-buffer-name-length'. By default, no automatic renaming is
+performed.
+++
*** New user option 'shr-allowed-images'.
These are used to alter an URL before using it. By default it removes
the common "utm_" trackers from URLs.
-** Find-Dired
+** Find Dired
---
*** New command 'find-dired-with-command'.
'gnus-group-tool-bar-retro' and 'message-tool-bar-retro', and
'gnus-summary-tool-bar-gnome', 'gnus-group-tool-bar-gnome' and
'message-tool-bar-gnome'. The "retro" tool bars have been removed (as
-well as the icons used), and the "Gnome" tool bars are now the only
+well as the icons used), and the "gnome" tool bars are now the only
pre-defined toolbars.
---
*** 'gnus-summary-up-thread' and 'gnus-summary-down-thread' bindings removed.
-The 'gnus-summary-down-thread' binding to "M-C-d" was shadowed by
+The 'gnus-summary-down-thread' binding to 'M-C-d' was shadowed by
'gnus-summary-read-document', and these commands are also available on
-"T-u" and "T-d" respectively.
+'T u' and 'T d' respectively.
---
*** Gnus now uses a variable-pitch font in the headers by default.
for the command they are bound to. This does not affect listings of
key bindings and functions (such as 'C-h b').
-** Info-look
+** Info Look
---
*** info-look specs can now be expanded at run time instead of a load time.
':doc-spec' element when the user asks for info on that particular
mode (instead of at load time).
-** Ansi-color
+** Ansi Color
---
*** Support for ANSI 256-color and 24-bit colors.
256-color and 24-bit color codes are now handled by ANSI color
filters and displayed with the specified color.
-** Term-mode
+** Term Mode
---
*** New user option 'term-bind-function-keys'.
---
*** New function 'xref-show-xrefs'.
-** File notifications
+** File Notifications
+++
*** The new command 'file-notify-rm-all-watches' removes all file notifications.
*** Users can now add special image conversion functions.
This is done via 'image-converter-add-handler'.
-** Image-Dired
+** Image Dired
+++
*** 'image-dired-image-mode' is now based on 'image-mode'.
to use it; it is not enabled by default.
---
-*** Reduce dependency on external "exiftool" command.
-The 'image-dired-copy-with-exif-file-name' no longer requires an
-external "exiftool" command to be available. The user options
+*** Reduce dependency on external "exiftool" program.
+The 'image-dired-copy-with-exif-file-name' command no longer requires
+an external "exiftool" program to be available. The user options
'image-dired-cmd-read-exif-data-program' and
'image-dired-cmd-read-exif-data-options' are now obsolete.
This is a convenience function to extract the field data from
'exif-parse-file' and 'exif-parse-buffer'.
-** Xwidgets
+** Xwidget
---
*** New user option 'xwidget-webkit-buffer-name-format'.
+++
*** New connection methods "docker", "podman" and "kubernetes".
-They allow accessing environments provided by Docker and similar
+They allow accessing containers provided by Docker and similar
programs.
---
shell. This is particularly useful to bypass Eshell's own pipelining
support for pipelines which will move a lot of data. See section
"Running Shell Pipelines Natively" in the Eshell manual, node
-"(eshell) Input/Output".
+"(eshell) Pipelines".
+++
*** New module to help supplying absolute file names to remote commands.
commands" in the "(eshell) Built-ins" node of the Eshell manual.
---
-*** Eshell globs ending with '/' now match only directories.
-Additionally, globs ending with '**/' or '***/' no longer raise an
+*** Eshell globs ending with "/" now match only directories.
+Additionally, globs ending with "**/" or "***/" no longer raise an
error, and now expand to all directories recursively (following
symlinks in the latter case).
*** The url-irc library now understands "ircs://" links.
---
-*** New command 'world-clock-copy-time-as-kill' for 'M-x world-clock'.
+*** New command 'world-clock-copy-time-as-kill' for 'world-clock-mode'.
It copies the current line into the kill ring.
---
name.
---
-*** New key binding 'O' in 'M-x list-buffers'.
+*** New key binding 'O' in "*Buffer List*".
This key is now bound to 'Buffer-menu-view-other-window', which will
view this line's buffer in View mode in another window.
-** Scheme mode
+** Scheme Mode
---
*** Auto-detection of Scheme library files.
Emacs now automatically enables the Scheme mode when opening R6RS
-Scheme Library Source ('.sls') files and R7RS Scheme Library
-Definition ('.sld') files.
+Scheme Library Source (".sls") files and R7RS Scheme Library
+Definition (".sld") files.
---
*** Imenu members for R6RS and R7RS library members.
Emacs now comes with the Eglot package, which enhances various Emacs
features, such as completion, documentation, error detection, etc.,
based on data provided by language servers using the Language Server
-Protocol (LSP).
+Protocol (LSP). See the new Info manual "(eglot) Top" for more.
+++
-*** use-package: Declarative package configuration.
+** use-package: Declarative package configuration.
use-package is now shipped with Emacs. It provides the 'use-package'
macro, which allows you to isolate package configuration in your init
file in a way that is declarative, tidy, and performance-oriented.
the parser grammar library is not available. To prevent the warnings,
either build Emacs with tree-sitter and install the grammar libraries,
or customize 'auto-mode-alist' to specify some other major mode (or
-even Fundamental mode) for those kinds of files.
+even 'fundamental-mode') for those kinds of files.
Each major mode based on tree-sitter needs a language grammar library,
usually named "libtree-sitter-LANG.so" ("libtree-sitter-LANG.dll" on
displays.)
+++
-** Changes in how "raw" in-memory xbm images are specified.
+** Changes in how "raw" in-memory XBM images are specified.
Some years back Emacs gained the ability to scale images, and you
could then specify ':width' and ':height' when using 'create-image' on all
-image types -- except xbm images, because this format already used the
+image types -- except XBM images, because this format already used the
':width' and ':height' arguments to specify the width/height of the "raw"
in-memory format. This meant that if you used these specifications
-on, for instance, xbm files, Emacs would refuse to display them. This
+on, for instance, XBM files, Emacs would refuse to display them. This
has been changed, and ':width'/':height' now works as with all other image
formats, and the way to specify the width/height of the "raw"
in-memory format is now by using ':data-width' and ':data-height'.
information about autoloads, built-in packages and package prefixes)
used to be generated by functions in autoloads.el. These are now
generated by loaddefs-gen.el instead. This leads to functionally
-equivalent "loaddef.el" files, but they do not use exactly the same
+equivalent "loaddefs.el" files, but they do not use exactly the same
syntax, so using 'M-x update-file-autoloads' no longer works. (This
didn't work well in most files in the past, either, but it will now
signal an error in any file.)
---
** 'compilation-last-buffer' is (finally) declared obsolete.
-It's been obsolete since Emacs-22.1, actually.
+It has been obsolete since Emacs 22.1, actually.
---
** Calling 'lsh' now elicits a byte-compiler warning.
'command-history-map', 'compilation-parse-errors-function',
'completion-annotate-function', 'condition-case-no-debug',
'count-lines-region', 'crisp-mode-modeline-string',
-'custom-print-functions', 'custom-print-functions',
-'cvs-string-prefix-p', 'data-debug-map', 'deferred-action-function',
-'deferred-action-list', 'dired-pop-to-buffer', 'dired-shrink-to-fit',
+'custom-print-functions', 'cvs-string-prefix-p', 'data-debug-map',
+'deferred-action-function', 'deferred-action-list',
+'dired-pop-to-buffer', 'dired-shrink-to-fit',
'dired-sort-set-modeline', 'dired-x-submit-report',
'display-buffer-function',
'ediff-choose-window-setup-function-automatically',
'inhibit-first-line-modes-suffixes', 'input-method-inactivate-hook',
'intdos', 'javascript-generic-mode', 'javascript-generic-mode-hook',
'latex-string-prefix-p', 'macro-declaration-function' (function),
-'macro-declaration-function' (variable), 'mail-complete-function',
-'mail-completion-at-point-function',
-'mail-mailer-swallows-blank-line', 'mail-sent-via', 'make-register',
-'makefile-complete', 'menu-bar-kill-ring-save',
-'meta-complete-symbol', 'meta-mode-map',
+'macro-declaration-function' (variable), 'mail-complete',
+'mail-complete-function', 'mail-mailer-swallows-blank-line',
+'mail-sent-via', 'make-register', 'makefile-complete',
+'menu-bar-kill-ring-save', 'meta-complete-symbol', 'meta-mode-map',
'mh-kill-folder-suppress-prompt-hooks',
'minibuffer-completing-symbol',
'minibuffer-local-filename-must-match-map', 'mode25', 'mode4350',
when executing commands interactively.
+++
-** The FORM arg of 'time-convert' is mandatory.
+** The FORM argument of 'time-convert' is mandatory.
'time-convert' can still be called without it, as before, but the
compiler now emits a warning about this deprecated usage.
The default timeout value can be defined by the new variable
'set-transient-map-timeout'.
-** Connection-local variables
+** Connection Local Variables
+++
*** Some connection-local variables are now user options.
+++
** 'plist-get', 'plist-put' and 'plist-member' are no longer limited to 'eq'.
-These function now take an optional comparison predicate argument.
+These function now take an optional comparison PREDICATE argument.
+++
** 'read-multiple-choice' can now use long-form answers.
will now report the maximum valid codepoint defined by the Unicode
Standard.
-** seq
+** Seq
+++
*** New function 'seq-split'.
display changes.
+++
-** 'prin1' and 'prin1-to-string' now take an optional OVERRIDES parameter.
-This parameter can be used to override values of print-related settings.
+** 'prin1' and 'prin1-to-string' now take an optional OVERRIDES argument.
+This argument can be used to override values of print-related settings.
+++
** New minor mode 'header-line-indent-mode'.
'display-line-numbers-mode' on or off.
+++
-** New minor mode 'lost-selection-mode'.
-This minor mode makes Emacs deactivate the mark in all buffers when
-the primary selection is obtained by another program.
+** New global minor mode 'lost-selection-mode'.
+This global minor mode makes Emacs deactivate the mark in all buffers
+when the primary selection is obtained by another program.
---
** On X, Emacs will try to preserve selection ownership when a frame is deleted.
** New predicate 'char-uppercase-p'.
This returns non-nil if its argument its an uppercase character.
-** Byte compilation
+** Byte Compilation
---
*** Byte compilation will now warn about some quoting mistakes in docstrings.
---
*** Byte compilation will now warn about some malformed 'defcustom' types.
-It's very common to write 'defcustom' types on the form:
+It is very common to write 'defcustom' types on the form:
:type '(choice (const :tag "foo" 'bar))
This works like 'buttonize', but for a region instead of a string.
+++
-** 'macroexp-let2*' can omit TEST arg and use single-var bindings.
+** 'macroexp-let2*' can omit TEST argument and use single-var bindings.
+++
** New macro-writing macros, 'cl-with-gensyms' and 'cl-once-only'.
used to determine the type of an input device.
+++
-** 'track-mouse' can have a new value 'drag-source'.
+** Variable 'track-mouse' can have a new value 'drag-source'.
This means the same as 'dropping', but modifies the mouse position
list in reported motion events if there is no frame underneath the
mouse pointer.
---
** New function 'bidi-string-strip-control-characters'.
-This utility function is meant for displaying strings when it's
+This utility function is meant for displaying strings when it is
essential that there's no bidirectional context. It removes all the
bidirectional formatting control characters (such as RLM, LRO, PDF,
etc.) from its argument string. The characters it removes are listed
+++
** New hook 'x-pre-popup-menu-hook'.
-This hook is run before 'x-popup-menu' is about to display a
+This hook, run before 'x-popup-menu', is about to display a
deck-of-cards menu on screen.
---
** New hook 'post-select-region-hook'.
-This hook is run immediately after 'select-active-regions' causes the
-region to be set as the primary selection.
+This hook is run immediately after 'select-active-regions'. It causes
+the region to be set as the primary selection.
+++
** New function 'buffer-match-p'.
Check if a buffer satisfies some condition. Some examples for
conditions can be regular expressions that match a buffer name, a
cons-cell like '(major-mode . shell-mode)' that matches any buffer
-where 'major-mode' is 'shell-mode' or a combined with a condition like
-'(and "\\`\\*.+\\*\\'" (major-mode . special-mode))'.
+where 'major-mode' is 'shell-mode' or a combination with a condition
+like '(and "\\`\\*.+\\*\\'" (major-mode . special-mode))'.
+++
** New function 'match-buffers'.
condition.
---
-** New optional arguments 'text-face' and 'default-face' for 'tooltip-show'.
+** New optional arguments TEXT-FACE and DEFAULT-FACE for 'tooltip-show'.
They allow changing the faces used for the tooltip text and frame
colors of the resulting tooltip frame from the default 'tooltip' face.
-** Text security and suspiciousness
+** Text Security and Suspiciousness
+++
*** New library textsec.el.
This library contains a number of checks for whether a string is
"suspicious". This usually means that the string contains characters
that have glyphs that can be confused with other, more commonly used
-glyphs, or contain bidirectional (or other) formatting characters that
-may be used to confuse a user.
+glyphs, or contains bidirectional (or other) formatting characters
+that may be used to confuse a user.
+++
*** New user option 'textsec-check'.
whether a string is suspicious. It heeds the 'textsec-check' user
option.
-** Keymaps and key definitions
+** Keymaps and Key Definitions
+++
*** 'where-is-internal' can now filter events marked as non key events.
*** Use 'keymap-set-after' instead of 'define-key-after'.
+++
-*** Use 'keymap-lookup' instead of 'lookup-keymap' and 'key-binding'.
+*** Use 'keymap-lookup' instead of 'lookup-key' and 'key-binding'.
+++
*** Use 'keymap-local-lookup' instead of 'local-key-binding'.
searchable data, like image data) with a 'display' text property.
+++
-** 'insert-image' now takes an INHIBIT-ISEARCH optional parameter.
+** 'insert-image' now takes an INHIBIT-ISEARCH optional argument.
It marks the image with the 'inhibit-isearch' text property, which
-inhibits 'isearch' matching the STRING parameter.
+inhibits 'isearch' matching the STRING argument.
---
** New variable 'replace-regexp-function'.
This means the vscroll will not be reset when set on a window that is
"frozen" due to a mini-window being resized.
-** XDG support
+** XDG Support
---
*** New function 'xdg-state-home'.
This macro can be used to change the locale temporarily while
executing code.
-** table.el
+** Table
---
*** New user option 'table-latex-environment'.
+++
** 'kill-all-local-variables' can now kill all local variables.
-If given the new optional KILL-PERMANENT argument, also kill permanent
-local variables.
+If given the new optional KILL-PERMANENT argument, it also kills
+permanent local variables.
+++
** Third 'mapconcat' argument SEPARATOR is now optional.
Use ':repeat t' to have all bindings be repeatable or for more
advanced usage:
- ':repeat (:enter (commands ...) :exit (commands ...))'
+ :repeat (:enter (commands ...) :exit (commands ...))
---
** 'kbd' can now be used in built-in, preloaded libraries.
'[menu-bar foo-bar]'. This further improves backwards-compatibility
when converting menus to use 'easy-menu-define'.
-** xwidgets
+** Xwidget
+++
*** The function 'make-xwidget' now accepts an optional RELATED argument.
+++
*** New event type 'xwidget-display-event'.
-These events are sent whenever an xwidget requests that Emacs display
+These events are sent whenever an xwidget requests that Emacs displays
another xwidget. The only arguments to this event are the xwidget
that should be displayed, and the xwidget that asked to display it.
'(encode-time (list SECOND MINUTE HOUR DAY MONTH YEAR nil -1 nil))'.
+++
-** 'date-to-time' now accepts arguments that lacks month, day, or time.
+** 'date-to-time' now accepts arguments that lack month, day, or time.
The function now assumes the earliest possible values if its argument
lacks month, day, or time. For example, (date-to-time "2021-12-04")
-now assumes a time of 00:00 instead of signaling an error.
+now assumes a time of "00:00" instead of signaling an error.
+++
** 'format-seconds' now allows suppressing zero-value trailing elements.
+++
** New events for taking advantage of touchscreen devices.
-The events 'touchscreen-begin, 'touchscreen-update', and
+The events 'touchscreen-begin', 'touchscreen-update', and
'touchscreen-end' have been added to take better advantage of
touch-capable display panels.
translation.
+++
-** 'shell-quote-argument' has a new optional parameter POSIX.
+** 'shell-quote-argument' has a new optional argument POSIX.
This is useful when quoting shell arguments for a remote shell
invocation. Such shells are POSIX conformant by default.
---
*** GUI Yes/No dialogs now include a "Cancel" button.
The "Cancel" button is in addition to "Yes" and "No", and is intended
-to allow users to quit the dialog, as an equivalent of C-g when Emacs
+to allow users to quit the dialog, as an equivalent of 'C-g' when Emacs
asks a yes/no question via the echo area. This is controlled by the
new variable 'w32-yes-no-dialog-show-cancel', by default t. Set it to
nil to get back the old behavior of showing a modal dialog with only