Commit Graph

181685 Commits

Author SHA1 Message Date
Basil L. Contovounesios
cc4c8e6e9f Simplify some struct frame.output_method checks
* src/lisp.h (inhibit_window_system): Fix typo in commentary.
* src/dispnew.c (Fopen_termscript):
(init_display_interactive) [!HAVE_ANDROID, !MSDOS]:
* src/dosfns.c [MSDOS] (dos_cleanup):
* src/frame.c (frame_inhibit_resize, frame_windows_min_size)
(do_switch_frame, delete_frame):
(make_terminal_frame) [MSDOS]:
(Fmake_terminal_frame) [MSDOS, WINDOWSNT]:
* src/keyboard.c (read_decoded_event_from_main_queue) [!WINDOWSNT]:
(Fcurrent_input_mode):
* src/menu.c (single_menu_item):
* src/msdos.c [MSDOS] (internal_terminal_init):
* src/sysdep.c (init_sys_modes):
* src/term.c: [HAVE_GPM] (Fgpm_mouse_start, Fgpm_mouse_stop):
[MSDOS] (tty_free_frame_resources):
* src/w32xfns.c (get_frame_dc):
* src/xdisp.c (clear_garbaged_frames, hscroll_window_tree)
(redisplay_internal):
* src/xfaces.c (Fdisplay_supports_face_attributes_p)
(realize_default_face, realize_face, realize_tty_face): Use
is_tty_frame, FRAME_INITIAL_P, FRAME_MSDOS_P, FRAME_TERMCAP_P,
FRAME_W32_P, and FRAME_TTY as appropriate instead of open-coding
them (bug#80629).
2026-03-26 15:19:56 +01:00
Basil L. Contovounesios
b5f6bc0072 Improve last change to auth-source-pass
* lisp/auth-source-pass.el (auth-source-pass-search): Remove
redundant expand-file-name.
* test/lisp/auth-source-pass-tests.el
(auth-source-pass--with-store): Bind auth-source-pass-filename to an
existing directory to satisfy the new guard in
auth-source-pass-search (bug#76323).
2026-03-26 15:05:22 +01:00
Naofumi Yasufuku
3c06b7d523 Don't error on nonexistent ~/.password-store
* lisp/auth-source-pass.el (auth-source-pass-search):
If auth-source-pass-filename is not a directory, just do nothing to
avoid repeated errors raised by directory-files-recursively in
auth-source-pass-entries which is called for each search pattern.
(Bug#76323)

Copyright-paperwork-exempt: yes
2026-03-26 14:25:11 +01:00
Eli Zaretskii
4f46593668 ; * lisp/tool-bar.el (tool-bar-setup): Adapt to change for bug#80545. 2026-03-26 11:20:53 +02:00
Eli Zaretskii
55c752d631 ; Fix dired-tests on MS-Windows
* test/lisp/dired-tests.el (dired-test-filename-with-backslash-n):
Skip this test on MS-Windows and MS-DOS.
2026-03-26 08:10:06 +02:00
Stephen Berman
f2b9b827c9 Fix Dired check for newlines in file names
Ensure that Dired does not treat the sequence "\\n" within a file
name as a newline (bug#80608).

* lisp/dired.el (dired--filename-with-newline-p): Rewrite using
'directory-files' with match for regexp "\n".

* test/lisp/dired-tests.el
(dired-test--filename-with-backslash-n): New function.
(dired-test-filename-with-backslash-n): New test.
2026-03-25 20:45:44 +01:00
Pip Cet
2ca648068f Allow retrieving scheduler information in seccomp (bug#80656)
* lib-src/seccomp-filter.c (main): Add rules for 'sched_getscheduler'
and 'sched_getaffinity'.
2026-03-25 16:08:32 +00:00
Basil L. Contovounesios
0048dd0da0 Give compile-command a :group again
Like the commit of 2022-07-31
"Fix further package.el loaddefs byte-compile warnings"
this pacifies the warning that compile-command fails to specify
a containing group when byte-compiling loaddefs.el (bug#80648).

* lisp/progmodes/compile.el (compile-command): Restore explicit
custom :group on autoloaded user option.
2026-03-25 16:06:16 +01:00
Eli Zaretskii
9b0c23a890 Fix "File->Open Directory" menu item after 'ffap-bindings'
* lisp/dired.el (dired-from-menubar): New function.
* lisp/menu-bar.el (menu-bar-file-menu): Use it in the "Open
Directory" menu item, instead of calling Dired directly.  This
ensures we show the correct GUI dialog even if some package remaps
'dired' to something else (like 'ffap-bindings' does).
(Bug#80545)
2026-03-25 15:43:12 +02:00
Eli Zaretskii
99384b1869 ; * lisp/info.el (Info-goto-node-web, Info-url-for-node): Doc fix (bug#80670). 2026-03-25 15:23:46 +02:00
Eli Zaretskii
23b16cd696 ; Make 'default-korean-keyboard' a defcustom
* lisp/language/korea-util.el (default-korean-keyboard): Now a
defcustom.  (Bug#80648)
2026-03-25 14:59:56 +02:00
Stefan Monnier
617b254fe3 minibuffer.el: De-iconify a *Completions* frame only for eager display
* lisp/minibuffer.el (completions--after-change)
(minibuffer--completions-visible): Don't consider an iconified
frame as visible.
2026-03-24 15:54:49 -04:00
Vincent Belaïche
ebd982db33 Check all SES local variables are always set locally. 2026-03-24 18:18:10 +01:00
Vincent Belaïche
b677a90303 Rename ses tests with prefix ses-tests-... 2026-03-24 18:18:08 +01:00
Vincent Belaïche
bb0a5dd6e7 Fix SES tests indentation.
* test/lisp/ses-tests.el (ses-jump-B2-lowcase)
(ses-jump-B2-lowcase-keys): Fix indentation.
2026-03-24 18:18:07 +01:00
Eli Zaretskii
70fae75629 Avoid segfaults in 'bidi_mirror_char' during startup
* src/bidi.c (bidi_mirror_char): Make sure 'bidi_mirror_table' is
initialized before accessing it.  (Bug#80668)
2026-03-24 19:09:52 +02:00
F. Jason Park
7b8a38e053 Add tests for erc-track-faces-normal-list regression
* test/lisp/erc/erc-track-tests.el
(erc-track-tests--modified-channels/baseline): Update assertion to
expect an unchanged mode line segment if `erc-track-faces-normal-list'
lacks a ranked face in the latest inserted message.
(erc-track-modified-channels/baseline/nonotice)
(erc-track-modified-channels/priority-only-all/baseline/nonotice): New
tests.  (Bug#80659)
2026-03-23 18:16:31 -07:00
Ivan
52e5dbd2da Fix erc-track-faces-normal-list regression
* lisp/erc/erc-track.el (erc-track--select-mode-line-face): Check
whether ranked faces in the message appear in the value of the option
`erc-track-faces-normal-list' rather than repeatedly checking if the
current nominee does, usually the highest ranked face in the message.
Failure to do so caused ERC to treat faces absent from the option's
value as being present and thus eligible to replace ranked faces in the
mode line segment.  This bug was introduced in ERC 5.6 and is also part
of 5.6.1.  (Bug#80659)

Copyright-paperwork-exempt: yes
2026-03-23 18:14:57 -07:00
F. Jason Park
bb3c103968 Avoid nested erc-display-message in alert utility
* lisp/erc/erc.el (erc--warn-once-before-connect): Don't call
`erc-display-message' from insertion hooks because doing so places an
unnecessary burden on the caller to preserve the insertion marker and
"msg prop" environment.
2026-03-23 18:13:28 -07:00
Sean Whitton
f08dcace70 ; * lisp/whitespace.el (whitespace-global-modes): Grammar fix. 2026-03-23 21:11:38 +00:00
Basil L. Contovounesios
a4d99971d8 Fix recent whitespace.el changes
* etc/NEWS
(Changes in Specialized Modes and Packages in Emacs 31.1):
Announce new user option whitespace-global-mode-buffers (bug#79230).
* lisp/whitespace.el (whitespace-global-modes): Improve docstring
grammar.
(whitespace-global-mode-buffers): Make default value match *scratch*
exactly for backward compatibility.  Fix custom :type.
(whitespace-enable-predicate): Prefer any over seq-find.
2026-03-23 16:53:57 +01:00
Sean Whitton
c9676d68a2 ; Update tests to match rename of 'any' to 'member-if'. 2026-03-23 12:23:26 +00:00
Yuan Fu
6c79b6bede ; * lisp/treesit.el (treesit-range-rules): Fix range-fn handler. 2026-03-22 20:54:58 -07:00
Pip Cet
1932bb434a Delay initializing 'compile-command' to runtime (bug#80648)
* lisp/progmodes/compile.el (compile-command): Use
'custom-initialize-delay'.
2026-03-22 16:44:04 +00:00
Sean Whitton
17a3f6bf99 * lisp/subr.el (member-if): Fix compiler macro multiple evaluation.
Problem reported by Pip Cet <pipcet@protonmail.com>.
2026-03-22 16:03:16 +00:00
Daniel Mendler
c96c89faaa (dabbrev-completion): Improve last fix for bug#80645
* lisp/dabbrev.el (dabbrev-completion): Signal the error that
`dabbrev-capf` doesn't signal any more.
2026-03-22 10:58:40 -04:00
Helmut Eller
55bf30e017 Staticpro executing_kbd_macro
* src/macros.c (syms_of_macros): Staticpro executing_kbd_macro.
(executing_kbd_macro): Update comment.
* src/macros.h (executing_kbd_macro): Remove redundant comment.
2026-03-22 15:29:37 +01:00
Basil L. Contovounesios
5f3689d77f Fix no-focus-on-map on X without GTK
* src/xterm.c [!USE_GTK] (x_update_frame_user_time_window): When
replacing _NET_WM_USER_TIME with a new _NET_WM_USER_TIME_WINDOW and
the frame has requested no-focus-on-map, ensure _NET_WM_USER_TIME is
zero also on the new _NET_WM_USER_TIME_WINDOW.
(x_make_frame_visible) [!USE_GTK]: Don't overwrite _NET_WM_USER_TIME
before mapping a frame that has requested no-focus-on-map, and whose
_NET_WM_USER_TIME should thus remain zero (bug#80525).
2026-03-22 12:18:03 +01:00
Guilherme de Almeida Suckevicz
8dcbf4fafc Fix wrong type argument error in 'find-file-read-only-other-tab' (Bug#80630)
* lisp/tab-bar.el (find-file-read-only-other-tab): Pass the
function 'find-file-other-tab' directly to
'find-file--read-only' (Bug#80630).

Copyright-paperwork-exempt: yes
2026-03-22 09:27:41 +01:00
Stefan Monnier
a7d0520721 (dabbrev-capf): Fix bug#80645.
* lisp/dabbrev.el (dabbrev-capf): Return an empty table rather than
signaling an error when there are no completions.
The completion UI already takes care of emitting a message like
"No match".
2026-03-21 22:53:13 -04:00
Helmut Eller
e427d55284 * test/src/charset-tests.el (charset-tests-define-charset): New. 2026-03-21 18:42:01 +01:00
Helmut Eller
b06a1f85c6 Use signed ints in struct charset_table
* src/charset.h (struct charset_table): Make the slots size and used
signed.
(charset_attributes_getter): Fix spacing.
2026-03-21 18:42:01 +01:00
Helmut Eller
b0d38e2934 * src/charset.c (Fdefine_charset_internal): Fix memory leak. 2026-03-21 18:42:01 +01:00
Helmut Eller
497fd657cd * src/charset.c (shrink_charset_table): Simplify. 2026-03-21 18:42:00 +01:00
Helmut Eller
32f9e21098 Introduce a struct charset_table
The fields of the new struct are what the global variables
charset_table, charset_table_size, charset_table_used, and
charset_attributes_table used to be.  The struct should make it clearer
that those fields must be kept in sync.

* src/charset.h (struct charset_table): New struct.
(charset_attributes_getter): Adjust accordingly.
* src/charset.c (charset_table): Change type to struct charset_table.
(charset_table_size, charset_table_used, charset_attributes_table):
Moved to the struct.
(Fdefine_charset_internal, Ffind_charset_region, Ffind_charset_string)
(shrink_charset_table, syms_of_charset): Adjust to struct charset_table.
* src/pdumper.c (dump_charset, dump_charset_table): Adjust to struct
charset_table.
2026-03-21 18:42:00 +01:00
Helmut Eller
bbb4fc26e7 * src/charset.h (charset_attributes_getter): Add assertion. 2026-03-21 18:42:00 +01:00
Helmut Eller
186af8e934 Remove the charset_table_init array
Determining the best size for a static array seems difficult; so
allocate it dynamically.

* src/charset.c (CHARSET_TABLE_INIT_SIZE): New constant.
(syms_of_charset): Malloc charset_table here.
(charset_table_init): Removed.
(shrink_charset_table): New function.
(Fclear_charset_maps): Call it.
* src/charset.h (charset_table_init): Removed.
(charset_attributes_getter): Add an assertion.
* src/pdumper.c (dump_charset_table): Assert that charset_table_size ==
charset_table_used.
2026-03-21 18:41:20 +01:00
Helmut Eller
96eacb2c09 Move the attribute field of charsets to a separate vector
This simplifies the GC code, as this was the only field in the charset
struct that referenced the GC heap.  Without it, we no longer need to
trace the charset_table.

* src/charset.h (struct charset.attributes): Removed.
(charset_attributes_getter): New helper.
(CHARSET_ATTRIBUTES): Use it.
* src/charset.c (charset_attributes_table): New.
(Fdefine_charset_internal): Place attrs in charset_attributes_table.
(syms_of_charset): Initialize charset_attributes_table.
(mark_charset): Deleted.
* src/pdumper.c (dump_charset): Skip attributes field.
* src/lisp.h (mark_charset): Deleted.
* src/alloc.c (garbage_collect): mark_charset no longer needed.
2026-03-21 18:20:42 +01:00
Basil L. Contovounesios
fac42338bb Make member-if compiler-macro hygienic
* lisp/subr.el (member-if): Use uninterned symbol in
compiler-macro (bug#80647).
2026-03-21 13:51:27 +01:00
Eli Zaretskii
9adc553ab9 ; * doc/lispintro/emacs-lisp-intro.texi: Fix parens (bug#80646). 2026-03-21 13:27:56 +02:00
Stéphane Marks
48d65afa32 vtable truncate-string-pixelwise, ellipsis can be a string (bug#80026)
Eliminate 'vtable--limit-string' in favor of the more efficient
'truncate-string-pixelwise'.  Remove extraneous pre-measurement
calls to 'string-pixel-width' and ellipsis concatenation as
'truncate-string-pixelwise' does both.
The 'make-vtable' 'ellipsis' keyword can be a string to override
the default returned by 'truncate-string-ellipsis'.

* lisp/emacs-lisp/vtable.el (vtable--ellipsis): New defun.
(vtable-insert-object, vtable--insert): Use 'vtable--ellipsis'.
(vtable--insert-line, vtable--insert-header-line): Call
'truncate-string-pixelwise' instead of 'vtable--limit-string'.
(vtable--limit-string): Remove function.

* test/lisp/emacs-lisp/vtable-tests.el
(test-vtable--limit-string-with-face-remapped-buffer): Remove
test, obsoleted by misc-test-truncate-string-pixelwise.

* doc/misc/vtable.texi: Document that :ellipsis can be a string.
2026-03-21 12:50:04 +02:00
Jeff Valk
eca93f40d1 Ensure correct expansion in 'find-sibling-file-search'
* lisp/files.el (find-sibling-file-search): Following expansion
of each EXPANSION, advance the search start position to reflect
the actual length of the expanded text (the updated string), not
the length of the "\\([&0-9]+\\)" (the string before expansion).
(Bug#80636)

Copyright-paperwork-exempt: yes
2026-03-21 12:31:21 +02:00
Eli Zaretskii
531f45551a ; * src/fns.c (internal_equal_cycle) <use-short-answers>: Doc fix. 2026-03-21 10:12:03 +02:00
Eli Zaretskii
aefa854d01 ; * etc/NEWS: Fix wording. 2026-03-21 09:07:25 +02:00
Eli Zaretskii
4901015055 ; * doc/lispref/variables.texi (Void Variables): Add cross-reference. 2026-03-21 09:05:59 +02:00
Tassilo Horn
8ae0877416 Fix wrong-type-argument error in package-upgrade
* lisp/emacs-lisp/package.el (package-upgrade): Fix wrong-type-argument
error when upgrading a builtin package (bug#80633).
2026-03-21 07:15:35 +01:00
Stefan Monnier
3ed7868f6e simple-tests.el: Use kmacro function
* test/lisp/simple-tests.el (undo-test-kill-c-a-then-undo)
(undo-test-point-after-forward-kill): Use `kmacro` function.
2026-03-20 23:19:43 -04:00
Stefan Monnier
f986e5a897 cursor-sensor.el: Partial fix for bug#80255
This provides limited support for window-specific overlay properties.
To complete it, we still need to add support for it to
`next/previous-single-char-property-change`.

* lisp/emacs-lisp/cursor-sensor.el (cursor-sensor--intangible-p):
Add `window` argument.
(cursor-sensor-tangible-pos, cursor-sensor--detect):
Pass `window` argument to the functions
looking for overlay properties.
2026-03-20 23:18:29 -04:00
Stefan Monnier
378cfb8660 (Fmakunbound): Break aliasing, if present (bug#80538)
* src/data.c (Fmakunbound): Break aliasing, if present.
* doc/lispref/variables.texi (Void Variables): Document it.
2026-03-20 17:21:05 -04:00
Stefan Monnier
89b40650da diff-mode.el: Don't recompute the position of Git preamble/footer
On some profiles (after disabling syntax and refined
fontification), this was taking >90% of the time to fontify a buffer.

* lisp/vc/diff-mode.el (diff--git-preamble-overlay)
(diff--git-footer-overlay): New variables.
(diff--git-preamble-end, diff--git-footer-start): Use them to cache
the result.
2026-03-20 16:53:42 -04:00