; * ChangeLog.4: Reformat down to 28 March 2024.
authorPo Lu <luangruo@yahoo.com>
Wed, 19 Feb 2025 07:33:59 +0000 (15:33 +0800)
committerPo Lu <luangruo@yahoo.com>
Wed, 19 Feb 2025 07:33:59 +0000 (15:33 +0800)
ChangeLog.4

index 9b553d2c24ed3ee1cd042e7e6a425df4b002f361..6d894d68f2b2e1b6cb3e25f08f2ea67db6babad8 100644 (file)
 
 2025-01-30  Eli Zaretskii  <eliz@gnu.org>
 
-       * src/puresize.h (BASE_PURESIZE): Increase (bug#75907).
+       * src/puresize.h (BASE_PURESIZE): Increase.  (bug#75907)
 
 2025-01-28  Stefan Kangas  <stefankangas@gmail.com>
 
        Add "text" as a thing in tsx-ts-mode
 
        * lisp/progmodes/typescript-ts-mode.el (tsx-ts-mode): Add
-       definition of "text" (bug#75422).
+       definition of "text".  (bug#75422)
 
 2025-01-09  Nikolaos Chatzikonstantinou  <nchatz314@gmail.com>
 
        (INTERVAL_GENERALLY_WRITABLE_P, INTERVAL_EXPRESSLY_WRITABLE_P):
        ... two new macros.
 
-       * src/textprop.c (verify_interval_modification): If the buffer
-       is read only, verify not that there is only a single exempting
-       interval spanning the area of a multiple-character operation,
-       but that every intervening interval in such an operation exempts
-       it from write restrictions, either by providing a read-only
-       property that appears in Vinhibit_read_only, or by providing an
+       * src/textprop.c (verify_interval_modification): If the buffer is
+       read only, verify not that there is only a single exempting
+       interval spanning the area of a multiple-character operation, but
+       that every intervening interval in such an operation exempts it
+       from write restrictions, either by providing a read-only property
+       that appears in Vinhibit_read_only, or by providing an
        inhibit-read-only property.
 
-       * test/src/textprop-tests.el (textprop-interval-immutability):
-       New test.
+       * test/src/textprop-tests.el (textprop-interval-immutability): New
+       test.
 
 2024-04-30  Paul Eggert  <eggert@cs.ucla.edu>
 
        Work around bad GCC diagnostic in select_window
 
-       * src/textconv.c (select_window): Add an eassume to work
-       around GCC bug 114893.
+       * src/textconv.c (select_window): Add an eassume to work around
+       GCC bug 114893.
 
 2024-04-30  Paul Eggert  <eggert@cs.ucla.edu>
 
        Pacify GCC 14 -Wstring-operflow in ftfont.c
 
        * src/ftfont.c (ftfont_drive_otf): Do not crash if
-       spec->features[i] is nonnull but is empty.
-       Use gfeatures local to pacify GCC 14.
+       spec->features[i] is nonnull but is empty.  Use gfeatures local to
+       pacify GCC 14.
 
 2024-04-30  Paul Eggert  <eggert@cs.ucla.edu>
 
        Pacify GCC 14 -Wnull-dereference in intervals.c
 
-       * src/intervals.c (set_intervals_multibyte_1):
-       Add an eassume to pacify GCC.  Deparenthesisze.
+       * src/intervals.c (set_intervals_multibyte_1): Add an eassume to
+       pacify GCC.  Deparenthesisze.
 
 2024-04-30  Paul Eggert  <eggert@cs.ucla.edu>
 
 
        * src/lisp.h (tim_sort): Require array arg to be nonnull.
        * src/sort.c (reverse_slice): Omit no-longer-needed eassert.
-       (tim_sort): Avoid undefined behavior when length == 0,
-       since reverse_slice would then compute &seq[-1].
+       (tim_sort): Avoid undefined behavior when length == 0, since
+       reverse_slice would then compute &seq[-1].
 
 2024-04-30  Paul Eggert  <eggert@cs.ucla.edu>
 
        Pacify GCC 14 -Wnull-dereference
 
        * src/xterm.c (x_dpyinfo): New function, which acts like
-       x_display_info_for_display except it always returns nonnull.
-       This simplifies callers and pacifies GCC 14.  All callers changed.
+       x_display_info_for_display except it always returns nonnull.  This
+       simplifies callers and pacifies GCC 14.  All callers changed.
 
 2024-04-30  Paul Eggert  <eggert@cs.ucla.edu>
 
        Pacify GCC 14 -Walloc-size
 
-       * src/xfns.c (xic_string_conversion_callback): Allocate size 1, not 0.
+       * src/xfns.c (xic_string_conversion_callback): Allocate size 1,
+       not 0.
 
 2024-04-30  Paul Eggert  <eggert@cs.ucla.edu>
 
 
        etags: fix #line parsing (\\", long lines)
 
-       * lib-src/etags.c (readline): Don’t mishandle lines like
-       ‘#line 1 "a//"’, which has an escaped backslash before ‘"’.
-       Don’t mishandle lines so long that sscanf overflows %n.
+       * lib-src/etags.c (readline): Don’t mishandle lines like ‘#line 1
+       "a//"’, which has an escaped backslash before ‘"’.  Don’t
+       mishandle lines so long that sscanf overflows %n.
 
 2024-04-30  Paul Eggert  <eggert@cs.ucla.edu>
 
        Simplify etags.c by omitting a macro
 
-       * lib-src/etags.c (xnew): Remove.  All uses removed.
-       xnew was confusing, as sometimes it was used with n=1,
-       sometimes with Type=char, and it’s easier just to use xmalloc
-       or xnmalloc.
+       * lib-src/etags.c (xnew): Remove.  All uses removed.  xnew was
+       confusing, as sometimes it was used with n=1, sometimes with
+       Type=char, and it’s easier just to use xmalloc or xnmalloc.
 
 2024-04-30  Michael Albinus  <michael.albinus@gmx.de>
 
 
 2024-04-30  Andrea Corallo  <acorallo@gnu.org>
 
-       * lisp/emacs-lisp/regexp-opt.el (regexp-opt): Fix type declaration.
+       * lisp/emacs-lisp/regexp-opt.el (regexp-opt): Fix type
+       declaration.
 
 2024-04-30  Po Lu  <luangruo@yahoo.com>
 
        * lisp/net/eww.el (eww-check-text-conversion): Fix doc string.
        (eww-mode): Specify face, eww-form and field as nonsticky
        properties by default.
-       (eww-tag-textarea, eww-form-text): Render properties
-       front-sticky.
+       (eww-tag-textarea, eww-form-text): Render properties front-sticky.
        (eww-process-text-input): Use field functions to compute field
        bounds.
 
 
        Use the nthcdr byte-op for drop, and raise open-code limit
 
-       * lisp/emacs-lisp/byte-opt.el (byte-optimize-nthcdr):
-       Open-code for any integral N<5.  Always use the byte-op otherwise.
+       * lisp/emacs-lisp/byte-opt.el (byte-optimize-nthcdr): Open-code
+       for any integral N<5.  Always use the byte-op otherwise.
 
 2024-04-29  Eric Abrahamsen  <eric@ericabrahamsen.net>
 
        Add (semi-redundant) fix to nnatom backend declaration
 
-       * lisp/gnus/gnus.el (gnus-valid-select-methods): We need a value for
-       post/mail/none in order to conform to the option type.
-       * lisp/gnus/nnatom.el: This call to gnus-declare-backend does the exact
-       same thing as above, and needs to be adjusted accordingly.
+       * lisp/gnus/gnus.el (gnus-valid-select-methods): We need a value
+       for post/mail/none in order to conform to the option type.
+       * lisp/gnus/nnatom.el: This call to gnus-declare-backend does the
+       exact same thing as above, and needs to be adjusted accordingly.
 
 2024-04-29  Andrea Corallo  <acorallo@gnu.org>
 
        Rename property 'declared-type' to 'function-type'
 
-       * lisp/emacs-lisp/byte-run.el (byte-run--set-function-type): Rename.
+       * lisp/emacs-lisp/byte-run.el (byte-run--set-function-type):
+       Rename.
        (defun-declarations-alist): Update.
        * lisp/emacs-lisp/comp.el (comp--get-function-cstr): Likewise.
 
        (disassemble-internal): Handle new function values
 
        * lisp/emacs-lisp/disass.el (disassemble-internal): Fix the
-       `interpreted-function` case.
+       `interpreted-function' case.
 
 2024-04-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       oclosure-tests.el: Adjust to new `interpreted-function` type
+       oclosure-tests.el: Adjust to new `interpreted-function' type
 
-       * test/lisp/emacs-lisp/oclosure-tests.el (oclosure-test-gen): Adjust to
-       new `interpreted-function` type.
+       * test/lisp/emacs-lisp/oclosure-tests.el (oclosure-test-gen):
+       Adjust to new `interpreted-function' type.
        (oclosure-test): Tweak accordingly.
 
 2024-04-29  Andrea Corallo  <acorallo@gnu.org>
 
-       Document function type declarations
+       Document function type declarations
 
-       * doc/lispref/functions.texi (Declare Form): Document function type
-       declaration.
+       * doc/lispref/functions.texi (Declare Form): Document function
+       type declaration.
 
 2024-04-29  Andrea Corallo  <acorallo@gnu.org>
 
-       Move  lisp function arg type declarations to the functions itself
+       Move lisp function arg type declarations to the functions itself
 
        * lisp/emacs-lisp/comp-common.el (comp-primitive-type-specifiers):
        Remove type declaration of lisp functions.
        * lisp/env.el (getenv): Likewise.
        * lisp/emacs-lisp/regexp-opt.el (regexp-opt): Likewise.
        * lisp/emacs-lisp/lisp.el (buffer-end): Likewise.
-       * lisp/emacs-lisp/comp.el (comp-hint-fixnum, comp-hint-cons): Likewise.
+       * lisp/emacs-lisp/comp.el (comp-hint-fixnum, comp-hint-cons):
+       Likewise.
        * lisp/custom.el (custom-variable-p): Likewise.
 
 2024-04-29  Andrea Corallo  <acorallo@gnu.org>
        * lisp/emacs-lisp/comp.el (comp-primitive-func-cstr-h): Rename.
        (comp--get-function-cstr): Define new function.
        (comp--add-call-cstr, comp--fwprop-call): Update.
-       * lisp/emacs-lisp/comp-common.el (comp-function-type-spec): Update.
+       * lisp/emacs-lisp/comp-common.el (comp-function-type-spec):
+       Update.
        * lisp/help-fns.el (help-fns--signature): Mention when a type is
        declared.
        * lisp/emacs-lisp/comp.el (comp-primitive-func-cstr-h): Rename.
 
 2024-04-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       (byte-compile): Fix interaction with old `advice.el`
+       (byte-compile): Fix interaction with old `advice.el'
 
        * lisp/emacs-lisp/bytecomp.el (byte-compile): Handle symbols whose
-       function "value" is a bare lambda expression (bug#70368).
+       function "value" is a bare lambda expression.  (bug#70368)
 
 2024-04-29  Andrea Corallo  <acorallo@gnu.org>
 
-       Add function type declarations for Lisp functions
+       Add function type declarations for Lisp functions
 
-       * lisp/emacs-lisp/byte-run.el (byte-run--set-declared-type): Add alias.
+       * lisp/emacs-lisp/byte-run.el (byte-run--set-declared-type): Add
+       alias.
        (defun-declarations-alist): Use it for 'type' declaration.
 
 2024-04-29  Mattias Engdegård  <mattiase@acm.org>
 
-       Declare the variable `rx-constituents` obsolete.
+       Declare the variable `rx-constituents' obsolete.
 
        It has been effectively obsolete since Emacs 27, when the modern
        extension mechanism was introduced.
 
        * lisp/emacs-lisp/rx.el (rx-constituents): Make obsolete.
-       * test/lisp/emacs-lisp/rx-tests.el (rx-constituents): Suppress warning.
+       * test/lisp/emacs-lisp/rx-tests.el (rx-constituents): Suppress
+       warning.
        * etc/NEWS: Announce.
 
 2024-04-29  Mattias Engdegård  <mattiase@acm.org>
 
        Add NEWS.unknown file to correct versions of introduction
 
-       It is not intended for the human reader, but to give less wrong versions
-       of first appearance displayed by `describe-function` or
-       `describe-variable` that would otherwise be derived from a notice in a
-       more recent NEWS* file.
+       It is not intended for the human reader, but to give less wrong
+       versions of first appearance displayed by `describe-function' or
+       `describe-variable' that would otherwise be derived from a notice
+       in a more recent NEWS* file.
 
-       It is better to add items to this file than changing historical NEWS*
-       files when the actual version of introduction is not known.
+       It is better to add items to this file than changing historical
+       NEWS* files when the actual version of introduction is not known.
 
-       * etc/NEWS.unknown: New file.  Add entry for `nthcdr`.
+       * etc/NEWS.unknown: New file.  Add entry for `nthcdr'.
 
 2024-04-29  Mattias Engdegård  <mattiase@acm.org>
 
-       Add `drop` as alias for `nthcdr`
+       Add `drop' as alias for `nthcdr'
 
        It's a common name for this function and symmetric with respect to
-       `take`.  It's also a lot less awkward to type and say.
+       `take'.  It's also a lot less awkward to type and say.
 
        * lisp/subr.el (drop): New alias.
        * doc/lispref/lists.texi (List Elements): Document.  Mention the
-       equation tying `take` and `drop` together.
+       equation tying `take' and `drop' together.
        * etc/NEWS: Announce.
 
 2024-04-29  Mattias Engdegård  <mattiase@acm.org>
        Fix value< string comparison ungoodthink
 
        * src/fns.c (string_cmp): Fix bad comparisons for certain strings.
-       This only affected `value<` for aggregates, not `string<`.
+       This only affected `value<' for aggregates, not `string<'.
        * test/src/fns-tests.el (fns-value<-ordered): Add test cases.
 
 2024-04-29  Visuwesh  <visuweshm@gmail.com>
 
        Fix errors in 'shr-correct-dom-case'
 
-       * lisp/net/shr.el (shr-correct-dom-case): Don't assume each CHILD is
-       a cons cell.  (Bug#70626)
+       * lisp/net/shr.el (shr-correct-dom-case): Don't assume each CHILD
+       is a cons cell.  (Bug#70626)
 
 2024-04-29  Po Lu  <luangruo@yahoo.com>
 
 
        * lisp/net/eww.el (eww-check-text-conversion): New function.
        (eww-mode): Install it as a local post-command-hook.
-       (eww-submit-map, eww-submit-file, eww-checkbox-map): Bind
-       suitable commands to mouse-2.
+       (eww-submit-map, eww-submit-file, eww-checkbox-map): Bind suitable
+       commands to mouse-2.
        (eww-form-submit, eww-form-checkbox, eww-form-file)
        (eww-tag-select): Disguise inserted forms as buttons, that touch
        event translation may prefer their bindings to mouse-2 over
 
        Take fields into account during text conversion
 
-       * lisp/cus-edit.el (Custom-mode): Enable text conversion, now
-       that fields are correctly treated.
+       * lisp/cus-edit.el (Custom-mode): Enable text conversion, now that
+       fields are correctly treated.
 
        * src/alloc.c (mark_frame): Mark f->conversion.field.
 
-       * src/androidterm.c (android_update_selection): Adjust
-       conversion region and selection position by the field start and
-       end.
+       * src/androidterm.c (android_update_selection): Adjust conversion
+       region and selection position by the field start and end.
 
        * src/editfns.c (find_field): Export function.
 
        * src/lisp.h (find_fields, reset_frame_conversion): Export
        functions.
 
-       * src/minibuf.c (Fread_from_minibuffer): Reset frame conversion
-       if Voverriding_text_conversion_style is set.
+       * src/minibuf.c (Fread_from_minibuffer): Reset frame conversion if
+       Voverriding_text_conversion_style is set.
 
        * src/textconv.c (textconv_query): Narrow to field.
        (reset_frame_conversion): New function.
 
        Use a dedicated type to represent interpreted-function values
 
-       Change `function` so that when evaluating #'(lambda ...)
-       we return an object of type `interpreted-function` rather than
-       a list starting with one of `lambda` or `closure`.
-       The new type reuses the existing PVEC_CLOSURE (nee PVEC_COMPILED)
-       tag and tries to align the corresponding elements:
+       Change `function' so that when evaluating #'(lambda ...)  we
+       return an object of type `interpreted-function' rather than a list
+       starting with one of `lambda' or `closure'.  The new type reuses
+       the existing PVEC_CLOSURE (nee PVEC_COMPILED) tag and tries to
+       align the corresponding elements:
 
        - the arglist, the docstring, and the interactive-form go in the
          same slots as for byte-code functions.
        - the lexical context goes in the slot used for the constants of
          bytecoded functions.
 
-       The first point above means that `help-function-arglist`,
-       `documentation`, and `interactive-form`s don't need to
-       distinguish interpreted and bytecode functions any more.
+       The first point above means that `help-function-arglist',
+       `documentation', and `interactive-form's don't need to distinguish
+       interpreted and bytecode functions any more.
 
        Main benefits of the change:
 
        - We can now reliably distinguish a list from a function value.
-       - `cl-defmethod` can dispatch on `interactive-function` and `closure`.
-         Dispatch on `function` also works now for interpreted functions but still
-         won't work for functions represented as lists or as symbols, of course.
+       - `cl-defmethod' can dispatch on `interactive-function' and `closure'.
+         Dispatch on `function' also works now for interpreted functions
+         but still won't work for functions represented as lists or as
+         symbols, of course.
        - Function values are now self-evaluating.  That was alrready the case
          when byte-compiled, but not when interpreted since
          (eval '(closure ...)) signals a void-function error.
-         That also avoids false-positive warnings about "don't quote your lambdas"
-         when doing things like `(mapcar ',func ...)`.
+         That also avoids false-positive warnings about "don't quote your
+         lambdas" when doing things like "(mapcar ',func ...)".
 
        * src/eval.c (Fmake_interpreted_closure): New function.
        (Ffunction): Use it and change calling convention of
-       `Vinternal_make_interpreted_closure_function`.
+       `Vinternal_make_interpreted_closure_function'.
        (FUNCTIONP, Fcommandp, eval_sub, funcall_general, funcall_lambda)
        (Ffunc_arity, lambda_arity): Simplify.
        (funcall_lambda): Adjust to new representation.
-       (syms_of_eval): `defsubr` the new function.  Remove definition of `Qclosure`.
+       (syms_of_eval): `defsubr' the new function.  Remove definition of
+       `Qclosure'.
 
        * lisp/emacs-lisp/cconv.el (cconv-make-interpreted-closure):
-       Change calling convention and use `make-interpreted-closure`.
+       Change calling convention and use `make-interpreted-closure'.
 
-       * src/data.c (Fcl_type_of): Distinguish `byte-code-function`s from
-       `interpreted-function`s.
+       * src/data.c (Fcl_type_of): Distinguish `byte-code-function's from
+       `interpreted-function's.
        (Fclosurep, finterpreted_function_p): New functions.
-       (Fbyte_code_function_p): Don't be confused by `interpreted-function`s.
+       (Fbyte_code_function_p): Don't be confused by
+       `interpreted-function's.
        (Finteractive_form, Fcommand_modes): Simplify.
-       (syms_of_data): Define new type symbols and `defsubr` the two
-       new functions.
+       (syms_of_data): Define new type symbols and `defsubr' the two new
+       functions.
 
-       * lisp/emacs-lisp/cl-print.el (cl-print-object) <interpreted-function>:
-       New method.
+       * lisp/emacs-lisp/cl-print.el (cl-print-object)
+       <interpreted-function>: New method.
 
-       * lisp/emacs-lisp/oclosure.el (oclosure): Refine the parent
-       to be `closure`.
+       * lisp/emacs-lisp/oclosure.el (oclosure): Refine the parent to be
+       `closure'.
        (oclosure--fix-type, oclosure-type): Simplify.
-       (oclosure--copy, oclosure--get, oclosure--set): Adjust to
-       new representation.
+       (oclosure--copy, oclosure--get, oclosure--set): Adjust to new
+       representation.
 
        * src/callint.c (Fcall_interactively): Adjust to new representation.
 
        * src/lread.c (bytecode_from_rev_list):
 
        * lisp/simple.el (function-documentation):
-       * lisp/help.el (help-function-arglist): Remove the old `closure` case
-       and adjust the byte-code case so it handles `interpreted-function`s.
+       * lisp/help.el (help-function-arglist): Remove the old `closure'
+       case and adjust the byte-code case so it handles
+       `interpreted-function's.
 
        * lisp/emacs-lisp/cl-preloaded.el (closure): New type.
        (byte-code-function): Add it as a parent.
        (interpreted-function): Adjust parent (the type itself was already
        added earlier by accident).
 
-       * lisp/emacs-lisp/bytecomp.el (byte-compile--reify-function): Adjust to
-       new representation.
-       (byte-compile): Use `interpreted-function-p`.
+       * lisp/emacs-lisp/bytecomp.el (byte-compile--reify-function):
+       Adjust to new representation.
+       (byte-compile): Use `interpreted-function-p'.
 
        * lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand): Adjust to
        new representation.
-       (side-effect-free-fns): Add `interpreted-function-p` and `closurep`.
+       (side-effect-free-fns): Add `interpreted-function-p' and
+       `closurep'.
 
        * src/profiler.c (trace_hash, ffunction_equal): Simplify.
        * lisp/profiler.el (profiler-function-equal): Simplify.
 
-       * lisp/emacs-lisp/nadvice.el (advice--interactive-form-1):
-       Use `interpreted-function-p`; adjust to new representation; and take
-       advantage of the fact that function values are now self-evaluating.
+       * lisp/emacs-lisp/nadvice.el (advice--interactive-form-1): Use
+       `interpreted-function-p'; adjust to new representation; and take
+       advantage of the fact that function values are now
+       self-evaluating.
 
-       * lisp/emacs-lisp/lisp-mode.el (closure):
-       Remove `lisp-indent-function` property.
+       * lisp/emacs-lisp/lisp-mode.el (closure): Remove
+       `lisp-indent-function' property.
 
-       * lisp/emacs-lisp/disass.el (disassemble-internal): Adjust to
-       new representation.
-       * lisp/emacs-lisp/edebug.el (edebug--strip-instrumentation):
-       Use `interpreted-function-p`.
-       * lisp/emacs-lisp/comp-common.el (comp-known-type-specifiers):
-       Add `closurep` and `interpreted-function-p`.
+       * lisp/emacs-lisp/disass.el (disassemble-internal): Adjust to new
+       representation.
+       * lisp/emacs-lisp/edebug.el (edebug--strip-instrumentation): Use
+       `interpreted-function-p'.
+       * lisp/emacs-lisp/comp-common.el (comp-known-type-specifiers): Add
+       `closurep' and `interpreted-function-p'.
 
-       * test/lisp/help-fns-tests.el (help-fns-test-lisp-defun): Adjust to
-       more precise type info in `describe-function`.
-       * test/lisp/erc/resources/erc-d/erc-d-tests.el (erc-d--render-entries):
-       Use `interpreted-function-p`.
+       * test/lisp/help-fns-tests.el (help-fns-test-lisp-defun): Adjust
+       to more precise type info in `describe-function'.
+       * test/lisp/erc/resources/erc-d/erc-d-tests.el
+       (erc-d--render-entries): Use `interpreted-function-p'.
        * test/lisp/emacs-lisp/macroexp-resources/vk.el (vk-f4, vk-f5):
        Don't hardcode function values.
 
-       * doc/lispref/functions.texi (Anonymous Functions): Don't suggest that
-       function values are lists.  Reword "self-quoting" to reflect the
-       fact that #' doesn't return the exact same object.  Update examples
-       with the new shape of the return value.
+       * doc/lispref/functions.texi (Anonymous Functions): Don't suggest
+       that function values are lists.  Reword "self-quoting" to reflect
+       the fact that #' doesn't return the exact same object.  Update
+       examples with the new shape of the return value.
 
        * doc/lispref/variables.texi (Lexical Binding):
        * doc/lispref/lists.texi (Rearrangement):
-       * doc/lispref/control.texi (Handling Errors): Update examples to reflect
-       new representation of function values.
+       * doc/lispref/control.texi (Handling Errors): Update examples to
+       reflect new representation of function values.
 
 2024-04-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        (COMPILED): Rename to CLOSURE
 
-       In preparation for the use of `PVEC_COMPILED` objects for
+       In preparation for the use of `PVEC_COMPILED' objects for
        interpreted functions, rename them to use a more neutral name.
 
-       * src/lisp.h (enum pvec_type): Rename `PVEC_COMPILED` to `PVEC_CLOSURE`.
-       (enum Lisp_Compiled): Use `CLOSURE_` prefix i.s.o `COMPILED_`.
+       * src/lisp.h (enum pvec_type): Rename `PVEC_COMPILED' to
+       `PVEC_CLOSURE'.
+       (enum Lisp_Compiled): Use `CLOSURE_' prefix i.s.o `COMPILED_'.
        Also use `CODE` rather than `BYTECODE`.
-       (CLOSUREP): Rename from `COMPILEDP`.
-       (enum Lisp_Closure): Rename from `Lisp_Compiled`.
+       (CLOSUREP): Rename from `COMPILEDP'.
+       (enum Lisp_Closure): Rename from `Lisp_Compiled'.
 
        * src/alloc.c, src/bytecode.c, src/comp.c, src/data.c, src/eval.c,
        * src/fns.c, src/lisp.h, src/lread.c, src/pdumper.c, src/print.c,
        * src/profiler.c: Rename all uses accordingly.
-       * src/.gdbinit (xclosure): Rename from `xcompiled`.
+       * src/.gdbinit (xclosure): Rename from `xcompiled'.
        (xcompiled): New obsolete alias.
-       (xpr): Adjust accordingly.  Also adjust to new PVEC_CLOSURE tag name.
+       (xpr): Adjust accordingly.  Also adjust to new PVEC_CLOSURE tag
+       name.
 
 2024-04-28  Mattias Engdegård  <mattiase@acm.org>
 
 
        Implement dots and dashes on PGTK
 
-       * src/image.c (image_create_bitmap_from_file) [HAVE_PGTK]:
-       Remove unused variable.
+       * src/image.c (image_create_bitmap_from_file) [HAVE_PGTK]: Remove
+       unused variable.
 
        * src/pgtkterm.c (pgtk_draw_dash, pgtk_fill_underline)
        (pgtk_draw_glyph_string): New functions, ported from X.
 
 2024-04-28  Po Lu  <luangruo@yahoo.com>
 
-       Fix the Haiku build
-
        * src/haikuterm.c (haiku_draw_text_decoration): Remove stray
        closing parenthesis.
 
        * java/org/gnu/emacs/EmacsDrawLine.java (EmacsDrawLine)
        (measureLine, polyDashPattern): New function.
        (perform): Delegate to polyDashPattern if the line style is not
-       LineSolid.  Also simplify now that anti-aliasing need no longer
-       be taken into account.
+       LineSolid.  Also simplify now that anti-aliasing need no longer be
+       taken into account.
 
        * java/org/gnu/emacs/EmacsDrawRectangle.java (perform): Mention
        omission in commentary.
 
-       * java/org/gnu/emacs/EmacsGC.java (EmacsGC): Disable
-       anti-aliasing in default paint object.
+       * java/org/gnu/emacs/EmacsGC.java (EmacsGC): Disable anti-aliasing
+       in default paint object.
        <line_style, line>: New fields.
        (markDirty): Apply stroke width.
 
        Implement dots and dashes on X
 
        * src/dispextern.h (enum face_underline_type): Indent and expand
-       commentary as to the new dependency on the order of its
-       enumerals.
+       commentary as to the new dependency on the order of its enumerals.
 
        * src/xfaces.c (realize_gui_face): Enable dots and dashes on
        window systems.
 
-       * src/xterm.c (x_draw_underwave): Don't define unused variable
-       on Cairo builds.
+       * src/xterm.c (x_draw_underwave): Don't define unused variable on
+       Cairo builds.
        (x_draw_dash): New function; implement for X and Cairo.
-       (x_fill_underline): New function.  Delegate to x_fill_rectangle
-       or x_draw_dash as appropriate.
+       (x_fill_underline): New function.  Delegate to x_fill_rectangle or
+       x_draw_dash as appropriate.
        (x_draw_glyph_string): Call x_fill_underline rather than
        x_fill_rectangle.
 
 
        * src/w32term.c (w32_draw_glyph_string): Synchronize with X.
 
-       * src/xfaces.c (realize_gui_face): Enable `double-line' on
-       window systems.
+       * src/xfaces.c (realize_gui_face): Enable `double-line' on window
+       systems.
 
 2024-04-27  Eli Zaretskii  <eliz@gnu.org>
 
 
        Fix `find-grep-dired' with default OpenBSD's Grep
 
-       * lisp/find-dired.el (find-grep-options): Use '-q' on
-       OpenBSD as well.  (Bug#70550)
+       * lisp/find-dired.el (find-grep-options): Use '-q' on OpenBSD as
+       well.  (Bug#70550)
 
 2024-04-27  Daniel Pettersson  <daniel@dpettersson.net>
 
        Shut down jsonrpc server more gracefully
 
        * lisp/jsonrpc.el (jsonrpc-running-p): Avoid unnecessarily killing
-       the server process.  Suggested by Aaron Zeng <azeng@janestreet.com>.
-       (Bug#70522)
+       the server process.  Suggested by Aaron Zeng
+       <azeng@janestreet.com>.  (Bug#70522)
 
 2024-04-27  Eli Zaretskii  <eliz@gnu.org>
 
 
        This should fix the failing filling test for c-ts-mode.
 
-       * lisp/progmodes/c-ts-common.el (c-ts-common--fill-paragraph): Don't
-       go back to indentation.
+       * lisp/progmodes/c-ts-common.el (c-ts-common--fill-paragraph):
+       Don't go back to indentation.
 
 2024-04-27  Po Lu  <luangruo@yahoo.com>
 
 
        * java/org/gnu/emacs/EmacsWindow.java (EmacsWindow): Rename
        `lastVolumeButtonRelease' to `lastQuitKeyRelease'.
-       (onKeyUp): Treat value returned by getQuitKeycode as the quit
-       key rather than mandate KEYCODE_VOLUME_DOWN.
+       (onKeyUp): Treat value returned by getQuitKeycode as the quit key
+       rather than mandate KEYCODE_VOLUME_DOWN.
 
        * src/android.c (getQuitKeycode): Implement new function.
 
-       * src/androidterm.c (syms_of_androidterm)
-       <android_quit_keycode>: New variable.
+       * src/androidterm.c (syms_of_androidterm) <android_quit_keycode>:
+       New variable.
 
 2024-04-26  Gerd Möllmann  <gerd@gnu.org>
 
 
        * lisp/emacs-lisp/package-vc.el (vc-dir-prepare-status-buffer):
        Add a declaration.
-       (package-vc-upgrade): Prepare a dummy vc-dir buffer to ensure
-       that 'vc-pull' (or rather 'vc-deduce-fileset') can correctly
-       infer the VC backend to use.  (bug#70526)
+       (package-vc-upgrade): Prepare a dummy vc-dir buffer to ensure that
+       'vc-pull' (or rather 'vc-deduce-fileset') can correctly infer the
+       VC backend to use.  (bug#70526)
 
 2024-04-25  Juri Linkov  <juri@linkov.net>
 
-       * lisp/tab-line.el: Fix tab-line-buffers in window-persistent-parameters.
+       Fix tab-line-buffers in window-persistent-parameters
 
-       Replace '(tab-line-buffers . writable)' with '(tab-line-buffers . t)'
-       in 'window-persistent-parameters' (bug#69993).
+       * lisp/tab-line.el: Replace '(tab-line-buffers . writable)' with
+       '(tab-line-buffers . t)' in 'window-persistent-parameters'
+       (bug#69993).
 
 2024-04-25  Juri Linkov  <juri@linkov.net>
 
-       Suppress warnings for obsolete display-comint-buffer-action (bug#69983)
+       Suppress warnings for obsolete display-comint-buffer-action
 
        * lisp/cmuscheme.el (run-scheme, switch-to-scheme):
        * lisp/shell.el (shell):
        * lisp/progmodes/inf-lisp.el (inferior-lisp):
        * lisp/progmodes/sh-script.el (sh-show-shell):
        * lisp/textmodes/tex-mode.el (tex-display-shell)
-       (tex-recenter-output-buffer): Add 'with-suppressed-warnings'
-       to suppress warnings for obsolete options
-       'display-comint-buffer-action' and 'display-tex-shell-buffer-action'.
+       (tex-recenter-output-buffer): Add 'with-suppressed-warnings' to
+       suppress warnings for obsolete options
+       'display-comint-buffer-action' and
+       'display-tex-shell-buffer-action'.  (bug#69983)
 
 2024-04-25  Eli Zaretskii  <eliz@gnu.org>
 
 
        Better eval-when-compile example in manual
 
-       * doc/lispref/compile.texi (Eval During Compile):
-       `regexp-opt` makes for a poor example because as a pure function it
-       doesn't need `eval-when-compile` for constant inputs.
+       * doc/lispref/compile.texi (Eval During Compile): `regexp-opt'
+       makes for a poor example because as a pure function it doesn't
+       need `eval-when-compile' for constant inputs.
 
 2024-04-25  Po Lu  <luangruo@yahoo.com>
 
 
        Make c-ts-common-comment-indent-new-line work for rust doc comment
 
-       * lisp/progmodes/c-ts-common.el (c-ts-common-comment-indent-new-line):
-       Support //! comment directives.
+       * lisp/progmodes/c-ts-common.el
+       (c-ts-common-comment-indent-new-line): Support //! comment
+       directives.
 
 2024-04-24  Yuan Fu  <casouri@gmail.com>
 
        Make c-ts-common--fill-paragraph work for rust line comment
 
-       * lisp/progmodes/c-ts-common.el (c-ts-common--fill-paragraph): Back to
-       BOL before checking for //.
+       * lisp/progmodes/c-ts-common.el (c-ts-common--fill-paragraph):
+       Back to BOL before checking for //.
 
 2024-04-24  Po Lu  <luangruo@yahoo.com>
 
 
        Gnus: Add back end for Atom feeds (nnatom)
 
-       * lisp/gnus/gnus.el (gnus-valid-select-methods): Add entry for nnatom.
-       * lisp/gnus/nnfeed.el: New file implementing an abstract web feed back
-       end.
-       * lisp/gnus/nnatom.el: New file implementing a back end for Atom feeds.
+       * lisp/gnus/gnus.el (gnus-valid-select-methods): Add entry for
+       nnatom.
+       * lisp/gnus/nnfeed.el: New file implementing an abstract web feed
+       back end.
+       * lisp/gnus/nnatom.el: New file implementing a back end for Atom
+       feeds.
        * doc/misc/gnus.texi (Browsing the Web, Back End Interface):
        * etc/NEWS (Gnus): Document nnatom and nnfeed.
 
 
        Eglot: robustify eglot-test-basic-symlink test (bug#70036)
 
-       The previous version of this test was brittle, unstable and
-       didn't really fail when supposed to (because we need main.cpp to
-       not be visited when visiting mainlink.cpp).  This new version is
-       faster and more secure.
+       The previous version of this test was brittle, unstable and didn't
+       really fail when supposed to (because we need main.cpp to not be
+       visited when visiting mainlink.cpp).  This new version is faster
+       and more secure.
 
        * test/lisp/progmodes/eglot-tests.el (eglot--sniffing): Add to the
        jsonrpc-event-hook at the end.
 
        Eglot: fix bug#70408 yet another way
 
-       The previous fix based on comparing the Eglot-provided didOpen URI to
-       the server-provided textDocument/publishDiagnostics URI didn't quite
-       work because the URI differs slightly in escaping conventions on certain
-       platforms.
+       The previous fix based on comparing the Eglot-provided didOpen URI
+       to the server-provided textDocument/publishDiagnostics URI didn't
+       quite work because the URI differs slightly in escaping
+       conventions on certain platforms.
 
-       This elephant-size bug is easily reproducible on Windows with clangd,
-       where every file is basically diagnostic-free.
+       This elephant-size bug is easily reproducible on Windows with
+       clangd, where every file is basically diagnostic-free.
 
        * lisp/progmodes/eglot.el (eglot-path-to-uri): Rework.
-       (eglot--TextDocumentIdentifier-cache):
-       Rename from eglot--TextDocumentIdentifier-uri.
-       (eglot-handle-notification textDocument/publishDiagnostics): Tweak.
+       (eglot--TextDocumentIdentifier-cache): Rename from
+       eglot--TextDocumentIdentifier-uri.
+       (eglot-handle-notification textDocument/publishDiagnostics):
+       Tweak.
        (eglot--TextDocumentIdentifier): Rework.
-       (eglot--signal-textDocument/didOpen): Tweak.
+       (eglot--signal-textDocument/didOpen): Tweak.  (bug#70408)
 
 2024-04-23  Andrea Corallo  <acorallo@gnu.org>
 
 
 2024-04-23  Andrea Corallo  <acorallo@gnu.org>
 
-       * Generate elisp_type_hierarchy.txt with top level types on top of it
+       Generate elisp_type_hierarchy.txt with top level types on top of
+       it.
 
-       * admin/syncdoc-type-hierarchy.el (syncdoc-make-type-table): Prioratize
-       to level types.
+       * admin/syncdoc-type-hierarchy.el (syncdoc-make-type-table):
+       Prioritize to level types.
 
 2024-04-23  Andrea Corallo  <acorallo@gnu.org>
 
        Support remote trash-directory
 
        * doc/misc/tramp.texi (Frequently Asked Questions): Describe how
-       to manipulate trash-directory.
-       Explain tramp-inhibit-errors-if-setting-file-attributes-fail.
+       to manipulate trash-directory.  Explain
+       tramp-inhibit-errors-if-setting-file-attributes-fail.
 
        * lisp/files.el (move-file-to-trash): Use connection-local value
        of `trash-directory'.  (Bug#70421)
 
 2024-04-23  Michael Albinus  <michael.albinus@gmx.de>
 
-       * test/lisp/progmodes/eglot-tests.el (eglot-test-basic-symlink): Skip on EMBA.
+       * test/lisp/progmodes/eglot-tests.el (eglot-test-basic-symlink):
+       Skip on EMBA.
 
 2024-04-23  Michael Albinus  <michael.albinus@gmx.de>
 
        * doc/emacs/android.texi (Android Windowing): Document how to
        configure Emacs for monochrome displays.
 
-       * src/androidfns.c (Fx_display_visual_class): Return
-       Qstatic_gray when n_planes is smaller than 24.
+       * src/androidfns.c (Fx_display_visual_class): Return Qstatic_gray
+       when n_planes is smaller than 24.
        (Fandroid_get_connection): Set n_planes by the value of
        android_display_planes.
-       (syms_of_androidfns): <Qstatic_gray>: New function.
+       (syms_of_androidfns) <Qstatic_gray>: New function.
 
        * src/androidterm.c (android_alloc_nearest_color): Allocate
        monochrome colors similarly to the X server.
        * src/androidterm.h (struct android_display_info): New field
        `n_image_planes'.
 
-       * src/image.c (n_planes) [HAVE_ANDROID]: Define to
-       n_image_planes.
+       * src/image.c (n_planes) [HAVE_ANDROID]: Define to n_image_planes.
 
 2024-04-23  Eli Zaretskii  <eliz@gnu.org>
 
        (markDirty): Synchronize the current stipple with tileObject.
        (prepareStipple, blitOpaqueStipple): New functions.
 
-       * java/org/gnu/emacs/EmacsService.java (EmacsService)
-       <resources>: New static field.
+       * java/org/gnu/emacs/EmacsService.java (EmacsService) <resources>:
+       New static field.
        (onCreate): Set it.
 
        * src/android.c (android_create_bitmap_from_data): Correct order
        of arguments to android_create_pixmap_from_bitmap_data.
        (HAS_BUILTIN_TRAP): Delete macro.
-       (emacs_abort): Always induce backtraces by means of a NULL
-       pointer deference.
+       (emacs_abort): Always induce backtraces by means of a NULL pointer
+       deference.
 
        * src/dispextern.h (Emacs_GC, Emacs_Rectangle, GCForeground)
        (GCBackground, GCFillStyle, GCStipple, FillOpaqueStipple)
-       [HAVE_ANDROID]: Define to their Android counterparts rather
-       than simulating their existence.
+       [HAVE_ANDROID]: Define to their Android counterparts rather than
+       simulating their existence.
 
        * src/epaths.in: Set bitmap path to /assets/bitmaps on Android.
 
 
        * src/sfntfont-android.c (sfntfont_android_put_glyphs): Assert
        that this is never called to draw a stippled background.
-       * src/xfaces.c (x_create_gc) [HAVE_ANDROID]: Redefine as
-       wrapper around android_create_gc.
+       * src/xfaces.c (x_create_gc) [HAVE_ANDROID]: Redefine as wrapper
+       around android_create_gc.
        (prepare_face_for_display) [HAVE_ANDROID]: Enable stipples.
 
 2024-04-23  Vincenzo Pupillo  <v.pupillo@gmail.com>
        This fixes bug#70019 and a separate fringe-mark removal bug that
        also affected bookmarks in certain Info nodes.
 
-       * lisp/bookmark.el (bookmark--remove-fringe-mark): Fix bug#70019 by
-       temporarily widening in order to ensure we fetch the right overlays.
-       Also, normalize both filenames before comparing, to avoid spurious
-       failure to match.
+       * lisp/bookmark.el (bookmark--remove-fringe-mark): Fix bug#70019
+       by temporarily widening in order to ensure we fetch the right
+       overlays.  Also, normalize both filenames before comparing, to
+       avoid spurious failure to match.
 
        Thanks to Dani Moncayo for the bug report and for testing.
 
 
        Better format string compilation warning
 
-       * lisp/emacs-lisp/bytecomp.el (byte-compile-format-warn):
-       Speed up by eliminating the temporary buffer.
-       Detect invalid format sequences.  Use plurals properly.
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-format-warn): Speed up
+       by eliminating the temporary buffer.  Detect invalid format
+       sequences.  Use plurals properly.
        * test/lisp/emacs-lisp/bytecomp-tests.el: Update test.
 
 2024-04-22  F. Moukayed  <smfadi+emacs@gmail.com>
 
        Ensure that Gnus inline preview undisplayer removes added newline
 
-       * lisp/gnus/mm-view.el (mm-inline-image): Remove two characters ("x\n")
-       instead of leaving behind a superfluous newline (bug#69920).
+       * lisp/gnus/mm-view.el (mm-inline-image): Remove two characters
+       ("x\n") instead of leaving behind a superfluous newline.
+       (bug#69920)
 
 2024-04-22  Michael Albinus  <michael.albinus@gmx.de>
 
 
        * java/Makefile.in (CONFIG_FILE, ALL_DEPENDENCIES, READELF)
        (cf-stamp-1, cf-stamp): New variables and rules; compute the set
-       of library files in the order of loading and generate a file
-       with this information.
+       of library files in the order of loading and generate a file with
+       this information.
        (ALL_CLASS_FILES): New variable; if builddir is not srcdir,
        $($(CONFIG_FILE), $(CLASS_FILES)): Depend on EmacsConfig.java.
        add generated files in the build directory.
        Cover more cases in c-ts-common-comment-indent-new-line
 
        * lisp/progmodes/c-ts-common.el:
-       (c-ts-common-comment-indent-new-line): Handle the case for ///, which
-       is used by rust.
+       (c-ts-common-comment-indent-new-line): Handle the case for ///,
+       which is used by rust.
 
 2024-04-22  Juri Linkov  <juri@linkov.net>
 
-       * lisp/progmodes/flymake.el: Small improvements for buffers display.
+       Small improvements for buffers display in flymake.el
 
-       (flymake-mode-map): Bind mouse-1 click on the fringe to
-       'flymake-show-buffer-diagnostics' (bug#70459).
-       (flymake-show-buffer-diagnostics): Display buffer diagnostics
-       at the bottom.
+       * lisp/progmodes/flymake.el (flymake-mode-map): Bind mouse-1 click
+       on the fringe to 'flymake-show-buffer-diagnostics'.  (bug#70459)
+       (flymake-show-buffer-diagnostics): Display buffer diagnostics at
+       the bottom.
        (flymake-show-project-diagnostics): Display project diagnostics
        at the bottom.
 
 2024-04-22  Juri Linkov  <juri@linkov.net>
 
-       * lisp/emacs-lisp/warnings.el (warning-display-at-bottom): New defcustom.
-
-       (display-warning): Use 'warning-display-at-bottom' to display
-       the warning buffer at the bottom of the screen and to scroll
-       to the last warning message (bug#69983).
+       * lisp/emacs-lisp/warnings.el (warning-display-at-bottom): New
+       defcustom.
+       (display-warning): Use 'warning-display-at-bottom' to display the
+       warning buffer at the bottom of the screen and to scroll to the
+       last warning message.  (bug#69983)
 
 2024-04-22  Juri Linkov  <juri@linkov.net>
 
-       * lisp/files.el (find-alternate-file): Fix the order of restoring buffer.
-
-       Swap the order of restoring original buffer's file names and
-       restoring original's buffer name with 'rename-buffer' (bug#68235).
+       * lisp/files.el (find-alternate-file): Fix the order of restoring
+       buffer.  Swap the order of restoring original buffer's file names
+       and restoring original's buffer name with 'rename-buffer'.
+       (bug#68235)
 
 2024-04-22  Po Lu  <luangruo@yahoo.com>
 
 
        Add rust-ts-mode font-locking tests (bug#70464)
 
-       * test/lisp/progmodes/rust-ts-mode-tests.el: New file for rust-ts-mode
-       tests.
-       * test/lisp/progmodes/rust-ts-mode-resources/font-lock.rs: New file
-       with rust-ts-mode font-locking tests. New tests added for macro
-       font-locking (bug#70464) and function signatures
+       * test/lisp/progmodes/rust-ts-mode-tests.el: New file for
+       rust-ts-mode tests.
+       * test/lisp/progmodes/rust-ts-mode-resources/font-lock.rs: New
+       file with rust-ts-mode font-locking tests. New tests added for
+       macro font-locking (bug#70464) and function signatures
        (bug#70465).
 
 2024-04-22  Noah Peart  <noah.v.peart@gmail.com>
 
        * lisp/progmodes/c-ts-common.el:
        (c-ts-common-comment-indent-new-line): Handle the case where user
-       types M-j in the middle of a line; and when the line starts with /**.
+       types M-j in the middle of a line; and when the line starts with
+       /**.
 
 2024-04-22  Yuan Fu  <casouri@gmail.com>
 
 
        * lisp/progmodes/rust-ts-mode.el
        (rust-ts-mode--font-lock-settings): Add font-lock rule for Rust
-       function signatures and missing function modifier keyword 'default'.
+       function signatures and missing function modifier keyword
+       'default'.
 
 2024-04-22  Yuan Fu  <casouri@gmail.com>
 
 
        Better verify arguments to android-relinquish-directory-access
 
-       * src/androidvfs.c (Fandroid_relinquish_directory_access):
-       Provide for NULL values from android_name_file and remote files.
+       * src/androidvfs.c (Fandroid_relinquish_directory_access): Provide
+       for NULL values from android_name_file and remote files.
 
        * src/xdisp.c (decode_mode_spec): Don't intern file-remote-p.
        (syms_of_xdisp) <Qfile_remote_p>: New defsym.
 
        Re-encode message bodies with externalized attachments during FCC
 
-       Bug#70338
-
-       * lisp/gnus/message.el (message-do-fcc): If the user has requested to
-       externalize attachments, we can't use the cached version of the message
-       body from sending. This mirrors an equivalent check for GCC in
-       `gnus-inews-do-gcc'.
+       * lisp/gnus/message.el (message-do-fcc): If the user has requested
+       to externalize attachments, we can't use the cached version of the
+       message body from sending.  This mirrors an equivalent check for
+       GCC in `gnus-inews-do-gcc'.  (bug#70338)
 
 2024-04-20  Michael Albinus  <michael.albinus@gmx.de>
 
        gitlab-ci.yml adaptions
 
-       * test/infra/gitlab-ci.yml (test-filenotify-gio, test-eglot):
-       Add TEST_HOME.
+       * test/infra/gitlab-ci.yml (test-filenotify-gio, test-eglot): Add
+       TEST_HOME.
        (test-tree-sitter): Extend SELECTOR.
 
 2024-04-20  Stefan Monnier  <monnier@iro.umontreal.ca>
        (backtrace--print-func-and-args): Fix (part of) bug#70436
 
        The source of bug#70436 is that we print a value into the buffer
-       and then we generate its print representation a second time to
-       get its length to find the bounds of the thing we just printed.
-       Not only it's wasteful, but it risks bugs because the two
-       "prints" can be inconsistent with each other.
+       and then we generate its print representation a second time to get
+       its length to find the bounds of the thing we just printed.  Not
+       only it's wasteful, but it risks bugs because the two "prints" can
+       be inconsistent with each other.
 
-       This is not a complete fix because in the non EVALD case we
-       still use that same broken way.
+       This is not a complete fix because in the non EVALD case we still
+       use that same broken way.
 
        * lisp/emacs-lisp/backtrace.el (backtrace--print-func-and-args):
        Don't re-print things just to get their length.
        (cl-print-object): Fix indirect cause of bug#70436
 
        * lisp/emacs-lisp/cl-print.el (cl-print-object): Fix specializer
-       for the byte-code case.
+       for the byte-code case.  (bug#70436)
 
 2024-04-20  Po Lu  <luangruo@yahoo.com>
 
 
        This command completes the symbol at point up to the longest
        common prefix of all completions candidates.  We also add an
-       indication of the longest common prefix in the completion
-       preview by highlighting that part of the preview with the
-       'completion-preview-exact' face.  To facilitate these features
-       we change the way we store the completion candidates while the
+       indication of the longest common prefix in the completion preview
+       by highlighting that part of the preview with the
+       'completion-preview-exact' face.  To facilitate these features we
+       change the way we store the completion candidates while the
        preview is visible, to explicitly keep the common prefix along
        with a list of its suffixes.
 
        * lisp/completion-preview.el (completion-preview--try-table):
-       Return longest common prefix and list of suffixes instead of
-       list of full candidates.  Add illustrative comment.
+       Return longest common prefix and list of suffixes instead of list
+       of full candidates.  Add illustrative comment.
        (completion-preview--capf-wrapper, completion-preview--update)
        (completion-preview--show, completion-preview-insert)
        (completion-preview-next-candidate): Adjust.
        (completion-preview-require-certain-commands): Update.
        (completion-preview--inhibit-update): New inline function.
        (completion-preview--inhibit-update-p): New local variable.
-       (completion-preview--post-command, completion-preview-hide):
-       Reset it to nil.
+       (completion-preview--post-command, completion-preview-hide): Reset
+       it to nil.
 
        * test/lisp/completion-preview-tests.el
        (completion-preview-tests--check-preview): Check the 'face'
        Kill process in files-tests before exiting
 
        * test/lisp/files-tests.el
-       (files-tests-file-name-non-special-start-file-process):
-       Make sure that the subprocess is killed before the test concludes.
+       (files-tests-file-name-non-special-start-file-process): Make sure
+       that the subprocess is killed before the test concludes.
 
 2024-04-20  Eli Zaretskii  <eliz@gnu.org>
 
        With glasses-uncapitalize-p, use a display overlay property
 
        * lisp/progmodes/glasses.el (glasses-make-readable): Use the
-       'display' property instead of 'after-string', so that one is
-       able to place the cursor on the uncapitalized character.
-       (Bug#70441)
+       'display' property instead of 'after-string', so that one is able
+       to place the cursor on the uncapitalized character.  (Bug#70441)
 
 2024-04-20  Michael Albinus  <michael.albinus@gmx.de>
 
        Complete fix for eww-tests.el
 
        * test/lisp/net/eww-tests.el (eww-test/readable/toggle-display)
-       (eww-test/readable/default-readable): Check for libxml.  (Bug#70472)
+       (eww-test/readable/default-readable): Check for libxml.
+       (Bug#70472)
 
 2024-04-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 
        Tree-sitter: only update range and reparse for changed ranges
 
-       In the very beginning, there's bug#66732, to solve that bug, we added
-       treesit--pre-redisplay and treesit--syntax-propertize-notifier.
-       However, to fix bug#66732, we were updating ranges for the whole
-       buffer which makes Emacs extremely slow when there are a lot of local
-       parsers in a large buffer.  Then to solve that we introduced a
-       workaround where we only update ranges in a fixed range around point.
+       In the very beginning, there's bug#66732, to solve that bug, we
+       added treesit--pre-redisplay and
+       treesit--syntax-propertize-notifier.  However, to fix bug#66732,
+       we were updating ranges for the whole buffer which makes Emacs
+       extremely slow when there are a lot of local parsers in a large
+       buffer.  Then to solve that we introduced a workaround where we
+       only update ranges in a fixed range around point.
 
-       This change fixes the original problem (bug#66732) without using that
-       workaround.
+       This change fixes the original problem (bug#66732) without using
+       that workaround.
 
        * lisp/treesit.el (treesit--font-lock-notifier):
        (treesit--syntax-propertize-notifier): Remove functions
        (treesit--pre-redisplay): Use the new function
-       treesit-parser-changed-ranges to get the changed ranges of the primary
-       parser, and only update ranges for those ranges.  Plus do the work of
-       the removed function.
-       (treesit-major-mode-setup): Remove setup for the removed functions.
+       treesit-parser-changed-ranges to get the changed ranges of the
+       primary parser, and only update ranges for those ranges.  Plus do
+       the work of the removed function.
+       (treesit-major-mode-setup): Remove setup for the removed
+       functions.
 
 2024-04-20  Yuan Fu  <casouri@gmail.com>
 
        New function treesit-parser-changed-ranges
 
-       - Add a new field last_changed_ranges to tree-sitter parser object.
+       - Add a new field last_changed_ranges to tree-sitter parser
+       object.
        - Add a new function treesit-parser-changed-ranges
 
        * doc/lispref/parsing.texi (Using Parser): Add the function in
        tree-sitter manual.
-       * src/treesit.c (treesit_get_changed_ranges): New function, refactored
-       out of treesit_call_after_change_functions.
+       * src/treesit.c (treesit_get_changed_ranges): New function,
+       refactored out of treesit_call_after_change_functions.
        (treesit_call_after_change_functions): Pull out
        treesit_get_changed_ranges.
        (treesit_ensure_parsed): Save the changed ranges to the parser object.
        * lisp/erc/erc.el (erc-server-or-unjoined-channel-buffer-p): Doc.
        (erc-query-buffer-p): Don't return non-nil in non-ERC buffers and
        server buffers, and continue to honor string arguments.  The
-       regression was introduced by 3d87e343 "Use modern fallback for channel
-       name detection in ERC".  Thanks to Libera user mekeor for reporting
-       this bug.
+       regression was introduced by 3d87e343 "Use modern fallback for
+       channel name detection in ERC".  Thanks to Libera user mekeor for
+       reporting this bug.
        * test/lisp/erc/erc-tests.el (erc-query-buffer-p): New test.
        (Bug#67220)
 
        Add erc--skip message property
 
        * lisp/erc/erc-backend.el (erc-server-connect): Add `erc--skip'
-       property to `erc--msg-prop-overrides' so that timestamps only show up
-       with the first server-sent message.
-       (erc-server-PRIVMSG): Move `erc--msg-prop-overrides' declaration to
-       top-level.
-       * lisp/erc/erc-button.el (erc-button--display-error-notice-with-keys):
-       Use `erc--skip' msg prop instead of `erc-stamp--skip' variable.
+       property to `erc--msg-prop-overrides' so that timestamps only show
+       up with the first server-sent message.
+       (erc-server-PRIVMSG): Move `erc--msg-prop-overrides' declaration
+       to top-level.
+       * lisp/erc/erc-button.el
+       (erc-button--display-error-notice-with-keys): Use `erc--skip' msg
+       prop instead of `erc-stamp--skip' variable.
        * lisp/erc/erc-stamp.el (erc-stamp--skip): Remove variable.
        (erc-stamp--allow-unmanaged, erc-stamp--allow-unmanaged-p): Rename
-       former to latter to remain consistent with convention used by other
-       quasi-internal compatibility-related switches.
+       former to latter to remain consistent with convention used by
+       other quasi-internal compatibility-related switches.
        (erc-add-timestamp): Check `erc--skip' property instead of deleted
        variable `erc-stamp--skip'.
        * lisp/erc/erc.el (erc--msg-props): Mention `erc--skip' in doc.
 
        Don't nest date stamp insertions in erc-stamp
 
-       * etc/ERC-NEWS: Don't mention certain insertion-adjacent hooks being
-       suppressed for date stamps, which is no longer true.
+       * etc/ERC-NEWS: Don't mention certain insertion-adjacent hooks
+       being suppressed for date stamps, which is no longer true.
        * lisp/erc/erc-common.el (erc--solo): New utility function.
-       * lisp/erc/erc-fill.el (erc-fill-wrap): Don't move last-message marker
-       when encountering a date stamp.
+       * lisp/erc/erc-fill.el (erc-fill-wrap): Don't move last-message
+       marker when encountering a date stamp.
        * lisp/erc/erc-stamp.el (erc-stamp--recover-on-reconnect): Restore
        `erc-stamp--date-stamps' on reconnect and rejoin.
        (erc-stamp--insert-date-hook): Fix erroneous doc string.
        (erc-stamp--date): New struct type.
-       (erc-stamp--deferred-date-stamp): New internal variable to pass state
-       between hook members.
-       (erc-stamp--date-stamps): New internal variable to store a reference
-       to all inserted timestamps.
-       (erc-stamp--propertize-left-date-stamp): Don't hide messages because
-       this function runs on `erc-insert-modify-hook'.  Prefer doing so
-       later, in `erc-insert-post-hook'.
+       (erc-stamp--deferred-date-stamp): New internal variable to pass
+       state between hook members.
+       (erc-stamp--date-stamps): New internal variable to store a
+       reference to all inserted timestamps.
+       (erc-stamp--propertize-left-date-stamp): Don't hide messages
+       because this function runs on `erc-insert-modify-hook'.  Prefer
+       doing so later, in `erc-insert-post-hook'.
        (erc-stamp--find-insertion-point): New helper function.
        (erc-stamp--insert-date-stamp-as-phony-message): Remove.
-       (erc-stamp--lr-date-on-pre-modify): Remove function.  Portions of body
-       now appear in `erc-stamp--defer-date-insertion-on-post-modify'.
+       (erc-stamp--lr-date-on-pre-modify): Remove function.  Portions of
+       body now appear in
+       `erc-stamp--defer-date-insertion-on-post-modify'.
        (erc-stamp--defer-date-insertion-on-post-modify)
        (erc-stamp--defer-date-insertion-on-post-insert)
        (erc-stamp--defer-date-insertion-on-post-send): New functions,
        (erc-stamp--date-mode): Update hook-member functions.
        (erc-stamp-prepend-date-stamps-p): Revise doc.
        (erc-insert-timestamp-left-and-right): Remove code to initialize a
-       date stamp in place through a nested call to `erc-display-message'.
-       Instead, "pre-render" date stamp and stash it for retrieval by
-       the function `erc-stamp--defer-date-insertion-on-post-modify'.
-       (erc-stamp--setup): Kill variables `erc-stamp--deferred-date-stamp'
-       and `erc-stamp--date-stamps'.
+       date stamp in place through a nested call to
+       `erc-display-message'.  Instead, "pre-render" date stamp and stash
+       it for retrieval by the function
+       `erc-stamp--defer-date-insertion-on-post-modify'.
+       (erc-stamp--setup): Kill variables
+       `erc-stamp--deferred-date-stamp' and `erc-stamp--date-stamps'.
        (erc-stamp--reset-on-clear): Remove trimmed stamps from
        `erc-stamp--date-stamps'.
        * lisp/erc/erc.el (erc--msg-props): Document `erc--hide' in doc
        (erc--insert-line-function): Expand doc string.
        (erc--remove-from-prop-value-list): Tweak doc string.
        (erc--insert-before-markers-transplanting-hidden): New function.
-       (erc--hide-message): Remember managed `invisible' prop value.  Do so
-       by recording them in the `erc--hide' "msg prop".
-       (erc--delete-inserted-message, erc--delete-inserted-message-naively):
-       Rename former to latter to emphasize that it's largely impractical for
-       general use.
+       (erc--hide-message): Remember managed `invisible' prop value.  Do
+       so by recording them in the `erc--hide' "msg prop".
+       (erc--delete-inserted-message)
+       (erc--delete-inserted-message-naively): Rename former to latter to
+       emphasize that it's largely impractical for general use.
        (erc--ranked-properties): Add `erc--hide'.
        * test/lisp/erc/erc-button-tests.el
        (erc-button-tests--erc-button-alist--function-as-form): Use
        (erc-fill-line-spacing): Use `erc-display-message' wrappers to
        intercept `erc-timer-hook' modifications.
        * test/lisp/erc/erc-scenarios-match.el
-       (erc-scenarios-match--invisible-stamp): Add convenience commands to
-       `extended-command-history' when running interactively.
+       (erc-scenarios-match--invisible-stamp): Add convenience commands
+       to `extended-command-history' when running interactively.
        * test/lisp/erc/erc-tests.el
        (erc--insert-before-markers-transplanting-hidden): New test.
-       (erc--delete-inserted-message, erc--delete-inserted-message-naively):
-       Update test name as well as namesake function in body.
+       (erc--delete-inserted-message)
+       (erc--delete-inserted-message-naively): Update test name as well
+       as namesake function in body.
        * test/lisp/erc/resources/erc-scenarios-common.el
-       (erc-scenarios-common-with-cleanup): Validate `erc-stamp--date-stamps'
-       members after every scenario test.
+       (erc-scenarios-common-with-cleanup): Validate
+       `erc-stamp--date-stamps' members after every scenario test.
        (erc-scenarios-common--assert-date-stamps): New function.
        * test/lisp/erc/resources/erc-tests-common.el: Require `erc-stamp'
        atop file when compiling.
        (erc-tests--common-display-message)
        (erc-tests-common-display-message)
-       (erc-tests-common-with-date-aware-display-message): New functions and
-       macro for running `erc-display-message' while intercepting additions
-       to `erc-timer-hook' made by date-stamp-related post-insertion hooks.
-       (erc-tests-common-snapshot-compare): Insert expected output into its
-       own buffer for easier review during interactive sessions.  This change
-       is unrelated to the rest of this commit.  (Bug#60936)
+       (erc-tests-common-with-date-aware-display-message): New functions
+       and macro for running `erc-display-message' while intercepting
+       additions to `erc-timer-hook' made by date-stamp-related
+       post-insertion hooks.
+       (erc-tests-common-snapshot-compare): Insert expected output into
+       its own buffer for easier review during interactive sessions.
+       This change is unrelated to the rest of this commit.  (Bug#60936)
 
 2024-04-19  F. Jason Park  <jp@neverwas.me>
 
 
        * lisp/erc/erc-fill.el (erc-fill--wrap-escape-hidden-speaker): Add
        parameter to suppress escaping of hidden prefixes.
-       (erc-fill--wrap-beginning-of-line): Remember original value of point,
-       and pass it to `erc-fill--wrap-escape-hidden-speaker'.
-       (erc-fill--wrap-previous-line, erc-fill--wrap-next-line): Guard call
-       to `erc-fill--wrap-escape-hidden-speaker' with conditional check for
-       `erc-fill-wrap-merge'.
+       (erc-fill--wrap-beginning-of-line): Remember original value of
+       point, and pass it to `erc-fill--wrap-escape-hidden-speaker'.
+       (erc-fill--wrap-previous-line, erc-fill--wrap-next-line): Guard
+       call to `erc-fill--wrap-escape-hidden-speaker' with conditional
+       check for `erc-fill-wrap-merge'.
        (erc-fill--wrap-insert-merged-pre): Add additional text property,
-       `erc-fill--wrap-merge', to help identify `display' regions servicing
-       `erc-fill-wrap-merge'.  This should make resolving inconsistencies
-       easier when "splicing" new messages between existing ones.
-       (erc-fill-wrap): Add `erc-fill--wrap-merge' text property to merged
-       speaker region.
+       `erc-fill--wrap-merge', to help identify `display' regions
+       servicing `erc-fill-wrap-merge'.  This should make resolving
+       inconsistencies easier when "splicing" new messages between
+       existing ones.
+       (erc-fill-wrap): Add `erc-fill--wrap-merge' text property to
+       merged speaker region.
        (erc-fill--wrap-rejigger-region): Remove assertion disallowing a
-       non-nil `erc-fill--wrap-rejigger-last-message'.  Instead, adopt the
-       existing value of that variable when shadowing it for the remaining
-       extent of the function's execution.  When removing the `display'
-       property, also look for nonempty replacement text, such as values
-       specified by the option `erc-fill-wrap-merge-indicator'.
+       non-nil `erc-fill--wrap-rejigger-last-message'.  Instead, adopt
+       the existing value of that variable when shadowing it for the
+       remaining extent of the function's execution.  When removing the
+       `display' property, also look for nonempty replacement text, such
+       as values specified by the option `erc-fill-wrap-merge-indicator'.
        (erc-fill--wrap-merged-button-p): Look for `erc-fill--wrap-merge'
        property instead of `display'.
-       * test/lisp/erc/resources/fill/snapshots/merge-01-start.eld: Update.
-       * test/lisp/erc/resources/fill/snapshots/merge-02-right.eld: Update.
-       * test/lisp/erc/resources/fill/snapshots/merge-wrap-01.eld: Update.
+       * test/lisp/erc/resources/fill/snapshots/merge-01-start.eld:
+       Update.
+       * test/lisp/erc/resources/fill/snapshots/merge-02-right.eld:
+       Update.
+       * test/lisp/erc/resources/fill/snapshots/merge-wrap-01.eld:
+       Update.
        * test/lisp/erc/resources/fill/snapshots/merge-wrap-indicator-pre-01.eld:
        Update.
-       * test/lisp/erc/resources/fill/snapshots/spacing-01-mono.eld: Update.
+       * test/lisp/erc/resources/fill/snapshots/spacing-01-mono.eld:
+       Update.
        (Bug#60936)
 
 2024-04-19  F. Jason Park  <jp@neverwas.me>
        Simplify option erc-merge-wrap-merge-indicator
 
        * lisp/erc/erc-fill.el (erc-fill-wrap-merge-indicator): Reduce
-       offering of acceptable values by removing leading symbols and ditching
-       the `post' variant entirely.  The justification for the latter move
-       hinges on it not being well suited to next-gen requirements involving
-       the splicing and deletion of inserted messages.  Meeting these would
-       be overly burdensome and involve scanning the buffer in both
-       directions for every such operation.  This option is new in ERC 5.6,
-       which is yet unreleased.
-       (erc-fill--wrap-massage-legacy-indicator-type): New function to warn
-       of obsolete `erc-fill-wrap-merge-indicator' value and perform a
-       migration for the current session.
-       (erc-fill-wrap, erc-fill-wrap-enable): Perform preflight compat check
-       for obsolete `erc-fill-wrap-merge-indicator' value types.
+       offering of acceptable values by removing leading symbols and
+       ditching the `post' variant entirely.  The justification for the
+       latter move hinges on it not being well suited to next-gen
+       requirements involving the splicing and deletion of inserted
+       messages.  Meeting these would be overly burdensome and involve
+       scanning the buffer in both directions for every such operation.
+       This option is new in ERC 5.6, which is yet unreleased.
+       (erc-fill--wrap-massage-legacy-indicator-type): New function to
+       warn of obsolete `erc-fill-wrap-merge-indicator' value and perform
+       migration for the current session.
+       (erc-fill-wrap, erc-fill-wrap-enable): Perform preflight compat
+       check for obsolete `erc-fill-wrap-merge-indicator' value types.
        (erc-fill-wrap-disable): Don't bother killing nonexistent variable
        `erc-fill--wrap-merge-indicator-post'.
        (erc-fill--wrap-merge-indicator-post): Remove unused variable.
        (erc-fill--wrap-insert-merged-post): Remove unused function.
        (erc-fill--wrap-insert-merged-pre): Adapt to simplified format for
        option `erc-merge-wrap-merge-indicator'.
-       (erc-fill-wrap): Remove conditional dispatch because there is only one
-       path and only one indicator style.
+       (erc-fill-wrap): Remove conditional dispatch because there is only
+       one path and only one indicator style.
        (erc-fill--wrap-rejigger-region): Remove reference to nonexistent
        variable `erc-fill--wrap-merge-indicator-post'.
        * test/lisp/erc/erc-fill-tests.el
-       (erc-fill-wrap--merge-action/indicator-pre): Update format of value
-       for option `erc-fill-wrap-merge-indicator'.
-       (erc-fill-wrap--merge-action/indicator-post): Remove test focusing on
-       obsolete and unsupported `post' variant of option
+       (erc-fill-wrap--merge-action/indicator-pre): Update format of
+       value for option `erc-fill-wrap-merge-indicator'.
+       (erc-fill-wrap--merge-action/indicator-post): Remove test focusing
+       on obsolete and unsupported `post' variant of option
        `erc-fill-wrap-merge-indicator'.
        (erc-fill--wrap-massage-legacy-indicator-type): New test.
        * test/lisp/erc/resources/fill/snapshots/merge-wrap-indicator-post-01.eld:
        Make publishDiagnostics faster by using cached variable
 
        * lisp/progmodes/eglot.el (eglot--cached-tdi): Move variable.
-       (eglot-handle-notification): Expose 'server' and search through managed
-       buffers for a cached textDocumentIdentifier, which has a file-truename
-       resolved path.
-       * test/lisp/progmodes/eglot-tests.el (eglot-test-basic-symlink): Add
-       regression test for symlink behavior
+       (eglot-handle-notification): Expose 'server' and search through
+       managed buffers for a cached textDocumentIdentifier, which has a
+       file-truename resolved path.
+       * test/lisp/progmodes/eglot-tests.el (eglot-test-basic-symlink):
+       Add regression test for symlink behavior.
 
 2024-04-19  Michael Albinus  <michael.albinus@gmx.de>
 
-       New user option tramp-inhibit-errors-if-setting-file-attributes-fail
+       New user option
+       tramp-inhibit-errors-if-setting-file-attributes-fail.
 
-       * doc/misc/tramp.texi (Frequently Asked Questions):
-       Explain tramp-inhibit-errors-if-setting-file-attributes-fail.
+       * doc/misc/tramp.texi (Frequently Asked Questions): Explain
+       tramp-inhibit-errors-if-setting-file-attributes-fail.
 
        * lisp/net/tramp.el
-       (tramp-inhibit-errors-if-setting-file-attributes-fail): New defcustom.
+       (tramp-inhibit-errors-if-setting-file-attributes-fail): New
+       defcustom.
        (tramp-skeleton-set-file-modes-times-uid-gid): Use it.
 
 2024-04-19  Po Lu  <luangruo@yahoo.com>
 
        (eglot--signal-textDocument/didChange): Fix tests
 
-       The tests call `eglot--signal-textDocument/didChange` eagerly,
-       which means in the case where we use `track-changes` that they
-       call it before the tracker's signal has been called.
-       So make sure we fetch pending changes even if we haven't yet
-       been notified of them, and make sure `eglot--versioned-identifier`
-       is incremented even when the signal is not called.
+       The tests call `eglot--signal-textDocument/didChange' eagerly,
+       which means in the case where we use `track-changes' that they
+       call it before the tracker's signal has been called.  So make sure
+       we fetch pending changes even if we haven't yet been notified of
+       them, and make sure `eglot--versioned-identifier' is incremented
+       even when the signal is not called.
 
        * lisp/progmodes/eglot.el (eglot--track-changes-fetch)
-       (eglot--after-change): Increment `eglot--versioned-identifier` here...
+       (eglot--after-change): Increment `eglot--versioned-identifier'
+       here...
        (eglot--track-changes-signal): ...instead of here.
-       (eglot--signal-textDocument/didChange): Try and fetch changes even if the
-       tracker's signal wasn't called yet.
+       (eglot--signal-textDocument/didChange): Try and fetch changes even
+       if the tracker's signal wasn't called yet.
 
-       * test/lisp/progmodes/eglot-tests.el (eglot-tests--get): New function.
+       * test/lisp/progmodes/eglot-tests.el (eglot-tests--get): New
+       function.
        (eglot-tests--lsp-abiding-column-1): Use it.
 
 2024-04-18  Juri Linkov  <juri@linkov.net>
 
        Drag tabs to reorder buffers on the tab line.
 
-       * lisp/tab-line.el (tab-line-mouse-move-tab):
-       New command bound to [tab-line drag-mouse-1].
+       * lisp/tab-line.el (tab-line-mouse-move-tab): New command bound to
+       [tab-line drag-mouse-1].
 
 2024-04-18  João Távora  <joaotavora@gmail.com>
 
        Better way to fix bug#70036
 
-       Cache a new eglot--cached-tdi var per buffer, which contains value to
-       return from eglot--TextDocumentIdentifier.
+       Cache a new eglot--cached-tdi var per buffer, which contains value
+       to return from eglot--TextDocumentIdentifier.
 
-       This avoids frequent expensive recomputation of a value that requires
-       potentially many 'file-truename' calls.  This technique is used in a
-       number of other cases already, like eglot--recent-changes or
-       eglot--versioned-identifier.
+       This avoids frequent expensive recomputation of a value that
+       requires potentially many 'file-truename' calls.  This technique
+       is used in a number of other cases already, like
+       eglot--recent-changes or eglot--versioned-identifier.
 
        * lisp/progmodes/eglot.el (eglot--cached-tdi): New variable.
        (eglot--TextDocumentIdentifier): Tweak.
 
        This reverts commit 08c80c45ddea17df87fc768a39dff353ccc13d3b.
 
-       It introduces bugs when a project contains symlinked files.  The server
-       will be informed of duplicate documents which are really the same and it
-       frequently has no means to deduplicate such information.
+       It introduces bugs when a project contains symlinked files.  The
+       server will be informed of duplicate documents which are really
+       the same and it frequently has no means to deduplicate such
+       information.
 
        This leads to bugs such as excessive textDocument/references to a
        function.
        (eglot-uri-to-path): Revert change.
        (eglot--on-shutdown): Revert change.
        (eglot--managed-mode): Revert change.
-       (eglot-handle-notification textDocument/publishDiagnostics): Revert change.
+       (eglot-handle-notification textDocument/publishDiagnostics):
+       Revert change.
 
 2024-04-18  Stephen Berman  <stephen.berman@gmx.net>
 
        Ensure that specbind arg is always bare symbol, and drop check
 
        * src/eval.c (FletX, Flet, internal_lisp_condition_case)
-       (funcall_lambda): Ensure that the first argument to `specbind` is
-       a bare symbol in the few cases where this isn't statically guaranteed.
+       (funcall_lambda): Ensure that the first argument to `specbind' is
+       a bare symbol in the few cases where this isn't statically
+       guaranteed.
        (specbind): Drop the symbol argument type check on the fast path.
 
 2024-04-18  Mattias Engdegård  <mattiase@acm.org>
 
        Drop unnecessary type check in varref and varset byte ops
 
-       * src/bytecode.c (exec_byte_code):
-       We can safely assume that the immediate argument to varref and varset
-       is a bare symbol; the byte-compiler should guarantee that.
+       * src/bytecode.c (exec_byte_code): We can safely assume that the
+       immediate argument to varref and varset is a bare symbol; the
+       byte-compiler should guarantee that.
 
 2024-04-18  Augusto Stoffel  <arstoffel@gmail.com>
 
 
        Avoid unnecessary escaping in 'url-build-query-string'
 
-       * lisp/url/url-util.el (url-query-key-value-allowed-chars):
-       New defconst.
-       (url-build-query-string): Use it to escape only those
-       characters that need it in keys and values.
-       * test/lisp/url/url-util-tests.el (url-util-tests): Add
-       new test cases.  (Bug#70312)
+       * lisp/url/url-util.el (url-query-key-value-allowed-chars): New
+       defconst.
+       (url-build-query-string): Use it to escape only those characters
+       that need it in keys and values.
+       * test/lisp/url/url-util-tests.el (url-util-tests): Add new test
+       cases.  (Bug#70312)
 
 2024-04-18  Elias G. B. Perez  <eg642616@gmail.com>
 
        Flymake support for indicating errors in margin
 
-       Add optional support for display flymake error in margin,
-       this allow displaying error indicators in both graphical and
-       terminal frames.
+       Add optional support for display flymake error in margin, this
+       allow displaying error indicators in both graphical and terminal
+       frames.
        * doc/misc/flymake.texi (Customizable variables)
        (Flymake error types): Document new margin indicator.
        * etc/NEWS: Announce the new Flymake user option for margin
 
        * lisp/tab-line.el: Use the new keyword :key for 'sort'.
 
-       (tab-line-tabs-fixed-window-buffers): Use :key for 'sort'.
-       Rename the window parameter 'tab-line-fixed-window-buffers'
-       to shorter 'tab-line-buffers'.  Add '(tab-line-buffers . writable)
-       to window-persistent-parameters.
+       (tab-line-tabs-fixed-window-buffers): Use :key for 'sort'.  Rename
+       the window parameter 'tab-line-fixed-window-buffers' to shorter
+       'tab-line-buffers'.  Add '(tab-line-buffers . writable) to
+       window-persistent-parameters.
 
 2024-04-18  Po Lu  <luangruo@yahoo.com>
 
 
        Propagate 'lexical-binding' value to pp buffers
 
-       See bug#70137.
-
-       * lisp/emacs-lisp/pp.el (pp-display-expression): Set lexical-binding to
-       match the value in the calling buffer.
+       * lisp/emacs-lisp/pp.el (pp-display-expression): Set
+       lexical-binding to match the value in the calling buffer.
+       (bug#70137)
 
 2024-04-17  Theodor Thornhill  <theo@thornhill.no>
 
        Document earlier change in eglot-report-progress
 
-       * lisp/progmodes/eglot.el (eglot-report-progress): Document the changed
-       behavior.
+       * lisp/progmodes/eglot.el (eglot-report-progress): Document the
+       changed behavior.
        * etc/EGLOT-NEWS (https): Mention the change.
 
 2024-04-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 2024-04-17  Juri Linkov  <juri@linkov.net>
 
-       * lisp/emacs-lisp/icons.el (define-icon): Add 'doc-string' to 'declare'.
+       * lisp/emacs-lisp/icons.el (define-icon): Add 'doc-string' to
+       'declare'.
 
 2024-04-17  Juri Linkov  <juri@linkov.net>
 
-       New keymap tab-line-mode-map and new tab order on tab-line (bug#69993)
+       New keymap tab-line-mode-map and new tab order on tab-line
 
        * lisp/tab-line.el (tab-line-new-button-functions): New variable.
        (tab-line-tabs-function): Change the default value from
        (tab-line-tabs-fixed-window-buffers): New function.
        (tab-line-format-template): Use 'tab-line-new-button-functions'.
        (tab-line-mode-map, tab-line-switch-repeat-map): New keymaps.
+       (bug#69993)
 
 2024-04-17  Stephen Berman  <stephen.berman@gmx.net>
 
 
        track-changes.el: Fix last change for early use
 
-       * lisp/emacs-lisp/track-changes.el (track-changes--recover-from-error):
-       Don't burp if there have been fewer than 20 keystrokes since Emacs start.
+       * lisp/emacs-lisp/track-changes.el
+       (track-changes--recover-from-error): Don't burp if there have been
+       fewer than 20 keystrokes since Emacs start.
 
 2024-04-17  Eli Zaretskii  <eliz@gnu.org>
 
        Another fix for bug#70385
 
-       * src/xdisp.c (note_fringe_highlight): Check value of x_y_to_hpos_vpos.
+       * src/xdisp.c (note_fringe_highlight): Check value of
+       x_y_to_hpos_vpos.
 
 2024-04-17  Juri Linkov  <juri@linkov.net>
 
-       * lisp/emacs-lisp/lisp.el (forward-sexp-function): Set back to nil.
-
+       * lisp/emacs-lisp/lisp.el (forward-sexp-function): Set back to
+       nil.
        (forward-sexp): Revert back to checking 'forward-sexp-function'
-       for nil (bug#70426).
+       for nil.  (bug#70426)
 
 2024-04-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        track-changes.el: Minor changes for version 1.0
 
        Arrange for the library to be usable on older Emacsen, which
-       includes reducing the noise when `before/after-change-functions`
-       are badly paired or missing.
-       Also, since the signal function receives the distance (for `:disjoint`),
-       we don't need `track-changes--disjoint-threshold`: the signal
-       function can simply do nothing when the distance is smaller than
-       the threshold it wants to use.
+       includes reducing the noise when `before/after-change-functions'
+       are badly paired or missing.  Also, since the signal function
+       receives the distance (for `:disjoint'), we don't need
+       `track-changes--disjoint-threshold': the signal function can
+       simply do nothing when the distance is smaller than the threshold
+       it wants to use.
 
        * lisp/emacs-lisp/track-changes.el: Prepare header for ELPA.
-       (track-changes--tracker, track-changes--state): Don't use `:noinline`,
-       so as to be compatible with Emacs<27.
+       (track-changes--tracker, track-changes--state): Don't use
+       `:noinline', so as to be compatible with Emacs<27.
        (track-changes-record-errors): New variable.
-       (track-changes--recover-from-error): Use it.  Record only the last 20
-       keys and the last 50 stack frames in the error log.
+       (track-changes--recover-from-error): Use it.  Record only the last
+       20 keys and the last 50 stack frames in the error log.
        (track-changes--disjoint-threshold): Delete variable.
        (track-changes--before): Don't use it any more.
 
-       * lisp/progmodes/eglot.el (eglot--track-changes-signal):
-       Coalesce disjoint changes nearer than what used to be coalesced because of
-       `track-changes--disjoint-threshold`.
+       * lisp/progmodes/eglot.el (eglot--track-changes-signal): Coalesce
+       disjoint changes nearer than what used to be coalesced because of
+       `track-changes--disjoint-threshold'.
 
 2024-04-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        (cl-defstruct): Improve handling of unknown options
 
-       Until now `cl-defstruct` signaled an error when encountering an
+       Until now `cl-defstruct' signaled an error when encountering an
        unknown option.  It's easy to code and it does the job, but it
-       doesn't give good location info in the compiler's output,
-       and it makes it more painful to use not-yet-supported options.
-       So just signal a warning instead.
+       doesn't give good location info in the compiler's output, and it
+       makes it more painful to use not-yet-supported options.  So just
+       signal a warning instead.
 
        * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Warn about unknown
        options, instead of signaling an error.
 
 2024-04-16  Eli Zaretskii  <eliz@gnu.org>
 
-       * src/xdisp.c (note_fringe_highlight): Another attempt to fix bug#70385.
+       * src/xdisp.c (note_fringe_highlight): Another attempt to fix
+       bug#70385.
 
 2024-04-16  Eli Zaretskii  <eliz@gnu.org>
 
 
        Fix touch screen hscroll when initiated from widgets
 
-       * lisp/wid-edit.el (widget-button--check-and-call-button):
-       Return to the position of point during the tracking loop if a
-       touch event is canceled.
+       * lisp/wid-edit.el (widget-button--check-and-call-button): Return
+       to the position of point during the tracking loop if a touch event
+       is canceled.
 
 2024-04-16  Po Lu  <luangruo@yahoo.com>
 
        Another fix for bug#70385
 
-       * src/xdisp.c (note_fringe_highlight): Test that vpos falls
-       within W->current_matrix.  (bug#70385)
+       * src/xdisp.c (note_fringe_highlight): Test that vpos falls within
+       W->current_matrix.  (bug#70385)
 
 2024-04-16  Juri Linkov  <juri@linkov.net>
 
 
        * lisp/tab-line.el (tab-line-select-tab-buffer): Optimize.
        (tab-line-switch-cycling): Enable by default like in tab-bar-mode.
-       (tab-line-switch-to-prev-tab, tab-line-switch-to-next-tab):
-       Add a prefix argument ARG and support it for switching tabs.
-       Improve docstring.
+       (tab-line-switch-to-prev-tab, tab-line-switch-to-next-tab): Add a
+       prefix argument ARG and support it for switching tabs.  Improve
+       docstring.
 
 2024-04-16  Noah Peart  <noah.v.peart@gmail.com>
 
        Add font-locking for operators in go-ts-mode (bug#70361)
 
-       * lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings): Add
-       font-locking rule for Go operators.
+       * lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings):
+       Add font-locking rule for Go operators.
 
 2024-04-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        (track-changes-fetch): Fix nested use case
 
-       * lisp/emacs-lisp/track-changes.el (track-changes-fetch):
-       Don't presume that if there's nothing to do we're on
+       * lisp/emacs-lisp/track-changes.el (track-changes-fetch): Don't
+       presume that if there's nothing to do we're on
        `track-changes--clean-trackers`.
 
 2024-04-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        (track-changes--before): Fix bug#70396
 
-       * lisp/emacs-lisp/track-changes.el (track-changes--before):
-       Widen the buffer before accessing it with positions
-       potentially outside the beg..end region.
+       * lisp/emacs-lisp/track-changes.el (track-changes--before): Widen
+       the buffer before accessing it with positions potentially outside
+       the beg..end region.
 
 2024-04-15  Eli Zaretskii  <eliz@gnu.org>
 
        Rewrite Android description of Android window management
 
        * doc/emacs/android.texi (Android Environment): Rewrite several
-       paragraphs to better reflect recent changes and emphasize
-       behavior on modern OS releases.
+       paragraphs to better reflect recent changes and emphasize behavior
+       on modern OS releases.
 
 2024-04-15  Martin Rudalics  <rudalics@gmx.at>
 
-       Make 'buffer-last-name' work better after 'find-alternate-file' (Bug#68235)
+       Make 'buffer-last-name' work better after 'find-alternate-file'
 
        * lisp/files.el (find-alternate-file): Before killing the previous
-       buffer, try to restore its name and filenames (Bug#68235).
+       buffer, try to restore its name and filenames.  (Bug#68235)
 
 2024-04-15  Po Lu  <luangruo@yahoo.com>
 
-       Fix bug#70385
-
        * src/xdisp.c (note_fringe_highlight): Don't proceed if
        popup_activated, window is outdated, or when row beneath pointer
        does not display text.  (bug#70385)
 
        Bug reported and fix proposed by Aris Spathis.
 
-       * src/sort.c (merge_markmem): Mark heap-allocated temporary key values.
-       (tim_sort): Delay key function calls to after marking function has been
-       registered.
+       * src/sort.c (merge_markmem): Mark heap-allocated temporary key
+       values.
+       (tim_sort): Delay key function calls to after marking function has
+       been registered.
        * test/src/fns-tests.el (fns-tests-sort-gc): New test.
 
 2024-04-14  Juri Linkov  <juri@linkov.net>
 
        Add 'forward-sexp-default-function' to be used by 'treesit-forward-sexp'
 
-       * lisp/emacs-lisp/lisp.el (forward-sexp-default-function):
-       New function with body from 'forward-sexp' (bug#68993).
+       * lisp/emacs-lisp/lisp.el (forward-sexp-default-function): New
+       function with body from 'forward-sexp'.  (bug#68993)
        (forward-sexp-function): Change the default value from nil to
        'forward-sexp-default-function'.
        (forward-sexp): Use either 'forward-sexp-function' or
 
        text.texi (Tracking changes): Fix warning
 
-       * doc/lispref/text.texi (Change Hooks): Add a menu to silence warnings.
+       * doc/lispref/text.texi (Change Hooks): Add a menu to silence
+       warnings.
        (Tracking changes): Improve the title.
 
 2024-04-14  Earl Hyatt  <okamsn@protonmail.com>
        Add command 'list-keyboard-macros' that works like 'list-buffers'.
 
        The command 'list-keyboard-macros' allows editing and re-arranging
-       macros using 'tabulated-list-mode'.  Existing keyboard macros can be
-       duplicated or deleted.  Macro counters and counter formats can take new
-       values read from the minibuffer.  Macro keys can be edited using
-       'edit-kbd-macro'.
+       macros using 'tabulated-list-mode'.  Existing keyboard macros can
+       be duplicated or deleted.  Macro counters and counter formats can
+       take new values read from the minibuffer.  Macro keys can be
+       edited using 'edit-kbd-macro'.
 
        * doc/emacs/kmacro.texi (Kmacro Menu): Document the new command
        and the menu's commands.
        * etc/NEWS (Kmacro Menu Mode): Mention the new mode and command.
        * lisp/kmacro.el (kmacro-menu-mark, kmacro-menu-marked)
        (kmacro-menu-flagged): Add faces for marks and flags.
-       * lisp/kmacro.el (kmacro-menu-mode-map, kmacro-menu-mode): Add mode
-       and map.
+       * lisp/kmacro.el (kmacro-menu-mode-map, kmacro-menu-mode): Add
+       mode and map.
        * lisp/kmacro.el (list-keyboard-macros, kmacro-menu): Add command.
        * lisp/kmacro.el (kmacro-menu--deletion-flags, kmacro-menu--marks)
-       (kmacro-menu--id-kmacro, kmacro-menu--id-position, kmacro-menu--kmacros)
-       (kmacro-menu--refresh, kmacro-menu--map-ids, kmacro-menu--replace-all)
-       (kmacro-menu--replace-at, kmacro-menu--query-revert, kmacro-menu--assert-row)
+       (kmacro-menu--id-kmacro, kmacro-menu--id-position)
+       (kmacro-menu--kmacros)
+       (kmacro-menu--refresh, kmacro-menu--map-ids)
+       (kmacro-menu--replace-all)
+       (kmacro-menu--replace-at, kmacro-menu--query-revert)
+       (kmacro-menu--assert-row)
        (kmacro-menu--propertize-keys, kmacro-menu--do-region)
-       (kmacro-menu--marks-exist-p): Add utility functions of mode
-       and commands.
+       (kmacro-menu--marks-exist-p): Add utility functions of mode and
+       commands.
        * lisp/kmacro.el (kmacro-menu-mark, kmacro-menu-flag-for-deletion)
        (kmacro-menu-unmark, kmacro-menu-unmark-backward)
        (kmacro-menu-unmark-all): Add commands for marks and flags.
-       * lisp/kmacro.el (kmacro-menu-do-flagged-delete, kmacro-menu-do-copy)
+       * lisp/kmacro.el (kmacro-menu-do-flagged-delete)
+       (kmacro-menu-do-copy)
        (kmacro-menu-do-delete): Add commands that modify the ring.
-       * lisp/kmacro.el (kmacro-menu-edit-position, kmacro-menu-transpose)
+       * lisp/kmacro.el (kmacro-menu-edit-position)
+       (kmacro-menu-transpose)
        (kmacro-menu-edit-format, kmacro-menu-edit-counter)
-       (kmacro-menu-edit-keys, kmacro-menu-edit-column): Add commands that
-       modify a keyboard macro.
+       (kmacro-menu-edit-keys, kmacro-menu-edit-column): Add commands
+       that modify a keyboard macro.
 
 2024-04-14  Alan Mackenzie  <acm@muc.de>
 
        CC Mode: Don't start fontifying in the middle of an identifier
 
-       This fixes bug#70367.
-
        * lisp/progmodes/cc-mode.el (c-fl-decl-start): After searching
-       backwards for the end of the previous statement, check whether
-       or not we found it.
+       backwards for the end of the previous statement, check whether or
+       not we found it.  (bug#70367)
 
 2024-04-14  Po Lu  <luangruo@yahoo.com>
 
        * java/org/gnu/emacs/EmacsService.java (onCreate): Call
        removeOldTasks.
 
-       * java/org/gnu/emacs/EmacsWindowManager.java (removeOldTasks):
-       New function.
+       * java/org/gnu/emacs/EmacsWindowManager.java (removeOldTasks): New
+       function.
 
        * java/proguard.conf: Optimize optimizer configuration.
 
 
 2024-04-13  Justin Burkett  <justin@burkett.cc>
 
-       Add more debugging information
+       * lisp/which-key.el (which-key--show-buffer-side-window): Add more
+       debugging information.
 
-       Add more debugging info to which-key--create-pages
+       * lisp/which-key.el (which-key--create-pages): Add more debugging
+       info to which-key--create-pages.
 
 2024-04-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 
        * lisp/progmodes/peg.el (peg-parse): Refine heuristic since unknown
        terminals are resolved at run-time rather than compile-time now.
-       (peg--macroexpand) <stack-action>: Avoid generating a `let` with an
-       empty body.
+       (peg--macroexpand) <stack-action>: Avoid generating a `let' with
+       an empty body.
        (peg--translate-rule-body): Adjust to name change of
-       `macroexp-warn-and-return` and the fact that it's always available.
+       `macroexp-warn-and-return' and the fact that it's always
+       available.
 
-       * test/lisp/progmodes/peg-tests.el (peg-parse-string):
-       Add `indent` declaration.
+       * test/lisp/progmodes/peg-tests.el (peg-parse-string): Add
+       `indent' declaration.
        (peg-test): Check that the compiler emits the warnings we expect.
 
 2024-04-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       (define-globalized-minor-mode): Require the use of `run-mode-hooks`
+       (define-globalized-minor-mode): Require the use of `run-mode-hooks'
 
-       When `define-globalized-minor-mode` was introduced (Emacs-22),
-       `run-mode-hooks` was brand new, so we could not expect all major
+       When `define-globalized-minor-mode' was introduced (Emacs-22),
+       `run-mode-hooks' was brand new, so we could not expect all major
        modes to use it and we had to rely on brittle workarounds to try
-       and approximate `after-change-major-mode-hook`.
+       and approximate `after-change-major-mode-hook'.
 
        These workarounds have undesirable side effects, and (we hope)
        they're not needed any more now that virtually all major modes
-       have been changed to use `run-mode-hooks` (or
-       `define-derived-mode`).
+       have been changed to use `run-mode-hooks' (or
+       `define-derived-mode').
 
        * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
-       Rely only on `after-change-major-mode-hook`, remove the "cmhh"
+       Rely only on `after-change-major-mode-hook', remove the "cmhh"
        [typo for the intended "cmmh", BTW] workaround.
 
        * doc/lispref/modes.texi (Mode Hooks): Clarify the importance of
-       `after-change-major-mode-hook` w.r.t `define-globalized-minor-mode`.
+       `after-change-major-mode-hook' w.r.t
+       `define-globalized-minor-mode'.
        (Defining Minor Modes): Rewrite the explanation of which buffers
        are affected, including adjusting it to the fact that
-       `fundamental-mode` has used run `run-mode-hooks` for last 10 years.
+       `fundamental-mode' has run `run-mode-hooks' for the last 10 years.
 
 2024-04-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        (define-globalized-minor-mode): Fix bug#58888
 
-       * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode) <MODE-cmhh>:
-       Try and detect well-behaved modes so they're not affected by
-       those which require the cmhh hack.
+       * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode)
+       <MODE-cmhh>: Try and detect well-behaved modes so they're not
+       affected by those which require the cmhh hack.  (bug#58888)
 
 2024-04-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        lisp/emacs-lisp/track-changes.el: New file (bug#70077)
 
        This new package provides an API that is easier to use right than
-       our `*-change-functions` hooks.
+       our `*-change-functions' hooks.
 
-       The patch includes changes to `diff-mode.el` and `eglot.el` to
+       The patch includes changes to `diff-mode.el' and `eglot.el' to
        make use of this new package.
 
        * lisp/emacs-lisp/track-changes.el: New file.
        * test/lisp/emacs-lisp/track-changes-tests.el: New file.
        * doc/lispref/text.texi (Tracking changes): New subsection.
 
-       * lisp/progmodes/eglot.el: Require `track-changes`.
+       * lisp/progmodes/eglot.el: Require `track-changes'.
        (eglot--virtual-pos-to-lsp-position): New function.
        (eglot--track-changes): New var.
-       (eglot--managed-mode): Use `track-changes-register` i.s.o
-       `after/before-change-functions` when available.
+       (eglot--managed-mode): Use `track-changes-register' i.s.o
+       `after/before-change-functions' when available.
        (eglot--track-changes-signal): New function, partly extracted from
-       `eglot--after-change`.
+       `eglot--after-change'.
        (eglot--after-change): Use it.
        (eglot--track-changes-fetch): New function.
        (eglot--signal-textDocument/didChange): Use it.
 
-       * lisp/vc/diff-mode.el: Require `track-changes`.
-       Also require `easy-mmode` before the `eval-when-compile`s.
+       * lisp/vc/diff-mode.el: Require `track-changes'.  Also require
+       `easy-mmode' before the `eval-when-compile's.
        (diff-unhandled-changes): Delete variable.
        (diff-after-change-function): Delete function.
-       (diff--track-changes-function): Rename from `diff-post-command-hook`
-       and adjust to new calling convention.
+       (diff--track-changes-function): Rename from
+       `diff-post-command-hook' and adjust to new calling convention.
        (diff--track-changes): New variable.
        (diff--track-changes-signal): New function.
-       (diff-mode, diff-minor-mode): Use it with `track-changes-register`.
+       (diff-mode, diff-minor-mode): Use it with
+       `track-changes-register'.
 
 2024-04-13  Po Lu  <luangruo@yahoo.com>
 
 
        Allow 'help-quick' to use a non-global keymap
 
-       * lisp/help.el (help-quick-sections): Mention
-       'help-quick-use-map' in docstring.
+       * lisp/help.el (help-quick-sections): Mention 'help-quick-use-map'
+       in docstring.
        (help-quick-use-map): Add new variable, defaulting to the
        global-map.
        (help-quick): Use new variable.
 
        Mark Flymake regions more accurately in 'lua-ts-mode'
 
-       * lisp/progmodes/lua-ts-mode.el (lua-ts-flymake-luacheck): Use
-       the end position provided by Luacheck rather than relying on
+       * lisp/progmodes/lua-ts-mode.el (lua-ts-flymake-luacheck): Use the
+       end position provided by Luacheck rather than relying on
        'thing-at-point' to guess where the end should be.  (Bug#70167)
 
 2024-04-13  Eli Zaretskii  <eliz@gnu.org>
 
        * lisp/calendar/icalendar.el (icalendar--datestring-to-isodate):
        Accept dashes in ISO-style numeric dates.  Patch by Erwan Hingant
-       <erwan.hingant@mailo.com>. (Bug#69894)
+       <erwan.hingant@mailo.com>.  (Bug#69894)
 
        * test/lisp/calendar/icalendar-tests.el
        (icalendar--datestring-to-isodate): Add a test for dashes in
 
 2024-04-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       (elisp-tests-syntax-propertize): New test for bug#24542
-
-       * test/lisp/progmodes/elisp-mode-tests.el (elisp-tests-syntax-propertize):
-       New test.
+       * test/lisp/progmodes/elisp-mode-tests.el
+       (elisp-tests-syntax-propertize): New test.  (bug#24542)
 
 2024-04-12  Paul Eggert  <eggert@cs.ucla.edu>
 
 
 2024-04-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       (emacs-lisp-mode-syntax-table): Fix bug#24542
-
        * lisp/progmodes/elisp-mode.el (emacs-lisp-mode-syntax-table):
-       Remove `p` from the flags of `@`.
+       Remove `p` from the flags of `@'.  (bug#24542)
 
 2024-04-12  Juri Linkov  <juri@linkov.net>
 
-       * lisp/buff-menu.el: Improve 'Buffer-menu-group-by-mode' (bug#70150).
+       Improve 'Buffer-menu-group-by-mode'
 
-       (Buffer-menu-group-by): Replace function-item with const
-       better suitable for Customization UI.
+       * lisp/buff-menu.el (Buffer-menu-group-by): Replace function-item
+       with const better suitable for Customization UI.
        (Buffer-menu-group-by-mode): Use 'mouse-buffer-menu-mode-groups'
-       to group buffers by mode.
+       to group buffers by mode.  (bug#70150)
 
 2024-04-12  Juri Linkov  <juri@linkov.net>
 
        New user option 'tab-line-tabs-buffer-group-function'
 
-       * lisp/tab-line.el (tab-line-tabs-buffer-group-function):
-       Turn defvar into defcustom with the default value
+       * lisp/tab-line.el (tab-line-tabs-buffer-group-function): Turn
+       defvar into defcustom with the default value
        'tab-line-tabs-buffer-group-by-mode'.
        (tab-line-tabs-buffer-group-by-mode): New function with body from
        'tab-line-tabs-buffer-group-name'.
        (tab-line-tabs-buffer-group-by-project): New function.
-       (tab-line-tabs-buffer-groups): Use fallback name "No group" instead of "All".
+       (tab-line-tabs-buffer-groups): Use fallback name "No group"
+       instead of "All".
 
 2024-04-12  Michael Albinus  <michael.albinus@gmx.de>
 
        Improve D-Bus byte-array conversion
 
-       * doc/misc/dbus.texi (Type Conversion): Adapt dbus-byte-array-to-string.
+       * doc/misc/dbus.texi (Type Conversion): Adapt
+       dbus-byte-array-to-string.
 
-       * etc/NEWS: D-Bus byte array conversion works over raw UTF-8 bytes.
-       Fix typos.
+       * etc/NEWS: D-Bus byte array conversion works over raw UTF-8
+       bytes.  Fix typos.
 
        * lisp/net/dbus.el (dbus-string-to-byte-array)
        (dbus-byte-array-to-string): BYTE-ARRAY must be an UTF-8 raw bytes
        (dbus-test09-get-managed-objects): Use `length='.
        (dbus-test01-type-conversion): Extend test.
 
-       * test/lisp/net/secrets-tests.el (secrets-test03-items): Extend test.
+       * test/lisp/net/secrets-tests.el (secrets-test03-items): Extend
+       test.
 
 2024-04-12  Joseph Turner  <joseph@breatheoutbreathe.in>
 
 
        * lisp/info.el (info-pop-to-buffer): Move display of Info buffer
        to a later stage after its text contents is ready to display.
-       This helps to use fit-window-to-buffer in display-buffer-alist (bug#70213).
+       This helps to use fit-window-to-buffer in display-buffer-alist
+       (bug#70213).
 
 2024-04-11  Dmitry Gutov  <dmitry@gutov.dev>
 
        etags-regen--tags-generate: Handle spaces in project root name
 
        * lisp/progmodes/etags-regen.el (etags-regen--tags-generate):
-       Quote the tags file name (bug#70329).
+       Quote the tags file name.  (bug#70329)
 
 2024-04-11  Eli Zaretskii  <eliz@gnu.org>
 
 
        Don't hide flymake diagnostics on empty first line (bug#70310)
 
-       A diagnostic first in the buffer, typically the lexical cookie warning,
-       got lost if that line was empty.
+       A diagnostic first in the buffer, typically the lexical cookie
+       warning, got lost if that line was empty.
 
        * lisp/progmodes/elisp-mode.el (elisp-flymake--byte-compile-done):
-       Make sure the location interval doesn't go beyond the buffer bounds.
+       Make sure the location interval doesn't go beyond the buffer
+       bounds.
 
 2024-04-11  Po Lu  <luangruo@yahoo.com>
 
 
 2024-04-11  Dmitry Gutov  <dmitry@gutov.dev>
 
-       Generalize the file-name specific workaround in minibuffer-completion-help
+       Generalize the file-name specific workaround in
+       minibuffer-completion-help.
 
-       * lisp/minibuffer.el (completion-base-suffix):
-       New function (bug#48356).
+       * lisp/minibuffer.el (completion-base-suffix): New function.
+       (bug#48356)
        (minibuffer-completion-help): Use it here.
        (minibuffer-completion-help): Cut off the double completion
        boundary when it occurs inside
-       completion-list-insert-choice-function..
+       completion-list-insert-choice-function.
 
 2024-04-10  Arash Esbati  <arash@gnu.org>
 
        Check if point inside a mandatory argument where the cite/ref key
        usually resides.  For example, with \cite[45]{emacs:30} and point
        on 4, the following bogus message in the echo area is suppressed:
-       "cite: no such database entry: \cite[45]".  (bug#38258)
-       Fix docstring.
+       "cite: no such database entry: \cite[45]".  (bug#38258) Fix
+       docstring.
 
 2024-04-10  Juri Linkov  <juri@linkov.net>
 
        * doc/lispref/parsing.texi (Parsing Program Source): Fix menu.
-
        Add the new node "User-defined Things" to the menu.
 
 2024-04-10  Andrea Corallo  <acorallo@gnu.org>
 
-       * lisp/emacs-lisp/comp-cstr.el (comp-cstr-type-p): Improve last change.
+       * lisp/emacs-lisp/comp-cstr.el (comp-cstr-type-p): Improve last
+       change.
 
        * lisp/emacs-lisp/comp-cstr.el (comp-cstr-type-p): New function.
 
 
 2024-04-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       (en/decode_coding_object): Fix `after-change-functions`
+       (en/decode_coding_object): Fix `after-change-functions'
 
-       For `en/decode-coding-string/region`, `after-change-functions`
+       For `en/decode-coding-string/region', `after-change-functions'
        were either not run at all, or run only after deleting the text
        but not after inserting it.
 
-       * src/coding.c (decode_coding_object, encode_coding_object): Run the
-       after-change-functions after inserting the result.
+       * src/coding.c (decode_coding_object, encode_coding_object): Run
+       the after-change-functions after inserting the result.
 
-       * test/src/editfns-tests.el (sanity-check-change-functions-with-op):
-       New macro.
+       * test/src/editfns-tests.el
+       (sanity-check-change-functions-with-op): New macro.
        (sanity-check-change-functions-errors): New function.
        (editfns-tests--before/after-change-functions): Use them to add
-       cases for `en/decode-coding-string/region`.
+       cases for `en/decode-coding-string/region'.
 
 2024-04-10  Po Lu  <luangruo@yahoo.com>
 
-       * java/Makefile.in (classes.dex): Make proguard.conf relative to srcdir.
-
-       Merge remote-tracking branch 'savannah/master' into master-android-1
+       * java/Makefile.in (classes.dex): Make proguard.conf relative to
+       srcdir.
 
        * java/proguard.conf: New file.
 
        installed, detect whether an installation of `r8' is similarly
        present, and use this installation in place of d8 if so.
 
-       * java/Makefile.in (ANDROID_MIN_SDK, IS_D8_R8): New
-       substitutions.
+       * java/Makefile.in (ANDROID_MIN_SDK, IS_D8_R8): New substitutions.
        (classes.dex): Provide --min-api, --debug or --release and
        --pg-conf to d8 or r8.
 
 
        Add explicit binding to nil in let
 
-       * lisp/which-key.el (which-key--match-replacement,
-       which-key--propertize-key): Add explicit binding of case-fold-search to nil.
+       * lisp/which-key.el (which-key--match-replacement)
+       (which-key--propertize-key): Add explicit binding of
+       case-fold-search to nil.
 
 2024-04-10  Po Lu  <luangruo@yahoo.com>
 
 
 2024-04-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       (cl--describe-class-slots): Avoid cryptic `t` type
+       (cl--describe-class-slots): Avoid cryptic `t' type
 
-       * lisp/emacs-lisp/cl-extra.el (cl--describe-class-slots): Use the empty
-       string for the trivial `t` type.
+       * lisp/emacs-lisp/cl-extra.el (cl--describe-class-slots): Use the
+       empty string for the trivial `t' type.
 
-       * lisp/emacs-lisp/cl-preloaded.el (cl-structure-class):
-       Fix non-existing `bool` => `boolean`.
+       * lisp/emacs-lisp/cl-preloaded.el (cl-structure-class): Fix
+       non-existing `bool' => `boolean'.
 
 2024-04-09  Dmitry Gutov  <dmitry@gutov.dev>
 
        Add Flymake backend to rust-ts-mode using Clippy
 
-       * lisp/progmodes/rust-ts-mode.el (rust-ts-flymake-command):
-       New option (bug#70260).
+       * lisp/progmodes/rust-ts-mode.el (rust-ts-flymake-command): New
+       option.  (bug#70260)
        (rust-ts--flymake-proc): New variable.
        (rust-ts-flymake--helper): New function.
        (rust-ts-flymake): New function.
 
        Use null for clarity
 
-       * lisp/which-key.el (which-key--show-evil-operator-keymap): Use null for
-       clarity of zero length.
+       * lisp/which-key.el (which-key--show-evil-operator-keymap): Use
+       null for clarity of zero length.
 
 2024-04-09  Jeremy Bryant  <jb@jeremybryant.net>
 
-       * lisp/which-key.el (which-key--show-evil-operator-keymap): let not let*
+       * lisp/which-key.el (which-key--show-evil-operator-keymap): let
+       not let*.
 
-       * lisp/which-key.el (which-key--create-pages-1): Use cl-decf for clarity
+       * lisp/which-key.el (which-key--create-pages-1): Use cl-decf for
+       clarity.
 
-       * lisp/which-key.el (which-key--partition-list): Replace cl-subseq by take
+       * lisp/which-key.el (which-key--partition-list): Replace cl-subseq
+       by take.
 
 2024-04-09  Jeremy Bryant  <jb@jeremybryant.net>
 
        Change cl-case to cl-ecase
 
-       * lisp/which-key.el (which-key--popup-max-dimensions):
-       Change cl-case to cl-ecase to signal error if needed.
+       * lisp/which-key.el (which-key--popup-max-dimensions): Change
+       cl-case to cl-ecase to signal error if needed.
 
 2024-04-09  Jeremy Bryant  <jb@jeremybryant.net>
 
-       * lisp/which-key.el (which-key--popup-max-dimensions): Fix docstring typo
+       * lisp/which-key.el (which-key--popup-max-dimensions): Fix
+       docstring typo.
 
 2024-04-09  Jeremy Bryant  <jb@jeremybryant.net>
 
        Replace wholenump by natnump for context readability
 
-       * lisp/which-key.el (which-key--width-or-percentage-to-width,
-       which-key--height-or-percentage-to-height): Use natnump instead of
-       wholenump.
+       * lisp/which-key.el (which-key--width-or-percentage-to-width)
+       (which-key--height-or-percentage-to-height): Use natnump instead
+       of wholenump.
 
 2024-04-09  Jeremy Bryant  <jb@jeremybryant.net>
 
        Simplify code to use null
 
-       * lisp/which-key.el (which-key--create-buffer-and-show):
-       Use null.
+       * lisp/which-key.el (which-key--create-buffer-and-show): Use null.
 
 2024-04-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        (test-replace-match-modification-hooks): Delete test
 
-       * test/src/search-tests.el (test-replace-match-modification-hooks):
-       Delete, this is testing a functionality we can't really support.
+       * test/src/search-tests.el
+       (test-replace-match-modification-hooks): Delete, this is testing a
+       functionality we can't really support.
 
 2024-04-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 
 2024-04-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       (mouse-wheel-buttons): Map old-style wheel buttons to actual wheel events
+       (mouse-wheel-buttons): Map old-style wheel buttons to actual wheel
+       events.
 
-       Change the handling of the old X11 convention that uses mouse-4/5/6/7
-       events to represent wheel events: instead of asking downstream
-       packages to use the `mouse-wheel-*-event` variables to know which events
-       represent wheel events, use new var `mouse-wheel-buttons` to directly
-       convert those events into the standard `wheel-up/down/left/right` events
-       used everywhere else.
+       Change the handling of the old X11 convention that uses
+       mouse-4/5/6/7 events to represent wheel events: instead of asking
+       downstream packages to use the `mouse-wheel-*-event' variables to
+       know which events represent wheel events, use new var
+       `mouse-wheel-buttons' to directly convert those events into the
+       standard `wheel-up/down/left/right' events used everywhere else.
 
-       This will simplify the work of packages which can thus just bind their
-       commands to `wheel-up/down/left/right`.
+       This will simplify the work of packages which can thus just bind
+       their commands to `wheel-up/down/left/right'.
 
        * lisp/mouse.el (mouse-wheel-buttons): New custom variable.
 
-       * src/keyboard.c (make_lispy_event): Adjust for "wheel-clicks" on the tab-bar.
-       * src/xterm.c (x_construct_mouse_click): Add `xi2` argument and
-       obey `mouse-wheel-buttons` variable.
+       * src/keyboard.c (make_lispy_event): Adjust for "wheel-clicks" on
+       the tab-bar.
+       * src/xterm.c (x_construct_mouse_click): Add `xi2' argument and
+       obey `mouse-wheel-buttons' variable.
        (handle_one_xevent): Adjust calls accordingly.
-       (syms_of_xterm): Define the `mouse-wheel-buttons` and the
-       `wheel-up/down/left/right`symbols.
+       (syms_of_xterm): Define the `mouse-wheel-buttons' and the
+       `wheel-up/down/left/right'symbols.
 
-       * lisp/xt-mouse.el: Don't require `mwheel` any more.
+       * lisp/xt-mouse.el: Don't require `mwheel' any more.
        (xterm-mouse--same-button-p): Delete function.
-       (xterm-mouse--read-event-sequence): Use `mouse-wheel-buttons`.
+       (xterm-mouse--read-event-sequence): Use `mouse-wheel-buttons'.
 
        * lisp/mwheel.el (mouse-wheel-up-event, mouse-wheel-down-event)
        (mouse-wheel-left-event, mouse-wheel-right-event): Make obsolete.
        Move over optional arguments in parentheses correctly
 
        * lisp/textmodes/reftex-parse.el (reftex-move-to-previous-arg):
-       Recognize ')' as closing delimiter for optional argument.
-       Fix docstring.
+       Recognize ')' as closing delimiter for optional argument.  Fix
+       docstring.
        (reftex-what-macro): Identify LaTeX macros with optional arguments
        in parentheses correctly.  This is necessary to make
        `reftex-view-crossref' work with biblatex on entries like:
 
        Inhibit flymake lexical cookie warning in *scratch* (bug#70068)
 
-       Add a hack to prevent flymake from complaining about a missing lexical
-       cookie when enabled in *scratch*.
+       Add a hack to prevent flymake from complaining about a missing
+       lexical cookie when enabled in *scratch*.
 
        * lisp/emacs-lisp/bytecomp.el
        (bytecomp--inhibit-lexical-cookie-warning): New variable.
        (byte-compile-file): Use it to gate the warning.
-       * lisp/progmodes/elisp-mode.el (elisp-flymake-byte-compile):
-       Set the inhibitor when spawning a check in lisp-interaction-mode.
+       * lisp/progmodes/elisp-mode.el (elisp-flymake-byte-compile): Set
+       the inhibitor when spawning a check in lisp-interaction-mode.
 
 2024-04-09  Po Lu  <luangruo@yahoo.com>
 
        Fix misalignment of entries created by Dired file operations
 
-       * lisp/dired.el (dired-insert-directory): Insert leading space
-       if absent before calling dired-align-file.
+       * lisp/dired.el (dired-insert-directory): Insert leading space if
+       absent before calling dired-align-file.
 
 2024-04-09  Juri Linkov  <juri@linkov.net>
 
-       Fix window-point-context-set and window-point-context-use (bug#33871)
+       Fix window-point-context-set and window-point-context-use
 
        * lisp/window.el (window-point-context-set)
        (window-point-context-use): Add 'window-buffer' for 'buffer-name'.
+       (bug#33871)
 
 2024-04-09  Lin Sun  <sunlin7@hotmail.com>
 
        * lisp/ls-lisp.el (ls-lisp--sanitize-switches): Support '--time'
        and '--sort=time'.  (Bug#70271)
 
-       * test/lisp/ls-lisp-tests.el (ls-lisp-test-bug70271): New
-       test case.
+       * test/lisp/ls-lisp-tests.el (ls-lisp-test-bug70271): New test
+       case.
 
 2024-04-09  Po Lu  <luangruo@yahoo.com>
 
-       Improve treatment of aborted touch events in Speedbar and elsewhere
+       Improve treatment of aborted touch events in Speedbar and
+       elsewhere.
 
        * lisp/dframe.el (dframe-popup-kludge): Mark as a
        mouse-1-menu-command.
 
        Disable tab-bar by default in Speedbar frames
 
-       * lisp/speedbar.el (speedbar-frame-parameters): Set
-       tab-bar-lines to 0.
+       * lisp/speedbar.el (speedbar-frame-parameters): Set tab-bar-lines
+       to 0.
 
 2024-04-09  Daniel Mendler  <mail@daniel-mendler.de>
 
-       (completion-hilit-commonality): Support `completion-lazy-hilit`
+       (completion-hilit-commonality): Support `completion-lazy-hilit'
 
        * lisp/minibuffer.el (completion-hilit-commonality): Support lazy
-       completion candidate highlighting via `completion-lazy-hilit`.
+       completion candidate highlighting via `completion-lazy-hilit'.
 
 2024-04-08  Eli Zaretskii  <eliz@gnu.org>
 
 
        * lisp/emacs-lisp/cl-extra.el (cl--describe-class): Move docstring
        after the class' slots.
-       (cl--describe-class-slots): Buttonize the types.
+       (cl--describe-class-slots): Buttonize the types.  (bug#70077)
 
 2024-04-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        (define-globalized-minor-mode): Fix bug#69431
 
        * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
-       When `after-change-major-mode-hook` runs, enable the mode only
-       in the current buffer and not in other pending buffers.
+       When `after-change-major-mode-hook` runs, enable the mode only in
+       the current buffer and not in other pending buffers.
 
 2024-04-08  Stephen Berman  <stephen.berman@gmx.net>
 
 
 2024-04-08  Andrea Corallo  <acorallo@gnu.org>
 
-       * Make comp ignore EIEIO classes (bug#70141)
+       Make comp ignore EIEIO classes
 
-       * lisp/emacs-lisp/comp-cstr.el (comp--all-classes): Ignore EIEIO classes.
+       * lisp/emacs-lisp/comp-cstr.el (comp--all-classes): Ignore EIEIO
+       classes.  (bug#70141)
 
 2024-04-08  Andrea Corallo  <acorallo@gnu.org>
 
-       Fix out of date comp pass names in comp-tests.el
+       Fix out of date comp pass names in comp-tests.el
 
        * test/src/comp-tests.el (comp-tests-tco, comp-tests-fw-prop-1)
        (comp-tests-pure): Update out of date pass names.
 
        Document tree-sitter things feature (bug#70016) (bug#68824)
 
-       * doc/lispref/parsing.texi (Retrieving Nodes): Mention new kinds of
-       predicate argument that the tree-traversing functions accept (which are
-       thing symbols and thing definitions).
+       * doc/lispref/parsing.texi (Retrieving Nodes): Mention new kinds
+       of predicate argument that the tree-traversing functions
+       accept (namely, thing symbols and thing definitions).
        (User-defined Things): New node dedicated to thing definition and
        navigation functions.
 
 2024-04-08  Yuan Fu  <casouri@gmail.com>
 
-       Make tree-sitter thing feature public and remove obsolete functions
+       Make tree-sitter thing feature public and remove obsolete
+       functions.
 
        * lisp/treesit.el (treesit--things-around): Remove function.
-       (treesit-forward-sexp):
-       (treesit-beginning-of-thing):
-       (treesit-end-of-thing):
-       (treesit-navigate-thing):
-       (treesit-thing-at-point):
-       (treesit-outline-search): Use public version of thing-functions.
-       (treesit--thing-prev):
-       (treesit--thing-next):
-       (treesit--thing-at):
-       (treesit--navigate-thing): Make public.
+       (treesit-forward-sexp, treesit-beginning-of-thing)
+       (treesit-end-of-thing, treesit-navigate-thing)
+       (treesit-thing-at-point, treesit-outline-search): Use public
+       version of thing-functions.
+       (treesit--thing-prev, treesit--thing-next)
+       (treesit--thing-at, treesit--navigate-thing): Make public.
 
-       * test/src/treesit-tests.el (treesit--ert-test-defun-navigation): Use
-       public version of thing-functions.
+       * test/src/treesit-tests.el (treesit--ert-test-defun-navigation):
+       Use public version of thing-functions.
 
 2024-04-07  F. Jason Park  <jp@neverwas.me>
 
        (erc-speedbar-toggle-nicknames-window-lock): Revise doc string.
        (erc-speedbar-toggle-nicknames-window-lock): Set `cursor-type' in
        speedbar buffer.
-       (erc-nickbar-toggle-nicknames-window-lock): New function alias.  Note
-       that this name flouts traditional library namespacing conventions.
-       * lisp/erc/erc-status-sidebar.el (erc-status-sidebar-get-window): Use
-       `cursor-type' instead of `internal-show-cursor'.  (Bug#63595)
+       (erc-nickbar-toggle-nicknames-window-lock): New function alias.
+       Note that this name flouts traditional library namespacing
+       conventions.
+       * lisp/erc/erc-status-sidebar.el (erc-status-sidebar-get-window):
+       Use `cursor-type' instead of `internal-show-cursor'.  (Bug#63595)
 
 2024-04-07  F. Jason Park  <jp@neverwas.me>
 
        Allow updating of /IGNORE timeouts in ERC
 
-       * lisp/erc/erc.el (erc--read-time-period, erc--decode-time-period):
-       Move body of former, now a superficial wrapper, to latter, a new
-       function.
+       * lisp/erc/erc.el (erc--read-time-period)
+       (erc--decode-time-period): Move body of former, now a superficial
+       wrapper, to latter, a new function.
        (erc--format-time-period): New function.
        (erc--get-ignore-timer-args): New function.
        (erc--find-ignore-timer): New function to search through `timer-list'
        to find matching ignore timer.
        (erc-cmd-IGNORE): Refactor and redo doc string.  Add new optional
-       `timespec' parameter, primarily to aid in testing.  Update an existing
-       timer instead of always creating one, and display time remaining in
-       "ignore list" output.  Pass server buffer instead of current buffer to
-       timer callbacks because `erc--unignore-user' displays its messages in
-       the `active' buffer, not necessarily the issuing one.  Note that doing
-       this does discard potentially useful information, so if ever reverting,
-       we can change the `cl-find' :test in `erc--find-ignore-timer' to
-       something that compares the `erc-server-process' of both buffers.
+       `timespec' parameter, primarily to aid in testing.  Update an
+       existing timer instead of always creating one, and display time
+       remaining in "ignore list" output.  Pass server buffer instead of
+       current buffer to timer callbacks because `erc--unignore-user'
+       displays its messages in the `active' buffer, not necessarily the
+       issuing one.  Note that doing this does discard potentially useful
+       information, so if ever reverting, we can change the `cl-find'
+       :test in `erc--find-ignore-timer' to something that compares the
+       `erc-server-process' of both buffers.
        ;;
        ;; Something like:
        ;;
        ;;            (buffer-local-value 'erc-server-process (cadr b)))))
        ;;
        (erc-cmd-UNIGNORE): Pass `erc-ignore-list' member matching `user'
-       parameter to `erc--unignore-user' instead of original, raw parameter,
-       along with the server buffer.
-       (erc--unignore-user): Cancel existing timer and don't bother switching
-       to server buffer since we're already there.
+       parameter to `erc--unignore-user' instead of original, raw
+       parameter, along with the server buffer.
+       (erc--unignore-user): Cancel existing timer and don't bother
+       switching to server buffer since we're already there.
        (erc-message-english-ignore-list): New variable.
        * test/lisp/erc/erc-scenarios-ignore.el: New file.
        * test/lisp/erc/erc-tests.el (erc--read-time-period): New test.
 
        (Freplace_match): Fix bug#65451
 
-       * src/search.c (Freplace_match): For ordering of *-change-functions.
+       * src/search.c (Freplace_match): For ordering of
+       *-change-functions.
 
        * test/src/editfns-tests.el
        (editfns-tests--before/after-change-functions): New test.
 
 2024-04-07  Po Lu  <luangruo@yahoo.com>
 
-       Resolve disagreements in accounting of tooltip positions on Android
+       Resolve disagreements in accounting of tooltip positions on
+       Android.
 
-       * java/org/gnu/emacs/EmacsService.java (getLocationInWindow):
-       New function.
+       * java/org/gnu/emacs/EmacsService.java (getLocationInWindow): New
+       function.
 
        * java/org/gnu/emacs/EmacsWindow.java (translateCoordinates):
        Derive "root window" position from the origin point of the
-       containing activity's window rather than that of the screen,
-       the two of which differ when "freeform mode" is enabled.
+       containing activity's window rather than that of the screen, the
+       two of which differ when "freeform mode" is enabled.
 
 2024-04-07  Lin Sun  <sunlin7@hotmail.com>
 
-       * lisp/master.el (master-says): Check nil argument (bug#70230).
+       * lisp/master.el (master-says): Check nil argument.  (bug#70230)
 
 2024-04-07  Po Lu  <luangruo@yahoo.com>
 
 
        Add documentation for 'switch-window' event
 
-       * doc/lispref/commands.texi (Focus Events): Add
-       documentation for the structure of 'switch-window' events.
-       Make sure to be clear when referring to window system windows
-       vs Emacs windows.
-       * doc/lispref/windows.texi (Mouse Window Auto-selection):
-       Adding cross-reference to "Focus Events".  (Bug#69915)
+       * doc/lispref/commands.texi (Focus Events): Add documentation for
+       the structure of 'switch-window' events.  Make sure to be clear
+       when referring to window system windows vs Emacs windows.
+       * doc/lispref/windows.texi (Mouse Window Auto-selection): Adding
+       cross-reference to "Focus Events".  (Bug#69915)
 
 2024-04-06  Olaf Rogalsky  <olaf.rogalsky@gmail.com>
 
 
        Generate select-window events, so that 'mouse-autoselect-window'
        takes effect on TTY frames, when 'xterm-mouse-mode' is enabled.
-       * lisp/xt-mouse.el (xterm-mouse-translate-1):
-       If 'mouse-autoselect-window' is non-nil, add select-window
-       events to 'unread-command-events'.  (Bug#69915)
+       * lisp/xt-mouse.el (xterm-mouse-translate-1): If
+       'mouse-autoselect-window' is non-nil, add select-window events to
+       'unread-command-events'.  (Bug#69915)
 
 2024-04-06  Po Lu  <luangruo@yahoo.com>
 
 
 2024-04-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       (help-fns-function-description-header): Fix last change (bug#70209)
-
-       * lisp/help-fns.el (help-fns-function-description-header): Don't make
-       a button for the type if it's not a type.
+       * lisp/help-fns.el (help-fns-function-description-header): Don't
+       make a button for the type if it's not a type.  (bug#70209)
 
 2024-04-05  Michael Albinus  <michael.albinus@gmx.de>
 
        Make sh-script-tests.el more robust
 
-       * test/lisp/progmodes/sh-script-tests.el (test-sh-script-indentation)
+       * test/lisp/progmodes/sh-script-tests.el
+       (test-sh-script-indentation)
        (test-basic-sh-indentation, test-indent-after-continuation):
        * test/lisp/progmodes/sh-script-resources/sh-indents.erts (Code):
        Skip if `sh-indent-supported-here' is nil.  (Bug#70196)
 
 2024-04-05  Juri Linkov  <juri@linkov.net>
 
-       Mark display-comint-buffer-action as obsolete after adding a category.
+       Mark display-comint-buffer-action as obsolete after adding a
+       category.
 
-       * lisp/window.el (display-comint-buffer-action):
-       Append '(category . comint)' to the default value.  Mark as obsolete.
-       (display-tex-shell-buffer-action):
-       Append '(category . tex-shell)' to the default value.  Mark as obsolete.
-       (bug#69983)
+       * lisp/window.el (display-comint-buffer-action): Append '(category
+       . comint)' to the default value.  Mark as obsolete.
+       (display-tex-shell-buffer-action): Append '(category . tex-shell)'
+       to the default value.  Mark as obsolete.  (bug#69983)
 
 2024-04-05  Juri Linkov  <juri@linkov.net>
 
-       * lisp/tab-bar.el (tab-bar-mode-map): New keymap (bug#69578).
-
-       (tab-bar-select-tab-modifiers): Call tab-bar--undefine-keys
-       before set-default in :set of defcustom.
-       (tab-bar--define-keys, tab-bar--undefine-keys):
-       Change keybindings in tab-bar-mode-map instead of the global map.
-       Move checking of global-key-binding to tab-bar-mode--tab-key-bind.
+       * lisp/tab-bar.el (tab-bar-mode-map): New keymap.  (bug#69578)
+       (tab-bar-select-tab-modifiers): Call tab-bar--undefine-keys before
+       set-default in :set of defcustom.
+       (tab-bar--define-keys, tab-bar--undefine-keys): Change keybindings
+       in tab-bar-mode-map instead of the global map.  Move checking of
+       global-key-binding to tab-bar-mode--tab-key-bind.
        (tab-bar-mode--tab-key-bind): New internal function.
 
 2024-04-05  Mattias Engdegård  <mattiase@acm.org>
 
        Only call set-text-conversion-style if it exists
 
-       * lisp/auth-source.el (read-passwd): Guard call, as it was before the
-       code was moved here.
-       `set-text-conversion-style` is not present in all configurations.
+       * lisp/auth-source.el (read-passwd): Guard call, as it was before
+       the code was moved here.  `set-text-conversion-style` is not
+       present in all configurations.
 
 2024-04-05  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       * lisp/help-fns.el (help-fns-function-description-header): Fix bug#70209
-
-       Replace the whimsical "" default by something actually useful.
+       * lisp/help-fns.el (help-fns-function-description-header): Replace
+       the whimsical "" default by something actually useful.
+       (bug#70209)
 
 2024-04-05  Po Lu  <luangruo@yahoo.com>
 
        * doc/emacs/android.texi (Android Document Providers): Document
        new command.
 
-       * java/org/gnu/emacs/EmacsService.java (relinquishUriRights):
-       New function.
+       * java/org/gnu/emacs/EmacsService.java (relinquishUriRights): New
+       function.
 
        * src/Makefile.in (SOME_MACHINE_OBJECTS): Add androidvfs.c.
 
 
 2024-04-05  Eli Zaretskii  <eliz@gnu.org>
 
-       * lisp/hexl.el (hexl-mode): Fix doc string (bug#70163).
+       * lisp/hexl.el (hexl-mode): Fix doc string.  (bug#70163)
 
 2024-04-05  Po Lu  <luangruo@yahoo.com>
 
-       Fix Semantic tag discovery when loading of unloaded files is suppressed
+       Fix Semantic tag discovery when loading of unloaded files is
+       suppressed.
 
        * lisp/cedet/semantic/db-find.el
        (semanticdb-find-tags-by-name-method)
        (semanticdb-deep-find-tags-by-name-method)
        (semanticdb-deep-find-tags-by-name-regexp-method)
        (semanticdb-deep-find-tags-for-completion-method): Verify that
-       tags is bound before accessing it; this slot is unbound in
-       tables created for unloaded files when the `unloaded' throttle
-       is disabled.
+       tags is bound before accessing it; this slot is unbound in tables
+       created for unloaded files when the `unloaded' throttle is
+       disabled.
 
 2024-04-05  Spencer Baugh  <sbaugh@janestreet.com>
 
-       (project-current): Fix the previous change
-
-       * lisp/progmodes/project.el (project-current):
-       Fix the previous change (bug#69584).
+       * lisp/progmodes/project.el (project-current): Fix the previous
+       change.  (bug#69584)
 
 2024-04-04  Michael Albinus  <michael.albinus@gmx.de>
 
 2024-04-04  Mattias Engdegård  <mattiase@acm.org>
 
        * src/json.c (make_symset_table): Fix over-large allocation size.
-
        We multiplied when we should have added.  Oops.
 
 2024-04-04  Juri Linkov  <juri@linkov.net>
 
-       Disobey display actions while using switch-to-buffer on the tab-line
+       Disobey display actions while using switch-to-buffer on the
+       tab-line
 
        * lisp/tab-line.el (tab-line-select-tab-buffer)
-       (tab-line-switch-to-prev-tab, tab-line-switch-to-next-tab): Let-bind
-       switch-to-buffer-obey-display-actions to nil around the call to
-       switch-to-buffer to restrain buffer switching in bounds of
-       the same window only (bug#69993).
+       (tab-line-switch-to-prev-tab, tab-line-switch-to-next-tab):
+       Let-bind switch-to-buffer-obey-display-actions to nil around the
+       call to switch-to-buffer to restrain buffer switching in bounds of
+       the same window only.  (bug#69993)
 
 2024-04-04  Po Lu  <luangruo@yahoo.com>
 
        New variable haiku-pass-control-tab-to-system
 
        Allow passing C-TAB on to the Haiku operating system, fixing
-       window switching when an Emacs frame has focus (Bug#70138).
+       window switching when an Emacs frame has focus.
        * src/haiku_support.cc (DispatchMessage): Conditionally pass
        message to BWindow.
        * src/haiku_support.h:
        * src/haikufns.c (haiku_should_pass_control_tab_to_system): Add
        variable haiku-pass-control-tab-to-system, and C function
-       haiku_should_pass_control_tab_to_system.
+       haiku_should_pass_control_tab_to_system.  (Bug#70138)
 
 2024-04-03  Juri Linkov  <juri@linkov.net>
 
-       Simplify tab-line-switch-to-prev-tab and tab-line-switch-to-next-tab.
+       Simplify tab-line-switch-to-prev-tab and
+       tab-line-switch-to-next-tab.
 
        * lisp/tab-line.el (tab-line-switch-to-prev-tab)
        (tab-line-switch-to-next-tab): Use buffers instead of tabs.
 
        Don't use file-truepath in Eglot (bug#70036)
 
-       `file-truepath' is slow because of recursive calls and being implemented
-       in lisp.  It seems to not be needed in eglot, but it is used behind the
-       scenes in `find-buffer-visiting', thus appearing in profiles.  Moving
-       the implementation to a hash map will yield similar performance
-       benefits, but wouldn't require us to rewrite `file-truename' in C.
-
-       * lisp/progmodes/eglot.el (eglot-lsp-server): Convert 'managed-buffers'
-       to a hashmap.
-       (eglot-uri-to-path): Don't use file-truepath, as it is too slow to be
-       included in the hot path.
+       `file-truepath' is slow because of recursive calls and being
+       implemented in lisp.  It seems to not be needed in eglot, but it
+       is used behind the scenes in `find-buffer-visiting', thus
+       appearing in profiles.  Moving the implementation to a hash map
+       will yield similar performance benefits, but wouldn't require us
+       to rewrite `file-truename' in C.
+
+       * lisp/progmodes/eglot.el (eglot-lsp-server): Convert
+       'managed-buffers' to a hashmap.
+       (eglot-uri-to-path): Don't use file-truepath, as it is too slow to
+       be included in the hot path.
        (eglot--on-shutdown): Use buffers from buffer map.
-       (eglot--managed-mode): Add buffer to map, rather than list. Also remove
-       it from the map on deactivation.
+       (eglot--managed-mode): Add buffer to map, rather than list. Also
+       remove it from the map on deactivation.
        (eglot-handle-notification): Expose server and get buffer from the
        buffer map.
 
 
        Revise android.texi to agree with last change
 
-       * doc/emacs/android.texi (Android Windowing): Revise to agree
-       with last change
+       * doc/emacs/android.texi (Android Windowing): Revise to agree with
+       last change
 
 2024-04-03  Po Lu  <luangruo@yahoo.com>
 
        * java/org/gnu/emacs/EmacsMultitaskActivity.java (onCreate)
        (getAttachmentToken): New functions.
 
-       * java/org/gnu/emacs/EmacsWindow.java (EmacsWindow):
+       * java/org/gnu/emacs/EmacsWindow.java (EmacsWindow)
        <attachmentToken, preserve, previouslyAttached>: New variables.
        (onActivityDetached): Remove redundant isFinishing argument.
        (reparentTo): Reset the foregoing fields before registering with
        (WindowConsumer): New function getAttachmentToken.
        (isWindowEligible): New function.
        (registerWindowConsumer, registerWindow, removeWindowConsumer)
-       (detachWindow): Implement a new window management strategy on
-       API 29 and subsequent releases where both varieties of toplevel
-       window are permanently, except when reparented, bound to the
-       activities to which they attach, and Emacs establishes at
-       strategic junctures whether those activities remain present.
+       (detachWindow): Implement a new window management strategy on API
+       29 and subsequent releases where both varieties of toplevel window
+       are permanently, except when reparented, bound to the activities
+       to which they attach, and Emacs establishes at strategic junctures
+       whether those activities remain present.
        (getTaskToken, pruneWindows): New functions.
 
 2024-04-03  Mattias Engdegård  <mattiase@acm.org>
        Make lexical-binding cookie warning test more robust
 
        * test/lisp/emacs-lisp/bytecomp-tests.el
-       (bytecomp-tests--lexical-binding-cookie):
-       Run with lexical-binding both on and off.
+       (bytecomp-tests--lexical-binding-cookie): Run with lexical-binding
+       both on and off.
 
 2024-04-03  Philip Kaludercic  <philipk@posteo.net>
 
        Check if lexical-binding is enabled before warning
 
        * lisp/emacs-lisp/bytecomp.el (byte-compile-file): Suppress "file
-       has no `lexical-binding' directive" is the variable is non-nil,
-       as is the case with 'lisp-interaction-mode'.  (Bug#70068)
+       has no `lexical-binding' directive" is the variable is non-nil, as
+       is the case with 'lisp-interaction-mode'.  (Bug#70068)
 
 2024-04-02  Juri Linkov  <juri@linkov.net>
 
 
        * lisp/dired.el (dired-mode): Set buffer-local
        'window-point-context-set-function' to remember 'dired-filename'
-       or 'position' in the window with the Dired buffer.
-       Set buffer-local 'window-point-context-use-function' to restore
-       the remembered position of the window point.
+       or 'position' in the window with the Dired buffer.  Set
+       buffer-local 'window-point-context-use-function' to restore the
+       remembered position of the window point.
 
        * lisp/tab-bar.el (tab-bar--tab): Use window-point-context-set.
        (tab-bar-select-restore-context): New user option.
 
        * lisp/window.el: Add '(context . writable)' to
        'window-persistent-parameters'.
-       (window-point-context-set, window-point-context-use): New functions.
+       (window-point-context-set, window-point-context-use): New
+       functions.
        (window-point-context-set-default-function)
        (window-point-context-use-default-function): New functions.
        (window-point-context-set-function)
 
        Fix json-insert unibyte buffer bug (bug#70007)
 
-       Previously, a unibyte target buffer could be put in an incorrect state
-       if json-insert was used to insert non-ASCII characters.
+       Previously, a unibyte target buffer could be put in an incorrect
+       state if json-insert was used to insert non-ASCII characters.
 
-       * src/json.c (Fjson_insert): Simplify.  Don't attempt to decode the data
-       being inserted: it is guaranteed to be correct UTF-8 and is correct for
-       both unibyte and multibyte buffers.
+       * src/json.c (Fjson_insert): Simplify.  Don't attempt to decode
+       the data being inserted: it is guaranteed to be correct UTF-8 and
+       is correct for both unibyte and multibyte buffers.
        * test/src/json-tests.el (json-serialize/roundtrip)
        (json-serialize/roundtrip-scalars): Extend tests.
 
 
        * src/json.c (Fjson_insert): Precise the behavior when the current
        buffer is multibyte and unibyte, respectively.
-       * doc/lispref/text.texi (Parsing JSON): Refer to the right function.
+       * doc/lispref/text.texi (Parsing JSON): Refer to the right
+       function.
 
 2024-04-02  Juri Linkov  <juri@linkov.net>
 
-       New condition/action entry 'category' for 'display-buffer' (bug#69983)
+       New condition/action entry 'category' for 'display-buffer'
 
        * doc/lispref/windows.texi (Choosing Window): Provide an example
-       of using '(category . comint)' in the condition of 'display-buffer-alist'
-       and in the action of 'display-buffer'.
-       (Buffer Display Action Alists): Add a new action alist entry 'category'.
+       of using '(category . comint)' in the condition of
+       'display-buffer-alist' and in the action of 'display-buffer'.
+       (Buffer Display Action Alists): Add a new action alist entry
+       'category'.
 
        * lisp/subr.el (buffer-match-p): Add a new condition 'category'.
+       (bug#69983)
 
-       * lisp/window.el (display-buffer): Document a new action alist entry
-       'category'.
+       * lisp/window.el (display-buffer): Document a new action alist
+       entry 'category'.
 
 2024-04-01  Mattias Engdegård  <mattiase@acm.org>
 
 
        Update JSON parser test and docs
 
-       * test/src/json-tests.el (json-parse-string/object):
-       Duplicated object keys are now retained in alist and plist output.
+       * test/src/json-tests.el (json-parse-string/object): Duplicated
+       object keys are now retained in alist and plist output.
        * etc/NEWS: Mention it.
 
-2024-04-01  Po Lu  <luangruo@yahoo.com>
+2024-04-01  Stefan Monnier <monnier@iro.umontreal.ca>
 
-       (scheme-syntax-propertize-sexp-comment): Allow `#;` in strings
+       (scheme-syntax-propertize-sexp-comment): Allow `#;' in strings
 
-       * lisp/progmodes/scheme.el (scheme-syntax-propertize-sexp-comment):
-       Don't get confused by `#;` inside strings and (normal) comments.
+       * lisp/progmodes/scheme.el
+       (scheme-syntax-propertize-sexp-comment): Don't get confused by
+       `#;' inside strings and (normal) comments.
        (scheme-sexp-comment-syntax-table): Comment-out, unused.
 
 2024-04-01  Po Lu  <luangruo@yahoo.com>
 
        Add support for `ch' and `cw' dimension specifiers for images
 
-       * src/image.c (image_get_dimension, lookup_image): Handle `ch'
-       and `cw' dimension specifiers in addition to `em'.
+       * src/image.c (image_get_dimension, lookup_image): Handle `ch' and
+       `cw' dimension specifiers in addition to `em'.
        * src/dispextern.h: Add new members `face_font_height' and
        `face_font_width' to `struct image'.
 
-       * doc/lispref/display.texi (Image Descriptors): Document
-       `ch' and `cw'.
+       * doc/lispref/display.texi (Image Descriptors): Document `ch' and
+       `cw'.
 
 2024-04-01  Mattias Engdegård  <mattiase@acm.org>
 
 
 2024-04-01  Mattias Engdegård  <mattiase@acm.org>
 
-       Don't signal `json-end-of-file` for short nonempty bad JSON inputs
+       Don't signal `json-end-of-file' for short nonempty bad JSON inputs
 
        * src/json.c (json_parse_value): Generate a plain parse error.
        * test/src/json-tests.el (json-parse-string/short): Adapt test.
        Faster JSON parsing
 
        Speed up JSON parsing substantially by only UTF-8-parsing string
-       literals and only exactly once.  Previously, json-parse-string always
-       first parsed the entire input and copied it to a new string, and then
-       validated each string literal twice.
+       literals and only exactly once.  Previously, json-parse-string
+       always first parsed the entire input and copied it to a new
+       string, and then validated each string literal twice.
 
-       We no longer create an extra new string when interning an alist key,
-       nor do we garble plist keys with Unicode characters.
+       We no longer create an extra new string when interning an alist
+       key, nor do we garble plist keys with Unicode characters.
 
        * src/lread.c (intern_c_multibyte): New.
        * src/json.c (json_encode): Remove.
        * lisp/emacs-lisp/bytecomp.el (bytecomp--sort-call-in-place-p)
        (bytecomp--mutargs-nconc, bytecomp--mutargs-sort): New.
        (byte-compile-form, bytecomp--actually-important-return-value-p)
-       (mutating-fns):
-       Use a slightly more extendible scheme for specifying what arguments
-       a function mutates.  Give `sort` special treatment.
+       (mutating-fns): Use a slightly more extendible scheme for
+       specifying what arguments a function mutates.  Give `sort' special
+       treatment.
 
 2024-04-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       (scheme-syntax-propertize-sexp-comment): Handle nested sexp-comments
+       Handle nested sexp-comments in scheme.el.
 
        Well, I'm not completely sure this will work right in all cases,
-       because I've been confused about this in the past.
-       It works in my test case, at least.
+       because I've been confused about this in the past.  It works in my
+       test case, at least.
 
-       * lisp/progmodes/scheme.el (scheme-syntax-propertize-sexp-comment):
-       Look for nested `#;` and mark them appropriately.
+       * lisp/progmodes/scheme.el
+       (scheme-syntax-propertize-sexp-comment): Look for nested `#;' and
+       mark them appropriately.
 
 2024-04-01  Po Lu  <luangruo@yahoo.com>
 
        Fix androidsu's `make-process' file name handler
 
        * lisp/net/tramp-androidsu.el
-       (tramp-androidsu-handle-make-process): Disable exec loader
-       around call to setuid su binary.
+       (tramp-androidsu-handle-make-process): Disable exec loader around
+       call to setuid su binary.
 
 2024-04-01  niceume  <toshi@niceume.com>
 
        (scheme-syntax-propertize-sexp-comment): Remove unused argument
 
-       * lisp/progmodes/scheme.el (scheme-syntax-propertize-sexp-comment):
-       Remove first arg, unused.
+       * lisp/progmodes/scheme.el
+       (scheme-syntax-propertize-sexp-comment): Remove first arg, unused.
        (scheme-syntax-propertize): Adjust calls accordingly.
 
 2024-04-01  niceume  <toshi@niceume.com>
 
        scheme.el: Enable dealing with regular expression literal
 
-       * lisp/progmodes/scheme.el (scheme-syntax-propertize-regexp): New function.
+       * lisp/progmodes/scheme.el (scheme-syntax-propertize-regexp): New
+       function.
        (scheme-syntax-propertize): Use it.
 
 2024-04-01  Po Lu  <luangruo@yahoo.com>
        Fix listing of Android root directory when it is accessible
 
        * src/androidvfs.c (android_root_closedir, android_root_dirfd)
-       (android_root_opendir): Allocate an ersatz file descriptor even
-       if directory is non-NULL, so that at-funcs will properly return
-       file status for virtual files in the root directory.
+       (android_root_opendir): Allocate an ersatz file descriptor even if
+       directory is non-NULL, so that at-funcs may properly return file
+       status for virtual files in the root directory.
 
 2024-03-31  Michael Albinus  <michael.albinus@gmx.de>
 
 
        Adapt Tramp version integrated in Emacs 29.3
 
-       * lisp/net/trampver.el:
-       Adapt Tramp version integrated in Emacs 29.3.
+       * lisp/net/trampver.el: Adapt Tramp version integrated in Emacs
+       29.3.
 
 2024-03-31  Po Lu  <luangruo@yahoo.com>
 
        List special directories when reading root directory on Android
 
-       * src/androidvfs.c (root_vfs_ops): Substitute
-       android_root_opendir for android_root_opendir.
+       * src/androidvfs.c (root_vfs_ops): Substitute android_root_opendir
+       for android_root_opendir.
        (struct android_root_vdir): New structure.
        (root_fd, root_fd_references): New variables.
        (android_root_readdir, android_root_closedir, android_root_dirfd)
        (android_root_opendir): New functions.
-       (android_fstatat_1): Test provided fd against root_fd, and if
-       they match, prefix FILENAME with the name of the root directory.
+       (android_fstatat_1): Test provided fd against root_fd, and if they
+       match, prefix FILENAME with the name of the root directory.
 
        * lisp/ls-lisp.el (ls-lisp-insert-directory): If d-f-a-a signals
        an error while retrieving attributes, compile the alist of
 
 2024-03-30  James Thomas  <james.thomas@ahimsa.global>
 
-       Make gnus cache work with group names having '/'
-
-       Make `gnus-cache-file-name` use the existing
-       `nnmail-group-pathname`.
-
        * lisp/gnus/gnus-cache.el (gnus-cache-file-name)
        (gnus-cache-update-article):
-       * lisp/gnus/nnmail.el (nnmail-group-pathname):
+       * lisp/gnus/nnmail.el (nnmail-group-pathname): Make gnus cache
+       work with group names having '/'.  Make `gnus-cache-file-name' use
+       the existing `nnmail-group-pathname'.
 
 2024-03-30  Theodor Thornhill  <theo@thornhill.no>
 
        Disable workDoneProgress if defcustom is nil
 
-       There is no need to receive the $/progress notifications from the server
-       if we don't want to render them. Because they are effectively ignored
-       when eglot-report-progress is nil we'd rather not waste cycles on serde
-       of the messages.
+       There is no need to receive the $/progress notifications from the
+       server if we don't want to render them.  Because they are
+       effectively ignored when eglot-report-progress is nil we'd rather
+       not waste cycles on serde of the messages.
 
-       * lisp/progmodes/eglot.el (eglot-client-capabilities): use value from
-       defcustom to decide whether or not to advertise to server.
+       * lisp/progmodes/eglot.el (eglot-client-capabilities): Use value
+       from defcustom to decide whether or not to advertise to server.
 
 2024-03-30  Theodor Thornhill  <theo@thornhill.no>
 
        Fix typo in docstring
 
-       * lisp/progmodes/eglot.el (eglot-lsp-server): eglot-current-server is
-       now exposed.
+       * lisp/progmodes/eglot.el (eglot-lsp-server): eglot-current-server
+       is now exposed.
 
 2024-03-30  Eli Zaretskii  <eliz@gnu.org>
 
        * nt/INSTALL.W64:
        * src/Makefile.in:
        * src/emacs.c (main):
-       * src/lisp.h:
-       Remove JSON configuration options and references to it and Jansson from
-       documentation and build files.
+       * src/lisp.h: Remove JSON configuration options and references to
+       it and Jansson from documentation and build files.
        * etc/NEWS: Announce.
 
 2024-03-30  Mattias Engdegård  <mattiase@acm.org>
 
        New JSON encoder (bug#70007)
 
-       It is in general at least 2x faster than the old encoder and does not
-       depend on any external library.  Using our own code also gives us
-       control over translation details: for example, we now have full
+       It is in general at least 2x faster than the old encoder and does
+       not depend on any external library.  Using our own code also gives
+       us control over translation details: for example, we now have full
        bignum support and tighter float formatting.
 
        * src/json.c (json_delete, json_initialized, init_json_functions)
        (json_malloc, json_free, init_json, json_out_of_memory)
-       (json_releae_object, check_string_without_embedded_nulls, json_check)
-       (json_check_utf8, lisp_to_json_nonscalar_1, lisp_to_json_nonscalar)
-       (lisp_to_json, json_available_p, ensure_json_available, json_insert)
-       (json_handle_nonlocal_exit, json_insert_callback):
-       Remove.  Remaining uses updated.
-       * src/json.c (json_out_t, symset_t, struct symset_tbl)
+       (json_releae_object, check_string_without_embedded_nulls)
+       (json_check)
+       (json_check_utf8, lisp_to_json_nonscalar_1)
+       (lisp_to_json_nonscalar)
+       (lisp_to_json, json_available_p, ensure_json_available)
+       (json_insert)
+       (json_handle_nonlocal_exit, json_insert_callback): Remove.
+       Remaining uses updated.
+       (json_out_t, symset_t, struct symset_tbl)
        (symset_size, make_symset_table, push_symset, pop_symset)
        (cleanup_symset_tables, symset_hash, symset_expand, symset_add)
-       (json_out_grow_buf, cleanup_json_out, json_make_room, JSON_OUT_STR)
+       (json_out_grow_buf, cleanup_json_out, json_make_room)
+       (JSON_OUT_STR)
        (json_out_str, json_out_byte, json_out_fixnum, string_not_unicode)
        (json_plain_char, json_out_string, json_out_nest, json_out_unnest)
-       (json_out_object_cons, json_out_object_hash), json_out_array)
+       (json_out_object_cons, json_out_object_hash, json_out_array)
        (json_out_float, json_out_bignum, json_out_something)
        (json_out_to_string, json_serialize): New.
-       (Fjson_serialize, Fjson_insert):
-       New JSON encoder implementation.
-       * test/src/json-tests.el (json-serialize/object-with-duplicate-keys)
+       (Fjson_serialize, Fjson_insert): New JSON encoder implementation.
+       * test/src/json-tests.el
+       (json-serialize/object-with-duplicate-keys)
        (json-serialize/string): Update tests.
 
 2024-03-30  David Ponce  <da_vid@orange.fr>
        bug#69992: Minor improvement to image map transformation logic
 
        * lisp/image.el (image--compute-rotation): New function.
-       (image--compute-map, image--compute-original-map): Use it.
-       Ensure all transformations are applied or undone according to what
-       Emacs does internally.  Call a transformation function only when
-       needed.  Fix doc string.
+       (image--compute-map, image--compute-original-map): Use it.  Ensure
+       all transformations are applied or undone according to what Emacs
+       does internally.  Call a transformation function only when needed.
+       Fix doc string.
        (image--scale-map, image--rotate-map): Assume effective scale
        argument.
        (image--rotate-coord): Improve doc string.
 
        Add use-package-vc-prefer-newest user option
 
-       * lisp/use-package/use-package-core.el (use-package-vc-prefer-newest):
-       User option to prefer the latest commit (as opposed to the latest
-       release) of a package.
+       * lisp/use-package/use-package-core.el
+       (use-package-vc-prefer-newest): User option to prefer the latest
+       commit (as opposed to the latest release) of a package.
        (use-package-normalize--vc-arg): Check for
        use-package-vc-prefer-newest.
 
 
        Rationalize java/Makefile.in
 
-       * java/Makefile.in: (emacs.apk-in): Bring commentary up to date,
+       * java/Makefile.in (emacs.apk-in): Bring commentary up to date,
        and package classes.dex at this stage of the process.
        ($(APK_NAME)): Adjust to match.
 
 
 2024-03-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       * lisp/emacs-lisp/comp.el (comp--add-cond-cstrs): Consolidate 2 cases
+       * lisp/emacs-lisp/comp.el (comp--add-cond-cstrs): Consolidate 2
+       cases.
 
        * lisp/cedet/semantic/tag.el (semantic-tag): New type
 
 2024-03-29  Mattias Engdegård  <mattiase@acm.org>
 
-       `value<` manual entry adjustments (bug#69709)
+       `value<' manual entry adjustments (bug#69709)
 
-       * doc/lispref/sequences.texi (Sequence Functions):
-       Explain lexicographical ordering.  Note the dual nature of `nil`.
-       Mention the depth limit.
+       * doc/lispref/sequences.texi (Sequence Functions): Explain
+       lexicographical ordering.  Note the dual nature of `nil'.  Mention
+       the depth limit.
 
 2024-03-29  Mattias Engdegård  <mattiase@acm.org>
 
        * src/fns.c (Fvaluelt): More generous depth limit (20 -> 200).
 
-       This gives `value<` the same limit as `equal` which seems about right.
+       This gives `value<' the same limit as `equal' which seems about
+       right.
 
 2024-03-29  Sam Steingold  <sds@gnu.org>
 
        Support `shell-resync-dirs' on msys bash (Bug#70012)
 
        * lisp/shell.el (w32-application-type): Declare.
-       (shell-mode): Set `shell-dirstack-query' to `pwd -W` when using msys bash.
+       (shell-mode): Set `shell-dirstack-query' to `pwd -W' when using
+       msys bash.
 
 2024-03-29  Mattias Engdegård  <mattiase@acm.org>
 
-       Better `sort` ignored-return-value warning
+       Better `sort' ignored-return-value warning
 
        * lisp/emacs-lisp/bytecomp.el (byte-compile-form)
-       (bytecomp--actually-important-return-value-p):
-       Special handling of `sort` that takes into account that it may return
-       an important value depending on the :in-place keyword argument.
+       (bytecomp--actually-important-return-value-p): Special handling of
+       `sort' that takes into account that it may return an important
+       value depending on the :in-place keyword argument.
 
 2024-03-29  Mattias Engdegård  <mattiase@acm.org>
 
-       Remove `sort-on` (bug#69709)
+       Remove `sort-on' (bug#69709)
 
        * lisp/sort.el (sort-on):
        * doc/lispref/sequences.texi (Sequence Functions):
-       * etc/NEWS:
-       Remove the `sort-on` function which is now completely superseded by
-       the extended `sort` in features, ease of use, and performance.
+       * etc/NEWS: Remove the `sort-on' function which is now completely
+       superseded by the extended `sort' in features, ease of use, and
+       performance.
 
 2024-03-29  Mattias Engdegård  <mattiase@acm.org>
 
-       Use new-style `sort` signature in Lisp manual examples
+       Use new-style `sort' signature in Lisp manual examples
 
        * doc/lispref/help.texi (Accessing Documentation):
-       * doc/lispref/strings.texi (Text Comparison):
-       Use the new sort calling convention (bug#69709).
+       * doc/lispref/strings.texi (Text Comparison): Use the new sort
+       calling convention.  (bug#69709)
 
 2024-03-29  Mattias Engdegård  <mattiase@acm.org>
 
        Faster non-destructive list sorting
 
-       Postpone the creation of a new list to after sorting which turns out to
-       be a lot faster (1.1x - 1.5x speedup).
+       Postpone the creation of a new list to after sorting which turns
+       out to be a lot faster (1.1x - 1.5x speedup).
 
-       * src/fns.c (sort_list, sort_vector, Fsort):
-       Create the new list when moving the data out from the temporary array.
+       * src/fns.c (sort_list, sort_vector, Fsort): Create the new list
+       when moving the data out from the temporary array.
 
 2024-03-29  Mattias Engdegård  <mattiase@acm.org>
 
-       Speed up `sort` by special-casing the `value<` ordering
+       Speed up `sort' by special-casing the `value<' ordering
 
        This gives a 1.5x-2x speed-up when using the default :lessp value,
        by eliminating the Ffuncall overhead.
 
        * src/sort.c (order_pred_lisp, order_pred_valuelt): New.
-       (merge_state, inorder, binarysort, count_run, gallop_left, gallop_right)
+       (merge_state, inorder, binarysort, count_run, gallop_left)
+       (gallop_right)
        (merge_init, merge_lo, merge_hi, tim_sort):
-       * src/fns.c (Fsort):
-       When using value<, call it directly.
+       * src/fns.c (Fsort): When using value<, call it directly.
 
 2024-03-29  Mattias Engdegård  <mattiase@acm.org>
 
-       New `sort` keyword arguments (bug#69709)
+       New `sort' keyword arguments (bug#69709)
 
        Add the :key, :lessp, :reverse and :in-place keyword arguments.
        The old calling style remains available and is unchanged.
 
        * src/fns.c (sort_list, sort_vector, Fsort):
-       * src/sort.c (tim_sort):
-       Add keyword arguments with associated new features.
-       All callers of Fsort adapted.
-       * test/src/fns-tests.el (fns-tests--shuffle-vector, fns-tests-sort-kw):
-       New test.
+       * src/sort.c (tim_sort): Add keyword arguments with associated new
+       features.  All callers of Fsort adapted.
+       * test/src/fns-tests.el (fns-tests--shuffle-vector)
+       (fns-tests-sort-kw): New test.
        * doc/lispref/sequences.texi (Sequence Functions): Update manual.
        * etc/NEWS: Announce.
 
 
        Add back timsort key function handling (bug#69709)
 
-       The original timsort code did provide for a key (accessor) function
-       along with the necessary storage management, but we dropped it because
-       our `sort` function didn't need it.
+       The original timsort code did provide for a key (accessor)
+       function along with the necessary storage management, but we
+       dropped it because our `sort' function didn't need it.
 
-       Now it's been put back since it seems that it will come in handy after all.
+       Now it's been put back since it seems that it will come in handy
+       after all.
 
-       * src/fns.c (sort_list, sort_vector, Fsort): Pass Qnil as key function
-       to tim_sort.
+       * src/fns.c (sort_list, sort_vector, Fsort): Pass Qnil as key
+       function to tim_sort.
        * src/sort.c (reverse_slice, sortslice_copy)
        (sortslice_copy_incr, sortslice_copy_decr, sortslice_memcpy)
        (sortslice_memmove, sortslice_advance): New functions.
        (sortslice): New type.
        (struct stretch, struct reloc, merge_state)
        (binarysort, merge_init, merge_markmem, cleanup_mem)
-       (merge_register_cleanup, merge_getmem, merge_lo, merge_hi, merge_at)
-       (found_new_run, reverse_sortslice, resolve_fun, tim_sort):
-       Merge back previously discarded parts from the upstreams timsort code
+       (merge_register_cleanup, merge_getmem, merge_lo, merge_hi)
+       (merge_at)
+       (found_new_run, reverse_sortslice, resolve_fun, tim_sort): Merge
+       back previously discarded parts from the upstreams timsort code
        that dealt with key functions, and adapt them to fit in.
 
 2024-03-29  Mattias Engdegård  <mattiase@acm.org>
 
-       Add `value<` (bug#69709)
+       Add `value<' (bug#69709)
 
-       It's a general-purpose polymorphic ordering function, like `<` but
+       It's a general-purpose polymorphic ordering function, like `<' but
        for any two values of the same type.
 
-       * src/data.c (syms_of_data): Add the `type-mismatch` error.
+       * src/data.c (syms_of_data): Add the `type-mismatch' error.
        (bits_word_to_host_endian): Move...
-       * src/lisp.h (bits_word_to_host_endian): ...here, and declare inline.
-       * src/fns.c (Fstring_lessp): Extract the bulk of this function to...
-       (string_cmp): ...this 3-way comparison function, for use elsewhere.
+       * src/lisp.h (bits_word_to_host_endian): ...here, and declare
+       inline.
+       * src/fns.c (Fstring_lessp): Extract the bulk of this function
+       to...
+       (string_cmp): ...this 3-way comparison function, for use
+       elsewhere.
        (bool_vector_cmp, value_cmp, Fvaluelt): New.
        * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns, pure-fns):
-       Add `value<`, which is pure and side-effect-free.
+       Add `value<', which is pure and side-effect-free.
        * test/src/fns-tests.el (fns-value<-ordered, fns-value<-unordered)
        (fns-value<-type-mismatch, fns-value<-symbol-with-pos)
-       (fns-value<-circle, ert-deftest fns-value<-bool-vector): New tests.
+       (fns-value<-circle, ert-deftest fns-value<-bool-vector): New
+       tests.
        * doc/lispref/sequences.texi (Sequence Functions):
        * doc/lispref/numbers.texi (Comparison of Numbers):
-       * doc/lispref/strings.texi (Text Comparison):
-       Document the new value< function.
+       * doc/lispref/strings.texi (Text Comparison): Document the new
+       value< function.
        * etc/NEWS: Announce.
 
 2024-03-29  Po Lu  <luangruo@yahoo.com>
 
        Prevent Android OS task trimming from deleting Emacs frames
 
-       * doc/emacs/android.texi (Android Windowing): Document proviso
-       on Android 7.0 and later.
+       * doc/emacs/android.texi (Android Windowing): Document proviso on
+       Android 7.0 and later.
 
        * java/org/gnu/emacs/EmacsActivity.java (EmacsActivity)
        <timeOfLastInteraction>: New field.
 
        pp.el: Try and fix bug#70039
 
-       * lisp/emacs-lisp/pp.el (pp-fill): Avoid splitting `#N#` or `#[`.
+       * lisp/emacs-lisp/pp.el (pp-fill): Avoid splitting `#N#' or `#['.
        * test/lisp/emacs-lisp/pp-tests.el (pp-tests--sanity): New test.
 
 2024-03-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        copy-tree just image map, not entire image
 
-       * lisp/image.el (image--compute-original-map): Copy only
-       the image map.  (Bug#69602)
+       * lisp/image.el (image--compute-original-map): Copy only the image
+       map.  (Bug#69602)
 
 2024-03-28  Rahguzar  <rahguzar@zohomail.eu>
 
        (test-parse-comments--no-assertion-error)
        (test-syntax-highlight-inline--caret-negated-wrong-face)
        (test-macro-test--file-no-asserts): New test cases.
-       * doc/misc/ert.texi (Syntax Highlighting Tests): More syntax examples.
+       * doc/misc/ert.texi (Syntax Highlighting Tests): More syntax
+       examples.
 
 2024-03-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        (pcase-mutually-exclusive): Use auto-generated table
 
-       The `pcase-mutually-exclusive-predicates` table was not very
-       efficient since it grew like O(N²) with the number of
-       predicates.  Replace it with an O(N) table that's auto-generated
-       from the `built-in-class` objects.
+       The `pcase-mutually-exclusive-predicates' table was not very
+       efficient since it grew like O(N²) with the number of predicates.
+       Replace it with an O(N) table that's auto-generated from the
+       `built-in-class' objects.
 
        * lisp/emacs-lisp/pcase.el (pcase-mutually-exclusive-predicates):
        Delete variable.
 
 2024-03-28  Dmitry Gutov  <dmitry@gutov.dev>
 
-       (project-current): Add binding for 'non-essential'
-
-       * lisp/progmodes/project.el (project-current):
-       Add binding for 'non-essential' (bug#69584).
+       * lisp/progmodes/project.el (project-current): Add binding for
+       'non-essential'.  (bug#69584)
 
 2024-03-28  Spencer Baugh  <sbaugh@janestreet.com>
 
        current-buffer instead of checking the modification time of the
        passed-in buffer.
 
-       This caused matches to not be shown if they weren't present in
-       the current in-Emacs state of the buffer.
+       This caused matches to not be shown if they weren't present in the
+       current in-Emacs state of the buffer.
 
        This was easily reproduced by writing a string to a file outside
        Emacs, then searching for that string with
        e.g. project-find-regexp.  The string would seemingly not be
        found, although in reality it was found, just not displayed.
 
-       * lisp/progmodes/xref.el (xref--find-file-buffer):
-       Check buf, not current-buffer (bug#70008).
+       * lisp/progmodes/xref.el (xref--find-file-buffer): Check buf, not
+       current-buffer.  (bug#70008)
 
 2024-03-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       Fix labeling of functions in which-key popup
-
-       Add a few minor changes.
+       * lisp/which-key.el (which-key-this-command-keys-function)
+       (which-key-inhibit-display-hook)
+       (which-key-enable-god-mode-support)
+       (which-key--compute-binding)
+       (which-key--get-keymap-bindings-1): Fix labeling of functions in
+       which-key popup.  Add a few minor changes.
 
 2024-03-27  Po Lu  <luangruo@yahoo.com>
 
 
 2024-03-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       * lisp/help.el (help-function-arglist): Don't `substitute-command-keys`
+       * lisp/help.el (help-function-arglist): Don't
+       `substitute-command-keys'.
 
 2024-03-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        cl-preloaded.el: Partly revert last change
 
        The change caused type-check errors in auth-source where they use
-       `:type function` constraints on object slots and expect those to
+       `:type function' constraints on object slots and expect those to
        be able to hold symbols.
 
        * lisp/emacs-lisp/cl-preloaded.el (function): Revert last change.
 
-       * test/src/data-tests.el (data-tests--cl-type-of): Use `cl-functionp`
-       rather than `functionp` to test `function`.
+       * test/src/data-tests.el (data-tests--cl-type-of): Use
+       `cl-functionp' rather than `functionp' to test `function'.
 
 2024-03-26  Alan Mackenzie  <acm@muc.de>
 
 
        cl-preloaded.el: Fix the type lattice
 
-       We generally want types to form not just a DAG but a lattice.
-       If objects can be both `keyword` and `symbol-with-pos`, this
-       means there should be a more precise type describing this intersection.
-       If we ever find the need for such a refinement, we could add
-       such a `keyword-with-pos` type, but here I took the simpler
-       route of treating `keyword` not as a proper built-in type but
-       as a second-class type like `natnum`.
+       We generally want types to form not just a DAG but a lattice.  If
+       objects can be both `keyword' and `symbol-with-pos', this means
+       there should be a more precise type describing this intersection.
+       If we ever find the need for such a refinement, we could add such
+       a `keyword-with-pos' type, but here I took the simpler route of
+       treating `keyword' not as a proper built-in type but as a
+       second-class type like `natnum'.
 
        While fixing this problem, also fix the problem we had where
-       `functionp` was not quite adequate to characterize objects of type
-       `function`, by introducing a new predicate `cl-functionp` for that.
+       `functionp' was not quite adequate to characterize objects of type
+       `function', by introducing a new predicate `cl-functionp' for
+       that.
 
        * lisp/emacs-lisp/cl-preloaded.el (cl-functionp): New function.
        (function): Use it.
        (cl-generic-generalizers): Remove corresponding test.
 
        * lisp/emacs-lisp/cl-macs.el (cl-deftype-satisfies): Add entry for
-       `keyword` type.
+       `keyword' type.
 
        * lisp/emacs-lisp/comp.el (comp-known-predicates): Fix type for
-       negative result of `characterp`.  Remove duplicate `numberp` entry.
-       Fix types for `keywordp` now that `keyword` is not a built-in type any more.
+       negative result of `characterp'.  Remove duplicate `numberp'
+       entry.  Fix types for `keywordp' now that `keyword' is not a
+       built-in type any more.
 
-       * test/src/data-tests.el (data-tests--cl-type-of): Add a few cases.
-       Remove workaround for `function`.
+       * test/src/data-tests.el (data-tests--cl-type-of): Add a few
+       cases.  Remove workaround for `function'.
 
 2024-03-26  Andrea Corallo  <acorallo@gnu.org>
 
        * java/org/gnu/emacs/EmacsService.java (EmacsService)
        <IC_MODE_PASSWORD>: New constant.
 
-       * java/org/gnu/emacs/EmacsView.java (onCreateInputConnection):
-       Set TYPE_TEXT_VARIATION_PASSWORD and IME_FLAG_FORCE_ASII if mode
-       is IC_MODE_PASSWORD.
+       * java/org/gnu/emacs/EmacsView.java (onCreateInputConnection): Set
+       TYPE_TEXT_VARIATION_PASSWORD and IME_FLAG_FORCE_ASII if mode is
+       IC_MODE_PASSWORD.
 
        * lisp/subr.el (read-passwd): Set text-conversion-style to
        `password'.
        * src/androidgui.h (enum android_ic_mode): New value
        ANDROID_IC_MODE_PASSWORD.
 
-       * src/androidterm.c (android_reset_conversion): Handle
-       `password'.
+       * src/androidterm.c (android_reset_conversion): Handle `password'.
 
        * src/buffer.c (syms_of_buffer)
        <&BVAR (current_buffer, text_conversion_style)>: Update doc
 
 2024-03-25  Juri Linkov  <juri@linkov.net>
 
-       * lisp/vc/diff-mode.el (diff-setup-buffer-type): Remove "\n" from regexp.
+       * lisp/vc/diff-mode.el (diff-setup-buffer-type): Remove "\n" from
+       regexp.
 
-       Remove extra "\n" from the end of the "diff --git.*" part
-       of 'diff-outline-regexp' because "\n" is not used in outline-regexp
-       and causes problems in such cases like when killing hunks
-       in the diff buffer with outline-minor-mode that loses
-       the outline icons because outline--fix-buttons-after-change and
+       Remove extra "\n" from the end of the "diff --git.*" part of
+       'diff-outline-regexp' because "\n" is not used in outline-regexp
+       and causes problems in such cases like when killing hunks in the
+       diff buffer with outline-minor-mode that loses the outline icons
+       because outline--fix-buttons-after-change and
        outline--fix-up-all-buttons are limited to the single line and
        can't match an outline line with a regexp that ends with "\n".
 
-2024-03-25  Po Lu  <luangruo@yahoo.com>
-
-       Merge remote-tracking branch 'savannah/master' into master-android-1
-
 2024-03-25  Po Lu  <luangruo@yahoo.com>
 
        Port restart-emacs to Android 4.3 and earlier
 
        cl-preloaded.el: Improve docstrings of "kinds"
 
-       * lisp/emacs-lisp/cl-preloaded.el (cl--class): Improve the docstring.
+       * lisp/emacs-lisp/cl-preloaded.el (cl--class): Improve the
+       docstring.
        (built-in-class): Add a docstring.
 
 2024-03-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       * doc/emacs/help.texi (Name Help): Mention buttons (bug#69935)
+       * doc/emacs/help.texi (Name Help): Mention buttons (bug#69935)
 
 2024-03-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        edebug.el: Better strip instrumentation from backtraces
 
-       Rework the code that "cleans" the backtrace for `edebug-pop-to-backtrace`.
-       The main changes are the following:
+       Rework the code that "cleans" the backtrace for
+       `edebug-pop-to-backtrace'.  The main changes are the following:
 
        - Strip instrumentation from "everywhere" rather than trying to limit the
          effect to "code" and leave "data" untouched.  This is a worthy
          goal, but it is quite difficult to do since code contains data
-         (so we ended up touching data anyway) and data can also
-         contain code.
+         (so we ended up touching data anyway) and data can also contain
+         code.
          The risk of accidentally removing something because it happens
-         to look like instrumentation is very low, whereas it was very common
-         for instrumentation to remain in the backtrace.
-
+         to look like instrumentation is very low, whereas it was very
+         common for instrumentation to remain in the backtrace.
        - Use a global hash-table to remember the work done, instead of
          using separate hash-table for each element.  By using a weak
          hash-table we avoid the risk of leaks, and save a lot of work
 
        * lisp/emacs-lisp/edebug.el (edebug-make-enter-wrapper): Tweak code
        layout so the comments are more clear.
-       (edebug-unwrap): Remove redundant patterns for `closure` and `lambda`.
-       Add `:closure-dont-trim-context` to the `edebug-enter` pattern,
-       so it also gets removed (this should have been done in commit
-       750bc57cbb8d).
+       (edebug-unwrap): Remove redundant patterns for `closure' and
+       `lambda'.  Add `:closure-dont-trim-context' to the `edebug-enter'
+       pattern, so it also gets removed (this should have been done in
+       commit 750bc57cbb8d).
        (edebug--unwrap-cache): New var.
        (edebug-unwrap*): Use it.
-       (edebug--unwrap1): Delete function.  Merged into `edebug-unwrap*`.
-       Also apply unwrapping to the contents of byte-code functions since they
-       can refer to lambda expressions captured by the closure.
+       (edebug--unwrap1): Delete function.  Merged into `edebug-unwrap*'.
+       Also apply unwrapping to the contents of byte-code functions since
+       they can refer to lambda expressions captured by the closure.
        (edebug--symbol-prefixed-p): Rename from
-       `edebug--symbol-not-prefixed-p` and adjust meaning accordingly.
-       (edebug--strip-instrumentation): Adjust accordingly and simplify
-       bit by unifying the "lambda" case and the "everything else" case.
-       (edebug--unwrap-frame): Use `cl-callf` and unwrap arguments even if
-       they've already been evaluated.
+       `edebug--symbol-not-prefixed-p' and adjust meaning accordingly.
+       (edebug--strip-instrumentation): Adjust accordingly and simplify a
+       bit by unifying the "lambda" case and the "everything else" case.
+       (edebug--unwrap-frame): Use `cl-callf' and unwrap arguments even
+       if they've already been evaluated.
 
 2024-03-23  F. Jason Park  <jp@neverwas.me>
 
        Reuse command-indicator code for script lines in ERC
 
-       * lisp/erc/erc-goodies.el (erc-load-irc-script-lines): Move here from
-       main file and rework to always use `command-indicator' instead of only
-       partially, when available.  Also use internal "send-action" and
-       "send-message" interfaces to defer command-handler output until
-       command lines have been inserted.
+       * lisp/erc/erc-goodies.el (erc-load-irc-script-lines): Move here
+       from main file and rework to always use `command-indicator'
+       instead of only partially, when available.  Also use internal
+       "send-action" and "send-message" interfaces to defer
+       command-handler output until command lines have been inserted.
        * lisp/erc/erc.el (erc-process-input-line): Redo doc string.
        (erc-process-script-line): Fold exceptionally overlong line.
        (erc-load-irc-script-lines): Move to erc-goodies.el.  (Bug#67032)
 
        Restore leading space to right-margin stamps in ERC
 
-       * lisp/erc/erc-stamp.el (erc-insert-timestamp-right): Insert a single
-       space character immediately before right-side stamps managed by
-       `erc-stamp--display-margin-mode'.  Include it as part of the
-       `timestamp' field.  This behavior was originally present in an earlier
-       draft of the changes for bug#60936, mainly to favor symmetry between
-       hard-wrapped fill styles and fill-wrap with regard to stamps.  It was
-       subsequently removed to simplify management, so that the `field' and
-       `display' intervals aligned.
+       * lisp/erc/erc-stamp.el (erc-insert-timestamp-right): Insert a
+       single space character immediately before right-side stamps
+       managed by `erc-stamp--display-margin-mode'.  Include it as part
+       of the `timestamp' field.  This behavior was originally present in
+       an earlier draft of the changes for bug#60936, mainly to favor
+       symmetry between hard-wrapped fill styles and fill-wrap with
+       regard to stamps.  It was subsequently removed to simplify
+       management, so that the `field' and `display' intervals aligned.
        * test/lisp/erc/erc-stamp-tests.el
        (erc-stamp--display-margin-mode--right): Update expected output.
 
 
        Remove mishandled erc-control-default-{fg,bg} faces
 
-       Partially revert those portions of 7b4ca9e609e "Leverage inverse-video
-       for erc-inverse-face" that introduced and managed explicit faces for
-       the "default" 99 color code.
+       Partially revert those portions of 7b4ca9e609e "Leverage
+       inverse-video for erc-inverse-face" that introduced and managed
+       explicit faces for the "default" 99 color code.
 
        * lisp/erc/erc-goodies.el (erc-control-default-fg)
-       (erc-control-default-bg): Remove unused faces originally meant to be
-       new in ERC 5.6.
-       (erc-get-fg-color-face, erc-get-bg-color-face): Return nil for n=99.
+       (erc-control-default-bg): Remove unused faces originally meant to
+       be new in ERC 5.6.
+       (erc-get-fg-color-face, erc-get-bg-color-face): Return nil for
+       n=99.
        (erc-controls-interpret, erc-controls-highlight): Preserve an
        interval's existing background so "if only the foreground color is
        set, the background color stays the same," as explained by
 
        Remove unused faces from various erc-goodies tests
 
-
        * test/lisp/erc/erc-goodies-tests.el
        (erc-controls-highlight--spoilers)
        (erc-controls-highlight--inverse): Remove all mention of stricken
 
 2024-03-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       (describe-package-1): Fix bug#69712
-
-       * lisp/emacs-lisp/package.el (describe-package-1): Improve the test to
-       determine if `maintainers` contains a single cons or a list of conses.
+       * lisp/emacs-lisp/package.el (describe-package-1): Improve the
+       test to determine if `maintainers` contains a single cons or a
+       list of conses.  (bug#69712)
 
 2024-03-23  Joseph Turner  <joseph@breatheoutbreathe.in>
 
        Now, when transforming an image, its :map is recomputed to fit.
        Image map coordinates are integers, so when computing :map,
        coordinates are rounded.  To prevent an image from drifting from
-       its map after repeated transformations, 'create-image' now adds
-       new image property :original-map, which is combined with the
+       its map after repeated transformations, 'create-image' now adds a
+       new image property :original-map, which is combined with the
        image's transformation parameters to recompute :map.
 
        * lisp/image.el (image-recompute-map-p): Add user option to
        control whether :map is recomputed when an image is transformed.
        (create-image): Create :map from :original-map and vice versa.
        (image--delayed-change-size): Fix comment.
-       (image--change-size, image-rotate, image-flip-horizontally,
-       image-flip-vertically): Recompute image map after transformation
+       (image--change-size, image-rotate, image-flip-horizontally)
+       (image-flip-vertically): Recompute image map after transformation
        and mention 'image-recompute-map-p' in docstring.
        (image--compute-map): Add function to compute a map from original
        map.
-       (image--compute-original-map): Add function to compute an
-       original map from map.
+       (image--compute-original-map): Add function to compute an original
+       map from map.
        (image--scale-map): Add function to scale a map based on :scale.
        (image--rotate-map): Add function to rotate a map based on
        :rotation.
        (image--rotate-coord): Add function to rotate a map coordinate
        pair.
        (image--flip-map): Add function to flip a map based on :flip.
-       (image-increase-size, image-decrease-size, image-mouse-increase-size)
+       (image-increase-size, image-decrease-size)
+       (image-mouse-increase-size)
        (image-mouse-decrease-size): Mention 'image-recompute-map-p' in
        docstrings.
        * etc/NEWS: Add NEWS entry.
-       * doc/lispref/display.texi (Image Descriptors): Document :original-map
-       and new user option 'image-recompute-map-p'.
+       * doc/lispref/display.texi (Image Descriptors): Document
+       :original-map and new user option 'image-recompute-map-p'.
        * test/lisp/image-tests.el (image--compute-map-and-original-map):
        Test 'image--compute-map' and 'image--compute-original-map'.
-       (image-tests--map-equal): Add equality predicate to compare image maps.
+       (image-tests--map-equal): Add equality predicate to compare image
+       maps.
        (image-create-image-with-map): Test that 'create-image' adds :map
        and/or :original-map as appropriate.
-       (image-transform-map): Test functions related to transforming maps.
-       (Bug#69602)
+       (image-transform-map): Test functions related to transforming
+       maps.  (Bug#69602)
 
 2024-03-23  Jim Porter  <jporterbugs@gmail.com>
 
        (eww-default-readable-p): New function...
        (eww-display-html): ... use it.
 
-       * test/lisp/net/eww-tests.el (eww-test/readable/default-readable): New
-       test.
+       * test/lisp/net/eww-tests.el (eww-test/readable/default-readable):
+       New test.
 
        * doc/misc/eww.texi (Basics): Document 'eww-readable-urls'.
 
-       * etc/NEWS: Announce this change (bug#68254).
+       * etc/NEWS: Announce this change.  (bug#68254)
 
 2024-03-23  Jim Porter  <jporterbugs@gmail.com>
 
        Allow toggling "readable" mode in EWW
 
-       Additionally, add an option to prevent adding a new history entry for
-       each call of 'eww-readable' (bug#68254).
+       Additionally, add an option to prevent adding a new history entry
+       for each call of 'eww-readable'.  (bug#68254)
 
        * lisp/net/eww.el (eww-retrieve):
 
        * lisp/net/eww.el (eww-readable-adds-to-history): New option.
        (eww-retrieve): Make sure we call CALLBACK in all configurations.
        (eww-render): Simplify how to pass encoding.
-       (eww--parse-html-region, eww-display-document): New functions, extracted
-       from...
+       (eww--parse-html-region, eww-display-document): New functions,
+       extracted from...
        (eww-display-html): ... here.
        (eww-document-base): New function.
-       (eww-readable): Toggle "readable" mode interactively, like with a minor
-       mode.  Consult 'eww-readable-adds-to-history'.
+       (eww-readable): Toggle "readable" mode interactively, like with a
+       minor mode.  Consult 'eww-readable-adds-to-history'.
        (eww-reload): Use 'eshell-display-document'.
 
-       * test/lisp/net/eww-tests.el (eww-test--with-mock-retrieve): Fix indent.
-       (eww-test/display/html, eww-test/readable/toggle-display): New tests.
+       * test/lisp/net/eww-tests.el (eww-test--with-mock-retrieve): Fix
+       indent.
+       (eww-test/display/html, eww-test/readable/toggle-display): New
+       tests.
 
        * doc/misc/eww.texi (Basics): Describe the new behavior.
 
        In my benchmarking, for large dired buffers, using 'regexp-opt'
        provides around a 3x speedup in omitting.
 
-       'regexp-opt' takes around 5 milliseconds, so to avoid slowing
-       down omitting in small dired buffers we cache the return value.
+       'regexp-opt' takes around 5 milliseconds, so to avoid slowing down
+       omitting in small dired buffers we cache the return value.
 
        Since omitting is now 3x faster, increase 'dired-omit-size-limit'
        by 3x.  Also, document 'dired-omit-size-limit' better.
 
 2024-03-23  Eli Zaretskii  <eliz@gnu.org>
 
-       * src/coding.c (produce_chars): Fix a thinko (bug#69966).
+       * src/coding.c (produce_chars): Fix a thinko.  (bug#69966)
 
 2024-03-23  Eli Zaretskii  <eliz@gnu.org>
 
        8cf05d9be12 Fix 'shortdoc-copy-function-as-kill'
        d5901f3f05e Improve documentation of 'edebug-print-*' variables
 
-2024-03-23  Po Lu  <luangruo@yahoo.com>
-
-       Merge remote-tracking branch 'savannah/master' into master-android-1
-
 2024-03-23  Po Lu  <luangruo@yahoo.com>
 
        Enable calling decode_coding_object with both SRC and DST_OBJECT Qnil
        Correctly handle non-BMP characters in Android content file names
 
        * lisp/term/android-win.el (android-encode-jni)
-       (android-decode-jni, android-jni): New coding system, for
-       Android file names and runtime data.
+       (android-decode-jni, android-jni): New coding system, for Android
+       file names and runtime data.
 
        * src/androidterm.h (syms_of_androidvfs): New function.
 
        special_coding_system.
        (android_saf_tree_readdir): Decode the file name using the
        android-jni coding system.
-       (special_vnodes): <contents>: Specify a file name coding system.
+       (special_vnodes) <contents>: Specify a file name coding system.
        (android_vfs_convert_name): New function.
-       (android_root_name): If a special coding system be specified for
-       a special vnode, convert components to it before invoking its
-       name function.
+       (android_root_name): If a special coding system be specified for a
+       special vnode, convert components to it before invoking its name
+       function.
        (syms_of_androidvfs): New symbol Qandroid_jni.
 
        * src/emacs.c (android_emacs_init): Call syms_of_androidvfs.
 
        Fix recent test regressions
 
-       * lisp/emacs-lisp/pp.el (pp-fill): Don't cut between `#` and `(`.
+       * lisp/emacs-lisp/pp.el (pp-fill): Don't cut between `#' and `('.
 
        * test/lisp/help-fns-tests.el (help-fns-test-built-in)
        (help-fns-test-interactive-built-in, help-fns-test-lisp-defun)
        (help-fns-test-lisp-defsubst):
        * test/src/emacs-module-tests.el (module/describe-function-1):
-       Adjust tests to new wording in `describe-function`.
+       Adjust tests to new wording in `describe-function'.
 
 2024-03-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       etc/NEWS: Document the new behavior of `describe-function`
+       * etc/NEWS: Document the new behavior of `describe-function`.
 
        I pushed commit accd79c93935 by accident.
-       Related to bug#69935
+       Related to bug#69935.
 
 2024-03-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        (pp-fill): Cut before parens and dots
 
-       The `pp-fill` code sometimes end up generating things like:
+       The `pp-fill' code sometimes end up generating things like:
 
            (foo .
                 bar)
 
        * lisp/emacs-lisp/pp.el (pp-fill): Cut before parens and dots.
 
-       * test/lisp/emacs-lisp/pp-tests.el (pp-tests--dimensions): New function.
+       * test/lisp/emacs-lisp/pp-tests.el (pp-tests--dimensions): New
+       function.
        (pp-tests--cut-before): New test.
 
 2024-03-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        (help-fns-function-description-header): Print functions' type
 
-       Instead of choosing English words to describe the kind of function,
-       use the actual type of the function object (from `cl-type-of`)
-       directly, and make it a button to display info about that type.
+       Instead of choosing English words to describe the kind of
+       function, use the actual type of the function object (from
+       `cl-type-of`) directly, and make it a button to display info about
+       that type.
 
        * lisp/help-fns.el (help-fns-function-description-header): Use the
-       function's type name in the description instead of "prose".
-       Use `insert` instead of `princ`, so as to preserve the text-properties
+       function's type name in the description instead of "prose".  Use
+       `insert' instead of `princ', so as to preserve the text-properties
        of the button.
 
-       * lisp/emacs-lisp/cl-extra.el (cl-help-type): Move to `help-mode.el`
-       and rename to `help-type`.
+       * lisp/emacs-lisp/cl-extra.el (cl-help-type): Move to
+       `help-mode.el' and rename to `help-type'.
        (cl--describe-class): Adjust accordingly.
 
        * lisp/help-mode.el (help-type): New type, moved and renamed from
 
        Fix display of custom menus after putative cosmetic change
 
-       * lisp/wid-edit.el (widget-setup): Restore version from before
-       the previous commit.
+       * lisp/wid-edit.el (widget-setup): Restore version from before the
+       previous commit.
 
 2024-03-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       * lisp/help.el (help--analyze-key): Use `help-fns-function-name`
+       * lisp/help.el (help--analyze-key): Use `help-fns-function-name'.
 
 2024-03-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        (help-fns-function-name): New function
 
-       Consolidate code used in profiler and help--describe-command,
-       and improve it while we're at it.
-       Also use #' to quote a few function names along the way.
+       Consolidate code used in profiler and help--describe-command, and
+       improve it while we're at it.  Also use #' to quote a few function
+       names along the way.
 
-       * lisp/help-fns.el (help-fns--function-numbers, help-fns--function-names):
-       New vars.
+       * lisp/help-fns.el (help-fns--function-numbers)
+       (help-fns--function-names): New vars.
        (help-fns--display-function): New aux function.
        (help-fns-function-name): New function, inspired from
-       `help--describe-command`.
+       `help--describe-command'.
 
-       * lisp/help.el (help--describe-command): Use `help-fns-function-name`.
-       (help--for-help-make-sections): Remove redundant "" arg to `mapconcat`.
+       * lisp/help.el (help--describe-command): Use
+       `help-fns-function-name'.
+       (help--for-help-make-sections): Remove redundant "" arg to
+       `mapconcat'.
 
        * lisp/profiler.el (profiler-format-entry, profiler-fixup-entry):
        Delete functions.
-       (profiler-report-make-entry-part): Use `help-fns-function-name` instead.
-       (profiler-report-find-entry): Use `push-button`.
+       (profiler-report-make-entry-part): Use `help-fns-function-name'
+       instead.
+       (profiler-report-find-entry): Use `push-button'.
 
-       * lisp/transient.el (transient--debug): Use `help-fns-function-name`
-       when available.
+       * lisp/transient.el (transient--debug): Use
+       `help-fns-function-name' when available.
 
 2024-03-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        (make-help-screen): Move most of the code out to a function
 
-       This avoids problems like variable-name capture and lets compiler messages
-       point to the actual source code.
+       This avoids problems like variable-name capture and lets compiler
+       messages point to the actual source code.
 
-       * lisp/help-macro.el (help--help-screen): New function, extracted from
-       `make-help-screen`.
+       * lisp/help-macro.el (help--help-screen): New function, extracted
+       from `make-help-screen'.
        (make-help-screen): Use it.
 
 2024-03-21  Jonas Bernoulli  <jonas@bernoul.li>
 
        (describe-symbol-backends): Fix addition of the "type" backend
 
-       That backend was added from `cl-extra.el` with no autoload, so
-       (describe-symbol `advice) failed to show the info about
-       the `advice` type unless `cl-extra.el` had been loaded beforehand.
-       `C-h o RET advice RET` worked by accident because the completion
-       table uses `cl-some` which is autoloaded from `cl-extra.el`.
+       That backend was added from `cl-extra.el' with no autoload, so
+       (describe-symbol `advice) failed to show the info about the
+       `advice' type unless `cl-extra.el' had been loaded beforehand.
+       `C-h o RET advice RET' worked by accident because the completion
+       table uses `cl-some' which is autoloaded from `cl-extra.el'.
 
-       * lisp/help-mode.el (describe-symbol-backends): Add the "type" backend.
-       * lisp/emacs-lisp/cl-extra.el (describe-symbol-backends): Don't add the
-       "type" backend here.
+       * lisp/help-mode.el (describe-symbol-backends): Add the "type"
+       backend.
+       * lisp/emacs-lisp/cl-extra.el (describe-symbol-backends): Don't
+       add the "type" backend here.
 
 2024-03-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 
 2024-03-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       Speed up `describe-char` when a property has a large value
+       Speed up `describe-char' when a property has a large value
 
-       Doing `C-u C-x =` on a buffer position where the overlay/text
-       properties hold large values (e.g. inside the profiler report)
-       can be surprisingly slow because it pretty prints all those properties.
-       Change the code to do the pretty printing more lazily.
-       While at it, share that duplicated code between `descr-text.el` and
-       `wid-browse.el`.
+       Doing `C-u C-x =' on a buffer position where the overlay/text
+       properties hold large values (e.g. inside the profiler report) can
+       be surprisingly slow because it pretty prints all those
+       properties.  Change the code to do the pretty printing more
+       lazily.  While at it, share that duplicated code between
+       `descr-text.el' and `wid-browse.el'.
 
        * lisp/emacs-lisp/pp.el (pp-insert-short-sexp): New function.
 
        * lisp/descr-text.el (describe-text-sexp): Delete function.
-       (describe-property-list): Use `pp-insert-short-sexp` instead.
+       (describe-property-list): Use `pp-insert-short-sexp' instead.
 
-       * lisp/wid-browse.el (widget-browse-sexp): Use `pp-insert-short-sexp`
-       and `widget--allow-insertion`.
+       * lisp/wid-browse.el (widget-browse-sexp): Use
+       `pp-insert-short-sexp' and `widget--allow-insertion'.
 
 2024-03-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 
        * lisp/wid-edit.el: Use #' to quote function names.
        (widget--simplify-menu, widget-echo-help): Explicitly specify the
-       lexenv to `eval`.
-       (widget-choose, widget-get-sibling, widget-setup, widget-field-find)
+       lexenv to `eval'.
+       (widget-choose, widget-get-sibling, widget-setup)
+       (widget-field-find)
        (widget-choice-action, widget-checklist-value-get)
        (widget-radio-value-create, widget-radio-value-set)
        (widget-radio-action, widget-editable-list-delete-at)
-       (widget-group-value-create, widget-choice-prompt-value): Use `dolist`.
-       (widget-convert): Hoist `(setq current` out of the ifs.
-       (widget-convert): Hoist `(setq keys` out of the if.
-       (widget-after-change): Hoist `(setq begin` out of the if.
-       (widget-default-completions): Use `cond`.
-       (widget-default-value-set): Hoist `goto-char` out of the if.
-       (widget-choice-action): Hoist `nth` out of the if.
-       (widget-checkbox-action): Hoist `widget-apply` out of the if.
-       (widget-editable-list-value-create): Hoist `car` out of the if.
-       (widget-editable-list-entry-create): Hoist `(setq child ...` out of the if.
-       (widget-documentation-link-action): Fold `if` into `cond`.
-       (widget-key-sequence-value-to-external): Use `key-parse`.
-       (widget-plist-convert-option, widget-alist-convert-option):
-       Hoist `(setq key-type` out of the if.
+       (widget-group-value-create, widget-choice-prompt-value): Use
+       `dolist'.
+       (widget-convert): Hoist `(setq current' out of the ifs.
+       (widget-convert): Hoist `(setq keys' out of the if.
+       (widget-after-change): Hoist `(setq begin' out of the if.
+       (widget-default-completions): Use `cond'.
+       (widget-default-value-set): Hoist `goto-char' out of the if.
+       (widget-choice-action): Hoist `nth' out of the if.
+       (widget-checkbox-action): Hoist `widget-apply' out of the if.
+       (widget-editable-list-value-create): Hoist `car' out of the if.
+       (widget-editable-list-entry-create): Hoist `(setq child ...' out
+       of the if.
+       (widget-documentation-link-action): Fold `if' into `cond'.
+       (widget-key-sequence-value-to-external): Use `key-parse'.
+       (widget-plist-convert-option, widget-alist-convert-option): Hoist
+       `(setq key-type' out of the if.
 
 2024-03-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       (widget--allow-insertion): New macro
-
        * lisp/wid-edit.el (widget--allow-insertion): New macro.
        (widget-specify-insert, widget-insert, widget-setup)
        (widget-default-delete, widget-editable-list-insert-before)
 
        It's often necessary to update the representation of a single
        object in a table (e.g a struct, whose identity does not change
-       when its slots'
-       values are changed).  To do so, now the function may be called
-       like this:
+       when its slots' values are changed).  To do so, now the function
+       may be called like this:
 
          (vtable-update-object table object)
 
 
          (vtable-update-object table object object)
 
-       This also documents the behavior of the just-discovered limitation filed
-       as bug#69837.
-       * lisp/emacs-lisp/vtable.el (vtable-update-object): Make 'old-object'
-       argument optional.  (Bug#69666)
+       This also documents the behavior of the just-discovered limitation
+       filed as bug#69837.
+       * lisp/emacs-lisp/vtable.el (vtable-update-object): Make
+       'old-object' argument optional.  (Bug#69666)
 
-       * doc/misc/vtable.texi (Interface Functions): Update documentation.
+       * doc/misc/vtable.texi (Interface Functions): Update
+       documentation.
 
        * etc/NEWS: Add news entry.
 
        being compared with the list rather than the intended value in it;
        that could cause the whole table to be recomputed, sometimes
        unnecessarily.
-       * lisp/emacs-lisp/vtable.el (vtable--recompute-numerical): Test the
-       car of ELEM, not ELEM itself, which is a list.  (Bug#69927)
+       * lisp/emacs-lisp/vtable.el (vtable--recompute-numerical): Test
+       the car of ELEM, not ELEM itself, which is a list.  (Bug#69927)
 
 2024-03-21  Po Lu  <luangruo@yahoo.com>
 
        * doc/emacs/android.texi (Android Windowing): Document
        restrictions on number of windows under Android 4.4 and earlier.
 
-       * java/AndroidManifest.xml.in <EmacsActivity>
-       <EmacsOpenActivity, EmacsMultitaskActivity>: Assign each class
-       of activity a unique task affinity.
+       * java/AndroidManifest.xml.in
+       <EmacsActivity, <EmacsOpenActivity>:
+       <EmacsMultitaskActivity>: Assign each class of activity a unique
+       task affinity.
 
        * java/org/gnu/emacs/EmacsDesktopNotification.java (display1):
        Remove redundant priority assignment.
 
        * java/org/gnu/emacs/EmacsOpenActivity.java (onCreate): Handle
-       file URIs when processing attachments from a mailto URI, and
-       check for KitKat before opening content ones.
+       file URIs when processing attachments from a mailto URI, and check
+       for KitKat before opening content ones.
 
-       * java/org/gnu/emacs/EmacsWindow.java <pointerMap>
+       * java/org/gnu/emacs/EmacsWindow.java (EmacsWindow) <pointerMap>:
        (figureChange): Replace coordinate HashMap with a SparseArray.
 
        * java/org/gnu/emacs/EmacsWindowAttachmentManager.java
 
        Respect file display names during Android drag-and-drop
 
-       * java/org/gnu/emacs/EmacsService.java (buildContentName):
-       Remove redundant projection argument to resolver.query.
+       * java/org/gnu/emacs/EmacsService.java (buildContentName): Remove
+       redundant projection argument to resolver.query.
 
-       * java/org/gnu/emacs/EmacsWindow.java (onDragEvent): If a
-       content resolver is available, attempt to convert content URIs
-       into file names in advance.
+       * java/org/gnu/emacs/EmacsWindow.java (onDragEvent): If a content
+       resolver is available, attempt to convert content URIs into file
+       names in advance.
 
        * lisp/term/android-win.el (android-handle-dnd-event): Adjust
        correspondingly.
 
        Reported by john muhl <jm@pub.pink>.
 
-       * test/lisp/vc/vc-git-tests.el (vc-git-test--with-repo): Set
-       some environment variables (lifted from vc-tests.el) to let
-       'git commit' compute dummy author and committer identities.
+       * test/lisp/vc/vc-git-tests.el (vc-git-test--with-repo): Set some
+       environment variables (lifted from vc-tests.el) to let 'git
+       commit' compute dummy author and committer identities.
 
 2024-03-19  Eli Zaretskii  <eliz@gnu.org>
 
 
 2024-03-19  Andrea Corallo  <acorallo@gnu.org>
 
-       * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-test-93): Add test.
+       * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-test-93): Add
+       test.
 
 2024-03-19  Andrea Corallo  <acorallo@gnu.org>
 
-       Use 'cl-type-of' in comp-cstr.el
+       Use 'cl-type-of' in comp-cstr.el
 
-       * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-homogeneous-no-range)
+       * lisp/emacs-lisp/comp-cstr.el
+       (comp-cstr-union-homogeneous-no-range)
        (comp-cstr-union-1-no-mem, comp-cstr-intersection-no-hashcons):
        Make use of 'cl-type-of' in place of 'type-of'.
 
        available.  All callers changed.
 
        * lisp/international/mule-cmds.el (set-default-coding-systems):
-       Fix file name coding system as utf-8-unix on Android as on Mac
-       OS.
+       Fix file name coding system as utf-8-unix on Android as on Mac OS.
 
        * src/androidvfs.c (enum android_vnode_type): New enum
        ANDROID_VNODE_CONTENT_AUTHORITY_NAMED.
        type.
        (displayNameHash): New function.
        (android_get_content_name): New argument WITH_CHECKSUM.  If
-       present, treat the final two components as a pair of checksum
-       and display name, and verify and exclude the two.
+       present, treat the final two components as a pair of checksum and
+       display name, and verify and exclude the two.
        (android_authority_name): Provide new argument as appropriate.
        (android_authority_initial_name): New function.
 
 2024-03-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       * lisp/emacs-lisp/cl-preloaded.el (user-ptr): Add predicate
+       * lisp/emacs-lisp/cl-preloaded.el (user-ptr): Add predicate.
 
-       Merge branch 'cl-type-of' (bug#69739)
+       Merge branch 'cl-type-of' (bug#69739)
 
 2024-03-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       Followup changes to `cl-type-of`
+       Followup changes to `cl-type-of'
 
-       These changes came up while working on `cl-type-of` but are not
-       directly related to the new `cl-type-of`.
+       These changes came up while working on `cl-type-of' but are not
+       directly related to the new `cl-type-of'.
        The BASE_PURESIZE bump was needed at some point on one of my
        machine, not sure why.
 
        * src/puresize.h (BASE_PURESIZE): Bump up.
-       * src/sqlite.c (bind_value): Don't use `Ftype_of`.
+       * src/sqlite.c (bind_value): Don't use `Ftype_of'.
        * lisp/emacs-lisp/seq.el (seq-remove-at-position): Simplify.
        * lisp/emacs-lisp/cl-preloaded.el (finalizer):
        New (previously missing) type.
 
        (primitive-function): New type
 
-       The type hierarchy and `cl-type-of` code assumed that `subr-primitive`
-       only applies to functions, but since it also accepts special-forms it makes
-       it an unsuitable choice since it can't be a subtype of `compiled-function`.
-       So, use a new type `primitive-function` instead.
+       The type hierarchy and `cl-type-of' code assumed that
+       `subr-primitive' only applies to functions, but since it also
+       accepts special-forms it makes it an unsuitable choice since it
+       can't be a subtype of `compiled-function'.  So, use a new type
+       `primitive-function' instead.
 
        * lisp/subr.el (subr-primitive-p): Fix docstring (bug#69832).
        (primitive-function-p): New function.
 
        * lisp/emacs-lisp/cl-preloaded.el (primitive-function): Rename
-       from `subr-primitive` since `subr-primitive-p` means something else.
+       from `subr-primitive' since `subr-primitive-p' means something
+       else.
 
-       * src/data.c (Fcl_type_of): Return `primitive-function` instead
-       of `subr-primitive` for C functions.
+       * src/data.c (Fcl_type_of): Return `primitive-function' instead of
+       `subr-primitive' for C functions.
        (syms_of_data): Adjust accordingly.
 
-       * test/src/data-tests.el (data-tests--cl-type-of): Remove workaround.
+       * test/src/data-tests.el (data-tests--cl-type-of): Remove
+       workaround.
 
 2024-03-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       (cl-type-of): New function to return more precise types (bug#69739)
+       (cl-type-of): New function to return more precise types
 
-       * src/data.c (Fcl_type_of): New function, extracted from `Ftype_of`.
-       Make it return more precise types for symbols, integers, and subrs.
+       * src/data.c (Fcl_type_of): New function, extracted from
+       `Ftype_of'.  Make it return more precise types for symbols,
+       integers, and subrs.
        (Ftype_of): Use it.
        (syms_of_data): Define the corresponding new symbols and defsubr
        the new function.
 
        * doc/lispref/objects.texi (Type Predicates): Document it.
 
-       * src/comp.c (emit_limple_insn): Use `Fcl_type_of`.
+       * src/comp.c (emit_limple_insn): Use `Fcl_type_of'.
 
-       * lisp/emacs-lisp/cl-preloaded.el (subr): Demote it to `atom`.
-       (subr-native-elisp, subr-primitive): Add `compiled-function` as
+       * lisp/emacs-lisp/cl-preloaded.el (subr): Demote it to `atom'.
+       (subr-native-elisp, subr-primitive): Add `compiled-function' as
        parent instead.
        (special-form): New type.
 
        * lisp/emacs-lisp/eieio-core.el (cl--generic-struct-tag):
        * lisp/emacs-lisp/cl-generic.el (cl--generic-typeof-generalizer):
-       Use `cl-type-of`.
-       cl--generic--unreachable-types): Update accordingly.
+       Use `cl-type-of'.  cl--generic--unreachable-types): Update
+       accordingly.
 
-       test/src/data-tests.el (data-tests--cl-type-of): New test.
+       * test/src/data-tests.el (data-tests--cl-type-of): New test.
+       (bug#69739)
 
 2024-03-18  Po Lu  <luangruo@yahoo.com>
 
 2024-03-17  Juri Linkov  <juri@linkov.net>
 
        * lisp/tab-bar.el (tab-bar-select-restore-windows): New defcustom.
-
        (tab-bar-select-restore-windows): New function.
-       (tab-bar-select-tab): Let-bind window-restore-killed-buffer-windows
-       to tab-bar-select-restore-windows (bug#68235).
+       (tab-bar-select-tab): Let-bind
+       window-restore-killed-buffer-windows to
+       tab-bar-select-restore-windows.  (bug#68235)
 
 2024-03-17  Protesilaos Stavrou  <info@protesilaos.com>
 
        * etc/themes/modus-vivendi-deuteranopia-theme.el:
        * etc/themes/modus-vivendi-theme.el:
        * etc/themes/modus-vivendi-tinted-theme.el:
-       * etc/themes/modus-vivendi-tritanopia-theme.el: Update the
-       palette of each theme.
+       * etc/themes/modus-vivendi-tritanopia-theme.el: Update the palette
+       of each theme.
 
-       * etc/themes/modus-themes.el (require): Remove call to cl-lib
-       and do not use relevant functions.
+       * etc/themes/modus-themes.el (require): Remove call to cl-lib and
+       do not use relevant functions.
        (modus-themes-operandi-colors, modus-themes-vivendi-colors)
-       (modus-themes-version, modus-themes-report-bug): Remove old
-       calls to 'make-obsolete' and related.
+       (modus-themes-version, modus-themes-report-bug): Remove old calls
+       to 'make-obsolete' and related.
 
-       (modus-themes--annotate-theme): Tweak the completion annotation function.
+       (modus-themes--annotate-theme): Tweak the completion annotation
+       function.
 
-       (modus-themes--org-block): Deprecate the user option 'modus-themes-org-blocks'.
+       (modus-themes--org-block): Deprecate the user option
+       'modus-themes-org-blocks'.
        (modus-themes-faces): Update faces.
        (modus-themes-custom-variables): Update the list of custom
        variables.
 
        Fix vc-dir when "remote" Git branch is local
 
-       While in there, add that "tracking" branch to the vc-dir
-       buffer.  For bug#68183.
+       While in there, add that "tracking" branch to the vc-dir buffer.
 
-       * lisp/vc/vc-git.el (vc-git-dir-extra-headers): Reduce
-       boilerplate with new function 'vc-git--out-ok'; stop calling
+       * lisp/vc/vc-git.el (vc-git-dir-extra-headers): Reduce boilerplate
+       with new function 'vc-git--out-ok'; stop calling
        vc-git-repository-url when REMOTE is "." to avoid throwing an
        error; display tracking branch; prefer "none (<details...>)" to
-       "not (<details...>)" since that reads more grammatically
-       correct.
+       "not (<details...>)" since that reads more grammatically correct.
        (vc-git--out-ok): Add documentation.
        (vc-git--out-str): New function to easily get the output from a
        Git command.
        * test/lisp/vc/vc-git-tests.el (vc-git-test--with-repo)
        (vc-git-test--run): New helpers, defined to steer clear of
        vc-git-- internal functions.
-       (vc-git-test-dir-track-local-branch): Check that vc-dir does
-       not crash.
+       (vc-git-test-dir-track-local-branch): Check that vc-dir does not
+       crash.  (bug#68183)
 
 2024-03-17  Po Lu  <luangruo@yahoo.com>
 
        Improve C++ standard library detection on Android
 
-       * configure.ac: Stop relaying --with-ndk-cxx-shared to the
-       nested invocation of configure.
+       * configure.ac: Stop relaying --with-ndk-cxx-shared to the nested
+       invocation of configure.
 
        * build-aux/ndk-build-helper-1.mk (SYSTEM_LIBRARIES):
 
        * cross/ndk-build/ndk-build.mk.in (NDK_BUILD_CXX_STL)
        (NDK_BUILD_CXX_LDFLAGS): New variables.
 
-       * cross/ndk-build/ndk-resolve.mk (NDK_SYSTEM_LIBRARIES):
-       Introduce several other C++ libraries sometimes present on
-       Android.
+       * cross/ndk-build/ndk-resolve.mk (NDK_SYSTEM_LIBRARIES): Introduce
+       several other C++ libraries sometimes present on Android.
        (NDK_SO_EXTRA_FLAGS_$(LOCAL_MODULE)): Insert NDK_BUILD_CXX_STL
        when any of these new C++ libraries are requested.
 
 
        debug.el: Prevent re-entering the debugger for the same error
 
-       We can have several active `handler-bind`s that all want to invoke the
-       debugger, in which case we can have the following sequence:
+       We can have several active `handler-bind's that all want to invoke
+       the debugger, in which case we can have the following sequence:
 
        - The more deeply nested handler calls the debugger.
-       - After a while the user invokes `debugger-continue`.
-       - `signal_or_quit` propagates the error up the stack to the
+       - After a while the user invokes `debugger-continue'.
+       - `signal_or_quit' propagates the error up the stack to the
          second handler, which calls the debugger again.
        - The user thus ends up right back at the same place, as if
-         `debugger-continue` had not be processed.
+         `debugger-continue' had not be processed.
 
-       Fix this by remembering the last processed error and skipping
-       the debugger if we bump into it again.
+       Fix this by remembering the last processed error and skipping the
+       debugger if we bump into it again.
 
        * lisp/emacs-lisp/debug.el (debugger--last-error): New var.
        (debugger--duplicate-p): New function.
 
 2024-03-16  Martin Rudalics  <rudalics@gmx.at>
 
-       In window-related documentation write 'symbol' instead of 'constant'
+       In window-related documentation write 'symbol' instead of
+       'constant'.
 
        Suggested by Michael Heerdegen <michael_heerdegen@web.de>.
 
        * lisp/window.el (display-buffer--lru-window)
        (display-buffer-use-least-recent-window): In doc-strings write
        'symbol' instead of 'constant'.
-       * doc/lispref/windows.texi (Window Configurations): Write
+       * doc/lisprqef/windows.texi (Window Configurations): Write
        'symbol' instead of 'constant'.
 
 2024-03-16  Po Lu  <luangruo@yahoo.com>
 
        Correct doc strings for x-*-keysym
 
-       * src/xterm.c (syms_of_xterm): Clarify whether x-*-keysym
-       affects the modifier key reported for a keysym or the other way
-       around.
+       * src/xterm.c (syms_of_xterm): Clarify whether x-*-keysym affects
+       the modifier key reported for a keysym or the other way around.
 
 2024-03-16  Po Lu  <luangruo@yahoo.com>
 
-       * doc/lispref/frames.texi (Window System Selections): Fix misuse of xref.
+       * doc/lispref/frames.texi (Window System Selections): Fix misuse
+       of xref.
 
 2024-03-16  Po Lu  <luangruo@yahoo.com>
 
        Fix calc.texi for Texinfo 4.13
 
-       * doc/misc/calc.texi (Fractions): Replace instances of @U with
-       raw Unicode characters and adjust the document encoding
-       suitably.
+       * doc/misc/calc.texi (Fractions): Replace instances of @U with raw
+       Unicode characters and adjust the document encoding suitably.
 
 2024-03-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       * lisp/emacs-lisp/bindat.el (sint): Burp in dynbind (bug#69749)
+       * lisp/emacs-lisp/bindat.el (sint): Burp in dynbind (bug#69749)
 
 2024-03-15  Andrea Corallo  <acorallo@gnu.org>
 
-       Don't install unnecessary trampolines (bug#69573)
+       Don't install unnecessary trampolines (bug#69573)
 
        * lisp/emacs-lisp/comp-run.el (comp-subr-trampoline-install):
        Check that subr-name actually matches the target subr.
 
 2024-03-15  Andrea Corallo  <acorallo@gnu.org>
 
-       * lisp/emacs-lisp/advice.el (comp-subr-trampoline-install): Don't declare.
+       * lisp/emacs-lisp/advice.el (comp-subr-trampoline-install): Don't
+       declare.
 
 2024-03-15  Martin Rudalics  <rudalics@gmx.at>
 
 
 2024-03-15  Martin Rudalics  <rudalics@gmx.at>
 
-       Further adjustments for restoring killed buffer windows (Bug#68235)
+       Further adjustments for restoring killed buffer windows
 
        * etc/NEWS: Announce 'window-restore-killed-buffer-windows'.
        * src/buffer.h (struct buffer) : New field last_name_.
        'window-kept-windows-functions'.
        * doc/lispref/windows.texi (Window Configurations): Describe
        'window-restore-killed-buffer-windows' which replaces
-       'window-kept-windows-functions'.
+       'window-kept-windows-functions'.  (Bug#68235)
 
 2024-03-15  Juri Linkov  <juri@linkov.net>
 
-       * lisp/vc/diff-mode.el (diff-mode-menu): Add menu item "Apply all hunks".
-
-       It's bound to the recently added command 'diff-apply-buffer'.
+       * lisp/vc/diff-mode.el (diff-mode-menu): Add menu item "Apply all
+       hunks".  It is bound to the recently added command
+       'diff-apply-buffer'.
 
 2024-03-15  Spencer Baugh  <sbaugh@janestreet.com>
 
-       With visible-completions, only bind RET when completion is selected
+       With visible-completions, only bind RET when completion is
+       selected.
 
-       Previously, if minibuffer-visible-completions was non-nil, we bound RET
-       whenever the *Completions* buffer was visible.  This meant that RET in
-       completion-in-region would not enter a newline, which is a somewhat
-       annoying behavior change from minibuffer-visible-completions=nil.
+       Previously, if minibuffer-visible-completions was non-nil, we
+       bound RET whenever the *Completions* buffer was visible.  This
+       meant that RET in completion-in-region would not enter a newline,
+       which is a somewhat annoying behavior change from
+       minibuffer-visible-completions=nil.
 
        Now, we only bind RET when a completion is selected.  This means
        RET will newline in completion-in-region.
 
-       So that completion help continues to suggest the correct keys,
-       we also add minibuffer-visible-completions--always-bind.  When
+       So that completion help continues to suggest the correct keys, we
+       also add minibuffer-visible-completions--always-bind.  When
        let-bound to a non-nil value, it makes the
        minibuffer-visible-completions binds always active.  We let-bind
        it around substitute-command-keys.
        minibuffer-visible-completions--filter.  (bug#68801)
        * lisp/simple.el (minibuffer-visible-completions--always-bind)
        (completion-setup-function): Let-bind
-       minibuffer-visible-completions--always-bind so the completion
-       help is correct.
+       minibuffer-visible-completions--always-bind so the completion help
+       is correct.
 
 2024-03-15  Kévin Le Gouguec  <kevin.legouguec@gmail.com>
 
 
 2024-03-15  Dmitry Gutov  <dmitry@gutov.dev>
 
-       (project--value-in-dir): Ensure that the global value is still honored
-
-       * lisp/progmodes/project.el (project--value-in-dir):
-       Ensure that the global value of the variable is still honored,
-       when the variable is not in dir-locals.
+       * lisp/progmodes/project.el (project--value-in-dir): Ensure that
+       the global value of the variable is still honored, when the
+       variable is not in dir-locals.
 
 2024-03-15  Patrick Bader  <patrick.bader@thingos.io>
 
-       fix: project submodule detection does not work for worktrees
+       * lisp/progmodes/project.el (project--submodule-p): Fix issue
+       where project submodule detection did not work for worktrees.
 
 2024-03-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        (set-auto-mode): Streamline to fix bug#67795
 
-       The old code tested if the mode function is `fboundp` but in an
+       The old code tested if the mode function is `fboundp' but in an
        inconsistent way and without paying attention to
-       `major-mode-remap`.
-
-       * lisp/files.el (set-auto-mode-0): Return `:keep` rather than nil if
-       the mode was already set.  And emit a warning when the mode function
-       doesn't exist.
-       (set-auto-mode): Remove checks that the mode function exists now that
-       `set-auto-mode-0` does it for us.  Adjust to the new return values of
-       that function, and simplify the code using a big `or` instead of
-       a sequence of steps each setting&testing `done`.
-       (hack-local-variables--find-variables): Use `major-mode-remap`
-       when skipping the "mode:" entries that specify modes we don't have.
-       Also, when (eq handle-mode t), don't bother building a list of results
-       only to return a single element in the end.
+       `major-mode-remap'.
+
+       * lisp/files.el (set-auto-mode-0): Return `:keep' rather than nil
+       if the mode was already set.  And emit a warning when the mode
+       function doesn't exist.
+       (set-auto-mode): Remove checks that the mode function exists now
+       that `set-auto-mode-0' does it for us.  Adjust to the new return
+       values of that function, and simplify the code using a big `or'
+       instead of a sequence of steps each setting&testing `done'.
+       (hack-local-variables--find-variables): Use `major-mode-remap'
+       when skipping the "mode:" entries that specify modes we don't
+       have.  Also, when (eq handle-mode t), don't bother building a list
+       of results only to return a single element in the end.
 
 2024-03-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       (customize-mode): Fix bug#69501
-
        * lisp/cus-edit.el (customize-mode): Use the predicate arg of
-       `completing-read` instead of binding `completion-regexp-list`.
+       `completing-read' instead of binding `completion-regexp-list'.
+       (bug#69501)
 
 2024-03-15  Po Lu  <luangruo@yahoo.com>
 
 
 2024-03-14  Juri Linkov  <juri@linkov.net>
 
-       * lisp/textmodes/flyspell.el (flyspell-check-changes): New user option.
-
-       (flyspell--mode-on): Add flyspell-check-changes to post-command-hook
-       when flyspell-check-changes is non-nil.
-       (flyspell--mode-off): Remove flyspell-check-changes from post-command-hook.
-       (flyspell-check-changes): New function (bug#61874).
+       * lisp/textmodes/flyspell.el (flyspell-check-changes): New user
+       option.
+       (flyspell--mode-on): Add flyspell-check-changes to
+       post-command-hook when flyspell-check-changes is non-nil.
+       (flyspell--mode-off): Remove flyspell-check-changes from
+       post-command-hook.
+       (flyspell-check-changes): New function.  (bug#61874)
 
 2024-03-14  Juri Linkov  <juri@linkov.net>
 
        * lisp/progmodes/project.el: Don't run modes from .dir-locals.el.
-
-       (project--value-in-dir): Use 'alist-get' on 'file-local-variables-alist'
-       to avoid calling 'hack-local-variables-apply' via
+       (project--value-in-dir): Use 'alist-get' on
+       'file-local-variables-alist' to avoid calling
+       'hack-local-variables-apply' via
        'hack-dir-local-variables-non-file-buffer' because it might enable
-       undesirable modes such as flyspell-mode in a temporary buffer (bug#69740).
+       undesirable modes such as flyspell-mode in a temporary buffer.
+       (bug#69740)
 
 2024-03-14  Juri Linkov  <juri@linkov.net>
 
        Detect the readline support for Python shell completion
 
        * lisp/progmodes/python.el
-       (python-shell-comint-watch-for-first-prompt-output-filter):
-       Detect the readline support.
+       (python-shell-comint-watch-for-first-prompt-output-filter): Detect
+       the readline support.
        (python-shell-readline-completer-delims): Update docstring.
        (python-shell-completion-native-setup): Move the readline
        detection code to ...
        (python-shell-readline-detect): ... new function.
-       (python-shell-completion-native-turn-on-maybe): Skip if Python
-       has no readline support.
+       (python-shell-completion-native-turn-on-maybe): Skip if Python has
+       no readline support.
        (python-shell-completion-at-point): Respect the delimiter of
        readline completer in non-native completion.
        * test/lisp/progmodes/python-tests.el
        (python-completion-at-point-native-with-eldoc-1): Skip tests if
        Python has no readline support.
        (python-shell-completion-at-point-jedi-completer): Add test for
-       non-native Python shell completion. (bug#68559)
+       non-native Python shell completion.  (bug#68559)
 
 2024-03-14  Adam Porter  <adam@alphapapa.net>
 
-       Handle the case where 'vtable-update-object' doesn't find old object
+       Handle cases where 'vtable-update-object' doesn't find old object.
 
        * lisp/emacs-lisp/vtable.el (vtable-update-object): If OLD-OBJECT
        is not found, don't call ELT, since SEQ-POSITION may return nil.
 
 2024-03-14  Phil Hagelberg  <phil@hagelb.org>  (tiny change)
 
-       bug#69685: Add language server for Fennel to eglot
+       Add language server for Fennel to eglot
 
-       * lisp/progmodes/eglot.el (eglot-server-programs): Add
-       fennel-ls language server.
+       * lisp/progmodes/eglot.el (eglot-server-programs): Add fennel-ls
+       language server.  (bug#69685)
 
 2024-03-14  StrawberryTea  <look@strawberrytea.xyz>  (tiny change)
 
        (thing-at-point-hexadecimal-regexp): Extract regexps from...
        (number-at-point): ...here.  Use them in 'number-at-point'.
        (number): Add 'bounds-of-thing-at-point' property as
-       `forward-word' does not always return the right boundary,
-       e.g., in latex-mode buffers.  (Bug#69239)
+       `forward-word' does not always return the right boundary, e.g., in
+       latex-mode buffers.  (Bug#69239)
 
 2024-03-14  Noé Lopez  <noelopez@free.fr>
 
        variable to disable JavaScript in WebKit sessions.  (Bug#68604)
 
        * etc/NEWS:
-       * doc/emacs/misc.texi (Embedded Webkit Widgets): Document
-       the change.
+       * doc/emacs/misc.texi (Embedded Webkit Widgets): Document the
+       change.
 
 2024-03-14  Adam Porter  <adam@alphapapa.net>
 
-       * lisp/emacs-lisp/vtable.el (vtable-update-object): Fix.
-
-       The order of the arguments to 'seq-position' was wrong, and it did not
+       * lisp/emacs-lisp/vtable.el (vtable-update-object): Fix.  The
+       order of the arguments to 'seq-position' was wrong, and it did not
        compare the correct values.  (Bug#69664)
 
 2024-03-14  Raffael Stocker  <r.stocker@mnet-mail.de>
        (w32_wnd_proc, globals_of_w32fns, maybe_pass_notification):
        Register and manage session notifications in GUI Emacs.
        * src/w32console.c (initialize_w32_display, find_ime_window):
-       * src/w32xfns.c (drain_message_queue): Register notifications
-       and reset keyboard hook state in console Emacs.
-       * src/w32.c (term_ntproc): Un-register session notifications
-       when terminating.
+       * src/w32xfns.c (drain_message_queue): Register notifications and
+       reset keyboard hook state in console Emacs.
+       * src/w32.c (term_ntproc): Un-register session notifications when
+       terminating.
 
 2024-03-14  Po Lu  <luangruo@yahoo.com>
 
 
        Fix name of gnus-notification(s)-close; ignore argument
 
-       * lisp/gnus/gnus-notifications.el (gnus-notifications-close): Original
-       name was probably a typo.
+       * lisp/gnus/gnus-notifications.el (gnus-notifications-close):
+       Original name was probably a typo.
 
 2024-03-13  Po Lu  <luangruo@yahoo.com>
 
 
        Prevent freezes on macOS (bug#69561)
 
-       * src/nsterm.m (ns_select_1): Store pending input_events. Always call
-       [NSApp run].
+       * src/nsterm.m (ns_select_1): Store pending input_events.  Always
+       call [NSApp run].
 
 2024-03-13  Po Lu  <luangruo@yahoo.com>
 
        functions on those systems.
 
        * lisp/gnus/gnus-notifications.el (gnus-notifications-action)
-       (gnus-notification-close): Remove dismissed notifications from
-       the notification to message map.
-       (gnus-notifications-notify): Call android-notifications-notify
-       if possible.
+       (gnus-notification-close): Remove dismissed notifications from the
+       notification to message map.
+       (gnus-notifications-notify): Call android-notifications-notify if
+       possible.
 
        * src/androidselect.c (android_init_emacs_desktop_notification):
        Update accordingly.
 
 2024-03-12  Jeremy Bryant  <jb@jeremybryant.net>
 
-       * lisp/which-key.el (which-key--create-pages): Untabify.
-
-       * lisp/which-key.el (which-key--pad-column): Untabify.
+       * lisp/which-key.el (which-key--create-pages)
+       (which-key--pad-column): Untabify.
 
 2024-03-12  Jeremy Bryant  <jb@jeremybryant.net>
 
-       Use string-empty-p for readability.
-
-       * lisp/which-key.el (which-key--maybe-get-prefix-title):
-       Use string-empty-p for readability.
+       * lisp/which-key.el (which-key--maybe-get-prefix-title): Use
+       string-empty-p for readability.
 
 2024-03-12  Jeremy Bryant  <jb@jeremybryant.net>
 
-       Don't quote t
-
        * lisp/which-key.el (which-key--replace-in-repl-list-many):
        Don't quote t.
 
 2024-03-12  Jeremy Bryant  <jb@jeremybryant.net>
 
-       Use declare form instead of put for clarity
-
-       * lisp/which-key.el (which-key-add-keymap-based-replacements):
-       Use declare form instead of put property.
+       * lisp/which-key.el (which-key-add-keymap-based-replacements): Use
+       declare form instead of put property.
 
 2024-03-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        Try and avoid hardcoding lists of function types
 
-       * lisp/bind-key.el (bind-key--get-binding-description):
-       Show docstrings for compiled functions also.  Don't hardcode knowledge
+       * lisp/bind-key.el (bind-key--get-binding-description): Show
+       docstrings for compiled functions also.  Don't hardcode knowledge
        about various particular kinds of functions.
 
        * lisp/emacs-lisp/bytecomp.el (display-call-tree): Remove special
-       support for functions with a `byte-code` body since we never generate
-       that nowadays.  Don't hardcode knowledge
-       about various particular kinds of functions.
+       support for functions with a `byte-code' body since we never
+       generate that nowadays.  Don't hardcode knowledge about various
+       particular kinds of functions.
 
 2024-03-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        Cleanup some type predicates
 
-       Use the new `cl--define-built-in-type` to reduce the manually
-       maintained list of built-in type predicates.
-       Also tweak docstrings to use "supertype" rather than "super type",
-       since it seems to be what we use elsewhere.
+       Use the new `cl--define-built-in-type' to reduce the manually
+       maintained list of built-in type predicates.  Also tweak
+       docstrings to use "supertype" rather than "super type", since it
+       seems to be what we use elsewhere.
 
-       * lisp/subr.el (special-form-p): Remove redundant `fboundp` test.
-       (compiled-function-p): Don'Return nil for subrs that aren't functions.
+       * lisp/subr.el (special-form-p): Remove redundant `fboundp' test.
+       (compiled-function-p): Don't return nil for subrs that aren't
+       functions.
 
-       * lisp/emacs-lisp/cl-macs.el (type predicates): Trim down the list.
+       * lisp/emacs-lisp/cl-macs.el (type predicates): Trim down the
+       list.
 
        * lisp/emacs-lisp/cl-preloaded.el (cl--define-built-in-type):
        Register the corresponding predicate if applicable.
 
        cl-generic: Signal an error when a type specializer won't work
 
-       * lisp/emacs-lisp/cl-generic.el (cl--generic--unreachable-types): New var.
+       * lisp/emacs-lisp/cl-generic.el (cl--generic--unreachable-types):
+       New var.
        (cl-generic-generalizers :extra "typeof"): Use it to signal an
        error for those types we can't handle.
 
        `run-at-time' keeps `timer-list' list sorted by inserting each
        timer based on the timer value.  This means that
        `timer--time-less-p' needs is executed ~N*N/2 times for each N
-       pending messages.  This means that jsonrpc becomes unusable
-       for connections that generate a lot messages at the same time.
+       pending messages.  This means that jsonrpc becomes unusable for
+       connections that generate a lot messages at the same time.
 
        * lisp/jsonrpc.el (Version): Bump to 1.0.25.
        (jsonrpc--process-filter): Improve performance by activating
 
 2024-03-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       (comp-known-predicates): Fix overly optimistic `functionp`
+       (comp-known-predicates): Fix overly optimistic `functionp'
 
-       * lisp/emacs-lisp/comp.el (comp-known-predicates): `functionp` can also
-       be true for `cons` objects.
+       * lisp/emacs-lisp/comp.el (comp-known-predicates): `functionp' can
+       also be true for `cons' objects.
 
 2024-03-12  Po Lu  <luangruo@yahoo.com>
 
 
        (gnus-convert-old-newsrc): Remove ancient converters
 
-       * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Remove converters
-       from 2004 and before.
+       * lisp/gnus/gnus-start.el (gnus-convert-old-newsrc): Remove
+       converters from 2004 and before.
        * lisp/gnus/legacy-gnus-agent.el: Delete file.
 
 2024-03-12  Po Lu  <luangruo@yahoo.com>
        * src/android.h (struct android_emacs_service): New function.
 
        * src/androidselect.c (android_notifications_notify_1)
-       (Fandroid_notifications_notify): New parameter QCresident; save
-       it within notification lists.
+       (Fandroid_notifications_notify): New parameter QCresident; save it
+       within notification lists.
        (android_notification_deleted, android_notification_action):
-       Adjust for changes to the format of notification lists and
-       cancel non-resident notifications when an action is selected.
-       (syms_of_androidselect): <QCresident>: New symbol.
+       Adjust for changes to the format of notification lists and cancel
+       non-resident notifications when an action is selected.
+       (syms_of_androidselect) <QCresident>: New symbol.
 
 2024-03-12  Po Lu  <luangruo@yahoo.com>
 
 
        * src/androidvfs.c (java_string_class): Export.
 
-       * src/keyboard.c (kbd_buffer_get_event) <NOTIFICATION_EVENT>:
-       Call callback specified by the event.
+       * src/keyboard.c (kbd_buffer_get_event) <NOTIFICATION_EVENT>: Call
+       callback specified by the event.
 
-       * src/termhooks.h (enum event_kind) [HAVE_ANDROID]: New
-       enum NOTIFICATION_EVENT.
+       * src/termhooks.h (enum event_kind) [HAVE_ANDROID]: New enum
+       NOTIFICATION_EVENT.
 
 2024-03-11  Paul Eggert  <eggert@cs.ucla.edu>
 
        Change bare-symbol back to match intent
 
-       Also, attempt to document the intent better.
-       Problem reported by Alan Mackenzie (Bug#69684).
+       Also, attempt to document the intent better.  Problem reported by
+       Alan Mackenzie.
+
        * src/data.c (Fbare_symbol): Do not signal if the SYM is a symbol
        with position and symbols-with-pos-enabled is nil.  Instead,
        ignore symbols-with-pos-enabled, as that was the intent.
-       * test/src/data-tests.el (data-tests-bare-symbol):
-       New test, to help prevent this bug from reoccurring.
+       * test/src/data-tests.el (data-tests-bare-symbol): New test, to
+       help prevent this bug from reoccurring.  (Bug#69684)
 
 2024-03-11  Michael Heerdegen  <michael_heerdegen@web.de>
 
        Improve pp-emacs-lisp-code backquote form printing
 
-       * lisp/emacs-lisp/pp.el (pp--quoted-or-unquoted-form-p): New helper
-       function.
-       (pp--insert-lisp): Take care of quoted, backquoted and
-       unquoted expressions; print using an recursive call.
-       (pp--format-list): Exclude more cases from printing as a function call
-       by default.  Print lists whose second-last element is an (un)quoting
-       symbol using dotted list syntax; e.g. (a b . ,c) instead of (a b \, c).
+       * lisp/emacs-lisp/pp.el (pp--quoted-or-unquoted-form-p): New
+       helper function.
+       (pp--insert-lisp): Take care of quoted, backquoted and unquoted
+       expressions; print using an recursive call.
+       (pp--format-list): Exclude more cases from printing as a function
+       call by default.  Print lists whose second-last element is an
+       (un)quoting symbol using dotted list syntax; e.g. (a b . ,c)
+       instead of (a b \, c).
 
 2024-03-11  Michael Heerdegen  <michael_heerdegen@web.de>
 
        Fix pp-emacs-lisp-code printing of symbols
 
-       * lisp/emacs-lisp/pp.el (pp--insert-lisp): Print symbols
-       readably (bug#69168).
+       * lisp/emacs-lisp/pp.el (pp--insert-lisp): Print symbols readably.
+       (bug#69168)
 
 2024-03-11  Petteri Hintsanen  <petterih@iki.fi>  (tiny change)
 
        (bindat--unpack-item): Sanitize vector length
 
-
-       * lisp/emacs-lisp/bindat.el (bindat--unpack-item): Sanitize vector length
+       * lisp/emacs-lisp/bindat.el (bindat--unpack-item): Sanitize vector
+       length.
 
 2024-03-10  Andreas Schwab  <schwab@linux-m68k.org>
 
 
 2024-03-10  Jim Porter  <jporterbugs@gmail.com>
 
-       Let 'browse-url-interactive-arg' return more values for NEW-WINDOW-FLAG
+       Let 'browse-url-interactive-arg' return more values for
+       NEW-WINDOW-FLAG.
 
-       Previously it always returned t or nil for NEW-WINDOW-FLAG, but now it
-       can return the actual prefix arg when appropriate.  This lets functions
-       for 'browse-url-browser-function' consult it and do more things than
-       just open a new window or not (for example, you could use "C--" as the
-       prefix arg to do something special in a custom function).
+       Previously it always returned t or nil for NEW-WINDOW-FLAG, but
+       now it can return the actual prefix arg when appropriate.  This
+       lets functions for 'browse-url-browser-function' consult it and do
+       more things than just open a new window or not (for example, you
+       could use "C--" as the prefix arg to do something special in a
+       custom function).
 
-       * lisp/net/browse-url.el (browse-url-interactive-arg): Use 'xor' to
-       adjust the value of 'current-prefix-arg'.
+       * lisp/net/browse-url.el (browse-url-interactive-arg): Use 'xor'
+       to adjust the value of 'current-prefix-arg'.
        (browse-url): Update docstring.
 
 2024-03-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       syncdoc-type-hierarchy.el: Sort and remove `comp` dependency
+       syncdoc-type-hierarchy.el: Sort and remove `comp' dependency
 
-       * admin/syncdoc-type-hierarchy.el: Delay loading `org-table` so as
+       * admin/syncdoc-type-hierarchy.el: Delay loading `org-table' so as
        not to "pollute" the table with Org-specific types.
        (syncdoc-all-types): Sort the types topologically from the root.
-       (syncdoc-hierarchy): Use `cl--class-parents` instead if
-       `comp--direct-supertypes` so we don't depend on `comp-cstr`.
-       (syncdoc-make-type-table): Sort the table so supertypes always come before
-       their subtypes.
-       (syncdoc-make-type-table): Require `org-table` here.
+       (syncdoc-hierarchy): Use `cl--class-parents' instead if
+       `comp--direct-supertypes' so we don't depend on `comp-cstr'.
+       (syncdoc-make-type-table): Sort the table so supertypes always
+       come before their subtypes.
+       (syncdoc-make-type-table): Require `org-table' here.
 
        * doc/lispref/elisp_type_hierarchy.jpg:
        * doc/lispref/elisp_type_hierarchy.txt: Refresh.
 
 2024-03-10  Tim Ruffing  <crypto@timruffing.de>
 
-       * src/keyboard.c (read_key_sequence): Remove MSVC compatibility hack
+       * src/keyboard.c (read_key_sequence): Remove MSVC compatibility
+       hack.
 
 2024-03-10  Tim Ruffing  <crypto@timruffing.de>
            Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       * lisp/calc/calc-prog.el: Switch to new method of detecting end of kbd macro
+       * lisp/calc/calc-prog.el: Switch to new method of detecting end of
+       kbd macro.
 
        'read-char' will no longer return -1 as of
-       ac82baea1c41ec974ad49f2861ae6c06bda2b4ed. This switches to a cleaner
-       method of detecting whether the end of a keyboard macro has been
-       reached.
+       ac82baea1c41ec974ad49f2861ae6c06bda2b4ed.  This switches to a
+       cleaner method of detecting whether the end of a keyboard macro
+       has been reached.
 
        * lisp/calc/calc-prog.el (calc--at-end-of-kmacro-p): New function.
        (calc-kbd-skip-to-else-if): Use the function.
        Remove workarounds for solved 'read-event' bug
 
        * lisp/subr.el (read-char-choice-with-read-key):
-       * lisp/net/dbus.el (dbus-call-method):
-       Remove workarounds for the bug fixed in the previous commit
+       * lisp/net/dbus.el (dbus-call-method): Remove workarounds for the
+       bug fixed in the previous commit
        ac82baea1c41ec974ad49f2861ae6c06bda2b4ed, where 'read-event',
        'read-char' and 'read-char-exclusively' could return wrongly -1.
        In the case of lisp/dbus.el, this reverts commit
 
 2024-03-10  Tim Ruffing  <crypto@timruffing.de>
 
-       Continue reading in 'read-event' etc. at the end of a keyboard macro
+       Continue reading in 'read-event' etc. at the end of a keyboard
+       macro
 
        This fixes a bug that could make 'read-event', 'read-char', and
-       'read-char-exclusive' erroneously return -1, an internal magic return
-       value of 'read_char' leaked from C to lisp. Instead of returning -1, the
-       aforementioned lisp functions now transparently continue reading
-       available input (e.g., from the keyboard) when reaching the end of a
-       keyboard macro.
-
-       * src/keyboard.c (read_char, read_key_sequence): Move handling
-       of the end of a keyboard macro from 'read_char' to its caller
+       'read-char-exclusive' erroneously return -1, an internal magic
+       return value of 'read_char' leaked from C to lisp.  Instead of
+       returning -1, the aforementioned lisp functions now transparently
+       continue reading available input (e.g., from the keyboard) when
+       reaching the end of a keyboard macro.
+
+       * src/keyboard.c (read_char, read_key_sequence): Move handling of
+       the end of a keyboard macro from 'read_char' to its caller
        'read_key_sequence', which is the only caller that can
        meaningfully deal with this case.
-       * src/macros.c (Fexecute_kbd_macro): Document how the end of keyboard
-       macro is processed.
+       * src/macros.c (Fexecute_kbd_macro): Document how the end of
+       keyboard macro is processed.
        * etc/NEWS: Announce this change.
 
 2024-03-10  Tim Ruffing  <crypto@timruffing.de>
        * src/keyboard.c (requeued_events_pending_p): New function
 
        * src/keyboard.c, src/keyboard.h (requeued_events_pending_p): Add
-       function 'requeued_events_pending_p' (whose name was made available in
-       the previous commit). As opposed to the previous function with the same
-       name, the new function covers both command and other events.
+       function 'requeued_events_pending_p' (whose name was made
+       available in the previous commit).  As opposed to the previous
+       function with the same name, the new function covers both command
+       and other events.
        * src/keyboard.c (Finput_pending_p): Use the new function.
 
 2024-03-10  Tim Ruffing  <crypto@timruffing.de>
 
-       * src/keyboard.c (requeued_events_pending_p): Improve name and fix comment
+       * src/keyboard.c (requeued_events_pending_p): Improve name and fix
+       comment.
 
-       * src/keyboard.c, src/keyboard.h (requeued_events_pending_p): Rename to
-       'requeued_command_events_pending_p' to clarify that the function covers
-       only command events. Fix wrong comment that claimed that the function
-       was unused.
-       * src/process.c (wait_reading_process_output): Update caller to use the
-       new name.
+       * src/keyboard.c (requeued_events_pending_p):
+       * src/keyboard.h (requeued_events_pending_p): Rename to
+       'requeued_command_events_pending_p' to clarify that the function
+       covers only command events.  Fix wrong comment that claimed that
+       the function was unused.
+       * src/process.c (wait_reading_process_output): Update caller to
+       use the new name.
 
 2024-03-10  Tim Ruffing  <crypto@timruffing.de>
 
        Extract check for end of macro to function
 
        * src/macros.h (at_end_of_macro_p):
-       * src/macros.c (at_end_of_macro_p):
-       New function.
+       * src/macros.c (at_end_of_macro_p): New function.
        * src/keyboard.c (read_char): Use the new function.
 
 2024-03-10  F. Jason Park  <jp@neverwas.me>
 
        * lisp/erc/erc-stamp.el (erc-stamp--lr-date-on-pre-modify): Remove
        disruptive assertion for now.
-       (erc-stamp--time-as-day): Attempt to fix date being rewound by a whole
-       day when daylight saving time is in effect.  Do this by forcing the
-       `dst' slot of the `decoded-time' object to -1 and the `zone' to nil.
+       (erc-stamp--time-as-day): Attempt to fix date being rewound by a
+       whole day when daylight saving time is in effect.  Do this by
+       forcing the `dst' slot of the `decoded-time' object to -1 and the
+       `zone' to nil.
 
 2024-03-10  F. Moukayed  <smfadi+emacs@gmail.com>  (tiny change)
 
        Redefine erc-spoiler-face to indicate revealed text
 
-       * lisp/erc/erc-goodies.el (erc-spoiler-face): Redefine role and redo
-       definition to inherit from `erc-control-default-face'.
-       (erc-controls-propertize): Include `cursor-face' in the applied hover
-       properties for spoiler text, and ensure they aren't clobbered by other
-       built-in modules, like `button'.
-       (Bug#69597)
+       * lisp/erc/erc-goodies.el (erc-spoiler-face): Redefine role and
+       redo definition to inherit from `erc-control-default-face'.
+       (erc-controls-propertize): Include `cursor-face' in the applied
+       hover properties for spoiler text, and ensure they aren't
+       clobbered by other built-in modules, like `button'.  (Bug#69597)
 
 2024-03-10  F. Jason Park  <jp@neverwas.me>
 
        * lisp/erc/erc-button.el (erc-button-remove-old-buttons): Restore
        original `mouse-face' values in areas marked as important after
        clobbering.
-       * lisp/erc/erc.el (erc--reserve-important-text-props): New function.
+       * lisp/erc/erc.el (erc--reserve-important-text-props): New
+       function.
        (erc--restore-important-text-props): New function.
-       * test/lisp/erc/erc-tests.el (erc--restore-important-text-props): New
-       test.
-       (Bug#69597)
+       * test/lisp/erc/erc-tests.el (erc--restore-important-text-props):
+       New test.  (Bug#69597)
 
 2024-03-10  F. Jason Park  <jp@neverwas.me>
 
        Leverage inverse-video for erc-inverse-face
 
-       * lisp/erc/erc-goodies.el (erc-inverse-face): Specify face attribute
-       `:inverse-video' (née :reverse-video) to swap foreground and
-       background colors over affected intervals, as per
+       * lisp/erc/erc-goodies.el (erc-inverse-face): Specify face
+       attribute `:inverse-video' (née :reverse-video) to swap foreground
+       and background colors over affected intervals, as per
        https://modern.ircdocs.horse/formatting#reverse-color.
        (erc-control-default-fg erc-control-default-bg): New faces for IRC
        color-code number 99.  Ignore the ERC convention of prefixing
        control-code-derived faces with "fg:" and "bg:" because it doesn't
-       comport with modern sensibilities, which demand identifiers normally
-       be namespaced.
-       (erc-get-bg-color-face, erc-get-fg-color-face): Return new, dedicated
-       faces instead of `default', and don't nest them in a list.
+       comport with modern sensibilities, which demand identifiers
+       normally be namespaced.
+       (erc-get-bg-color-face, erc-get-fg-color-face): Return new,
+       dedicated faces instead of `default', and don't nest them in a
+       list.
        * test/lisp/erc/erc-goodies-tests.el
-       (erc-controls-highlight--inverse): Redo completely, asserting behavior
-       described in the spec linked to above.
-       (erc-controls-highlight--spoilers): New test based on the body of the
-       old `erc-controls-highlight--inverse', except without shadowing
-       `erc-insert-modify-hook' with an unrealistic, idealized value.  Adjust
-       expected buffer state to reflect the new role of
+       (erc-controls-highlight--inverse): Redo completely, asserting
+       behavior described in the spec linked to above.
+       (erc-controls-highlight--spoilers): New test based on the body of
+       the old `erc-controls-highlight--inverse', except without
+       shadowing `erc-insert-modify-hook' with an unrealistic, idealized
+       value.  Adjust expected buffer state to reflect the new role of
        `erc-spoiler-face'.  (Bug#69597)
 
 2024-03-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 2024-03-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       (eglot-server-programs): Comment and whitespace only change
-
        * lisp/progmodes/eglot.el (eglot-server-programs): Add comment.
        Make the definition fit into 80 columns.
 
 
        * lisp/info-look.el (perl-mode): Simplify.
 
-       * lisp/cedet/semantic/symref/grep.el (semantic-symref-filepattern-alist):
-       Don't bother listing TS alternatives.
+       * lisp/cedet/semantic/symref/grep.el
+       (semantic-symref-filepattern-alist): Don't bother listing TS
+       alternatives.
 
        * lisp/emulation/viper.el (viper-vi-state-mode-list): Don't bother
        listing CPerl alternative.
 
-       * lisp/progmodes/gud.el (gud-tooltip-activate-mouse-motions-if-enabled):
-       Take into account the modes hierarchy.
+       * lisp/progmodes/gud.el
+       (gud-tooltip-activate-mouse-motions-if-enabled): Take into account
+       the modes hierarchy.
        (gud-tooltip-modes): Don't bother listing TS alternatives.
 
        * .dir-locals.el (c-ts-mode): Simplify.
 
        Add non-TS modes as extra parent of TS modes (bug#68246)
 
-       Record the fact that TS modes are alternatives to the non-TS
-       modes using the new `derived-mode-add-parents` functionality.
-       Do the same for long standing similar issues with CPerl-mode.
+       Record the fact that TS modes are alternatives to the non-TS modes
+       using the new `derived-mode-add-parents' functionality.  Do the
+       same for long standing similar issues with CPerl-mode.
 
        * lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode):
        * lisp/textmodes/toml-ts-mode.el (toml-ts-mode):
        * lisp/textmodes/html-ts-mode.el (html-ts-mode):
        * lisp/textmodes/css-mode.el (css-ts-mode):
-       * lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode, tsx-ts-mode):
+       * lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode)
+       (tsx-ts-mode):
        * lisp/progmodes/sh-script.el (bash-ts-mode):
        * lisp/progmodes/rust-ts-mode.el (rust-ts-mode):
        * lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode):
        * lisp/progmodes/dockerfile-ts-mode.el (dockerfile-ts-mode):
        * lisp/progmodes/csharp-mode.el (csharp-ts-mode):
        * lisp/progmodes/cmake-ts-mode.el (cmake-ts-mode):
-       * lisp/progmodes/c-ts-mode.el (c-ts-mode, c++-ts-mode):
-       Add non-TS mode as extra parent.
+       * lisp/progmodes/c-ts-mode.el (c-ts-mode, c++-ts-mode): Add non-TS
+       mode as extra parent.
 
-       * lisp/progmodes/cperl-mode.el (cperl-mode): Add `perl-mode` as
+       * lisp/progmodes/cperl-mode.el (cperl-mode): Add `perl-mode' as
        extra parent.
 
 2024-03-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        (dir-locals-collect-variables): Avoid spurious safety warnings
 
-       * lisp/files.el (dir-locals-collect-variables): Silence warnings for
-       extra parents' variables.
+       * lisp/files.el (dir-locals-collect-variables): Silence warnings
+       for extra parents' variables.
 
 2024-03-09  Andrea Corallo  <acorallo@gnu.org>
 
        Run 'syncdoc-update-type-hierarchy'.
 
-               * doc/lispref/elisp_type_hierarchy.jpg: Update.
-               * doc/lispref/elisp_type_hierarchy.txt: Likewise.
+       * doc/lispref/elisp_type_hierarchy.jpg: Update.
+       * doc/lispref/elisp_type_hierarchy.txt: Likewise.
 
 2024-03-09  Andrea Corallo  <acorallo@gnu.org>
 
-       * 'syncdoc-type-hierarchy.el' update due to recent changes
+       Update 'syncdoc-type-hierarchy.el' after recent changes
 
        * admin/syncdoc-type-hierarchy.el (syncdoc-all-types): Update.
 
        Enable stack overflow recovery on Android
 
        * src/sysdep.c (handle_sigsegv): Return after restoring the
-       original signal handler, which should proceed to call debuggerd
-       to generate a tombstone.
-       (init_sigsegv): Save the original signal handler on Android, to
-       be restored after a signal is received.
+       original signal handler, which should proceed to call debuggerd to
+       generate a tombstone.
+       (init_sigsegv): Save the original signal handler on Android, to be
+       restored after a signal is received.
        (init_signals): Call init_sigsegv on Android.
 
 2024-03-09  Eli Zaretskii  <eliz@gnu.org>
        Do interactive mode tagging for locate.el
 
        * lisp/locate.el (locate-tags, locate-find-directory)
-       (locate-find-directory-other-window): Do interactive mode
-       tagging.  (Bug#69619)
+       (locate-find-directory-other-window): Do interactive mode tagging.
+       (Bug#69619)
 
 2024-03-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        (eieio--generic-subclass-specializers): Autoload class
 
-       * lisp/emacs-lisp/eieio-core.el (eieio--generic-subclass-specializers):
-       Don't forget to handle autoloaded classes.
+       * lisp/emacs-lisp/eieio-core.el
+       (eieio--generic-subclass-specializers): Don't forget to handle
+       autoloaded classes.
 
 2024-03-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        EIEIO: Fix regression (bug#69631)
 
        Not sure why earlier tests did not catch it, but there are more
-       places where we bump into problems because `eieio--class-precedence-list`
-       now returns also non-EIEIO classes.
+       places where we bump into problems because
+       `eieio--class-precedence-list' now returns also non-EIEIO classes.
 
        * lisp/obsolete/eieio-compat.el
        (eieio--generic-static-object-generalizer):
 
 2024-03-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       eieio-core.el: Try and fix bug#69631
-
        * lisp/emacs-lisp/eieio-core.el (eieio--class-precedence-c3)
        (eieio--class-precedence-dfs, eieio--class-precedence-bfs): Use
-       `cl--class-parents` since some of the parents aren't EIEIO classes.
+       `cl--class-parents' since some of the parents aren't EIEIO
+       classes.  (bug#69631)
 
 2024-03-08  Andrea Corallo  <acorallo@gnu.org>
 
-       * Fix `capitalize` entry in `comp-known-type-specifiers` (bug#69631)
+       Fix `capitalize' entry in `comp-known-type-specifiers'
 
        * lisp/emacs-lisp/comp-common.el (comp-known-type-specifiers): Fix
-       'capitalize' entry.
+       'capitalize' entry.  (bug#69631)
 
 2024-03-08  Po Lu  <luangruo@yahoo.com>
 
-       Update android_wc_lookup_string
-
        * src/android.c (android_wc_lookup_string): Don't clear compose
        state upon modifier key depress.
 
        Simplify type hierarchy operations
 
        Now that built-in types have classes that describe their
-       relationships exactly like struct/eieio/oclosure classes,
-       we can the code that navigates that DAG.
+       relationships exactly like struct/eieio/oclosure classes, we can
+       the code that navigates that DAG.
 
        * lisp/emacs-lisp/cl-generic.el (cl--generic-struct-tag): Move to
-       `eieio-core.el`.
+       `eieio-core.el'.
        (cl--generic-type-specializers): Rename from
-       `cl--generic-struct-specializers`.  Make it work for any class.
-       (cl--generic-typeof-generalizer, cl--generic-oclosure-generalizer): Use it.
+       `cl--generic-struct-specializers'.  Make it work for any class.
+       (cl--generic-typeof-generalizer)
+       (cl--generic-oclosure-generalizer): Use it.
        (cl--generic-struct-generalizer): Delete generalizer.
        (cl-generic-generalizers :extra "cl-struct"): Delete method.
        (prefill 0 cl--generic-generalizer): Move to after the typeof.
-       (cl-generic-generalizers :extra "typeof"): Rewrite to use
-       classes rather than `cl--all-builtin-types`.
+       (cl-generic-generalizers :extra "typeof"): Rewrite to use classes
+       rather than `cl--all-builtin-types'.
        (cl-generic--oclosure-specializers): Delete function.
 
        * lisp/emacs-lisp/cl-preloaded.el (cl--direct-supertypes-of-type)
        Delete constant.
        (comp--cl-class-hierarchy): Simplify.
        (comp--compute-typeof-types): Simplify now that
-       `comp--cl-class-hierarchy` and `comp--all-classes` work for built-in
-       types as well.
-       (comp--direct-supertypes): Just use `cl--class-parents`.
-       (comp-supertypes): Simplify since typeof-types should now be complete.
-
-       * lisp/emacs-lisp/eieio-core.el (eieio-defclass-autoload):
-       Use `superclasses` argument, so we can find parents before it's loaded.
-       (eieio--class-precedence-c3, eieio--class-precedence-dfs):
-       Don't add a `eieio-default-superclass` parent any more.
+       `comp--cl-class-hierarchy' and `comp--all-classes' work for
+       built-in types as well.
+       (comp--direct-supertypes): Just use `cl--class-parents'.
+       (comp-supertypes): Simplify since typeof-types should now be
+       complete.
+
+       * lisp/emacs-lisp/eieio-core.el (eieio-defclass-autoload): Use
+       `superclasses' argument, so we can find parents before it's
+       loaded.
+       (eieio--class-precedence-c3, eieio--class-precedence-dfs): Don't
+       add a `eieio-default-superclass' parent any more.
        (eieio--class/struct-parents): Delete function.
-       (eieio--class-precedence-bfs): Use `eieio--class-parents` instead.
-       Don't stop when reaching `eieio-default-superclass`.
-       (cl--generic-struct-tag): Move from `cl-generic.el`.
+       (eieio--class-precedence-bfs): Use `eieio--class-parents' instead.
+       Don't stop when reaching `eieio-default-superclass'.
+       (cl--generic-struct-tag): Move from `cl-generic.el'.
 
 2024-03-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        eieio-core.el: Always put a parent in the parents of a class
 
-       * lisp/emacs-lisp/eieio-core.el (eieio-defclass-internal):
-       Always put a parent in the `parents` slot of the class.
+       * lisp/emacs-lisp/eieio-core.el (eieio-defclass-internal): Always
+       put a parent in the `parents' slot of the class.
 
        * lisp/emacs-lisp/eieio.el (eieio-class-parents): Remove the
-       `eieio-default-superclass` if it's the only parent.
+       `eieio-default-superclass' if it's the only parent.
        (child-of-class-p): Handle all classes in the parents.
        (eieio-default-superclass): Adjust docstring.
 
 
        * lisp/emacs-lisp/cl-preloaded.el (cl--struct-register-child):
        Register child only in struct parents.
-       (cl-struct-define): Put the "type" as parent of parentless :type structs.
-       Copy slots only from struct parent classes.
-       (cl-structure-object): Set (manually) its parent to `record`
-       and remove assertion that it has no parents.
+       (cl-struct-define): Put the "type" as parent of parentless :type
+       structs.  Copy slots only from struct parent classes.
+       (cl-structure-object): Set (manually) its parent to `record' and
+       remove assertion that it has no parents.
 
 2024-03-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       * lisp/emacs-lisp/oclosure.el (oclosure): Make it a subtype of `function`
+       * lisp/emacs-lisp/oclosure.el (oclosure): Make it a subtype of
+       `function'.
 
 2024-03-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        (all built-in types): "Define" them with it.
        (cl--builtin-type-p): New aux function.
        (cl--struct-name-p): Use it.
-       (cl--direct-supertypes-of-type, cl--typeof-types, cl--all-builtin-types):
-       Move the definitions to after the built-in classes are defined,
-       and rewrite to make use of those classes.
-
-       * lisp/emacs-lisp/cl-extra.el (cl-describe-type):
-       Accept two (unused) optional args, for use with `describe-symbol-backends`.
-       (describe-symbol-backends): Simplify accordingly and
-       add ourselves at the end.
+       (cl--direct-supertypes-of-type, cl--typeof-types)
+       (cl--all-builtin-types): Move the definitions to after the
+       built-in classes are defined, and rewrite to make use of those
+       classes.
+
+       * lisp/emacs-lisp/cl-extra.el (cl-describe-type): Accept two
+       (unused) optional args, for use with `describe-symbol-backends'.
+       (describe-symbol-backends): Simplify accordingly and add ourselves
+       at the end.
        (cl--class-children): New function.
-       (cl--describe-class): Use it.  Also don't show a silly empty list of slots
-       for the built-in types.
+       (cl--describe-class): Use it.  Also don't show a silly empty list
+       of slots for the built-in types.
 
 2024-03-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        comp-cstr.el: Fix a minor error and prepare for upcoming changes
 
-       * lisp/emacs-lisp/comp-cstr.el (comp--cl-class-hierarchy): Add `atom`
-       and `t` only to those types whose "allparents" is clearly not complete.
+       * lisp/emacs-lisp/comp-cstr.el (comp--cl-class-hierarchy): Add
+       `atom' and `t' only to those types whose "allparents" is clearly
+       not complete.
        (comp--compute--pred-type-h): Store the cstr rather than the type
-       in the hash-table, as expected by `comp--pred-to-cstr`.
+       in the hash-table, as expected by `comp--pred-to-cstr'.
 
 2024-03-08  Po Lu  <luangruo@yahoo.com>
 
        enable invoking features they protect from code running inside
        Emacs.
 
-2024-03-08  Justin Burkett  <justin@burkett.cc>
-
-       Merge pull request #367 from tarsiiformes/long-gone
-
 2024-03-08  Jonas Bernoulli  <jonas@bernoul.li>
 
        Remove reference to long gone which-key-manual-update
 
-       * lisp/which-key.el (which-key--paging-functions): Remove reference to
-       which-key-manual-update.
+       * lisp/which-key.el (which-key--paging-functions): Remove
+       reference to which-key-manual-update.
 
-       This commands was remove in 42a25055163141165aa0269dbca69735e704825c.
+       This command was removed in
+       42a25055163141165aa0269dbca69735e704825c.
 
 2024-03-07  Jim Porter  <jporterbugs@gmail.com>
 
        Support expanding Eshell globs for remote file names
 
-       * lisp/eshell/em-glob.el (eshell-glob-chars-regexp): New function...
+       * lisp/eshell/em-glob.el (eshell-glob-chars-regexp): New
+       function...
        (eshell-glob-regexp): ... use it.
        (eshell-glob-p): New function...
        (eshell-glob-convert): ... use it, and return the deepest start
        (em-glob-test/convert/current-start-directory)
        (em-glob-test/convert/relative-start-directory)
        (em-glob-test/convert/absolute-start-directory)
-       (em-glob-test/convert/remote-start-directory): New tests (bug#69592).
+       (em-glob-test/convert/remote-start-directory): New tests.
+       (bug#69592)
 
 2024-03-07  Jeremy Bryant  <jb@jeremybryant.net>
 
-       Remove unnecessary eval-when-compile
-
        * lisp/which-key.el (which-key--ignore-non-evil-keys-regexp):
        Remove unnecessary eval-when-compile in regexp-opt.
 
 2024-03-07  Jeremy Bryant  <jb@jeremybryant.net>
 
-       Replace internet link by Info node
-
-       * lisp/which-key.el (which-key-hide-alt-key-translations):
-       Replace internet link by Info node.
+       * lisp/which-key.el (which-key-hide-alt-key-translations): Replace
+       internet link by Info node.
 
 2024-03-07  Justin Burkett  <justin@burkett.cc>
 
-       Sharp quote which-key-sort-order default.
+       * lisp/which-key.el (which-key-sort-order): Sharp quote
+       which-key-sort-order default.
 
 2024-03-07  Mattias Engdegård  <mattiase@acm.org>
 
 
        Single string literal in body is return value only, not doc string
 
-       A function or macro body consisting of a single string literal now only
-       uses it as a return value.  Previously, it had the dual uses as return
-       value and doc string, which was never what the programmer wanted and
-       had some inconvenient consequences (bug#69387).
+       A function or macro body consisting of a single string literal now
+       only uses it as a return value.  Previously, it had the dual uses
+       as return value and doc string, which was never what the
+       programmer wanted and had some inconvenient consequences
+       (bug#69387).
 
-       This change applies to `lambda`, `defun`, `defsubst` and `defmacro`
-       forms; most other defining forms already worked in the sensible way.
+       This change applies to `lambda', `defun', `defsubst' and
+       `defmacro' forms; most other defining forms already worked in the
+       sensible way.
 
-       * lisp/emacs-lisp/bytecomp.el (byte-compile-lambda):
-       Don't use a lone string literal as doc string.
+       * lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): Don't use a
+       lone string literal as doc string.
        * test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-defun.el
        (foo): Update docstring warning test.
        * doc/lispref/functions.texi (Function Documentation): Update.
 
 2024-03-07  Juri Linkov  <juri@linkov.net>
 
-       * lisp/follow.el: Put property 'isearch-scroll' on 'follow-recenter'.
+       * lisp/follow.el: Put property 'isearch-scroll' on
+       'follow-recenter'.
 
 2024-03-06  Jim Porter  <jporterbugs@gmail.com>
 
-       When navigating through history in EWW, don't keep adding to 'eww-history'
+       When navigating through history in EWW, don't keep adding to
+       'eww-history'
 
        This resolves an issue where navigating back and then forward kept
-       adding new history entries so you could never hit the "end" (bug#69232).
+       adding new history entries so you could never hit the "end".
 
-       * lisp/net/eww.el (eww-before-browse-history-function): New option.
+       * lisp/net/eww.el (eww-before-browse-history-function): New
+       option.
        (eww-history-position): Add docstring.
-       (eww-mode-map, eww-context-menu): Use correct predicates for when to
-       enable back/forward.
+       (eww-mode-map, eww-context-menu): Use correct predicates for when
+       to enable back/forward.
        (eww-save-history): Save history entry in its original place when
        viewing a historical page.
        (eww--before-browse): New function...
        'eww-save-history'.
        (eww-forward-url): Set 'eww-history-position' directly, since
        'eww-save-history' no longer adds a new entry in this case.
-       (eww-delete-future-history, eww-clone-previous-history): New functions.
+       (eww-delete-future-history, eww-clone-previous-history): New
+       functions.  (bug#69232)
 
        * test/lisp/net/eww-tests.el: New file.
 
 
        Tramp fixes after running regression tests on Android
 
-       * lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection):
-       Unset environment variable PS2.
+       * lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection): Unset
+       environment variable PS2.
 
-       * lisp/net/tramp-androidsu.el (tramp-default-host-alist):
-       Don't add an entry; `tramp-default-host' is set properly.
+       * lisp/net/tramp-androidsu.el (tramp-default-host-alist): Don't
+       add an entry; `tramp-default-host' is set properly.
        (tramp-androidsu-maybe-open-connection): Don't set connection
        property "remote-namespace" to nil, this is the default anyway.
        Don't set connection property "remote-path", we use
        connection-local values instead.  Unset environment variable PS2.
        Dump shell options after setting all of them.
-       (tramp-androidsu-handle-make-process): Don't use hard-coded user "root".
+       (tramp-androidsu-handle-make-process): Don't use hard-coded user
+       "root".
        (tramp-androidsu-connection-local-default-variables): New defvar.
        Add it to connection-local profiles.
 
        * doc/lispref/Makefile.in (auxfiles)
        ($(buildinfodir)/elisp_type_hierarchy.txt)
        ($(buildinfodir)/elisp_type_hierarchy.jpg): Update.
-       * admin/syncdoc-type-hierarchy.el (syncdoc-update-type-hierarchy0): Likewise.
+       * admin/syncdoc-type-hierarchy.el
+       (syncdoc-update-type-hierarchy0): Likewise.
        * Makefile.in (install-info, uninstall): Likewise.
 
 2024-03-06  Andrea Corallo  <acorallo@gnu.org>
 
 2024-03-06  Andrea Corallo  <acorallo@gnu.org>
 
-       Update syncdoc to dump all preloaded type hierarchy
+       Update syncdoc to dump all preloaded type hierarchy
 
        * admin/syncdoc-type-hierarchy.el (syncdoc-file)
        (syncdoc-emacs-repo-dir): New constants.
 
        Don't report files from read-only adb partitions as writable
 
-       * lisp/net/tramp-adb.el (tramp-adb-handle-file-writable-p):
-       Ignore the file-attributes cache, since file mode is not a
-       reliable indicator of writability.
+       * lisp/net/tramp-adb.el (tramp-adb-handle-file-writable-p): Ignore
+       the file-attributes cache, since file mode is not a reliable
+       indicator of writability.
 
 2024-03-05  Vincenzo Pupillo  <v.pupillo@gmail.com>
 
-       * Makefile.in (install-info): Fix target (bug#69569).
+       * Makefile.in (install-info): Fix target.  (bug#69569)
 
 2024-03-05  Juri Linkov  <juri@linkov.net>
 
-       * lisp/tab-bar.el (tab-bar-tab-post-select-functions): New hook (bug#69093).
-
-       (tab-bar-select-tab): Call tab-bar-tab-post-select-functions at the end.
+       * lisp/tab-bar.el (tab-bar-tab-post-select-functions): New hook.
+       (bug#69093)
+       (tab-bar-select-tab): Call tab-bar-tab-post-select-functions at
+       the end.
 
 2024-03-05  Juri Linkov  <juri@linkov.net>
 
        text property to '(image-context-menu)'.
 
        * lisp/image.el (image-context-menu): New function.
-       (put-image): Set context-menu-functions overlay property
-       to '(image-context-menu)'.
+       (put-image): Set context-menu-functions overlay property to
+       '(image-context-menu)'.
        (insert-image, insert-sliced-image): Set context-menu-functions
        text property to '(image-context-menu)'.
 
 
 2024-03-05  Juri Linkov  <juri@linkov.net>
 
-       * lisp/net/dictionary.el: More fixes for dictionary-new-matching (bug#69312)
+       More fixes for dictionary-new-matching.
 
-       (dictionary-new-matching): Change the order of standard calls
-       to be the same as in 'dictionary-new-search'.
-       Use new function 'dictionary-new-matching-internal'.
+       * lisp/net/dictionary.el (dictionary-new-matching): Change the
+       order of standard calls to be the same as in
+       'dictionary-new-search'.  Use new function
+       'dictionary-new-matching-internal'.
        (dictionary-new-matching-internal): New function based on
-       'dictionary-new-search-internal'.
+       'dictionary-new-search-internal'.  (bug#69312)
 
 2024-03-05  Andrea Corallo  <acorallo@gnu.org>
 
        * Makefile.in (uninstall): Clean-up type_hierarchy* files.
 
-       * Makefile.in (install-info): Install type_hierarchy* files as well.
+       * Makefile.in (install-info): Install type_hierarchy* files as
+       well.
 
 2024-03-05  Andrea Corallo  <acorallo@gnu.org>
 
-       Copy type hierarchy representation to the info dir
+       Copy type hierarchy representation to the info dir
 
        * doc/lispref/Makefile.in (auxfiles)
        ($(buildinfodir)/type_hierarchy.txt)
 
        disass.el (disassemble-1): Minor simplification
 
-       * lisp/emacs-lisp/disass.el (disassemble-1): Remove code for functions
-       of the form (lambda ARGS (byte-code ...)) which we don't use any
-       more nowadays.
+       * lisp/emacs-lisp/disass.el (disassemble-1): Remove code for
+       functions of the form (lambda ARGS (byte-code ...)) which we don't
+       use any more nowadays.
 
 2024-03-05  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 
        * lisp/emacs-lisp/cl-preloaded.el (cl--direct-supertypes-of-type):
        Fix some left over issues:
-       - Remove redundant `number-or-marker` from `marker`s parents.
-       - Add `function` to the types, since it was missing.
+       - Remove redundant `number-or-marker' from `marker's parents.
+       - Add `function' to the types, since it was missing.
        (cl--typeof-types): Add a warning for missing type info.
 
-       * admin/syncdoc-type-hierarchy.el (syncdoc-hierarchy): Fix parent of
-       `oclosure`.
+       * admin/syncdoc-type-hierarchy.el (syncdoc-hierarchy): Fix parent
+       of `oclosure'.
 
        * doc/lispref/type_hierarchy.txt:
        * doc/lispref/type_hierarchy.jpg: Update.
 
        Remove unnecessary :group attributes
 
-       * lisp/which-key.el:  Remove :group 'which-key in defcustoms.
-       (which-key-idle-delay):
+       * lisp/which-key.el (which-key-idle-delay):
        (which-key-idle-secondary-delay):
        (which-key-echo-keystrokes):
        (which-key-max-description-length):
        (which-key-allow-regexps):
        (which-key-inhibit-regexps):
        (which-key-show-transient-maps):
-       (which-key-init-buffer-hook):
+       (which-key-init-buffer-hook): Remove :group 'which-key in
+       defcustoms.
 
 2024-03-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       syncdoc-type-hierarchy.el: Adjust to changes in `cl-preloaded.el`
+       syncdoc-type-hierarchy.el: Adjust to changes in `cl-preloaded.el'
 
-       * admin/syncdoc-type-hierarchy.el (syncdoc-lispref-dir):
-       Use `macroexp-file-name`.
+       * admin/syncdoc-type-hierarchy.el (syncdoc-lispref-dir): Use
+       `macroexp-file-name'.
        (syncdoc-hierarchy): New var.
        (syncdoc-insert-dot-content, syncdoc-make-type-table): Use it.
-       (syncdoc-update-type-hierarchy): Don't crash if `dot` is absent.
+       (syncdoc-update-type-hierarchy): Don't crash if `dot' is absent.
 
 2024-03-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-       admin/syncdoc-type-hierarchy.el: Move from `etc`
-
-       AFAICT `admin` is where we keep these kinds of files.
+       * admin/syncdoc-type-hierarchy.el: Move from `etc'.  AFAICT
+       `admin' is where we keep these kinds of files.
 
 2024-03-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        This reverts commit 4a0d430bdc3650ca3dfd8bdd14781764fbcbdc7e.
 
        AFAICT that commit was made to accommodate regressions introduced
-       in the new `cl-preloaded.el` code and these have been fixed.
+       in the new `cl-preloaded.el' code and these have been fixed.
 
 2024-03-04  Michael Albinus  <michael.albinus@gmx.de>
 
 
        This reverts commit de6b1e1efb1a36c69e7a6e09297e1de5b1477121.
 
-       While it did simplify code, there aren't much in the way of technical
-       benefits the change at this time, and there were protest against the
-       unwarranted style change.
+       While it did simplify code, there aren't much in the way of
+       technical benefits the change at this time, and there were protest
+       against the unwarranted style change.
 
 2024-03-04  Mattias Engdegård  <mattiase@acm.org>
 
-       Repair miscompilation of single-arg `apply` (bug#69533)
+       Repair miscompilation of single-arg `apply' (bug#69533)
 
-       * lisp/emacs-lisp/byte-opt.el (byte-optimize-apply):
-       Don't optimize single-argument `apply`; it's a legacy construct.
-       * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases):
-       Add test case.
+       * lisp/emacs-lisp/byte-opt.el (byte-optimize-apply): Don't
+       optimize single-argument `apply'; it's a legacy construct.
+       * test/lisp/emacs-lisp/bytecomp-tests.el
+       (bytecomp-tests--test-cases): Add test case.
 
 2024-03-04  Eli Zaretskii  <eliz@gnu.org>
 
 
        Fix 'set-window-configuration' and 'window-state-put'
 
-       Fix some bugs with 'window-state-put' (Bug#69093).  Add new
-       hook 'window-kept-windows-functions' (Bug#68235).
+       Fix some bugs with 'window-state-put' (Bug#69093).  Add new hook
+       'window-kept-windows-functions' (Bug#68235).
 
        * doc/lispref/windows.texi (Window Configurations): Mention
        'window-kept-windows-functions'.
        (Window Hooks): Describe new abnormal hook
        'window-kept-windows-functions'.
-       * src/marker.c (Fmarker_last_position): New function to return
-       the last position of a marker even if its buffer is now dead.
+       * src/marker.c (Fmarker_last_position): New function to return the
+       last position of a marker even if its buffer is now dead.
        * src/window.c (Fset_window_configuration): If
        'window-kept-windows-functions' is non-nil, do not delete any
-       window whose buffer is now dead but remember all such windows in
-       list to pass to 'window-kept-windows-functions'.  Run
+       window whose buffer is now dead but remember all such windows in a
+       list to pass to 'window-kept-windows-functions'.  Run
        'window-kept-windows-functions' if it is non-nil.
        (Vwindow_kept_windows_functions): New abnormal hook run by
        Fset_window_configuration and 'window-state-put' with two
        (window--state-put-2): Make sure buffer is live before restoring
        its state.  Set 'window-state-put-selected-window' to state's
        selected window.  If 'window-kept-windows-functions' is non-nil,
-       do not delete any windows whose buffer is found dead but
-       remember all such windows in a list to pass to
+       do not delete any windows whose buffer is found dead but remember
+       all such windows in a list to pass to
        'window-kept-windows-functions'.
        (window-state-put): Run 'window-kept-windows-functions' if it is
        non-nil.  Select window recorded in
 
        (major-mode-remap(-defaults)): New var and function (bug#69191)
 
-       While `major-mode-remap-alist` provides a way for users to indicate the
-       major mode of their choice, we need a similar variable for the
-       use of packages.
+       While `major-mode-remap-alist' provides a way for users to
+       indicate the major mode of their choice, we need a similar
+       variable for the use of packages.
 
-       This patch adds a new `major-mode-remap-defaults` and changes various
-       packages to obey it or make use of it.
-       I think it nicely cleans the regexp duplication between CC-mode and
-       `c-ts-mode.el` and also makes it easier/cleaner for users to override
-       the changes made by `*-ts-mode.el`.
+       This patch adds a new `major-mode-remap-defaults' and changes
+       various packages to obey it or make use of it.  I think it nicely
+       cleans the regexp duplication between CC-mode and `c-ts-mode.el'
+       and also makes it easier/cleaner for users to override the changes
+       made by `*-ts-mode.el'.
 
        * lisp/files.el (major-mode-remap-defaults): New variable.
        (major-mode-remap): New function.
        (set-auto-mode-0): Use it.
        * doc/lispref/modes.texi (Auto Major Mode): Document them.
 
-       * lisp/textmodes/tex-mode.el (tex--redirect-to-submode):
-       Use `major-mode-remap`.
-       (major-mode-remap-defaults): Set it to remap AUCTeX modes by default.
-       * lisp/progmodes/ruby-ts-mode.el (auto-mode-alist): Leave it alone.
+       * lisp/textmodes/tex-mode.el (tex--redirect-to-submode): Use
+       `major-mode-remap'.
+       (major-mode-remap-defaults): Set it to remap AUCTeX modes by
+       default.
+       * lisp/progmodes/ruby-ts-mode.el (auto-mode-alist): Leave it
+       alone.
        (major-mode-remap-defaults): Set this one instead.
-       * lisp/progmodes/c-ts-mode.el (c-or-c++-ts-mode): Use `major-mode-remap`.
+       * lisp/progmodes/c-ts-mode.el (c-or-c++-ts-mode): Use
+       `major-mode-remap'.
        (auto-mode-alist): Leave it alone.
        (major-mode-remap-defaults): Set this one instead.
-       * lisp/org/ox.el (org-export-to-buffer): Modernize docstring accordingly.
+       * lisp/org/ox.el (org-export-to-buffer): Modernize docstring
+       accordingly.
        * lisp/progmodes/cc-mode.el (c-or-c++-mode):
        * lisp/org/ox-latex.el (org-latex-export-as-latex):
        * lisp/org/ox-koma-letter.el (org-koma-letter-export-as-latex):
-       * lisp/org/ox-beamer.el (org-beamer-export-as-latex):
-       Use `major-mode-remap` when available.
+       * lisp/org/ox-beamer.el (org-beamer-export-as-latex): Use
+       `major-mode-remap' when available.
 
 2024-03-04  Po Lu  <luangruo@yahoo.com>
 
-       Update tramp-androidsu
-
        * doc/misc/tramp.texi (Quick Start Guide): Remove documentation
        pertaining to tramp-androidsu.el.
        (Inline methods): Document it here instead.
 
        (cl--typeof-types): Rework to fix some regressions
 
-       Initialize the variables directly in their declaration, so
-       there no time where they exist but aren't yet initialized.
-       This also allows us to mark `cl--typeof-types` as a `defconst` again.
+       Initialize the variables directly in their declaration, so there
+       no time where they exist but aren't yet initialized.  This also
+       allows us to mark `cl--typeof-types' as a `defconst' again.
 
-       More importantly, specify the DAG by direct supertypes rather
-       than direct subtypes.  This is slightly less compact, but it's
-       necessary to let us specify the *order* of the supertypes,
-       which is necessary for example to preserve the desired ordering
-       of methods when several methods can be applied.
+       More importantly, specify the DAG by direct supertypes rather than
+       direct subtypes.  This is slightly less compact, but it's
+       necessary to let us specify the *order* of the supertypes, which
+       is necessary for example to preserve the desired ordering of
+       methods when several methods can be applied.
 
-       Fix a few more regressions, such as removing `atom` from the parents
-       of `function` since some lists are considered as functions,
-       adding `number-or-marker` as supertype of `integer-or-marker`,
-       and re-adding `native-comp-unit`.
+       Fix a few more regressions, such as removing `atom' from the
+       parents of `function' since some lists are considered as
+       functions, adding `number-or-marker' as supertype of
+       `integer-or-marker', and re-adding `native-comp-unit'.
 
-       I carefully compared all elements of `cl--typeof-types` to make
-       sure they are the same as before (with one exception for `null`).
+       I carefully compared all elements of `cl--typeof-types' to make
+       sure they are the same as before (with one exception for `null').
 
-       * lisp/emacs-lisp/cl-preloaded.el (cl--type-hierarchy): Delete var.
-       (cl--direct-supertypes-of-type, cl--typeof-types):
-       Initialize directly in the declaration.
+       * lisp/emacs-lisp/cl-preloaded.el (cl--type-hierarchy): Delete
+       var.
+       (cl--direct-supertypes-of-type, cl--typeof-types): Initialize
+       directly in the declaration.
        (cl--supertypes-lane, cl--supertypes-lanes-res): Delete vars.
        (cl--supertypes-for-typeof-types-rec)
        (cl--supertypes-for-typeof-types): Delete functions.
 
        ox-texinfo:: Require only TEXINFO_DIR_CATEGORY
 
-       Until now @dircategory/@direntry entries were added only if
-       both TEXINFO_DIR_CATEGORY and TEXINFO_DIR_TITLE were set.
-       And the setting of TEXINFO_DIR_TITLE had to be careful to
-       provide exactly the right syntax.
+       Until now @dircategory/@direntry entries were added only if both
+       TEXINFO_DIR_CATEGORY and TEXINFO_DIR_TITLE were set.  And the
+       setting of TEXINFO_DIR_TITLE had to be careful to provide exactly
+       the right syntax.
 
        This patch changes various things in this regard:
        - Only require TEXINFO_DIR_CATEGORY in order to generate
-         `@dircategory` and `@direntry`.
-       - Use the document title by default if TEXINFO_DIR_DESC is missing.
+         `@dircategory' and `@direntry'.
+       - Use the document title by default if TEXINFO_DIR_DESC is
+         missing.
        - Use the filename by default when TEXINFO_DIR_TITLE is missing.
        - Try and make it harder to provide a direntry that does not
          have the right format or refers to a different filename than
          the one we're outputting to.
 
-       * lisp/org/ox-texinfo.el: Remove redundant `:group` arguments.
+       * lisp/org/ox-texinfo.el: Remove redundant `:group' arguments.
        Prefer #' to quote function names.
-       (org-texinfo-template): Use sane defaults for `@direntry`.
+       (org-texinfo-template): Use sane defaults for `@direntry'.
 
-       * doc/misc/org.org (Texinfo specific export settings): Adjust accordingly.
+       * doc/misc/org.org (Texinfo specific export settings): Adjust
+       accordingly.
 
 2024-03-03  Juri Linkov  <juri@linkov.net>
 
-       * lisp/net/dictionary.el (dictionary-display-match-result): More fixes.
-
-       Remove 'dictionary-pre-buffer' that was moved to
-       'dictionary-new-matching' in the previous commit (bug#69312).
+       * lisp/net/dictionary.el (dictionary-display-match-result): More
+       fixes.  Remove 'dictionary-pre-buffer' that was moved to
+       'dictionary-new-matching' in the previous commit.  (bug#69312)
 
 2024-03-03  Juri Linkov  <juri@linkov.net>
 
-       * lisp/net/dictionary.el (dictionary-new-matching): Add dictionary-pre-buffer.
-
-       This is necessary to prepare the dictionary buffer for further processing
-       that also includes setting buffer-read-only to nil to be able to insert text.
+       * lisp/net/dictionary.el (dictionary-new-matching): Add
+       dictionary-pre-buffer.  This is necessary to prepare the
+       dictionary buffer for further processing that also includes
+       setting buffer-read-only to nil to be able to insert text.
        (bug#69312)
 
 2024-03-03  Andrea Corallo  <acorallo@gnu.org>
 
-       * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-test-62): Revert change.
+       * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-test-62):
+       Revert change.
 
 2024-03-03  Andrea Corallo  <acorallo@gnu.org>
 
-       Fix 'cl--typeof-types' computation
+       Fix 'cl--typeof-types' computation
 
        * lisp/emacs-lisp/cl-preloaded.el (cl--supertypes-lane)
        (cl--supertypes-lanes-res): Define vars.
 
        Use funcall on function values in gnus-agent.el
 
-       See bug#68931
-
-       * lisp/gnus/gnus-agent.el (gnus-category-make-function-1): Don't just
-       pass function values in to be byte compiled, wrap them in funcall first.
+       * lisp/gnus/gnus-agent.el (gnus-category-make-function-1): Don't
+       just pass function values in to be byte compiled, wrap them in
+       funcall first.  (bug#68931)
 
 2024-03-03  Jeremy Bryant  <jb@jeremybryant.net>
 
-       Replace member by memq for clarity
-
        * lisp/which-key.el (which-key--side-window-max-dimensions):
-       Replace member by memq.
+       Replace member by memq for clarity.
 
 2024-03-03  Jeremy Bryant  <jb@jeremybryant.net>
 
-       Use declare form instead of put, for clarity
-
        * lisp/which-key.el (which-key-add-major-mode-key-based-replacements):
-       Use declare form instead of put.
+       Use declare form instead of put for clarity.
 
 2024-03-02  Juri Linkov  <juri@linkov.net>
 
-       * lisp/net/dictionary.el: Better handling of messages and errors.
+       Better handling of messages and errors in dictionary.el
 
-       (dictionary-do-search, dictionary-do-matching): Insert formatted
-       messages to the top of the output buffer instead of displaying
-       transient messages in the echo area (bug#69312).
+       * lisp/net/dictionary.el (dictionary-do-search)
+       (dictionary-do-matching): Insert formatted messages to the top of
+       the output buffer instead of displaying transient messages in the
+       echo area.  (bug#69312)
        (dictionary-do-matching, dictionary-lookup-definition)
-       (dictionary-popup-matching-words): Use 'user-error'
-       instead of 'error' for non-technical errors.
+       (dictionary-popup-matching-words): Use 'user-error' instead of
+       'error' for non-technical errors.
 
 2024-03-02  Juri Linkov  <juri@linkov.net>
 
-       * lisp/replace.el (perform-replace): Accept default bindings in lookup-key.
-
-       Set ACCEPT-DEFAULT arg of lookup-key to t (bug#69342).
-       This will allow the users to ignore unbound keys with
-       ‘(define-key query-replace-map [t] 'ignore)’.
+       * lisp/replace.el (perform-replace): Accept default bindings in
+       lookup-key.  Set ACCEPT-DEFAULT arg of lookup-key to t.  This will
+       allow the users to ignore unbound keys with ‘(define-key
+       query-replace-map [t] 'ignore)’.  (bug#69342)
 
 2024-03-02  Juri Linkov  <juri@linkov.net>
 
-       * lisp/buff-menu.el (Buffer-menu-marked-buffers): Add save-excursion.
+       * lisp/buff-menu.el (Buffer-menu-marked-buffers): Add
+       save-excursion.
 
        * doc/lispref/modes.texi (Tabulated List Mode): Unindent example.
 
 
 2024-03-02  Kazuhiro Ito  <kzhr@d1.dion.ne.jp>
 
-       * lisp/language/japanese.el (map): Fix typo (bug#69494).
+       * lisp/language/japanese.el (map): Fix typo.  (bug#69494)
 
 2024-03-02  Kazuhiro Ito  <kzhr@d1.dion.ne.jp>
 
 
        * lisp/language/japan-util.el
        (setup-japanese-environment-internal): Prefer UTF-8 for Cygwin and
-       other Posix hosts; prefer Codepage 932 on DOS/Windows.  (Bug#69493)
+       other Posix hosts; prefer Codepage 932 on DOS/Windows.
+       (Bug#69493)
 
 2024-03-02  Po Lu  <luangruo@yahoo.com>
 
        (android_get_dead_char): New functions.
        (android_wc_lookup_string): New argument COMPOSE_STATE.  Ignore
        key events with the COMBINING_ACCENT flag set while recording
-       their character values there, and combine such characters with
-       the key event when processing a subsequent key event.
+       their character values there, and combine such characters with the
+       key event when processing a subsequent key event.
 
-       * src/androidgui.h (struct android_compose_status): New
-       structure.
+       * src/androidgui.h (struct android_compose_status): New structure.
 
        * src/androidterm.c (handle_one_android_event): Port dead key
        combination code from X.  (bug#69321)
 
 2024-03-01  Andrea Corallo  <andcor03@e132096.arm.com>
 
-       * lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types): Define as var.
+       * lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types): Define as
+       var.
 
 2024-03-01  Wilson Snyder  <wsnyder@wsnyder.org>
 
        Verilog-mode update from upstream https://github.com/veripool/verilog-mode
 
        * lisp/progmodes/verilog-mode.el (verilog-auto-inst)
-       (verilog-auto-inst-param): Remove intended formfeeds.  Our ability to
-       detect unintended formfeeds elsewhere outweighs their limited utility here.
-       Contributed by Mattias Engdegård.
+       (verilog-auto-inst-param): Remove intended formfeeds.  Our ability
+       to detect unintended formfeeds elsewhere outweighs their limited
+       utility here.  Contributed by Mattias Engdegård.
        (verilog-at-constraint-p)
        (verilog-at-struct-mv-p, verilog-at-struct-p, verilog-calc-1)
        (verilog-in-case-region-p, verilog-in-fork-region-p)
-       (verilog-in-generate-region-p, verilog-set-auto-endcomments):
-       Fix indentation problem when there is a signal named "module_something"
+       (verilog-in-generate-region-p, verilog-set-auto-endcomments): Fix
+       indentation problem when there is a signal named
+       "module_something"
        (#1861).  Cleanup RexEx groupings.
-       (verilog-read-sub-decls-expr):
-       Fix apostrophe parser in AUTOWIRE (#1854) (#1855).
-       (verilog-auto-inst-port): Fix AUTOINST
-       multi-dimensional array [] substitution.  Reported by Caleb Begly.
+       (verilog-read-sub-decls-expr): Fix apostrophe parser in AUTOWIRE
+       (#1854) (#1855).
+       (verilog-auto-inst-port): Fix AUTOINST multi-dimensional array []
+       substitution.  Reported by Caleb Begly.
        (verilog-property-re, verilog-beg-of-statement, verilog-calc-1):
-       Concurrent SVA statement pattern-matching learns 'restrict property' and
-       'cover sequence' expression for proper indentation around those constructs. This
-       addresses more patterns in IEEE 1800-2017's 'concurrent_sasertion_statement'
-       grammar.
-       (verilog-read-sub-decls-line):
-       Fix `verilog-auto-ignore-concat' with parenthesis signals.
-       Reported by Dmitri Sorkin.
+       Concurrent SVA statement pattern-matching learns 'restrict
+       property' and 'cover sequence' expression for proper indentation
+       around those constructs. This addresses more patterns in IEEE
+       1800-2017's 'concurrent_sasertion_statement' grammar.
+       (verilog-read-sub-decls-line): Fix `verilog-auto-ignore-concat'
+       with parenthesis signals.  Reported by Dmitri Sorkin.
        (verilog-simplify-range-expression): Fix
        `verilog-auto-inst-param-value' confusing structure selects.
        Reported by Mike Bertone.
 
        Merge branch 'feature/type-hierarchy' into 'master'
 
-       * doc/lispref/objects.texi (Type Hierarchy): Small improvements
+       * doc/lispref/objects.texi (Type Hierarchy): Small improvements.
 
 2024-03-01  Andrea Corallo  <acorallo@gnu.org>
 
-       Fix compilation warning in 'cl--supertypes-for-typeof-types'
+       Fix compilation warning in 'cl--supertypes-for-typeof-types'
 
-       * lisp/emacs-lisp/cl-preloaded.el (cl--supertypes-for-typeof-types): Fix
-       warning.
+       * lisp/emacs-lisp/cl-preloaded.el
+       (cl--supertypes-for-typeof-types): Fix warning.
 
 2024-02-29  Juri Linkov  <juri@linkov.net>
 
        Add tabulated-list-groups and Buffer-menu-group-by (bug#69305)
 
-       * doc/lispref/modes.texi (Tabulated List Mode):
-       Add defvar tabulated-list-groups.
+       * doc/lispref/modes.texi (Tabulated List Mode): Add defvar
+       tabulated-list-groups.
 
        * lisp/buff-menu.el (Buffer-menu-group-by): New defcustom.
-       (Buffer-menu-unmark-all-buffers): Use tabulated-list-get-entry
-       to check whether the current line contains an entry.
-       (list-buffers-noselect): Enable outline-minor-mode
-       for tabulated-list-groups.
-       (list-buffers--refresh): When Buffer-menu-group-by is non-nil,
-       set tabulated-list-groups.
-       (Buffer-menu-group-by-mode, Buffer-menu-group-by-root):
-       New functions.
+       (Buffer-menu-unmark-all-buffers): Use tabulated-list-get-entry to
+       check whether the current line contains an entry.
+       (list-buffers-noselect): Enable outline-minor-mode for
+       tabulated-list-groups.
+       (list-buffers--refresh): When Buffer-menu-group-by is non-nil, set
+       tabulated-list-groups.
+       (Buffer-menu-group-by-mode, Buffer-menu-group-by-root): New
+       functions.
 
-       * lisp/emacs-lisp/tabulated-list.el (tabulated-list-groups):
-       New buffer-local variable.
-       (tabulated-list-print-fake-header): Add distinct overlay
-       property 'fake-header'.
-       (tabulated-list-header-overlay-p): Filter out overlays that
-       don't have the property 'fake-header'.
+       * lisp/emacs-lisp/tabulated-list.el (tabulated-list-groups): New
+       buffer-local variable.
+       (tabulated-list-print-fake-header): Add distinct overlay property
+       'fake-header'.
+       (tabulated-list-header-overlay-p): Filter out overlays that don't
+       have the property 'fake-header'.
        (tabulated-list-print): Use the variable 'tabulated-list-groups'
        to sort entries in groups separately.
        (tabulated-list-print-entries): New function factored out from
        'tabulated-list-print'.
 
-       * test/lisp/emacs-lisp/tabulated-list-tests.el (tabulated-list-groups):
-       New test.
+       * test/lisp/emacs-lisp/tabulated-list-tests.el
+       (tabulated-list-groups): New test.
 
 2024-02-29  Eli Zaretskii  <eliz@gnu.org>
 
 
 2024-02-29  Andrea Corallo  <acorallo@gnu.org>
 
-       * etc/TODO (Native compiler improvements): Remove an entry as completed.
+       * etc/TODO (Native compiler improvements): Remove an entry as
+       completed.
 
 2024-02-29  Andrea Corallo  <acorallo@gnu.org>
 
-       Add 'native-comp-async-report-warnings-errors-kind'
+       Add 'native-comp-async-report-warnings-errors-kind'
 
-       * lisp/emacs-lisp/comp-run.el (native-comp-async-report-warnings-errors-kind):
-       Add new customize.
+       * lisp/emacs-lisp/comp-run.el
+       (native-comp-async-report-warnings-errors-kind): Add new
+       customize.
 
 2024-02-29  Andrea Corallo  <acorallo@gnu.org>
 
-       Improve 'native-comp-async-report-warnings-errors' tag
+       Improve 'native-comp-async-report-warnings-errors' tag
 
-       * lisp/emacs-lisp/comp-run.el (native-comp-async-report-warnings-errors):
-       Improve tag.
+       * lisp/emacs-lisp/comp-run.el
+       (native-comp-async-report-warnings-errors): Improve tag.
 
 2024-02-29  Robert Pluim  <rpluim@gmail.com>
 
 
 2024-02-29  Jeremy Bryant  <jb@jeremybryant.net>
 
-       Remove github reference in preparation for integration to Emacs core
-
-       * lisp/which-key.el:  Remove github reference.
+       * lisp/which-key.el: Remove GitHub reference in preparation for
+       integration to Emacs core.
 
 2024-02-29  Jeremy Bryant  <jb@jeremybryant.net>
 
-       Specify more precise customization type, natnum instead of integer
-
-       * lisp/which-key.el (which-key-add-column-padding):  Use natnum
+       * lisp/which-key.el (which-key-add-column-padding): Specify more
+       precise customization type, natnum instead of integer.
 
 2024-02-28  Andrea Corallo  <acorallo@gnu.org>
 
 
 2024-02-28  Andrea Corallo  <acorallo@gnu.org>
 
-       * lisp/emacs-lisp/cl-macs.el (cl-deftype-satisfies): Add 'symbol-with-pos'.
+       * lisp/emacs-lisp/cl-macs.el (cl-deftype-satisfies): Add
+       'symbol-with-pos'.
 
-       * lisp/emacs-lisp/comp.el (comp-known-predicates): Add 'symbol-with-pos-p'.
+       * lisp/emacs-lisp/comp.el (comp-known-predicates): Add
+       'symbol-with-pos-p'.
 
 2024-02-28  Basil L. Contovounesios  <basil@contovou.net>