65eff4fd4f ; Properly initialize 'package-load-list' for 'package-is...
effafd92e0 Load all dependencies when isolating a package
293eaf323a Have 'frame-deletable-p' check other frame's terminal (Bu...
The following commits were skipped:
ab5062855d ; * etc/NEWS: Move "Miscellaneous" to end of its section.
75b4b8932f ; * etc/NEWS: Copyedit.
f561bc6c37 ; * etc/NEWS: Use a non-commercial example.
The async native compilation queue can sometimes retain stale jobs
for files that no longer exist on disk (for example, when files are
removed during a package upgrade or deletion). Attempting to resolve
the target .eln filename for these missing files signals a
file-missing error.
* lisp/emacs-lisp/comp-run.el (comp--run-async-workers): Verify
source files exist before attempting to resolve their .eln paths in
the dispatch loop. In the process sentinel, wrap the compilation
block in a condition-case to catch file-missing errors and prevent
the async worker queue from stalling.
* src/w32font.c (font_supported_scripts): Fix 'tai-lue' bits.
Remove 'kanbun'. Fix 'cypriot-syllabary'. Fix 'symbol' bits.
(fill_in_logfont): Remove 'kanbun'. Don't ask for GB2312 fonts
when looking for fonts supporting Yi script on Windows 10 or
later, as that causes supporting fonts to be missed.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Add scripts which were mistakenly
omitted. Fix fontset setup for Syriac and N'ko scripts. Add
ol-onal. More symbols supported by Symbola.
* admin/unidata/blocks.awk: Special rules for U+FFFC and U+FFFD.
Map Kanbun to han. Map Vertical Forms to cjk-misc.
* lisp/progmodes/cperl-mode.el (cperl--signature-rx): Allow for a
colon before a variable name to declare a named parameter
(cperl--sloppy-signature-rx): dito
(cperl-init-faces): dito
(introduction): Delete an obsolete comment
* test/lisp/progmodes/cperl-mode-tests.el
(cperl-test-signature-rx): Add a test case for a signature with
named parameters
(cperl-test-fontify-attrs-and-signatures): Verify correct
fontification of a named parameter
* test/lisp/progmodes/cperl-mode-resources/proto-and-attrs.pl: Add
test code for named signatures
* etc/NEWS: Announce Perl 5.44 syntax support
A report touches the eol overlays whose style could be influenced by
current-ish position. Saving point and going back to it, isn't 100%
accurate (point may have moved between scheduling and multiple reports),
but it is probably more than decent. A marker would be better but
requires at least a buffer-local var for proper cleanup, which is
overkill IMO.
* lisp/progmodes/flymake.el (flymake-make-report-fn): Use
point-marker and save-excursion.
* lisp/dired-aux.el (dired-insert-subdir): Call
`dired--check-use-ls-dired' instead of inlining the body of the
removed function `dired--ls-accept-b-switch-p'.
* lisp/window.el (display-buffer-default-alist): Rewrite doc-string.
* doc/lispref/windows.texi (Choosing Window): Say how to use the
new 'display-buffer-default-alist' variable.
This fixes a bug reported on 2026-08-08 on bug-cc-mode.gnu.org.
* lisp/progmodes/cc-menus.el
(cc-imenu-objc-generic-expression): Reverse the order of the
tests in the regexp for a C function and for @implementation
(etc.), so that "@end // Classname (foo)" won't get recognised
as a C function.
(cc-imenu-objc-function): Test an ostensible "C function" for
having a ?@ at column 0. Further coding fixes to prevent ghost
entries getting appended to the function's result, and to
append all pertinent method entries.
* lisp/erc/erc-speedbar.el (erc-speedbar--ensure): Remove assertion for
robustness even though it should still pass.
(erc-speedbar--get-timers): Remove unused function.
(erc-speedbar--dframe-controlled): Fix failing assertion related to
changes from bug#81561, namely the negating of the condition in
`dframe-set-timer' that checks whether `dframe-client-functions' is
nonempty.
* test/lisp/erc/erc-scenarios-status-sidebar.el
(erc-scenarios-status-sidebar--nickbar): Inline body of deleted function
`erc-speedbar--get-timers'.
This is a change specific to emacs-31. Don't merge to master.
* lisp/progmodes/eglot.el: (Version): Mark it 1.24.31
* etc/EGLOT-NEWS (1.24.31): Fill in section.
Replace flymake-show-diagnostics-at-end-of-line with a simpler, more
powerful flymake-inline-diagnostics. The new variable has an easier name
offers the new possibilities inspired by other packages, of having only
the current diagnostic be affected by each setting..
* doc/misc/flymake.texi: Update.
* etc/NEWS: Update
* lisp/progmodes/flymake.el (flymake-annotation-style): New variable.
(flymake-inline-annotation-face)
(flymake-error-inline, flymake-warning-inline)
(flymake-note-inline): New faces.
(flymake--highlight-line)
(flymake--handle-report)
(flymake-after-change-function): Update to use new variable name.
(flymake--update-current-eol-overlay): New helper.
(flymake--eol-current-overlay): New variable.
(flymake--update-all-eol-overlays): Rename from flymake--update-eol-overlays.
(flymake-make-report-fn): Keep point stable.
(flymake--update-eol-overlays): Tweak.
(flymake--eol-overlay-summary): Rewrite.
(flymake-mode): Set post-command-hook
(flymake--update-eol-overlays): Rework.
(flymake--update-eol-overlays-1): New helper.
(flymake-diagnostic-format-alist): Enhance.
(flymake--format-diagnostic): Handle old :eol value.
(flymake-inline-annotation-face)
(flymake-error-inline)
(flymake-warning-inline)
(flymake-note-inline): New faces.
(flymake-show-diagnostics-at-end-of-line)
(flymake-end-of-line-diagnostics-face)
(flymake-error-echo-at-eol)
(flymake-warning-echo-at-eol)
(flymake-note-echo-at-eol): Deprecate
(flymake--eol-draw-fancy): Tweak geometry slightly
Emacs 26 doesn't have with-supressed-warnings
bug#79930
* lisp/progmodes/flymake.el (flymake-goto-next-error): Use with-no-warnings.
(Version): Bump to 1.4.6
* etc/NEWS:
* doc/emacs/custom.texi (Changing a Variable):
Use more user-friendly representation of the
key sequence 'C-c TAB' as it's displayed in
the Help buffer for 'Custom-goto-first-choice'.
Fix typos in keybindings.
* lisp/replace.el (query-replace-show-preview): New user option.
(query-replace-preview): New face.
(query-replace-eval-replacement-regexp): New constant, extracted
from...
(query-replace-compile-replacement): ...here.
(replace-preview-overlays): New variable.
(replace-preview-cleanup, replace-preview-update)
(replace-preview-setup): New functions.
(query-replace-read-to): New optional argument DELIMITED-FLAG.
(query-replace-read-args): Pass the delimited flag to
'query-replace-read-to'.
* lisp/isearch.el (isearch-query-replace): Pass the delimited
flag to 'query-replace-read-to'.
* test/lisp/replace-tests.el (replace-tests--preview): New
helper.
(replace-tests-preview-update, replace-tests-preview-cleanup)
(replace-tests-preview-disabled): New tests.
* doc/emacs/search.texi (Replace): Document the preview.
* etc/NEWS: Announce it.
Outline provides two search strategies to locate headings. If
`outline-search-function' is defined, it is used to find the headings.
Otherwise, `outline-regexp' is used. Reimplement `outline-occur' as
`outline-xref' using Xref and accepting a search function. This
supports both search strategies and ensures that the headings detected
by `outline-xref' match the Outline ones.
* lisp/outline.el (outline-mode-prefix-map): Update binding.
(outline-mode-menu-bar-map): Update menu item.
(outline-occur-regexp): Remove variable.
(outline-occur): Remove function.
(outline-xref--fetch-headings, outline-xref--show-xrefs, outline-xref):
New functions (bug#81579).
* test/lisp/outline-tests.el (outline-tests--outline-occur)
(outline-tests--outline-occur-override)
(outline-tests--outline-occur-undefined-regexp): Remove tests.
(outline-tests--outline-xref-search-function)
(outline-tests--outline-xref-regexp)
(outline-tests--outline-xref-undefined): New tests.
Rename `custom-check-value` to `custom-check-values` and make it hold
a list of values whose type-check is pending. Check it in
`custom-declare-variable` rather than `custom-initialize-reset` to fix
bug#81372.
* lisp/custom.el (custom-initialize-reset): Don't type check previous
setopt values.
(custom-declare-variable): Do it here instead. Change warning message
to clarify that the erroneous value was provided in some earlier setopt call.
* lisp/cus-edit.el (setop--set): Push to the `custom-check-values` only if
we can't do the type check yet, to avoid duplicate warnings (and memory
leaks).
(setopt--set-local): Fix indentation and add FIXMEs.
* lisp/net/tramp-sh.el (tramp-remote-inotifywait-with-P): New defun.
(tramp-sh-handle-file-notify-add-watch): Use it.
* lisp/net/tramp.el (with-tramp-progress-reporter):
Let-bind `inhibit-message'.
* src/xdisp.c (move_it_in_display_line_to): Restore the
it->start_of_box_run_p flag upon exiting, to the value it had
before calling PRODUCE_GLYPHS for the last time, if the iterator
didn't move to the next display element. This prevents losing the
flag in further calls to move_it_* functions. (Bug#81570)
This couldn't be reproduced here, but seems nevertheless possible. The
previous (run-at-time 0...) technique for the window/showDocument
handling never really avoided the fact that that timer could kick during
the accept-process-output of jsonrpc-request, thus happening before the
response to the original request. Since the handling evolves a lot of
output to send to the process, it could be interrupted by the 'throw'
that's meant to exit abort 'accept-process-output' (and only that).
This commit should ensure the sequence is always this one.
a1. -> adals/ff-thingy sync client request
b1. <- window/showDocument server request
b2. -> window/showDocument client response (after scheduling 'c')
a2. <- ada/ff-thingy server response
c. -> f-f-no-select, Eglot sends the large didOpen notification
* lisp/progmodes/eglot.el (eglot-handle-request): Maybe use
"post command" once trick.
* src/window.c (struct save_window_data): New slot change_stamp.
(Fset_window_configuration): Restore the old_buffer of a window
from the saved old_buffer only if the change stamps of the frame
and save_window_data are the same (Bug#81589).
(Fcurrent_window_configuration): Store FRAME's current change
stamp in save_window_data.
* lisp/dframe.el (dframe-set-timer): Fixed the condition for removing
the timer (the code does not match what is written in the comment).
* lisp/speedbar.el (speedbar-window--close): 'speedbar-set-timer' must
be called from the 'speedbar-buffer'.