* etc/NEWS: Add an entry for `fill-region-as-paragraph-function'.
Document that `fill-region-as-paragraph-semlf' is a valid
`fill-region-as-paragraph-function' value. (Bug#78949)
This new command allows hide the mode line in the current
buffer. (Bug#78881)
* doc/emacs/display.texi (Optional Mode Line): Document feature.
* etc/NEWS: Announce changes.
* lisp/bindings.el (mode-line-invisible--buf-state): New buffer
local variable.
(mode-line-invisible-mode): New minor mode.
* lisp/vc/ediff-util.el
(ediff-clone-buffer-for-region-comparison): Wrap body in
'save-window-excursion', to make sure original window
configuration is restored after quitting 'ediff-regions-linewise'.
Suggested by Aaron Zeng <azeng@janestreet.com>. (Bug#78897)
* lisp/international/latexenc.el
(latexenc-find-file-coding-system): Search for "Local Variables"
as a comment.
Consider the case where `TeX-master' or `tex-main-file' is
globally set to a string as well. (AUCTeX bug#78841)
* lisp/vc/vc.el (vc-find-revision-no-save): After setting
buffer-read-only to non-nil, also run read-only-mode-hook,
and if view-read-only is non-nil, call view-mode-enter.
* lisp/vc/vc-hooks.el (vc-incoming-prefix-map)
(vc-outgoing-prefix-map): New keymaps.
(vc-use-incoming-outgoing-prefixes): New user option.
* lisp/vc/vc.el (vc-root-diff-incoming, vc-root-diff-outgoing):
New commands (bug#62940).
* doc/emacs/maintaining.texi (VC Change Log):
* etc/NEWS: Document the new commands and option.
The base tag is necessary to correctly resolve relative links.
* lisp/net/eww.el (eww-readable-dom): Retain the base tag in addition to
the title/link tags. (Bug#78948)
* test/lisp/net/eww-tests.el (eww-test--wordy-page): Add a base tag.
(eww-test/readable/default-readable): Test that the base tag is retained.
* lisp/vc/vc-hg.el (vc-hg-incoming-revision): Pull the incoming
revision if we don't have it.
(vc-hg-mergebase): Don't invoke 'hg pull'.
* lisp/vc/vc.el: Document that the incoming-revision backend
function, for distributed VCS, should fetch the incoming
revision into local storage.
* lisp/progmodes/project.el
(project--completion-table-with-category): New function.
(project--file-completion-table): Extract from here.
(project--read-project-buffer): Use it (bug#78931).
* lisp/uniquify.el (uniquify-get-unique-names): Return a list of
strings, and add text property 'uniquify-orig-buffer' to each,
pointing at the corresponding buffers (bug#77312).
* lisp/progmodes/project.el (project--read-project-buffer):
Look up that property's values here and build the alist.
This helps fix EWW readable mode on some web pages that use these tags,
like the FSF blog.
* lisp/net/eww.el (eww--walk-readability): Check for <style> and
<template> tags.
Expand the directory name passed to the
'package-vc-install-from-checkout' function so that paths like
"/path/to/pkg/./" are converted to "/path/to/pkg/". This
ensures that the package name defaults to "pkg" instead of ".".
* lisp/emacs-lisp/package-vc.el
(package-vc-install-from-checkout): Expand the provided
directory name. (Bug#78855)
Co-developed-by: Roi Martin <jroi.martin@gmail.com>
In [1: 77a4c63fda] "all" code sections were needlessly nested
below the ";;; Code:" section, which I do not like but can live
with. However, a few sections were missed; nest them here too.
Also put the "frontmatter" code, which in my libraries usually
is the only code located in the ";;; Code:" section, into a new
";;;; Frontmatter" sub-section. That way it is possible again
to cycle to the "show all headings but no code" state.
1: 2025-06-04 77a4c63fda
(outline--hidden-headings-paths): Fix slow saves (bug#78665)
* lisp/vc/vc-hg.el (vc-hg-print-log): Implement string LIMIT for
this backend. Use a DAG range when 'vc-log-view-type' is
'log-outgoing'. Document differences between -rN:M and -rN::M.
(vc-hg-log-view-mode): Treat 'log-incoming' and 'log-outgoing'
values for 'vc-log-view-type' as short logs too.
(vc-hg-log-incoming, vc-hg-log-outgoing): Delete.
* lisp/vc/vc-hg.el (vc-hg-mergebase): If the first attempt
fails, execute a pull, then try again.
(vc-hg-incoming-revision): Use 'hg identify' not 'hg incoming'.
The old code set `expand-list` to a vector of "marks" but also
supported it being set by third party code to a list.
The code to build and use the vector was a internally using
a list, so we cut the middle man and just always use a list so
it doesn't matter whether we set it or a third party code did.
* lisp/expand.el (expand-add-abbrevs): Use `mapc` instead of recursion.
(expand-add-abbrev): Add dummy `rest` arg so we can `apply` it blindly
in `expand-add-abbrevs`.
(expand-abbrev-hook): `expand-list` is never set to a vector any more.
(expand-do-expansion): Set `expand-list` to a list rather than a vector.
(expand-abbrev-from-expand): Use `abbrev-symbol`.
(expand-build-list, expand-build-marks): Delete functions, not used
any more.
Update the `fill-region-as-paragraph-semlf' function to follow the
`fill-region-as-paragraph-function' protocol. This allows us to
reimplement the `fill-paragraph-semlf' function using `fill-paragraph'
and `fill-region-as-paragraph-function'.
* lisp/textmodes/fill.el (fill-region-as-paragraph-semlf): Make this
function compatible with `fill-region-as-paragraph-function'. Avoid
narrowing.
(fill-paragraph-semlf): Reimplement using `fill-paragraph' and
`fill-region-as-paragraph-function'.
* test/lisp/textmodes/fill-tests.el (fill-test-semlf-fill-region): Add
test.
(fill-test-fill-paragraph-semlf-fill-paragraph-function): Remove test.
(fill-test-fill-paragraph-semlf, fill-test-semlf)
(fill-test-fill-paragraph-semlf-justify, fill-test-semlf-justify)
(fill-test-fill-paragraph-semlf-sentence-end-double-space)
(fill-test-semlf-sentence-end-double-space)
(fill-test-fill-paragraph-semlf-fill-column, fill-test-semlf-fill-column)
(fill-test-fill-paragraph-semlf-punctuation-marks)
(fill-test-semlf-punctuation-marks, fill-test-fill-paragraph-semlf-twice)
(fill-test-semlf-twice, fill-test-fill-paragraph-semlf-fill-prefix)
(fill-test-semlf-fill-prefix)
(fill-test-fill-paragraph-semlf-indented-block)
(fill-test-semlf-indented-block, fill-test-fill-paragraph-semlf-revert)
(fill-test-semlf-revert, fill-test-fill-paragraph-semlf-emacs-lisp-mode)
(fill-test-semlf-emacs-lisp-mode, fill-test-fill-paragraph-semlf-c-mode)
(fill-test-semlf-c-mode, fill-test-fill-paragraph-semlf-org-mode)
(fill-test-semlf-org-mode, fill-test-fill-paragraph-semlf-markdown-mode)
(fill-test-semlf-markdown-mode): User shorter function names consistent
with erts file names.
* test/lisp/textmodes/fill-resources/semlf-fill-region.erts: Add test
data.
* test/lisp/textmodes/fill-resources/semlf-fill-paragraph-function.erts:
Delete file.
* test/lisp/textmodes/fill-resources/semlf-emacs-lisp-mode.erts: Remove
newlines around indented block.
* doc/lispref/text.texi (Filling): Highlight that
`fill-region-as-paragraph-function' changes the behavior of
`fill-paragraph'.
* lisp/vc/vc-git.el (vc-git-print-log): When LIMIT and
START-REVISION are both supplied, use START-REVISION as the
newest commit, and LIMIT as a base (problem was introduced in
the commit adding 'vc-diff-mergebase' and 'vc-log-mergebase').
* lisp/vc/vc.el (vc-default-log-incoming)
(vc-default-log-outgoing): Fix order of START-REVISION and LIMIT
arguments passed to 'print-log' backend function.
(vc-log-mergebase): Fix order of START-REVISION and LIMIT
arguments passed to 'vc-print-log-internal'.