1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-05 22:20:24 -08:00
Commit graph

180353 commits

Author SHA1 Message Date
Sean Whitton
b8cefd6c43 * lisp/vc/vc.el (vc-pull): Clear cached incoming revisions. 2025-12-03 11:20:00 +00:00
Sean Whitton
34331ae6f9 Pass the VC backend down through fns called by vc--count-revisions
* lisp/vc/vc-hooks.el (vc--repo-setprop, vc--repo-getprop)
(vc--repo-clearprops):
* lisp/vc/vc.el (vc-root-dir): New BACKEND parameter.
(vc--incoming-revision, vc-push): Pass it.
(vc-default-log-incoming, vc-default-log-outgoing): Pass down
BACKEND provided by caller, instead of ignoring it and always
calling vc-deduce-backend (bug#79929).
2025-12-03 11:19:12 +00:00
Sean Whitton
f15e98afb6 ; (emacs)VC Directory Buffer: Document outgoing revisions count. 2025-12-03 11:16:02 +00:00
Paul Eggert
1b2b433fc0 Port to GNU/Linux HPPA malloc
On this platform, you cannot reliably malloc objects containing
values of type pthread_mutex_t or pthread_cond_t, since malloc
guarantees only 8-byte alignment but these two types require
16-byte alignment.  See GCC bug 115750
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115750> reported by
Sam James and Emacs bug 79936 <https://bugs.gnu.org/79936>
reported by John Paul Adrian Glaubitz.
* configure.ac (ALIGNOF_MAX_ALIGN_T, ALIGNOF_PTHREAD_COND_T)
(ALIGNOF_PTHREAD_MUTEX_T) [HAVE_PTHREAD]: New C macros.
* src/systhread.c (sys_mutex_init, sys_mutex_lock)
(sys_mutex_unlock, sys_cond_init, sys_cond_wait)
(sys_cond_signal, sys_cond_broadcast, sys_cond_destroy):
Use SYTHREAD_ALIGN_PTR to convert sys_mutex_t and sys_cond_t to
pthread_mutex_t and pthread_cond_t, since runtime conversion is
needed on GNU/Linux HPPA.
* src/systhread.h (SYSTHREAD_ALIGN_ROOM, SYSTHREAD_ALIGN_PTR):
New macros, which affect the generated code only on
unusual platforms like GNU/Linux HPPA.
(sys_mutex_t, sys_cond_t) [HAVE_PTHREAD]: Use them.
2025-12-02 17:46:56 -08:00
Paul Eggert
3930d12e4d Pacify gcc -Wdangling-else in dbusbind.c
* src/dbusbind.c (XD_DBUS_VALIDATE_BUS_NAME)
(XD_DBUS_VALIDATE_PATH, XD_DBUS_VALIDATE_INTERFACE)
(XD_DBUS_VALIDATE_MEMBER): Make these expand to single statements
when they are followed by ‘;’.  All uses changed.
2025-12-02 17:46:56 -08:00
Juri Linkov
d2ac3cfb90 Improve margin handling in outline-minor-mode (bug#76193)
* lisp/outline.el (outline-minor-mode): Make margin changes
idempotent to multiple calls.  When enabling, check for
nil 'outline--margin-width' instead of relying on the value
of 'left-margin-width'.  When disabling, check for non-nil
'outline--margin-width' and set back to nil afterwards.
Use kill-local-variable for 'fringes-outside-margins'.
2025-12-02 19:21:21 +02:00
Sean Whitton
df4d8c1475 * lisp/vc/vc.el (vc-push): Delay clearing incoming revisions cache. 2025-12-02 11:55:14 +00:00
Sean Whitton
7780ac923c * lisp/vc/vc.el (vc--incoming-revision): Do store 'nil'. 2025-12-02 11:43:54 +00:00
Sean Whitton
b0a0127880 vc-dir-headers: Use ngettext, move the newline out of 'propertize'
* lisp/vc/vc-dir.el (vc-dir-headers): Use ngettext, move the
newline out of 'propertize'.
2025-12-01 22:00:42 +00:00
Elías Gabriel Pérez
49611cce30 hideshow.el: New commands 'hs-cycle' and 'hs-toggle-all'. (Bug#79877)
* etc/NEWS: Announce features.
* doc/emacs/programs.texi (Hideshow): Document it.
* lisp/progmodes/hideshow.el (hs-prefix-map): Bind the new
commands.
(hs-hide-level-recursive): Simplify.
(hs--toggle-all-state): New variable.
(hs-toggle-all, hs-cycle): New commands.
(hs-get-near-block): New function.
(hs-hide-block): Simplify.

Co-authored-by: Karthik Chikmagalur <karthikchikmagalur@gmail.com>
2025-12-01 19:42:52 +02:00
Juri Linkov
481977f597 Override 'display-buffer-overriding-action' conditionally in perform-replace
* lisp/replace.el (perform-replace): For 'diff' display, override
'display-buffer-overriding-action' only when it has the default value.
https://lists.gnu.org/archive/html/emacs-devel/2025-11/msg01077.html
2025-12-01 19:29:11 +02:00
Mattias Engdegård
310ec70648 Deduplicate bytecode strings in each top-level form
This cheap device enables sharing of byte-code for local functions
that only differ in their constant vectors (and/or doc strings etc).
It makes the .elc files smaller by about 150 KB, and should reduce
in-memory usage a little as well.

* lisp/emacs-lisp/bytecomp.el (bytecomp--code-strings): New.
(byte-compile-from-buffer, byte-compile-flush-pending)
(byte-compile-lambda): Hash-cons byte-code locally.
2025-12-01 15:32:30 +01:00
Eli Zaretskii
4b55e56232 Fix whitespace in remember.el
* lisp/textmodes/remember.el (remember-mode): Remove redundant
whitespace.  Patch by Huang Jing <rne.kou@icloud.com> (bug#79928).
2025-12-01 15:16:49 +02:00
Sean Whitton
4271fc0daa * lisp/vc/vc-dir.el (vc-dir-headers): Put newlines in better places. 2025-12-01 12:19:20 +00:00
Kristoffer Balintona
1c3d37a673 log-edit-show-files: Respect display-buffer-alist
* lisp/vc/log-edit.el (log-edit-show-files): Consolidate the
call to cvs-pop-to-buffer-same-frame,
shrink-window-if-larger-than-buffer, and set-window-dedicated-p
into a single call to display-buffer.
2025-12-01 12:15:21 +00:00
Sean Whitton
fd3b74ca08 Fix log-view-vc-fileset in *vc-incoming* and *vc-outgoing* buffers
This fixes log-view-modify-change-comment in those buffers.

* lisp/vc/vc.el (vc-incoming-outgoing-internal): Pass the VC
root to vc-log-internal-common.
2025-12-01 11:18:07 +00:00
Sean Whitton
5e98195e84 log-edit-generate-changelog-from-diff: Special-case Summary field
* lisp/vc/add-log.el (log-edit-fill-entry): Delete unused
declaration.
* lisp/vc/log-edit.el (log-edit-generate-changelog-from-diff):
Special-case inserting a single line into the Summary field.
2025-12-01 11:14:55 +00:00
Sean Whitton
5b07a81bed New display of outgoing revisions count in VC-Dir
This relies on how vc--incoming-revision now caches incoming
revisions.

* lisp/vc/vc.el (vc--count-outgoing): New function.
* lisp/vc/vc-dir.el (vc-dir-header-urgent-value): New face.
(vc-dir-outgoing-revisions-map): New keymap.
(vc-dir-headers): Use them.
* etc/NEWS: Document the change.
2025-11-30 21:35:23 +00:00
Stephen Gildea
77a57041d0 time-stamp: Add test of multi-line start regexp
* test/lisp/time-stamp-tests.el: (time-stamp-custom-start-multiline):
New test, inspired by Amin Bandali.
2025-11-30 12:36:12 -08:00
Juri Linkov
c2e2a86d1b Make goto-address/bug-reference buttons TAB-navigable in 'button-mode'
* lisp/net/goto-addr.el (goto-address-fontify): Set overlay property
'button' to 'this-overlay', and 'category' to 'goto-address'.

* lisp/progmodes/bug-reference.el (bug-reference-fontify):
Set overlay property 'button' to 'ov' (bug#74792).
2025-11-30 20:40:12 +02:00
Sean Whitton
0f90cc033d ; * lisp/progmodes/project.el (project-compile): Fix last change. 2025-11-30 18:32:51 +00:00
Sean Whitton
30e178e7cb * lisp/vc/vc.el (vc-push): Clear cached incoming revision. 2025-11-30 18:31:37 +00:00
Sean Whitton
2abad90dce * lisp/vc/vc.el (vc--incoming-revision): Don't cache 'nil'. 2025-11-30 18:28:55 +00:00
Juri Linkov
0f9dd5b3a1 Show Flymake diagnostics on clicking mouse-1 on the mode-line indicator
* lisp/progmodes/flymake.el (flymake--mode-line-counter-map):
Bind [mode-line mouse-1] to 'flymake-show-buffer-diagnostics' (bug#76254).
2025-11-30 20:24:34 +02:00
Sean Whitton
5167989b2a Cache VC incoming revisions
* lisp/vc/vc-hooks.el (vc-file-setprop): Use cl-pushnew.
(vc--repo-setprop, vc--repo-getprop, vc--repo-clearprops): New
functions.
* lisp/vc/vc.el (vc--incoming-revision): Cache incoming
revisions.
* src/fns.c (Fput): State that VALUE is returned.
2025-11-30 18:20:50 +00:00
Juri Linkov
9174bc811a Use treesit-extra-load-path for more values of treesit-auto-install-grammar
* lisp/treesit.el (treesit-auto-install-grammar): Use the first
writable directory from 'treesit-extra-load-path' for values
'always', 'ask', 'ask-dir' (bug#79862).

* src/treesit.c (syms_of_treesit): Extend docstring.
2025-11-30 20:14:19 +02:00
Sean Whitton
16b19ceb28 project-compile: Don't let-bind compile-command
* lisp/progmodes/project.el (project-compile): Handle ignoring
compile-command from a vc-compilation-mode buffer in a way that
does not involve let-binding compile-command.
2025-11-30 17:36:33 +00:00
João Távora
27f0a3fd86 Eglot: revert changes to eglot-rename's interface (bug#79757)
After some weeks of testing, I've changed by mind on this.  Having the
current name appear passed the INITIAL-VALUE to read-from-minibuffer is
a jarring backward-incompatible change.  There is no evidence that the
majority of renames are simple tweaks to the existing names, and even
less evidence that these tweaks happen frequently at the end of the
symbol.

Therefore it's better for the ergonomics of this commonly used command
to leave the code as it was and simply rely on C-n to bring in the
default value (which is the current symbol name), instead of forcing
users accustomed to the previous behaviour remember to press sth like
M-DEL to clean the input.

* lisp/progmodes/eglot.el (eglot-rename): Tweak.
2025-11-30 13:52:30 +00:00
Sean Whitton
ae36ee3655 ; * lisp/server.el (server--process-filter-1): Fix typo. 2025-11-30 13:47:00 +00:00
Sean Whitton
7d2e22843f server--process-filter-1: Fix stripping -auth argument (bug#79889)
* lisp/server.el (server--process-filter-1): Strip trailing
space after -auth argument (bug#79889).  Fix due to Richard
Copley <rcopley@gmail.com>.
2025-11-30 11:24:32 +00:00
Roi Martin
b208b08371 Fix bug in semantic linefeed filling
Fix bug in semantic linefeed filling related to wide characters and
`sentence-end-without-space'.
* lisp/textmodes/fill.el (fill-region-as-paragraph-semlf): Fix the
calculation of the maximum column.  Do not depend on where
`fill-region-as-paragraph-default' leaves point after being called.
(Bug#79575)
2025-11-30 11:41:49 +02:00
Mattias Engdegård
ef903e0f5a * test/src/data-tests.el (data-tests-ash-lsh): Test for bug#79876. 2025-11-29 19:41:16 +01:00
Sean Whitton
c499c2f67b * lisp/vc/diff-mode.el (diff-filename-drop-dir): Match backslashes. 2025-11-29 18:21:31 +00:00
Stephen Gildea
9f2b1c43c9 time-stamp: return quicker when inactive
* lisp/time-stamp.el (time-stamp-once): Do not look for additional
templates once we have displayed the warning about being disabled.
Move earlier the check for arguments being the correct type.
* test/lisp/time-stamp-tests.el (time-stamp-custom-messages): New test.
2025-11-29 09:14:58 -08:00
Sean Whitton
1677c4681a Handle copying additions & removals between working trees
* lisp/vc/diff-mode.el (diff-file-kill): New optional DELETE
parameter.
(diff-kill-creations-deletions):
* lisp/vc/vc.el (vc--fileset-by-state): New functions.
(diff-kill-creations-deletions, diff-filename-drop-dir)
(diff-hunk-file-names, diff-file-next, diff-hunk-header-re)
(vc-dir-resynch-file): Declare.
(vc--apply-to-other-working-tree): Handle copying and moving
files in the added, removed, missing and unregistered states.
* test/lisp/vc/vc-tests/vc-tests.el
(vc-test--apply-to-other-working-tree): New test.
2025-11-29 14:35:39 +00:00
Sean Whitton
917f5e25de Fix vc-git-uncommit-revisions-from-end
* lisp/vc/vc-git.el (vc-git-uncommit-revisions-from-end): Don't
leave changes staged.
2025-11-29 14:29:58 +00:00
Sean Whitton
577821f143 * lisp/vc/vc-svn.el (vc-svn-state): Handle FILE with no directory. 2025-11-29 14:29:35 +00:00
Eli Zaretskii
ad8ced8bbb ; * lisp/cus-start.el (native-p): Update for treesit options. 2025-11-29 07:56:41 -05:00
Eli Zaretskii
029d87a810 ; * lisp/emacs-lisp/seq.el (seq-reduce): Restore lost sentence. 2025-11-29 07:12:56 -05:00
Eli Zaretskii
19f0b0e1e8 Merge from origin/emacs-30
a74b693683 Clarify use of ':font' in face-remapping functions
5c0d2ca79a ; cl-reduce, seq-reduce: Improve wording.

# Conflicts:
#	lisp/emacs-lisp/seq.el
2025-11-29 07:08:38 -05:00
Eli Zaretskii
5f63dc6d85 ; Merge from origin/emacs-30
The following commit was skipped:

821b63eef7 Fix MinGW64 build broken by 'lseek' changes in MinGW64 he...
2025-11-29 07:07:30 -05:00
Eli Zaretskii
b69152ea75 Merge from origin/emacs-30
cb2e9dd483 * doc/misc/efaq.texi (Spell-checkers): Update ispell URL.
2025-11-29 07:07:30 -05:00
Eli Zaretskii
d65423306a ; Fix byte-compiler warning in treesit.el
* lisp/treesit.el (treesit-declare-unavailable-functions): Declare
'treesit-extra-load-path'.
2025-11-29 07:04:42 -05:00
Eli Zaretskii
ae4416f8f7 eglot: add "ty" LSP server for Python to 'eglot-server-programs'
* lisp/progmodes/eglot.el (eglot-server-programs): Add "ty" LSP
server for Python.  Patch by Steve Purcell <steve@sanityinc.com>.
2025-11-29 13:21:56 +02:00
Eli Zaretskii
c2cb66ffd3 ; * etc/NEWS: Fix message-mode entries. 2025-11-29 12:53:07 +02:00
Rudolf Adamkovič
6743a7d747 Add current subject to future history in `message-change-subject'
* lisp/gnus/message.el (message-change-subject): Read the new subject
with the old subject in the "future history".
* etc/NEWS (minutes): Announce the feature.  (Bug#79815)
2025-11-29 12:49:12 +02:00
Eli Zaretskii
a74b693683 Clarify use of ':font' in face-remapping functions
* lisp/face-remap.el (face-remap-add-relative)
(face-remap-set-base, buffer-face-set, buffer-face-toggle)
(buffer-face-mode-invoke): Clarify how to use ':font' in face
attribute lists.  (Bug#79906)
2025-11-29 11:25:02 +02:00
João Távora
a542ed23e4 Eglot: re-do semantic tokens again (bug#79374)
After a week of intense testing, found out there were various insidious
bugs related to out-of-date requests that rear their heads in different
typing patterns.  One way to sort this out and still minimize the number
of requests is to have Eglot's semtok code be aware of the states a
request for tokens can be in: inexistent/invalid, unsent, sent, valid.

The needs and optimization opportunities for servers that support "full"
and "full/delta" requests are considerably different from the ones of
servers which only support "full" and "range".  The latter seem to be in
the minority, so for now I've removed the range requests.  These servers
should still work with "full" requests.

In a further bug, at least two servers (clangd and lean) were found to
plainly abuse the semanticTokens/refresh server request.  This confuses
the state logic.  The solution is to simply no-op this request handler,
it doesn't seem to do anything useful.

Finally, when auto-reverting with preserve-modes (as done by vc-revert
and auto-revert-mode), the font-lock state needs to be reinitialized.
Fixed this in eglot--after-revert-hook.

* lisp/progmodes/eglot.el (eglot-client-capabilities): Don't announce
ranged request support.
(eglot--docver): Rename from eglot--versioned-identifier.
(eglot--diagnostics)
(eglot--flymake-diagnostics)
(eglot-handle-notification)
(eglot--signal-textDocument/didOpen)
(eglot--report-to-flymake)
(eglot--apply-text-edits)
(eglot--VersionedTextDocumentIdentifier): Use eglot--docver.
(eglot--send-changes-hook): Rename from eglot--document-changed-hook.
(eglot--after-change): Don't run eglot--send-changes-hook here.
(eglot--signal-textDocument/didChange): Run it here.
(eglot--semtok-state): Rename from eglot--semtok-cache.
(eglot--semtok-inflight): Delete.
(eglot--handle-request semanticTokens/refresh): Nullify.
(eglot-semantic-tokens-mode): Tweak.
(eglot--semtok-after-send-changes): New hook.
(eglot--semtok-request)
(eglot--semtok-font-lock): Rewrite.
(eglot--after-revert-hook): Reinitialize semtok state.

Co-authored-by: Lua Viana Reis <me@lua.blog.br>
2025-11-28 21:32:20 +00:00
João Távora
80a84130a4 ; Eglot: remove/address a FIXME added by Stefan Monnier
According to the commit msg of:

   commit 0816da8e78
   Author: João Távora <joaotavora@gmail.com>
   Date:   Mon Oct 21 16:07:38 2019 +0100

This is needed because M-x vc-revert preserves (or used to
preserve) major modes on revert.

* lisp/progmodes/eglot.el (eglot--after-revert-hook): Remove FIXME
comment.
2025-11-28 21:24:56 +00:00
Michael Albinus
6346f5b053 Sync with Tramp 2.8.0.5
* doc/misc/tramp.texi (Remote processes): Improve description
where direct asyn processes won't work.

* lisp/net/tramp-cache.el (with-tramp-saved-connection-properties):
Adapt `tramp-verbose' less aggressive.

* lisp/net/tramp-container.el (tramp-kubernetes--context-namespace):
Use `string-join'.

* lisp/net/tramp-message.el (tramp-get-debug-file-name):
Modify debug file name.
(tramp-debug-message): Simplify.

* lisp/net/tramp-sh.el (tramp-actions-before-shell)
(tramp-actions-copy-out-of-band):
Add `tramp-keyboard-interactive-authentication-prompt-regexp'.

* lisp/net/tramp.el (tramp-encoding-shell): Fix docstring.
(tramp-keyboard-interactive-authentication-prompt-regexp): New defcustom.
(tramp-action-ignore-message): New defun.

* test/lisp/net/tramp-tests.el (tramp-test10-write-region)
(tramp-test10-write-region-file-precious-flag)
(tramp-test10-write-region-other-file-name-handler)
(tramp-test27-load, tramp-test32-shell-command)
(tramp-test32-shell-command-dont-erase-buffer)
(tramp-test34-connection-local-variables)
(tramp-test36-vc-registered, tramp-test39-make-lock-file-name)
(tramp-test39-detect-external-change)
(tramp-test45-asynchronous-requests): Adapt tests.
2025-11-28 17:38:36 +01:00