applies, and please also update docstrings as needed.
\f
-* Installation Changes in Emacs 28.1
-
-** Emacs now optionally supports native compilation of Lisp files.
-To enable this, configure Emacs with the '--with-native-compilation' option.
-This requires the libgccjit library to be installed and functional,
-and also requires GCC and Binutils to be available when Lisp code is
-natively compiled. See the Info node "(elisp) Native Compilation" for
-more details.
-
-If you build Emacs with native compilation, but without zlib, be sure
-to configure with the '--without-compress-install' option, so that the
-installed *.el files are not compressed; otherwise, you will not be
-able to use JIT native compilation of the installed *.el files.
-
-** The Cairo graphics library is now used by default if present.
-'--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 HarfBuzz support. 'x' is
-still a valid backend.
+* Installation Changes in Emacs 29.1
----
-** '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.
-
----
-** Building without double buffering support.
-'configure --with-xdbe=no' can now be used to disable double buffering
-at build time.
-
----
-** Support for building with Motif has been removed.
-
----
-** The configure option '--without-makeinfo' has been removed.
-This was only ever relevant when building from a repository checkout.
-This now requires makeinfo, which is part of the texinfo package.
-
----
-** New configure option '--disable-year2038'.
-This causes Emacs to use only 32-bit time_t on platforms that have
-both 32- and 64-bit time_t. This may help when linking Emacs with a
-library with an ABI requiring traditional 32-bit time_t. This option
-currently affects only 32-bit ARM and x86 running GNU/Linux with glibc
-2.34 and later. Emacs now defaults to 64-bit time_t on these
-platforms.
-
----
-** Support for building with '-fcheck-pointer-bounds' has been removed.
-GCC has withdrawn the '-fcheck-pointer-bounds' option and support for
-its implementation has been removed from the Linux kernel.
-
----
-** 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.
-
-\f
-* Startup Changes in Emacs 28.1
-
----
-** In GTK builds, Emacs now supports startup notification.
-This means that Emacs won't steal keyboard focus upon startup
-(when started via the Desktop) if the user is typing into another
-application.
-
----
-** Errors in 'kill-emacs-hook' no longer prevent Emacs from shutting down.
-If a function in that hook signals an error in an interactive Emacs,
-the user will be prompted on whether to continue. If the user doesn't
-answer within five seconds, Emacs will continue shutting down anyway.
-
-** Emacs now supports loading a Secure Computing filter.
-This is supported only on capable GNU/Linux systems. To activate,
-invoke Emacs with the '--seccomp=FILE' command-line option. FILE must
-name a binary file containing an array of 'struct sock_filter'
-structures. Emacs will then install that list of Secure Computing
-filters into its own process early during the startup process. You
-can use this functionality to put an Emacs process in a sandbox to
-avoid security issues when executing untrusted code. See the manual
-page for 'seccomp' system call, for details about Secure Computing
-filters.
-
-** 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".
-
----
-** File names given on the command line are now be pushed onto history.
-The file names will be pushed onto 'file-name-history', like the names
-of files visited via 'C-x C-f' and other commands.
+** Emacs now installs the ".pdmp" file using a unique fingerprint in the name.
+The file is typically installed using a file name akin to
+"...dir/libexec/emacs/29.1/x86_64-pc-linux-gnu/emacs-<fingerprint>.pdmp".
+If a constant file name is required, the file can be renamed to
+"emacs.pdmp", and Emacs will find it during startup anyway.
\f
-* Changes in Emacs 28.1
-
----
-** Emacs now supports Unicode Standard version 14.0.
-
-+++
-** Improved support for Emoji.
-On capable systems, Emacs now correctly displays Emoji and Emoji
-sequences by default, provided that a suitable font is available to
-Emacs. With a few exceptions, all of the Emoji sequences specified by
-Unicode 14.0 are automatically composed and displayed as a single
-colorful glyph. This is achieved by changes in the Emacs font
-configuration, and by additional character-composition rules for the
-Emoji codepoints that follow from the Unicode-defined sequences.
-
-If your system lacks a suitable font, we recommend to install "Noto
-Color Emoji"; Emacs will use it automatically if it's installed. If
-you prefer to use another font for Emoji, customize your fontset like
-this:
-
- (set-fontset-font t 'emoji
- '("My New Emoji Font" . "iso10646-1") nil 'prepend)
-
-The Emoji characters are now assigned to a special script, 'emoji', so
-as to make it easier to customize fontsets for Emoji display, as in
-the above example. (Previously, the Emoji characters were assigned to
-the 'symbol' script, together with other symbol and punctuation
-characters.)
-
-+++
-** 'glyphless-char-display-control' now applies to Variation Selectors.
-VS-1 through VS-16 are now displayed as 'thin-space' by default when
-not composed with previous characters (typically, as part of Emoji
-sequences).
+* Startup Changes in Emacs 29.1
+++
-** New command 'execute-extended-command-for-buffer'.
-This new command, bound to 'M-S-x', works like
-'execute-extended-command', but limits the set of commands to the
-commands that have been determined to be particularly useful with the
-current mode.
+** Emacs now has a '--fingerprint' option.
+This will output a string identifying the current Emacs build.
+++
-** New user option 'read-extended-command-predicate'.
-This user option controls how 'M-x' performs completion of commands when
-you type 'TAB'. By default, any command that matches what you have
-typed is considered a completion candidate, but you can customize this
-option to exclude commands that are not applicable to the current
-buffer's major and minor modes, and respect the command's completion
-predicate (if any).
+** New hook 'after-pdump-load-hook'.
+This is run at the end of the Emacs startup process, and it meant to
+be used to reinitialize structures that would normally be done at load
+time.
-+++
-** Completion on 'M-x' shows key bindings for commands.
-When 'suggest-key-bindings' is non-nil (as it is by default), the
-completion list popped up by 'M-x' shows the key bindings for all the
-commands shown in the list of candidate completions that have a key
-binding.
+\f
+* Changes in Emacs 29.1
-+++
-** New user option 'completions-detailed'.
-When non-nil, some commands like 'describe-symbol' show more detailed
-completions with more information in completion prefix and suffix.
-The default is nil.
+** Help
---
-** 'C-s' in 'M-x' now once again searches over completions.
-In Emacs 23, typing 'M-x' ('read-extended-command') and then 'C-s' (to
-do an interactive search) would search over possible completions.
-This was lost in Emacs 24, but is now back again.
-
-+++
-** User option 'completions-format' supports a new value 'one-column'.
+*** 'C-h b' uses outlining by default.
+Set 'describe-bindings-outline' to nil to get the old behaviour.
-+++
-** New system for displaying documentation for groups of functions.
-This can either be used by saying 'M-x shortdoc-display-group' and
-choosing a group, or clicking a button in the "*Help*" buffers when
-looking at the doc string of a function that belongs to one of these
-groups.
+---
+*** Jumping to function/variable source now saves mark before moving point.
+Jumping to source from "*Help*" buffer moves the point when the source
+buffer is already open. Now, the old point is pushed to mark ring.
+++
-** New minor mode 'context-menu-mode' for context menus popped by 'mouse-3'.
-When this mode is enabled, clicking 'down-mouse-3' (usually, the
-right mouse button) anywhere in the buffer pops up a menu whose
-contents depends on surrounding context near the mouse click.
-You can change the order of the default sub-menus in the context menu
-by customizing the user option 'context-menu-functions'. You can also
-invoke the context menu by pressing 'S-<F10>' or, on macOS, by
-clicking 'C-down-mouse-1'.
+*** New key bindings in *Help* buffers: 'n' and 'p'.
+These will take you (respectively) to the next and previous "page".
-+++
-** A new keymap for buffer actions has been added.
-The 'C-x x' keymap now holds keystrokes for various buffer-oriented
-commands. The new keystrokes are 'C-x x g' ('revert-buffer-quick'),
-'C-x x r' ('rename-buffer'), 'C-x x u' ('rename-uniquely'), 'C-x x n'
-('clone-buffer'), 'C-x x i' ('insert-buffer'), 'C-x x t'
-('toggle-truncate-lines') and 'C-x x f' ('font-lock-update').
+** Outline Minor Mode
+++
-** Modifiers now go outside angle brackets in pretty-printed key bindings.
-For example, 'RET' with Control and Meta modifiers is now shown as
-'C-M-<return>' instead of '<C-M-return>'. Either variant can be used
-as input; functions such as 'kbd' and 'read-kbd-macro' accept both
-styles as equivalent (they have done so for a long time).
+*** New user option 'outline-minor-mode-use-buttons'.
+If non-nil, Outline Minor Mode will use buttons to hide/show outlines
+in addition to the ellipsis.
---
-** 'eval-expression' no longer signals an error on incomplete expressions.
-Previously, typing 'M-: ( RET' would result in Emacs saying "End of
-file during parsing" and dropping out of the minibuffer. The user
-would have to type 'M-: M-p' to edit and redo the expression. Now
-Emacs will echo the message and allow the user to continue editing.
+*** New user option 'outline-minor-mode-buttons'.
+This is a list of pairs of open/close strings used to display buttons.
-+++
-** 'eval-last-sexp' now handles 'defvar'/'defcustom'/'defface' specially.
-This command would previously not redefine values defined by these
-forms, but this command has now been changed to work more like
-'eval-defun', and reset the values as specified.
+** Fonts
---
-** New user option 'use-short-answers'.
-When non-nil, the function 'y-or-n-p' is used instead of
-'yes-or-no-p'. This eliminates the need to define an alias that maps
-one to another in the init file. The same user option also controls
-whether the function 'read-answer' accepts short answers.
-
-+++
-** New user option 'kill-buffer-delete-auto-save-files'.
-If non-nil, killing a buffer that has an auto-save file will prompt
-the user for whether that auto-save file should be deleted. (Note
-that 'delete-auto-save-files', if non-nil, was previously documented
-to result in deletion of auto-save files when killing a buffer without
-unsaved changes, but this has apparently not worked for several
-decades, so the documented semantics of this variable has been changed
-to match the behavior.)
+*** Emacs now supports "medium" fonts.
+Emacs previously didn't distinguish between the "regular" weight and
+the "medium" weight, but it now also supports the (heavier) "medium"
+weight.
+++
-** New user option 'next-error-message-highlight'.
-In addition to a fringe arrow, 'next-error' error may now optionally
-highlight the current error message in the 'next-error' buffer.
-This user option can be also customized to keep highlighting on all
-visited errors, so you can have an overview what errors were already visited.
+** Support for the WebP image format.
+This support is built by default when the libwebp library is
+available. To disable it, use the '--without-webp' configure flag.
+Image specifiers can now use ':type webp'.
----
-** New choice 'next-error-quit-window' for 'next-error-found-function'.
-When 'next-error-found-function' is customized to 'next-error-quit-window',
-then typing the numeric prefix argument 0 before the command 'next-error'
-will quit the source window after visiting the next occurrence.
+** Windows
+++
-** New user option 'file-preserve-symlinks-on-save'.
-This controls what Emacs does when saving buffers that visit files via
-symbolic links, and 'file-precious-flag' is non-nil.
+*** 'display-buffer' now can set up the body size of the chosen window.
+For example, an alist entry as '(window-width . (body-columns . 40))'
+will make the body of the chosen window 40 columns wide.
-+++
-** New user option 'copy-directory-create-symlink'.
-If non-nil, will make 'copy-directory' (when used on a symbolic
-link) copy the link instead of following the link. The default is
-nil, so the default behavior is unchanged.
+** Better detection of text suspiciously reordered on display.
+The function 'bidi-find-overridden-directionality' has been extended
+to detect reordering effects produced by embeddings and isolates
+(started by directional formatting control characters such as RLO and
+LRI). The new command 'highlight-confusing-reorderings' finds and
+highlights segments of buffer text whose reordering for display is
+suspicious and could be malicious.
-+++
-** New user option 'ignored-local-variable-values'.
-This is the opposite of 'safe-local-variable-values' -- it's an alist
-of variable-value pairs that are to be ignored when reading a
-local-variables section of a file.
+\f
----
-** Specific warnings can now be disabled from the warning buffer.
-When a warning is displayed to the user, the resulting buffer now has
-buttons which allow making permanent changes to the treatment of that
-warning. Automatic showing of the warning can be disabled (although
-it is still logged to the "*Messages*" buffer), or the warning can be
-disabled entirely.
+** Emacs server and client changes
+++
-** ".dir-locals.el" now supports setting 'auto-mode-alist'.
-The new 'auto-mode-alist' specification in ".dir-locals.el" files can
-now be used to override the global 'auto-mode-alist' in the current
-directory tree.
+*** New command-line option '-r' for emacsclient.
+With this command-line option, Emacs reuses an existing graphical client
+frame if one exists; otherwise it creates a new frame.
----
-** User option 'uniquify-buffer-name-style' can now be a function.
-This user option can be one of the predefined styles or a function to
-personalize the uniquified buffer name.
+* Editing Changes in Emacs 29.1
---
-** 'remove-hook' is now an interactive command.
+** Indentation of 'cl-flet' and 'cl-labels' has changed.
+These forms now indent like this:
----
-** 'expand-file-name' now checks for null bytes in filenames.
-The function will now check for null bytes in both NAME and
-DEFAULT-DIRECTORY arguments, as well as in the 'default-directory'
-buffer-local variable, when its value is used. If null bytes are
-found, 'expand-file-name' will signal an error.
-This means that practically all file-related operations will now check
-file names for null bytes, thus avoiding subtle bugs with silently
-using only the part of file name up to the first null byte.
+ (cl-flet ((bla (x)
+ (* x x)))
+ (bla 42))
----
-** Frames
+This change also affects 'cl-macrolet', 'cl-flet*' and
+'cl-symbol-macrolet'.
+++
-*** 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.
+** New user option 'translate-upper-case-key-bindings'.
+This can be set to nil to inhibit translating upper case keys to lower
+case keys.
+++
-*** New command 'clone-frame' (bound to 'C-x 5 c').
-This is like 'C-x 5 2', but uses the window configuration and frame
-parameters of the current frame instead of 'default-frame-alist'.
-When called interactively with a prefix arg, the window configuration
-is not cloned.
+** New command 'ensure-empty-lines'.
+This command increases (or decreases) the number of empty lines before
+point.
---
-*** Default values of 'frame-title-format' and 'icon-title-format' have changed.
-These variables are used to display the title bar of visible frames
-and the title bar of an iconified frame. They now show the name of
-the current buffer and the text "GNU Emacs" instead of the value of
-'invocation-name'. To get the old behavior back, add the following to
-your init file:
-
- (setq frame-title-format '(multiple-frames "%b"
- ("" invocation-name "@" system-name)))
-
-+++
-*** New frame parameter 'drag-with-tab-line'.
-This parameter, similar to 'drag-with-header-line', allows moving frames
-by dragging the tab lines of their topmost windows with the mouse.
+*** Improved mouse behavior with auto-scrolling modes.
+When clicking inside the 'scroll-margin' or 'hscroll-margin' region
+the point is now moved only when releasing the mouse button. This no
+longer results in a bogus selection, unless the mouse has been
+effectively dragged.
+++
-*** New optional behavior of 'delete-other-frames'.
-When invoked with a prefix argument, 'delete-other-frames' now
-iconifies frames, rather than deleting them.
+** 'kill-ring-max' now defaults to 120.
---
-*** Commands 'set-frame-width' and 'set-frame-height' now prompt for values.
-These commands now prompt for the value via the minibuffer, instead of
-requiring the user to specify the value via the prefix argument.
-
-** 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.
-
-+++
-*** New command 'recenter-other-window', bound to 'S-M-C-l'.
-Like 'recenter-top-bottom', but acting on the other window.
+** New user option 'yank-menu-max-items'.
+Customize this option to limit the amount of entries in the menu
+"Edit->Paste from Kill Menu". The default is 60.
-+++
-*** New user option 'delete-window-choose-selected'.
-This allows specifying how Emacs chooses which window will be the
-frame's selected window after the currently selected window is
-deleted.
+** show-paren-mode
+++
-*** New argument NO-OTHER for some window functions.
-'get-lru-window', 'get-mru-window' and 'get-largest-window' now accept a
-new optional argument NO-OTHER which, if non-nil, avoids returning a
-window whose 'no-other-window' parameter is non-nil.
+*** New user option 'show-paren-context-when-offscreen'.
+When non-nil, if the point is in a closing delimiter and the opening
+delimiter is offscreen, shows some context around the opening
+delimiter in the echo area.
-+++
-*** New 'display-buffer' function 'display-buffer-use-least-recent-window'.
-This is like 'display-buffer-use-some-window', but won't reuse the
-current window, and when called repeatedly will try not to reuse a
-previously selected window.
+** Comint
+++
-*** New function 'window-bump-use-time'.
-This updates the use time of a window.
+*** 'comint-term-environment' is now aware of connection-local variables.
+The user option 'comint-terminfo-terminal' and variable
+'system-uses-terminfo' can now be set as connection-local variables to
+change the terminal used on a remote host.
-** Minibuffer
+\f
+* Changes in Specialized Modes and Packages in Emacs 29.1
-+++
-*** Minibuffer scrolling is now conservative by default.
-This is controlled by the new variable 'scroll-minibuffer-conservatively'.
-It is t by default; setting it to nil will cause scrolling in the
-minibuffer obey the value of 'scroll-conservatively'.
+** vc
-+++
-*** Improved handling of minibuffers on switching frames.
-By default, when you switch to another frame, an active minibuffer now
-moves to the newly selected frame. Nevertheless, the effect of what
-you type in the minibuffer happens in the frame where the minibuffer
-was first activated. An alternative behavior is available by
-customizing 'minibuffer-follows-selected-frame' to nil. Here, the
-minibuffer stays in the frame where you first opened it, and you must
-switch back to this frame to continue or abort its command. The old
-behavior, which mixed these two, can be approximated by customizing
-'minibuffer-follows-selected-frame' to a value which is neither nil
-nor t.
+---
+*** 'C-x v v' on an unregistered file will now use the most specific backend.
+Previously, if you had an SVN-covered ~/ directory, and a Git-covered
+directory in ~/foo/bar, using 'C-x v v' on a new, unregistered file
+~/foo/bar/zot would register it in the SVN repository in ~/ instead of
+in the Git repository in ~/foo/bar. This makes this command
+consistent with 'vc-responsible-backend'.
-+++
-*** New user option 'read-minibuffer-restore-windows'.
-When customized to nil, it uses 'minibuffer-restore-windows' in
-'minibuffer-exit-hook' to remove only the window showing the
-"*Completions*" buffer, but keeps all other windows created
-while the minibuffer was active.
+** Message
---
-*** New variable 'redisplay-adhoc-scroll-in-resize-mini-windows'.
-Customizing it to nil will disable the ad-hoc auto-scrolling of
-minibuffer text shown in mini-windows when resizing those windows.
-The default heuristics of that scrolling can be counter productive in
-some corner cases, though the cure might be worse than the disease.
-This said, the effect should be negligible in the vast majority of
-cases anyway.
+*** New user option 'mml-attach-file-at-the-end'.
+If non-nil, 'C-c C-a' will put attached files at the end of the message.
-** Mode Line
+** Gnus
+++
-*** New user option 'mode-line-compact'.
-If non-nil, repeating spaces are compressed into a single space. If
-'long', this is only done when the mode line is longer than the
-current window width (in columns).
+*** New user option 'gnus-treat-emojize-symbols'.
+If non-nil, symbols that have an emoji representation will be
+displayed as emojis.
+++
-*** New user options to control format of line/column numbers in the mode line.
-'mode-line-position-line-format' is the line number format (when
-'line-number-mode' is on), 'mode-line-position-column-format' is
-the column number format (when 'column-number-mode' is on), and
-'mode-line-position-column-line-format' is the combined format (when
-both modes are on).
-
-** Tab Bars and Tab Lines
+*** New command 'gnus-article-emojize-symbols'.
+This is bound to 'W D e' and will display symbols that have emoji
+representation as emojis.
-+++
-*** The prefix key 'C-x t t' can be used to display a buffer in a new tab.
-Typing 'C-x t t' before a command will cause the buffer shown by that
-command to be displayed in a new tab. 'C-x t t' is bound to the
-command 'other-tab-prefix'.
+** EIEIO
+++
- *** 'slot-value' can now be used to read slots of 'cl-defstruct' objects
+ *** New command 'C-x t C-r' to open file read-only in the other tab.
+
+ *** The tab bar now supports more mouse commands.
+ Clicking 'mouse-2' closes the tab, 'mouse-3' displays the context menu
+ with items that operate on the clicked tab. Dragging the tab with
+ 'mouse-1' moves it to another position on the tab bar. Mouse wheel
+ scrolling switches to the previous/next tab, and holding the Shift key
+ during scrolling moves the tab to the left/right.
+
+ +++
+ *** Frame-specific appearance of the tab bar when 'tab-bar-show' is a number.
+ When 'tab-bar-show' is a number, the tab bar on different frames can
+ be shown or hidden independently, as determined by the number of tabs
+ on each frame compared to the numerical value of 'tab-bar-show'.
+
+ +++
+ *** New command 'toggle-frame-tab-bar'.
+ It can be used to enable/disable the tab bar on the currently selected
+ frame regardless of the values of 'tab-bar-mode' and 'tab-bar-show'.
+ This allows enabling/disabling the tab bar independently on different
+ frames.
+
+ ---
+ *** New user option 'tab-bar-format' defines a list of tab bar items.
+ When it contains 'tab-bar-format-global' (possibly appended after
+ 'tab-bar-format-align-right'), then after enabling 'display-time-mode'
+ (or any other mode that uses 'global-mode-string') it displays time
+ aligned to the right on the tab bar instead of on the mode line.
+ When 'tab-bar-format-tabs' is replaced with 'tab-bar-format-tabs-groups',
+ the tab bar displays tab groups.
+
+ ---
+ *** New optional key binding for 'tab-last'.
+ If you customize the user option 'tab-bar-select-tab-modifiers' to
+ allow selecting tabs using their index numbers, the '<MODIFIER>-9' key
+ is bound to 'tab-last', and switches to the last tab. Here <MODIFIER>
+ is any of the modifiers in the list that is the value of
+ 'tab-bar-select-tab-modifiers'. You can also use negative indices,
+ which count from the last tab: -1 is the last tab, -2 the one before
+ that, etc.
+
+ ---
+ *** New command 'tab-duplicate' bound to 'C-x t n'.
+
+ ---
+ *** 'C-x t N' creates a new tab at the specified absolute position.
+ The position is provided as prefix arg, and specifies an index that
+ starts at 1. Negative values count from the end of the tab bar.
+
+ ---
+ *** 'C-x t M' moves the current tab to the specified absolute position.
+ The position is provided as prefix arg, whose interpretation is as in
+ 'C-x t N'.
+
+ ---
+ *** 'C-x t G' assigns a tab to a named group of tabs.
+ 'tab-close-group' closes all tabs that belong to the selected group.
+ The user option 'tab-bar-new-tab-group' defines the default group of
+ new tabs. After customizing 'tab-bar-tab-post-change-group-functions'
+ to 'tab-bar-move-tab-to-group', changing the group of a tab will also
+ move it closer to other tabs in the same group.
+
+ ---
+ *** New user option 'tab-bar-tab-name-format-function'.
+
+ ---
+ *** New user option 'tab-line-tab-name-format-function'.
----
-*** The tabs in the tab line can now be scrolled using horizontal scroll.
-If your mouse or trackpad supports it, you can now scroll tabs when
-the mouse pointer is in the tab line by scrolling left or right.
-
----
-*** New tab-line faces and user options.
-The face 'tab-line-tab-special' is used for tabs whose buffers are
-special, i.e. buffers that don't visit a file. The face
-'tab-line-tab-modified' is used to display modified, file-backed
-buffers. The face 'tab-line-tab-inactive-alternate' is used to
-display inactive tabs with an alternating background color, making
-them easier to distinguish, especially if the face 'tab-line-tab' is
-configured to not display with a box; this alternate face is only
-applied when the user option 'tab-line-tab-face-functions' is so
-configured. That option may also be used to customize tab-line faces
-in other ways.
-
-** Mouse wheel
+** align
---
-*** Mouse wheel scrolling now defaults to one line at a time.
+*** Alignment in 'text-mode' has changed.
+Previously, 'M-x align' didn't do anything, and you had to say 'C-u
+M-x align' for it to work. This has now been changed. The default
+regexp for 'C-u M-x align-regexp' has also been changed to be easier
+for inexperienced users to use.
----
-*** Mouse wheel scrolling now works on more parts of frame's display.
-When using 'mouse-wheel-mode', the mouse wheel will now scroll also when
-the mouse cursor is on the scroll bars, fringes, margins, header line,
-and mode line. ('mouse-wheel-mode' is enabled by default on most graphical
-displays.)
+** eww
+++
-*** Mouse wheel scrolling with Shift modifier now scrolls horizontally.
-This works in text buffers and over images. Typing a numeric prefix arg
-(e.g. 'M-5') before starting horizontal scrolling changes its step value.
-The value is saved in the user option 'mouse-wheel-scroll-amount-horizontal'.
-
-** Customize
-
----
-*** Customize buffers can now be reverted with 'C-x x g'.
-
----
-*** Most customize commands now hide obsolete user options.
-Obsolete user options are no longer shown in the listings produced by
-the commands 'customize', 'customize-group', 'customize-apropos' and
-'customize-changed'.
-
-To customize obsolete user options, use 'customize-option' or
-'customize-saved'.
-
----
-*** New SVG icons for checkboxes and arrows.
-They will be used automatically instead of the old icons. If Emacs is
-built without SVG support, the old icons will be used instead.
+*** New user option to automatically rename EWW buffers.
+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.
** Help