Commit graph

182150 commits

Author SHA1 Message Date
Peter Oliver
5913101e40 ; * etc/NEWS: Announce "setrgbf" and "setrgbb" terminfo capabilities 2026-04-23 14:53:43 +03:00
Eli Zaretskii
71749c47d9 ; * etc/NEWS: Fix last added entry. (Bug#80451) 2026-04-23 11:36:09 +03:00
Lee Thompson
39202daedd Add language-environment and input methods for Syriac
* lisp/leim/quail/syriac.el: New file
* lisp/language/misc-lang.el: ("Syriac"): New language environment.
("Arabic"): Add comment explaining usage of `arabic-shape-gstring'
for Syriac as well as Arabic.
* etc/NEWS: Announce the new language environment and input methods.
* etc/HELLO: Add a Syriac greeting.
(Bug#80451)
2026-04-23 11:31:10 +03:00
Peter Oliver
fe1d9562f1 Document setrgbb, setrgbf, and Tc terminal capabilities
* doc/misc/efaq.texi (Colors on a TTY): Mention the unofficial
setrgbb, setrgbf, and Tc terminal capabilities, and give an
example custom terminfo defintion using them.  (Bug#70941)
2026-04-23 10:45:01 +03:00
Peter Oliver
74d411d600 Simplify Tc/COLORTERM=truecolor escape sequence
This should be more readable to most people, since C is
more widely familiar than the terminfo language.
* src/term.c (init_tty): Do the conversion from a single integer
24-bit color value to three 8-bit RGB values up-front.
(Bug#70941)
2026-04-23 10:32:50 +03:00
Tim Ruffing
8aa7f6a501 Support setrgbb/setrgbf for setting 24-bit color
* src/term.c (turn_on_face): Account for TF_rgb_separate.
(init_tty): Support setrgbf/setrrgbb and set TF_rgb_separate
accordingly.
* src/termchar.h: Update commentary.
(Bug#70941)
2026-04-23 10:29:00 +03:00
Peter Oliver
84ae97f865 Use expected escape sequence for terminfo Tc and COLORTERM=truecolor
When the non-standard terminfo capability Tc is present, or the
environment variable COLORTERM is set to truecolor, use a
hard-coded escape sequence that addresses all colors directly by
their RGB values.

Previously we used escape sequences cribbed from terminfo's
setaf/setab for direct color, that expect that we will only try to
use colors 000000 to 000007 for the first eight indexed colors.
This isn't something we currently handle.

* doc/misc/efaq.texi (Colors on a TTY): Fix off-by-one error in list
of indexed colors for terminfo RGB terminals.
* src/term.c (init_tty): Don’t use any indexed colors with terminfo
Tc capability or COLORTERM=truecolor environment variable (bug#70941).
2026-04-23 10:20:41 +03:00
Stefan Monnier
4e165cc2d0 (loaddefs--defining-macros): Delete var
Now that Transient-0.13.0 has been merged, we don't need to
treat its macros specially any more because they come with the
appropriate `autoload-macro` property.

* lisp/emacs-lisp/loaddefs-gen.el (loaddefs--defining-macros): Delete var.
(loaddefs-generate--make-autoload): Delete corresponding code.
2026-04-22 23:02:59 -04:00
Philip Kaludercic
986892fe30
; Adjust package tests for 789e98e54f
* test/lisp/emacs-lisp/package-tests.el (package-test-get-deps):
Replace test with an analogous test for 'package--dependencies'.
2026-04-22 20:46:33 +02:00
Jonas Bernoulli
45304541ec
Update to Transient v0.13.0-10-g5b2ff26f 2026-04-22 18:53:35 +02:00
Roi Martin
7f1e54c61a Test that ERT creates a list of executed tests from erts files
* test/lisp/emacs-lisp/ert-resources/erts-file-test-list-fail.erts:
* test/lisp/emacs-lisp/ert-resources/erts-file-test-list.erts: New erts
files.
* test/lisp/emacs-lisp/ert-tests.el (ert-test-list-of-erts-file-tests):
New test.
2026-04-22 18:03:47 +02:00
Stefan Monnier
402a0b7075 (mail-citation-prefix-regexp): Fix excessive backtracking (bug#80808)
* lisp/mail/sendmail.el (mail-citation-prefix-regexp): Simplify regexp
and fix docstring to reflect reality since commit 0b8ee42164.
2026-04-22 08:39:48 -04:00
João Távora
cd1a372ccf Eglot: add eglot--server-buffer-name and use it consistently
* lisp/progmodes/eglot.el (eglot--server-buffer-name): New function.

(eglot--connect): Rename events and stderr buffers after serverInfo
arrives to include the server's self-reported name.

(eglot-show-workspace-configuration, eglot-describe-connection)
(eglot--define-hierarchy-command): Use eglot--server-buffer-name.

(eglot--propose-changes-as-diff): Add SERVER argument; use
eglot--server-buffer-name.

(eglot--apply-workspace-edit): Add SERVER argument; pass server to
eglot--propose-changes-as-diff.

(eglot-handle-request workspace/applyEdit, eglot-execute)
(eglot-rename): Pass server to eglot--apply-workspace-edit.
2026-04-22 09:08:36 +01:00
João Távora
ca816386e7 Eglot: add eglot--server-name helper
* lisp/progmodes/eglot.el (eglot--server-name): New function.
(eglot--list-connections-entries, eglot-describe-connection): Use it.
2026-04-22 09:08:36 +01:00
Eshel Yaron
2afa232816
; (string-edit-minor-mode): Fix mode line lighter. 2026-04-22 09:33:59 +02:00
Eli Zaretskii
6f15481be5 ; Fix files-tests on MS-Windows
* test/lisp/files-tests.el
(files-tests-file-name-non-special--temp-file-prefixes): Don't use
a file name with '*' on MS-Windows.
2026-04-22 08:48:49 +03:00
Michael Albinus
901d4fe32a Improve files-tests.el for quoted file names
* test/lisp/files-tests.el
(files-tests-file-name-non-special--temp-file-prefixes): New defconst.
(files-tests-file-name-non-special--subprocess)
(files-tests-file-name-non-special--buffers): Loop over it.
(files-tests--with-temp-non-special)
(files-tests--with-temp-non-special-and-file-name-handler): Simplify.
(files-tests-file-name-non-special-make-symbolic-link):
Pacify compiler warning.
2026-04-21 19:23:21 +02:00
Juri Linkov
330ccd3368 Rebind 'tab-bar-mouse-close-tab' from <down-mouse-2> to <mouse-2>
* lisp/tab-bar.el (tab-bar-map): Unbind <mouse-2> from 'ignore'.
Bind 'tab-bar-mouse-close-tab' to <mouse-2> instead of <down-mouse-2>
(bug#80858).
2026-04-21 19:30:03 +03:00
john muhl
c6ec2c6ce1 ; Cleanup defcustoms in 'lua-mode'
* lisp/progmodes/lua-mode.el (lua-always-show)
(lua-documentation-url): Add :version, remove :group.  (Bug#80840)
2026-04-21 16:36:41 +03:00
Eli Zaretskii
612960d4b3 Fix 'toggle-truncate-lines' when 'visual-line-mode' is ON
* lisp/simple.el (toggle-truncate-lines): Force 'truncate-lines'
non-nil, even if visual-line-mode needs to be turned off.
(Bug#80741)
2026-04-21 16:25:29 +03:00
Leo C. Stein
de09a022a4 Add missing Greek subscripts to TeX input method
* lisp/leim/quail/latin-ltx.el: Add a regex to match Greek
subscripts. Currently there are only five in unicode: beta, gamma,
rho, phi, and chi. They can now be input with the TeX input method
as, e.g., _\beta .  (Bug#80791)
2026-04-21 16:17:32 +03:00
Eli Zaretskii
ccb454f28c Fix unsafe use of SDATA in 'display_tty_menu_separator'
* src/xdisp.c (display_tty_menu_separator): Pass Lisp string to
display_string, not a pointer to its SDATA.  This is safer
GC-wise.
2026-04-21 15:49:07 +03:00
Eli Zaretskii
c1fbe7c408 ; Avoid warnings from 'makeinfo' in Calc manual
* doc/misc/calc.texi (Top, Interactive Tutorial): Fix warnings
emitted by 'makeinfo' due to node inconsistencies with menus.
(Bug#80735)
2026-04-21 15:23:15 +03:00
Roi Martin
62e3549f78 Show executed tests from erts files via the ERT results buffer
* lisp/emacs-lisp/ert.el: Add key binding.
(ert--erts-file-test-execution-observer): New variable.
(ert--signal-erts-file-test-execution): New function.
(ert-test-result): Add field.
(ert-run-test): Collect tests from erts files.
(ert-results-mode-menu): Add entry.
(ert--erts-file-test-name-button): New button type.
(ert--erts-file-test-name-button-action): New function.
(ert-results-pop-to-erts-file-tests-for-test-at-point): New function.
(ert-test--erts-test): Record execution of test from erts file.
* doc/misc/ert.texi (Running Tests Interactively): Update manual.
* etc/NEWS: Update NEWS.  (Bug#80806)
2026-04-21 12:30:48 +02:00
João Távora
28ead74772 Eglot: handle visited file name changes (typically C-x C-w)
When the user renames a buffer's file via set-visited-file-name,
notify the server with didClose (old URI) and didOpen (new URI).
The TextDocumentIdentifier cache still holds the old URI when
after-set-visited-file-name-hook fires, so didClose uses it
correctly; didOpen then clears and rebuilds it from the new name.

* lisp/progmodes/eglot.el (eglot--managed-mode): Hook and unhook
eglot--after-set-visited-file-name-hook.
(eglot--after-set-visited-file-name-hook): New function.
2026-04-21 11:03:50 +01:00
João Távora
baf7e6a44f Eglot: use Unicode box-drawing chars in hierarchy buffers
Use box-drawing characters for the tree guides in hierarchy
buffers when the display supports them.

* lisp/progmodes/eglot.el (eglot--hierarchy-2): Rework.
2026-04-21 11:03:49 +01:00
Philip Kaludercic
6a1c43fe62
; Add a comment to elaborate changes in 0051e2b7 2026-04-21 08:02:37 +02:00
Philip Kaludercic
789e98e54f
Extend utility of 'package-get-descriptor'
The general idea here is to make it easier to handle situations
where you might have a symbol designating a package name or a
'package-desc' object, but you really want the latter.

* lisp/emacs-lisp/package.el (package--get-deps): Remove
function superseded by 'package--dependencies'.
(package--builtin-alist, package--archive-contents): Add new
functions.
(package--removable-packages): Use 'package--dependencies'.
(package--dependencies): Check for circular dependencies.
(package-upgrade, package--upgradeable-packages)
(package--user-installed-p, package-reinstall, package-recompile)
(describe-package-1, package-desc-status, package--mapc)
(package-menu--find-upgrades): Use 'package-get-descriptor'.
(package-get-descriptor): Add optional arguments to allow for
different kinds of queries.

* lisp/emacs-lisp/package-vc.el
(package-vc-install-selected-packages)
(package-vc--generate-description-file)
(package-vc-install-dependencies, package-vc--read-package-desc)
(package-vc-install, package-vc-checkout): Use
'package-get-descriptor'.
2026-04-21 08:02:37 +02:00
João Távora
1b2a8de314 Eglot: unbreak diagnostics in symlinked projects
Now that 'eglot-uri-to-path' tries to return
"project-root-familiar" paths, unresolving the absolute path
name, it's important to update 'eglot--find-buffer-visiting' to
consider the two alternative ways to refer to a file.  IOW, this
was already a bug, but the latest changes to 'eglot-uri-to-path'
made it more evident.

* lisp/progmodes/eglot.el (eglot--find-buffer-visiting): Also
consider buffer-file-name.
2026-04-20 16:13:57 +01:00
Michael Heerdegen
ddef61cd4b ; Additional small tweaks of map.el methods
* lisp/emacs-lisp/map.el (map-into, map-do): Doc tweaks.
(Bug#80804)
2026-04-20 16:03:25 +03:00
Martin Rudalics
b7eb715a13 Fix control window setup in 'ediff-setup-windows-plain-compare' (Bug#80809)
* lisp/vc/ediff-wind.el (ediff-setup-windows-plain-compare): Do
not call 'display-buffer-in-direction' directly (Bug#80809).
2026-04-20 10:33:55 +02:00
Roland Winkler
6de3bc0bf2 proced-format: Simplify last change
* lisp/proced.el (proced-current-process): Rename from
proced-format-current-process.
(proced-format): Use it.  Simplify.
2026-04-19 23:28:18 -05:00
Kyle Meyer
0d8ccbfe59 Update to Org 9.8.3 2026-04-19 23:10:39 -04:00
Yuan Fu
29751e4724
Make sure treesit-fill-reindent-defun handles nil defun (bug#80860)
* lisp/treesit.el (treesit-fill-reindent-defun): Display error
when there's no defun at point.
2026-04-19 20:01:25 -07:00
Yuan Fu
3d0597e9b2
* src/treesit.c (Ftreesit__linecol_at): Add treesit_check_position. 2026-04-19 19:50:12 -07:00
Yuan Fu
6894b65440
Fix tree-sitter variable name
* lisp/treesit.el:
(treesit-languages-require-line-column-tracking): This is what
treesit.c uses.
* src/treesit.c: Fix comment typo.
2026-04-19 19:50:12 -07:00
Michael Albinus
b0034dffcc Some minor Tramp changes
* lisp/net/tramp-sh.el (tramp-get-remote-arg-max): New defun.
(tramp-open-connection-setup-interactive-shell): Use it.

* lisp/net/tramp.el (tramp-multi-hop-p-hook): New defvar.
(tramp-multi-hop-p): Use it.
(tramp-handle-make-process): Set TERM environment.
2026-04-19 15:19:20 +02:00
Paul Eggert
38e704c1dc emacs server sending long-line simplification
Now that emacsclient can receive long lines without problems,
don’t bother splitting long lines when sending to it.
* lisp/server.el (server-msg-size): Now obsolete.
(server-reply-print): Send qtext without trying to break it
into pieces (Bug#80807#49).
2026-04-18 22:33:52 -07:00
Paul Eggert
1ae3a09032 Pacify clang 21.1.8 + gdk-pixbuf 2.44
* src/pgtkfns.c (xg_set_icon_from_xpm_data):
* src/xfns.c (xg_set_icon_from_xpm_data):
Also pacify clang when --enable-gcc-warnings is used.
2026-04-18 22:33:52 -07:00
Stefan Monnier
e6873462ce (js-jsx--detect-after-change): Fix test regression
Commit 6942d508f0 made js-mode-regexp-syntax-bug-25529 fail,
because it changes the moment and place in which
`syntax-propertize` gets called, uncovering a bug where
`js-jsx--detect-after-change` narrows the buffer, then calls
`re-search-forward` which calls `syntax-propertize`, so we end
up doing `syntax-propertize` while narrowed which can fail in
all kinds of ways.

* lisp/progmodes/js.el (js-jsx--detect-and-enable): Change optional arg
to BEG and END.
(js-jsx--detect-after-change): Use them to avoid narrowing.

* lisp/emacs-lisp/syntax.el (syntax-propertize): Emit a message
when called narrowed and the narrowing starts later than the
nearest already propertized position.
2026-04-19 00:01:22 -04:00
Philip Kaludercic
0ed0ff69e5
; Fix cl-loop related typo from 27434c0f 2026-04-18 14:49:06 +02:00
Eli Zaretskii
0fb341c4b4 Merge from origin/emacs-30
8f535370b9 * src/image.c (svg_load_image): Fix off-by-one mistake (b...
fe90f2d87e * test/infra/gitlab-ci.yml (default): User docker 28.5.2.

# Conflicts:
#	src/image.c
2026-04-18 08:43:50 -04:00
Philip Kaludercic
0051e2b707
Suppress queries when installing package from file
* lisp/emacs-lisp/package.el (package-install-file): Assume it
is OK to set the visited file name, since we are not actually
touching anything on disk, and prevent the modified flag from
preventing us to kill the temporary buffer.  The flag is set by
tar-mode.
2026-04-18 14:29:07 +02:00
Philip Kaludercic
27434c0f9d
Use git-diff(1) in 'package-review-diff-command' if available
* lisp/emacs-lisp/package.el (package--review-git-diff-command):
Add new constant to avoid duplicating the exact command as the
default value and in the type of the user option.
(package-review-diff-command): Use git-diff(1) if Git is
installed, and fall back to regular diff(1) otherwise.  The
previous default value has been moved to the user option, as a
suggested alternative.
(package-review): Support the ability to use symbols, that get
replaced and expanded into the list of switches.

(Bug#80684)

Co-Authored-By: Daniel Mendler <mail@daniel-mendler.de>
2026-04-18 14:29:07 +02:00
Philip Kaludercic
c4902924b6
; Add missing docstring for 'package-matches-selector-p'
* lisp/emacs-lisp/package.el (package-matches-selector-p): New
docstring based on 'package-review-policy'.
2026-04-18 14:29:07 +02:00
Eli Zaretskii
8f535370b9 * src/image.c (svg_load_image): Fix off-by-one mistake (bug#80851). 2026-04-18 10:35:05 +03:00
Yuan Fu
5e7518b838
; * src/treesit.c (compute_new_linecol_by_change): Fix comment. 2026-04-17 20:19:58 -07:00
Yuan Fu
1b8512d676
Fix c-ts-mode-set-style when STYLE is a function (bug#80777)
* lisp/progmodes/c-ts-mode.el (c-ts-mode-set-style): Prepend the
language symbol in front of the styles.
2026-04-17 18:25:28 -07:00
Rahguzar
af95583f7d proced-format: Use internal var for speed-up (bug#77775).
* lisp/proced.el (proced-format-current-process): New variable.
* lisp/proced.el (proced-format-pid, proced-format): Use it.
2026-04-17 18:06:17 -05:00
Rahguzar
cffc12c8cd proced-format: Use process-alist for standard attributes (bug#77775).
* lisp/proced.el (proced-format): Use process-alist for standard
attributes.
2026-04-17 18:03:58 -05:00