* 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)
* lisp/progmodes/project.el: Remove stale compilation-read-command
declarations. Autoload recompile for Emacs versions prior to 31, to
allow calling project-recompile before project-compile (bug#74631).
(project-recompile): Set compilation-directory to avoid recompile
using a value unrelated to the current project (bug#68570).
An alternative to setting window-height and preserve-size is to rely
on display-buffer--maybe-at-bottom's support for
temp-buffer-resize-mode.
* lisp/progmodes/project.el (project-kill-buffers): Set
window-height to a function, not a form/cons (bug#52148).
* lisp/emacs-lisp/comp.el (comp--func-unique-in-cu-p): Check
only the callee name instead of requiring global uniqueness.
* test/src/comp-resources/comp-test-direct-call.el: New file.
* test/src/comp-resources/comp-test-direct-call-dup.el: New file.
* test/src/comp-tests.el (comp-tests-has-direct-call-p)
(comp-tests-direct-call-with-lambdas)
(comp-tests-direct-call-with-duplicate-names): New tests.
* doc/emacs/maintaining.texi (Looking Up Identifiers): Document
it.
* etc/NEWS (bindings): Mention it.
* etc/themes/newcomers-presets-theme.el (newcomers-presets): Add
it.
* lisp/progmodes/xref.el (xref-mouse-mode-map, xref-mouse-mode)
(global-xref-mouse-mode): Implement it.
* lisp/emacs-lisp/package.el (package-maintainers): Detect if
:maintainers contains on a single cons-cell, denoting a single
maintainer, in which case we wrap it in a singleton list.
With bug#59527 we ensured that the open paren line string was fontified
which was broken again with bug#63089 because there, the opening paren
was fontified with a new face.
With this change, the returned string is fontified again. Only if
`blink-matching-paren-highlight-offscreen' is non-nil, the opening paren
is unfontified and then fontified again with the
`blink-matching-paren-offscreen' face.
* lisp/simple.el (blink-paren-open-paren-line-string): Keep returned
line string fontified with slight exception if
`blink-matching-paren-highlight-offscreen' is non-nil.
* lisp/emacs-lisp/package-activate.el (package--add-info-node):
Use 'Info-default-directory-list' if Info has not been
initialized, otherwise fall back to 'Info-directory-list'
without calling 'info-initialize' beforehand, since the function
initializes 'Info-directory-list'. (Bug#80495)
* etc/themes/newcomers-presets-theme.el
(newcomers-presets-mode-enabled-local-modes): Interpret the
variable as a proper alist without duplicate keys.
(newcomers-presets-mode): Handle new structure.
* lisp/progmodes/elisp-mode.el (elisp--read-symbol-shorthands):
New function, extracted from `elisp--completion-local-symbols`.
Remember the longhand symbol in `elisp--longhand` property.
(elisp--completion-local-symbols): Use it.
(elisp--shorthand-aware-fboundp, elisp--shorthand-aware-boundp):
Use the new `elisp--longhand` property.
This change is partially necessary due to the changes to
'package-maintainers' in 4b253c39b1.
* test/lisp/emacs-lisp/package-vc-tests.el (prepare-patch): Do
not match exact order of headers, and do not match exact syntax
of email address.
* lisp/vc/smerge-mode.el (smerge--refine-chopup-region):
Replace `beg..end` arg with an overlay.
(smerge-refine-regions): Replace `beg` arg with an overlay.
(smerge--refine-prepare-regions, smerge--refine-apply-diff-1):
New functions, extracted from `smerge-refine-regions`.
(smerge--refine-apply-diff): New function.
(smerge-refine-regions): Use them. Also delete temp files right after
running `diff` rather than after applying diff's output.
* lisp/simple.el (next-line, previous-line): Remove useless
`condition-case` handler, and hence the whole `condition-case`, and
then simplify.
* lisp/emacs-lisp/comp.el (comp--error-add-context): New function.
(comp--native-compile): Use it.
* lisp/gnus/nnrss.el (nnrss-insert): Use `with-demoted-errors`.
* lisp/textmodes/emacs-news-mode.el (emacs-news-find-heading):
HEADING must be a complete line, otherwise we have false positives
and false negatives. (Bug#80569)
* lisp/progmodes/flymake.el (flymake-goto-next-error): Use
cl-member-if not member-if and cl-plusp not plusp because this
is a `:core' ELPA package (bug#79930).
* lisp/progmodes/flymake.el (flymake-diagnostics-buffer-mode-map):
Only bind 'n' and 'p' when 'next-error-this-buffer-no-select' is
defined. For releasing on ELPA (bug#79930).
Bump the package version to 1.4.4.