From 0cf3d3415224204c82efda373ffc7055163b1893 Mon Sep 17 00:00:00 2001 From: Po Lu Date: Wed, 19 Feb 2025 15:33:59 +0800 Subject: [PATCH] ; * ChangeLog.4: Reformat down to 28 March 2024. --- ChangeLog.4 | 3537 ++++++++++++++++++++++++++------------------------- 1 file changed, 1823 insertions(+), 1714 deletions(-) diff --git a/ChangeLog.4 b/ChangeLog.4 index 9b553d2c24e..6d894d68f2b 100644 --- a/ChangeLog.4 +++ b/ChangeLog.4 @@ -190,7 +190,7 @@ 2025-01-30 Eli Zaretskii - * src/puresize.h (BASE_PURESIZE): Increase (bug#75907). + * src/puresize.h (BASE_PURESIZE): Increase. (bug#75907) 2025-01-28 Stefan Kangas @@ -398,7 +398,7 @@ 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 @@ -16197,23 +16197,23 @@ (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 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 @@ -16226,15 +16226,15 @@ 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 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 @@ -16242,8 +16242,8 @@ * 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 @@ -16256,14 +16256,15 @@ 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 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 @@ -16277,18 +16278,17 @@ 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 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 @@ -16306,7 +16306,8 @@ 2024-04-30 Andrea Corallo - * 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 @@ -16315,8 +16316,7 @@ * 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. @@ -16324,23 +16324,24 @@ 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 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 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. @@ -16349,26 +16350,26 @@ (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 - 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 - * 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 - 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. @@ -16382,7 +16383,8 @@ * 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 @@ -16392,60 +16394,63 @@ * 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 - (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 - * 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 - 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 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 - 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 @@ -16453,15 +16458,15 @@ 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 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 @@ -16474,8 +16479,8 @@ * 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 @@ -16493,14 +16498,13 @@ 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. @@ -16511,8 +16515,8 @@ * 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. @@ -16543,11 +16547,11 @@ 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. @@ -16555,124 +16559,132 @@ - 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) : - New method. + * lisp/emacs-lisp/cl-print.el (cl-print-object) + : 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 (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 @@ -16682,8 +16694,8 @@ 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. @@ -16701,8 +16713,6 @@ 2024-04-28 Po Lu - Fix the Haiku build - * src/haikuterm.c (haiku_draw_text_decoration): Remove stray closing parenthesis. @@ -16713,14 +16723,14 @@ * 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. : New fields. (markDirty): Apply stroke width. @@ -16757,17 +16767,16 @@ 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. @@ -16791,8 +16800,8 @@ * 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 @@ -16844,16 +16853,16 @@ 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 Shut down jsonrpc server more gracefully * lisp/jsonrpc.el (jsonrpc-running-p): Avoid unnecessarily killing - the server process. Suggested by Aaron Zeng . - (Bug#70522) + the server process. Suggested by Aaron Zeng + . (Bug#70522) 2024-04-27 Eli Zaretskii @@ -16923,8 +16932,8 @@ 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 @@ -16940,13 +16949,13 @@ * 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) - : New variable. + * src/androidterm.c (syms_of_androidterm) : + New variable. 2024-04-26 Gerd Möllmann @@ -16962,20 +16971,21 @@ * 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 - * 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 - 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): @@ -16983,9 +16993,10 @@ * 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 @@ -17011,9 +17022,9 @@ 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 @@ -17049,15 +17060,16 @@ 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 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 @@ -17091,10 +17103,12 @@ 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. @@ -17109,10 +17123,10 @@ 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. @@ -17122,20 +17136,21 @@ 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 @@ -17146,10 +17161,11 @@ 2024-04-23 Andrea Corallo - * 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 @@ -17174,15 +17190,16 @@ 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 - * 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 @@ -17204,11 +17221,11 @@ * 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): : New function. + (syms_of_androidfns) : New function. * src/androidterm.c (android_alloc_nearest_color): Allocate monochrome colors similarly to the X server. @@ -17221,8 +17238,7 @@ * 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 @@ -17251,20 +17267,20 @@ (markDirty): Synchronize the current stipple with tileObject. (prepareStipple, blitOpaqueStipple): New functions. - * java/org/gnu/emacs/EmacsService.java (EmacsService) - : New static field. + * java/org/gnu/emacs/EmacsService.java (EmacsService) : + 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. @@ -17273,8 +17289,8 @@ * 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 @@ -17292,10 +17308,10 @@ 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. @@ -17303,17 +17319,18 @@ 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 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 @@ -17349,8 +17366,8 @@ * 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. @@ -17369,34 +17386,34 @@ 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 - * 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 - * 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 - * 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 @@ -17410,11 +17427,11 @@ 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 @@ -17431,7 +17448,8 @@ * 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 @@ -17448,7 +17466,8 @@ * 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 @@ -17462,8 +17481,8 @@ 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) : New defsym. @@ -17479,19 +17498,17 @@ 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 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 @@ -17499,13 +17516,13 @@ (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. @@ -17516,7 +17533,7 @@ (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 @@ -17544,16 +17561,16 @@ 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. @@ -17569,8 +17586,8 @@ (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' @@ -17583,8 +17600,8 @@ 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 @@ -17609,9 +17626,8 @@ 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 @@ -17622,7 +17638,8 @@ 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 @@ -17635,35 +17652,38 @@ 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 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. @@ -17695,9 +17715,9 @@ * 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) @@ -17706,16 +17726,17 @@ 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. @@ -17732,26 +17753,27 @@ 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, @@ -17760,11 +17782,12 @@ (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 @@ -17775,11 +17798,11 @@ (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 @@ -17789,26 +17812,28 @@ (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 @@ -17816,31 +17841,36 @@ * 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 @@ -17848,33 +17878,33 @@ 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 + 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. (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: @@ -17885,21 +17915,23 @@ 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 - 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 @@ -17910,40 +17942,42 @@ (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 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 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. @@ -17955,9 +17989,10 @@ 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. @@ -17966,7 +18001,8 @@ (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 @@ -17984,17 +18020,18 @@ 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 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 @@ -18024,20 +18061,20 @@ 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 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 @@ -18067,10 +18104,10 @@ * 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 @@ -18085,17 +18122,16 @@ 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 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 @@ -18114,11 +18150,12 @@ 2024-04-17 Juri Linkov - * 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 - 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 @@ -18130,6 +18167,7 @@ (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 @@ -18151,63 +18189,66 @@ 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 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 - * 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 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 (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 - * 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 @@ -18234,16 +18275,16 @@ 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 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 @@ -18251,32 +18292,32 @@ * 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 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 (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 (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 @@ -18302,20 +18343,18 @@ 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 - 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 - 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) @@ -18326,17 +18365,18 @@ 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 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 @@ -18351,7 +18391,8 @@ 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 @@ -18359,45 +18400,48 @@ 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 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 @@ -18406,8 +18450,8 @@ * 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. @@ -18424,9 +18468,11 @@ 2024-04-13 Justin Burkett - 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 @@ -18434,46 +18480,48 @@ * lisp/progmodes/peg.el (peg-parse): Refine heuristic since unknown terminals are resolved at run-time rather than compile-time now. - (peg--macroexpand) : Avoid generating a `let` with an - empty body. + (peg--macroexpand) : 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 - (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 (define-globalized-minor-mode): Fix bug#58888 - * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode) : - 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) + : 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 @@ -18484,35 +18532,36 @@ 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 @@ -18562,8 +18611,8 @@ 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. @@ -18572,8 +18621,8 @@ 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 @@ -18582,7 +18631,7 @@ * lisp/calendar/icalendar.el (icalendar--datestring-to-isodate): Accept dashes in ISO-style numeric dates. Patch by Erwan Hingant - . (Bug#69894) + . (Bug#69894) * test/lisp/calendar/icalendar-tests.el (icalendar--datestring-to-isodate): Add a test for dashes in @@ -18597,10 +18646,8 @@ 2024-04-13 Stefan Monnier - (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 @@ -18612,40 +18659,40 @@ 2024-04-12 Stefan Monnier - (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 - * 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 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 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 @@ -18657,7 +18704,8 @@ (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 @@ -18665,7 +18713,8 @@ * 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 @@ -18682,7 +18731,7 @@ 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 @@ -18695,11 +18744,12 @@ 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 @@ -18734,14 +18784,15 @@ 2024-04-11 Dmitry Gutov - 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 @@ -18751,18 +18802,18 @@ 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 * doc/lispref/parsing.texi (Parsing Program Source): Fix menu. - Add the new node "User-defined Things" to the menu. 2024-04-10 Andrea Corallo - * 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. @@ -18772,26 +18823,25 @@ 2024-04-10 Stefan Monnier - (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 - * 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. @@ -18803,8 +18853,7 @@ 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. @@ -18825,8 +18874,9 @@ 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 @@ -18837,20 +18887,20 @@ 2024-04-10 Stefan Monnier - (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 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. @@ -18860,49 +18910,53 @@ 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 - * 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 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 - * 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 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 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 (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 @@ -18910,30 +18964,32 @@ 2024-04-09 Stefan Monnier - (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. @@ -18948,8 +19004,8 @@ 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: @@ -18960,28 +19016,29 @@ 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 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 - 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 @@ -18990,12 +19047,13 @@ * 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 - 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. @@ -19009,15 +19067,15 @@ 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 - (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 @@ -19032,15 +19090,15 @@ * 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 (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 @@ -19054,13 +19112,14 @@ 2024-04-08 Andrea Corallo - * 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 - * 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. @@ -19069,30 +19128,27 @@ 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 - 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 @@ -19105,31 +19161,33 @@ (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 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: ;; @@ -19139,10 +19197,10 @@ ;; (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. @@ -19152,7 +19210,8 @@ (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. @@ -19184,19 +19243,20 @@ 2024-04-07 Po Lu - 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 - * 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 @@ -19230,12 +19290,11 @@ 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 @@ -19243,9 +19302,9 @@ 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 @@ -19259,54 +19318,52 @@ 2024-04-06 Stefan Monnier - (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 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 - 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 - * 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 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 - * 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 @@ -19315,8 +19372,8 @@ * 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. @@ -19354,11 +19411,12 @@ 2024-04-05 Eli Zaretskii - * 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 - 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) @@ -19370,16 +19428,14 @@ (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 - (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 @@ -19403,18 +19459,18 @@ 2024-04-04 Mattias Engdegård * src/json.c (make_symset_table): Fix over-large allocation size. - We multiplied when we should have added. Oops. 2024-04-04 Juri Linkov - 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 @@ -19444,17 +19500,18 @@ 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 - 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. @@ -19463,19 +19520,20 @@ 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. @@ -19490,8 +19548,8 @@ 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 @@ -19505,7 +19563,7 @@ * java/org/gnu/emacs/EmacsMultitaskActivity.java (onCreate) (getAttachmentToken): New functions. - * java/org/gnu/emacs/EmacsWindow.java (EmacsWindow): + * java/org/gnu/emacs/EmacsWindow.java (EmacsWindow) : New variables. (onActivityDetached): Remove redundant isFinishing argument. (reparentTo): Reset the foregoing fields before registering with @@ -19516,11 +19574,11 @@ (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 @@ -19535,16 +19593,16 @@ 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 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 @@ -19552,9 +19610,9 @@ * 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. @@ -19562,7 +19620,8 @@ * 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) @@ -19572,12 +19631,12 @@ 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. @@ -19587,21 +19646,24 @@ * 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 - 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 @@ -19615,16 +19677,17 @@ 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 +2024-04-01 Stefan Monnier - (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 @@ -19638,13 +19701,13 @@ 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 @@ -19663,7 +19726,7 @@ 2024-04-01 Mattias Engdegård - 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. @@ -19673,12 +19736,12 @@ 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. @@ -19708,42 +19771,44 @@ * 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 - (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 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 (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 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 @@ -19751,9 +19816,9 @@ 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 @@ -19766,21 +19831,21 @@ 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 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 @@ -19822,33 +19887,30 @@ 2024-03-30 James Thomas - 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 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 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 @@ -19878,39 +19940,42 @@ * 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 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 @@ -19918,10 +19983,10 @@ 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. @@ -19937,9 +20002,9 @@ 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. @@ -20041,7 +20106,7 @@ 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. @@ -20054,94 +20119,96 @@ 2024-03-29 Stefan Monnier - * 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 - `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 * 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 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 - 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 - 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 - 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 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 - 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 - 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. @@ -20149,55 +20216,61 @@ 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 - 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 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) : New field. @@ -20211,7 +20284,7 @@ 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 @@ -20229,8 +20302,8 @@ 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 @@ -20253,16 +20326,17 @@ (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 (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. @@ -20272,10 +20346,8 @@ 2024-03-28 Dmitry Gutov - (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 @@ -20285,22 +20357,25 @@ 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 - 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 @@ -20313,20 +20388,21 @@ 2024-03-26 Stefan Monnier - * 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 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 @@ -20346,17 +20422,18 @@ 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. @@ -20368,14 +20445,15 @@ (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 @@ -20407,9 +20485,9 @@ * java/org/gnu/emacs/EmacsService.java (EmacsService) : 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'. @@ -20417,8 +20495,7 @@ * 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 @@ -20449,20 +20526,17 @@ 2024-03-25 Juri Linkov - * 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 - - Merge remote-tracking branch 'savannah/master' into master-android-1 - 2024-03-25 Po Lu Port restart-emacs to Android 4.3 and earlier @@ -20514,29 +20588,29 @@ 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 - * 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 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 @@ -20545,31 +20619,31 @@ * 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 - 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. + `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 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) @@ -20578,14 +20652,14 @@ 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. @@ -20593,14 +20667,15 @@ 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 @@ -20610,7 +20685,6 @@ 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 @@ -20621,10 +20695,9 @@ 2024-03-23 Stefan Monnier - (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 @@ -20633,40 +20706,42 @@ 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 - a 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 @@ -20676,35 +20751,37 @@ (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 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. @@ -20717,8 +20794,8 @@ 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. @@ -20732,7 +20809,7 @@ 2024-03-23 Eli Zaretskii - * 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 @@ -20757,10 +20834,6 @@ 8cf05d9be12 Fix 'shortdoc-copy-function-as-kill' d5901f3f05e Improve documentation of 'edebug-print-*' variables -2024-03-23 Po Lu - - Merge remote-tracking branch 'savannah/master' into master-android-1 - 2024-03-23 Po Lu Enable calling decode_coding_object with both SRC and DST_OBJECT Qnil @@ -20807,8 +20880,8 @@ 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. @@ -20816,11 +20889,11 @@ special_coding_system. (android_saf_tree_readdir): Decode the file name using the android-jni coding system. - (special_vnodes): : Specify a file name coding system. + (special_vnodes) : 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. @@ -20829,26 +20902,26 @@ 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 - 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 (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) @@ -20863,24 +20936,26 @@ * 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 (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 @@ -20890,47 +20965,50 @@ 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 - * 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 (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 (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 @@ -20941,15 +21019,16 @@ (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 @@ -20960,22 +21039,22 @@ 2024-03-21 Stefan Monnier - 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 @@ -20983,30 +21062,31 @@ * 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 - (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) @@ -21018,9 +21098,8 @@ 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) @@ -21028,12 +21107,13 @@ (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. @@ -21059,8 +21139,8 @@ 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 @@ -21069,18 +21149,19 @@ * doc/emacs/android.texi (Android Windowing): Document restrictions on number of windows under Android 4.4 and earlier. - * java/AndroidManifest.xml.in - : Assign each class - of activity a unique task affinity. + * java/AndroidManifest.xml.in + : + : 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 + * java/org/gnu/emacs/EmacsWindow.java (EmacsWindow) : (figureChange): Replace coordinate HashMap with a SparseArray. * java/org/gnu/emacs/EmacsWindowAttachmentManager.java @@ -21113,12 +21194,12 @@ 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. @@ -21129,9 +21210,9 @@ Reported by john muhl . - * 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 @@ -21145,13 +21226,15 @@ 2024-03-19 Andrea Corallo - * 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 - * 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'. @@ -21174,8 +21257,7 @@ 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. @@ -21183,28 +21265,28 @@ 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 - * 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 - 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. @@ -21214,48 +21296,53 @@ (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 - (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 @@ -21267,10 +21354,10 @@ 2024-03-17 Juri Linkov * 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 @@ -21292,18 +21379,20 @@ * 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. @@ -21315,30 +21404,28 @@ 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 ()" to - "not ()" since that reads more grammatically - correct. + "not ()" 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 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): @@ -21354,9 +21441,8 @@ * 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. @@ -21372,18 +21458,18 @@ 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. @@ -21414,7 +21500,8 @@ 2024-03-16 Martin Rudalics - In window-related documentation write 'symbol' instead of 'constant' + In window-related documentation write 'symbol' instead of + 'constant'. Suggested by Michael Heerdegen . @@ -21423,7 +21510,7 @@ * 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 @@ -21445,36 +21532,36 @@ 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 - * 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 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 - * 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 - * 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 - * 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 @@ -21485,7 +21572,7 @@ 2024-03-15 Martin Rudalics - 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_. @@ -21504,28 +21591,30 @@ '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 - * 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 - 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. @@ -21536,8 +21625,8 @@ 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 @@ -21572,42 +21661,40 @@ 2024-03-15 Dmitry Gutov - (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 - 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 (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 - (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 @@ -21618,21 +21705,23 @@ 2024-03-14 Juri Linkov - * 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 * 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 @@ -21662,14 +21751,14 @@ 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 @@ -21684,11 +21773,11 @@ (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 - 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. @@ -21696,10 +21785,10 @@ 2024-03-14 Phil Hagelberg (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 (tiny change) @@ -21716,8 +21805,8 @@ (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 @@ -21727,14 +21816,13 @@ 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 - * 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 @@ -21749,10 +21837,10 @@ (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 @@ -21782,8 +21870,8 @@ 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 @@ -21796,8 +21884,8 @@ 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 @@ -21815,10 +21903,10 @@ 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. @@ -21828,57 +21916,52 @@ 2024-03-12 Jeremy Bryant - * 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 - 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 - Don't quote t - * lisp/which-key.el (which-key--replace-in-repl-list-many): Don't quote t. 2024-03-12 Jeremy Bryant - 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 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 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. @@ -21888,7 +21971,8 @@ 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. @@ -21899,8 +21983,8 @@ `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 @@ -21908,10 +21992,10 @@ 2024-03-12 Stefan Monnier - (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 @@ -21924,8 +22008,8 @@ (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 @@ -21952,12 +22036,12 @@ * 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): : New symbol. + Adjust for changes to the format of notification lists and cancel + non-resident notifications when an action is selected. + (syms_of_androidselect) : New symbol. 2024-03-12 Po Lu @@ -22020,49 +22104,51 @@ * src/androidvfs.c (java_string_class): Export. - * src/keyboard.c (kbd_buffer_get_event) : - Call callback specified by the event. + * src/keyboard.c (kbd_buffer_get_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 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 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 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 (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 @@ -22075,47 +22161,51 @@ 2024-03-10 Jim Porter - 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 - 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 - * 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 Stefan Monnier - * 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. @@ -22125,8 +22215,8 @@ 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 @@ -22134,21 +22224,22 @@ 2024-03-10 Tim Ruffing - 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 @@ -22156,29 +22247,31 @@ * 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 - * 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 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 @@ -22187,20 +22280,20 @@ * 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 (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 @@ -22209,34 +22302,35 @@ * 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 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 @@ -22245,8 +22339,6 @@ 2024-03-09 Stefan Monnier - (eglot-server-programs): Comment and whitespace only change - * lisp/progmodes/eglot.el (eglot-server-programs): Add comment. Make the definition fit into 80 columns. @@ -22263,14 +22355,16 @@ * 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. @@ -22279,15 +22373,16 @@ 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): @@ -22302,29 +22397,29 @@ * 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 (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 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 - * '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. @@ -22345,10 +22440,10 @@ 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 @@ -22367,23 +22462,24 @@ 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 (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 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): @@ -22395,23 +22491,20 @@ 2024-03-08 Stefan Monnier - 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 - * 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 - Update android_wc_lookup_string - * src/android.c (android_wc_lookup_string): Don't clear compose state upon modifier key depress. @@ -22420,19 +22513,20 @@ 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) @@ -22442,29 +22536,31 @@ 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 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. @@ -22474,14 +22570,15 @@ * 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 - * 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 @@ -22494,26 +22591,28 @@ (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 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 @@ -22527,24 +22626,22 @@ enable invoking features they protect from code running inside Emacs. -2024-03-08 Justin Burkett - - Merge pull request #367 from tarsiiformes/long-gone - 2024-03-08 Jonas Bernoulli 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 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 @@ -22557,25 +22654,23 @@ (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 - 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 - 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 - 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 @@ -22589,16 +22684,18 @@ 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. @@ -22606,19 +22703,22 @@ 2024-03-07 Juri Linkov - * 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 - 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... @@ -22629,7 +22729,8 @@ '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. @@ -22639,17 +22740,18 @@ 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. @@ -22662,7 +22764,8 @@ * 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 @@ -22674,7 +22777,7 @@ 2024-03-06 Andrea Corallo - * 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. @@ -22690,19 +22793,20 @@ 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 - * Makefile.in (install-info): Fix target (bug#69569). + * Makefile.in (install-info): Fix target. (bug#69569) 2024-03-05 Juri Linkov - * 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 @@ -22712,8 +22816,8 @@ 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)'. @@ -22722,23 +22826,25 @@ 2024-03-05 Juri Linkov - * 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 * 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 - * 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) @@ -22756,9 +22862,9 @@ 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 @@ -22766,12 +22872,12 @@ * 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. @@ -22795,8 +22901,7 @@ 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): @@ -22839,23 +22944,23 @@ (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 - 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 - 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 @@ -22864,7 +22969,7 @@ 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 @@ -22886,18 +22991,18 @@ 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 - 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 @@ -22910,19 +23015,19 @@ 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 - a 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 @@ -22936,8 +23041,8 @@ (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 @@ -22947,40 +23052,42 @@ (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 - Update tramp-androidsu - * doc/misc/tramp.texi (Quick Start Guide): Remove documentation pertaining to tramp-androidsu.el. (Inline methods): Document it here instead. @@ -23104,27 +23211,28 @@ (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. @@ -23137,48 +23245,50 @@ 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 - * 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 - * 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 - * 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 - * 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. @@ -23189,47 +23299,43 @@ 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 - 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 - 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 - * 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 - * 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 - * 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. @@ -23255,7 +23361,7 @@ 2024-03-02 Kazuhiro Ito - * lisp/language/japanese.el (map): Fix typo (bug#69494). + * lisp/language/japanese.el (map): Fix typo. (bug#69494) 2024-03-02 Kazuhiro Ito @@ -23263,7 +23369,8 @@ * 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 @@ -23273,45 +23380,45 @@ (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 - * 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 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. @@ -23328,45 +23435,45 @@ 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 - * 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 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 @@ -23381,21 +23488,23 @@ 2024-02-29 Andrea Corallo - * 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 - * 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 - * 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 @@ -23419,15 +23528,13 @@ 2024-02-29 Jeremy Bryant - 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 - 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 @@ -23438,9 +23545,11 @@ 2024-02-28 Andrea Corallo - * 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 -- 2.30.2