From 933d35ef101557a8ac691b2f12d85f2b1f86dad7 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 1 Jun 2026 17:03:27 +0300 Subject: [PATCH 01/20] ; * lisp/net/browse-url.el (browse-url-firefox-program): Add :version. --- lisp/net/browse-url.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el index 63aad53abe4..e01c36f3243 100644 --- a/lisp/net/browse-url.el +++ b/lisp/net/browse-url.el @@ -317,7 +317,8 @@ Defaults to the value of `browse-url-mozilla-arguments' at the time "zen") "firefox") "The name by which to invoke Firefox or a variant of it." - :type 'string) + :type 'string + :version "31.1") (defcustom browse-url-firefox-arguments nil "A list of strings to pass to Firefox (or variant) as arguments." From 8855e88d74fb77fa00d2d406526902203f898b05 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Mon, 1 Jun 2026 17:57:45 +0300 Subject: [PATCH 02/20] ; Improve doc strings of brows-url commands * lisp/net/browse-url.el (browse-url-firefox, browse-url-chromium) (browse-url-chrome, browse-url-epiphany, browse-url-qutebrowser): Doc fixes. --- lisp/net/browse-url.el | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el index e01c36f3243..b75c4f119a0 100644 --- a/lisp/net/browse-url.el +++ b/lisp/net/browse-url.el @@ -1215,8 +1215,9 @@ used instead of `browse-url-new-window-flag'." ;;;###autoload (defun browse-url-firefox (url &optional new-window) "Ask the Firefox WWW browser to load URL. -Defaults to the URL around or before point. Passes the strings -in the variable `browse-url-firefox-arguments' to Firefox. +Defaults to the URL around or before point. Invokes the program +specified by `browse-url-firefox-program'. Passes the strings +in the variable `browse-url-firefox-arguments' to that program. Interactively, if the variable `browse-url-new-window-flag' is non-nil, loads the document in a new Firefox window. A non-nil prefix argument @@ -1247,9 +1248,9 @@ instead of `browse-url-new-window-flag'." ;;;###autoload (defun browse-url-chromium (url &optional _new-window) "Ask the Chromium WWW browser to load URL. -Default to the URL around or before point. The strings in -variable `browse-url-chromium-arguments' are also passed to -Chromium. +Default to the URL around or before point. Invokes the program +specified by `browse-url-chromium-program'. Passes the strings in +variable `browse-url-chromium-arguments' to that program. The optional argument NEW-WINDOW is not used." (interactive (browse-url-interactive-arg "URL: ")) (setq url (browse-url-encode-url url)) @@ -1265,9 +1266,9 @@ The optional argument NEW-WINDOW is not used." (defun browse-url-chrome (url &optional _new-window) "Ask the Google Chrome WWW browser to load URL. -Default to the URL around or before point. The strings in -variable `browse-url-chrome-arguments' are also passed to -Google Chrome. +Default to the URL around or before point. Invokes the program +specified by `browse-url-chrome-program'. Passes to that program +the strings in variable `browse-url-chrome-arguments'. The optional argument NEW-WINDOW is not used." (interactive (browse-url-interactive-arg "URL: ")) (setq url (browse-url-encode-url url)) @@ -1283,8 +1284,9 @@ The optional argument NEW-WINDOW is not used." (defun browse-url-epiphany (url &optional new-window) "Ask the GNOME Web (Epiphany) WWW browser to load URL. -Default to the URL around or before point. The strings in variable -`browse-url-epiphany-arguments' are also passed to GNOME Web. +Default to the URL around or before point. Invokes the program +specified by `browse-url-epiphany-program'. Passes the strings +in variable `browse-url-epiphany-arguments' to that program. When called interactively, if variable `browse-url-new-window-flag' is non-nil, load the document in a new GNOME Web window, otherwise use a @@ -1354,7 +1356,9 @@ used instead of `browse-url-new-window-flag'." (defun browse-url-qutebrowser (url &optional new-window) "Ask the Qutebrowser WWW browser to load URL. -Default to the URL around or before point. +Default to the URL around or before point. Invokes the program +specified by `browse-url-qutebrowser-program'. Passes the strings +in the variable `browse-url-qutebrowser-arguments' to that program. When called interactively, if variable `browse-url-new-window-flag' is non-nil, load the document in a new Qutebrowser window, otherwise use a From 3229d6f0e32b495c8587cea9ba645110dd4277fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20T=C3=A1vora?= Date: Mon, 1 Jun 2026 19:40:23 +0100 Subject: [PATCH 03/20] Eglot: Simplify markdown rendering support (bug#81150) Now that markdown-ts-view-mode is demoted to "experimental" in emacs-31, simplify bits of eglot.el and rewrite docs to be more neutral. In practice 'gfm-view-mode' is still used if found, just like before, but intrepid users can still try the "experimental" modes. * lisp/progmodes/eglot.el (eglot-documentation-renderer): Rewrite doc string. (eglot--accepted-formats): Rewrite. (eglot--builtin-mdown-p): Remove. * doc/misc/eglot.texi (Customization Variables): Rewrite entry. * etc/EGLOT-NEWS: Tweak. --- doc/misc/eglot.texi | 15 ++++++++------- etc/EGLOT-NEWS | 9 ++++++--- lisp/progmodes/eglot.el | 28 ++++++++++------------------ 3 files changed, 24 insertions(+), 28 deletions(-) diff --git a/doc/misc/eglot.texi b/doc/misc/eglot.texi index 97a934fa953..1c9acdc6f9b 100644 --- a/doc/misc/eglot.texi +++ b/doc/misc/eglot.texi @@ -999,13 +999,14 @@ will consider it to be part of the workspace. The default is @cindex markdown renderer @item eglot-documentation-renderer This variable controls how Eglot renders at-point documentation imported -from the server (@pxref{Eglot Features}). By default, the variable's -value is set during startup to the @code{gfm-view-mode} markdown -renderer if available. This utility visually enhances the documentation -content through fontification and other formatting. If you set it to -@code{t}, plain text will be requested from the server and no rendering -is attempted. If the variable's value is @code{nil}, Eglot will attempt -to find a suitable renderer every time. +from the server (@pxref{Eglot Features}). The default value is +@code{nil}, meaning Eglot selects a suitable Markdown renderer on each +use---for example, @code{gfm-view-mode} from @code{markdown-mode} on +NonGNU ELPA, which enhances documentation through fontification and +other formatting. You can also set it to always use a specific major mode symbol, such +as the aforementioned @code{gfm-view-mode}, or the experimental +@code{markdown-ts-view-mode}. If you set it to @code{t}, plain text is +requested from the server and no rendering is attempted. @item eglot-mode-map This variable is the keymap for binding Eglot-related command. It is in diff --git a/etc/EGLOT-NEWS b/etc/EGLOT-NEWS index 7510f13521e..5b487fd1621 100644 --- a/etc/EGLOT-NEWS +++ b/etc/EGLOT-NEWS @@ -32,11 +32,14 @@ New key bindings: 'k' shuts down, 'r' reconnects, 'e' visits the events buffer, 'w' shows workspace configuration, and 'RET' invokes 'eglot-describe-connection'. -** 'eglot-documentation-renderer' replaces 'eglot-prefer-plaintext'. +** New variable 'eglot-documentation-renderer' (bug#80127) The variable 'eglot-documentation-renderer' replaces the now-obsolete -'eglot-prefer-plaintext'. By default, the variable selects a markdown -renderer to use throughout the session. +'eglot-prefer-plaintext' and offers more control over what major mode is +used to render markdown snippets. By default, the variable is nil and +'gfm-view-mode' from NonGNU ELPA's markdown-mode package is used if +found. You may also set it to the experimental 'markdown-ts-view-mode' +in Emacs versions with tree-sitter markdown support. * Changes in Eglot 1.23 (2/4/2026) diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el index a8b107b1a89..8d5d7cafc3c 100644 --- a/lisp/progmodes/eglot.el +++ b/lisp/progmodes/eglot.el @@ -537,15 +537,12 @@ or file operation kinds not in the alist." "If non-nil, activate Eglot in cross-referenced non-project files." :type 'boolean) -(defcustom eglot-documentation-renderer (cond ((fboundp 'gfm-view-mode) - 'gfm-view-mode) - (t - nil)) - "Control rendering of LSP documentation fragments. -If set to the major mode symbol `gfm-view-mode', request -markdown-snippets and use `gfm-view-mode' to render it. -If t, always request and render plain text snippets. If set to nil, -decide dynamically." +(defcustom eglot-documentation-renderer nil + "Controls rendering of LSP documentation fragments. +If set to a major mode symbol like `gfm-view-mode', or the experimental +`markdown-ts-view-mode', request markdown snippets and use that mode to +render them. If t, request and render plain text instead. If nil, +request markdown snippets and select a renderer dynamically." :type '(choice (const :tag "Plain text" t) (const :tag "Auto-detect" nil) (function :tag "Renderer")) @@ -738,16 +735,11 @@ This can be useful when using docker to run a language server.") (declare-function treesit-grammar-location "treesit.c") -(defun eglot--builtin-mdown-p () - (and (fboundp 'markdown-ts-view-mode) - (fboundp 'treesit-grammar-location) - (treesit-grammar-location 'markdown))) - (defun eglot--accepted-formats () - (if (and (not (eq t eglot-documentation-renderer)) - (or (fboundp 'gfm-view-mode) (eglot--builtin-mdown-p))) - ["markdown" "plaintext"] - ["plaintext"])) + (if (or (eq t eglot-documentation-renderer) + (not (or eglot-documentation-renderer (fboundp 'gfm-view-mode)))) + ["plaintext"] + ["markdown" "plaintext"])) (defconst eglot--uri-path-allowed-chars (let ((vec (copy-sequence url-path-allowed-chars))) From 05f89d711d5c0fa6cc7852e23c9aded885e4a832 Mon Sep 17 00:00:00 2001 From: "F. Jason Park" Date: Sun, 31 May 2026 19:44:26 -0700 Subject: [PATCH 04/20] Fix more missing faces on ERC margin strings * lisp/erc/erc-goodies.el (keep-place-indicator): Add `erc-keep-place-indicator-arrow' face to overlay arrow. * lisp/erc/erc-stamp.el (erc-stamp--display-prompt-in-left-margin) (erc--conceal-prompt): Add `erc-prompt-face' to entire `left-margin' string. See also 9ba65aa9 "Fix missing margin face on display prop in erc-stamp". * test/lisp/erc/erc-fill-tests.el (erc-fill--left-hand-stamps): Update expected text properties on prompt. (Bug#80693) --- lisp/erc/erc-goodies.el | 22 ++++++++++++---------- lisp/erc/erc-stamp.el | 21 +++++++++++++-------- test/lisp/erc/erc-fill-tests.el | 30 ++++++++++++++++-------------- 3 files changed, 41 insertions(+), 32 deletions(-) diff --git a/lisp/erc/erc-goodies.el b/lisp/erc/erc-goodies.el index f1f92923ea2..e99d5f68175 100644 --- a/lisp/erc/erc-goodies.el +++ b/lisp/erc/erc-goodies.el @@ -399,16 +399,18 @@ This module is local to individual buffers." (progn (erc--restore-initialize-priors erc-keep-place-indicator-mode erc--keep-place-indicator-overlay (make-overlay 0 0)) - (when-let* (((memq erc-keep-place-indicator-style '(t arrow))) - (ov-property (if (zerop (fringe-columns 'left)) - 'after-string - 'before-string)) - (display (if (zerop (fringe-columns 'left)) - `((margin left-margin) ,overlay-arrow-string) - '(left-fringe right-triangle - erc-keep-place-indicator-arrow))) - (bef (propertize " " 'display display))) - (overlay-put erc--keep-place-indicator-overlay ov-property bef)) + (when (memq erc-keep-place-indicator-style '(t arrow)) + (overlay-put + erc--keep-place-indicator-overlay + (if (zerop (fringe-columns 'left)) 'after-string 'before-string) + (propertize " " 'display + (if (zerop (fringe-columns 'left)) + `((margin left-margin) + ,(propertize overlay-arrow-string + 'font-lock-face + 'erc-keep-place-indicator-arrow)) + '(left-fringe right-triangle + erc-keep-place-indicator-arrow))))) (when (memq erc-keep-place-indicator-style '(t face)) (overlay-put erc--keep-place-indicator-overlay 'face 'erc-keep-place-indicator-line))) diff --git a/lisp/erc/erc-stamp.el b/lisp/erc/erc-stamp.el index bf1018f58b6..fa4b829b4cf 100644 --- a/lisp/erc/erc-stamp.el +++ b/lisp/erc/erc-stamp.el @@ -478,7 +478,7 @@ and `erc-stamp--margin-left-p', before activating the mode." (defun erc-stamp--display-prompt-in-left-margin () "Show prompt in the left margin with padding." - (when (or (not erc-stamp--last-prompt) (functionp erc-prompt) + (when (or (null erc-stamp--last-prompt) (functionp erc-prompt) (> (string-width erc-stamp--last-prompt) left-margin-width)) (let ((s (buffer-substring erc-insert-marker (1- erc-input-marker)))) ;; Prevent #("abc" n m (display ((...) #("abc" p q (display...)))) @@ -489,7 +489,9 @@ and `erc-stamp--margin-left-p', before activating the mode." ;; This papers over a subtle off-by-1 bug here. (unless (equal sm s) (setq s (concat sm (substring s -1)))))) - (setq erc-stamp--last-prompt (string-pad s left-margin-width nil t)))) + (setq erc-stamp--last-prompt + (propertize (string-pad s left-margin-width nil t) + 'font-lock-face 'erc-prompt-face)))) (put-text-property erc-insert-marker (1- erc-input-marker) 'display `((margin left-margin) ,erc-stamp--last-prompt)) erc-stamp--last-prompt) @@ -505,12 +507,15 @@ and `erc-stamp--margin-left-p', before activating the mode." (&context (erc-stamp--display-margin-mode (eql t)) (erc-stamp--margin-left-p (eql t)) (erc-stamp--skip-left-margin-prompt-p null)) - (when-let* (((null erc--hidden-prompt-overlay)) - (prompt (string-pad erc-prompt-hidden left-margin-width nil 'start)) - (ov (make-overlay erc-insert-marker (1- erc-input-marker) - nil 'front-advance))) - (overlay-put ov 'display `((margin left-margin) ,prompt)) - (setq erc--hidden-prompt-overlay ov))) + (unless erc--hidden-prompt-overlay + (let ((ov (make-overlay erc-insert-marker (1- erc-input-marker) + nil 'front-advance))) + (overlay-put ov 'display + `((margin left-margin) + ,(propertize (string-pad erc-prompt-hidden + left-margin-width nil 'start) + 'font-lock-face 'erc-prompt-face))) + (setq erc--hidden-prompt-overlay ov)))) (defun erc-insert-timestamp-left (string) "Insert timestamps at the beginning of the line." diff --git a/test/lisp/erc/erc-fill-tests.el b/test/lisp/erc/erc-fill-tests.el index b06d600db66..780bec550f8 100644 --- a/test/lisp/erc/erc-fill-tests.el +++ b/test/lisp/erc/erc-fill-tests.el @@ -421,13 +421,14 @@ (pcase-let ((`((margin left-margin) ,displayed) (get-text-property erc-insert-marker 'display))) (should (equal-including-properties - displayed #(" ERC>" 4 8 - ( read-only t - front-sticky t - field erc-prompt - erc-prompt t - rear-nonsticky t - font-lock-face erc-prompt-face))))) + displayed #(" ERC>" + 0 4 (font-lock-face erc-prompt-face) + 4 8 ( read-only t + front-sticky t + field erc-prompt + erc-prompt t + rear-nonsticky t + font-lock-face erc-prompt-face))))) (erc-fill-tests--compare "stamps-left-01") (ert-info ("Shrink left margin by 1 col") @@ -437,13 +438,14 @@ (pcase-let ((`((margin left-margin) ,displayed) (get-text-property erc-insert-marker 'display))) (should (equal-including-properties - displayed #(" ERC>" 3 7 - ( read-only t - front-sticky t - field erc-prompt - erc-prompt t - rear-nonsticky t - font-lock-face erc-prompt-face)))))))))) + displayed #(" ERC>" + 0 3 (font-lock-face erc-prompt-face) + 3 7 ( read-only t + front-sticky t + field erc-prompt + erc-prompt t + rear-nonsticky t + font-lock-face erc-prompt-face)))))))))) (ert-deftest erc-fill--wrap-massage-legacy-indicator-type () (let (calls From 2d915236dcb2147e95d068eba702f4d07efe9caf Mon Sep 17 00:00:00 2001 From: Alexander Adolf Date: Thu, 28 May 2026 15:04:46 +0200 Subject: [PATCH 05/20] vc--subject-to-file-name: Fix over-greedy regex (bug#81017) * lisp/vc/vc.el (vc--subject-to-file-name): Make the prefix regex less greedy, ensure the result has no text properties, improve the docstring (bug#81017). --- lisp/vc/vc.el | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el index 8f0e9e5bdc4..256a04812f6 100644 --- a/lisp/vc/vc.el +++ b/lisp/vc/vc.el @@ -5393,15 +5393,19 @@ of the current file." (vc-working-revision file))))) (defun vc--subject-to-file-name (subject) - "Generate a file name for a patch with subject line SUBJECT." + "Generate a file name for a patch with subject line SUBJECT. + +The resulting filename is similar to the names generated by \"git +format-patch\", but without the leading patch sequence number \"0001-\". +Any leading \"[PATCH 1/1]\" style strings, and any text properties are +removed from SUBJECT prior to conversion." (let* ((stripped - (replace-regexp-in-string "\\`\\[.*PATCH.*\\]\\s-*" "" + (replace-regexp-in-string "\\`\\[[^][]*PATCH[^][]*]\\s-*" "" subject)) - (truncated (if (length> stripped 50) - (substring stripped 0 50) - stripped))) + (truncated (substring-no-properties stripped + 0 (min (length stripped) 50)))) (concat - (string-trim (replace-regexp-in-string "\\W" "-" truncated) + (string-trim (replace-regexp-in-string "\\W+" "-" truncated) "-+" "-+") ".patch"))) From 776ee085ff41f8be6b0b0cba4d98428749c02768 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20T=C3=A1vora?= Date: Tue, 2 Jun 2026 23:40:56 +0100 Subject: [PATCH 06/20] Eglot: mentions markdown-ts-view-mode less (bug#81150) * doc/misc/eglot.texi (Customization Variables): Don't mention markdown-ts-view-mode. * etc/EGLOT-NEWS: Don't mention markdown-ts-view-mode. --- doc/misc/eglot.texi | 7 +++---- etc/EGLOT-NEWS | 3 +-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/doc/misc/eglot.texi b/doc/misc/eglot.texi index 1c9acdc6f9b..caa009f1ec5 100644 --- a/doc/misc/eglot.texi +++ b/doc/misc/eglot.texi @@ -1003,10 +1003,9 @@ from the server (@pxref{Eglot Features}). The default value is @code{nil}, meaning Eglot selects a suitable Markdown renderer on each use---for example, @code{gfm-view-mode} from @code{markdown-mode} on NonGNU ELPA, which enhances documentation through fontification and -other formatting. You can also set it to always use a specific major mode symbol, such -as the aforementioned @code{gfm-view-mode}, or the experimental -@code{markdown-ts-view-mode}. If you set it to @code{t}, plain text is -requested from the server and no rendering is attempted. +other formatting. If you set it to @code{t}, plain text is requested +from the server and no rendering is attempted. See docstring for more +options. @item eglot-mode-map This variable is the keymap for binding Eglot-related command. It is in diff --git a/etc/EGLOT-NEWS b/etc/EGLOT-NEWS index 5b487fd1621..cdbd3048f27 100644 --- a/etc/EGLOT-NEWS +++ b/etc/EGLOT-NEWS @@ -38,8 +38,7 @@ The variable 'eglot-documentation-renderer' replaces the now-obsolete 'eglot-prefer-plaintext' and offers more control over what major mode is used to render markdown snippets. By default, the variable is nil and 'gfm-view-mode' from NonGNU ELPA's markdown-mode package is used if -found. You may also set it to the experimental 'markdown-ts-view-mode' -in Emacs versions with tree-sitter markdown support. +found. See docstring for more details. * Changes in Eglot 1.23 (2/4/2026) From 07e02917eec4abb84ee8868636e30232c9b44466 Mon Sep 17 00:00:00 2001 From: Dmitry Gutov Date: Wed, 3 Jun 2026 15:55:03 +0300 Subject: [PATCH 07/20] [GTK3] Re-fix the stored values for width and height * src/gtkutil.c (xg_frame_set_char_size) (xg_frame_set_size_and_position): Round WIDTH and HEIGHT to multiples of SCALE without adding toolbar/menubar (bug#80662). --- src/gtkutil.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gtkutil.c b/src/gtkutil.c index 4fc6b3e0108..8ec3d9ce9bf 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c @@ -1203,8 +1203,8 @@ xg_frame_set_char_size (struct frame *f, int width, int height) outer_height /= scale; outer_width /= scale; - height = outer_height * scale; - width = outer_width * scale; + height = height / scale * scale; + width = width / scale * scale; xg_wm_set_size_hint (f, 0, 0); @@ -1331,8 +1331,8 @@ xg_frame_set_size_and_position (struct frame *f, int width, int height) outer_height /= scale; outer_width /= scale; - height = outer_height * scale; - width = outer_width * scale; + height = height / scale * scale; + width = width / scale * scale; x /= scale; y /= scale; From 0989625d369379599e0b88362704c02fb63422c9 Mon Sep 17 00:00:00 2001 From: Rahul Martim Juliato Date: Mon, 25 May 2026 15:17:25 -0300 Subject: [PATCH 08/20] markdown-ts-mode: fix first-item indent (bug#81118) * lisp/textmodes/markdown-ts-mode.el (markdown-ts--fontify-unordered-list-marker): Skip leading whitespace in the node range before applying the display bullet, since the tree-sitter grammar bundles indent into the first list_marker_* node. --- lisp/textmodes/markdown-ts-mode.el | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lisp/textmodes/markdown-ts-mode.el b/lisp/textmodes/markdown-ts-mode.el index e6b01c77b57..b2124b20775 100644 --- a/lisp/textmodes/markdown-ts-mode.el +++ b/lisp/textmodes/markdown-ts-mode.el @@ -1406,8 +1406,16 @@ If NODE is not in a list, return -1." "Fontify unordered list marker NODE, show a symbol when markup is hidden. OVERRIDE, START, and END are passed through to `treesit-fontify-with-override'." - (let* ((node-start (treesit-node-start node)) + ;; The tree-sitter markdown grammar includes the leading indentation + ;; in the first list_marker_minus/plus/star node of a list, so skip + ;; over any leading whitespace to avoid overwriting the indent with + ;; the replacement glyph. + (let* ((raw-start (treesit-node-start node)) (node-end (treesit-node-end node)) + (node-start (save-excursion + (goto-char raw-start) + (skip-chars-forward " \t" node-end) + (point))) (face 'markdown-ts-list-marker)) (treesit-fontify-with-override node-start node-end face override start end) From 108710992d07bc17d7fa2751ad3ef3efaeb856b9 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Thu, 4 Jun 2026 09:25:21 +0300 Subject: [PATCH 09/20] ; * doc/misc/ert.texi (erts files): Improve example (bug#81154). --- doc/misc/ert.texi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/misc/ert.texi b/doc/misc/ert.texi index 458cccf3063..b08c62c06b6 100644 --- a/doc/misc/ert.texi +++ b/doc/misc/ert.texi @@ -933,8 +933,8 @@ that start with a space are part of the value). @example Name: foo -Code: (indent-region - (point-min) (point-max)) +Code: (lambda () + (indent-region (point-min) (point-max))) @end example @table @samp From fe1c02d8498e443e5816bdd76402bd16df8ab1f7 Mon Sep 17 00:00:00 2001 From: Michael Albinus Date: Thu, 4 Jun 2026 08:34:48 +0200 Subject: [PATCH 10/20] Fix Tramp distrobox integration * lisp/net/tramp.el (tramp-yesno-prompt-regexp): Fix docstring. (tramp-yn-prompt-regexp): Fix docstring. Extend. Add :version. * test/lisp/net/tramp-tests.el (tramp-test03-file-error): Adapt test. --- lisp/net/tramp.el | 10 +++++++--- test/lisp/net/tramp-tests.el | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index fc897fb2a7c..bbe44880fd1 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -801,19 +801,23 @@ The regexp should match at end of buffer." (? "/[fingerprint]") ")?" (* blank)) "Regular expression matching all yes/no queries which need to be confirmed. -The confirmation should be done with yes or no. +The confirmation should be done with \"yes\" or \"no\". The regexp should match at end of buffer. See also `tramp-yn-prompt-regexp'." :type 'regexp) (defcustom tramp-yn-prompt-regexp (rx (| (: "Store key in cache? (y/n" (* nonl) ")") - "Update cached key? (y/n, Return cancels connection)") + "Update cached key? (y/n, Return cancels connection)" + ;; distrobox. + (: "Error: no such container \"" (+ nonl) "\"\n" + "Create it now, out of image " (+ nonl) "? [Y/n]:")) (* blank)) "Regular expression matching all y/n queries which need to be confirmed. -The confirmation should be done with y or n. +The confirmation should be done with \"y\" or \"n\". The regexp should match at end of buffer. See also `tramp-yesno-prompt-regexp'." + :version "31.1" :type 'regexp) ;;;###tramp-autoload diff --git a/test/lisp/net/tramp-tests.el b/test/lisp/net/tramp-tests.el index 4d11faf64de..3577388aa62 100644 --- a/test/lisp/net/tramp-tests.el +++ b/test/lisp/net/tramp-tests.el @@ -2299,6 +2299,7 @@ being the result.") (tramp-default-proxies-alist tramp-default-proxies-alist) (tramp-show-ad-hoc-proxies t)) (cl-letf* (((symbol-function #'read-string) #'ignore) ; Suppress password. + ((symbol-function #'y-or-n-p) #'ignore) ; distrobox. ((tramp-file-name-host vec) "example.com.invalid")) (should-error (file-exists-p (tramp-make-tramp-file-name vec)) From 3d9d9be3a1d0a9d4ea6f4fad86cfe4ebc8da329b Mon Sep 17 00:00:00 2001 From: Alan Mackenzie Date: Thu, 21 May 2026 14:58:23 +0000 Subject: [PATCH 11/20] CC Mode: Fontify a cast type preceding a brace initialization This fixes bug#81084. * lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): In the test for a cast near the end of the function, add a test for a {...} block which isn't a statement block, allowing such blocks to be recognized as operands of casts. --- lisp/progmodes/cc-engine.el | 59 +++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 28 deletions(-) diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el index bc7d8372f11..5f150778129 100644 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el @@ -11687,34 +11687,37 @@ This function might do hidden buffer changes." (forward-char) (c-forward-syntactic-ws) (setq cast-end (point)) - (and (looking-at c-primary-expr-regexp) - (progn - (setq pos (match-end 0)) - (or - ;; Check if the expression begins with a prefix keyword. - (match-beginning 2) - (if (match-beginning 1) - ;; Expression begins with an ambiguous operator. - (cond - ((match-beginning c-per-&*+--match) - (memq at-type '(t known found))) - ((match-beginning c-per-++---match) - t) - ((match-beginning c-per-\(-match) - (or - (memq at-type '(t known found)) - (not inside-macro))) - (t nil)) - ;; Unless it's a keyword, it's the beginning of a primary - ;; expression. - (not (looking-at c-keywords-regexp))))) - ;; If `c-primary-expr-regexp' matched a nonsymbol token, check - ;; that it matched a whole one so that we don't e.g. confuse - ;; the operator '-' with '->'. It's ok if it matches further, - ;; though, since it e.g. can match the float '.5' while the - ;; operator regexp only matches '.'. - (or (not (looking-at c-nonsymbol-token-regexp)) - (<= (match-end 0) pos)))) + (or + (and (looking-at c-primary-expr-regexp) + (progn + (setq pos (match-end 0)) + (or + ;; Check if the expression begins with a prefix keyword. + (match-beginning 2) + (if (match-beginning 1) + ;; Expression begins with an ambiguous operator. + (cond + ((match-beginning c-per-&*+--match) + (memq at-type '(t known found))) + ((match-beginning c-per-++---match) + t) + ((match-beginning c-per-\(-match) + (or + (memq at-type '(t known found)) + (not inside-macro))) + (t nil)) + ;; Unless it's a keyword, it's the beginning of a primary + ;; expression. + (not (looking-at c-keywords-regexp))))) + ;; If `c-primary-expr-regexp' matched a nonsymbol token, + ;; check that it matched a whole one so that we don't + ;; e.g. confuse the operator '-' with '->'. It's ok if it + ;; matches further, though, since it e.g. can match the float + ;; '.5' while the operator regexp only matches '.'. + (or (not (looking-at c-nonsymbol-token-regexp)) + (<= (match-end 0) pos))) + (and (eq (char-after) ?\{) + (not (eq (c-looking-at-statement-block-1) t))))) ;; There should either be a cast before it or something that isn't an ;; identifier or close paren. From 6b3991940885e2c13ff23ff72830e18b425ee74d Mon Sep 17 00:00:00 2001 From: Karl Stump <36189+kes@users.noreply.github.com> Date: Wed, 3 Jun 2026 12:25:04 -0400 Subject: [PATCH 12/20] ; Fix typo in prog-indentation-context documentation (bug#81180) Copyright-paperwork-exempt: yes --- doc/lispref/text.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi index 5ef6cbebfb9..ac010fe332b 100644 --- a/doc/lispref/text.texi +++ b/doc/lispref/text.texi @@ -2625,7 +2625,7 @@ avoid calling @code{widen} in their indentation code and obey @defvar prog-indentation-context This variable, when non-@code{nil}, holds the indentation context for the sub-mode's indentation engine provided by the superior major mode. -The value should be a list of the form @code{(@var{first-column} . @var{rest}}. +The value should be a list of the form @code{(@var{first-column} . @var{rest})}. The members of the list have the following meaning: @table @var From 438af2764d2c2032d27e56f84ed68de960c173c0 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Thu, 4 Jun 2026 09:42:56 +0300 Subject: [PATCH 13/20] ; * doc/lispref/text.texi (Mode-Specific Indent): Fix markup. --- doc/lispref/text.texi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi index ac010fe332b..6fcc1b0a078 100644 --- a/doc/lispref/text.texi +++ b/doc/lispref/text.texi @@ -2625,7 +2625,8 @@ avoid calling @code{widen} in their indentation code and obey @defvar prog-indentation-context This variable, when non-@code{nil}, holds the indentation context for the sub-mode's indentation engine provided by the superior major mode. -The value should be a list of the form @code{(@var{first-column} . @var{rest})}. +The value should be a list of the form @w{@code{(@var{first-column} +. @var{rest})}}. The members of the list have the following meaning: @table @var From 7226082f46fc2b68aaca7b4308e72d483bae8f67 Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Thu, 4 Jun 2026 10:49:23 +0100 Subject: [PATCH 14/20] vc-dir-refresh: Respect non-essential wrt saving buffers * lisp/vc/vc-dir.el (vc-dir-refresh): If non-essential is non-nil, don't call vc-buffer-sync-fileset. --- lisp/vc/vc-dir.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/vc/vc-dir.el b/lisp/vc/vc-dir.el index 2cb56aac715..27513f463bd 100644 --- a/lisp/vc/vc-dir.el +++ b/lisp/vc/vc-dir.el @@ -1522,7 +1522,7 @@ Throw an error if another update process is in progress." (error "Another update process is in progress, cannot run two at a time") (let ((def-dir default-directory) (backend vc-dir-backend)) - (when vc-dir-save-some-buffers-on-revert + (when (and vc-dir-save-some-buffers-on-revert (not non-essential)) (vc-buffer-sync-fileset `(,vc-dir-backend (,def-dir)) t)) (vc-set-mode-line-busy-indicator) ;; Call the `dir-status' backend function. From f3b17c49695802ab21f2998e68c81320300ca99c Mon Sep 17 00:00:00 2001 From: JD Smith Date: Tue, 2 Jun 2026 16:38:58 -0400 Subject: [PATCH 15/20] Allow brew/macports libgccjit for default native compilation * configure.ac: Move flag setup for libgccjit installed by Homebrew or macports earlier, so default native compilation can proceed (bug#81171). --- configure.ac | 54 ++++++++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 25 deletions(-) diff --git a/configure.ac b/configure.ac index 8bc5f6daa11..7c592e6b89f 100644 --- a/configure.ac +++ b/configure.ac @@ -5227,25 +5227,7 @@ if test "$with_features" = "no" \ with_native_compilation=no fi -if test "${with_native_compilation}" = "default"; then - # Check if libgccjit is available. - AC_CHECK_LIB([gccjit], [gcc_jit_context_acquire], - [], [libgccjit_not_found]) - AC_CHECK_HEADERS([libgccjit.h], [], [libgccjit_dev_not_found]) - if test "${with_native_compilation}" != "no"; then - # Check if libgccjit really works. - AC_RUN_IFELSE([libgccjit_smoke_test], [], [libgccjit_broken]) - fi -fi - if test "${with_native_compilation}" != "no"; then - if test "${HAVE_ZLIB}" = no; then - AC_MSG_ERROR(['--with-native-compilation' requires zlib]) - fi - - SAVE_CFLAGS=$CFLAGS - SAVE_LIBS=$LIBS - if test "${opsys}" = "darwin"; then # Ensure libgccjit installed by Homebrew or macports can be found. if test -n "$BREW"; then @@ -5282,15 +5264,37 @@ if test "${with_native_compilation}" != "no"; then fi fi - # In the default case we already checked - if test "${with_native_compilation}" != "default"; then - # Check if libgccjit is available. - AC_CHECK_LIB([gccjit], [gcc_jit_context_acquire], - [], [libgccjit_not_found_err]) - AC_CHECK_HEADERS([libgccjit.h], [], [libgccjit_dev_not_found_err]) + # Check if libgccjit is available. + AC_CHECK_LIB([gccjit], [gcc_jit_context_acquire], [], + [if test "${with_native_compilation}" = "default"; then + libgccjit_not_found + else + libgccjit_not_found_err + fi]) + AC_CHECK_HEADERS([libgccjit.h], [], + [if test "${with_native_compilation}" = "default"; then + libgccjit_dev_not_found + else + libgccjit_dev_not_found_err + fi]) + if test "${with_native_compilation}" != "no"; then # Check if libgccjit really works. - AC_RUN_IFELSE([libgccjit_smoke_test], [], [libgccjit_broken_err]) + AC_RUN_IFELSE([libgccjit_smoke_test], [], + [if test "${with_native_compilation}" = "default"; then + libgccjit_broken + else + libgccjit_broken_err + fi]) fi +fi + +if test "${with_native_compilation}" != "no"; then + if test "${HAVE_ZLIB}" = no; then + AC_MSG_ERROR(['--with-native-compilation' requires zlib]) + fi + + SAVE_CFLAGS=$CFLAGS + SAVE_LIBS=$LIBS HAVE_NATIVE_COMP=yes case "${opsys}" in # mingw32 loads the library dynamically. From 6df1d33b6ce145d4fb84ff4b8b11812ca2372b4b Mon Sep 17 00:00:00 2001 From: "Dirk-Jan C. Binnema" Date: Sun, 26 Apr 2026 15:46:19 +0300 Subject: [PATCH 16/20] Fmake_xwidget: Use about:blank workaround only when needed * src/process.c (glib_installs_sigchld_handler): New variable. (init_process_emacs): Set it when GLib overrides Emacs's SIGCHLD handler. * src/process.h (glib_installs_sigchld_handler): Declare. * src/xwidget.c (Fmake_xwidget): Skip the "about:blank" workaround when glib_installs_sigchld_handler is false. --- src/process.c | 7 +++++++ src/process.h | 2 ++ src/xwidget.c | 25 +++++++++++++++++++------ 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/src/process.c b/src/process.c index d46be48821f..3a14f60b3c2 100644 --- a/src/process.c +++ b/src/process.c @@ -7656,6 +7656,12 @@ child_signal_notify (void) static void dummy_handler (int sig) {} static signal_handler_t volatile lib_child_handler; +/* True if Glib installs its own SIGCHLD handler that Emacs must work + around. Determined once in init_process_emacs; consulted elsewhere + (e.g. xwidget.c) to decide whether the about:blank load workaround + is needed. */ +bool glib_installs_sigchld_handler; + /* Handle a SIGCHLD signal by looking for known child processes of Emacs whose status have changed. For each one found, record its new status. @@ -8718,6 +8724,7 @@ init_process_emacs (int sockfd) if (lib_child_handler != dummy_handler) { /* The hacky workaround is needed on this platform. */ + glib_installs_sigchld_handler = true; signal_handler_t lib_child_handler_glib = lib_child_handler; catch_child_signal (); eassert (lib_child_handler == dummy_handler); diff --git a/src/process.h b/src/process.h index 1c9b04aa06e..c43f2fe1ea9 100644 --- a/src/process.h +++ b/src/process.h @@ -263,6 +263,8 @@ pset_gnutls_cred_type (struct Lisp_Process *p, Lisp_Object val) /* True means don't run process sentinels. This is used when exiting. */ extern bool inhibit_sentinels; +/* True means that Glib clobbers Emacs SIGCHLD handler. */ +extern bool glib_installs_sigchld_handler; /* Exit statuses for GNU programs that exec other programs. */ enum diff --git a/src/xwidget.c b/src/xwidget.c index 0b890375c30..e2ab7499927 100644 --- a/src/xwidget.c +++ b/src/xwidget.c @@ -361,13 +361,26 @@ fails. */) g_signal_connect (G_OBJECT (ctx), "download-started", G_CALLBACK (webkit_download_cb), xw); + /* In process.c:init_process_emacs(), we determine whether GLib + overrides Emacs' SIGCHLD handler (based on Glib version + and kernel; see process.c for details). - webkit_web_view_load_uri (WEBKIT_WEB_VIEW (xw->widget_osr), - "about:blank"); - /* webkitgtk uses GSubprocess which sets sigaction causing - Emacs to not catch SIGCHLD with its usual handle setup in - 'catch_child_signal'. This resets the SIGCHLD sigaction. */ - catch_child_signal (); + webkit_web_view_load_uri() is potentially affected by this + (through GSubProcess), so as a workaround we load a minimal + about:blank url and restore the SIGCHLD handler afterward. + + With PGTK, this workaround has the unfortunate side-effect of + making the first load of an URI not work immediately (it needs + a refresh), so avoid the workaround when we can. + + See thread + . */ + if (glib_installs_sigchld_handler) + { + webkit_web_view_load_uri (WEBKIT_WEB_VIEW (xw->widget_osr), + "about:blank"); + catch_child_signal (); + } } else { From 621239ae6af60eeab19ed272630192ee66bdaaac Mon Sep 17 00:00:00 2001 From: Michael Albinus Date: Thu, 4 Jun 2026 19:44:07 +0200 Subject: [PATCH 17/20] Fix prompt in remote shell * lisp/net/tramp-sh.el (tramp-sh-handle-make-process): Do not use a hard-coded directory in PS1. (Bug#81177) --- lisp/net/tramp-sh.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index 8d4dc557676..f939635cfb5 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el @@ -3081,7 +3081,7 @@ will be used." ;; We discard hops, if existing, that's why we cannot use ;; `file-remote-p'. (prompt (format "PS1=%s %s" - (tramp-make-tramp-file-name v) + (tramp-make-tramp-file-name v 'noloc) tramp-initial-end-of-output)) ;; We use as environment the difference to toplevel ;; `process-environment'. From bbe805e4b14595f5364875bcceda6a7ce56250d4 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Thu, 4 Jun 2026 14:20:06 -0400 Subject: [PATCH 18/20] message.el: Fix part of bug#81035 * lisp/gnus/message.el (message-narrow-to-field) (message-hide-headers): Syntax-propertize before narrowing. --- lisp/gnus/message.el | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index 671c3fdc1bc..61bf3659150 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el @@ -2217,6 +2217,8 @@ see `message-narrow-to-headers-or-head'." (beginning-of-line) (while (looking-at "[ \t]") (forward-line -1)) + ;; `syntax-propertize' can't widen so make sure it won't need to (bug#81035). + (syntax-propertize (point)) (narrow-to-region (point) (progn @@ -8658,6 +8660,9 @@ From headers in the original article." (save-excursion (goto-char end-of-headers) (insert-before-markers header)))))))) + ;; `syntax-propertize' can't widen so make sure it won't need to + ;; (bug#81035). + (syntax-propertize end-of-headers) (narrow-to-region end-of-headers (point-max))))) (defun message-hide-header-p (regexps) From 5e3e1a5bb23b5e7813a60c2b121b1393ff6ca86f Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Fri, 5 Jun 2026 10:17:27 +0100 Subject: [PATCH 19/20] ; Tweak some package short descriptions. --- lisp/emacs-lisp/elisp-scope.el | 2 +- lisp/emacs-lisp/timeout.el | 2 +- lisp/progmodes/lua-mode.el | 2 +- lisp/ring-bell-fns.el | 2 +- lisp/tty-tip.el | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lisp/emacs-lisp/elisp-scope.el b/lisp/emacs-lisp/elisp-scope.el index e0198b53b63..f95ea41e496 100644 --- a/lisp/emacs-lisp/elisp-scope.el +++ b/lisp/emacs-lisp/elisp-scope.el @@ -1,4 +1,4 @@ -;;; elisp-scope.el --- Semantic analysis for Elisp symbols -*- lexical-binding: t; -*- +;;; elisp-scope.el --- Semantic analysis for Emacs Lisp symbols -*- lexical-binding: t; -*- ;; Copyright (C) 2025-2026 Free Software Foundation, Inc. diff --git a/lisp/emacs-lisp/timeout.el b/lisp/emacs-lisp/timeout.el index 5accb5b7e24..f0aa0481401 100644 --- a/lisp/emacs-lisp/timeout.el +++ b/lisp/emacs-lisp/timeout.el @@ -1,4 +1,4 @@ -;;; timeout.el --- Throttle or debounce Elisp functions -*- lexical-binding: t; -*- +;;; timeout.el --- Throttle or debounce Emacs Lisp functions -*- lexical-binding: t; -*- ;; Copyright (C) 2023-2026 Free Software Foundation, Inc. diff --git a/lisp/progmodes/lua-mode.el b/lisp/progmodes/lua-mode.el index 72c1932ab64..227d5d777b1 100644 --- a/lisp/progmodes/lua-mode.el +++ b/lisp/progmodes/lua-mode.el @@ -1,4 +1,4 @@ -;;; lua-mode.el --- Major-mode for editing Lua files -*- lexical-binding: t -*- +;;; lua-mode.el --- Major mode for editing Lua files -*- lexical-binding: t -*- ;; Copyright (C) 2025-2026 Free Software Foundation, Inc. diff --git a/lisp/ring-bell-fns.el b/lisp/ring-bell-fns.el index b35725e192b..32eb0c32051 100644 --- a/lisp/ring-bell-fns.el +++ b/lisp/ring-bell-fns.el @@ -1,4 +1,4 @@ -;;; ring-bell-fns.el --- Collection of functions for ring-bell -*- lexical-binding: t; -*- +;;; ring-bell-fns.el --- Collection of functions for ring-bell-function -*- lexical-binding: t; -*- ;; Copyright (C) 2025-2026 Free Software Foundation, Inc. diff --git a/lisp/tty-tip.el b/lisp/tty-tip.el index 4db64126005..4ae2bc7312f 100644 --- a/lisp/tty-tip.el +++ b/lisp/tty-tip.el @@ -1,4 +1,4 @@ -;;; tty-tip.el --- Display help in kind of tooltips on ttys -*- lexical-binding: t -*- +;;; tty-tip.el --- Display tooltip-like child frames on ttys -*- lexical-binding: t -*- ;; Copyright (C) 2024-2026 Free Software Foundation, Inc. From b8133a416d3298065405cce4eee7ed964ce21c64 Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Fri, 5 Jun 2026 10:41:22 +0100 Subject: [PATCH 20/20] ; Update exported ChangeLog files and etc/AUTHORS * ChangeLog.5: Update. * etc/AUTHORS: Regenerate. --- ChangeLog.5 | 1321 ++++++++++++++++++++++++++++++++++++++++++++++++++- etc/AUTHORS | 93 ++-- 2 files changed, 1372 insertions(+), 42 deletions(-) diff --git a/ChangeLog.5 b/ChangeLog.5 index c20a552f2c5..fbf23263ad3 100644 --- a/ChangeLog.5 +++ b/ChangeLog.5 @@ -1,3 +1,1322 @@ +2026-06-04 Stefan Monnier + + message.el: Fix part of bug#81035 + + * lisp/gnus/message.el (message-narrow-to-field) + (message-hide-headers): Syntax-propertize before narrowing. + +2026-06-04 Michael Albinus + + Fix prompt in remote shell + + * lisp/net/tramp-sh.el (tramp-sh-handle-make-process): Do not use a + hard-coded directory in PS1. (Bug#81177) + +2026-06-04 Dirk-Jan C. Binnema + + Fmake_xwidget: Use about:blank workaround only when needed + + * src/process.c (glib_installs_sigchld_handler): New variable. + (init_process_emacs): Set it when GLib overrides Emacs's SIGCHLD + handler. + * src/process.h (glib_installs_sigchld_handler): Declare. + * src/xwidget.c (Fmake_xwidget): Skip the "about:blank" + workaround when glib_installs_sigchld_handler is false. + +2026-06-04 JD Smith + + Allow brew/macports libgccjit for default native compilation + + * configure.ac: Move flag setup for libgccjit installed by + Homebrew or macports earlier, so default native compilation can + proceed (bug#81171). + +2026-06-04 Sean Whitton + + vc-dir-refresh: Respect non-essential wrt saving buffers + + * lisp/vc/vc-dir.el (vc-dir-refresh): If non-essential is + non-nil, don't call vc-buffer-sync-fileset. + +2026-06-04 Alan Mackenzie + + CC Mode: Fontify a cast type preceding a brace initialization + + This fixes bug#81084. + * lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): + In the test for a cast near the end of the function, add a test + for a {...} block which isn't a statement block, allowing such + blocks to be recognized as operands of casts. + +2026-06-04 Michael Albinus + + Fix Tramp distrobox integration + + * lisp/net/tramp.el (tramp-yesno-prompt-regexp): Fix docstring. + (tramp-yn-prompt-regexp): Fix docstring. Extend. Add :version. + + * test/lisp/net/tramp-tests.el (tramp-test03-file-error): Adapt test. + +2026-06-04 Rahul Martim Juliato + + markdown-ts-mode: fix first-item indent (bug#81118) + + * lisp/textmodes/markdown-ts-mode.el + (markdown-ts--fontify-unordered-list-marker): Skip leading + whitespace in the node range before applying the display bullet, + since the tree-sitter grammar bundles indent into the first + list_marker_* node. + +2026-06-03 Dmitry Gutov + + [GTK3] Re-fix the stored values for width and height + + * src/gtkutil.c (xg_frame_set_char_size) + (xg_frame_set_size_and_position): Round WIDTH and HEIGHT to + multiples of SCALE without adding toolbar/menubar (bug#80662). + +2026-06-02 João Távora + + Eglot: mentions markdown-ts-view-mode less (bug#81150) + + * doc/misc/eglot.texi (Customization Variables): Don't mention + markdown-ts-view-mode. + + * etc/EGLOT-NEWS: Don't mention markdown-ts-view-mode. + +2026-06-02 Alexander Adolf + + vc--subject-to-file-name: Fix over-greedy regex (bug#81017) + + * lisp/vc/vc.el (vc--subject-to-file-name): Make the prefix + regex less greedy, ensure the result has no text properties, + improve the docstring (bug#81017). + +2026-06-02 F. Jason Park + + Fix more missing faces on ERC margin strings + + * lisp/erc/erc-goodies.el (keep-place-indicator): Add + `erc-keep-place-indicator-arrow' face to overlay arrow. + * lisp/erc/erc-stamp.el (erc-stamp--display-prompt-in-left-margin) + (erc--conceal-prompt): Add `erc-prompt-face' to entire `left-margin' + string. See also 9ba65aa9 "Fix missing margin face on display prop in + erc-stamp". + * test/lisp/erc/erc-fill-tests.el (erc-fill--left-hand-stamps): Update + expected text properties on prompt. (Bug#80693) + +2026-06-01 João Távora + + Eglot: Simplify markdown rendering support (bug#81150) + + Now that markdown-ts-view-mode is demoted to "experimental" in emacs-31, + simplify bits of eglot.el and rewrite docs to be more neutral. In + practice 'gfm-view-mode' is still used if found, just like before, but + intrepid users can still try the "experimental" modes. + + * lisp/progmodes/eglot.el (eglot-documentation-renderer): Rewrite + doc string. + (eglot--accepted-formats): Rewrite. + (eglot--builtin-mdown-p): Remove. + + * doc/misc/eglot.texi (Customization Variables): Rewrite entry. + + * etc/EGLOT-NEWS: Tweak. + +2026-06-01 Eli Zaretskii + + Prevent segfaults due to frame resizing at the wrong time + + * src/dispextern.h: + * src/xdisp.c (dont_resize_frames): New variable. + (unwind_format_mode_line): Decrement 'dont_resize_frames'. + (gui_consider_frame_title, display_mode_line, Fformat_mode_line): + Increment 'dont_resize_frames'. + * src/dispnew.c (do_pending_window_change): Don't resize frames if + 'dont_resize_frames' is non-zero. (Bug#81121) + + (cherry picked from commit 94eb6389d403eb1b71a81ecdc3b8416cf5f850d6) + +2026-06-01 Sean Whitton + + Disable markdown-ts-mode & markdown-ts-view-mode for Emacs 31 + + Do not merge to master. + + * lisp/progmodes/eglot.el (eglot-documentation-renderer) + (eglot--format-markup): Don't call eglot--builtin-mdown-p. + * lisp/textmodes/markdown-ts-mode.el (markdown-ts-mode) + (markdown-ts-view-mode): Mark as experimental. + (auto-mode-alist, treesit-major-mode-remap-alist): Don't add + anything. + * doc/misc/eglot.texi (Customization Variables): + * etc/EGLOT-NEWS: + * etc/NEWS: Don't mention markdown-ts-mode or + markdown-ts-view-mode. + +2026-05-31 Juri Linkov + + More tests for fill-paragraph-handle-comment.erts + + * test/lisp/textmodes/fill-resources/fill-paragraph-handle-comment.erts: + Add more tests for current comment lines (bug#80449). + +2026-05-31 Kyle Meyer + + Update to Org 9.8.5 + +2026-05-30 João Távora + + Eglot: replace eglot-prefer-plaintext with eglot-documentation-renderer + + The old boolean 'eglot-prefer-plaintext' is replaced by the more + expressive 'eglot-documentation-renderer', which can hold a major-mode + symbol, t (plain text), or nil (auto-detect each time). By selecting a + renderer once at startup the repeated per-request lookups are avoided, + which helps with the slowness reported in bug#81150. + + * lisp/progmodes/eglot.el (eglot-prefer-plaintext): Declare obsolete + alias to 'eglot-documentation-renderer'. + (eglot-documentation-renderer): New defcustom, reworked from from + eglot-prefer-plaintext. + (eglot--accepted-formats): Use new variable. + (eglot--format-markup): Use new variable. + + * etc/EGLOT-NEWS: Announce change. + + * doc/misc/eglot.texi (Customization Variables): Document + eglot-documentation-renderer. + +2026-05-30 Amin Bandali + + Make HTML button elements tab-stoppable in eww (bug#81107) + + * lisp/net/eww.el (eww-form-submit): Call put-text-property to + add help-echo and shr-tab-stop properties. + (eww-tag-input): Exclude inputs with type="submit" when adding + the help-echo and shr-tab-stop properties, since that's now done + in eww-form-submit, called earlier for type="submit". + +2026-05-30 Eli Zaretskii + + Don't make buffer read-only when reverting if 'view-mode' was disabled + + * lisp/view.el (view--disable): Reset 'read-only-mode--state'. + (Bug#81149) + +2026-05-29 Augusto Stoffel + + * lisp/shell.el (shell): Fix typo: use process-live-p (bug#81145). + +2026-05-28 David Ponce + + widget-image-find: Use 'image-load-path' (bug#81140) + + * lisp/wid-edit.el (widget-image-find): Use 'image-load-path' (bug#81140). + +2026-05-28 Po Lu + + Fix the MSDOS build + + * msdos/sedlibmk.inp (GL_GNULIB_MEMEQ, GL_GNULIB_STREQ) + (GL_GNULIB_STRNUL): New substitutions, replacing that of + GL_GNULIB_STRINGEQ. + + * src/term.c (init_tty) [MSDOS]: Assign appropriate value to + tty->TN_max_colors. + + Do not merge to master. + +2026-05-27 Zhengyi Fu (tiny change) + + Fix lax whitespace highlight during query-replace + + * lisp/replace.el (query-replace-read-args): Add :lax-whitespace to + minibuffer-lazy-highlight-setup, so lazy highlight during + query-replace respects replace-lax-whitespace and + replace-regexp-lax-whitespace (bug#81131). + +2026-05-27 Juri Linkov + + Fix fill-paragraph combining text with preceding comment + + * lisp/textmodes/fill.el (fill-paragraph): Handle the case + when a non-comment line follows a comment line with + non-nil 'fill-paragraph-handle-comment' (bug#80449). + Skip such a comment line before filling a non-comment line. + + * test/lisp/textmodes/fill-tests.el + (fill-test-fill-paragraph-handle-comment): Add new test. + + * test/lisp/textmodes/fill-resources/fill-paragraph-handle-comment.erts: + New file. + +2026-05-27 Paul Eggert + + emacsclient quote_argument is void + + * lib-src/emacsclient.c (quote_argument): + Don’t use ‘return E;’ in a function returning void. + Problem found by Oracle Developer Studio 12.6. + +2026-05-24 Sean Whitton + + Revert "* admin/notes/documentation: Recommend not using "it's"." + +2026-05-24 Sean Whitton + + native--compile-skip-on-battery-p: Try to fix ?b, ?B conditions + + * lisp/emacs-lisp/comp-run.el + (native--compile-skip-on-battery-p): Don't skip charging because + the battery is charging, and don't look for "discharging", at + least for now (bug#80922). Thanks to David Koppelman + for the report. + +2026-05-24 Zhengyi Fu (tiny change) + + Save and restore original local keymap in grep-edit-mode + + * lisp/progmodes/grep.el (grep-edit-original-mode-map): New + variable. + (grep-change-to-grep-edit-mode): Save the current local map + before switching to grep-edit-mode-map. + (grep-edit-save-changes): Restore the saved local map instead of + assuming grep-mode-map (bug#81090). + +2026-05-24 Eli Zaretskii + + Fix display of inline SVG images in Rmail + + * lisp/mail/rmailmm.el (rmail-mime-set-bulk-data): Support + Content-type of "svg+xml" if SVG images are supported, + +2026-05-24 Yuan Fu + + Add treesit-ready-p check back to tree-sitter major modes (bug#80909) + + * lisp/progmodes/c-ts-mode.el (c-ts-mode): + (c++-ts-mode): + * lisp/progmodes/cmake-ts-mode.el (cmake-ts-mode): + * lisp/progmodes/dockerfile-ts-mode.el (dockerfile-ts-mode): + * lisp/progmodes/elixir-ts-mode.el (elixir-ts-mode): + * lisp/progmodes/go-ts-mode.el (go-ts-mode): + (go-mod-ts-mode): + (go-work-ts-mode): + * lisp/progmodes/heex-ts-mode.el (heex-ts-mode): + * lisp/progmodes/js.el (js-ts-mode): + * lisp/progmodes/lua-ts-mode.el (lua-ts-mode): + * lisp/progmodes/python.el (python-ts-mode): + * lisp/progmodes/rust-ts-mode.el (rust-ts-mode): + * lisp/progmodes/sh-script.el (bash-ts-mode): + * lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode): + (tsx-ts-mode): + * lisp/textmodes/css-mode.el (css-ts-mode): + * lisp/textmodes/mhtml-ts-mode.el (mhtml-ts-mode): + * lisp/textmodes/toml-ts-mode.el (toml-ts-mode): + * lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode): + * lisp/treesit-x.el (treesit-generic-mode-setup): Add the check. + +2026-05-24 João Távora + + Fix pathological slowness in flex completion + + The 'completion-regexp-list' optimization in + completion--flex-all-completions-1, a cheap pre-filter via a trivial + regexp, performs very poorly for longer patterns and strings, so drop + it. That alone recovers fairly decent performance for the flex + completion when compared to the 'hotfuzz' point of reference. + + We then recover the cheap rejection with an O(N+M) pre-check in the + Fcompletion__flex_cost_gotoh C scorer. This kicks in the common case + (completion-ignore-case is nil) and pays off especially when the table + is already a list and 'all-completions' needn't cons. + + See: + https://lists.gnu.org/archive/html/emacs-devel/2026-04/msg01081.html + https://lists.gnu.org/archive/html/emacs-devel/2026-05/msg00519.html + + * lisp/minibuffer.el (completion--flex-all-completions-1): Remove + regexp pre-filter. + + * src/minibuf.c (Fcompletion__flex_cost_gotoh): Add subsequence + pre-check. + +2026-05-23 Amin Bandali + + No longer raise error on HTTP 402 (Payment Required) (bug#81101) + + * lisp/url/url-http.el (url-http-parse-headers): Return t instead of + raising an error, to give the user a chance to interact with the page. + +2026-05-23 Thomas Mühlbacher (tiny change) + + Avoid compilation-mode matching rust as gnu + + * lisp/progmodes/compile.el + (compilation-error-regexp-alist-alist): Put 'rust' before 'gnu' + to avoid a mismatch since the " |" has become optional (bug#81075). + +2026-05-23 Sean Whitton + + * build-aux/git-hooks/commit-msg: Replace Markdown-style quotation. + +2026-05-23 Sean Whitton + + vc-test--rename-file: Disable part of test for SCCS + + * test/lisp/vc/vc-tests/vc-tests.el (vc-test--rename-file): + Disable part of test for SCCS. + +2026-05-23 Rahul Martim Juliato + + markdown-ts-mode: Don't enable unconditionally by default + + * lisp/textmodes/markdown-ts-mode.el (markdown-ts-mode-maybe): + New function. + (auto-mode-alist): Bind ".md", ".markdown", and ".mdx" to + 'markdown-ts-mode-maybe' instead of 'markdown-ts-mode'. + * etc/NEWS: Update the 'markdown-ts-mode' entry. + +2026-05-23 Manuel Giraud + + Prettify special glyphs + + * lisp/disp-table.el (prettify-special-glyphs-mode): New mode to + display nicer special glyphs. + (special-glyphs): New face for displaying special glyphs when + the minor mode is active. + (prettify-special-glyphs-saved-truncation) + (prettify-special-glyphs-saved-continuation): Internal variables + to save previous special glyphs. + * etc/NEWS: Announce the change. (Bug#80628) + +2026-05-23 Eli Zaretskii + + Revert "sh-script: Mark + and * as punctuation rather than a symbol constituent" + + This reverts commit b3c0aee42b086af4b3c6e26da1a5d81490b6128b. + It caused regressions in 'sh-script', see bug#80794 and + bug#80854. + +2026-05-23 Richard Lawrence + + Rename `icalendar-recur' type and related functions + + More context in Bug#80786 and: + https://lists.gnu.org/archive/html/emacs-orgmode/2026-03/msg00286.html + + `icalendar-recur' as a type name for RRULE values was confusing and made + the accessors for this type difficult to discover, because `icalendar-recur-' + is also used as a prefix in icalendar-recur.el. This change renames the + `icalendar-recur' type to `icalendar-rrule-value' and renames the + accessor functions for these values appropriately. + + * lisp/calendar/icalendar-parser.el: Rename symbols as follows: + (icalendar-recur): `icalendar-rrule-value' + (icalendar-read-recur-rule-part): `icalendar-read-rrule-part' + (icalendar-print-recur-rule-part): `icalendar-print-rrule-part' + (icalendar-recur-rule-part): `icalendar-rrule-part' + (icalendar-read-recur): `icalendar-read-rrule-value' + (icalendar-print-recur): `icalendar-print-rrule-value' + (icalendar--recur-value-types): `icalendar--rrule-value-types' + (icalendar-recur-value-p): `icalendar-rrule-value-p' + (icalendar-recur-freq): `icalendar-rrule-freq' + (icalendar-recur-interval-size): `icalendar-rrule-interval-size' + (icalendar-recur-until): `icalendar-rrule-until' + (icalendar-recur-count): `icalendar-rrule-count' + (icalendar-recur-weekstart): `icalendar-rrule-weekstart' + (icalendar-recur-by*): `icalendar-rrule-by*'. + (icalendar-rrule): + (icalendar-index-insert): + (icalendar-index-get): Update references. + * lisp/calendar/icalendar-recur.el (icalendar-recur-find-interval): + (icalendar-recur-nth-interval): + (icalendar-recur-next-interval): + (icalendar-recur-previous-interval): + (icalendar-recur-refine-from-clauses): + (icalendar-recur-recurrences-in-interval): + (icalendar-recur-recurrences-in-window): + (icalendar-recur-recurrences-to-count): + (icalendar-recur-tz-observance-on): Update references. + * lisp/calendar/diary-icalendar.el: Update references. + * lisp/calendar/icalendar-shortdoc.el (icalendar): Update shortdoc examples. + * lisp/gnus/gnus-icalendar.el: Update references. + * test/lisp/calendar/diary-icalendar-tests.el: + * test/lisp/calendar/icalendar-parser-tests.el: + * test/lisp/calendar/icalendar-recur-tests.el: Update references in tests. + +2026-05-22 Jacek Migacz + + Fix Lisp injection via X-Draft-From in Gnus + + * lisp/gnus/gnus-msg.el (gnus-inews-make-draft-meta-information): + Escape the group name with prin1-to-string to prevent arbitrary + Lisp injection through crafted group names. The unescaped group + name was embedded into a Lisp-readable string, parsed back with + read-from-string in gnus-draft-setup, and eventually eval'd via + message-do-actions, allowing code execution when a draft was sent. + +2026-05-22 Martin Rudalics + + Save/restore old_buffer slot via window configurations (Bug#81097) + + With Emacs 31 the old_buffer slot of a window gets overwritten + with the buffer unshown in that window when that window is + deleted. Fset_window_configuration triggers that when calling + delete_all_child_windows. If a window configuration gets saved + and restored in one and the same redisplay cycle, the change + time stamps of the window and its frame will be equal and + 'window-buffer-change-functions' may wrongly decide that the + window's buffer has not changed because its buffer and + old_buffer slots refer to the same buffer (Bug#81097). Fix that + by saving and restoring the old_buffer slot. + + * src/window.c (struct saved_window): Add 'old_buffer' slot. + (Fset_window_configuration): Restore old_buffer slot. + (save_window_save): Save old_buffer slot. + +2026-05-22 Michael Albinus + + Adapt ert-remote-temporary-file-directory settings + + * lisp/emacs-lisp/ert-x.el (tramp-default-remote-shell) + (tramp-encoding-shell): Declare. + (tramp-methods) : Add `tramp-tmpdir'. Adapt + `tramp-login-program' and `tramp-remote-shell'. + +2026-05-22 Eli Zaretskii + + Fix warning message in 'markdown-ts-mode--initialize' + + * lisp/textmodes/markdown-ts-mode.el + (markdown-ts-mode--initialize): Tweak the warning message when + Tree-sitter is not available. (Bug#81100) + +2026-05-22 Dmitry Gutov + + Fix "assertion 'GTK_IS_WINDOW (window)' failed" + + * src/gtkutil.c (xg_frame_set_size_and_position): Remove a + gtk_window_resize call which used a wrong value type + (GdkX11Window instead of GtkWindow). The original motivation + for that line seems to be fixed by later changes (bug#80662). + +2026-05-21 Dmitry Gutov + + [Xt] Fix child frame resizing glitch + + * src/widget.c (EmacsFrameResize): Exit early for child frames + (bug#81077). + +2026-05-21 João Távora + + Eglot: use standard face for completion annotations (bug#81088) + + * lisp/progmodes/eglot.el (eglot-completion-at-point): Use + completions-annotations face, not font-lock-function-name-face. + +2026-05-20 Juri Linkov + + Fix 'shr-outline-search' (bug#81073) + + * lisp/net/shr.el (shr-outline-search): + Don't check for the beginning of the line. + Suggested by Omar Antolín Camarena . + Confirmed by Rahguzar . + +2026-05-20 Michael Albinus + + Improve auth-source-backend-parse + + * lisp/auth-source.el (auth-source-backend-parse): Use `run-hook-wrapped'. + Suggested by Augusto Stoffel . + Transform a warning into a debug message. + +2026-05-20 João Távora + + Eglot: announce markdown support for completion docs + + No reason not to. Tested with gfm-view-mode and markdown-ts-mode + + * lisp/progmodes/eglot.el (eglot-client-capabilities): Annouce + markdown support for completion docs. + +2026-05-20 Rahul Martim Juliato + + markdown-ts-mode: hide fence lines in view-mode (bug#81081) + + * lisp/textmodes/markdown-ts-mode.el + (markdown-ts--fontify-delimiter): When `markdown-ts-hide-markup' + is enabled in `markdown-ts-view-mode', also hide the whole line + containing a `fenced_code_block_delimiter' (including its + terminating newline) so Eldoc/LSP markdown snippets render + without stray blank lines around the code block. Scoped to + view-mode and to fenced delimiters on purpose: the same handler + is shared by inline delimiters (emphasis, code span, link + brackets) where munching surrounding whitespace would collapse + word separators, and tuning rendering for + hide-markup-while-editing is not a goal. + +2026-05-20 João Távora + + markdown-ts-mode: align default face definitions with markdown-mode + + Match the out-of-the-box appearance of markdown-ts-mode to the + non-tree-sitter markdown-mode package, making switching between modes + less jarring. + + * lisp/textmodes/markdown-ts-mode.el (markdown-ts-delimiter) + (markdown-ts-heading-1, markdown-ts-heading-2, markdown-ts-heading-3) + (markdown-ts-heading-4, markdown-ts-heading-5, markdown-ts-heading-6) + (markdown-ts-block-quote, markdown-ts-code-block, markdown-ts-code-span) + (markdown-ts-indented-code-block, markdown-ts-html-tag) + (markdown-ts-html-block, markdown-ts-thematic-break) + (markdown-ts-entity-reference, markdown-ts-numeric-character-reference) + (markdown-ts-table, markdown-ts-table-header, markdown-ts-table-cell) + (markdown-ts-table-delimiter-cell, markdown-ts-language-keyword) + (markdown-ts-list-marker, markdown-ts-hard-line-break-backslash) + (markdown-ts-hard-line-break-backslash-hidden) + (markdown-ts-hard-line-break-space-hidden) + (markdown-ts-task-unchecked, markdown-ts-task-checked): Tweak. + +2026-05-20 Stéphane Marks + + Fix markdown-ts-mode atx_heading face computation (bug#81042) + + The grammar reports leading spaces as part of the atx_heading "marker" + and we cannot use the length of the marker as a result. Instead, count + the number of consecutive # after any blanks to determine its "level." + + * lisp/textmodes/markdown-ts-mode.el + (markdown-ts--fontify-atx-heading): Count the octothorpes rather + than using the length of the marker node's text. + +2026-05-20 Stéphane Marks + + Allow markdown-ts--run-command-in-code-block to ignore output (bug#81041) + + Do not assume every command run in + 'markdown-ts--run-command-in-code-block' produces output that needs to + be merged from the temp/work buffer into the source buffer. One example + is 'xref-find-definitions', the temp buffer of which is unrelated to the + source buffer. + + * lisp/textmodes/markdown-ts-mode.el + (markdown-ts-code-block-commands): Add 'complete-symbol'. + (markdown-ts-code-block-ignore-output-commands): New defvar. + (markdown-ts--run-command-in-code-block): Ignore command output + when necessary. + +2026-05-19 Lin Sun + + hideshow: Menu entry for 'hs-toggle-all' + + * lisp/progmodes/hideshow.el: Menu entry for hs-toggle-all (bug#81045). + +2026-05-18 Stefan Monnier + + doc/lispref/text.texi: Add complement to commit f4a1c006569f + + * doc/lispref/text.texi (Examining Properties): Mention the change in + cursor-sensor-functions. + +2026-05-18 João Távora + + Eglot: fix eglot--format-makrup when MARKUP just a string + + * lisp/progmodes/eglot.el (eglot--format-markup): Fix case where + markup is string. + +2026-05-18 F. Jason Park + + Fix missing margin face on display prop in erc-stamp + + * lisp/erc/erc-stamp.el (erc-insert-timestamp-right): Explicitly add + face to right-hand stamp's `display' margin string. Commit d24b10ca + "Introduce 'margin' face for window margin background" did away with the + "fall-through" behavior in which a margin spec's string that lacks its + own face property inherited whatever the associated `display' char + happened to have. (Bug#80693) + + ;; The old language in "(elisp) Display Margins" said "if the + ;; string to be displayed in the margin doesn't specify a face, its + ;; face is determined using the same rules and priorities as it is + ;; for strings displayed in the text area (see Displaying Faces)," + ;; and that "if this results in undesirable 'leaking' of faces into + ;; the margin, make sure the string has an explicit face specified + ;; for it." It seems ERC and likely more than a few other packages + ;; never came to heed this guidance and have erroneously depended + ;; on such behavior for years if not decades. + ;; + ;; * test/lisp/erc/resources/fill/snapshots/merge-01-start.eld: + ;; * test/lisp/erc/resources/fill/snapshots/merge-02-right.eld: + ;; * test/lisp/erc/resources/fill/snapshots/merge-wrap-01.eld: + ;; * test/lisp/erc/resources/fill/snapshots/merge-wrap-indicator-pre-01.eld: + ;; * test/lisp/erc/resources/fill/snapshots/monospace-01-start.eld: + ;; * test/lisp/erc/resources/fill/snapshots/monospace-02-right.eld: + ;; * test/lisp/erc/resources/fill/snapshots/monospace-03-left.eld: + ;; * test/lisp/erc/resources/fill/snapshots/monospace-04-reset.eld: + ;; * test/lisp/erc/resources/fill/snapshots/spacing-01-mono.eld: Update + ;; snapshot. + +2026-05-18 Sean Whitton + + vc-refresh-state: Override default-directory for backend functions + + I ran into the issue described in the comment with the current + code in project-find-file-in and project-find-dir, when using + 'C-x p p' to switch between projects. + + * lisp/vc/vc-hooks.el (vc-refresh-state): When calling into the + backend, override any let-bindings of default-directory. + +2026-05-18 João Távora + + Eglot: unbreak for treesit-less builds + + * lisp/progmodes/eglot.el + (eglot--builtin-mdown-p): New helper. + (eglot--accepted-formats) + (eglot--format-markup): Use it. + +2026-05-18 Joshua Murphy (tiny change) + + Get selected item in newsticker list view + + * lisp/net/newst-treeview.el + (newsticker--treeview-get-selected-item): If an item is already + selected, use it. (Bug#80972) + +2026-05-17 Brian Leung + + Eglot: fix thinko in recent markdown-related commit (bug#81063) + + * lisp/progmodes/eglot.el (eglot--format-markup): Correct return value + for gfm-view-mode. + +2026-05-17 João Távora + + Jsonrpc: migrate more tests to Python subprocess fixtures + + All tests now use 'jsonrpc--with-python-fixture' with a Python3 + subprocess instead of the in-Emacs TCP server. Changed the "harakiri" + method to be a request instead of a notification for to reduce chance of + "Sentinel hasn't run" warning. + + The two in-Emacs-RPC-specific error tests ('errors-with--32601' and + 'signals-an--32603-JSONRPC-error') are dropped with the fixture itself, + as the error paths they exercise are internal to the Emacs Lisp + dispatcher and have no direct Python equivalent. They will have to be + re-done later on in other form. + + * test/lisp/jsonrpc-resources/server-emacsrpc.py: New file. + + * test/lisp/jsonrpc-resources/server-anxious-nested.py: Use new + harakiri. + + * test/lisp/jsonrpc-resources/server-emacsrpc.py: Use new harakiri. + + * test/lisp/jsonrpc-resources/server-harakiri.py: Use new harakiri. + + * test/lisp/jsonrpc-resources/server-remote-during-sync-1.py: Use new + harakiri. + + * test/lisp/jsonrpc-resources/server-remote-during-sync-2.py: Use new + harakiri. + + * test/lisp/jsonrpc-resources/server-remote-error.py: Use new harakiri. + + * test/lisp/jsonrpc-resources/common.py (harakiri): New definition. + + * test/lisp/jsonrpc-tests.el + (jsonrpc--with-python-fixture): Rework, move up. + (jsonrpc-connection-ready-p): Move up. + (jsonrpc--call-with-emacsrpc-fixture) + (jsonrpc--with-emacsrpc-fixture) + (errors-with--32601) + (signals-an--32603-JSONRPC-error): Remove. + (returns-3, times-out, doesnt-time-out, stretching-it-but-works) + (deferred-action-toolate, deferred-action-intime) + (deferred-action-complex-tests): Migrate to Python fixture. + (scontrol-remote-during-sync-1, scontrol-remote-during-sync-2) + (scontrol-anxious-nested, scontrol-remote-error) + (shutdown-clean-after-notification): Tweak. + +2026-05-17 João Távora + + Eglot: add left-fringe code action indicator (bug#80326) + + The fringe indicator uses a custom lightning-bolt bitmap, an alternative + to the margin indicator on GUI frames. It is non-interactive, however. + + * lisp/progmodes/eglot.el (eglot--fringe-action): New fringe bitmap. + + (eglot-code-action-indications): Add 'left-fringe' to default value + and to docstring. Update incompatibility note. + + (eglot-code-action-suggestion): Handle 'left-fringe' indication. + +2026-05-17 Michael Albinus + + Fix auth-source-backends-parse + + * lisp/auth-source.el (auth-source-backend-parse): Drop backends + of type `ignore'. (Bug#81024) + (auth-source-backends): Drop duplicate backends. + +2026-05-17 Eli Zaretskii + + Fix updates of embedded formulas by 'calc-embedded-update-formula' + + * lisp/calc/calc-embed.el (calc-embedded-update): Use + 'buffer-substring' to better track the string representation of + the formula when it is being edited. Suggested by + gnu@publik.slmail.me. Also, update commentary. (Bug#80901) + +2026-05-16 Andrea Alberti + + Fill margins with 'margin' face on truncated screen lines + + * src/xdisp.c (display_line): Remove the unnecessary condition that + row->used of the margin areas is zero, for when we call + 'extend_face_to_end_of_line'. (Bug#80693) + +2026-05-14 João Távora + + Eglot: adjust reference to completion frontends in manual + + * doc/misc/eglot.texi (Eglot Features): Rework. + +2026-05-14 João Távora + + Eldoc: display documentation in visual-line-mode + + Documentation is overwhelmingly prose and intended to be viewed, + not edited. Using visual-line-mode allows members of + 'eldoc-doc-functions' to provide long lines that correctly fill + to the window width. + + * lisp/emacs-lisp/eldoc.el (eldoc--format-doc-buffer): Use + visual-line-mode. + +2026-05-14 João Távora + + Eglot: prefer markdown-ts-view-mode for markup rendering (bug#80127) + + Eglot previously needed gfm-view-mode from markdown-mode.el to render + Markdown from LSP servers. It now prefers markdown-ts-view-mode when + available. + + * lisp/progmodes/eglot.el (eglot--accepted-formats): Recognize + markdown-ts-view-mode as a Markdown renderer. + (eglot--format-markup): Rework with cl-labels; prefer + markdown-ts-view-mode over gfm-view-mode. + + * doc/misc/eglot.texi (Eglot Features): Don't mention + markdown-mode directly. + + * etc/EGLOT-NEWS: Mention change + +2026-05-14 Rahul Martim Juliato + + Use 'read-multiple-choice' in 'markdown-ts-mode' (bug#81027) + + Replace the "c" character-prompt interactive spec with + 'read-multiple-choice', which presents named options instead of + requiring users to decode the prompt string and type a single + character. + + * lisp/textmodes/markdown-ts-mode.el + (markdown-ts-table-align-column): Use 'read-multiple-choice'. + Adjust ALIGN docstring punctuation. + * lisp/textmodes/markdown-ts-mode-x.el + (markdown-ts-toc-insert-template): Use 'read-multiple-choice'. + +2026-05-14 Rahul Martim Juliato + + Fix 'markdown-ts-code-span' face (bug#81026) + + * lisp/textmodes/markdown-ts-mode.el (markdown-ts-code-span): + Inherit from 'font-lock-keyword-face' rather than + 'font-lock-string-face'. + +2026-05-14 Rahul Martim Juliato + + Add read-only 'markdown-ts-view-mode' (bug#81023) + + This new derived mode is intended for consumers that render + Markdown content for display rather than editing, such as Eglot + and Eldoc when showing documentation popups and buffers. It + pre-sets the relevant customizations (markup hidden, inline + images on, hard-line-break markup hidden, native code-block + fontification, table and code-block context minor modes off), + makes the buffer read-only, and uses its own keymap derived from + 'special-mode-map' so navigation keys behave like a viewer. + + A pre-init hook lets callers normalize buffer content before the + grammar parses it; 'markdown-ts-add-final-newline' is the + default so that markup depending on a terminating newline parses + correctly. 'markdown-ts-buffer-string' returns the rendered + buffer string with overlay faces flattened into text properties, + which is useful for callers that capture the rendered output. + + Along the way: 'list_marker_parenthesis' is now recognized as an + ordered list marker; the strikethrough query is simplified to a + single rule; thematic breaks span the window via an ':extend' + underline when the face supports it. + + * lisp/textmodes/markdown-ts-mode.el (markdown-ts-view-mode): + New read-only derived mode. + (markdown-ts-view-mode-map): New keymap. + (markdown-ts-view-mode-pre-init-hook): New hook, defaulting to + 'markdown-ts-add-final-newline'. + (markdown-ts-mode--initialize): New helper, factored out of + 'markdown-ts-mode' so 'markdown-ts-view-mode' can reuse the + parser readiness and setup logic after overriding local + variables. + (markdown-ts-mode): Call 'markdown-ts-mode--initialize'. + (markdown-ts-add-final-newline): New function. + (markdown-ts-buffer-string): New function. + (markdown-ts-unordered-list-marker): New defcustom. + (markdown-ts-hard-line-break-backslash) + (markdown-ts-hard-line-break-space): Accept the symbol 'hide. + (markdown-ts--fontify-hard-line-break): Honor 'hide. + (markdown-ts--fontify-atx-heading) + (markdown-ts--fontify-setext-heading) + (markdown-ts--fontify-atx-delimiter) + (markdown-ts--fontify-unordered-list-marker) + (markdown-ts--list-item-depth): New functions supporting clean + rendering when markup is hidden. + (markdown-ts--fontify-thematic-break): Use ':extend' underline + span when the face supports it. + (markdown-ts--resolve-display-value): Accept non-cons values. + (markdown-ts--list-ordered-item-p): Also recognize + 'list_marker_parenthesis'. + (markdown-ts--range-settings): Mark markdown-inline embed as + ':local t'. + (markdown-ts--set-up): Create the markdown-inline parser only in + the inline setup branch; drop the redundant + 'markdown-ts-hide-markup' make-local-variable. + (markdown-ts--treesit-settings): Route atx and setext headings + to their dedicated fontifiers; route unordered list markers + through 'markdown-ts--fontify-unordered-list-marker'; move + 'strikethrough' to the simpler paragraph-inline query. + +2026-05-13 Rahul Martim Juliato + + Fix strikethrough in 'markdown-ts-mode' (bug#80991) + + * lisp/textmodes/markdown-ts-mode.el + (markdown-ts--treesit-settings): Add a new font-lock block for + 'paragraph-inline' that handles strikethrough nodes more + carefully. + +2026-05-13 Rahul Martim Juliato + + Fix code-span in headings in 'markdown-ts-mode' (bug#80979) + + * lisp/textmodes/markdown-ts-mode.el + (markdown-ts--treesit-settings): Move the 'code_span' and + 'code_span_delimiter' font-lock rules into a separate block with + ':override prepend' instead of 'append'. The heading feature + (level 1) applies its face via 'font-lock-append-text-property', + so a code span that later appends 'markdown-ts-code-span' ends + up with '(markdown-ts-heading-N markdown-ts-code-span)', where + the heading face takes priority and the code-span face is + suppressed. Prepending ensures 'markdown-ts-code-span' appears + first in the face list and wins visually. + +2026-05-13 Stéphane Marks + + Make 'markdown-ts-inline-images' buffer local and test for GUI (bug#80978) + + * lisp/textmodes/markdown-ts-mode.el (markdown-ts-inline-images): + Now buffer local. + (markdown-ts--fontify-image): Defensively test for graphical + display before rendering images. + +2026-05-13 Michael Albinus + + * etc/NEWS: Mention new user option tramp-propagate-emacsclient-tramp. + +2026-05-13 Michael Albinus + + Propagate EMACSCLIENT_TRAMP to remote hosts with Tramp + + * doc/misc/tramp.texi (Remote processes): + Explain `tramp-propagate-emacsclient-tramp'. + + * lisp/net/tramp.el (tramp-remote-process-environment): Adapt docstring. + (tramp-propagate-emacsclient-tramp): New defcustom. + (tramp-handle-make-process): + * lisp/net/tramp-sh.el (tramp-sh-handle-make-process) + (tramp-sh-handle-process-file): Use it. + + * test/lisp/net/tramp-tests.el (tramp-test33-environment-variables): + Adapt test. + +2026-05-13 Stefan Monnier + + keyboard-tests.el: Try and fix the failure on EMBA + + * test/src/keyboard-tests.el (keyboard-sigint-to-quit): Fix a small + race condition and avoid `sit-for` returning early. + +2026-05-13 Stefan Monnier + + doc: Remove long obsolete references to `package-initialize` + + Since Emacs-27, `package-initialize` is for internal use only, + and callers should either call `package-activate-all` instead + (cheaper and faster) or do nothing at all (because the other + functions should trigger the needed initialization automatically + as needed). + + * doc/lispref/package.texi (Packaging Basics): Delete `package-initialize`. + + * doc/misc/eglot.texi (Reporting bugs): Don't recommend using `package-initialize`. + + * doc/misc/org.org (Using Emacs packaging system): Simplify the command + line since both `(require 'package)` and `(package-initialize)` are + redundant here. + +2026-05-13 Sean Whitton + + vc-next-action: Call vc-delete-file on FILESET-ONLY-FILES + + * lisp/vc/vc.el (vc-next-action): Call vc-delete-file on + FILESET-ONLY-FILES, not FILES (bug#80998). + +2026-05-12 Elias Gabriel Perez + + hideshow: Support new 'margin' face for margin indicators. (Bug#80693) + + * lisp/progmodes/hideshow.el (hs-indicator-hide): Remove 'default' face. + (hs--make-indicators-overlays): Rework. + +2026-05-12 Juri Linkov + + Use the new 'margin' face in Flymake (bug#80693) + + * lisp/progmodes/flymake.el (flymake--bs-display): + Use the 'margin' face when it's available. + +2026-05-12 Sean Whitton + + vc-dir-resynch-file: Pass down non-truename'd FILE + + * lisp/vc/vc-dir.el (vc-dir-recompute-file-state): Delete + recently introduced TRUENAME parameter. + (vc-dir-resynch-file): Pass the file name from before calling + file-truename to vc-dir-recompute-file-state. + +2026-05-12 F. Jason Park + + Change ERC version for Emacs 31 to 5.6.2.31.1 + + * doc/misc/erc.texi: Change ERCVER to 5.6.2.31.1. + * lisp/erc/erc.el: Change "Version" package header to 5.6.2.31.1. Don't + update the `customize-package-emacs-version-alist' entry because this is + not a GNU ELPA release. + (erc-version): Change version to 5.6.2.31.1. + + Do not merge to master. + +2026-05-11 Philip Kaludercic + + Fix 'sgml-parse-tag-backward' to handle tags in comments + + * lisp/textmodes/sgml-mode.el (sgml--find-<>-backward): Ignore + SGML tags that happen to occur within comments. This also means + that the contents of comments are not indented, but also do not + affect the indentation of tags following the comments as well. + + (Bug#80841) + +2026-05-11 Aidan Coyle (tiny change) + + Fix eww-submit for forms with no action (bug#80918) + + * lisp/net/eww.el (eww-submit): If a form does not specify an action + the assumed action is the current URL. If the current URL has an + existing query part, that part must be replaced by the form values, + rather than appended to. + +2026-05-11 Elias Gabriel Perez + + * lisp/progmodes/hideshow.el (hs--set-variable): Use 'set-local' (bug#80999) + +2026-05-11 Juri Linkov + + Fix Completions buffer disappearing with tmm-menubar (bug#80995) + + * lisp/minibuffer.el (completions--start-background-update): + Cancel a possible leftover timer (e.g. from the previous + after-change hook) that would suppress the display of + *Completions* when 'completion-eager-update' is nil. + (completions--after-change): Don't start background update + when not required to automatically update *Completions*. + +2026-05-11 Michael Albinus + + Fix secrets.el when Emacs is a flatpak + + * doc/misc/dbus.texi (Flatpak integration): New chapter. + + * lisp/net/secrets.el (top): Protect against wrong signals in the + flatpak case. (Bug#80977) + +2026-05-11 Philip Kaludercic + + Fix 'prepare-user-lisp' to follow symlinks + + * lisp/startup.el (prepare-user-lisp): Call + 'directory-files-recursively' with a non-nil value for + FOLLOW-SYMLINKS. This was the intended way for the function to + operate, during the planning phase, so that users could + structure their User Lisp directory by linking in Lisp + directories from other parts of their file system. + +2026-05-11 Philip Kaludercic + + Update "timeout" to 2.1.6 + + See https://lists.gnu.org/archive/html/emacs-devel/2026-05/msg00033.html. + +2026-05-11 Dmitry Gutov + + [GTK3, HiDPI] Fix width/height round-trip through ConfigureNotify + + * src/gtkutil.c (xg_frame_set_char_size) + (xg_frame_set_size_and_position): Truncate WIDTH and HEIGHT to + be multiples of the scale factor (bug#80662). + +2026-05-11 Dmitry Gutov + + [GTK3] On Expose, repaint the border before the content + + * src/xterm.c (handle_one_xevent): Move the + x_clear_under_internal_border call before expose_frame, for less + chance of implicit flush to screen in between (bug#80662). + +2026-05-10 Pip Cet + + Test read-passwd behavior (bug#80838) + + * test/lisp/auth-source-tests.el (auth-source-test--displayed-string): + (auth-source-test-read-passwd): + (auth-source-test-read-passwd-revealed): + (auth-source-test-read-passwd-nested): New. + +2026-05-10 Pip Cet + + Fix nested read-passwd calls (bug#80838) + + Calls to 'read-passwd' may be nested. The old code didn't handle + that, because some of the state was global and we'd end up revealing + passwords. The new code still has global state, but it has been + changed so that we hide rather than reveal passwords when we enter or + leave a nested read-passwd prompt. + + * lisp/auth-source.el (read-passwd--hide-password): Removed. + (read-passwd--password-hidden): New. + (read-passwd-toggle-visibility): Add optional FORCE argument. + (read-passwd--mini-buffers): New variable. + (read-passwd-mode): Don't modify mode line when nested. Hide password + when returning to nested minibuffer or entering a new one. + +2026-05-09 Pip Cet + + Fix terminal emulation of "ESC [ K" sequence + + * lisp/term.el (term-erase-in-line): Don't immediately delete the + newly inserted characters. + +2026-05-09 Eli Zaretskii + + Fix vertical-motion across overlay strings with embedded newlines + + * src/indent.c (Fvertical_motion): Handle the case of an overlay + string on invisible text at point. (Bug#80989) + +2026-05-09 Morgan Smith + + Mark gnus-dbus.el as obsolete + + This functionality has been replaced by the new sleep library + which supports more then just DBUS systems. + + * lisp/obsolete/gnus-dbus.el: Add Obsolete-since header. Add + commentary. + (gnus-dbus-close-on-sleep, gnus-dbus-sleep-registration-object) + (gnus-dbus-register-sleep-signal gnus-dbus-sleep-handler) + (gnus-dbus-unregister-sleep-signal): Mark as obsolete. + +2026-05-09 Morgan Smith + + Move gnus-dbus.el to obsolete/gnus-dbus.el + + * lisp/gnus/gnus-dbus.el: Move from here... + * lisp/obsolete/gnus-dbus.el: ...to here. + +2026-05-09 Morgan Smith + + Gnus: Use new sleep library + + * etc/NEWS: Announce. + * lisp/gnus/gnus-start.el: Don't require gnus-dbus. + (gnus-sleep-handler): New function. + (gnus-close-on-sleep): New variable. + (gnus-1): Add `gnus-sleep-handler' to + `system-sleep-event-functions' when `gnus-close-on-sleep' is + non-nil. + * doc/misc/gnus.texi: Update documentation. + +2026-05-09 Eli Zaretskii + + Fix Rmail behavior wrt globalized minor modes + + Previously, "M-x rmail" would not call 'run-mode-hooks', which + didn't let globalized minor modes a chance to turn on themselves + in Rmail buffers. This modifies the way Rmail runs the various + hooks so as to abide by behavior required by Emacs 30 and later. + * lisp/mail/rmail.el (rmail-mode-2): Call 'run-mode-hooks'. + (rmail-mode): Call 'run-hooks', not 'run-mode-hooks'. Suggested + by Mark Lillibridge . (Bug#80879) + +2026-05-09 Eli Zaretskii + + Fix display images in the display margins + + * src/xdisp.c (handle_single_display_spec): Set the iterator face + to use 'margin' when displaying in the margins. (Bug#80693) + +2026-05-09 João Távora + + Eglot: fix eglot--sig-info with non-UTF-32 positionEncoding + + Github-reference: https://github.com/joaotavora/eglot/discussions/1588 + + When the server negotiates positionEncoding utf-8 or utf-16, + ParameterInformation.label vector offsets are byte/code-unit counts + into the signature label, not character counts. Using them raw caused + wrong highlights and crashes on Unicode-rich signatures. + + * lisp/progmodes/eglot.el (eglot--sig-info): Mostly rewrite. + (eglot-move-to-utf-8-linepos-function): Tweak docstring. + (eglot-move-to-utf-8-linepos, eglot-move-to-utf-16-linepos): Return + position moved to. + +2026-05-08 Alan Third + + [NS] Fix deprecated variable (bug#80985) + + * src/nsterm.h (NSLevelIndicatorStyleContinuousCapacity): Define in + macOS < 10.15. + +2026-05-08 Dmitry Gutov + + vc-switch-working-tree: Use project-current again + + * lisp/vc/vc.el (vc-switch-working-tree): Use project-current + instead of manually constructing VC project objects. + +2026-05-08 Stéphane Marks + + treesit-explore-mode usability improvements (bug#80935) + + Improve the usability of treesit-explore-mode. + + - Prompt for the primary parser first, if there is one, rather + than the first in the list reported by 'treesit-parser-list'. + Previously, in a multi-parser buffer like 'markdown-ts-mode', one + had to hunt for the primary parser. + + - Kill the tree buffer and its window if the source buffer is + killed or 'treesit-explore-mode'. Previously, when + 'treesit-explore-mode' is disabled in the source buffer, its + companion explorer tree buffer was left dangling and window + open (with an unrelated buffer). + + - Improve 'treesit--explorer-refresh-1' to recenter the window + around the selected nodes when the selected region in the source + buffer changes. Previously, one had to navigate manually to find + the corresponding highlighted node in the tree window which may + be far away from that the source buffer's region represents. + + - Disable 'treesit-explore-mode' in the source buffer if its + companion tree buffer is killed. Previously, + 'treesit-explore-mode' remained active in the source buffer in + an effectively unusable state. + + - Disable 'treesit-explore-mode' if the user quits + 'completing-read' in 'treesit-explorer-switch-parser' when + enabling the mode. Previously, 'treesit-explore-mode' was left + enabled after quit. + + - New command to switch back and forth between the source buffer + and tree buffer windows to make navigating more convenient. + Previously, in a multi-window frame, one had to navigate to/from + these two related windows in a more cumbersome way. + + - New command to quit 'treesit-explore-mode' and + 'treesit--explorer-tree-mode' and handle buffer and window + cleanup. + + * lisp/treesit.el (treesit--explorer-refresh-1): Recenter the + window, if amenable, to the node selected in the source buffer. + (treesit--explorer-kill-explorer-buffer): Remove function. + (treesit--explorer-generate-parser-alist): Prioritize the + primary parser, if there is one. + (treesit--explorer-tree-mode-cleanup): New defun. + (treesit-explore-quit): New command. + (treesit-explorer-tree-window): New defun. + (treesit-explorer-source-buffer-window): New defun. + (treesit-explore-mode-map): Revise key bindings. + (treesit--explorer-tree-mode-map): Revise key bindings. + (treesit--explorer-tree-mode): New keymap. + (treesit-explorer-switch-parser): Add a default to + completing-read. + (treesit-explore-mode): Guard completing read quit. Wire up the + new cleanup functions. + +2026-05-07 João Távora + + Fix 'vc-dir-resynch-file' again (bug#80967) + + This unbreak project-vc-dir for dirs under non-truename + hierarchies. + + The following commit presumably makes 'M-x vc-dir' usable again + for versioned directories inside non-truename hierarchies, + + commit e05fab5775c96f8f88eab8d75dea40253bfb78eb + Author: Stephen Berman + Date: Sat May 2 15:11:37 2026 +0200 + + Fix 'vc-dir-resynch-file' (bug#80803) + + * lisp/vc/vc-dir.el (vc-dir-resynch-file): Apply 'file-truename' + instead of 'expand-file-name' to FNAME argument to prevent + spurious display of symlinked files in *vc-dir* buffer. + + However the similar command 'M-x project-vc-dir' was broken and made + unusable in similar circumstances. + + This relatively simple fix addresses both situations touching only the + problematic 'vc-resynch-file' and one of its callees, + 'vc-dir-recompute-file-state', which now discerns clearly between the + short/familiar name to present in the list and the "fname" to use to + call into the backend to gather the VC state. Since this function is + also called from another context, where the requirements are less clear, + keeping current smenatics in that situation seemed prudent, so the new + behaviour is activate with a new optional parameter. + + * lisp/vc/vc-dir.el (vc-dir-resynch-file): Call + vc-dir-recompute-file-state with truename=t. + (vc-dir-recompute-file-state): Accept optional truename param. + 2026-05-07 Sean Whitton Cut the emacs-31 release branch @@ -64440,7 +65759,7 @@ This file records repository revisions from commit 1cda0967b4d3c815fc610794ad6a8fc2b913a3c5 (exclusive) to -commit 311f1fe2ba2a4d069715c992ba839645b55a9427 (inclusive). +commit 5e3e1a5bb23b5e7813a60c2b121b1393ff6ca86f (inclusive). See ChangeLog.4 for earlier changes. ;; Local Variables: diff --git a/etc/AUTHORS b/etc/AUTHORS index ab4abbfc62b..150f5ee6527 100644 --- a/etc/AUTHORS +++ b/etc/AUTHORS @@ -87,6 +87,8 @@ Agustín Martín: changed ispell.el flyspell.el fixit.texi Ahmed Khanzada: changed gtkutil.c battery.el frame.c frame.el gtkutil.h nsterm.m w32fns.c w32term.c w32term.h xsettings.c xsettings.h +Aidan Coyle: changed eww.el + Aidan Gauland: wrote em-tramp.el and changed eshell.texi em-term.el em-unix.el erc-match.el em-cmpl.el em-dirs.el em-ls.el em-script.el esh-proc.el eshell-tests.el @@ -157,7 +159,7 @@ Aleksey Kladov: changed eglot.el Alexander Adolf: wrote eudc-capf.el eudcb-ecomplete.el eudcb-macos-contacts.el eudcb-mailabbrev.el and changed eudc.texi message.el eudc-vars.el ecompleterc eudc-tests.el - eudc.el mailrc + eudc.el mailrc vc.el Alexander Becher: changed vc-annotate.el @@ -288,7 +290,7 @@ Amin Bandali: changed erc.el erc.texi erc-backend.el erc-button.el erc-compat.el erc-track.el erc-dcc.el erc-desktop-notifications.el erc-match.el erc-services.el erc-speedbar.el erc-status-sidebar.el erc-autoaway.el erc-fill.el erc-goodies.el erc-ibuffer.el erc-imenu.el - erc-join.el erc-lang.el erc-list.el erc-log.el and 13 other files + erc-join.el erc-lang.el erc-list.el erc-log.el and 15 other files Amos Bird: changed xfns.c @@ -309,7 +311,7 @@ and changed nsterm.m nsfns.m nsmenu.m nsterm.h font-lock.el nsimage.m Anders Waldenborg: changed emacsclient.c -Andrea Alberti: changed dispextern.h faces.el xdisp.c xfaces.c +Andrea Alberti: changed xdisp.c dispextern.h faces.el xfaces.c Andrea Corallo: wrote [native compilation of Emacs Lisp] comp-common.el comp-cstr-tests.el comp-cstr.el comp-run.el comp-tests.el comp.c @@ -583,7 +585,7 @@ and changed progmodes/python.el eglot.el isearch.el comint.el eldoc.el progmodes/compile.el project.el README.md bookmark.el dired.el dockerfile-ts-mode.el files.el font-lock.el glasses.el gnutls.el man.el message.el message.texi misc.texi modes.texi outline.el - and 16 other files + and 17 other files Aurélien Aptel: changed alloc.c emacs-module.h lisp.h Makefile configure.ac cus-face.el data.c dispextern.h display.texi dynlib.c @@ -1542,7 +1544,7 @@ David Ponce: wrote bovine/grammar.el cedet.el comp.el java-tags.el semantic/java.el semantic/wisent.el senator.el tree-widget.el wisent/grammar.el wisent/wisent.el and co-wrote util-modes.el -and changed subr-x.el wid-edit.el image.el w32menu.c w32term.c +and changed wid-edit.el subr-x.el image.el w32menu.c w32term.c cl-extra.el cl-types.el close.png close.xpm cus-edit.el empty.png empty.xpm end-guide.png end-guide.xpm files.el guide.png guide.xpm handle.png handle.xpm keyboard.c leaf.png and 36 other files @@ -1670,7 +1672,8 @@ Dionisio E Alonso: changed eglot.el Dirk Herrmann: co-wrote bibtex.el -Dirk-Jan C. Binnema: changed configure.ac org-agenda.el xwidget.c +Dirk-Jan C. Binnema: changed xwidget.c configure.ac org-agenda.el + process.c process.h Dirk Ullrich: changed ispell.el @@ -1809,9 +1812,9 @@ Eli Zaretskii: wrote [bidirectional display in xdisp.c] chartab-tests.el coding-tests.el etags-tests.el rxvt.el tty-colors.el and co-wrote help-tests.el and changed xdisp.c display.texi w32.c msdos.c simple.el w32fns.c - files.el fileio.c keyboard.c configure.ac emacs.c text.texi w32term.c - dispnew.c frames.texi files.texi w32proc.c xfaces.c process.c window.c - dispextern.h and 1451 other files + files.el fileio.c keyboard.c configure.ac emacs.c text.texi dispnew.c + w32term.c frames.texi files.texi w32proc.c xfaces.c process.c window.c + dispextern.h and 1453 other files Eliza Velasquez: changed server.el simple.el @@ -2093,8 +2096,8 @@ Filipp Gunbin: changed ldap.el compilation.txt progmodes/compile.el Filippo Argiolas: changed eglot.el eglot.texi c-ts-common.el -F. Jason Park: changed erc.el erc-tests.el erc-backend.el erc-common.el - erc-stamp.el erc-fill.el erc.texi erc-goodies.el erc-button.el +F. Jason Park: changed erc.el erc-tests.el erc-backend.el erc-stamp.el + erc-common.el erc-fill.el erc.texi erc-goodies.el erc-button.el erc-fill-tests.el erc-networks.el foonet.eld erc-compat.el erc-match.el erc-speedbar.el erc-dcc.el erc-scenarios-common.el erc-sasl.el erc-networks-tests.el erc-track.el erc-goodies-tests.el @@ -2648,6 +2651,8 @@ Iwamuro Motonori: changed gnus-kill.el Jaap-Henk Hoepman: changed mm-decode.el +Jacek Migacz: changed gnus-msg.el + Jacek Świerk: changed compilation.txt compile-tests.el progmodes/compile.el @@ -2849,9 +2854,9 @@ Jay Sachs: changed gnus-score.el gnus-win.el J.D. Smith: co-wrote idlw-help.el idlw-shell.el idlwave.el and changed idlw-rinfo.el comint.el idlwave.texi loaddefs-gen.el vc.el - bibtex.el byte-run.el cl-generic.el easy-mmode.el eglot.el files.texi - functions.texi hideshow.el inline.el loading.texi misc.texi mouse.el - os.texi pcase.el repeat.el shr.el and 9 other files + bibtex.el byte-run.el cl-generic.el configure.ac easy-mmode.el eglot.el + files.texi functions.texi hideshow.el inline.el loading.texi misc.texi + mouse.el os.texi pcase.el repeat.el and 10 other files Jean Abou Samra: changed scheme.el @@ -3054,11 +3059,11 @@ João P. L. De Carvalho: changed sh-script.el João Távora: wrote eglot-tests.el eglot.el elec-pair.el electric-tests.el flymake-cc.el jsonrpc-tests.el jsonrpc.el message-tests.el shorthands.el -and changed flymake.el icomplete.el EGLOT-NEWS README.md eldoc.el +and changed flymake.el EGLOT-NEWS icomplete.el README.md eldoc.el eglot.texi minibuffer.el flymake-proc.el flymake.texi elisp-mode.el flymake-tests.el flymake-elisp.el electric.el elisp-mode-tests.el lread.c text.texi Makefile flymake-ui.el progmodes/python.el project.el - xref.el and 74 other files + xref.el and 77 other files Jochen Hein: changed gnus-art.el @@ -3314,6 +3319,8 @@ Josh Huber: changed mml-sec.el mml.el message.el gnus-msg.el mml2015.el Joshua Datko: changed fortune.el +Joshua Murphy: changed newst-treeview.el + Joshua Varner: changed intro.texi Jostein Kjønigsen: changed csharp-mode.el typescript-ts-mode.el eglot.el @@ -3391,7 +3398,7 @@ Juri Linkov: wrote compose.el emoji.el files-x.el misearch.el and changed isearch.el simple.el replace.el info.el dired.el treesit.el minibuffer.el dired-aux.el window.el outline.el progmodes/grep.el subr.el diff-mode.el repeat.el vc.el mouse.el files.el image-mode.el - menu-bar.el project.el display.texi and 526 other files + menu-bar.el project.el display.texi and 528 other files Jussi Lahdenniemi: changed w32fns.c ms-w32.h msdos.texi w32.c w32.h w32console.c w32heap.c w32inevt.c w32term.h @@ -3877,9 +3884,9 @@ Lin Jian: changed Makefile.in subr.el Lin Sun: changed python-tests.el cedet/semantic.el ediff-util.el package.el progmodes/python.el autorevert-tests.el autorevert.el - bovine/make.el calc.el esh-mode.el eww.el find-func.el html.el - java-tags.el javascript.el lread.c ls-lisp-tests.el ls-lisp.el - master.el package-test-server.py package-tests.el and 5 other files + bovine/make.el calc.el esh-mode.el eww.el find-func.el hideshow.el + html.el java-tags.el javascript.el lread.c ls-lisp-tests.el ls-lisp.el + master.el package-test-server.py and 6 other files Lin Zhou: changed w32fns.c w32term.h @@ -3972,7 +3979,7 @@ Manuel Giraud: changed image-dired.el xdisp.c tmm.el calendar.el doc-view.el image.c vc.el ox-html.el bookmark.el diary-lib.el find-dired.el gnus.el image-dired-util.el keyboard.c longlines.el midnight.el ox-publish.el simple.el smtpmail.el buff-menu.el - cal-hebrew.el and 68 other files + cal-hebrew.el and 69 other files Manuel Gómez: changed speedbar.el @@ -4583,9 +4590,10 @@ Mohsin Kaleem: changed cus-face.el dispextern.h eglot.el term.c Mon Key: changed animate.el imap.el syntax.el -Morgan Smith: changed doc-view.el image-dired.el window.el battery.el - dbus.texi esh-var-tests.el esh-var.el eshell.texi gnus-group-tests.el - minibuffer-tests.el minibuffer.el url-vars.el vc-git.el +Morgan Smith: changed doc-view.el gnus-dbus.el image-dired.el window.el + battery.el dbus.texi esh-var-tests.el esh-var.el eshell.texi + gnus-group-tests.el gnus-start.el gnus.texi minibuffer-tests.el + minibuffer.el url-vars.el vc-git.el Morgan Willcock: changed tempo.el electric.el ert-font-lock.el imenu.el modes.texi progmodes/python.el smie.el speedbar-tests.el speedbar.el @@ -5140,7 +5148,7 @@ Philip Kaludercic: wrote epa-ks.el newcomers-presets-theme.el and co-wrote compat.el and changed package.el rcirc.el package.texi rcirc.texi vc.el sgml-mode.el vc-git.el project.el which-key.el package-autosuggest.eld - package-activate.el message.el startup.el subr.el custom.texi eglot.el + package-activate.el startup.el message.el subr.el custom.texi eglot.el simple.el bytecomp.el cus-edit.el custom.el help.el and 94 other files Philippe Altherr: changed sh-script.el sh-script-tests.el shell.sh @@ -5232,7 +5240,7 @@ Pip Cet: wrote image-circular-tests.el and changed pdumper.c comp.c lisp.h xdisp.c alloc.c xterm.c fns.c configure.ac emacs.c eval.c image.c comp.el frame.c print.c src/Makefile.in byte-opt.el conf_post.h data.c doc.c ftcrfont.c - gtkutil.c and 116 other files + gtkutil.c and 119 other files Platon Pronko: changed tramp.el @@ -5299,8 +5307,8 @@ Raffael Mancini: changed misc.el Raffael Stocker: changed w32.c w32console.c w32fns.c w32term.h w32xfns.c -Rahul Martim Juliato: changed markdown-ts-mode.el icomplete.el - markdown-ts-mode-x.el newst-backend.el +Rahul Martim Juliato: changed markdown-ts-mode.el markdown-ts-mode-x.el + icomplete.el newst-backend.el Raimon Grau: changed thingatpt.el calc-fin.el eww.el replace.el thingatpt-tests.el @@ -5430,11 +5438,11 @@ Richard Lawrence: wrote calendar-tests.el diary-icalendar.el icalendar-ast.el icalendar-macs.el icalendar-mode.el icalendar-parser.el icalendar-recur.el icalendar-shortdoc.el icalendar-utils.el -and changed calendar.el icalendar.el calendar.texi - diary-icalendar-tests.el icalendar-recur-tests.el diary-lib.el - icalendar-tests.el .gitattributes cal-dst.el cal-move.el cond-star.el - diary-icalendar-resources emacs.texi gnus-icalendar-tests.el - gnus-icalendar.el icalendar-ast-tests.el icalendar-parser-tests.el +and changed calendar.el diary-icalendar-tests.el icalendar-recur-tests.el + icalendar.el calendar.texi diary-lib.el gnus-icalendar.el + icalendar-parser-tests.el icalendar-tests.el .gitattributes cal-dst.el + cal-move.el cond-star.el diary-icalendar-resources emacs.texi + gnus-icalendar-tests.el icalendar-ast-tests.el import-legacy-function.ics import-legacy-vars.ics import-non-recurring-all-day.ics import-rrule-anniversary.ics and 8 other files @@ -5761,7 +5769,7 @@ and co-wrote vc-tests.el and changed vc.el vc-git.el vc-dispatcher.el vc-hg.el vc-dir.el diff-mode.el vc-hooks.el vc1-xtra.texi log-view.el maintaining.texi subr.el project.el log-edit.el files.texi server.el simple.el window.el - cond-star.el dired-aux.el keyboard.c vc/vc-bzr.el and 329 other files + cond-star.el dired-aux.el keyboard.c vc/vc-bzr.el and 333 other files Sebastian Fieber: changed gnus-art.el mm-decode.el mm-view.el @@ -6007,7 +6015,7 @@ and co-wrote font-lock.el gitmerge.el pcvs.el visual-wrap.el and changed subr.el simple.el cl-macs.el bytecomp.el files.el keyboard.c lisp.h vc.el eval.c xdisp.c alloc.c help-fns.el buffer.c sh-script.el package.el tex-mode.el progmodes/compile.el lread.c keymap.c window.c - easy-mmode.el and 1744 other files + easy-mmode.el and 1745 other files Stefano Facchini: changed gtkutil.c @@ -6035,9 +6043,9 @@ Stéphane Boucher: changed replace.el Stephane Marks: wrote savehist-tests.el system-sleep.el system-taskbar.el and changed frame.el frames.texi nsfns.m tab-bar.el bookmark.el frame.c - nsterm.m project.el recentf.el savehist.el subr.el vtable.el w32fns.c - display.texi ibuf-macs.el os.texi saveplace.el shell.el vtable-tests.el - androidfns.c ansi-osc.el and 32 other files + nsterm.m markdown-ts-mode.el project.el recentf.el savehist.el subr.el + vtable.el w32fns.c display.texi ibuf-macs.el os.texi saveplace.el + shell.el treesit.el vtable-tests.el and 32 other files Stephane Zermatten: changed term-tests.el term.el ansi-osc.el @@ -6330,6 +6338,8 @@ Thomas Link: wrote filesets.el Thomas Morgan: changed org-habit.el forms.el select.el +Thomas Mühlbacher: changed progmodes/compile.el + Thomas Neumann: co-wrote make-mode.el and changed makefile.el @@ -6929,8 +6939,8 @@ Your Name: changed configure.ac Yuan Fu: changed treesit.el treesit.c c-ts-mode.el parsing.texi treesit-tests.el progmodes/python.el modes.texi js.el c-ts-common.el typescript-ts-mode.el indent.erts treesit.h java-ts-mode.el - rust-ts-mode.el css-mode.el go-ts-mode.el sh-script.el configure.ac - csharp-mode.el treesit-admin.el cmake-ts-mode.el and 88 other files + rust-ts-mode.el css-mode.el go-ts-mode.el sh-script.el cmake-ts-mode.el + configure.ac csharp-mode.el treesit-admin.el and 89 other files Yuanle Song: changed rng-xsd.el @@ -6997,7 +7007,8 @@ Zhang Weize: wrote ob-plantuml.el Zhehao Lin: changed xfaces.c -Zhengyi Fu: changed bookmark.el executable.el +Zhengyi Fu: changed bookmark.el executable.el progmodes/grep.el + replace.el Zhiwei Chen: changed hideif.el