]> git.eshelyaron.com Git - emacs.git/commitdiff
Merge from origin/emacs-28
authorEli Zaretskii <eliz@gnu.org>
Sat, 6 Nov 2021 09:21:39 +0000 (11:21 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sat, 6 Nov 2021 09:21:39 +0000 (11:21 +0200)
# Conflicts:
# etc/NEWS

1  2 
etc/NEWS
etc/PROBLEMS
lisp/custom.el

diff --cc etc/NEWS
index d2e0cf7eef6512b1e4f05ee77f055505843d35ac,cc4cdfe5b6710cbb4f2c71adcd5f8dfd0974e0cc..57bead362d398cb17a66db17c95d462e65516644
+++ b/etc/NEWS
@@@ -22,202 -22,584 +22,268 @@@ When you add a new item, use the approp
  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
  
diff --cc etc/PROBLEMS
Simple merge
diff --cc lisp/custom.el
Simple merge