Commit graph

181039 commits

Author SHA1 Message Date
Jens Schmidt
e08efecd96 Improve documentation of 'seq-difference'
* doc/lispref/sequences.texi (Sequence Functions):
* lisp/emacs-lisp/seq.el (seq-difference): Clarify the documentation of
'seq-difference'.  (Bug#80257)
2026-01-31 16:08:52 +02:00
Michael Albinus
346f1bda6b Improve connection-local variables documentation.
* doc/emacs/custom.texi (Connection Variables):
* doc/lispref/variables.texi (Applying Connection Local Variables):
Improve documentation.
2026-01-31 13:37:56 +01:00
Eli Zaretskii
b75bfa219e ; * admin/authors.el (authors-aliases): Add Boris Buliga. 2026-01-31 13:13:57 +02:00
Eli Zaretskii
f7edfdcfd4 ; Fix documentation of 'help-fns-describe-function-functions'
* lisp/help-fns.el (help-fns-describe-function-functions): Doc fix
(bug#80291).
2026-01-31 12:59:17 +02:00
Boris Buliga
046f5ef018 Fix macOS 26 (Tahoe) scrolling lag and input handling issues
macOS 26 introduced new event processing behavior that causes scrolling
lag and input handling problems in Emacs.  This patch disables two
features via NSUserDefaults when built against the macOS 26 SDK:
- NSEventConcurrentProcessingEnabled
- NSApplicationUpdateCycleEnabled
This fix is based on the equivalent patch in emacs-mac by Mitsuharu
Yamamoto.  See: https://bitbucket.org/mituharu/emacs-mac/commits/e52ebfd
* src/nsterm.m (ns_term_init): Disable problematic event processing
when built for macOS 26+.  (Bug#80268)
2026-01-31 12:18:35 +02:00
Jacob S. Gordon
049eefa611 display-time: Add option to customize help-echo format
This option controls the format of the help-echo when hovering
over the time display in mode line.  (Bug#80143)
* lisp/time.el (display-time-help-echo-format): Add option.
(display-time-string-forms): Use it.

* etc/NEWS (Time): Announce the new option.
2026-01-31 12:12:21 +02:00
Eli Zaretskii
cd152ea611 ; Fix last change
* lisp/leim/quail/iroquoian.el
(iroquoian-haudenosaunee-exception-alist): Doc fix.
2026-01-31 12:06:53 +02:00
Kierin Bell
39dc99518c Add new input method for Tuscarora
* lisp/leim/quail/iroquoian.el: New input method "tuscarora-postfix".

* etc/NEWS: Announce the new input method.  (Bug#80264)
2026-01-31 12:01:48 +02:00
Jens Schmidt
1652e36c6c ; Fix documentaion of 'seq-intersection'
* doc/lispref/sequences.texi (Sequence Functions):
* lisp/emacs-lisp/seq.el (seq-intersection): Fix documentaion of
'seq-intersection'.  (Bug#80257)
2026-01-31 11:52:27 +02:00
Eli Zaretskii
f081afe23d ; Improve documentation of 'condition-case-unless-debug'
* doc/lispref/control.texi (Handling Errors):
* lisp/subr.el (condition-case-unless-debug): Improve the
documentation of 'condition-case-unless-debug'.  (Bug#80234)
2026-01-31 11:24:53 +02:00
Stéphane Marks
a0748d9791 New function 'truncate-string-pixelwise' (bug#80244)
This function will truncate a string on a pixelwise basis in a
work buffer and using a binary search rather than brute force.

* lisp/emacs-lisp/subr-x.el (work-buffer--prepare-pixelwise):
New defun helper function.
(string-pixel-width): Use the helper function.
(truncate-string-pixelwise): New defun.
* test/lisp/misc-tests.el (misc-test-truncate-string-pixelwise):
(misc-test-truncate-string-pixelwise-unicode): New test.
* doc/lispref/display.texi (Size of Displayed Text): Document
the function.
* etc/NEWS: Announce the function.
2026-01-31 11:04:40 +02:00
Daniel Mendler
e68239773c pixel-scroll: Avoid loading `cua-base'
CUA is not necessarily used together with `pixel-scroll-precision-mode'.
Make `pixel-scroll-interpolate-down' and `pixel-scroll-interpolate-up'
independent and avoid loading cua-base.
* lisp/pixel-scroll.el (pixel-scroll-interpolate-up)
(pixel-scroll-interpolate-down): Do not use `cua-scroll-down' and
`cua-scroll-up'; replace them with inline code.  (Bug#80245)
2026-01-31 11:01:02 +02:00
Daniel Colascione
69a2b9fa17 xsettings: honor GDK DPI scaling values
Some XWayland setups only report DPI changes through
GDK xsettings, so Emacs missed DPI updates there.
Recognize the GDK DPI and scaling settings and use
them to compute the effective DPI.

* src/xsettings.c (parse_settings): Recognize
Gdk/UnscaledDPI and Gdk/WindowScalingFactor.
Use them to compute DPI when present.
2026-01-30 12:39:48 -05:00
Sean Whitton
53a3883bf6 vc--incoming-revision: Signal error on cache hit
* lisp/vc/vc.el (vc--incoming-revision): Signal an error instead
of returning nil on a cache hit (bug#80270).
(vc--outgoing-base-mergebase): Simplify, given that
vc--incoming-revision now handles the error case.
2026-01-30 15:56:58 +00:00
Sean Whitton
fcdd8678f9 Make diff-hunk-kill respect an active region
* lisp/vc/diff-mode.el (diff--revert-kill-hunks): New workhorse
routine.
(diff-hunk-kill, diff-revert-and-kill-hunk): Call it.
(diff-hunk-kill): New BEG and END parameters and interactive
form.
* doc/emacs/files.texi (Diff Mode):
* etc/NEWS: Document the change.
2026-01-30 15:06:52 +00:00
Mattias Engdegård
ae7761598d Pass lazy doc string to 'defalias'
* lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-defalias):
We correctly emit a lazy-loaded doc string but then passed a literal
string to 'defalias' by mistake; fix that.  Saves 40 KiB in .elc files.
2026-01-30 15:48:02 +01:00
Sean Whitton
c1029c88a8 ; vc-git-topic-outgoing-base: Merge let into if-let*. 2026-01-30 13:52:37 +00:00
Sean Whitton
b4a18e466e vc-git-topic-outgoing-base: Respect a configure push remote
* lisp/vc/vc-git.el (vc-git-topic-outgoing-base): If there is a
configured push remote, return tracking branch as outgoing base.
2026-01-30 13:50:28 +00:00
Sean Whitton
83db778195 ; Fix last change. 2026-01-30 13:49:35 +00:00
Sean Whitton
93bba3797e Factor out vc-git--branch-remotes
* lisp/vc/vc-git.el (vc-git--branch-remotes): New function.
(vc-git-trunk-or-topic-p): Use it.
* test/lisp/vc/vc-git-tests.el (vc-git-test-branch-remotes): New
test.
2026-01-30 13:35:50 +00:00
João Távora
d0daaead22 Eglot: recall diagnostics froms unopened files on session start
This is exclusively for the benefit of rust-analyzer, which
sends publishDiagnostics for all project files upfront, and
never republishes them on 'didOpen'.

See https://github.com/joaotavora/eglot/issues/1531.

* lisp/progmodes/eglot.el (eglot--flymake-handle-push): Simplify.
Don't flymake-list-only-diagnostics here.
Save original diagnostic in flymake-list-only-diagnostics setting.
(eglot--on-shutdown): Cleanup flymake-list-only-diagnostics.
(eglot--flymake-report-push+pulled): Hack in data from
flymake-list-only-diagnostics.
2026-01-30 12:55:32 +00:00
Sean Whitton
705c0e3729 Bind 's' to diff-split-hunk in read-only diff-mode
* lisp/vc/diff-mode.el (diff-mode-shared-map): Bind 's' to
'diff-split-hunk'.
* etc/NEWS: Document the change.
2026-01-30 11:21:27 +00:00
Juri Linkov
077b33ef7d * lisp/progmodes/eglot.el (eglot-server-programs): Use "elp" for erlang-mode.
erlang_ls has been archived in favour of erlang-language-platform.
Suggested by Alan & Kim Zimmerman <alan.zimm@gmail.com> (bug#79943).
2026-01-30 09:53:30 +02:00
Juri Linkov
1ff0c58fee New function 'checkdoc-batch' (bug#80199)
* lisp/emacs-lisp/checkdoc.el (checkdoc--batch-flag): New variable.
(checkdoc-rogue-spaces, checkdoc-message-text): Use it along the
check for interactive calls to be able to collect errors in the
diagnostic buffer.
(checkdoc-show-diagnostics): Don't show the diagnostic buffer
when 'checkdoc--batch-flag' is non-nil.
(checkdoc-batch): New function to check the buffer and print the
content of the diagnostic buffer.
2026-01-30 09:41:42 +02:00
Juri Linkov
3584a762b8 New key 'M-j' for 'icomplete-mode' (bug#62108)
* lisp/icomplete.el (icomplete-exit): New alias for 'icomplete-fido-exit'.
(icomplete-minibuffer-map): Bind it to "M-j" .

* lisp/replace.el (multi-occur--prompt): Show "M-j" bound to 'icomplete-exit'
in 'icomplete-mode'.
2026-01-30 09:27:12 +02:00
Spencer Baugh
31944efb82 eager-display *Completions* again after completion failure
If the completion table requests eager-update (so *Completions*
should be updated as the user types, when already displayed)
then *Completions* will be dismissed automatically if the user
types something which isn't a completion.  Previously,
*Completions* wouldn't be redisplayed until the user requests it
again.  Now, if the completion table also enables eager-display
in addition to eager-update, then automatically redisplay
*Completions* after it disappears.

* lisp/minibuffer.el (completions--start-eager-display): Add
REQUIRE-EAGER-UPDATE argument and don't run if Completions is
already displayed.
(completions--after-change): Call
'completions--start-eager-display'.
(minibuffer-completion-help): Add the 'completions--after-change'
hook earlier, and let it remove itself (bug#80055).
2026-01-30 09:18:56 +02:00
Eli Zaretskii
eca025334e ; Fix last change
* etc/NEWS:
* doc/lispref/windows.texi (Choosing Window Options):
* doc/emacs/windows.texi (Window Choice): Improve documentation of
'split-window-preferred-direction'.
2026-01-29 22:13:02 +02:00
Sean Whitton
b9bfe461b2 ; Fix minibuffer-message NEWS entry. 2026-01-29 17:08:55 +00:00
Sean Whitton
88d787d97c ; * lisp/ldefs-boot.el: Regenerate. 2026-01-29 17:03:58 +00:00
Sean Whitton
12e53dfafe New C-x v T l and C-x v T L commands
* lisp/vc/vc.el (vc-log-outgoing-base)
(vc-root-log-outgoing-base): New commands.
* lisp/vc/vc-dir.el (vc-dir-mode-map):
* lisp/vc/vc-hooks.el (vc-prefix-map): Bind them.
* doc/emacs/vc1-xtra.texi (Outstanding Changes):
* etc/NEWS: Document them.
2026-01-29 17:01:32 +00:00
Sean Whitton
60b9435ad7 ; Fix/improve two comments. 2026-01-29 17:00:46 +00:00
Spencer Baugh
0ab5db015f (minibuffer-message): Do not block while displaying message.
* lisp/minibuffer.el (minibuffer--message-overlay)
(minibuffer--message-timer): New variables.
(minibuffer--delete-message-overlay): New function.
(minibuffer-message): Use a timer and 'pre-command-hook' to
clear message overlay instead of blocking with
'sit-for'. (bug#79510)
* etc/NEWS: Document the change.
2026-01-29 16:56:38 +00:00
Dmitry Gutov
3937833fff xref-find-backend: Error instead of returning nil
* lisp/progmodes/xref.el (xref-find-backend):
Signal error when we can't find a backend to use (bug#80246).
2026-01-29 17:11:45 +02:00
Sean Whitton
38d0ac8f67 ; * lisp/window.el (window--frame-landscape-p): Improve docstring. 2026-01-29 14:38:07 +00:00
Spencer Baugh
4dc7d6056f Use frame-pixel-width/height to determine if frame is landscape
* lisp/window.el (window--frame-landscape-p): New function.
(split-window-sensibly): Call it (bug#80053).
2026-01-29 14:38:07 +00:00
Mattias Engdegård
495f6b412d tutorial.el: don't mutate quoted list
* lisp/tutorial.el (tutorial--default-keys):
Don't sort quoted list in-place.  Sort at compile time, not load time.
Uniform key representation (vectors) so that the default comparison can
be used.  Eliminate unnecessary backquote.
(tutorial--sort-keys): Remove.
2026-01-29 13:53:53 +01:00
Mattias Engdegård
c07ffa2188 * lisp/tutorial.el (tutorial--describe-nonstandard-key): add space 2026-01-29 13:53:53 +01:00
Eli Zaretskii
792097d747 Avoid interference between child frame deletion and recentering
* src/frame.c (delete_frame) [HAVE_X_WINDOWS]: Block input while
child frame is displayed, and process the X events triggered by
that later.  Patch by Byakuren (https://web.liminal.cafe/~byakuren/).
(Bug#76186)

Copyright-paperwork-exempt: yes
2026-01-29 13:38:22 +02:00
Eli Zaretskii
80551807d4 ; Fix package-vc-tests for older versions of Git
* test/lisp/emacs-lisp/package-vc-tests.el
(package-vc-tests-create-repository): Fix commands for older
versions of Git.
2026-01-29 10:29:40 +02:00
Po Lu
1bbc7d955a ; Update Android dependencies again 2026-01-29 11:25:57 +08:00
Po Lu
f949d5ab62 ; Update Android dependencies 2026-01-29 11:20:48 +08:00
Dmitry Gutov
dfc2a66ad8 xref-matches-in-directory and xref-matches-in-files: More consistency
* lisp/progmodes/xref.el (xref--parse-hits, xref--sort-hits):
Extract from xref-matches-in-directory and xref-matches-in-files.
Use in both for better consistency between these functions.
2026-01-28 23:48:04 +02:00
Dmitry Gutov
d44b855b0c xref-matches-in-directory: Don't error on "Binary file ... matches"
* lisp/progmodes/xref.el (xref-matches-in-directory):
Consider the "Binary file ... matches" message (bug#80246).
2026-01-28 22:10:34 +02:00
Stefan Monnier
fbe4d649c3 (loaddefs-generate--make-autoload): Try harder to find autoload-macro
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--make-autoload):
Try and (auto)load the macro in case that defines `autoload-macro`.
Simplify the code for the `loaddefs--defining-macros` case.
2026-01-28 13:43:36 -05:00
Przemysław Kryger
b370a076b9 Create package-vc-tests repositories once per tests run (bug#80235)
* test/lisp/emacs-lisp/package-vc-tests.el
(package-vc-tests-repos): New variable.
(package-vc-tests-create-repository): Add argument `repos-dir'.
(package-vc-tests-make-temp-dir): Create a temporary directory
with prefix.
(package-vc-with-tests-environment): Use
`package-vc-tests-make-temp-dir' to create a temporary directory
for package test.  Use `package-vc-tests-repos' to cache test
package repository.
(package-vc-tests-preserve-pkg-artifacts-p): Detect when to
preserve package temporary files.
(package-vc-tests-environment-tear-down): Use
`package-vc-tests-preserve-pkg-artifacts-p'.  Use plural there
are more than one buffer.  Report temporary directory with test
repository.
(package-vc-tests-add-ert-run-tests-listener): Wrap listener in
args with custom functionality for `package-vc-tests'.  On tests
run start reset `package-vc-tests-repos' cache.  On tests run
end delete temporary directories.
2026-01-28 18:44:06 +01:00
Sean Whitton
43d6907ad9 Move outstanding changes commands from 'o' to 'T'
The main reason for this is that then these commands can have
the same bindings in VC-Dir buffers that they have under
vc-prefix-map.  'T' is a good mnemonic for "Topic" and a
serviceable mnemonic for "outsTanding".

* lisp/vc/vc-hooks.el (vc-prefix-map): Move 'o' to 'T'.
* lisp/vc/vc-dir.el (vc-dir-mode-map): New 'T' bindings.
2026-01-28 16:13:47 +00:00
Eli Zaretskii
08b7739cf1 ; Fix MS-Windows build broken by recent treesit.c changes
* src/treesit.c (ts_tree_cursor_copy) [WINDOWSNT]: Remove, as it
is no longer used.
(ts_tree_cursor_goto_previous_sibling) [WINDOWSNT]: Add.  (Bug#80108)
2026-01-28 14:09:12 +02:00
Michael Albinus
aaa505025f Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs 2026-01-28 12:44:30 +01:00
Michael Albinus
8c84a2ae71 New Tramp test
* test/lisp/net/tramp-tests.el (tramp-test45-force-remote-file-error):
New test.
2026-01-28 12:43:38 +01:00
Basil L. Contovounesios
f9080e9bc0 Always unset lisp_data when freeing images
Historically only the GIF code did this (since it stores animation
metadata in lisp_data), and recently the WebP code followed suit.
The benefit of clearing lisp_data is not 100% clear (to me:
bug#66221#41), but it probably can't hurt, so do it unconditionally
for all image types to simplify conditional compilation and avoid
warnings (bug#80266).

* src/image.c (image_clear_image): Set lisp_data to nil.
[HAVE_GIF || HAVE_WEBP] (gif_clear_image):
[HAVE_IMAGEMAGICK] (imagemagick_clear_image): Remove, replacing all
uses with image_clear_image.
2026-01-28 10:29:46 +01:00