Commit graph

182583 commits

Author SHA1 Message Date
Paul Eggert
fa41113380 ; Further improve electric quote doc
This is mostly by adding brevity.
2026-06-13 10:20:51 -07:00
Matthew Batson
9208a1bdd2 ; Improve doc strings of electric.el user options
Change suggested by Richard Stallman in:
https://lists.gnu.org/r/emacs-devel/2026-06/msg00232.html

* lisp/electric.el (electric-indent-actions, electric-indent-chars)
(electric-indent-functions, electric-indent-inhibit)
(electric-layout-rules, electric-layout-allow-duplicate-newlines)
(electric-layout-allow-in-comment-or-string, electric-quote-comment)
(electric-quote-string, electric-quote-chars, electric-quote-paragraph)
(electric-quote-context-sensitive, electric-quote-replace-double)
(electric-quote-replace-consecutive, electric-quote-inhibit-functions)
(electric-quote-mode): Clarify in doc strings the effects, from the
user's point of view, of electric-indent-mode's, electric-layout-mode's,
and electric-quote-mode's user-facing options.
2026-06-13 10:20:51 -07:00
Matthew Batson
d22d2ea4c8 ; * lisp/electric.el (electric-indent-can-reindent-p): Fix typo. 2026-06-13 10:20:51 -07:00
Eli Zaretskii
4a86a530de Merge from origin/emacs-31
498eafb4f1 ; * lisp/help.el (temp-buffer-resize-mode): Doc fix (bug#...
19a7d4ce7c Fix behavior of 'temp-buffer-resize-mode' (Bug#81207)
927a7fff5e Restore public interfaces for accessing built-in package ...
ea3d78898a Allow uninstalling dependency with multiple installations
4a3d5b110e Fix memcpy size in 'merge_faces'
2026-06-13 06:16:54 -04:00
Eli Zaretskii
498eafb4f1 ; * lisp/help.el (temp-buffer-resize-mode): Doc fix (bug#81207). 2026-06-13 12:42:41 +03:00
Eli Zaretskii
283fad1d47 ; * etc/NEWS: Fix formatting. 2026-06-13 11:53:15 +03:00
Manuel Giraud
15e5f404f0 Optional display of overlay-arrow in margin (bug#81109)
* lisp/emacs-lisp/edebug.el (edebug-prepare-margin): New
function to set up left margin for Edebug.
(edebug--display-1): Use it.
* src/xdisp.c (display_line): Try to use left margin to display
overlay arrow and fallback to the text area otherwise.
* doc/lispref/display.texi (Overlay Arrow):
* doc/lispref/edebug.texi (Using Edebug):
* doc/emacs/building.texi (Debugger Operation): Document the
change.
* etc/NEWS: Announce the change.
2026-06-13 11:51:27 +03:00
Pip Cet
90de836831 Unbind specpdl when leaving replace-region-contents (bug#81169)
* src/editfns.c (Freplace_region_contents): Call SPECPDL_INDEX before
code_conversion_save adds specpdl entries.
2026-06-12 16:19:37 +00:00
Paul Eggert
f5cb95423e replace-region-contents malloc fallback
* src/editfns.c (Freplace_region_contents): If the temporary
storage is so large that malloc fails, do not signal an error.
Instead, fall back on destructive replacement.
2026-06-12 14:07:51 +00:00
Paul Eggert
90f25503d8 Refactor replace-region-contents init
* src/editfns.c (Freplace_region_contents):
Make it more obvious that everything fits.
2026-06-12 14:07:51 +00:00
Paul Eggert
09047cde59 Speed up replace-region-contents memory allocation
* src/editfns.c (Freplace_region_contents):
Coalesce three SAFE_ALLOCAs into one.
2026-06-12 14:07:51 +00:00
Pip Cet
565639eb32 Simplify character comparisons in Freplace_region_contents
We expect 'compareseq' to call 'buffer_chars_equal' very often, so
it's worth it to use some memory and make it as fast as possible.

* src/editfns.c (EXTRA_CONTEXT_FIELDS): Drop buffer, beg, and unibyte
fields; add arrays of character codes stored as C ints.
(Freplace_region_contents): Generate such arrays from the two regions
to be compared.
(buffer_chars_equal): Compare array elements instead of buffer
characters.
2026-06-12 14:07:51 +00:00
Martin Rudalics
19a7d4ce7c Fix behavior of 'temp-buffer-resize-mode' (Bug#81207)
* lisp/help.el (temp-buffer-resize-mode): Fix doc-string - a
window can be resized now even if it has shown another buffer in
between (Bug#81207).
(resize-temp-buffer-window): Resize window if and only if its
buffer is the buffer it has shown initially (Bug#81207).
2026-06-12 09:44:01 +02:00
Dmitry Gutov
568a435af9 * lisp/progmodes/project.el (project-vc-dir): Add clarifying comment. 2026-06-12 06:28:10 +03:00
Dmitry Gutov
87133286d6 Revert "project-vc-dir: Use truenames"
This reverts commit 1d91d9b717.
2026-06-12 06:20:12 +03:00
Dmitry Gutov
d813a8bf98 Revert "* lisp/progmodes/project.el (project-vc-dir): Make interactive-only."
This reverts commit 4c12da0888.
2026-06-12 06:17:16 +03:00
Dmitry Gutov
6370b66a87 Revert "; * lisp/progmodes/project.el (project-vc-dir): Fix docstring."
This reverts commit d0653b46f6.

Given the examples in
https://lists.gnu.org/archive/html/emacs-devel/2026-06/msg00276.html
it's clear that there is no consensus on using canonical names here.
2026-06-12 06:13:42 +03:00
Xiyue Deng
927a7fff5e
Restore public interfaces for accessing built-in package info
These functions were removed in ab36f58922
during the reorganization of package.el as part of Bug#80079.

Also add a simple test for these functions to avoid future regressions.

See also discussion at
https://lists.gnu.org/archive/html/emacs-devel/2026-06/msg00149.html.

* lisp/emacs-lisp/package.el (package-versioned-builtin-packages,
package-builtin-package-version): Restore.
* lisp/emacs-lisp/package-activate.el: Remove lingering comments.
* test/lisp/emacs-lisp/package-tests.el
(package-test-builtin-package-info): Add.
2026-06-11 22:47:33 +02:00
Philip Kaludercic
ea3d78898a
Allow uninstalling dependency with multiple installations
* lisp/emacs-lisp/package.el (package--dependency-p): Add new
function to check if a package is a dependency.
(package-delete): Prompt user if it is OK to uninstall a package
that serves as a dependency, but where the package has multiple
installations.  This also means that we don't de-select a
selected dependency if there are multiple installations.

(Bug#81082)
2026-06-11 22:47:33 +02:00
Paul H. McClelland
78a10d17c6 Convert outline-search-function to defcustom
Make 'outline-search-function' a user option with named choices for
its predefined values, so users can configure it via Customize.
Preserves existing docstring and runtime semantics (bug#81053).

* lisp/outline.el (outline-search-function): Convert to defcustom.
* etc/NEWS: Announce it.
2026-06-11 20:47:40 +03:00
Paul Hsin-ti McClelland
194c28aaf2 Add outline-search-from-regexp generic helper
Add outline-search-from-regexp generic helper (bug#80887)

Minor modes and third-party packages that customize 'outline-regexp'
typically need an 'outline-search-function' implementation that
searches for 'outline-regexp' anchored at beginning of line.  Without
a generic helper, each such user reinvents the function locally.
Add it to outline.el.

This pattern has been in production use as a default value of
'outline-search-function' (set via 'setq-default') without issues.

* lisp/outline.el (outline-search-from-regexp): New function.
* etc/NEWS: Announce it.
2026-06-11 20:42:29 +03:00
James Cherti
b079716674 Document outline-show-entry-and-parents in the Emacs manual
* doc/emacs/text.texi (Outline Visibility): Document the new
'outline-show-entry-and-parents' command and its 'C-c C-e' keybinding.
(Foldout): Update the Foldout example to reference the new command
(bug#79286).
2026-06-11 20:38:37 +03:00
Andrea Alberti
4a3d5b110e Fix memcpy size in 'merge_faces'
* src/xfaces.c (merge_faces): Use 'sizeof lface_attrs' instead of
LFACE_VECTOR_SIZE as the 'memcpy' size argument.  (Bug#81224)
2026-06-11 18:51:36 +03:00
Sean Whitton
0cef3ee64b ; Merge from origin/emacs-31
The following commits were skipped:

2c6a03b08c Fix fontification in short unintegrated changes logs (bug...
7b23e17eb8 * lisp/vc/vc.el (vc-log-remote-unintegrated): Set vc-log-...
2026-06-11 16:12:15 +01:00
Sean Whitton
5c85d3f59d Merge from origin/emacs-31
ffa25543a1 vc-hg-trunk-or-topic-p, vc-hg-topic-outgoing-base: Fix re...
fe45d875a4 ; Fix last Tramp change
2026-06-11 16:12:15 +01:00
Sean Whitton
ba13312811 ; Merge from origin/emacs-31
The following commit was skipped:

133c79b6bc markdown-ts-mode: Sanitize work-buffer pool
2026-06-11 16:12:15 +01:00
Sean Whitton
f836632aee Merge from origin/emacs-31
f89ff62367 Extend Tramp external operations
4dea6ea36b markdown-ts-mode: fix duplicated menu entries (bug#81201)
9cad2da66e ; Fix last change.
cd84bd6a0c vc-dir-recompute-file-state: Change directory to DEF-DIR
47bdbc8d85 Restore "interactive" when describing functions
1a5d9a4be3 Inhibit follow-link via `mouse-1' on the tab-bar (bug#81036)
c94d58ddbf Fix the tab close button appearance when clicking (bug#76...
a21614d4d6 ; Skip one vc-dir test on MS-Windows
abddd2075a ; Fix last change to vc-dir-recompute-file-state.
89bda8736a Install images with info documentation (bug#81204)
466789b511 vc-dir-recompute-file-state: Return nil state for nonexis...
2026-06-11 16:12:15 +01:00
Sean Whitton
2c6a03b08c Fix fontification in short unintegrated changes logs (bug#81215)
Do not merge to master.

* lisp/vc/vc.el (vc--shortlog): New variable.
(vc-print-log-internal):
* lisp/vc/vc-git.el (vc-git-log-view-mode):
* lisp/vc/vc-hg.el (vc-hg-log-view-mode): Use it.
2026-06-11 16:11:04 +01:00
Sean Whitton
7b23e17eb8 * lisp/vc/vc.el (vc-log-remote-unintegrated): Set vc-log-view-type.
Do not merge to master.
2026-06-11 15:05:59 +01:00
Sean Whitton
cda9d9c733 Fix fontification in short unintegrated changes logs (bug#81215)
* lisp/vc/vc.el (vc-log-view-type): Replace with ...
(vc-log-view-types): ... this.  All uses changes.
(vc-log-remote-unintegrated): Newly pass a value for the log
view types.  This matters for Hg repositories.
(vc-print-log-internal): Ensure log view types always contains
either 'long' or 'short'.
(vc-root-log-incoming, vc-root-log-outgoing, vc-log-search):
* lisp/vc/vc-dir.el (vc-dir--count-outgoing): Pass both
log-incoming/log-outgoing/log-search and short/long for the log
view types.  This is necessary because these functions don't
call vc-print-log-internal.  This will need to be refactored
when implementing the new fileset-specific vc-log-incoming and
vc-log-outgoing.
2026-06-11 14:34:13 +01:00
Sean Whitton
ffa25543a1 vc-hg-trunk-or-topic-p, vc-hg-topic-outgoing-base: Fix ret vals
* lisp/vc/vc-hg.el (vc-hg-trunk-or-topic-p)
(vc-hg-topic-outgoing-base): Fix return values.
2026-06-11 14:23:28 +01:00
Michael Albinus
fe45d875a4 ; Fix last Tramp change 2026-06-11 14:52:55 +02:00
Boris Buliga
8486669e37 Disable one-time-code AutoFill heuristics in Emacs.app
* nextstep/templates/Info.plist.in: Set
NSAutoFillRequiresTextContentTypeForOneTimeCodeOnMac to true.

Copyright-paperwork-exempt: yes
2026-06-11 12:17:22 +01:00
Eli Zaretskii
51703705e7 ; Fix last change
* etc/NEWS:
* doc/lispref/variables.texi (Creating Buffer-Local): Improve
wording of last change's documentation.  (Bug#81111)
2026-06-11 10:41:48 +03:00
Stéphane Marks
c6c4888ced 'work-buffer--release' kill locals silently and reset the buffer (bug#81111)
This change helps ensure that work buffers are "clean" for reuse
by arbitrary callers.

* lisp/emacs-lisp/subr-x.el (work-buffer--release): Call
'kill-all-local-variables' with KILL-PERMANENT 'reset.
* src/buffer.c (Fkill_all_local_variables): If KILL-PERMANENT is
'permanent-local, kill all locals without prejudice.  If
KILL-PERMANENT is 'reset, also call 'reset_buffer'.
* test/lisp/emacs-lisp/subr-x-tests.el
(subr-x-with-work-buffer-locals-killed): New test.
* doc/lispref/variables.texi: Update 'kill-all-local-variables'
documentation.
* etc/NEWS: Announce the change to 'kill-all-local-variables'.
2026-06-11 10:34:44 +03:00
Eli Zaretskii
1c17d2a045 ; * lisp/cus-edit.el (setopt-local-type-mismatch): Another doc-string fix. 2026-06-11 09:29:48 +03:00
Eli Zaretskii
378c4a3d49 ; Fix last change
* etc/NEWS:
* lisp/cus-edit.el (setopt-local-type-mismatch): Improve wording
of documentation in last change.  (Bug#81120)
2026-06-11 09:28:15 +03:00
Stéphane Marks
725120ca3d Set user options in file/directory locals like 'setopt-local' (bug#81120)
This ensures defcustom ':set' functions are invoked.  The new
user option 'setopt-local-type-mismatch' can prompt users to
accept or discard type-mismatched values or to always accept or
discard such values.

* lisp/cus-edit.el (setopt-local-type-mismatch): New defcustom.
(setopt--set-local): Consult setopt-local-type-mismatch.
* lisp/files.el (hack-one-local-variable): Detect a custom
variable and call 'setopt--set-local'.
* etc/NEWS: Announce the change.
2026-06-11 09:17:52 +03:00
Stéphane Marks
133c79b6bc markdown-ts-mode: Sanitize work-buffer pool
This a workaround for the release branch due to the work-buffer
pool being insufficiently sanitized.
* lisp/textmodes/markdown-ts-mode.el
(markdown-ts--run-command-in-code-block): Reset 'mark-active'.
Do not merge to master.  (Bug#81218)  (Bug#81111)
2026-06-11 09:08:40 +03:00
Dmitry Gutov
6e67ac222b * src/xterm.c: (x_suspend_background_fills): Improve commentary. 2026-06-11 07:56:18 +03:00
James Cherti
8decb653ff Fix outline-end-of-subtree at end of buffer
When a subtree is at the end of the buffer and followed by a
newline, flagging the subtree as invisible incorrectly swallows
the final newline.

* lisp/outline.el (outline-end-of-subtree): Check for eobp
to ensure the function steps back over the final newline when
the subtree ends at the end of the buffer (bug#80917).
2026-06-10 18:54:10 +03:00
James Cherti
e7e9c55ba7 Add outline-show-entry-and-parents to reveal entry hierarchy
* lisp/outline.el (outline-mode-prefix-map):
Rebind 'C-e' from 'outline-show-entry'
to 'outline-show-entry-and-parents'.
(outline-mode-menu-bar-map): Use 'outline-show-entry-and-parents'
instead of 'outline-show-entry'.
(outline-isearch-open-invisible): Use the new command instead of
the 'outline-show-entry' primitive.  This prevents unintended
side effects for packages relying on the base API and avoids the
'isolated item' effect.
(outline-show-entry-and-parents): New function to climb the tree,
reveal parent headings, and unfold the current entry (bug#79286).
2026-06-10 18:47:04 +03:00
Sean Whitton
971fa88a58 VC-Dir: Clear and populate async headers in vc-dir-resynch-file too
* lisp/vc/vc-dir.el (vc-dir--set-header): New function, factored out.
(vc-dir-resynch-file, vc-dir-refresh): Use it.
2026-06-10 15:26:36 +01:00
Michael Albinus
f89ff62367 Extend Tramp external operations
* doc/misc/tramp.texi (New operations): Extend.

* lisp/net/tramp.el (tramp-file-name-for-operation-external):
Extend docstring.
(tramp-file-name-for-operation): Make more use of
`tramp-file-name-for-operation-external'.
(tramp-add-external-operation): Support ARG-TYPE `tramp-file-name'.

* test/lisp/net/tramp-tests.el (tramp-test49-external-backend-function):
Extend test.
2026-06-10 15:45:31 +02:00
Rahul Martim Juliato
4dea6ea36b markdown-ts-mode: fix duplicated menu entries (bug#81201)
* lisp/textmodes/markdown-ts-mode.el
(markdown-ts-code-block-in-context-mode-map)
(markdown-ts-in-table-mode-map): Remove redundant :parent.
2026-06-10 16:06:57 +03:00
Sean Whitton
9cad2da66e ; Fix last change. 2026-06-10 13:37:57 +01:00
Sean Whitton
cd84bd6a0c vc-dir-recompute-file-state: Change directory to DEF-DIR
* lisp/vc/vc-dir.el (vc-dir-recompute-file-state): Change
directory to DEF-DIR before calling into the backend.
* test/lisp/vc/vc-tests/vc-test-misc.el
(vc-test-vc-dir-on-symlink): Test that the file has the right
state.
2026-06-10 13:36:52 +01:00
Pip Cet
47bdbc8d85 Restore "interactive" when describing functions
* lisp/help-fns.el (help-fns-function-description-header): Only
substitute "an" for "a", not for a longer BEG (bug#81203).
2026-06-10 10:32:40 +01:00
Sean Whitton
d0653b46f6 ; * lisp/progmodes/project.el (project-vc-dir): Fix docstring. 2026-06-10 10:04:49 +01:00
Sean Whitton
4c12da0888 * lisp/progmodes/project.el (project-vc-dir): Make interactive-only. 2026-06-10 10:00:13 +01:00