]> git.eshelyaron.com Git - emacs.git/log
emacs.git
2 months ago; Skip commit 37a097d86631b7897ceea2c01ecbf6c0039cb15e
Eshel Yaron [Mon, 2 Sep 2024 10:51:40 +0000 (12:51 +0200)]
; Skip commit 37a097d86631b7897ceea2c01ecbf6c0039cb15e

2 months ago; Fix typos
Michael Albinus [Thu, 29 Aug 2024 13:52:16 +0000 (15:52 +0200)]
; Fix typos

* doc/lispref/control.texi (cond* Macro):
* etc/NEWS: Fix typos.

(cherry picked from commit 00f9927693ae31868d1e9f676cd2cd9d8446cb59)

2 months ago; Skip commit 0fb50e2631656546004d25d81518f9bc8c06d0c2
Eshel Yaron [Mon, 2 Sep 2024 10:51:13 +0000 (12:51 +0200)]
; Skip commit 0fb50e2631656546004d25d81518f9bc8c06d0c2

2 months agoxwidget: Fix xwidget-at misinterpreting non-xwidget text-properties
George Huebner [Sun, 14 Jul 2024 06:46:07 +0000 (01:46 -0500)]
xwidget: Fix xwidget-at misinterpreting non-xwidget text-properties

'xwidget-open' wrongly assumed the the text-property at
min-position is an xwidget, if it exists; the fix is just
returning nil if the text-property isn't an xwidget.
* lisp/xwidget.el (xwidget-at): Use 'ignore-errors'.  (Bug#72848)

Copyright-paperwork-exempt: yes
(cherry picked from commit d05d8c336c82457dcad3b924b19c3bb57ff0e791)

2 months agoFix rare segfaults due to freed fontsets
Eli Zaretskii [Thu, 29 Aug 2024 09:56:27 +0000 (12:56 +0300)]
Fix rare segfaults due to freed fontsets

* src/xfaces.c (recompute_basic_faces): Force complete
recalculation of non-ASCII faces and their fontsets if any
non-ASCII faces are in the frame's face cache.  (Bug#72692)

(cherry picked from commit 13f69f254cfacfcc780b49c34e044b39dc333732)

2 months ago; * lisp/simple.el (use-region-beginning, use-region-end): Doc fix.
Eli Zaretskii [Thu, 29 Aug 2024 09:33:30 +0000 (12:33 +0300)]
; * lisp/simple.el (use-region-beginning, use-region-end): Doc fix.

(cherry picked from commit 427fb319dabf2b7fa4526f244d1e8d57f9e6cca0)

2 months agoDocument 'cond*'
Eli Zaretskii [Thu, 29 Aug 2024 09:02:08 +0000 (12:02 +0300)]
Document 'cond*'

* doc/lispref/control.texi (cond* Macro): New subsection.
Text written by Richard Stallman <rms@gnu.org>.
* etc/NEWS: Document 'cond*'.

(cherry picked from commit 38650b630bdb8b105a7e3c917cc8053133681abc)

2 months agoSupport "/dev/null" as a target when creating Eshell handles
Jim Porter [Thu, 29 Aug 2024 02:12:29 +0000 (19:12 -0700)]
Support "/dev/null" as a target when creating Eshell handles

Previously, you could only use this when setting the handle afterwards.

* lisp/eshell/esh-io.el (eshell-set-output-handle): Don't catch
'eshell-null-device' here...
(eshell-get-target): ... catch it here.

* test/lisp/eshell/eshell-tests.el
(eshell-test/eshell-command/output-dev-null): New test (bug#72857).

(cherry picked from commit b6f4ffcc106fdbc21dfea45c75fdc4f217d8f201)

2 months agoFix redirecting Eshell output to symbols in some places
Jim Porter [Thu, 29 Aug 2024 01:53:03 +0000 (18:53 -0700)]
Fix redirecting Eshell output to symbols in some places

* lisp/eshell/esh-io.el (eshell-output-object-to-target): Don't require
TARGET to be bound.

* lisp/eshell/em-script.el (eshell-execute-file):
* lisp/eshell/eshell.el (eshell-command): Quote the output/error
targets.

* test/lisp/eshell/em-script-tests.el (eshell-execute-file-output): New
variable.
(em-script-test/execute-file/output-symbol): New test.

* test/lisp/eshell/eshell-tests.el (eshell-command-output): New
variable.
(eshell-test/eshell-command/output-symbol): New test (bug#72857).

(cherry picked from commit e269cf63a67d529740d0ec2382ae7c3a982cd064)

2 months agoUse 'eshell-with-handles' in a few more places
Jim Porter [Thu, 29 Aug 2024 01:30:29 +0000 (18:30 -0700)]
Use 'eshell-with-handles' in a few more places

* lisp/eshell/em-alias.el (eshell-write-aliases-list):
* lisp/eshell/em-script.el (eshell-batch-file):
* lisp/eshell/esh-cmd.el (eshell-command-to-value):
* lisp/eshell/eshell.el (eshell-command): Use 'eshell-with-handles'.

* test/lisp/eshell/esh-io-tests.el (eshell-test-file-string): Move to...
* test/lisp/eshell/eshell-tests-helpers.el (eshell-test-file-string):
... here.

* test/lisp/eshell/eshell-tests.el
(eshell-test/eshell-command/output-file):
* test/lisp/eshell/em-script-tests.el
(em-script-test/execute-file/output-file): New tests.

(cherry picked from commit 5c68545a936ab42df90c8498ca77207a5e6aff1f)

2 months ago; Document copyright pitfalls
Po Lu [Thu, 29 Aug 2024 00:54:41 +0000 (08:54 +0800)]
; Document copyright pitfalls

* admin/notes/years: Document that nt/*.rc.in,
etc/images/gud/README, and configure.ac, need manual
intervention.

(cherry picked from commit 9cd88bd62a6b266f866e56f21c62156d24075dac)

2 months ago; Fix typos
Stefan Kangas [Wed, 28 Aug 2024 22:17:10 +0000 (00:17 +0200)]
; Fix typos

(cherry picked from commit e6c72aec9d7eba8f3312811a1b6dc925850460f4)

2 months agoUse 'eshell-with-handles' when executing an Eshell file
Jim Porter [Wed, 28 Aug 2024 20:59:04 +0000 (13:59 -0700)]
Use 'eshell-with-handles' when executing an Eshell file

This makes sure we close the handles as we should, which is important
for writing the output to an actual file (bug#72857).

* lisp/eshell/em-script.el (esh-cmd): Require this, just to be explicit.
(eshell-execute-file): Use 'eshell-with-handles'.

(cherry picked from commit e97ab1c41332e179939f457cc010a606a5124ff8)

2 months ago(message-hide-headers): Don't bind `inhibit-modification-hooks`
Stefan Monnier [Wed, 28 Aug 2024 19:33:05 +0000 (15:33 -0400)]
(message-hide-headers): Don't bind `inhibit-modification-hooks`

This binding dates back at least to 2004 (where we bound
`after-change-functions` instead).  Maybe it had a real impact in the past,
but nowadays I can't see any effect other than maybe a negligible
performance improvement at the cost at breaking some uses of
`before-after-change-functions`.

* lisp/gnus/message.el (message-hide-headers):
Don't bind `inhibit-modification-hooks`.

(cherry picked from commit 10802fb00f59594fa8e524e836eaf0e99e87dec9)

2 months agoSend useless output in flymake-tests to /dev/null (bug#70716)
Mattias Engdegård [Wed, 28 Aug 2024 17:24:55 +0000 (19:24 +0200)]
Send useless output in flymake-tests to /dev/null (bug#70716)

* test/lisp/progmodes/flymake-resources/Makefile (check-syntax):
Avoid producing a useless file named `-.o` in the source tree.

(cherry picked from commit 1ae861ad7e5b42f9ff4a3d51316ec6bba379670b)

2 months agoEglot: fix completion highlighting (bug#72824)
Dmitry Gutov [Tue, 27 Aug 2024 23:20:33 +0000 (02:20 +0300)]
Eglot: fix completion highlighting (bug#72824)

* lisp/progmodes/eglot.el (eglot-completion-at-point):
Make sure to refer to 'completion-ignore-case' in the
'all-completions' method.

(cherry picked from commit 9ffa38d3925d70dea704988f68e9e3eca6c7d19c)

2 months agoHide tramp-mode
Michael Albinus [Tue, 27 Aug 2024 14:47:54 +0000 (16:47 +0200)]
Hide tramp-mode

* doc/misc/tramp.texi (Frequently Asked Questions): Remove tramp-mode.

* lisp/net/tramp.el (tramp-mode): Make it a defvar.  People shouldn't
customize it manually.

(cherry picked from commit bfaa3e029f65a9f2a2509a370579ecb74589ddc5)

2 months ago; Skip commit 6827335538d10cf487f07053ffb6d94259c26606
Eshel Yaron [Mon, 2 Sep 2024 10:47:03 +0000 (12:47 +0200)]
; Skip commit 6827335538d10cf487f07053ffb6d94259c26606

2 months ago; * admin/make-tarball.txt: Document gotcha.
Eli Zaretskii [Tue, 27 Aug 2024 12:50:14 +0000 (15:50 +0300)]
; * admin/make-tarball.txt: Document gotcha.

(cherry picked from commit d6880bc24ddf25c4bb814d80534ae66949142162)

2 months agoDiscuss commit log messages on feature branches
Sean Whitton [Tue, 27 Aug 2024 04:22:01 +0000 (12:22 +0800)]
Discuss commit log messages on feature branches

* admin/notes/git-workflow (Long-lived feature branches): New
section, discussing commit log messages on feature branches.

(cherry picked from commit afee71273b7041377148fbcfb554db5b45bcb3c9)

2 months ago* admin/authors.el (authors-fixed-entries): Update docstring.
Sean Whitton [Tue, 27 Aug 2024 04:13:31 +0000 (12:13 +0800)]
* admin/authors.el (authors-fixed-entries): Update docstring.

(cherry picked from commit 77302ccb6aa111ec1a4360a2a80b34b1e1ca4604)

2 months agoMore consistent treesit-forward-sexp around comments (bug#72525)
Yuan Fu [Tue, 27 Aug 2024 02:43:00 +0000 (19:43 -0700)]
More consistent treesit-forward-sexp around comments (bug#72525)

* lisp/treesit.el (treesit-forward-sexp): Check if point is strictly
inside a comment or string, only then use the default forward-sexp
function; otherwise use tree-sitter's forward-sexp routine.

(cherry picked from commit 3a4839d142757ce6fabe81473e337acd13f51826)

2 months agoImprove php-ts-mode font lock and support latest grammar (bug#72796)
Vincenzo Pupillo [Sat, 24 Aug 2024 21:16:09 +0000 (23:16 +0200)]
Improve php-ts-mode font lock and support latest grammar (bug#72796)

* lisp/progmodes/php-ts-mode.el:
(php-ts-mode--language-source-alist): Update the parser version.
(php-ts-mode--parent-html-heuristic): Fix commentary.
(php-ts-mode--keywords): Add "exit" keyword.
(php-ts-mode--predefined-constant): Added math constant.
(php-ts-mode--font-lock-settings): New and improved rules.

(cherry picked from commit 31293155879f5b44fc89fda2f22b41e3e5892430)

2 months agoFix tree-sitter local parser overlay cleanup routine
Yuan Fu [Mon, 26 Aug 2024 00:59:51 +0000 (17:59 -0700)]
Fix tree-sitter local parser overlay cleanup routine

Sorry for sneaking in a sizable commit so late.  But I just found out
about this bug and it has to be fixed.  Before this change, we weren't
properly cleaning up overlays that store local parsers.  And in the case
of doxygen local parser in C files, the doxygen local parser overlay
sometimes bleeds out of comments and into other code, and interferes
with font-lock and indentation.

This commit adds a cleanup function that'll cleanup any overlays that
aren't being used.  I tested with doxygen in C files and everything
works smoothly now, including tricky tests like removing the ending "*/"
of a doxygen comment and adding it back.

The idea is simple, at the end of each call to (treesit-update-ranges
BEG END), we remove any overlay within BEG and END that wasn't touched
by the range setting code.

* lisp/treesit.el (treesit--cleanup-local-range-overlays): New function.
(treesit--update-ranges-local): Remove code for cleaning up zero-length
overlays since we have the cleanup function now.
(treesit-update-ranges): Wrap the function body inside a let form, which
defines modified-tick; and add a call to
treesit--cleanup-local-range-overlays at the very end.

(cherry picked from commit b8c05d73a1105851bbe9871d6a64efc06ddc5b6e)

2 months agoFix copyright years by hand (Bug#72809)
Stefan Kangas [Mon, 26 Aug 2024 00:46:02 +0000 (02:46 +0200)]
Fix copyright years by hand (Bug#72809)

These are dates that admin/update-copyright did not update.

(cherry picked from commit aa6ed7f67ec7ed08224e6ab2aab0a5b65f2bc314)

2 months ago; (el-create-index): Cease indexing functions twice.
Eshel Yaron [Mon, 2 Sep 2024 10:42:51 +0000 (12:42 +0200)]
; (el-create-index): Cease indexing functions twice.

2 months ago; * lisp/imenu.el: Simplify.
Eshel Yaron [Mon, 2 Sep 2024 10:40:48 +0000 (12:40 +0200)]
; * lisp/imenu.el: Simplify.

2 months ago; el.el, scope.el: Minor improvements.
Eshel Yaron [Tue, 27 Aug 2024 15:00:02 +0000 (17:00 +0200)]
; el.el, scope.el: Minor improvements.

2 months ago; * lisp/imenu.el (imenu--index-alist): Update docstring.
Eshel Yaron [Tue, 27 Aug 2024 11:23:54 +0000 (13:23 +0200)]
; * lisp/imenu.el (imenu--index-alist): Update docstring.

2 months agoLess chatty indentation
Eshel Yaron [Tue, 27 Aug 2024 11:23:12 +0000 (13:23 +0200)]
Less chatty indentation

2 months agoAdd convenience to Tramp
Michael Albinus [Mon, 26 Aug 2024 16:48:53 +0000 (18:48 +0200)]
Add convenience to Tramp

* doc/misc/tramp.texi (Inline methods): Add tramp-docker-program,
tramp-podman-program, tramp-kubernetes-program,
tramp-toolbox-program, tramp-distrobox-program,
tramp-flatpak-program, tramp-apptainer-program, and
tramp-nspawn-program.
(Remote shell setup): Rearrange indices.
(Ssh setup): Say "user option" when needed.
(Keeping files encrypted): Add tramp-crypt-encfs-program.
(Frequently Asked Questions): Rearrange indices.  Remove duplicate
text.  Add tramp-mode.

* lisp/net/tramp.el (tramp-active-command-completion-p): New defun.

* lisp/net/tramp-cmds.el (tramp-cleanup-connection)
(tramp-cleanup-all-connections, tramp-cleanup-some-buffers)
(tramp-cleanup-all-buffers, tramp-rename-files):
* lisp/net/tramp-message.el (tramp-setup-debug-buffer):
Declare `completion'.

* lisp/net/tramp-integration.el (tramp-info-link): New widget.
(tramp-widget-info-link-action): New defun.

* lisp/net/tramp.el (tramp, tramp-mode, tramp-backup-directory-alist)
(tramp-auto-save-directory, tramp-encoding-shell)
(tramp-encoding-command-switch)
(tramp-encoding-command-interactive, tramp-default-method)
(tramp-default-method-alist, tramp-default-user)
(tramp-default-user-alist, tramp-default-host)
(tramp-default-host-alist, tramp-default-proxies-alist)
(tramp-save-ad-hoc-proxies, tramp-show-ad-hoc-proxies)
(tramp-restricted-shell-hosts-alist, tramp-local-host-regexp)
(tramp-shell-prompt-pattern, tramp-password-prompt-regexp)
(tramp-otp-password-prompt-regexp, tramp-wrong-passwd-regexp)
(tramp-terminal-type, tramp-syntax)
(tramp-ignored-file-name-regexp, tramp-chunksize)
(tramp-process-connection-type, tramp-remote-path)
(tramp-remote-process-environment)
(tramp-completion-multi-hop-methods)
(tramp-completion-use-auth-sources, tramp-use-file-attributes)
(tramp-inhibit-errors-if-setting-file-attributes-fail)
(tramp-allow-unsafe-temporary-files):
* lisp/net/tramp-adb.el (tramp-adb-program)
(tramp-adb-connect-if-not-connected):
* lisp/net/tramp-cache.el (tramp-connection-properties)
(tramp-persistency-file-name, tramp-completion-use-cache):
* lisp/net/tramp-cmds.el (tramp-cleanup-some-buffers-hook)
(tramp-default-rename-alist, tramp-confirm-rename-file-names)
(tramp-file-name-with-method):
* lisp/net/tramp-container.el (tramp-docker-program)
(tramp-podman-program, tramp-kubernetes-program)
(tramp-kubernetes-context, tramp-kubernetes-namespace)
(tramp-toolbox-program, tramp-distrobox-program)
(tramp-flatpak-program, tramp-apptainer-program)
(tramp-nspawn-program):
* lisp/net/tramp-crypt.el (tramp-crypt-encfs-program)
(tramp-crypt-encfsctl-program, tramp-crypt-encfs-option)
(tramp-crypt-save-encfs-config-remote):
* lisp/net/tramp-fuse.el (tramp-fuse-unmount-on-cleanup):
* lisp/net/tramp-gvfs.el (tramp-gvfs-methods):
* lisp/net/tramp-message.el (tramp-verbose, tramp-debug-to-file)
(tramp-debug-command-messages):
* lisp/net/tramp-rclone.el (tramp-rclone-program):
* lisp/net/tramp-sh.el (tramp-inline-compress-start-size)
(tramp-copy-size-limit, tramp-histfile-override)
(tramp-use-connection-share)
(tramp-use-scp-direct-remote-copying, tramp-sh-extra-args):
* lisp/net/tramp-sshfs.el (tramp-sshfs-program): Add `:link' key.

* lisp/net/tramp.el (tramp-enable-method): Move function ...
* lisp/net/tramp-cmds.el (tramp-enable-method): ... here.

(cherry picked from commit 7e17a1fff401e7cb98a9b140d791957ae3af2451)

2 months ago(pp): Indent lines right when starting in col > 0
Stefan Monnier [Mon, 26 Aug 2024 15:26:11 +0000 (11:26 -0400)]
(pp): Indent lines right when starting in col > 0

This refines the fix for bug#72561: commit 0a500193087e fixes
the bug by changing `ert--pp-with-indentation-and-newline`,
but it turns out that `pp` was inconsistent (it sometimes
indented the subsequent lines correctly and sometimes not,
depending on the current-buffer's major mode).
So the fix really should be in `pp`, which is what this patch does.

* lisp/emacs-lisp/pp.el (pp): Appropriately indent subsequent lines
if the first line is not inserted in column 0 (tho only when
printing into a buffer since otherwise it's somewhere between
ill-defined and impossible to implement).
* lisp/emacs-lisp/ert.el (ert--pp-with-indentation-and-newline):
Remove the indentation code after `pp` which was just working
around the bug in `pp`.  Also remove the redundant addition of
`\n` since `pp` always does it nowadays.
* test/lisp/help-mode-tests.el (help-mode-tests-xref-on-pp):
Fix thinko.

(cherry picked from commit d3311499339fab0371cb7502a1e2481fbcd2c65d)

2 months ago; * test/src/treesit-tests.el (treesit-indirect-buffer): Untag.
Yuan Fu [Sun, 25 Aug 2024 21:48:58 +0000 (14:48 -0700)]
; * test/src/treesit-tests.el (treesit-indirect-buffer): Untag.

(cherry picked from commit da6e4a862509395bf4c3e30b2b53da6674324c58)

2 months agoRevert a recent change that caused redisplay slowdown
Eli Zaretskii [Sun, 25 Aug 2024 18:43:59 +0000 (21:43 +0300)]
Revert a recent change that caused redisplay slowdown

* src/xfaces.c (recompute_basic_faces): Revert the change which
caused recalculation of all the faces, as it made cursor motion
too slow.  Reported by Juri Linkov <juri@linkov.net> (bug#72692).

(cherry picked from commit 9b299dd79c1627c7ad6b037d599a8e80a92573cd)

2 months ago; * doc/lispref/display.texi (Low-Level Font): Fix wording (bug#72771).
Eli Zaretskii [Sun, 25 Aug 2024 17:47:51 +0000 (20:47 +0300)]
; * doc/lispref/display.texi (Low-Level Font): Fix wording (bug#72771).

(cherry picked from commit 4eaab54896fbefb08f5ec3134f53ec5f5365f23a)

2 months agoImprove computation of indent depth in SHR and 'visual-wrap-prefix-mode'
Jim Porter [Fri, 23 Aug 2024 22:11:24 +0000 (15:11 -0700)]
Improve computation of indent depth in SHR and 'visual-wrap-prefix-mode'

Now, we get the average-width of the current font using
'string-pixel-width' and a specified space display spec, which doesn't
require the buffer to be displayed in a window (bug#72771).

* lisp/net/shr.el (shr-indent):
* lisp/visual-wrap.el (visual-wrap--content-prefix): Fix getting the
font when the buffer isn't displayed in a window.
(visual-wrap-fill-context-prefix): Fix indentation.

(cherry picked from commit 55aad592e177dc2c503ebe9ad2a46e227683315e)

2 months agoIndent ERT failure explanations rigidly
F. Jason Park [Fri, 9 Aug 2024 23:49:28 +0000 (16:49 -0700)]
Indent ERT failure explanations rigidly

This also affects the listing of `should' forms produced by hitting
the L key on a test button in an ERT buffer.

* lisp/emacs-lisp/ert.el (ert--pp-with-indentation-and-newline):
Indent the pretty-printed result to match the caller's current column
as a reference indentation.
* test/lisp/emacs-lisp/ert-tests.el
(ert--pp-with-indentation-and-newline): New test.  (Bug#72561)

(cherry picked from commit 0a500193087efc96aa3791dc4c2084ef5f6c3c06)

2 months ago[Eglot] Stricter "expand common" behavior
Dmitry Gutov [Sun, 25 Aug 2024 15:23:51 +0000 (18:23 +0300)]
[Eglot] Stricter "expand common" behavior

* lisp/progmodes/eglot.el (eglot--dumb-tryc): Check that the
expanded string matches every completion strictly (bug#72705).
And in the fallback case, check whether the table matches the
original prefix at all.  Return nil otherwise.

* test/lisp/progmodes/eglot-tests.el
(eglot-test-stop-completion-on-nonprefix)
(eglot-test-try-completion-nomatch): Corresponding tests.

* etc/EGLOT-NEWS: New entry.

(cherry picked from commit 713069dd7a87cff8388c25f1bc2c2c1b5217b1ca)

2 months agoeglot-tests.el: New tests for existing completion behavior
Dmitry Gutov [Sun, 25 Aug 2024 15:05:28 +0000 (18:05 +0300)]
eglot-tests.el: New tests for existing completion behavior

* test/lisp/progmodes/eglot-tests.el
(eglot-test-common-prefix-completion)
(eglot-test-try-completion-inside-symbol)
(eglot-test-rust-completion-exit-function): New tests.
(eglot--wait-for-rust-analyzer): New function.

(cherry picked from commit 096730510cdf8c582972f68afeef3226ee5810ca)

2 months agoRemove dangerous HTML edit from admin.el
Eli Zaretskii [Sun, 25 Aug 2024 12:46:05 +0000 (15:46 +0300)]
Remove dangerous HTML edit from admin.el

* admin/admin.el (manual-html-fix-index-2): Avoid lax matches with
"<ul>" which could mistakenly edit unrelated parts of HTML.
(Bug#72761)

(cherry picked from commit 969498c25d0112dbdc3aa2ef75dc63681101203e)

2 months agoFaster region-beginning and region-end for rectangle selections
Mattias Engdegård [Sat, 24 Aug 2024 13:00:32 +0000 (15:00 +0200)]
Faster region-beginning and region-end for rectangle selections

* lisp/rect.el (rectangle--region-beginning, rectangle--region-end):
Make these run in O(1), not linear, time and space.

(cherry picked from commit 3a8222e700304e4dff84fcdfa8ff2a4e48646c82)

2 months ago; Skip commit 52829bcee614af0322882e3349c2cfcd913a8531
Eshel Yaron [Mon, 26 Aug 2024 19:21:59 +0000 (21:21 +0200)]
; Skip commit 52829bcee614af0322882e3349c2cfcd913a8531

2 months ago; Fix bad references to other manuals
Eli Zaretskii [Sun, 25 Aug 2024 10:55:35 +0000 (13:55 +0300)]
; Fix bad references to other manuals

* doc/misc/bovine.texi (top, Optional Lambda Expression)
(Starting Rules, Bovine Grammar Rules, How Lexical Tokens Match):
* doc/misc/eudc.texi (Overview, Creating BBDB Records)
(Inline Query Expansion):
* doc/misc/dbus.texi (Top):
* doc/misc/efaq.texi (Top):
* doc/misc/wisent.texi (Wisent Semantic, Wisent Lex): Fix
cross-references to other manuals.  Remove redundant pointers from
Top node.

(cherry picked from commit 7319f5e078b6c98379414a4601a269e6581ec206)

2 months ago; Still fighting with emba.gnu.org config
Michael Albinus [Sun, 25 Aug 2024 10:18:01 +0000 (12:18 +0200)]
; Still fighting with emba.gnu.org config

* test/infra/gitlab-ci.yml (variables): Remove GIT_DEPTH.
(.job-template): Set cache:policy to pull-push, as before.  Check
behavior of docker export.
(.build-template): Remove needs and cache.
(.test-template): Remove cache.  Adapt artifacts:paths.

(cherry picked from commit 1f4da7fe3e8dac64c4da0ea2ff812be521946ea2)

2 months agoFix handling of 'min-width' display property
Eli Zaretskii [Sun, 25 Aug 2024 07:24:35 +0000 (10:24 +0300)]
Fix handling of 'min-width' display property

* src/xdisp.c (get_display_property, display_min_width): Rename
BUFPOS to CHARPOS, to avoid confusion (it is not necessarily a
buffer position).  Suggested by Jim Porter <jporterbugs@gmail.com>.
(get_display_property): Call 'Fget_char_property' to support
'min-width' properties of overlays as well.
(display_min_width): Handle the buffer and string cases more
accurately, without relying only on the values of positions.
(handle_display_prop, handle_single_display_spec): Pass correct
position to 'display_min_width', when iterating over a string.
(handle_display_prop): When OBJECT is a window, pass it to
display_min_width.
(set_iterator_to_next): Call 'display_min_width' when at end of a
display or overlay string.  (Bug#72721)

* etc/NEWS: Announce the support for overlays.

(cherry picked from commit 71505b723c9fb9de20f6d38be7c73d595e9be3ce)

2 months ago; Mention in PROBLEMS issues with long popup menus
Eli Zaretskii [Sun, 25 Aug 2024 06:04:21 +0000 (09:04 +0300)]
; Mention in PROBLEMS issues with long popup menus

* etc/PROBLEMS: Problems with very long popup menus on Lucid
builds.  (Bug#72791)

(cherry picked from commit 8c251a4c4194802a2b69165d699c3ba43d45c401)

2 months ago; * src/treesit.c (Ftreesit_parse_string): Fix comment and punctuation.
Eli Zaretskii [Sun, 25 Aug 2024 05:48:23 +0000 (08:48 +0300)]
; * src/treesit.c (Ftreesit_parse_string): Fix comment and punctuation.

(cherry picked from commit 8a94cee3b58a59eac6ca24c001769f0fe12bf020)

2 months agoFix Ftreesit_parser_create
Yuan Fu [Sat, 24 Aug 2024 22:25:48 +0000 (15:25 -0700)]
Fix Ftreesit_parser_create

* src/treesit.c (Ftreesit_parser_create): We recently changed something
such that base buffer and indirect buffer appears to use separate
parser-lists.  Therefore, creating a parser in one of the buffer
shouldn't reuse the parser in another buffer.

(cherry picked from commit f322905f6a31deb8da7f3d40a87e5ea097df5a73)

2 months agoFix tree-sitter test for indirect parser list
Yuan Fu [Sat, 24 Aug 2024 22:03:28 +0000 (15:03 -0700)]
Fix tree-sitter test for indirect parser list

* test/src/treesit-tests.el (treesit-indirect-buffer): Now the base
buffer shouldn't contain indirect buffer's parsers.

(cherry picked from commit ac98ff18f4debb935e07d3739fcc3378359d8d82)

2 months agoMake sure treesit-parse-string gc its temp buffer (bug#71012)
Yuan Fu [Sat, 24 Aug 2024 21:54:57 +0000 (14:54 -0700)]
Make sure treesit-parse-string gc its temp buffer (bug#71012)

* doc/lispref/parsing.texi (Using Parser): Add notice.
* lisp/treesit.el (treesit-parse-string): Remove function.
* src/treesit.c (make_treesit_parser): Init the new filed.
(treesit_delete_parser): Collect the temp buffer.
(Ftreesit_parse_string): New function.
* src/treesit.h (Lisp_TS_Parser): New field.

(cherry picked from commit 4339e70a942770ce4e17d16a9708e4bdf5630514)

2 months agoForward user to auth-source inside url-basic-auth
Björn Bidar [Thu, 8 Aug 2024 14:36:01 +0000 (17:36 +0300)]
Forward user to auth-source inside url-basic-auth

* lisp/url/url-auth.el (url-basic-auth): Forward the user if
provided by the url or found by 'auth-source' when searching
for secrets.  Supplying 'auth-source' with the user when
matching secrets allows for more accurate retrieval and fixes
instances where the user enters an url that already contains
the user such as "user@host.de".  (Bug#72526)

(cherry picked from commit 32afdcca8815331f1231fe9d8279ab9914197381)

2 months ago* etc/emacs_lldb.py (Lisp_Object): PVEC_COMPILED -> PVEC_CLOSURE
Mattias Engdegård [Sat, 24 Aug 2024 12:27:26 +0000 (14:27 +0200)]
* etc/emacs_lldb.py (Lisp_Object): PVEC_COMPILED -> PVEC_CLOSURE

(cherry picked from commit 0a626a64c70e6842027d58dd2b52776d864cedb2)

2 months ago; * etc/NEWS: Fix typos.
Michael Albinus [Sat, 24 Aug 2024 10:49:48 +0000 (12:49 +0200)]
; * etc/NEWS: Fix typos.

(cherry picked from commit f41614ad5413b704c8451c46fe7bce3be37f3bd7)

2 months agoOptimize Tramp's copy-directory
Michael Albinus [Sat, 24 Aug 2024 10:49:32 +0000 (12:49 +0200)]
Optimize Tramp's copy-directory

* lisp/net/tramp-sh.el (tramp-sh-handle-copy-directory):
* lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory):
Don't check existence of DIRNAME, this is done in
`tramp-skeleton-copy-directory' already.

* lisp/net/tramp-sh.el (tramp-sh-handle-copy-directory):
Apply `tramp-do-copy-or-rename-file-directly' if possible.

(cherry picked from commit 16cb27d1d986d8b00ee1da2f7f51e8e6f254f173)

2 months ago; Skip commit 69ec333eab0b801949d33ef5ae505addc9061793
Eshel Yaron [Mon, 26 Aug 2024 19:18:37 +0000 (21:18 +0200)]
; Skip commit 69ec333eab0b801949d33ef5ae505addc9061793

2 months agoFix rare segfaults due to freed fontsets
Eli Zaretskii [Sat, 24 Aug 2024 09:07:02 +0000 (12:07 +0300)]
Fix rare segfaults due to freed fontsets

* src/xfaces.c (recompute_basic_faces): Force complete
recalculation of all the faces.  (Bug#72692)

(cherry picked from commit 4211d85eec0858583bd9d35f8de9cd6e358d6c72)

2 months agoFix secret search with basic auth with a port in URL
Björn Bidar [Thu, 8 Aug 2024 14:31:20 +0000 (17:31 +0300)]
Fix secret search with basic auth with a port in URL

* lisp/url/url-auth.el (url-basic-auth): Fix retrieving of
secrets when the URL contains a port.  Amending the port to
server breaks 'auth-source-search' matching for :host which
is redundant as it already specified in :port.  (Bug#72526)

(cherry picked from commit a7a22e7c22cef0948f84daa86c9929d7b0dd6d56)

2 months ago; Skip commit 632cc76fb58a6d07ed55bbef650d0c6bc1edb475
Eshel Yaron [Mon, 26 Aug 2024 19:16:27 +0000 (21:16 +0200)]
; Skip commit 632cc76fb58a6d07ed55bbef650d0c6bc1edb475

2 months agoFix 'next-line' in batch mode.
Eli Zaretskii [Sat, 24 Aug 2024 08:02:01 +0000 (11:02 +0300)]
Fix 'next-line' in batch mode.

* lisp/simple.el (line-move-finish): Don't use 'vertical-motion'
in batch mode.  Reported by john muhl <jm@pub.pink>.  (Bug#72420)

(cherry picked from commit c1181975ef958d40959e0a6af0c8d11ae2111ec0)

2 months agoAvoid putting a dead buffer in the minibuffer window (Bug#72487)
Martin Rudalics [Fri, 23 Aug 2024 08:27:12 +0000 (10:27 +0200)]
Avoid putting a dead buffer in the minibuffer window (Bug#72487)

* src/minibuf.c (minibuffer_unwind): Make sure that the buffer
referenced by the first element of the list of previous buffers
of the minibuffer window is live before assigning it to the
minibuffer window (Bug#72487).
* src/window.c (set_window_buffer): Assert that BUFFER is live.

(cherry picked from commit 25f537216682eecedf3905c4e005f02be007ed9c)

2 months ago; Skip commit cfcba7ddc41b84f108809bdd8d7201c181fd62ab
Eshel Yaron [Mon, 26 Aug 2024 19:15:12 +0000 (21:15 +0200)]
; Skip commit cfcba7ddc41b84f108809bdd8d7201c181fd62ab

2 months ago; Skip commit 7e9d05e6d9b7c01f42f84bdd730ab4f64ea7b483
Eshel Yaron [Mon, 26 Aug 2024 19:15:06 +0000 (21:15 +0200)]
; Skip commit 7e9d05e6d9b7c01f42f84bdd730ab4f64ea7b483

2 months ago; Skip commit 391e6f99fc8eed9cf2ede473b84be194aaab21c7
Eshel Yaron [Mon, 26 Aug 2024 19:15:02 +0000 (21:15 +0200)]
; Skip commit 391e6f99fc8eed9cf2ede473b84be194aaab21c7

2 months ago; Skip commit 8ccc165f95aea3fd9c600fab22e2644a01ce822c
Eshel Yaron [Mon, 26 Aug 2024 19:14:58 +0000 (21:14 +0200)]
; Skip commit 8ccc165f95aea3fd9c600fab22e2644a01ce822c

2 months ago; Skip commit 633cc24e4b16feddb8ebd9b6bd96920395fee063
Eshel Yaron [Mon, 26 Aug 2024 19:14:52 +0000 (21:14 +0200)]
; Skip commit 633cc24e4b16feddb8ebd9b6bd96920395fee063

2 months ago; Skip commit e18db9c6d2d83ed1ef7b0121ec357166fa7032bf
Eshel Yaron [Mon, 26 Aug 2024 19:14:44 +0000 (21:14 +0200)]
; Skip commit e18db9c6d2d83ed1ef7b0121ec357166fa7032bf

2 months ago; Skip commit a0b65be8eb0574c3eda96787c3e0969b3fda4a7a
Eshel Yaron [Mon, 26 Aug 2024 19:14:30 +0000 (21:14 +0200)]
; Skip commit a0b65be8eb0574c3eda96787c3e0969b3fda4a7a

2 months ago; Skip commit f9d229e925ad634acf772d4066c72b5954ea4f9c
Eshel Yaron [Mon, 26 Aug 2024 19:13:35 +0000 (21:13 +0200)]
; Skip commit f9d229e925ad634acf772d4066c72b5954ea4f9c

2 months ago* admin/authors.el: Pick-up version from emacs-29.
Andrea Corallo [Sun, 18 Aug 2024 10:35:15 +0000 (12:35 +0200)]
* admin/authors.el: Pick-up version from emacs-29.

(cherry picked from commit 58088b36e8af92bd8cd27c4e09a6ed1a5dd7941d)

2 months ago; Skip commit 9d7151c0ffa19ef6fc07ca78f7be0487176a1bb5
Eshel Yaron [Mon, 26 Aug 2024 19:12:32 +0000 (21:12 +0200)]
; Skip commit 9d7151c0ffa19ef6fc07ca78f7be0487176a1bb5

2 months agoSuppress shallow cloning on emba
Michael Albinus [Tue, 20 Aug 2024 17:23:48 +0000 (19:23 +0200)]
Suppress shallow cloning on emba

* test/infra/gitlab-ci.yml (variables): Set GIT_DEPTH to 0 in
order to avoid shallow cloning.

(cherry picked from commit 3f019167b85ac7848da0df04875e39e01e2787c7)

2 months agoel.el: Add some commands
Eshel Yaron [Mon, 26 Aug 2024 19:11:02 +0000 (21:11 +0200)]
el.el: Add some commands

2 months agoRestore 'imenu--rescan-item' as an obsolete variable
Eshel Yaron [Mon, 26 Aug 2024 19:10:35 +0000 (21:10 +0200)]
Restore 'imenu--rescan-item' as an obsolete variable

2 months agoRebind C-j
Eshel Yaron [Mon, 26 Aug 2024 19:10:23 +0000 (21:10 +0200)]
Rebind C-j

2 months agoel.el: WIP
Eshel Yaron [Mon, 26 Aug 2024 14:28:26 +0000 (16:28 +0200)]
el.el: WIP

2 months agoSimplify 'electric-indent-mode'
Eshel Yaron [Mon, 26 Aug 2024 14:27:29 +0000 (16:27 +0200)]
Simplify 'electric-indent-mode'

2 months agoExperimental new Emacs Lisp mode
Eshel Yaron [Sun, 25 Aug 2024 14:33:44 +0000 (16:33 +0200)]
Experimental new Emacs Lisp mode

2 months ago* lisp/help-fns.el (help-enable-symbol-autoload): Flip default.
Eshel Yaron [Sun, 25 Aug 2024 08:37:20 +0000 (10:37 +0200)]
* lisp/help-fns.el (help-enable-symbol-autoload): Flip default.

2 months agoDrop Electric-command-loop and all transitive dependents
Eshel Yaron [Sun, 25 Aug 2024 08:27:29 +0000 (10:27 +0200)]
Drop Electric-command-loop and all transitive dependents

2 months ago(help-enable-completion-autoload): Deprecate.
Eshel Yaron [Sat, 24 Aug 2024 11:11:56 +0000 (13:11 +0200)]
(help-enable-completion-autoload): Deprecate.

2 months ago; * Makefile.in (actual-all): Fix previous change.
Robert Pluim [Fri, 23 Aug 2024 12:21:49 +0000 (14:21 +0200)]
; * Makefile.in (actual-all): Fix previous change.

(cherry picked from commit 88b51c1c6bd9749bae74dffe6ec7c50a26afabad)

2 months agoCreate blessmail at build time instead of install time
Robert Pluim [Fri, 23 Aug 2024 08:16:29 +0000 (10:16 +0200)]
Create blessmail at build time instead of install time

blessmail is built via the install target, which means it ends up owned
by the user doing the install.  It's not installed, so build it at build
time instead.

Reported by Michael Heerdegen <michael_heerdegen@web.de> in
<https://lists.gnu.org/archive/html/help-gnu-emacs/2024-08/msg00270.html>

* Makefile.in (install): Move blessmail target from install to actual-all.

(cherry picked from commit 7f97cf31dc3eb483f84598f61e9f45805f901067)

2 months ago; Skip commit f8d42e29a5047cd8bd84aea7c82d2e644e8c63be
Eshel Yaron [Fri, 23 Aug 2024 18:21:03 +0000 (20:21 +0200)]
; Skip commit f8d42e29a5047cd8bd84aea7c82d2e644e8c63be

2 months agoFix C-n/C-p under both 'line-prefix' and 'visual-line-mode'
Eli Zaretskii [Thu, 22 Aug 2024 14:29:46 +0000 (17:29 +0300)]
Fix C-n/C-p under both 'line-prefix' and 'visual-line-mode'

* lisp/simple.el (line-move-finish): Use
'truncated-partial-width-window-p' to query whether partial-width
lines are actually truncated on display.  (Bug#72420)

(cherry picked from commit 44e3eceeb0ff37aa17f7090d04d2263fb32253a7)

2 months ago; * lisp/emacs-lisp/scope.el: Fix typos.
Eshel Yaron [Fri, 23 Aug 2024 15:24:19 +0000 (17:24 +0200)]
; * lisp/emacs-lisp/scope.el: Fix typos.

2 months ago; * lisp/emacs-lisp/lisp.el (beginning-of-defun-raw): Simplify.
Eshel Yaron [Fri, 23 Aug 2024 15:24:02 +0000 (17:24 +0200)]
; * lisp/emacs-lisp/lisp.el (beginning-of-defun-raw): Simplify.

2 months ago; Fix infloop in checkdoc-next-docstring
Eshel Yaron [Fri, 23 Aug 2024 15:15:32 +0000 (17:15 +0200)]
; Fix infloop in checkdoc-next-docstring

* lisp/emacs-lisp/checkdoc.el (checkdoc-next-docstring): Use
'beginning-of-defun-raw' instead of 'beginning-of-defun', as the latter
always moves back to beginning of line and thus is not guaranteed to
advance point when 'open-paren-in-column-0-is-defun-start' is non-nil.
(Bug#72759)

2 months agoGCC bug 58416 is fixed in GCC 15
Paul Eggert [Thu, 22 Aug 2024 06:36:45 +0000 (23:36 -0700)]
GCC bug 58416 is fixed in GCC 15

* configure.ac (emacs_cv_gcc_bug_58416_CFLAGS):
No need for a workaround in GCC 15.

2024-08-19  Paul Eggert  <eggert@cs.ucla.edu>

Remove obsolete comment about ‘volatile’

(cherry picked from commit 3d1d4f109ed4115256a08c74eeb704259d91c9f4)

2 months agoPrefer static_assert to verify
Stefan Kangas [Tue, 23 Jul 2024 22:09:49 +0000 (00:09 +0200)]
Prefer static_assert to verify

Although static_assert is C11-specific, and Emacs remains on C99, it
has been backported to older compilers by Gnulib.  Gnulib has already
changed to prefer static_assert, and we can do the same.

* lib-src/asset-directory-tool.c (main_2):
* src/alloc.c (BLOCK_ALIGN, aligned_alloc, lisp_align_malloc)
(vectorlike_nbytes, allocate_pseudovector):
* src/android.c (android_globalize_reference, android_set_dashes):
* src/android.h:
* src/androidfont.c (androidfont_draw, androidfont_text_extents):
* src/androidvfs.c:
* src/bidi.c (BIDI_CACHE_MAX_ELTS_PER_SLOT, bidi_find_bracket_pairs):
* src/buffer.c (init_buffer_once):
* src/casefiddle.c (do_casify_multibyte_string):
* src/dispnew.c (scrolling_window, scrolling):
* src/editfns.c (styled_format):
* src/emacs-module.c (module_extract_big_integer):
* src/fileio.c (Fdo_auto_save):
* src/fns.c (next_almost_prime, hash_string):
* src/fringe.c (init_fringe):
* src/keyboard.h (kbd_buffer_store_event_hold):
* src/keymap.c:
* src/lisp.h (memclear, reduce_emacs_uint_to_hash_hash, modiff_incr):
* src/lread.c (skip_lazy_string):
* src/pdumper.c (dump_bignum, Fdump_emacs_portable)
(dump_do_dump_relocation, pdumper_load):
* src/process.c (make_process, Fmake_process, connect_network_socket):
* src/regex-emacs.c:
* src/sort.c (tim_sort):
* src/sysdep.c (init_random, SSIZE_MAX):
* src/thread.c:
* src/timefns.c (trillion_factor):
* src/unexelf.c:
* src/xterm.c (x_send_scroll_bar_event): Prefer static_assert to Gnulib
verify.  Remove import of verify.h, except when used for other reasons.

(cherry picked from commit 7c8e28607b78b371598df58de96c3c3362ad6002)

2 months agoSimplify and speed up make-hash-table argument parsing
Mattias Engdegård [Sun, 18 Aug 2024 12:20:36 +0000 (14:20 +0200)]
Simplify and speed up make-hash-table argument parsing

* src/fns.c (get_key_arg): Remove.
(Fmake_hash_table): Traverse argument list once only.  Don't allocate a
helper array.  Use faster comparisons.

(cherry picked from commit 46f3452b30f39a69f610faab58c1490b34dd367d)

2 months ago; Attempt to unbreak 'shr-indent'
Eshel Yaron [Thu, 22 Aug 2024 07:24:41 +0000 (09:24 +0200)]
; Attempt to unbreak 'shr-indent'

2 months ago* test/lisp/use-package/use-package-tests.el: Remove some cruft.
Eshel Yaron [Thu, 22 Aug 2024 05:48:20 +0000 (07:48 +0200)]
* test/lisp/use-package/use-package-tests.el: Remove some cruft.

2 months ago; Adjust some tests
Eshel Yaron [Wed, 21 Aug 2024 10:21:59 +0000 (12:21 +0200)]
; Adjust some tests

2 months ago(elisp-fontify-region-semantically): Keep existing faces
Eshel Yaron [Wed, 21 Aug 2024 10:20:43 +0000 (12:20 +0200)]
(elisp-fontify-region-semantically): Keep existing faces

Also catch error when fontifying syntactically incorrect code

2 months agoFix two issues with 'window-deletable-p'
Martin Rudalics [Wed, 21 Aug 2024 08:54:53 +0000 (10:54 +0200)]
Fix two issues with 'window-deletable-p'

* lisp/window.el (window-deletable-functions): Clarify
doc-string.
(window-deletable-p): Handle check whether WINDOW's frame can be
deleted via new function 'frame-deletable-p' (a comparison with
the frame returned by 'next-frame' fails in too many cases).  Do
not try to run 'window-deletable-functions' in WINDOW's buffer
when WINDOW is internal.
* lisp/frame.el (frame-deletable-p): New function.
* doc/lispref/frames.texi (Deleting Frames): Describe new
function 'frame-deletable-p'.
* etc/NEWS: Mention 'frame-deletable-p'.

(cherry picked from commit bd647f361415d6c06913e4fa11a1a7ab6ab4ce02)

2 months agoFix a Tramp bug when running several asynchronous processes
Michael Albinus [Wed, 21 Aug 2024 08:46:20 +0000 (10:46 +0200)]
Fix a Tramp bug when running several asynchronous processes

* lisp/net/tramp-cache.el (tramp-get-hash-table):
Add ;;;###tramp-autoload cookie.

* lisp/net/tramp.el (tramp-file-name-handler): Flush connection
properties "process-name" and "process-buffer".

* test/lisp/net/tramp-tests.el
(tramp--test-deftest-direct-async-process): Skip when underlying
TEST has taken too much time.
(tramp--test-with-proper-process-name-and-buffer): Remove.
(tramp-test45-asynchronous-requests): Remove callees.

(cherry picked from commit 0b7f649614d8eb7694e98372dea7b7e01f090265)

2 months agoUpdate to modus-themes version 4.5.0
Protesilaos Stavrou [Wed, 21 Aug 2024 08:07:47 +0000 (11:07 +0300)]
Update to modus-themes version 4.5.0

* doc/misc/modus-themes.org (COPYING): Update the version headers.
(Option to extend the palette): Document new user options.
(Full support for packages or face groups): Document more
packages that are explicitly supported by the themes.
(Acknowledgements): Update the list of people who have
contributed to the project in one way or another.

* etc/themes/modus-operandi-deuteranopia-theme.el:
* etc/themes/modus-operandi-deuteranopia-theme.el:
* etc/themes/modus-operandi-tinted-theme.el:
* etc/themes/modus-operandi-tritanopia-theme.el:
* 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 and include the new user option to extend
  its palette.

* etc/themes/modus-themes.el: Cover more faces and include user
  option for common extension to all theme palettes.

Detailed release notes:
<https://protesilaos.com/codelog/2024-08-21-modus-themes-4-5-0/>.

(cherry picked from commit 3efb89ddb9633569a1ef3a4a7ffad0ce68e1ef29)

2 months agoRestore vc-git helper function (bug#68183)
Kévin Le Gouguec [Wed, 21 Aug 2024 06:45:00 +0000 (08:45 +0200)]
Restore vc-git helper function (bug#68183)

* lisp/vc/vc-git.el (vc-git--cmds-in-progress): Restore; it was removed
in a previous refactoring patch, but we may still find use for it.
(vc-git-dir--in-progress-headers): Use it.

(cherry picked from commit 53ea5f1df411aa349fb99d6b444d433a42ded594)

2 months agoSplit vc-git-dir-extra-headers into more manageable chunks
Kévin Le Gouguec [Sun, 9 Jun 2024 17:41:41 +0000 (19:41 +0200)]
Split vc-git-dir-extra-headers into more manageable chunks

The current code requires a lot of eyeballing back-and-forth
to:

- check where variables are actually used, what impact changing
them can have: in actuality, there are three distinct "groups"
of headers we compute, each with their own independent state;
- understand formatting details such as "who's in charge of the
newlines".

To solve both issues, split that function into smaller ones,
each handling a "group" of headers.

The only expected "functional" change is that, by propertizing
"\nHeader: " strings, the original code sometimes applied the
vc-dir-header face to the newline preceding a header; the new
code applies no faces to these newlines.

This change would be visible to users with themes adding an
:extended background to vc-dir-header.  In practice, no in-tree
theme is impacted.

For bug#68183.

* lisp/vc/vc-git.el (vc-git-dir--branch-headers): New function
to compute "Branch", "Tracking" and "Remote".
(vc-git--cmds-in-progress): Rename to...
(vc-git-dir--in-progress-headers): ... this, and compute
headers.
(vc-git-dir--stash-headers): New function to compute the
"Stash" header.
(vc-git-dir-extra-headers): Boil down to just setting
default-directory and assembling the headers from these new
helpers.
(vc-git--out-match): New function to call 'git' and capture
specific bits of output.

(cherry picked from commit 88ac5d03586a81cc8644e75adbdb3cab9b56a1b9)

2 months agoTest more vc-dir scenarios with Git (bug#68183)
Kévin Le Gouguec [Sun, 7 Jul 2024 10:16:12 +0000 (12:16 +0200)]
Test more vc-dir scenarios with Git (bug#68183)

* test/lisp/vc/vc-git-tests.el
(vc-git-test-dir-track-local-branch): Remove in favor of new
test.
(vc-git-test--start-branch): New helper to get a repository
going.
(vc-git-test--dir-headers): New helper to get a list of headers
in the current vc-dir buffer.
(vc-git-test-dir-branch-headers): New test, exercising the
original bug recipe plus more common scenarios.

(cherry picked from commit 2f710af5bf303b5d0ed7a7f70e058e1eab281b8d)