* lisp/progmodes/elisp-mode.el (elisp-fontify-symbol): Mark
the 'cursor-sensor-functions' property as 'rear-nonsticky',
to adapt to 'cursor-sensor-mode' taking into account
property stickiness since f4a1c00656. See also bug#80593.
* lisp/whitespace.el (whitespace-global-mode-buffers): New custom
option.
(whitespace-enable-predicate): Use it.
(whitespace-global-modes): Refer to the new option.
* doc/lispref/windows.texi (Window Sizes):
* src/window.c (Fwindow_body_height, Fwindow_total_height)
(Fwindow_total_width, Fwindow_body_width): Clarify that window
dimensions are returned in canonical columns and lines.
(Bug#80620)
This minor mode configures hs-minor-mode to use
indentation-based folding.
* lisp/progmodes/hideshow.el (hs-hideable-block-p): New
function.
(hs-indentation-respect-end-block): New option.
(hs-indentation--store-vars): New variable.
(hs-cycle-filter, hs-get-first-block-on-line, hs-get-near-block)
(hs-find-block-beg-fn--default): Adapt code to use
'hs-hideable-block-p'.
(hs-block-positions): Update.
(hs-indentation-mode): New minor mode.
* doc/emacs/programs.texi (Hideshow): Update documentation.
* etc/NEWS: Announce changes
* test/lisp/progmodes/hideshow-tests.el: Add 'require'.
(hideshow-check-indentation-folding): New test.
Eliminate an annoying event-loop delay after dropping into an
Emacs window.
* src/nsterm.m: ([EmacsView performDragOperation:]): Kick the
event loop after posting the DRAG_N_DROP_EVENT.
* lisp/simple.el (blink-matching-paren-offscreen): Inherit from
show-paren-match face.
(blink-paren-open-paren-line-string): Add blink-matching-paren-offscreen
face properties to opening paren instead of replacing original
fontification.
* lisp/paren.el (show-paren-context-when-offscreen): Mention
blink-matching-paren-highlight-offscreen in docstring.
* src/widget.c (EmacsFrameRealize): Assign bit_gravity, and use
the value of NorthWestGravity which matches the GTK3 behavior,
and the general intuition that window's contents should move
with its top-left corner. The result is that the frame is not
blinking during resizing (bug#80369).
* src/xfns.c (x_window) [!USE_X_TOOLKIT]: Change bit_gravity from
StaticGravity to NorthWestGravity as well, to match the others.
This makes :vc behave more like 'package-vc-install'.
* lisp/use-package/use-package-core.el (use-package-normalize/:vc):
Translate :vc arguments that are just a string into a minimal
package specification containing only a :url field, thus
preventing a type error down the line.
Further to bug#80428, they are no longer used since commit of
2018-08-05 "Simplify regex-emacs code by assuming Emacs".
Suggested by Pip Cet <pipcet@protonmail.com>.
* src/conf_post.h [emacs] (RE_TRANSLATE_TYPE): Remove;
no longer used except under lib-src.
[emacs] (RE_TRANSLATE): Remove; redefined in src/regex-emacs.c.
* doc/lispref/lists.texi:
* lisp/emacs-lisp/let-alist.el (let-alist): Improve docs.
Namely, clarify that 'let-alist' does not "see" symbols
introduced by macro-expansion in its body, and that the
generated code looks up symbols in the alist whether or not
they are actually used in runtime.
See also bug#79706 for some relevant discussion.
* doc/lispref/lists.texi (Building Lists): Document it.
* etc/NEWS: Mention it.
* lisp/emacs-lisp/shortdoc.el (list): Demonstrate it.
* lisp/subr.el (ensure-proper-list): Add it.
* doc/emacs/custom.texi (Newcomers Theme): Move to the beginning
of the node, so as to be visible even when the Emacs frame is
too small and wrap it in a conditional to not print the message
in non-Info outputs.
* .dir-locals.el (c-noise-macro-names): Remove ANDROID_EXPORT, which
is no longer used. Add ATTRIBUTE_COLD, ATTRIBUTE_CONST,
ATTRIBUTE_MAY_ALIAS, ATTRIBUTE_NONSTRING, ATTRIBUTE_RETURNS_NONNULL,
EXTERNALLY_VISIBLE, MAYBE_UNUSED, and NODISCARD.
(c-noise-macro-with-parens-names): Also tell cc-mode about some
function-like attribute macros in use (bug#80428).
* src/conf_post.h (RE_TRANSLATE_P): Remove; it is no longer used.
* lisp/info.el (Info-find-node-2): Don't skip the header or
breadcrumbs line when 'scroll-conservatively' is set to a value
that could leave the beginning of the node outside of the window.
(Bug#80553)
* lisp/textmodes/flyspell.el (flyspell-generic-progmode-verify):
Take into account the word 'flyspell-auto-correct-previous-word'
moved to (i.e., the word starting at point, not the character
before point), when checking whether it should be checked/corrected
by flyspell-prog-mode. (Bug#80289)
Copyright-paperwork-exempt: yes
* lisp/vc/smerge-mode.el (smerge--refine-set-overlay-props):
New function, extracted from `smerge--refine-prepare-regions`.
(smerge--refine-prepare-regions): Take overlays rather than beg/end
arguments and remove all overlay property manipulation.
(smerge-refine-regions): Create the overlays and pass them to those
two functions.
* etc/NEWS: Describe the change.
* lisp/progmodes/etags-regen.el
(etags-regen-create-on-completion): New option.
(etags-regen-create-on-completion--set): New function.
(etags-regen-mode): Use it. Discussed in
https://lists.gnu.org/archive/html/emacs-devel/2026-03/msg00405.html
* doc/misc/use-package.texi (Install package): Add an example
block that doesn't use :rev, and instead shows that you can just
pass a URL as a string to :vc.
* build-aux/git-hooks/pre-commit: Use EMACS_GIT_CORE_WHITESPACE,
not the global core.whitespace, for whitespace checks when committing.
This defaults to empty, which means to use the Git default, and
this should fix Bug#80428 “C indentation in .gitattributes, macros
in .dir-locals.el”. The environment variable is a better way to
temporarily override the default.
With the portable dumper it's no longer needed as discussed in
bug#79021. Originally this was done for the unexec based dumping (see
bug#4287 and commit 0e328d3779).
* src/xdisp.c (display_menu_bar): Return immediately if the
menu-bar items were not yet computed. This avoids assertion
violations when this function is called as part of creating a new
frame. (Bug#80603)