diff options
| author | Sean Whitton <spwhitton@spwhitton.name> | 2026-05-07 20:08:43 +0100 |
|---|---|---|
| committer | Sean Whitton <spwhitton@spwhitton.name> | 2026-05-07 20:08:43 +0100 |
| commit | 1ec79b48f3802b71b017399aef29b2dbdc5e7d2d (patch) | |
| tree | fc12d18b187c6139c2355056579b80631abd1f7e | |
| parent | 991f6100eb1fa9c78a723f48ea903971d7c44de9 (diff) | |
; Update exported ChangeLog files and etc/AUTHORS
There are still unfixed problems in *Authors Errors*.
* ChangeLog.3: Fix typos.
* ChangeLog.5: Export from VCS history.
* Makefile.in: Update PREFERRED_BRANCH.
* admin/authors.el (authors-aliases, authors-ignored-files)
(authors-valid-file-names, authors-renamed-files-alist): Add
some entries.
* etc/AUTHORS: Regenerate.
| -rw-r--r-- | ChangeLog.3 | 4 | ||||
| -rw-r--r-- | ChangeLog.5 | 63125 | ||||
| -rw-r--r-- | Makefile.in | 2 | ||||
| -rw-r--r-- | admin/authors.el | 60 | ||||
| -rw-r--r-- | etc/AUTHORS | 1424 |
5 files changed, 64028 insertions, 587 deletions
diff --git a/ChangeLog.3 b/ChangeLog.3 index 7d9ac034cdc..e34e7bfc6f4 100644 --- a/ChangeLog.3 +++ b/ChangeLog.3 @@ -3149,7 +3149,7 @@ Remove mention of removed `gnus-treat-play-sounds' variable from manual - * info/gnus.info: Remove `gnus-treat-play-sounds' from + * doc/misc/gnus.texi: Remove `gnus-treat-play-sounds' from manual. According to lisp/gnus/ChangeLog.3 this variable was removed in 2010 (bug#53192). @@ -46460,7 +46460,7 @@ * lisp/subr.el (ctl-x-map): Initialize inside the declaration. - * src/command.h (control_x_map): + * src/commands.h (control_x_map): * src/keymap.c (control_x_map): Delete variable. (syms_of_keymap): * src/keyboard.c (keys_of_keyboard): diff --git a/ChangeLog.5 b/ChangeLog.5 index 43806515e08..ff0d0aebc80 100644 --- a/ChangeLog.5 +++ b/ChangeLog.5 @@ -1,3 +1,63126 @@ +2026-05-07 Sean Whitton <spwhitton@spwhitton.name> + + Cut the emacs-31 release branch + + * README: + * configure.ac: + * exec/configure.ac: + * java/AndroidManifest.xml.in (Version-code): + * msdos/sed2v2.inp: + * nt/README.W32: Bump Emacs version to 31.0.60. + * lisp/cus-edit.el (customize-changed-options-previous-release): + Set last version to 30.2. + +2026-05-07 Zeke Dou <zeke@zekedou.live> (tiny change) + + Move ns_init_colors() after init_callproc() (bug#80752) + + 'data-directory' needs to be established in advance of 'ns_init_colors' + to ensure the file "etc/rgb.txt" is read. This was encountered on an + out-of-tree Nix build. + + * src/emacs.c (main): Move the 'ns_init_colors' after 'init_callproc'. + +2026-05-07 Jonas Bernoulli <jonas@bernoul.li> + + Update to Transient v0.13.3-10-g87d0ca08 + +2026-05-07 Eli Zaretskii <eliz@gnu.org> + + Fix infloop in redisplay due to continuation glyphs + + * src/xdisp.c (display_line): When inserting continuation glyphs, + account for the border glyph in non-rightmost windows on TTY + frames. (Bug#80975) + +2026-05-07 Sean Whitton <spwhitton@spwhitton.name> + + Unpreload package-activate-all + + See <https://debbugs.gnu.org/80079#49> for my reasoning. + + * lisp/emacs-lisp/package-activate.el (package-activate-all): + Unpreload. + +2026-05-07 Dmitry Gutov <dmitry@gutov.dev> + + [GTK3] Move the frame to position before showing + + * src/xterm.c (x_make_frame_visible): Move XMoveWindow call before + gtk_widget_show_all, so that the move happens before the frame + become visible (bug#80662). + +2026-05-07 Dmitry Gutov <dmitry@gutov.dev> + + [GTK3] Improve the resize -> hide -> show scenario + + * src/gtkutil.c (xg_frame_set_char_size) + (xg_frame_set_size_and_position): Call gtk_window_resize for + child frames too, to record _GtkWindowGeometryInfo#resize_width + and resize_height. They are later looked up by + gtk_widget_show_all in x_make_frame_visible (bug#80662). + Without this the widgets go back and forth between the + remembered and actual sizes after make-visible. + +2026-05-06 Michael Albinus <michael.albinus@gmx.de> + + Handle long environment variables in Tramp oricesses + + * lisp/net/tramp-sh.el (tramp-sh-handle-make-process): + Handle loooong environment variables. (Bug#80783) + + * test/lisp/net/tramp-tests.el (tramp-test33-environment-variables): + Adapt test. + +2026-05-06 Dmitry Gutov <dmitry@gutov.dev> + + Fix flicker of child frame right after make-frame-visible + + * src/xterm.c (x_make_frame_visible): Call SET_FRAME_GARBAGED + before making a child frame visible (bug#80943). + +2026-05-05 Stefan Monnier <monnier@iro.umontreal.ca> + + (help--symbol-completion-table): Try and fix bug#80873 + + * lisp/help-fns.el (help--symbol-completion-table): Don't let + `test-completion` pretend that `definition-prefixes` are + actually valid function names. + +2026-05-05 Juri Linkov <juri@linkov.net> + + Improve 'context-menu-send-to' (bug#79512) + + * lisp/mouse.el (context-menu-functions): Add missing + 'context-menu-send-to' to :type. + (context-menu-send-to): Get non-nil items to avoid + useless message "Nothing to send". + + * lisp/send-to.el (send-to-handlers): Change from + 'defvar-local' to 'defvar' to allow easier global configuration. + (send-to-supported-p): Check for non-nil handler. + +2026-05-05 Sean Whitton <spwhitton@spwhitton.name> + + vc-switch-working-tree: Don't find non-VC projects + + * lisp/vc/vc.el (project-current-directory-override): + Delete declaration. + (project-find-matching-buffer-function): Declare. + (vc-switch-working-tree): + Don't find non-VC projects (bug#80939). + +2026-05-05 Sean Whitton <spwhitton@spwhitton.name> + + vc-finish-logentry: Skip displaying async command buffer sometimes + + * lisp/vc/vc-dispatcher.el (vc-finish-logentry): Don't display + the async command buffer if vc-display-failed-async-commands is + non-nil. + +2026-05-05 Eshel Yaron <me@eshelyaron.com> + + elisp-mode: Cache 'help-echo' function results (bug#80948) + + This ensures we only compute the 'help-echo' string once per + symbol in a certain position. + + * lisp/progmodes/elisp-mode.el + (elisp--annotate-symbol-with-help-echo): Add caching for + when the symbol role's :help property is a function. + +2026-05-05 Andrea Alberti <a.alberti82@gmail.com> + + Introduce 'margin' face for window margin background + + A new basic face 'margin' is used for text displayed in the left and + right margin areas, i.e., the areas typically used by VCS and LSP + packages for per-line annotations. Its background defaults to the + frame default, preserving existing behavior for users who do not + customize it. + * etc/NEWS: Document the new 'margin' face. + * lisp/faces.el (margin): Add 'margin' face, inheriting from 'default'. + * src/dispextern.h (face_id): Add MARGIN_FACE_ID. + * src/xdisp.c (face_at_pos): Use 'margin' as the base face for + strings displayed in margin areas so that they inherit the gutter + background by default. + (extend_face_to_end_of_line): Compute 'margin_fill_face_id' from the + 'margin' face. Use while loops to explicitly fill all empty character + slots in both left and right margins for both GUI and TTY branches. + (display_line): Call 'extend_face_to_end_of_line' for beyond-EOB rows + when the window has margins. Also extend the existing condition for + text rows with empty margins to trigger when the 'margin' face + background differs from the frame default, not only when the default + face is remapped. + * src/xfaces.c (realize_basic_faces): Realize 'margin' as a basic + face to support face-remapping and efficient lookup. + (Bug#80693) + +2026-05-05 Augusto Stoffel <arstoffel@gmail.com> + + Accept stream type as 4th argument of X-Message-SMTP-Method header + + * lisp/gnus/message.el (message-multi-smtp-send-mail): Set + 'smtpmail-stream-type' if specificed in the header. + * doc/misc/message.texi (Mail Variables): Document that. + (Bug#80880) + +2026-05-05 Rahul Martim Juliato <rahul.juliato@gmail.com> + Stéphane Marks <shipmints@gmail.com> + + Improve 'markdown-ts-mode' + + Overhaul 'markdown-ts-mode' with comprehensive fontification, + code block handling, editing commands, fill-paragraph support, + inline image previews, a mode menu, and table editing. Add + 'markdown-ts-mode-x.el' with conversion/export and TOC support. + + * lisp/textmodes/markdown-ts-mode.el: Add Version, + Package-Requires, and Keywords header fields. Expand Commentary + with documentation for code block language modes, code block + commands, bidirectional text, and known tree-sitter grammar + bugs. + (require 'goto-addr, xref, icons): New requirements. + (markdown-ts): New customization group with :version and + :package-version tags. + (markdown-ts-hide-markup): Add :version and :package-version. + (markdown-ts-ellipsis): New option for folded heading ellipsis. + (markdown-ts-menu-bar-show): New option to toggle mode menu. + (markdown-ts-default-folding): New option for default fold + level. + (markdown-ts-inline-images): New option to display inline + images. + (markdown-ts-image-max-width): New option for image max width. + (markdown-ts-display-remote-inline-images): New option for + remote image handling. + (markdown-ts--resolve-display-value): New helper to resolve + display values using char-displayable-p. + (markdown-ts-checked-checkbox): New option for checked checkbox + display string or icon. + (markdown-ts-checked-checkbox-icon): New icons.el icon for the + checked variant. + (markdown-ts-unchecked-checkbox): New option for unchecked + checkbox display string or icon. + (markdown-ts-unchecked-checkbox-icon): New icons.el icon for the + unchecked variant. + (markdown-ts-thematic-break-character): New option for thematic + break display character. + (markdown-ts-hard-line-break-backslash): New option for the + glyph shown in place of a trailing-backslash hard line break + when markup is hidden. + (markdown-ts-hard-line-break-space): New option for the glyph + shown in place of a trailing-spaces hard line break when markup + is hidden. + (markdown-ts-code-block-in-context-mode-lighter): New option for + code block context mode lighter string. + (markdown-ts-inhibit-code-block-mode-warnings): New option to + inhibit code-block major-mode messages and warnings. + (markdown-ts-table-default-column-width): New option for default + table column width. + (markdown-ts-enable-table-mode): New option to enable table + mode. + (markdown-ts-table-auto-align): New option for triggers that + cause automatic table alignment. + (markdown-ts-table-align-features): New option for table align + features. + (markdown-ts-in-table-mode-lighter): New option for + markdown-ts-in-table-mode lighter string. + (markdown-ts-emphasis, markdown-ts-bold) + (markdown-ts-strikethrough, markdown-ts-link) + (markdown-ts-link-destination, markdown-ts-code-span) + (markdown-ts-code-block, markdown-ts-code-block-markup-hidden) + (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-latex) + (markdown-ts-table-header, markdown-ts-table-cell) + (markdown-ts-table-delimiter-cell, markdown-ts-task-unchecked) + (markdown-ts-task-checked): New faces. + (markdown-ts-hard-line-break-backslash) + (markdown-ts-hard-line-break-backslash-hidden) + (markdown-ts-hard-line-break-space) + (markdown-ts-hard-line-break-space-hidden): New faces for the + two hard-line-break variants, with distinct shown/hidden + appearances. + (markdown-ts-in-code-block): New face for when point is inside a + fenced code block. + (markdown-ts-table): New face for Markdown pipe table + background. + (markdown-ts-in-table): New face for markdown-ts-in-table-mode + when point is in a table. + (markdown-ts--set-up-inline): New variable for lightweight setup + in embedded inline markdown-ts-mode buffers used by code block + commands. + (markdown-ts-default-code-block-mode): New variable to define + default mode for anonymous code blocks. + (markdown-ts-fontify-code-blocks-natively): New option to + enable/disable native fontification of fenced code block + contents. + (markdown-ts-enable-code-block-context-mode): New option to + enable/disable code block context integration. + (markdown-ts-code-block-modes): New variable replacing + markdown-ts--code-block-language-map and + markdown-ts-code-block-source-mode-map with unified language to + mode mapping including heuristic lookup. + (markdown-ts-code-block-force-conventional-modes): New variable + listing tree-sitter modes whose fontification of code block + content should be harvested via a temporary buffer. + (markdown-ts-table-export-buffer): New constant for table export + output buffer name. + (markdown-ts--table-row-types, markdown-ts--table-cell-types) + (markdown-ts--table-delimiter-cell-types) + (markdown-ts--table-delimiter-cell-subtypes): New constants for + pipe table node type classification. + (markdown-ts--make-link-button): New function to create + clickable link buttons with mailto, browse-url, and find-file + dispatch. + (markdown-ts--fontify-link-destination): New fontifier that + hides link destinations when markup is hidden. + (markdown-ts--link-ref-cache, markdown-ts--link-ref-cache-tick) + (markdown-ts--link-ref-definitions) + (markdown-ts--resolve-link-ref): New link reference definition + cache with case-insensitive matching per CommonMark spec. + (markdown-ts--fontify-link-node): New fontifier for inline, + reference, shortcut, and collapsed links as clickable buttons. + (markdown-ts--fontify-autolink): New fontifier for URI and email + autolinks with angle bracket hiding. + (markdown-ts--fontify-link-ref-label) + (markdown-ts--fontify-link-ref-destination): New fontifiers for + link reference definitions. + (markdown-ts--slug-github-strip-re, markdown-ts--slug-github) + (markdown-ts--slug-pandoc, markdown-ts--explicit-id-re) + (markdown-ts--heading-text-and-id) + (markdown-ts--heading-id-cache) + (markdown-ts--heading-id-cache-tick) + (markdown-ts--build-heading-ids, markdown-ts--heading-ids) + (markdown-ts--follow-fragment): New fragment link support with + GitHub and Pandoc slug algorithms. + (markdown-ts--latex-block-valid-p) + (markdown-ts--fontify-latex-block): New LaTeX/math fontifier + with cross-paragraph validation. + (markdown-ts--fontify-backslash-escape): New fontifier that + hides backslash in escapes except inside LaTeX blocks. + (markdown-ts--decode-entity, markdown-ts--fontify-entity): New + HTML entity decoder and fontifier using org-entities and + sgml-char-names with display property for decoded values. + (markdown-ts--fontify-checkbox): New fontifier showing the + configured checkbox glyph when markup is hidden. + (markdown-ts--fontify-hard-line-break): New fontifier for + 'hard_line_break' nodes. + (markdown-ts--fontify-heading): New fontifier for ATX and Setext + headings. + (markdown-ts--fontify-thematic-break): New fontifier showing + horizontal line when markup is hidden. + (markdown-ts--fontify-code-block): New fontifier applying + background overlay to code blocks with language and mode + properties. + (markdown-ts-at-code-block-p) + (markdown-ts-code-block-language-at) + (markdown-ts-code-block-mode-at): New accessors for code block + overlay properties. + (markdown-ts--imenu-code-block-node-p): New helper for imenu + code block detection. + (markdown-ts--image-alone-on-line-p) + (markdown-ts--fontify-image): New inline image display with + standalone and inline positioning. + (markdown-ts--bare-url-regexp) + (markdown-ts--bare-email-uri-regexp) + (markdown-ts--fontify-bare-uri): New bare URL/email + fontification via jit-lock using goto-addr regexps. + (markdown-ts--treesit-settings): Rewrite with dedicated faces, + custom fontifiers, and new font-lock features for all inline and + block elements. Also add a new 'error' font-lock feature + highlighting tree-sitter ERROR nodes. + (markdown-ts--code-block-languages) + (markdown-ts--code-block-non-ts-modes): New buffer-local alists + for code block language tracking. + (markdown-ts--harvest-mode-treesit-configuration): Rename from + markdown-ts--harvest-treesit-configs with delay-mode-hooks. + (markdown-ts--configure-current-buffer): Rename from + markdown-ts--add-config-for-mode. + (markdown-ts--language-at-node): New helper extracting language + symbol from code_fence_content node. + (markdown-ts--non-ts-fontify-cache): New buffer-local hash table + caching fontification results for non-tree-sitter code blocks. + (markdown-ts--fontify-non-ts-collect-faces): New function + harvesting face properties from a mode in an indirect or + temporary buffer. + (markdown-ts--fontify-non-ts-code-block): New fontifier for + non-tree-sitter modes via temporary buffer font-lock. + (markdown-ts--code-block-language-mode): New function with + heuristic mode name probing. + (markdown-ts--code-block-ts-language): Rename from + markdown-ts--convert-code-block-language with support for non-ts + modes and recursive markdown handling. + (markdown-ts-code-block-commands) + (markdown-ts-code-block-thing-commands) + (markdown-ts-code-block-region-commands): New command lists for + code-block context execution. + (markdown-ts--enable-code-block-in-context-mode) + (markdown-ts--maybe-run-command-in-code-block) + (markdown-ts--code-block-xref-find-definitions) + (markdown-ts--run-command-in-code-block): New code block minor + mode with temp-buffer command dispatch. + (markdown-ts--code-block-newline): New command for newline + inside code blocks, dispatching to the block's mode. + (markdown-ts--range-settings): Update range configuration; + remove :range-fn treesit-range-fn-exclude-children. + (markdown-ts--remove-image-overlays) + (markdown-ts--outline-view-change): New helpers for image + overlay management during outline fold/unfold. + (markdown-ts--outline-invisible-p): New helper testing whether a + position is inside an outline-folded region. + (markdown-ts--host-ranges-notifier): New function pruning stale + code block overlays when the host parse tree changes. + (markdown-ts--barf-if-not-mode): New helper signaling a + user-error when the current buffer is not derived from + markdown-ts-mode. + (markdown-ts-code-block-in-context-mode): New minor mode enabled + when point is within a fenced code block, activating + markdown-ts-code-block-in-context-mode-map so eligible commands + dispatch to the block's major mode. + (markdown-ts--set-hide-markup): Clear image overlays when + toggling markup visibility. + (markdown-ts--set-inline-images) + (markdown-ts-toggle-inline-images): New functions for toggling + inline image display. + (markdown-ts--parser-heading-max-level): New constant. + (markdown-ts--heading-at-point, markdown-ts--heading-level) + (markdown-ts--section-at-point): New heading navigation helpers. + (markdown-ts-promote, markdown-ts-demote): New commands for + heading and list item promotion/demotion with region support. + (markdown-ts--promote-or-demote) + (markdown-ts--promote-or-demote-region): New heading level + adjustment functions. + (markdown-ts-move-subtree-up, markdown-ts-move-subtree-down): + New commands for moving sections and list items. + (markdown-ts--section-folded-p) + (markdown-ts--move-subtree-up-or-down): New subtree move with + folding state preservation. + (markdown-ts-toggle-checkbox): New command to toggle task list + checkboxes. + (markdown-ts--list-item-at-point): New helper with block quote + marker handling. + (markdown-ts--list-marker-width, markdown-ts--list-item-region) + (markdown-ts--list-ordered-item-p): New list item helpers. + (markdown-ts--list-promote-or-demote): New function with ordered + list nesting guard. + (markdown-ts--list-node-bol, markdown-ts--list-move): New list + item movement functions. + (markdown-ts-renumber-list): New command for sequential list + renumbering with prefix argument support. + (markdown-ts--list-item-new-marker) + (markdown-ts--new-marker-for-line): New marker string generators + for list item insertion. + (markdown-ts--line-block-quote-depth): New helper counting block + quote depth. + (markdown-ts-newline): New RET command for context-aware + newline. + (markdown-ts-insert-list-item): New M-RET command that creates a + new list item. + (markdown-ts--fill-unfillable-block-query): New tree-sitter + query for unfillable blocks. + (markdown-ts--list-item-text-column): New helper for list item + text alignment. + (markdown-ts--fill-list-item): New function filling within list + items without merging adjacent items. + (markdown-ts--adaptive-fill): New adaptive fill function for + list item continuation. + (markdown-ts--fill-forward-paragraph): New paragraph motion + respecting list items and unfillable blocks. + (markdown-ts-fill-paragraph): New fill-paragraph-function with + cond* dispatch for lists, block quotes, HTML comments, and + unfillable blocks. + (markdown-ts--fill-html-comment): New HTML comment filler with + continuation alignment. + (markdown-ts--block-quote-prefix): New helper preserving + existing block quote marker style. + (markdown-ts--fill-block-quote): New block quote filler with + list item text column alignment. + (markdown-ts-emphasis-alist): New alist of emphasis markers. + (markdown-ts--emphasis-node-at-point): New tree-sitter based + emphasis detection. + (markdown-ts-remove-emphasis): New command removing emphasis at + point or region. + (markdown-ts-emphasize): New interactive emphasis insertion with + region wrapping and word-at-point support. + (markdown-ts-insert-structure): New command for inserting code + blocks, block quotes, and dividers. + (markdown-ts--insert-code-block): New function with language + completion from known modes. + (markdown-ts--insert-block-quote): New function with region + wrapping. + (markdown-ts--insert-divider): New function for horizontal + rules. + (markdown-ts--apply-ellipsis): New function applying custom + ellipsis via display table. + (markdown-ts--set-up): Rename from markdown-ts-setup. + (markdown-ts-outline-cycle): New TAB command cycling outline + visibility on headings. + (markdown-ts-mode-map): New keymap for code block navigation, + bindings for heading navigation, structure editing, emphasis, + and list operations. + (markdown-ts-code-block-in-context-mode-map): New keymap for + code block context. + (markdown-ts-mode-menu): New menu bar with Show/Hide, Navigate + Headings, Edit Structure, and Editing sections. + (markdown-ts-mode): Add outline-minor-mode, ellipsis, folding, + fill-paragraph integration, code-block-context-mode hooks, + comment settings, and outline-view-change-hook. Use + markdown-ts-mode directly in auto-mode-alist instead of + markdown-ts-mode-maybe. + (markdown-ts-mode-install-parsers): New command for installing + required and optional tree-sitter language grammars. + (markdown-ts-code-block-context-mode): New minor mode for code + block context. + (markdown-ts--find-code-block-delimiter) + (markdown-ts--find-next-code-block-delimiter): New helpers for + locating fenced code block delimiter nodes. + (markdown-ts-move-to-next-code-block) + (markdown-ts-move-to-previous-code-block): New commands for + navigating between fenced code blocks. + (markdown-ts--table-abutting-pos, markdown-ts--table-node-cell) + (markdown-ts--table-node-row, markdown-ts--table-parse-error-p): + New pipe table node helpers. + (markdown-ts-at-table-p): New predicate returning non-nil when + point is at or within a pipe table. + (markdown-ts--enable-in-table-mode): New helper enabling + markdown-ts-in-table-mode from post-command-hook. + (markdown-ts--table-body-row-near-pos): New helper locating the + nearest body row to a position. + (markdown-ts--table-compute-node-column) + (markdown-ts-table--goto-column): New helpers for column-based + table navigation. + (markdown-ts--table-aligners, markdown-ts--table-make-aligner) + (markdown-ts--table-align-cell): New table cell alignment + helpers. + (markdown-ts-table-insert-table): New command to insert a pipe + table with configurable rows and columns. + (markdown-ts-table-delete-table): New command to delete the pipe + table at point. + (markdown-ts-table-previous-row, markdown-ts-table-next-row) + (markdown-ts-table-previous-cell, markdown-ts-table-next-cell): + New commands for navigating table rows and cells. + (markdown-ts-table-insert-row-below) + (markdown-ts-table-insert-row-above) + (markdown-ts-table-clone-row-below) + (markdown-ts-table-clone-row-above) + (markdown-ts-table-insert-row): New commands for inserting and + cloning table rows. + (markdown-ts-table-delete-row, markdown-ts-table-move-row-up) + (markdown-ts-table-move-row-down, markdown-ts-table-move-row): + New commands for deleting and moving table rows. + (markdown-ts-table-insert-column-left) + (markdown-ts-table-insert-column-right) + (markdown-ts-table-clone-column-left) + (markdown-ts-table-clone-column-right) + (markdown-ts-table-insert-column): New commands for inserting + and cloning table columns. + (markdown-ts-table-delete-column) + (markdown-ts-table-move-column-left) + (markdown-ts-table-move-column-right) + (markdown-ts-table-move-column): New commands for deleting and + moving table columns. + (markdown-ts-table-align-column-left) + (markdown-ts-table-align-column-center) + (markdown-ts-table-align-column-right) + (markdown-ts-table-align-column): New commands for setting + column alignment. + (markdown-ts-table-align-table): New command to align all + columns in the table at point. + (markdown-ts-table-transpose-table): New command to transpose + the table at point. + (markdown-ts-table-convert-csv-region) + (markdown-ts-table-convert-tsv-region) + (markdown-ts-table-convert-region): New commands to convert + delimited text regions to pipe tables. + (markdown-ts-table-export-table-csv) + (markdown-ts-table-export-table-tsv) + (markdown-ts-table-export-table): New commands to export the + pipe table at point to CSV or TSV format. + (markdown-ts-in-table-mode-map): New keymap for + markdown-ts-in-table-mode. + (markdown-ts--code-block-in-context-mode-ov): New buffer-local + variable for code block context overlay. + (markdown-ts--code-block-in-context-mode-update-ov): New + function updating the code block context overlay. + (markdown-ts-in-table-mode): New minor mode enabled when point + is within a pipe table, activating markdown-ts-in-table-mode-map. + (markdown-ts--in-table-mode-ov) + (markdown-ts--in-table-mode-get-ov) + (markdown-ts--table-tick-update) + (markdown-ts--table-tick-stale-p) + (markdown-ts--in-table-mode-update-ov): New helpers supporting + markdown-ts-in-table-mode overlay management. + (markdown-ts-table-mode): New minor mode providing table editing + commands and auto-alignment. + (markdown-ts-mode-maybe): Remove; auto-mode-alist now uses + markdown-ts-mode directly. + Auto-mode-alist: Add .markdown and .mdx extensions. + + * lisp/textmodes/markdown-ts-mode-x.el: New file providing extra + features for markdown-ts-mode. + (markdown-ts-commonmark-spec-url, markdown-ts-gfm-spec-url): New + constants for CommonMark and GFM specification URLs. + (markdown-ts-browse-commonmark-spec) + (markdown-ts-browse-gfm-spec): New commands to browse the + CommonMark and GFM specifications. + (markdown-ts-convert): New customization group for Markdown + conversion/export features. + (markdown-ts-default-converter): New option to set the default + format and converter for Markdown export. + (markdown-ts-convert-display-function): New option specifying + the function used to display converted output. + (markdown-ts-converters): New variable listing format/converter + configurations for pandoc, cmark, cmark-gfm, markdown, and + markdown.pl. + (markdown-ts-convert-file, markdown-ts-convert): New commands to + convert Markdown buffers or files to HTML, PDF, and other + formats via external converters. + (markdown-ts-toc): New customization group for table of contents + features. + (markdown-ts-toc-generate-warn-if-none): New option controlling + behavior when no TOC is found during generation. + (markdown-ts-toc-update-before-save-mode-lighter): New option + for the before-save TOC update minor mode lighter string. + (markdown-ts-toc-slug-function): New option to select the slug + algorithm used for TOC heading anchors. + (markdown-ts--toc-handles, markdown-ts--toc-handle-classes): New + variables defining TOC handle types and classes. + (markdown-ts--toc-expand-candidate-handles, markdown-ts--tocs) + (markdown-ts--tocs-sanity-check) + (markdown-ts--toc-collect-candidates) + (markdown-ts--toc-list-item-depth) + (markdown-ts--toc-atx_header-normalize) + (markdown-ts--toc-text-normalizers) + (markdown-ts--toc-text-normalize): New internal helpers for TOC + parsing and text normalization. + (markdown-ts-toc-update-before-save-mode): New minor mode that + regenerates tables of contents before saving. + (markdown-ts-toc-clear-and-remove, markdown-ts-toc-clear): New + commands to remove or clear TOC bodies. + (markdown-ts-toc-insert-template): New command to insert a TOC + template at point. + (markdown-ts-toc-generate): New command to generate tables of + contents in the current buffer. + + Includes fixes for: (bug#80613) (bug#80625) (bug#80690) + +2026-05-05 Stefan Monnier <monnier@iro.umontreal.ca> + + nadvice.el: Make it easier to find how to change an interactive-form + + * lisp/emacs-lisp/nadvice.el (advice--how-alist): Add ':interactive-only'. + * doc/lispref/functions.texi (Advice Combinators): Document it. + (Core Advising Primitives): Use it. + +2026-05-05 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/emacs-lisp/lisp-mode.el (lisp-fdefs): Avoid obsolete "face vars" + +2026-05-04 Stefan Monnier <monnier@iro.umontreal.ca> + + keyboard.c: Allow SIGINT to `quit` in batch mode, instead of exit + + In terminal sessions, SIGINT is turned into a `quit` ELisp signal, + but in batch it has traditionally killed Emacs. It can be very + useful to cause a `quit` from outside the process when running + in batch (e.g. for "batch" sessions that provide a REPL via stdin/out), + so add a new var 'kill-emacs-on-sigint' to control that behavior. + (bug#80942) + + * src/keyboard.c (handle_interrupt_signal): Obey `kill_emacs_on_sigint`. + (init_keyboard): Use `deliver_interrupt_signal` for SIGINT also for + batch sessions. + (syms_of_keyboard): New variable `kill_emacs_on_sigint`. + + * test/src/keyboard-tests.el (keyboard-sigint-to-quit): New test. + + * doc/emacs/cmdargs.texi (Initial Options): Mention the effect of + `kill-emacs-on-sigint` in batch mode. + +2026-05-04 Michael Albinus <michael.albinus@gmx.de> + + Adaot tramp-tests.el + + * test/lisp/net/tramp-tests.el (ert-remote-temporary-file-directory): + Ensure that it is expanded. + +2026-05-04 Michael Albinus <michael.albinus@gmx.de> + + * admin/notes/documentation: Recommend not using "it's". + +2026-05-04 João Távora <joaotavora@gmail.com> + + Jsonrpc: add new tests using Python subprocesses + + Most of these tests are for the scontrol/"anxious continuation" + mechanism (bug#80623) + + The new ERT tests use Python subprocesses via stdin/stdout pipe as + JSONRPC endpoints. A shared framing library lives in + jsonrpc-resources/common.py. + + * test/lisp/jsonrpc-tests.el (jsonrpc--test-dir): New constant. + (jsonrpc--with-python-fixture): New macro. + (scontrol-remote-during-sync-1) + (scontrol-remote-during-sync-2) + (scontrol-anxious-nested) + (scontrol-remote-error) + (shutdown-clean-after-notification): New tests. + + * test/lisp/jsonrpc-resources/common.py: New file. + + * test/lisp/jsonrpc-resources/server-remote-during-sync-1.py: New file. + + * test/lisp/jsonrpc-resources/server-remote-during-sync-2.py: New file. + + * test/lisp/jsonrpc-resources/server-anxious-nested.py: New file. + + * test/lisp/jsonrpc-resources/server-remote-error.py: New file. + + * test/lisp/jsonrpc-resources/server-harakiri.py: New file. + +2026-05-04 João Távora <joaotavora@gmail.com> + + Jsonrpc: rework sync request handling (bug#80623) + + When the remote endpoint is handling a local request 'LR' it can + sometimes make a remote sync request 'RR' as part of its handling. Some + endpoints (like Go's gopls) wait for Emacs's reply to 'RR' before + responding to 'LR'. Others (like Julia's JETLS) respond to 'LR' + immediately, and only then wait for Emacs's reply to 'RR'. Both + approaches are valid. However, in the latter case, the handling of 'RR' + (which could well be waiting for user input from the minibuffer to + complete) is vulnerable to 'throw' from process filters handling (which + is just what happens when the endpoints replies to 'LR'), so if that + happens it will unexpectedly be aborted when the reply to 'LR' comes in, + suprising the user and causing a spurious -32603 reply to be sent. + + To solve this problem, this commit first refactors the sync + request/anxious queue handling and replace plain integer keys of the + rebaptized "scontrol" alist with structured (:local ID) / (:remote ID) + pairs, using `equal' for comparisons. This is to introduce some + clarity/sanity into this somewhat hairy code. + + Then, the 'RR' situation is fixed: we push a (:remote ID) entry onto the + top of the 'jsonrpc-connection--control' stack and only then call + rdispatcher. Any 'LR' reply arriving during dispatch is deferred as an + "anxious" continuation rather than firing its `throw' immediately. When + rdispatcher is done, we call jsonrpc--continue at a safe point, this + will run any "anxious" continuations. + + * lisp/jsonrpc.el (jsonrpc-connection): Rename -sync-request-alist to + -scontrol; accessor from jsonrpc--sync-request-alist to + jsonrpc--scontrol; update docstring for new key structure. + + (jsonrpc-connection-receive): Update with-slots binding to scontrol. + Tighten anxious check to match (:local ID) keys with `equal'. In + remote-request branch, push (:remote ID) entry before rdispatcher and + call jsonrpc--continue after jsonrpc--reply. + + (jsonrpc-request): Pass (:local ID) to jsonrpc--continue. + + (jsonrpc--continue): Use jsonrpc--scontrol; change `=' to `equal' in + sanity check. + p + (jsonrpc--async-request-1): Push (:local ID) entry. + + (jsonrpc--log-event): Use jsonrpc--scontrol. + +2026-05-04 Dmitry Gutov <dmitry@gutov.dev> + + Re-add a call to clear_under_internal_border in clear_garbaged_frames + + * src/xdisp.c (clear_garbaged_frames): Re-add the call to + clear_under_internal_border, reverting that part of commit + a6a3b32208c5 as not essential to the fix (bug#80662). + +2026-05-03 Philip Kaludercic <philipk@posteo.net> + + Ensure package archives are loaded for 'package-isolate' + + * lisp/emacs-lisp/package.el (package-isolate): Use + 'package--archive-contents' instead of the actual variable, to + ensure that we load the archive contents if missing. This is + likely the case if 'package-isolate' is the first package + function invoked during a session. + +2026-05-03 Philip Kaludercic <philipk@posteo.net> + + Add for <picture> to 'html-tag-alist' and 'html-tag-help' + + * lisp/textmodes/sgml-mode.el (html-tag-alist): Add very basic skeleton. + (html-tag-help): Add description. + +2026-05-03 Philip Kaludercic <philipk@posteo.net> + + Add for <details> to 'html-tag-alist' and 'html-tag-help' + + * lisp/textmodes/sgml-mode.el (html-tag-alist): Add skeleton. + (html-tag-help): Add description. + +2026-05-03 Philip Kaludercic <philipk@posteo.net> + + Prevent indentation within whitespace sensitive HTML tags + + * lisp/textmodes/sgml-mode.el (sgml-whitespace-sensitive-tags): + Add new variable. + (sgml-calculate-indent): Check if in the context of a tag + specified by 'sgml-whitespace-sensitive-tags'. + (html-mode): Set 'sgml-whitespace-sensitive-tags' to not adjust + the indentation within <pre> and <textarea> tags. + +2026-05-03 Philip Kaludercic <philipk@posteo.net> + + Use 'read-shell-command' to read SGML validation command + + * lisp/textmodes/sgml-mode.el (sgml-validate): Update + interactive spec. + +2026-05-03 Philip Kaludercic <philipk@posteo.net> + + Raise an error if 'sgml-validate-command' is not configured + + * lisp/textmodes/sgml-mode.el (sgml-validate-command): If no + known program is installed, fall back to nil as the default + value instead of a warning message. + +2026-05-03 Philip Kaludercic <philipk@posteo.net> + + Implement 'sgml-name-8bit-mode' as a proper minor mode + + * lisp/textmodes/sgml-mode.el (sgml-name-8bit-mode): Merge + 'defcustom' and 'defun' into a 'define-minor-mode'. + +2026-05-03 Philip Kaludercic <philipk@posteo.net> + + Refine SGML offset user option types + + * lisp/textmodes/sgml-mode.el (sgml-basic-offset) + (sgml-attribute-offset): Allow natural numbers, not arbitrary + integers. + +2026-05-03 Philip Kaludercic <philipk@posteo.net> + + Allow setting 'sgml-xml-mode' buffer locally + + * lisp/textmodes/sgml-mode.el (sgml-xml-mode): Add :safe property. + +2026-05-03 Philip Kaludercic <philipk@posteo.net> + + Allow changing SGML "quick keys" after loading sgml-mode.el + + * lisp/textmodes/sgml-mode.el (sgml-quick-keys): Replace with + user option, that adjusts 'sgml-mode-map'. + (sgml-mode-map): Don't insert quick keys. + (html-quick-keys): Replace with user option, that adjusts + 'html-mode-map'. + (html-mode-map): Don't insert quick keys. + +2026-05-03 Stefan Monnier <monnier@iro.umontreal.ca> + + (package--builtin-alist): Don't use `defconst` since we later change it + + * lisp/emacs-lisp/package.el (package--builtin-alist): Use `defvar`. + +2026-05-03 Juri Linkov <juri@linkov.net> + + * lisp/treesit.el (treesit-outline-level): Add guard condition. + +2026-05-03 Manuel Giraud <manuel@ledu-giraud.fr> + + Gnus logo in server buffer's mode line (bug#80850) + + * lisp/gnus/gnus-srvr.el (gnus-server-mode): Initialize needed + format specifications and call 'gnus-set-mode-line' for the + server buffer. + * lisp/gnus/gnus-sum.el (gnus-set-mode-line): Handle when WHERE + is set to 'server. + * lisp/gnus/gnus.el (gnus-updated-mode-lines): Add server. + +2026-05-02 Eshel Yaron <me@eshelyaron.com> + + Remove 'completion-preview--is-calling' + + We decided to leave it out for now, see discussion at + https://yhetil.org/emacs/jwvqzntzvvg.fsf-monnier+emacs@gnu.org/ + This brings completion-preview.el back to how it were before + commit a24ff52a79b. + + * lisp/completion-preview.el (completion-preview--is-calling): + Delete. + (completion-preview--capf-wrapper): Adapt. + +2026-05-02 Stephen Berman <stephen.berman@gmx.net> + + 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. + +2026-05-02 Eshel Yaron <me@eshelyaron.com> + + Demote 'completion-preview-is-calling' + + See discussion at + https://yhetil.org/emacs/87pl3egzww.fsf@mail.eshelyaron.com/ + + * lisp/completion-preview.el (completion-preview-is-calling): + Rename to... + (completion-preview--is-calling): ...this. + (completion-preview--capf-wrapper): Update accordingly. + * etc/NEWS: Remove announcement. + +2026-05-02 João Távora <joaotavora@gmail.com> + + Eglot: find well behaved UTF char for code actions (bug#80326) + + * lisp/progmodes/eglot.el (eglot-code-action-indicator): No lighbulb, no + fancy lightning bolt, just use zigzags which seem to display well on + typical fonts and typically have a width of 1. + +2026-05-02 Sean Whitton <spwhitton@spwhitton.name> + + Project prompters always default to current project, if any + + * lisp/progmodes/project.el (project-prompter) + (project-prompt-project-dir, project-prompt-project-name): + Delete ALLOW-EMPTY parameter. Default to the current project if + there is one. + * lisp/vc/vc.el (project-root): Declare. + (vc--prompt-other-working-tree): Replace ALLOW-EMPTY parameter + with new ALLOW-CURRENT parameter. + (vc-working-tree-switch-project): Allow selecting the current + working tree, for symmetry with project-switch-project. + * etc/NEWS: Update. + +2026-05-02 Philip Kaludercic <philipk@posteo.net> + + Mark myself as maintainer of sgml-mode + + * admin/MAINTAINERS: Update my entry. + * lisp/textmodes/sgml-mode.el: Update "Maintainer" header. + +2026-05-02 Philip Kaludercic <philipk@posteo.net> + + Don't break line when inserting <code> tags + + * lisp/textmodes/sgml-mode.el (html-tag-alist): Remove '\n' from + the completion rules for "code" tag. (Bug#80771) + +2026-05-02 Philip Kaludercic <philipk@posteo.net> + + * etc/themes/newcomers-presets-theme.el: Fix checkdoc issue + +2026-05-02 Eli Zaretskii <eliz@gnu.org> + + * src/.gdbinit: Ignore SIGPIPE. (Bug#80911) + +2026-05-02 Paul Eggert <eggert@cs.ucla.edu> + + Work around GCC bug 125116 + + * configure.ac: When configured with --enable-gcc-warnings, + use the -Wno-analyzer-allocation-size option if available. + This works around a false positive bug in + GCC 16.0.1 20260321 (Red Hat 16.0.1-0) x86-64; see + <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125116>. + +2026-05-01 Jonas Bernoulli <jonas@bernoul.li> + + Update to Transient v0.13.2-10-gf7894ca4 + + Update to Transient v0.13.1-10-gc168d396 + +2026-05-01 Dmitry Gutov <dmitry@gutov.dev> + + Resize child frames with GTK3 immediately too + + * src/gtkutil.c (xg_frame_set_char_size): Resize child frame and + its GTK widget hierarchy immediately. Update the "desired" Cairo + surface dimensions. Skip waiting for events. (bug#80662) + Remove the unnecessary call to clear_under_internal_border. + +2026-05-01 Dmitry Gutov <dmitry@gutov.dev> + + Simplify the fullscreen adjustment in xg_frame_set_char_size + + * src/gtkutil.c (xg_frame_set_char_size): Simplify. Use the + fullscreen value check to alter the values of outer_width and + outer_height rather than have several larger branches (bug#80662). + +2026-05-01 Dmitry Gutov <dmitry@gutov.dev> + + Remove the effect of x_gtk_resize_child_frames=hide + + * src/gtkutil.c (xg_frame_set_char_size): Remove the effect of + x_gtk_resize_child_frames, effectively reverting that part of + c49d379f17bc (bug#80662). + + * src/pgtkfns.c (syms_of_pgtkfns): Remove defsyms Qhide and + Qresize_mode, never used with PGTK. + + * src/xfns.c (x-gtk-resize-child-frames): Update docstring. + +2026-05-01 Dmitry Gutov <dmitry@gutov.dev> + + Don't wait out the whole event timeout unnecessarily + + * src/xterm.c (x_wait_for_event): If f->wait_event_type has been + cleared (in handle_one_xevent), don't go into pselect wait. + + * src/androidterm.c (android_wait_for_event): Likewise. + +2026-05-01 Dmitry Gutov <dmitry@gutov.dev> + + Try to resize or resize-and-move child frames in one update + + This pertains to X11 toolkit builds. Other ports (including + PGTK) seem to have mostly atomic window updates already. + + * src/xterm.c (x_set_window_size_1): Resize the Xt widget eagerly, + so the next redraw is not clipped. Update the "desired" Cairo + surface dimensions. Skip waiting for next XEvent. Do all that + for child frames only. Update old comments (bug#80662). + (x_set_window_size_and_position_1): Same. Also clear the widget's + cached position coordinates (we don't keep them up to date). + (x_set_window_size, x_set_window_size_and_position): Skip + redrawing the border on child frames, it will happen during + redisplay anyway. + + * src/gtkutil.c (xg_frame_set_size_and_position): On child + frames, resize the GTK widget hierarchy immediately. Update the + "desired" Cairo surface dimensions. Skip waiting for events. + + * src/widget.c (EmacsFrameResize): + When resize should be a no-op, exit early (minor optimization). + (EmacsFrameExpose): Redraw the border on the last Expose event. + + * src/xdisp.c (clear_garbaged_frames): Don't redraw borders here. + + * src/xfns.c (x_window): Undo the previous change in bit_gravity + in the no-toolkit build. StaticGravity works the best for it + thanks to no nesting in window configuration. + +2026-05-01 Paul Eggert <eggert@cs.ucla.edu> + + Pacify GCC 16.0.1 -Wanalyzer-null-dereference in xdisp.c + + * src/xdisp.c (glyph_string_containing_background_width): + Although it’s not immediately obvious whether the GCC 16 warning + is valid, adding an eassume here shouldn’t hurt. + +2026-04-30 F. Jason Park <jp@neverwas.me> + + Only perform erc-log-insert-log-on-open setup once + + * etc/ERC-NEWS: Add entry for option `erc-log-insert-log-on-open'. + Mention deprecation of `erc-log-setup-logging'. + * lisp/erc/erc-log.el (erc-log-insert-log-on-open): Expand type from + boolean to choice of boolean, predicate, and new function item + `erc-log-new-target-buffer-p'. + (erc-log-mode, erc-log-enable, erc-log-disable): Replace + `erc-log-setup-logging' on `erc-connect-pre-hook' with + `erc-log--insert-log-on-open' at depth 80. Replace calls to + `erc-log-setup-logging' with ones to `erc-log--setup'. + (erc-log-new-target-buffer-p): New function. While the name could + perhaps do more to indicate that it's only useful when called from + `erc-open', that's the only place ERC typically sets up new target + buffers. + (erc-log-setup-logging): Deprecate and replace body with adapter that + calls `erc-log--setup' and `erc-log--insert-log-on-open'. + (erc-log--setup): New function whose body is mostly from the + "nondestructive" portion of `erc-log-setup-logging'. Instead of moving + the `erc-saved-last-position' marker to the old value, expect it not to + have been initialized by `erc-initialize-log-marker' because + `erc-connect-pre-hook' now runs after this code, which is now + incorporated more judiciously into the module's "enable body". + (erc-log--insert-log-on-open): New function whose body is mostly from + the "destructive" portion of the previous incarnation of + `erc-log-setup-logging'. Unlike the original, if option + `erc-log-insert-log-on-open' is a function, call it to decide whether to + insert a log file atop its buffer. Also, don't advance the marker + `erc-last-saved-position' to the prompt area, where it can get stuck and + prevent logs from being saved when `erc-log-insert-log-on-open' is + non-nil. Thanks to Libera user Lionyx for reporting the bug, which has + been around since at least ERC 5.4 and Emacs 28.1. + (erc-log-disable-logging): Remove `erc-save-buffer-in-logs' from + `write-file-functions' to undo its buffer-local addition in what is now + `erc--log-setup'. + * test/lisp/erc/erc-scenarios-log-options.el: New file. (Bug#79665) + +2026-04-30 F. Jason Park <jp@neverwas.me> + + Restore erc-last-saved-position from previous session + + * lisp/erc/erc-log.el (erc-log-setup-logging): Restore + `erc-last-saved-position' from previous session. By default, a + non-/QUIT disconnect does not write out any remaining buffer text to + logs, instead leaving it until the buffer or Emacs is killed. But if a + successful reconnect occurs beforehand, the uncommitted portion must be + seen to somehow. Before this change, it would be lost because the + function `erc-initialize-log-marker' remakes the marker at the prompt + instead of recovering the previous value as now done here. Moreover, + the traditional workaround of customizing `erc-log-write-after-insert' + and `erc-log-write-after-send' to t should not be required to prevent + gaps in any decent IRC client. + * test/lisp/erc/erc-scenarios-log.el (erc-scenarios-log--reconnect): New + function. + (erc-scenarios-log--reconnect/auto, erc-scenarios-log--reconnect/manual): + New tests. + ;; * test/lisp/erc/resources/join/reconnect/foonet-again.eld: Add QUIT. + +2026-04-30 F. Jason Park <jp@neverwas.me> + + Define variable alias for erc-completion-mode + + * lisp/erc/erc-pcomplete.el (erc-completion-mode): New alias for the + variable `erc-pcomplete-mode' to complement the function alias of the + corresponding minor-mode command. Given that user code operating on the + value of `erc-modules' needs to detect whether members are active, it + only makes sense to address this specially. Before this change, + applying `bound-and-true-p' to `erc-completion-mode' would always return + nil, even when the module was active. For normal aliases, that's indeed + expected because `define-erc-module' doesn't automatically define a mode + variable for a non-nil ALIAS argument. Although in the long term it + probably should, while also obsoleting the "new" alias simultaneously, + that would likely break some user code and doubtless complicate things + majorly for `pcomplete', the one in-tree outlier. The latter module + would then require changing either its preferred name, the one + advertised by `erc-modules' in its Custom definition, to `pcomplete' or + its primary name to `completion'. Both are quite churn-inducing. + +2026-04-30 Eshel Yaron <me@eshelyaron.com> + + New variable 'completion-preview-is-calling' + + * lisp/completion-preview.el (completion-preview-is-calling): + New variable. + (completion-preview--capf-wrapper): Bind it to t when calling + the CAPF. + * etc/NEWS: Announce it. + +2026-04-30 Michael Albinus <michael.albinus@gmx.de> + + Precise quoting of file names with a leading tilde + + * doc/emacs/files.texi (File Names, Quoted File Names): + Precise quoting of file names with a leading tilde. + +2026-04-30 Eli Zaretskii <eliz@gnu.org> + + Fix value of 'default-line-height' + + * lisp/simple.el (default-line-height): Fix use of buffer-local + value of 'line-spacing'. (Bug#80929) + +2026-04-30 Randy Taylor <dev@rjt.dev> + + Always compile w32image.c on MinGW (Bug#80924) + + This enables features unrelated to native image APIs, such as + 'w32-export-frame' and 'yank-media', which need to call GDI+ + functions. + * configure.ac (HAVE_W32) [!CYGWIN]: Always include w32image.o in + W32_OBJ. + * etc/NEWS: Drop 'yank-media' '--without-native-image-api' caveat. + * src/emacs.c (main): + * src/w32select.c (convert_dibv5_to_png): + * src/w32term.c (w32_draw_image_foreground): Replace + HAVE_NATIVE_IMAGE_API with WINDOWSNT. + * src/w32.c (term_ntproc): Remove redundant HAVE_NATIVE_IMAGE_API guard. + * src/w32fns.c (Fw32_export_frame) [!WINDOWSNT]: Return nil on Cygwin. + +2026-04-30 Stefan Monnier <monnier@iro.umontreal.ca> + + (seq-concatenate): Fix docstring (bug#80810) + + * lisp/emacs-lisp/seq.el (seq-concatenate): Remove confusing + `(fn TYPE SEQUENCE...)` which made `help-function-arglist` + return less informative results and wasn't even consistent with + the rest of the docstring. + + * lisp/emacs-lisp/shortdoc-doc.el (sequence): Revert last + change, since it's now redundant. + +2026-04-30 Sean Whitton <spwhitton@spwhitton.name> + + cl-lambda-list, cl-lambda-list1: Fix &key spec + + * lisp/emacs-lisp/cl-macs.el (cl-lambda-list, cl-lambda-list1): + Fix &key specification to support empty lists of keyword + arguments (bug#80878). Fix due to Thuna <thuna.cing@gmail.com>. + +2026-04-30 Timon Reinold <tirei+gn@agon.one> (tiny change) + + eww-handle-link: Split HTML rel on spaces + + * lisp/net/eww.el (eww-handle-link): The HTML rel attribute's + value is a space-separated set of keywords, so split it before + matching against known keywords (bug#80816). + +2026-04-30 Collin Funk <collin.funk1@gmail.com> + + Pacify -Wunused-but-set-variable from gcc 16 and clang 13 + + * src/coding.c: Remove file wide ignore pragma for + -Wunused-but-set-variable. + (detect_coding_XXX) <consumed_chars>: Mention that this variable might + need to be declared with the MAYBE_UNUSED attribute. + (detect_coding_utf_8, detect_coding_emacs_mule, detect_coding_iso_2022) + (encode_designation_at_bol, detect_coding_sjis, detect_coding_big5) + (detect_coding_ccl, detect_coding_charset) <consumed_chars>: Use the + MAYBE_UNUSED attribute. + +2026-04-30 Vladimir Kazanov <vekazanov@gmail.com> + + Add ERT coverage for read_key_sequence behaviour + + * test/src/keyboard-tests.el + (keyboard-tests--rks-fake-posn) + (keyboard-tests--rks-observe) + (keyboard-tests--rks-execute) + (keyboard-tests--rks-with-function-key-bindings) + (keyboard-tests--rks-with-event-kinds) + (keyboard-tests--rks-call-with-live-window-maps): Test helpers. + (keyboard-tests-rks-prefix-then-key) + (keyboard-tests-rks-unbound-returns-sequence) + (keyboard-tests-rks-bound-sequence-ends-read) + (keyboard-tests-rks-decode-fires-without-binding) + (keyboard-tests-rks-input-decode-map) + (keyboard-tests-rks-function-key-map) + (keyboard-tests-rks-function-key-map-on-undefined) + (keyboard-tests-rks-key-translation-before-function-key) + (keyboard-tests-rks-function-key-skipped-when-bound) + (keyboard-tests-rks-input-decode-after-function-key) + (keyboard-tests-rks-key-translation-overrides-bound-sequence) + (keyboard-tests-rks-upcase-fallback) + (keyboard-tests-rks-no-upcase-fallback) + (keyboard-tests-rks-dont-downcase-last) + (keyboard-tests-rks-shifted-function-key-fallback) + (keyboard-tests-rks-switch-frame-delayed) + (keyboard-tests-rks-unbound-down-mouse-dropped) + (keyboard-tests-rks-mode-line-fake-prefix) + (keyboard-tests-rks-mode-line-fake-prefix-continued) + (keyboard-tests-rks-clicked-buffer-switch) + (keyboard-tests-rks-help-char): Tests covering for read_key_sequence. + +2026-04-30 Yuan Fu <casouri@gmail.com> + + In tree-sitter, signal if predicate function causes reparse + + A reparse will make the TSTreeCursor or TSNode to possibly point + to freed memory (because the TSTree they point to is freed.) + + * src/treesit.c (treesit_pred_with_guard): New function. + (treesit_predicate_pred): + (treesit_eval_predicates): + (Ftreesit_query_capture): + (treesit_traverse_match_predicate): + (treesit_build_sparse_tree): Add guard that signals if buffer is + changed when calling predicate function. + (Qtreesit_buffer_changed): New symbol. + +2026-04-29 Stefan Monnier <monnier@iro.umontreal.ca> + + (loaddefs-generate--make-autoload): Fix autoload for `emoji-insert` + + To decide if a `defalias` will define a command, we need to look inside + the `lambda` and search for an interactive spec. Until now we assumed + `defalias`s argument would take the shape of `(function (lambda ...))`, + which failed miserably for `transient-define-prefix` which + macroexpands to `(defalias 'foo (lambda ...))` instead. + So make sure we macroexpand the arg to turn the `(lambda ...)` into + `(function (lambda ...))` before we try to dig into it. + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--make-autoload): + Macroexpand the `defalias` argument before checking if it's an + interactive function. + +2026-04-29 Daniel Colascione <dancol@dancol.org> + + Make TS query cache work, grow less + + We were using the wrong key when inserting entries into + treesit--query-cache, making the cache both ineffective and + liable to grow without bound. On very long sessions, the cache + could end up using hundreds. + + * lisp/treesit.el (treesit--compile-query-with-cache): Use + correct cache key. + +2026-04-29 Roi Martin <jroi.martin@gmail.com> + + Fix warning when building Calc manual + + These warnings are emitted at least by Texinfo 7.2. + * doc/misc/calc.texi (Introduction): Conditionally set prev node to + avoid warning. + (Interactive Tutorial): Update chapter title to match node name and + menu entry. + (Top): Add description to `Interactive Tutorial' menu entry. + (Bug#80923) + +2026-04-29 Sean Whitton <spwhitton@spwhitton.name> + + New VC commands for remote unintegrated changes + + * lisp/vc/vc.el (vc--outgoing-base, vc--outgoing-base-mergebase): + New FORCE-TOPIC parameter. + (vc--maybe-read-outgoing-base): New NO-DOUBLE parameter. + (vc-root-diff-remote-unintegrated, vc-diff-remote-unintegrated) + (vc-log-remote-unintegrated, vc-root-log-remote-unintegrated): + New commands (bug#80434). + * lisp/vc/vc-dir.el (vc-dir-mode-map): + * lisp/vc/vc-hooks.el (vc-prefix-map): Bind them. + * doc/emacs/vc1-xtra.texi (Unintegrated Changes): + * etc/NEWS: Document them. + +2026-04-29 Sean Whitton <spwhitton@spwhitton.name> + + New commands to report diffs of all local changes + + * lisp/vc/vc.el (vc-root-diff-outgoing-and-edited) + (vc-diff-outgoing-and-edited): New commands (bug#80434). + * lisp/vc/vc-dir.el (vc-dir-mode-map): + * lisp/vc/vc-hooks.el (vc-prefix-map): Bind them. + * doc/emacs/maintaining.texi (VC Change Log): + * etc/NEWS: Document them. + +2026-04-29 João Távora <joaotavora@gmail.com> + + In fido-vertical-mode, let C-s and C-r recover their original use + + Fido-mode is meant for ido-mode emulation, so it makes some + sense C-r and C-s moves forward and backward in the list as + ido-mode once did. The price to pay is losing easy access to + isearch-backward/forward in completions. In fido-vertical-mode, + this price is unreasonably high given C-p and C-n are the + natural bindings for moving about in the vertical list. + + * lisp/icomplete.el (icomplete-fido-mode-map): Disable C-s and C-r + in fido-vertical-mode. + +2026-04-28 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/emacs-lisp/crm.el (crm-complete-and-exit): Simplify docstring + +2026-04-28 Yuan Fu <casouri@gmail.com> + + Use treesit-language-available-p for language check (bug#80909) + + * lisp/treesit.el (treesit-ensure-installed): Use + treesit-language-available-p for checking if a language is + installed. treesit-ready-p also checks for buffer size, etc, so + it's not the right check. + +2026-04-28 Yuan Fu <casouri@gmail.com> + + Better heuristic in treesit-font-lock-fontify-region in multi-parser + + * lisp/treesit.el (treesit-font-lock-fontify-region): Use + primary parser. + +2026-04-27 Jonas Bernoulli <jonas@bernoul.li> + + Use plain autoload cookie with transient-define-prefix + + (emoji-search, emoji-list-select): Use plain autoload cookie with + transient-define-prefix + +2026-04-27 Jonas Bernoulli <jonas@bernoul.li> + + Set indent property for with-connection-local-variables + + * lisp/files-x.el (with-connection-local-variables): Set indent + property. + +2026-04-27 Jonas Bernoulli <jonas@bernoul.li> + + Fix defining a few faces as empty + + e72afa9dbf92f45 replaced nil, which is invalid as a face definition, + with ((t (:inherit default))), but that does not actually result in + an "empty" face, which doesn't set any attributes. Instead it doubles + down on all attributes set for the default face. Replace that with + ((t)), which accomplishes what appears to have been the intention. + + * lisp/net/shr.el (shr-h4, shr-h5, shr-h6): + * lisp/nxml/nxml-mode.el (nxml-text): + * lisp/progmodes/make-mode.el (makefile-shell): Use empty face + definition ((t)), instead of ((t (:inherit default))). + +2026-04-27 Jonas Bernoulli <jonas@bernoul.li> + + Call format-spec substitution functions in current buffer + + * lisp/format-spec.el (format-spec): Call format-spec substitution + functions in current buffer. I.e., in the same buffer in which + substitution expressions are evaluated. Previously functions were + instead called in the temporary buffer used to deal with FORMAT. + +2026-04-27 Stefan Monnier <monnier@iro.umontreal.ca> + + (completion--file-name-table): Improve completion of `/a/~b/c` + + The solution used is far from perfect, but hopefully it helps more + often than it hurts. And since it affects only completion, we hope + the cases where it hurts won't be too serious. (bug#32215) + + * lisp/minibuffer.el (completion--sifn-regardless-of-system-users): + New function. + (completion--file-name-table): Use it. + +2026-04-27 Eli Zaretskii <eliz@gnu.org> + + Fix vc-tests for SRC + + * lisp/vc/vc-src.el (vc-src-register): Support "registering" + directories in FILES. + (vc-src-rename-file): Fix implementation and support renaming + directories. + + * test/lisp/vc/vc-tests/vc-tests.el (vc-test--rename-file) + (vc-test-src-version-diff): Skip parts that don't work with SRC. + (Bug#80862) + +2026-04-27 Sean Whitton <spwhitton@spwhitton.name> + + Rename outstanding changes commands to "unintegrated changes" + + * doc/emacs/vc1-xtra.texi (Outstanding Changes): Rename node + from this ... + (Unintegrated Changes): ... to this (bug#80434). References + changed. + * etc/NEWS: Document the change. + * lisp/vc/vc-git.el (vc-git-topic-outgoing-base) + (vc-git-log-view-mode): + * lisp/vc/vc-hg.el (vc-hg-print-log, vc-hg-log-view-mode): + * lisp/vc/vc.el (vc-root-diff-outstanding, vc-diff-outstanding) + (vc-log-outstanding, vc-root-log-outstanding): + Rename from these ... + (vc-root-diff-unintegrated, vc-diff-unintegrated) + (vc-log-unintegrated, vc-root-log-unintegrated): + ... to these (bug#80434). All uses changed. + (vc-log-view-type): Rename 'log-outstanding' type to + 'log-unintegrated'. All uses changed. + +2026-04-27 Sean Whitton <spwhitton@spwhitton.name> + + VC Annotate for Mercurial repositories shows changeset hashes + + * lisp/vc/vc-hg.el (vc-hg-annotate-show-revision-numbers): New + option. + (vc-hg-annotate-command): If it's nil, show changeset hashes not + revision numbers by passing "-c" not "-n" to 'hg annotate'. + (vc-hg-annotate-re): Update. + * etc/NEWS: Document the change. + +2026-04-27 Chris Roberts <git@chobert.org> (tiny change) + + sqlite-close: no-op for already closed connections + + This behavior is more expected than throwing an error, + as passing NULL (closed db connection) to 'sqlite3_close' + is a "harmless no-op" according to the documentation. + * src/sqlite.c (sqlite-close): Ignore already closed connections. + (Bug#80908) + +2026-04-27 Philip Kaludercic <philipk@posteo.net> + + Add lexical-binding cookies to multi-file-0.2.3.tar + + * test/lisp/emacs-lisp/package-resources/multi-file-0.2.3.tar: + Update multi-file.el and multi-file-sub.el files. + +2026-04-27 Philip Kaludercic <philipk@posteo.net> + + Do not warn about 'lexical-binding' if buffer is not compiled + + * lisp/emacs-lisp/bytecomp.el (byte-compile-file): Check + 'no-byte-compile' before issuing a warning. This prevents + false-positives when running into .dir-locals.el or -pkg.el + files. (Bug#80352) + +2026-04-27 Philip Kaludercic <philipk@posteo.net> + + Do not regard selected packages as removable + + * lisp/emacs-lisp/package.el (package--removable-packages): + Handle the fact that 'package--dependencies' doesn't return the + package itself as a dependency, so we have to check + 'package-selected-packages' separately. Also fix the way we + check the return value of 'package--dependencies', keeping in + mind that the value is an alist. (Bug#80907) + +2026-04-27 Philip Kaludercic <philipk@posteo.net> + + Ensure that 'package--builtin-alist' can be populated + + This is a partial reversion of 931e04a34ba. + + * lisp/emacs-lisp/package.el (package--builtin-alist): Add a + function that loads 'finder-inf', which in turn will populate + 'package--builtins', if necessary, caching the result. + (package--upgradeable-packages, describe-package-1) + (package-menu--refresh, package--mapc, package-get-descriptor): + Use the function instead of the variable. + +2026-04-27 Jonas Bernoulli <jonas@bernoul.li> + + (transient--suspend-text-conversion-style): Avoid static-if + + safer version/platform conditional. + +2026-04-27 Eli Zaretskii <eliz@gnu.org> + + diff-kill-creations-deletions: Look for /dev/null on all platforms + + * lisp/vc/diff-mode.el (diff-kill-creations-deletions): Look for + /dev/null on platforms when null-device is something else. + +2026-04-27 Yuan Fu <casouri@gmail.com> + + Fix tree-sitter embedded parser range + + If a host parser has some ranges, and an embedded parser also + has some ranges, the final range used by the embedded parser + should be an intersection of the two. This patch adds this + logic. + + * lisp/treesit.el (treesit--range-verbose): New variable. + (treesit--intersect-ranges): + (treesit--set-embed-ranges): New function. + (treesit--update-ranges-non-local): + (treesit--update-ranges-local): Use the new functions. + * test/src/treesit-tests.el: + (treesit-intersect-ranges): New test. + +2026-04-27 Yuan Fu <casouri@gmail.com> + + Add treesit-query-with-fallback + + * lisp/treesit.el (treesit-font-lock-rules): Handle + treesit-query-with-fallback. + (treesit-query-with-fallback): New function. + * doc/lispref/modes.texi (Parser-based Font Lock): Mention + treesit-query-with-fallback. + +2026-04-27 Yuan Fu <casouri@gmail.com> + + Fix treesit-range-fn-exclude-children + + * lisp/treesit.el (treesit-range-fn-exclude-children): Exclude + 0-length ranges. + +2026-04-26 Stefan Monnier <monnier@iro.umontreal.ca> + + (register--get-method-type): Fix one more case (bug#80894) + + * lisp/register.el (register--get-method-type): Refine the cl-generic hack + yet a but further. + * test/lisp/register-tests.el (register--jumpable-p): Fix the test. + +2026-04-26 Aaron L. Zeng <azeng@janestreet.com> + + Support Elisp debugging and backtraces in code called by modules + + * src/lisp.h (handlertype) <CATCHER_ALL_DEBUGGABLE>: New enumeration + value. + * src/emacs-module.c (MODULE_HANDLE_NONLOCAL_EXIT): + * src/eval.c (Fthrow, signal_or_quit): Use it. + + * test/src/emacs-module-tests.el + (mod-test-non-local-exit-funcall-debug-on-error): New test. + + Bug#80714 + +2026-04-26 Kai Ma <justksqsf@gmail.com> + + New user option compilation-search-extra-path + + * lisp/progmodes/compile.el (compilation-search-extra-path): New + option (bug#80279). + (compilation-start): Use it. + (compilation-search-path): + * doc/emacs/building.texi: + * etc/NEWS: Document it, and also compilation-search-path. + +2026-04-26 Eli Zaretskii <eliz@gnu.org> + + Fix renaming files and directories under RCS + + * lisp/vc/vc-rcs.el (vc-rcs-register): Filter out directories from + FILES. + (vc-rcs-rename-file): Support OLD being a directory. + + * test/lisp/vc/vc-tests/vc-tests.el (vc-test--rename-file) + (vc-test--rename-directory): Re-enable these tests for RCS. + (vc-test--rename-directory): Disable 'yes-or-no-p' questions that + RCS asks when it needs to create the RCS/ subdirectory: this lets + the test run without user interaction. + +2026-04-26 Sean Whitton <spwhitton@spwhitton.name> + + vc-delete-file: Narrow binding of default-directory + + * lisp/vc/vc.el (vc-delete-file): In the delete-file branch, + narrow the binding of default-directory to cover only the call + into the backend. + Suggested by Aaron L. Zeng <azeng@janestreet.com> in bug#80875. + +2026-04-26 Sean Whitton <spwhitton@spwhitton.name> + + VC: Support deleting directories + + * lisp/vc/vc.el (delete-files): Specify that implementations of + this should handle deleting directories. + * lisp/vc/vc-git.el (vc-git-delete-files): + * lisp/vc/vc-hg.el (vc-hg-delete-files): + * lisp/vc/vc.el (vc-delete-file): Handle deleting directories. + +2026-04-25 Philip Kaludercic <philipk@posteo.net> + + Use 'package-get-descriptor' in 'package--query-desc' + + * lisp/emacs-lisp/package.el (package--query-desc): Replace + manual 'assoc' call. + +2026-04-25 Philip Kaludercic <philipk@posteo.net> + + Improve 'package-get-descriptor' performance + + * lisp/emacs-lisp/package.el (package-get-descriptor): Use + 'assq' to look up element in package alists instead of iterative + over them manually. This was initially not possible, since we + merged all alists into one, which would require using a consing + function like 'map-merge-with' to look up all package descriptor + objects we want to consider in a single 'assq' call. As we + ended up not merging lists, we can assume that there are no + duplicate keys in the alists, making the efficient 'assq' + viable. + +2026-04-25 Philip Kaludercic <philipk@posteo.net> + + Prevent force reloading of package archive contents + + * lisp/emacs-lisp/package.el (package--compatible-packages): + Drop 'package-read-all-archive-contents' call, as + 'package--build-compatibility-table' will load the archive + contents on demand via 'package--mapc' anyway. (Bug#80902) + +2026-04-25 Philip Kaludercic <philipk@posteo.net> + + Replace 'package--builtin-alist' function with constant + + * lisp/emacs-lisp/package.el (package--builtin-alist): + (package--upgradeable-packages, package--mapc) + (package-get-descriptor): + * lisp/emacs-lisp/package.el (package--builtin-alist): Replace + function with constant, as the result of the function is always + the same within an Emacs session, since the set of built-in + packages don't change during execution. + (package--upgradeable-packages, package--mapc) + (package-get-descriptor): Use variable instead of function. + (package-menu--refresh, describe-package-1): Lookup desc in + alist instead of calling 'package--from-builtin'. + + (Bug#80902) + +2026-04-25 Philip Kaludercic <philipk@posteo.net> + + Restore previous 'package-get-descriptor' signature + + * lisp/emacs-lisp/package.el (package-get-descriptor): Allow + SOURCES to not be specified for the sake of backwards + compatibility. + +2026-04-25 Philip Kaludercic <philipk@posteo.net> + + Adjust default value of 'user-lisp-ignored-directories' + + * lisp/startup.el (user-lisp-ignored-directories): Ignore all + directories that VC would also exclude. (Bug#80853) + +2026-04-25 Philip Kaludercic <philipk@posteo.net> + + Clarify how to customize 'user-lisp-ignored-directories' + + * lisp/startup.el (user-lisp-ignored-directories): Update docstring. + + (Bug#80853) + +2026-04-25 Yuan Fu <casouri@gmail.com> + + Make :range-fn in treesit-range-rules actually work + + * lisp/treesit.el (treesit--range-start): + (treesit--range-end): + (treesit--flatten-ranges): New helpers. + (treesit-query-range): + (treesit-query-range-by-language): Don't flatten the ranges + returned by each range-fn. + (treesit--update-ranges-non-local): + (treesit--update-ranges-local): Handle the case where the range + is a complicated ((START . END)...). + * test/src/treesit-tests.el (treesit-range-helper): New test. + +2026-04-25 Stefan Monnier <monnier@iro.umontreal.ca> + + register.el: Allow jumping to kmacros again (bug#80894) + + * lisp/register.el (register--get-method-type): Fix handling for + OClosure args. + * test/lisp/register-tests.el (register--jumpable-p): New test. + +2026-04-25 Stefan Monnier <monnier@iro.umontreal.ca> + + (Info-documentlanguage): Keep Info-related code in `info.el` + + * lisp/simple.el (Info-documentlanguage): Move from here... + * lisp/info.el (Info-documentlanguage): ...to here. + +2026-04-25 Eli Zaretskii <eliz@gnu.org> + + Fix line-truncation on horizontally-split TTY frames + + * src/term.c (append_glyph, append_composite_glyph) + (append_glyphless_glyph): Account for the right-border glyph + when computing the end glyph of TEXT_AREA. (Bug#80900) + +2026-04-25 Michael Albinus <michael.albinus@gmx.de> + + Some minor Tramp fixes + + * doc/misc/tramp.texi (Customizing Methods): Add comment. + + * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): + Comment out setting `command-line-max-length', it doesn't work reliably. + + * test/lisp/net/tramp-tests.el (tramp-test03-file-error) + (tramp-test26-file-name-completion-boundaries): Adapt tests. + +2026-04-24 Pip Cet <pipcet@protonmail.com> + + Don't modify kbd_fetch_ptr in x_delete_selection_requests (bug#80863) + + This code may be called from within the loop in process_special_events + which assumed kbd_fetch_ptr remains unchanged. This caused a buffer + underflow which resulted in the entire kbd buffer being replayed. + + * src/xterm.c (x_delete_selection_requests): Simply clear deleted + events rather than rotating the kbd buffer. + +2026-04-24 Martin Rudalics <rudalics@gmx.at> + + ;; Clarify doc on 'dedicated' 'display-buffer' action alist entry + + * doc/lispref/windows.texi (Buffer Display Action Alists): + Clarify that only new windows can be marked as dedicated via the + action alist entry. + +2026-04-23 Stefan Monnier <monnier@iro.umontreal.ca> + + (work-buffer--release): Fix bug#80813 + + * lisp/emacs-lisp/subr-x.el (work-buffer--release): Make sure the + buffer is not left read-only. Clarify potential limitations to + the cleanup performed, especially w.r.t indirect buffers. + Don't bother binding `deactivate-mark` since that variable is buffer-local + nowadays anyway. + +2026-04-23 Stefan Monnier <monnier@iro.umontreal.ca> + + (comint--fontify-input-fontify-region): Silence messages (bug#80870) + + `syntax-propertize` currently doesn't support propertizing only + parts of a buffer. Maybe we should improve it, maybe via + something like `font-lock-dont-widen` or the `syntax-ppss` support for + narrowing, but in the mean time, teach comint to avoid holes in + the propertization. + + * lisp/comint.el (comint--dummy-fontify-syntax): New function. + (comint--fontify-input-fontify-region): Use it to silence the + new "Cannot syntax-propertize" message in `syntax.el`. + Also, refine args to reflect the fact that it's an advice. + +2026-04-23 Sean Whitton <spwhitton@spwhitton.name> + + vc-hg-after-dir-status: Rewrite to handle current 'hg status' output + + * lisp/vc/vc-hg.el (vc-hg-after-dir-status): Rewrite to handle + renames where the "R" line comes arbitrarily later in the + output. + * test/lisp/vc/vc-hg-tests.el + (vc-hg-test--after-dir-status-expect): New function. + (vc-hg-after-dir-status): New test. + +2026-04-23 Lee Thompson <lee.p.thomp@gmail.com> + + Add language-environment and input methods for Syriac + + * lisp/leim/quail/syriac.el: New file + * lisp/language/misc-lang.el: ("Syriac"): New language environment. + ("Arabic"): Add comment explaining usage of `arabic-shape-gstring' + for Syriac as well as Arabic. + * etc/NEWS: Announce the new language environment and input methods. + * etc/HELLO: Add a Syriac greeting. + (Bug#80451) + +2026-04-23 Peter Oliver <git@mavit.org.uk> + + Document setrgbb, setrgbf, and Tc terminal capabilities + + * doc/misc/efaq.texi (Colors on a TTY): Mention the unofficial + setrgbb, setrgbf, and Tc terminal capabilities, and give an + example custom terminfo defintion using them. (Bug#70941) + +2026-04-23 Peter Oliver <git@mavit.org.uk> + + Simplify Tc/COLORTERM=truecolor escape sequence + + This should be more readable to most people, since C is + more widely familiar than the terminfo language. + * src/term.c (init_tty): Do the conversion from a single integer + 24-bit color value to three 8-bit RGB values up-front. + (Bug#70941) + +2026-04-23 Tim Ruffing <crypto@timruffing.de> + + Support setrgbb/setrgbf for setting 24-bit color + + * src/term.c (turn_on_face): Account for TF_rgb_separate. + (init_tty): Support setrgbf/setrrgbb and set TF_rgb_separate + accordingly. + * src/termchar.h: Update commentary. + (Bug#70941) + +2026-04-23 Peter Oliver <git@mavit.org.uk> + + Use expected escape sequence for terminfo Tc and COLORTERM=truecolor + + When the non-standard terminfo capability Tc is present, or the + environment variable COLORTERM is set to truecolor, use a + hard-coded escape sequence that addresses all colors directly by + their RGB values. + + Previously we used escape sequences cribbed from terminfo's + setaf/setab for direct color, that expect that we will only try to + use colors 000000 to 000007 for the first eight indexed colors. + This isn't something we currently handle. + + * doc/misc/efaq.texi (Colors on a TTY): Fix off-by-one error in list + of indexed colors for terminfo RGB terminals. + * src/term.c (init_tty): Don’t use any indexed colors with terminfo + Tc capability or COLORTERM=truecolor environment variable (bug#70941). + +2026-04-23 Stefan Monnier <monnier@iro.umontreal.ca> + + (loaddefs--defining-macros): Delete var + + Now that Transient-0.13.0 has been merged, we don't need to + treat its macros specially any more because they come with the + appropriate `autoload-macro` property. + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs--defining-macros): Delete var. + (loaddefs-generate--make-autoload): Delete corresponding code. + +2026-04-22 Jonas Bernoulli <jonas@bernoul.li> + + Update to Transient v0.13.0-10-g5b2ff26f + +2026-04-22 Roi Martin <jroi.martin@gmail.com> + + Test that ERT creates a list of executed tests from erts files + + * test/lisp/emacs-lisp/ert-resources/erts-file-test-list-fail.erts: + * test/lisp/emacs-lisp/ert-resources/erts-file-test-list.erts: New erts + files. + * test/lisp/emacs-lisp/ert-tests.el (ert-test-list-of-erts-file-tests): + New test. + +2026-04-22 Stefan Monnier <monnier@iro.umontreal.ca> + + (mail-citation-prefix-regexp): Fix excessive backtracking (bug#80808) + + * lisp/mail/sendmail.el (mail-citation-prefix-regexp): Simplify regexp + and fix docstring to reflect reality since commit 0b8ee42164cc4569. + +2026-04-22 João Távora <joaotavora@gmail.com> + + Eglot: add eglot--server-buffer-name and use it consistently + + * lisp/progmodes/eglot.el (eglot--server-buffer-name): New function. + + (eglot--connect): Rename events and stderr buffers after serverInfo + arrives to include the server's self-reported name. + + (eglot-show-workspace-configuration, eglot-describe-connection) + (eglot--define-hierarchy-command): Use eglot--server-buffer-name. + + (eglot--propose-changes-as-diff): Add SERVER argument; use + eglot--server-buffer-name. + + (eglot--apply-workspace-edit): Add SERVER argument; pass server to + eglot--propose-changes-as-diff. + + (eglot-handle-request workspace/applyEdit, eglot-execute) + (eglot-rename): Pass server to eglot--apply-workspace-edit. + +2026-04-22 João Távora <joaotavora@gmail.com> + + Eglot: add eglot--server-name helper + + * lisp/progmodes/eglot.el (eglot--server-name): New function. + (eglot--list-connections-entries, eglot-describe-connection): Use it. + +2026-04-21 Michael Albinus <michael.albinus@gmx.de> + + Improve files-tests.el for quoted file names + + * test/lisp/files-tests.el + (files-tests-file-name-non-special--temp-file-prefixes): New defconst. + (files-tests-file-name-non-special--subprocess) + (files-tests-file-name-non-special--buffers): Loop over it. + (files-tests--with-temp-non-special) + (files-tests--with-temp-non-special-and-file-name-handler): Simplify. + (files-tests-file-name-non-special-make-symbolic-link): + Pacify compiler warning. + +2026-04-21 Juri Linkov <juri@linkov.net> + + Rebind 'tab-bar-mouse-close-tab' from <down-mouse-2> to <mouse-2> + + * lisp/tab-bar.el (tab-bar-map): Unbind <mouse-2> from 'ignore'. + Bind 'tab-bar-mouse-close-tab' to <mouse-2> instead of <down-mouse-2> + (bug#80858). + +2026-04-21 Eli Zaretskii <eliz@gnu.org> + + Fix 'toggle-truncate-lines' when 'visual-line-mode' is ON + + * lisp/simple.el (toggle-truncate-lines): Force 'truncate-lines' + non-nil, even if visual-line-mode needs to be turned off. + (Bug#80741) + +2026-04-21 Leo C. Stein <leo.stein@gmail.com> + + Add missing Greek subscripts to TeX input method + + * lisp/leim/quail/latin-ltx.el: Add a regex to match Greek + subscripts. Currently there are only five in unicode: beta, gamma, + rho, phi, and chi. They can now be input with the TeX input method + as, e.g., _\beta . (Bug#80791) + +2026-04-21 Eli Zaretskii <eliz@gnu.org> + + Fix unsafe use of SDATA in 'display_tty_menu_separator' + + * src/xdisp.c (display_tty_menu_separator): Pass Lisp string to + display_string, not a pointer to its SDATA. This is safer + GC-wise. + +2026-04-21 Roi Martin <jroi.martin@gmail.com> + + Show executed tests from erts files via the ERT results buffer + + * lisp/emacs-lisp/ert.el: Add key binding. + (ert--erts-file-test-execution-observer): New variable. + (ert--signal-erts-file-test-execution): New function. + (ert-test-result): Add field. + (ert-run-test): Collect tests from erts files. + (ert-results-mode-menu): Add entry. + (ert--erts-file-test-name-button): New button type. + (ert--erts-file-test-name-button-action): New function. + (ert-results-pop-to-erts-file-tests-for-test-at-point): New function. + (ert-test--erts-test): Record execution of test from erts file. + * doc/misc/ert.texi (Running Tests Interactively): Update manual. + * etc/NEWS: Update NEWS. (Bug#80806) + +2026-04-21 João Távora <joaotavora@gmail.com> + + Eglot: handle visited file name changes (typically C-x C-w) + + When the user renames a buffer's file via set-visited-file-name, + notify the server with didClose (old URI) and didOpen (new URI). + The TextDocumentIdentifier cache still holds the old URI when + after-set-visited-file-name-hook fires, so didClose uses it + correctly; didOpen then clears and rebuilds it from the new name. + + * lisp/progmodes/eglot.el (eglot--managed-mode): Hook and unhook + eglot--after-set-visited-file-name-hook. + (eglot--after-set-visited-file-name-hook): New function. + +2026-04-21 João Távora <joaotavora@gmail.com> + + Eglot: use Unicode box-drawing chars in hierarchy buffers + + Use box-drawing characters for the tree guides in hierarchy + buffers when the display supports them. + + * lisp/progmodes/eglot.el (eglot--hierarchy-2): Rework. + +2026-04-21 Philip Kaludercic <philipk@posteo.net> + + Extend utility of 'package-get-descriptor' + + The general idea here is to make it easier to handle situations + where you might have a symbol designating a package name or a + 'package-desc' object, but you really want the latter. + + * lisp/emacs-lisp/package.el (package--get-deps): Remove + function superseded by 'package--dependencies'. + (package--builtin-alist, package--archive-contents): Add new + functions. + (package--removable-packages): Use 'package--dependencies'. + (package--dependencies): Check for circular dependencies. + (package-upgrade, package--upgradeable-packages) + (package--user-installed-p, package-reinstall, package-recompile) + (describe-package-1, package-desc-status, package--mapc) + (package-menu--find-upgrades): Use 'package-get-descriptor'. + (package-get-descriptor): Add optional arguments to allow for + different kinds of queries. + + * lisp/emacs-lisp/package-vc.el + (package-vc-install-selected-packages) + (package-vc--generate-description-file) + (package-vc-install-dependencies, package-vc--read-package-desc) + (package-vc-install, package-vc-checkout): Use + 'package-get-descriptor'. + +2026-04-20 João Távora <joaotavora@gmail.com> + + Eglot: unbreak diagnostics in symlinked projects + + Now that 'eglot-uri-to-path' tries to return + "project-root-familiar" paths, unresolving the absolute path + name, it's important to update 'eglot--find-buffer-visiting' to + consider the two alternative ways to refer to a file. IOW, this + was already a bug, but the latest changes to 'eglot-uri-to-path' + made it more evident. + + * lisp/progmodes/eglot.el (eglot--find-buffer-visiting): Also + consider buffer-file-name. + +2026-04-20 Martin Rudalics <rudalics@gmx.at> + + Fix control window setup in 'ediff-setup-windows-plain-compare' (Bug#80809) + + * lisp/vc/ediff-wind.el (ediff-setup-windows-plain-compare): Do + not call 'display-buffer-in-direction' directly (Bug#80809). + +2026-04-20 Roland Winkler <winkler@gnu.org> + + proced-format: Simplify last change + + * lisp/proced.el (proced-current-process): Rename from + proced-format-current-process. + (proced-format): Use it. Simplify. + +2026-04-20 Kyle Meyer <kyle@kyleam.com> + + Update to Org 9.8.3 + +2026-04-20 Yuan Fu <casouri@gmail.com> + + Make sure treesit-fill-reindent-defun handles nil defun (bug#80860) + + * lisp/treesit.el (treesit-fill-reindent-defun): Display error + when there's no defun at point. + +2026-04-20 Yuan Fu <casouri@gmail.com> + + * src/treesit.c (Ftreesit__linecol_at): Add treesit_check_position. + +2026-04-20 Yuan Fu <casouri@gmail.com> + + Fix tree-sitter variable name + + * lisp/treesit.el: + (treesit-languages-require-line-column-tracking): This is what + treesit.c uses. + * src/treesit.c: Fix comment typo. + +2026-04-19 Michael Albinus <michael.albinus@gmx.de> + + Some minor Tramp changes + + * lisp/net/tramp-sh.el (tramp-get-remote-arg-max): New defun. + (tramp-open-connection-setup-interactive-shell): Use it. + + * lisp/net/tramp.el (tramp-multi-hop-p-hook): New defvar. + (tramp-multi-hop-p): Use it. + (tramp-handle-make-process): Set TERM environment. + +2026-04-19 Paul Eggert <eggert@cs.ucla.edu> + + emacs server sending long-line simplification + + Now that emacsclient can receive long lines without problems, + don’t bother splitting long lines when sending to it. + * lisp/server.el (server-msg-size): Now obsolete. + (server-reply-print): Send qtext without trying to break it + into pieces (Bug#80807#49). + +2026-04-19 Paul Eggert <eggert@cs.ucla.edu> + + Pacify clang 21.1.8 + gdk-pixbuf 2.44 + + * src/pgtkfns.c (xg_set_icon_from_xpm_data): + * src/xfns.c (xg_set_icon_from_xpm_data): + Also pacify clang when --enable-gcc-warnings is used. + +2026-04-19 Stefan Monnier <monnier@iro.umontreal.ca> + + (js-jsx--detect-after-change): Fix test regression + + Commit 6942d508f0c made js-mode-regexp-syntax-bug-25529 fail, + because it changes the moment and place in which + `syntax-propertize` gets called, uncovering a bug where + `js-jsx--detect-after-change` narrows the buffer, then calls + `re-search-forward` which calls `syntax-propertize`, so we end + up doing `syntax-propertize` while narrowed which can fail in + all kinds of ways. + + * lisp/progmodes/js.el (js-jsx--detect-and-enable): Change optional arg + to BEG and END. + (js-jsx--detect-after-change): Use them to avoid narrowing. + + * lisp/emacs-lisp/syntax.el (syntax-propertize): Emit a message + when called narrowed and the narrowing starts later than the + nearest already propertized position. + +2026-04-18 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 8f535370b9e * src/image.c (svg_load_image): Fix off-by-one mistake (b... + fe90f2d87ec * test/infra/gitlab-ci.yml (default): User docker 28.5.2. + + # Conflicts: + # src/image.c + +2026-04-18 Philip Kaludercic <philipk@posteo.net> + + Suppress queries when installing package from file + + * lisp/emacs-lisp/package.el (package-install-file): Assume it + is OK to set the visited file name, since we are not actually + touching anything on disk, and prevent the modified flag from + preventing us to kill the temporary buffer. The flag is set by + tar-mode. + +2026-04-18 Philip Kaludercic <philipk@posteo.net> + + Use git-diff(1) in 'package-review-diff-command' if available + + * lisp/emacs-lisp/package.el (package--review-git-diff-command): + Add new constant to avoid duplicating the exact command as the + default value and in the type of the user option. + (package-review-diff-command): Use git-diff(1) if Git is + installed, and fall back to regular diff(1) otherwise. The + previous default value has been moved to the user option, as a + suggested alternative. + (package-review): Support the ability to use symbols, that get + replaced and expanded into the list of switches. + + (Bug#80684) + + Co-Authored-By: Daniel Mendler <mail@daniel-mendler.de> + +2026-04-18 Eli Zaretskii <eliz@gnu.org> + + * src/image.c (svg_load_image): Fix off-by-one mistake (bug#80851). + +2026-04-18 Yuan Fu <casouri@gmail.com> + + Fix c-ts-mode-set-style when STYLE is a function (bug#80777) + + * lisp/progmodes/c-ts-mode.el (c-ts-mode-set-style): Prepend the + language symbol in front of the styles. + +2026-04-18 Rahguzar <rahguzar@mailbox.org> + + proced-format: Use internal var for speed-up (bug#77775). + + * lisp/proced.el (proced-format-current-process): New variable. + * lisp/proced.el (proced-format-pid, proced-format): Use it. + +2026-04-18 Rahguzar <rahguzar@mailbox.org> + + proced-format: Use process-alist for standard attributes (bug#77775). + + * lisp/proced.el (proced-format): Use process-alist for standard + attributes. + +2026-04-17 Sean Whitton <spwhitton@spwhitton.name> + + vc-hg--checkin: Use vc-hg--active-bookmark-internal + + * lisp/vc/vc-hg.el (vc-hg--active-bookmark-internal): Make it + work when default-directory is not the repository root. + (vc-hg--checkin): Use vc-hg--active-bookmark-internal instead of + vc-hg--working-branch. + +2026-04-17 Stephen Berman <stephen.berman@gmx.net> + + Restrict Dired handling of newlines in file names + + * lisp/dired.el (dired--ls-accept-b-switch-p): New function. + (dired-internal-noselect): Use it in the condition on displaying + warning about filenames with newlines. + (dired--set-auto-toggle-b-switch): Use it to conditionalize + calling 'dired--toggle-b-switch'. + (dired-auto-toggle-b-switch, dired--toggle-b-switch): Improve doc + string. + + * test/lisp/dired-tests.el (dired-test-filename-with-newline-1) + (dired-test-filename-with-newline-2): Skip unless Dired uses an + 'ls' that supports the '-b' switch. + + * etc/NEWS: Adjust accordingly the announcements of the Dired + warning and the new user option for file names with newlines. + +2026-04-17 Aaron L. Zeng <azeng@janestreet.com> (tiny change) + + vc-hg--checkin: When committing a patch, advance active hg bookmark + + * lisp/vc/vc-hg.el (vc-hg--checkin): When committing a patch, + advance any active hg bookmark (bug#80848). + +2026-04-17 Michael Albinus <michael.albinus@gmx.de> + + Extend integration of external operations in Tramp + + * doc/misc/tramp.texi (Extension packages): Use another format + char in example. + (New operations): Document different argument types. Extend example. + + * lisp/net/tramp.el: Use consequently `eq', `assq', `memq'. + (tramp-file-name-for-operation-external): Extend docstring. + (tramp-file-name-for-operation): Make more use of + `tramp-file-name-for-operation-external'. + (tramp-add-external-operation): New optional argument `arg-type'. + + * test/lisp/net/tramp-tests.el (tramp--handle-test-operation): + Rename from `tramp--handler-for-test-operation'. + (tramp--handle-process-id) + (tramp--test-operation-file-name-for-operation): New defuns. + (tramp-test49-external-backend-function): Extend test. + +2026-04-17 Paul Eggert <eggert@cs.ucla.edu> + + Append newline to server -error commands + + Problem reported by Zhengyi Fu (bug#80844). + * lisp/server.el (server--process-filter-1, server-return-error) + (server-edit-abort): Append newline to -error commands, too. + Otherwise emacsclient has no reliable way to find the end of the + error command’s argument, except to wait for EOF which is + undesirable since the Emacs server keeps the socket open + for a while, waiting for emacsclient to exit. + +2026-04-17 Yuan Fu <casouri@gmail.com> + + Make sure range (1, 1) doesn't capture anything (bug#80798) + + * src/treesit.c (Ftreesit_query_capture): Return Qnil if + querying (1, 1). + +2026-04-17 Yuan Fu <casouri@gmail.com> + + Accept marker as position in treesit.c functions (bug#80830) + + * src/treesit.c (treesit_check_positive_integer): Remove. + (treesit_check_position): + (Ftreesit_node_first_child_for_pos): + (Ftreesit_node_descendant_for_range): + (Ftreesit_query_capture): + (Ftreesit__linecol_at): Use fix_position. + + * test/src/treesit-tests.el: + (treesit-query-marker-position): Test. + +2026-04-17 João Távora <joaotavora@gmail.com> + + Eglot: add M-x eglot-describe-connection + + Also add more bindings to M-x eglot-list-connections + + * lisp/progmodes/eglot.el (eglot-list-connections-mode-map): Add + bindings for e, w, RET. + (eglot-events-buffer-of-listed-connection) + (eglot-show-workspace-configuration-of-listed-connection) + (eglot-describe-listed-connection): New commands. + (eglot-describe-connection): New command. + + * doc/misc/eglot.texi: Document new keys and eglot-describe-connection. + + * etc/EGLOT-NEWS: Announce. + +2026-04-16 Sean Whitton <spwhitton@spwhitton.name> + + vc-file-tree-walk: Stop emitting messages + + * lisp/vc/vc.el (vc-file-tree-walk, vc-file-tree-walk-internal): + Stop emitting messages about traversing directories. + +2026-04-16 Sean Whitton <spwhitton@spwhitton.name> + + vc-file-tree-walk-internal: Use vc-registered + + * lisp/vc/vc.el (vc-file-tree-walk-internal): Use vc-registered + not vc-backend, for robustness. + +2026-04-16 Sean Whitton <spwhitton@spwhitton.name> + + vc-rename-file: Fix skipping calling into the backend + + * lisp/vc/vc.el (vc-rename-file): Replace broken attempted use + of vc-dir-status-files with walking OLD using vc-file-tree-walk. + * test/lisp/vc/vc-tests/vc-tests.el (vc-test--rename-directory): + Assert that the files are registered or not as appropriate. New + test case in which there are only registered files. + +2026-04-16 João Távora <joaotavora@gmail.com> + + Jsonrpc: simplify previous change + + * lisp/jsonrpc.el (jsonrpc--save-excursion-maybe): Delete. + (jsonrpc--forwarding-buffer, jsonrpc--log-event): Use simple + save-excursion. + +2026-04-16 João Távora <joaotavora@gmail.com> + + Eglot: adjust previous change to eglot-uri-to-path + + * lisp/progmodes/eglot.el (eglot-uri-to-path): Tweak. + +2026-04-16 Juri Linkov <juri@linkov.net> + + Update 'crm-complete-and-exit' from 'minibuffer-complete-and-exit' + + * lisp/emacs-lisp/crm.el (crm-complete-and-exit): + Add new arg 'no-exit'. Call 'minibuffer-choose-completion' + when 'completion--selected-candidate' returns non-nil (bug#80821). + +2026-04-16 Stefan Monnier <monnier@iro.umontreal.ca> + + src/syntax.c (update_syntax_table): Remove redundant assignment + +2026-04-16 Vincent Belaïche <vincentb1@users.sourceforge.net> + + Announce ert-play-keys in etc/NEWS. + +2026-04-16 Vincent Belaïche <vincentb1@users.sourceforge.net> + + ert-play-keys function + + * lisp/emacs-lisp/ert-x.el (ert-play-keys): new defun. + + * test/lisp/simple-tests.el (undo-test-kill-c-a-then-undo) + (undo-test-point-after-forward-kill): Use new function + `ert-play-keys' and `(ert-with-test-buffer (:selected t) ...)' + rather (with-temp-buffer (switch-to-buffer (current-buffer) ...)'. + + * test/lisp/erc/erc-scenarios-spelling.el + (erc-scenarios-spelling--auto-correct): Use new function + `ert-play-keys' and `(ert-with-buffer-selected ...)' rather than + `execute-kbd-macro' and `(with-current-buffer + ... (set-window-buffer nil (current-buffer) ...)'. + + * doc/misc/ert.texi (Helper Functions): Document ert-play-keys, + and differences between ert-simulate-command, ert-simulate-keys + & ert-play-keys. + + * test/lisp/emacs-lisp/ert-x-tests.el + (ert-x-tests-play-keys) + (ert-x-tests-simulate-command, ert-x-tests-simulate-keys): New + tests. + +2026-04-16 João Távora <joaotavora@gmail.com> + + Eglot: add shutdown/reconnect bindings to eglot-list-connections buffer + + * lisp/progmodes/eglot.el (eglot-list-connections-mode-map): New + defvar. + + * lisp/progmodes/eglot.el (eglot--list-connections-entries): New + function, extracted from eglot-list-connections. + + * lisp/progmodes/eglot.el (eglot--list-connections-cmd): New macro. + + * lisp/progmodes/eglot.el (eglot-shutdown-listed-connection) + (eglot-reconnect-listed-connection): New commands. + + * lisp/progmodes/eglot.el (eglot-list-connections): Use + eglot--list-connections-entries. + + * doc/misc/eglot.texi: Document eglot-list-connections and new keys. + + * etc/EGLOT-NEWS: Announce. + +2026-04-16 João Távora <joaotavora@gmail.com> + + Jsonrpc: don't suddenly jump point in events buffer + + * lisp/jsonrpc.el (jsonrpc--save-excursion-maybe): New macro. + + * lisp/jsonrpc.el (jsonrpc--log-event, jsonrpc--forwarding-buffer): + Use it. + +2026-04-16 João Távora <joaotavora@gmail.com> + + Eglot: un-canonicalize server URIs to project's root + + Some LSP servers prefer to canonicalize all document URIs to + their "true name", chasing all fs symbolic links. If the user + is visiting a project under a symlink, say ~/myprojects/foo + which points to /data/true/projects/foo. When visiting a + ~/myprojects/foo/f.c and trying to jump to a nearby file f.h via + LSP 'xref-find-definitions', the path should probably be + ~/myproject/foo/f.h, not /data/true/projects/foo/f.h. + + Even though Emacs can recognize that the two files are the same, + 'buffer-file-name' is not. This confuses tools like C-x C-f, + ibuffer, and ultimately the users themselves who probably + oblivious to the true place of the project. After all they + started Eglot under a syminked file. + + * lisp/progmodes/eglot.el (eglot-lsp-server): Add trueroot slot. + (eglot-uri-to-path): Rework to consider trueroot and project root. + +2026-04-15 Toby Dylan Hocking <toby.hocking@r-project.org> (tiny change) + + Make | optional for 'gnu' regexp in compilation-mode (bug#80681) + + * lisp/progmodes/compile.el + (compilation-error-regexp-alist-alist): Make leading '|' + optional when there are leading spaces (bug#80681). + * etc/compilation.txt (GNU style): New error with two leading + spaces. + * test/lisp/progmodes/compile-tests.el + (compile-test-error-regexps): Increment expected + compilation-num-errors-found. + (compile-tests--test-regexps-data): New error test case for + 'gnu' with two leading spaces. Change expected match for + 'cucumber' to match again 'gnu'. + +2026-04-15 Sean Whitton <spwhitton@spwhitton.name> + + vc-rename-file: Fix case of directory with only untracked files + + * lisp/vc/vc.el (vc-rename-file): Don't call into the backend if + moving a directory containing only untracked files. + * test/lisp/vc/vc-tests/vc-tests.el (vc-test--rename-directory): + New test for this case. + +2026-04-15 Juri Linkov <juri@linkov.net> + + Handle the symbol property 'isearch-exit' in 'isearch-occur' (bug#80785) + + * lisp/isearch.el (isearch-occur): When the command has + a non-nil symbol property 'isearch-exit', exit the search + before running the command. + +2026-04-15 Sean Whitton <spwhitton@spwhitton.name> + + Fix renaming whole directories with Mercurial + + * lisp/vc/vc-hg.el (vc-hg-rename-file): Use 'hg mv --after'. + * test/lisp/vc/vc-tests/vc-tests.el (vc-test--rename-directory): + New test. + +2026-04-15 Sean Whitton <spwhitton@spwhitton.name> + + vc-rename-file: New OK-IF-ALREADY-EXISTS parameter + + * lisp/vc/vc.el (vc-delete-file): New NOCONFIRM parameter. + (vc-rename-file): New OK-IF-ALREADY-EXISTS parameter. + * lisp/dired-aux.el (dired-rename-file): Pass it. + * test/lisp/vc/vc-tests/vc-tests.el (vc-test--rename-file): Test + it. Also test moving files into an existing directory. + +2026-04-14 Juri Linkov <juri@linkov.net> + + New faces 'tab-line-active' and 'tab-line-inactive' (bug#80742) + + This is intended to parallel the 'mode-line-active/inactive' + and 'header-line-active/inactive' distinction. + + * doc/emacs/display.texi (Standard Faces): Document the new faces. + + * lisp/faces.el (tab-line-active, tab-line-inactive): Add new faces. + + * lisp/tab-line.el (tab-line-faces): Add new faces + to MEMBERS arg of 'defgroup'. + (tab-line-auto-hscroll): Use one of the faces + depending on 'mode-line-window-selected-p'. + + * src/dispextern.h (CURRENT_TAB_LINE_ACTIVE_FACE_ID_3) + (CURRENT_TAB_LINE_ACTIVE_FACE_ID): New macros + based on header-line equivalents. + (CURRENT_TAB_LINE_HEIGHT): Use CURRENT_TAB_LINE_ACTIVE_FACE_ID. + (face_id): Use TAB_LINE_ACTIVE_FACE_ID and + TAB_LINE_INACTIVE_FACE_ID instead of TAB_LINE_FACE_ID. + + * src/xdisp.c (window_box_height, pos_visible_p, init_iterator) + (window_text_pixel_size, display_mode_lines, display_mode_line) + (format-mode-line): Replace all uses of TAB_LINE_FACE_ID with + either a new macro or the new face IDs. + + * src/xfaces.c (lookup_basic_face, realize_basic_faces): + Map new face IDs to their lisp symbols. + (syms_of_xfaces): New lisp symbols. + +2026-04-13 Stefan Monnier <monnier@iro.umontreal.ca> + + (loaddefs-generate--make-autoload): Avoid `%s` on compound values + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--make-autoload): + Avoid `%s` on compound values. + +2026-04-13 Stefan Monnier <monnier@iro.umontreal.ca> + + SETUP_SYNTAX_TABLE: syntax-propertize more lazily (bug#80600) + + Many regexps do not pay attention to syntax tables at all + because they don't use things like \s, \b, \<, or \_<. + So delay the actual initialization of the machinery for + `syntax-table` properties (especially the call to `syntax-propertize`) + until the first time we actually need to consult the syntax of + a character. + + * src/syntax.c (uninitialized_interval): New constant. + (RE_SETUP_SYNTAX_TABLE_FOR_OBJECT, SETUP_SYNTAX_TABLE): + Set `forw/backward_i` to that new constant to indicate they haven't + actually be initialized yet. + Set `start` and `stop` fields right away, instead of delegating it to + `update_syntax_table`, so that `e_property` and `b_property` + can be set independently. + (update_syntax_table): Remove the `init` argument. Instead, discover + the need for initialization based on the fact that `forw/backward_i` + are uninitialized. Presume `start` and `stop` fields have been + set already. + (parse_sexp_propertize): Update call accordingly. + (update_syntax_table_forward): Remove the `init` argument. + + * src/syntax.h (update_syntax_table, update_syntax_table_forward): + Remove the `init` argument. + (UPDATE_SYNTAX_TABLE_FORWARD, UPDATE_SYNTAX_TABLE_BACKWARD): + Update calls accordingly. + +2026-04-13 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/international/mule.el (auto-coding-alist): Fix name (bug#80818) + +2026-04-13 Eli Zaretskii <eliz@gnu.org> + + Fix hangs on MS-Windows when deleting a pipe process + + * src/w32.c (sys_close): Don't close a descriptor from which the + reader thread is reading, to avoid hanging Emacs. (Bug#80770) + +2026-04-13 Eli Zaretskii <eliz@gnu.org> + + Fix MinGW64 build broken by changes in emacsclient.c + + * nt/gnulib-cfg.mk (getdelim, getline): Do not omit. It is now + needed for 'emacsclient', but MinGW64 doesn't have it in its runtime + libraries (mingw.org's MinGW does have it). (Bug#80770) + +2026-04-13 Eli Zaretskii <eliz@gnu.org> + + Revert "; Fix node names in modus-themes.org" + + This reverts commit d4002877d3b4d7dcc3c7d5e6ecdef10aad06b8a6. + It is no longer needed with the latest Org v9.8.2. + +2026-04-13 Eli Zaretskii <eliz@gnu.org> + + Revert "; Fix last change." + + This reverts commit 670bb34d91179eef087b6964edb445244180e8f6. + It is no longer needed with the latest Org 9.8.2. + +2026-04-13 Paul Eggert <eggert@cs.ucla.edu> + + emacsclient receiving long-line fixes + + Do not mishandle long lines, or lines containing NUL, + when receiving data. + * lib-src/emacsclient.c (check_socket_timeout, main): + Use ssize_t for return values from recv, + since in theory the value could exceed INT_MAX now. + (main): Do not use a fixed-size buffer for receiving data; + instead, grow the buffer as needed (admittedly unlikely). + When a partial line is received via recv, do not discard its data; + instead, keep reading, possibly with a grown buffer. + Do not ignore received data after a null byte is received. + Add a comment about when received data is ignored due to a goto. + +2026-04-13 Paul Eggert <eggert@cs.ucla.edu> + + emacsclient send_buffer size-- + + * lib-src/emacsclient.c (send_to_emacs_len): + No need to add 1 to SEND_BUFFER_SIZE. + +2026-04-13 Paul Eggert <eggert@cs.ucla.edu> + + emacsclient config+sending long-line fixes + + Do not mishandle long lines, or lines containing NUL, + when getting configuration or sending data. + * lib-src/emacsclient.c (send_to_emacs_len, quote_argument_len): + New functions, generalizing the old send_to_emacs and quote_argument. + Rewrite the old functions to use the new ones. + (get_server_config): Do not mishandle long lines in the config file. + (set_tcp_socket): No longer a need to null-terminate auth string. + (main): Do not mishandle long lines from stdin, or lines with NUL. + +2026-04-12 Kyle Meyer <kyle@kyleam.com> + + Update to Org 9.8.2 + +2026-04-12 Elias Gabriel Perez <eg642616@gmail.com> + + hideshow: New function 'hs-add-cycle-binding' (Bug#80657) + + https://lists.gnu.org/archive/html/emacs-devel/2026-02/msg00153.html + + * lisp/progmodes/hideshow.el (hs-cycle-filter) + (hs-minor-mode-map): Update. + (hs--filter-function, hs-add-cycle-binding): New functions. + (hs-cycle): Minor rework. + +2026-04-12 Juri Linkov <juri@linkov.net> + + * lisp/tab-bar.el (tab-bar-show): Support the 0 value (bug#80713). + + Add explicit choice for the 0 value to always show the tab bar. + Also add a choice for other non-negative numbers. + In the setter enable 'tab-bar-mode' only for numbers, + but not for the t value that should not enable the tab bar + after customization, only after creating a new tab. + +2026-04-12 Dirk-Jan C. Binnema <djcb@djcbsoftware.nl> (tiny change) + + xwidgets: re-enable with newer webkit2gtk + + By disabling hw-acceleration we can re-enable xwidgets with newer + webkit2gtk versions (Bug#80728). + Newer versions were disallowed (Bug#66068) since they abort when a + webkit view is created; however, they work fine as long as we disable + hw-acceleration, since the off-screen windows that xwidgets uses do not + support that. + * configure.ac: Remove upper-bound for webkit2gtk version check. + * src/xwidget.c (Fmake_xwidget): Turn off hardware-acceleration. + +2026-04-12 Philip Kaludercic <philipk@posteo.net> + + Clean up 'Info-directory-list' after deleting package + + * lisp/emacs-lisp/package.el (package--delete-directory): Remove + manual before physically deleting the package. (Bug#80776) + +2026-04-12 Philip Kaludercic <philipk@posteo.net> + + Fix computation of package description file + + * lisp/subr.el (package--description-file): Do not expect + non-numeric version components to be followed directly by a + number. (Bug#80744) + +2026-04-12 Philip Kaludercic <philipk@posteo.net> + + Add face for obsolete packages in package menu + + * lisp/emacs-lisp/package.el (package-status-obsolete): New face. + (package-menu-status-faces): Use new face instead of hard-coding + a font-lock face. + +2026-04-12 Richard Lawrence <rwl@recursewithless.net> + + Add short documentation group for iCalendar lib + + Define a short documentation group and document the major functions: + + * lisp/calendar/icalendar-shortdoc.el: New file. + * lisp/calendar/diary-icalendar.el: + * lisp/calendar/icalendar-ast.el: + * lisp/calendar/icalendar-parser.el: + * lisp/calendar/icalendar-recur.el: + * lisp/calendar/icalendar-utils.el: Refer to icalendar-shortdoc.el in + file commentary. + * lisp/calendar/icalendar-macs.el: Ditto, and also mention the macros + for binding values. + * lisp/calendar/icalendar.el: Ditto, and also remove some obsolete + commentary. + + Also make some improvements to documentation strings that the above + changes revealed would be helpful: + + * lisp/calendar/icalendar-recur.el + (icalendar-recur-recurrences-in-window-w/end-times): Fix broken ref. + (icalendar-recur-current-tz-to-vtimezone): Clarify docstring. + * lisp/calendar/icalendar-parser.el (icalendar-parse): Clarify + docstring. + + (Bug#80727) + +2026-04-12 Richard Lawrence <rwl@recursewithless.net> + + Improve performance of icalendar-recur.el and its tests + + As discussed in Bug#80520. + + * test/lisp/calendar/icalendar-recur-tests.el + (icalendar-test-rrule-test-rfc5545-sec3.8.5.3/3) + (icalendar-test-rrule-test-rfc5545-sec3.8.5.3/29) + (icalendar-test-rrule-test-rfc5545-sec3.8.5.3/30) + (icalendar-test-rrule-test-rfc5545-sec3.8.5.3/31) + (icalendar-test-rrule-test-rfc5545-sec3.8.5.3/33) + (icalendar-test-rrule-test-rfc5545-sec3.8.5.3/34) + (icalendar-test-rrule-test-rfc5545-sec3.8.5.3/38): Mark tests expensive. + + Abstract the implementation of intervals in icalendar-recur.el. Don't + store interval NEXT-LOW when it's the same as HIGH. This reduces + allocations, and shaves about ~20% off the full test suite. + + * lisp/calendar/icalendar-recur.el + (icalendar-recur-make-interval) + (icalendar-recur-interval-low) + (icalendar-recur-interval-high) + (icalendar-recur-interval-next): Implement intervals and subintervals as + vectors. Only store NEXT-LOW when it's non-nil. + (icalendar-recur-find-absolute-interval) + (icalendar-recur-find-daily-interval) + (icalendar-recur-find-weekly-interval) + (icalendar-recur-find-monthly-interval) + (icalendar-recur-find-yearly-interval) + (icalendar-recur-next-interval) + (icalendar-recur-previous-interval) + (icalendar-recur-refine-byyearday) + (icalendar-recur-refine-byweekno) + (icalendar-recur-refine-bymonth) + (icalendar-recur-refine-bymonthday) + (icalendar-recur-refine-byday) + (icalendar-recur-refine-byhour) + (icalendar-recur-refine-byminute) + (icalendar-recur-refine-bysecond) + (icalendar-recur-subintervals-to-date-times) + (icalendar-recur-subintervals-to-dates) + (icalendar-recur-recurrences-in-interval) + (icalendar-recur-recurrences-in-window) + (icalendar-recur--key-from-interval): Use new interval constructor and + accessors. Don't generate NEXT-LOW when it's the same as HIGH. + * lisp/calendar/icalendar-utils.el (icalendar-dates-until): Use new + interval constructor and accessors. + * test/lisp/calendar/icalendar-recur-tests.el + (icalendar-test-recur-find-secondly-interval) + (icalendar-test-recur-find-minutely-interval) + (icalendar-test-recur-find-hourly-interval) + (icalendar-test-recur-find-daily-interval-w/date) + (icalendar-test-recur-find-daily-interval-w/date-time) + (icalendar-test-recur-find-weekly-interval-w/date) + (icalendar-test-recur-find-weekly-interval-w/date-time) + (icalendar-test-recur-find-monthly-interval) + (icalendar-test-recur-find-yearly-interval) + (icalendar-test-recur-refine-byyearday) + (icalendar-test-recur-refine-bymonth) + (icalendar-test-recur-refine-bymonthday) + (icalendar-test-recur-refine-byday) + (icalendar-test-recur-refine-byhour) + (icalendar-test-recur-refine-byminute) + (icalendar-test-recur-refine-bysecond) + (icalendar-test-recur-subintervals-to-dates) + (icalendar-test-recur-subintervals-to-date-times) + (icalendar-test-rrule-test): Use new interval constructor and accessors. + + Rearrange loops when refining subintervals, so that the loop always runs + once but doesn't run a second no-op iteration. Astonishingly this cuts + the running time of the full test suite by almost 50%. + + * lisp/calendar/icalendar-recur.el (icalendar-recur-refine-byyearday) + (icalendar-recur-refine-byweekno) + (icalendar-recur-refine-bymonth) + (icalendar-recur-refine-bymonthday) + (icalendar-recur-refine-byday) + (icalendar-recur-refine-byhour) + (icalendar-recur-refine-byminute) + (icalendar-recur-refine-bysecond): Tighten up loop bounds when refining + subintervals. + + Improve performance of `icalendar-recur-tz-observance-on'. This also + brings about a ~20% performance gain. + + * lisp/calendar/icalendar-recur.el + (icalendar-recur-tz-observance-on): Eliminate calculation of previous + interval recurrences when it's unnecessary. Add a cheap upper bound check to + prevent fully computing recurrences for irrelevant observances. + (icalendar-recur--w/in-locally-p): + (icalendar-recur--w/in-abs-p): New helper functions for the upper bound check. + + Other more minor changes: + + Improve performance in `icalendar-recur-refine-byday' + + * lisp/calendar/icalendar-recur.el (icalendar-recur-refine-byday): Avoid + calculating Gregorian from absolute date unless it's necessary. + + Improve performance of BYSETPOS filtering in icalendar-recur.el: + η-reduce `icalendar-recur-make-bysetpos-filter'. + Thanks to Mattias Engdegård for the suggestion and implementation. + + * lisp/calendar/icalendar-recur.el + (icalendar-recur-make-bysetpos-filter): Rename to + `icalendar-recur-bysetpos-filter' and avoid `seq-map-indexed'. + (icalendar-recur-recurrences-in-interval): Use new function. + * test/lisp/calendar/icalendar-recur-tests.el + (icalendar-test-recur-bysetpos-filter): Use new function. + + Improve sorting performance: + Thanks to Mattias Engdegård for the suggestion and implementation. + + * lisp/calendar/icalendar-recur.el (icalendar-recur-refine-byyearday): + (icalendar-recur-refine-byweekno): + (icalendar-recur-refine-bymonthday): + (icalendar-recur-refine-byday): Use :key instead of :lessp in `sort' + calls. + + Eliminate `apply-partially' and `seq-take': + Thanks to Mattias Engdegård for the suggestion and implementation. + + * lisp/calendar/icalendar-recur.el + (icalendar-recur-recurrences-in-window): Eliminate `apply-partially'. + (icalendar-recur-recurrences-in-interval): Eliminate + `apply-partially' and replace `seq-take' with `take'. + + Reduce consing: + + * lisp/calendar/icalendar-recur.el + (icalendar-recur-subintervals-to-dates): + (icalendar-recur-recurrences-in-window): + (icalendar-recur-recurrences-in-window-w/end-times): + (icalendar-recur-recurrences-to-count): Replace `append' with `nconc'. + + Avoid a few uses of `seq-filter' in common functions in icalendar-ast.el: + + * lisp/calendar/icalendar-ast.el (icalendar-ast-node-children-of): + Reimplement filter imperatively. + +2026-04-11 Eli Zaretskii <eliz@gnu.org> + + Fix setting and restoring cursor shape on Windows Terminal + + * src/w32console.c (w32con_set_cursor_size): New function. + (w32con_reset_terminal_modes, w32con_set_terminal_modes) + (Fset_cursor_size): Use it to change cursor shape on Windows + Terminal. + +2026-04-11 Eli Zaretskii <eliz@gnu.org> + + Fix display of ambiguous-width characters on MS-Windows terminal + + * src/w32console.c (syms_of_ntterm) <w32--terminal-is-conhost>: + New variable. + (initialize_w32_display): Set 'w32--terminal-is-conhost' non-nil + when running on ConHost. + + * lisp/international/characters.el (use-cjk-char-width-table): + When Emacs runs on MS-Windows Terminal, behave as if + 'cjk-ambiguous-chars-are-wide' were nil even in CJK locales. + (Bug#79298) + +2026-04-11 Stephen Berman <stephen.berman@gmx.net> + + Improve tests involving 'ls' error message + + * test/lisp/dired-tests.el (dired-test-ls-error-message): + * test/lisp/files-tests.el + (files-tests-file-name-non-special-insert-directory): Make test + comparing the expected 'ls' error message with the string in the + 'ls' error buffer more robust (bug#80499). + +2026-04-11 Stephen Berman <stephen.berman@gmx.net> + + Ensure Dired does not list deleted 'ls' error file + + * lisp/dired.el (dired--ls-error-file): New variable. + (dired-readin-insert): Use it to find and remove entry in Dired + buffer of already deleted temporary 'ls' error file (bug#80499). + + * lisp/files.el (insert-directory): Set it to temporary 'ls' error file. + +2026-04-11 Eli Zaretskii <eliz@gnu.org> + + Fix face extension in 'visual-line-mode' + + * src/xdisp.c (display_line): Under WORD_WRAP, save and restore + the iterator _before_ the wrap point. This fixes face extension + under 'visual-line-mode', because otherwise 'extend_face_to_end_of_line' + is called with the value of 'it' that corresponds to the first display + element on the next screen line. (Bug#80673) + +2026-04-11 Stephen Berman <stephen.berman@gmx.net> + + Handle 'dired' called with -Al switches (bug#80711) + + * lisp/dired.el (dired-internal-noselect): After reading in + directory, check whether there was an 'ls' error instead of + checking for file entries, since there may be none is the -Al + switches (or just -l) were used. + (dired--display-ls-error): Ensure the 'ls' error buffer is a live buffer. + + * lisp/files.el (insert-directory-clean): Ensure deletion of + "//DIRED-OPTIONS//" line when using -Al switches (or just -l). + +2026-04-10 Stefan Monnier <monnier@iro.umontreal.ca> + + uni-script.el: Fix failure when loading the file directly + + * lisp/international/textsec.el (textsec--create-script-table): Autoload + and don't define while compiling. + (uni-script): Require only when loading, not when compiling. + +2026-04-10 Pip Cet <pipcet@protonmail.com> + + Don't continue FOR_EACH_FRAME loops after delete_frame (bug#80789) + + * src/xterm.c (x_connection_closed, x_delete_terminal): Restart + FOR_EACH_FRAME loops after deleting one (or potentially more) frames. + +2026-04-10 Pip Cet <pipcet@protonmail.com> + + Ensure selected_frame isn't the deleted frame (bug#80789) + + The previous code would sometimes exit the loop with frame1 set to the + last considered frame, even if that wasn't a suitable frame to switch + to. + + * src/frame.c (delete_frame): Reset 'frame1' in the loops if we don't + match the break condition, so we don't think we've found a suitable + replacement frame if we haven't. Error if, for some reason, that + fails. + +2026-04-10 Pip Cet <pipcet@protonmail.com> + + Don't accept dead selected_frame in x_connection_closed (bug#80789) + + * src/xterm.c (x_connection_closed): Try to restore frame if the + selected frame is dead. If that fails, abort. + +2026-04-10 Mike Kupfer <kupfer@rawbw.com> + + Improve previous change. + + * lisp/mh-e/mh-thread.el: Require 'mh-folder. + (mh-thread-refile): Update the docstring. + +2026-04-10 Henrique Martins <mh-e-users-2009@martins.cc> (tiny change) + + MH-E: remember destination when refiling a thread (SF#473) + + * lisp/mh-e/mh-thread.el (mh-thread-refile): Add an optional argument + 'dont-update-last-destination-flag'. If it is nil, update + 'mh-last-destination' and 'mh-last-destination-folder'. + +2026-04-10 Stefan Monnier <monnier@iro.umontreal.ca> + + src/eval.c (Fdefault_toplevel_value): Improve docstring (bug#80775) + +2026-04-10 Michael Albinus <michael.albinus@gmx.de> + + * test/infra/gitlab-ci.yml (default): User docker 28.5.2. + + * test/infra/gitlab-ci.yml (default): User docker 28.5.2. + +2026-04-09 Stefan Monnier <monnier@iro.umontreal.ca> + + (elisp--font-lock-flush-elisp-buffers): Avoid eager font-locking + + When jit-lock is not in use, `font-lock-flush` is too costly to + justify using it just to maybe update the highlighting of a few macro calls. + + * lisp/progmodes/elisp-mode.el (elisp--font-lock-flush-elisp-buffers): + Skip buffers that use jit-lock, like the `*ielm*-comint-indirect` buffer. + +2026-04-09 Stefan Monnier <monnier@iro.umontreal.ca> + + (elisp--local-variables): Restore point earlier + + * lisp/progmodes/elisp-mode.el (elisp--local-variables): Restore + point before calling `elisp--safe-macroexpand-all` in case this + triggers a temporary redisplay. + +2026-04-09 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/vc/vc.el (vc-checkin): Use `vc-dir-buffers` like we do everywhere else + +2026-04-09 Stefan Monnier <monnier@iro.umontreal.ca> + + (listify-key-sequence): Fix breakage with unibyte chars + + * lisp/subr.el (listify-key-sequence): The funny + "7th bit is Meta" applies only to unibyte strings. + + * test/lisp/subr-tests.el (subr-listify-key-sequence): New test. + +2026-04-09 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc.el (vc-checkin): Don't assume vc-dir is loaded. + +2026-04-09 Sean Whitton <spwhitton@spwhitton.name> + + with-vc-properties: Don't substitute in a global value + + * lisp/vc/vc.el (with-vc-properties): Don't substitute in the + value vc-touched-properties happens to have at macro expansion + time. This was left over from when vc-touched-properties was + bound to a local gensym. + +2026-04-09 समीर सिंह Sameer Singh <lumarzeli30@gmail.com> + + Fix emoji--insert-buffer being wiped by emoji-list-mode + + * lisp/international/emoji.el (emoji-list): Set insert-buffer after the + emoji buffer is set up. (bug#80773) + +2026-04-09 Dmitry Gutov <dmitry@gutov.dev> + + Fix "Narrowing src/ file breaks xref" + + * lisp/emacs-lisp/find-func.el (find-function-C-source): + Look outside of the current narrowing as well (bug#80749). + +2026-04-08 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/emacs-lisp/cl-macs.el (cl-typep): Undo accidental change + + src/data.c (set_internal): Mention var which can't be unbound in error msg + +2026-04-08 Stefan Monnier <monnier@iro.umontreal.ca> + + (take-while, drop-while, all, member-if) + + * lisp/subr.el (take-while, drop-while, all, member-if): Don't inline + if `pred` is not a "constant" since it wouldn't bring any + significant benefit. Also, don't explicitly `macroexpand-all` since + the compiler macro will be called (again) after macro-expansion, + if needed. + (internal--effect-free-fun-arg-p): Return nil for variable references. + +2026-04-08 Stefan Monnier <monnier@iro.umontreal.ca> + + (dired-at-point-prompter): Fix bug#80545 + + * lisp/ffap.el (ffap-read-file-or-url): Add `read-dir` argument to + indicate we expect a directory as return value. + Avoid `read-file-name` when we want a directory and the dialog UI + might prevent us from doing so. + (dired-at-point-prompter): Use the new arg. + +2026-04-08 Stefan Monnier <monnier@iro.umontreal.ca> + + (natnum, keyword, command): Fix bootstrap warnings (bug#80732) + + To break the interdependence between `cl-macs` and `cl-preloaded`, + we refrain from defining some types in `cl-macs` in some corner case + situations which affect only the early bootstrap. + `transient.el` is used during early bootstrap (while loading + `emoji.el` to produce `emoji-labels.el`) and it uses the + `keyword` and `command` types, so make sure they're not among + those types that are sometimes not defined. + + Include `natnum` while we're at it, so the only types still + affected by this corner case are "Common Lisp" types, which are + less likely to be used during early bootstrap. + + * lisp/emacs-lisp/cl-macs.el (natnum, keyword, command): Move type + declaration from here to... + + * lisp/emacs-lisp/cl-preloaded.el (natnum, keyword, command): ...here. + +2026-04-08 Pip Cet <pipcet@protonmail.com> + + Avoid infinite recursion in bind-keys-form (bug#80759) + + * lisp/bind-key.el (bind-keys-form): Always continue loop after + matching a keyword argument. + +2026-04-08 Michael Albinus <michael.albinus@gmx.de> + + * doc/misc/tramp.texi (New operations): Extend example. + +2026-04-08 ewantown <ewan@etown.dev> + + Support 24-bit TrueColor on MS-Windows console + + * src/w32console.c (DEFAULTP, SSPRINTF, w32con_write_vt_seq) + (w32con_get_cursor_coords): New functions and macros. + (w32con_write_glyphs): Hide cursor before writing to the console. + Add code for writing in virtual-terminal mode when + 'w32_use_virtual_terminal' is non-zero. + (w32con_write_glyphs_with_face): Add code for writing in + virtual-terminal mode when 'w32_use_virtual_terminal' is non-zero. + (w32con_setup_virtual_terminal): New function. + (w32con_set_terminal_modes): Call it. + (turn_on_face, turn_off_face): New functions. + (initialize_w32_display): Save background and foreground, and the + current TTY. + (Fset_screen_color): Accept an additional optional argument VTP; + if non-nil, arrange for 24-bit display to use the specified + colors. + (Fget_screen_color): Accept an additional optional argument VTP; + if non-nil, return colors used by 24-bit display. + (Fw32_use_virtual_terminal, Fw32_use_virtual_terminal_p): New + functions. + * src/term.c (tty_setup_colors) [WINDOWSNT]: Set up + virtual-terminal sequences for colors. + (init_tty) [WINDOWSNT]: Set up terminfo capabilities for Windows + virtual-terminal. + * src/xdisp.c (redisplay_internal): Don't call set_tty_color_mode + for WINDOWSNT. + + * lisp/term/w32console.el (w32-tty-set-base-colors) + (w32-tty-define-base-colors, w32-tty-define-8bit-colors) + (w32-tty-define-24bit-colors, w32-tty-get-pixel): New functions. + (terminal-init-w32console): Remove color setup. + (w32-tty-setup-colors): New function. + * lisp/term/tty-colors.el (tty-color-mode-alist): Add --color + modes for 256 and 24-bit color modes. + * lisp/startup.el (tty-handle-args): Fix --color handling. + * lisp/faces.el (tty-set-up-initial-frame-faces): Set up colors + for MS-Windows consoles. + + * etc/NEWS: + * doc/emacs/msdos.texi (Windows Misc): + * doc/emacs/cmdargs.texi (Colors X): Document 24-bit color support + on MS-Windows. + (Bug#79298) + +2026-04-08 Eli Zaretskii <eliz@gnu.org> + + Improve documentation of 'url-retrieve' and GnuTLS peer status + + * doc/misc/url.texi (Retrieving URLs): Describe the ':peer' entry + of the STATUS argument passed to CALLBACK of 'url-retrieve'. + + * lisp/url/url.el (url-retrieve): + * src/gnutls.c (Fgnutls_peer_status): Doc fixes. + (Bug#80762) + +2026-04-07 Stefan Monnier <monnier@iro.umontreal.ca> + + Don't load `package` just for `lm-package-needs-footer-line` + + * lisp/emacs-lisp/lisp-mnt.el (lm-package-requires): + Don't require `package`. + +2026-04-07 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/progmodes/project.el (generator): Don't require at run-time + +2026-04-07 Michael Albinus <michael.albinus@gmx.de> + + Tweak remote-file-name-inhibit-cache in Tramp + + * lisp/net/tramp-cache.el + (tramp-suppress-remote-file-name-inhibit-cache): New defsubst. + + * lisp/net/tramp.el (tramp-skeleton-file-name-all-completions): + * lisp/net/tramp-sh.el (tramp-get-remote-path): Use it. + +2026-04-06 Sean Whitton <spwhitton@spwhitton.name> + + vc-hg-working-revision: Return changeset hashes + + * lisp/vc/vc-hg.el (vc-hg-working-revision): Return changeset + hashes instead of revision numbers. Respect + vc-use-short-revision. + * etc/NEWS: Document the change. + +2026-04-06 Diep Pham <diep@calif.io> (tiny change) + + Eglot: improve safety spec of eglot-workspace-configuration + + * lisp/progmodes/eglot.el (eglot-workspace-configuration): Improve + safety spec. + +2026-04-06 Michael Albinus <michael.albinus@gmx.de> + + * test/lisp/net/tramp-tests.el (tramp-test21-file-links): Extend test. + +2026-04-06 Michael Albinus <michael.albinus@gmx.de> + + Keep cache in tramp-skeleton-file-name-all-completions + + * lisp/net/tramp.el (tramp-skeleton-file-name-all-completions): + Don't expire cache for large directories. + +2026-04-06 Joseph Mingrone <jrm@ftfl.ca> + + lisp/net/tramp.el: Fix performance regression with completions + + * lisp/net/tramp.el (tramp-skeleton-file-name-all-completions): + Use `file-directory-p' directly instead of calling `file-symlink-p' + and file-truename first. Since `file-directory-p' already follows + symlinks, symlinked directories are handled correctly without the + extra indirection. + +2026-04-05 Philip Kaludercic <philipk@posteo.net> + + Disable 'package-review-policy' during package-tests + + * test/lisp/emacs-lisp/package-tests.el (with-package-test): + Disable package reviewing during testing to not require manual + user input during tests. + +2026-04-05 Philip Kaludercic <philipk@posteo.net> + + Mention package version in 'package-autoremove' prompt + + * lisp/emacs-lisp/package.el (package--removable-packages): + Return package descriptors instead of names. + (package-autoremove): Adapt code to handle package descriptors + instead of names. + +2026-04-05 Sean Whitton <spwhitton@spwhitton.name> + + Fix vc-default-checkin-patch for vc-async-checkin non-nil + + * lisp/vc/vc.el (vc-default-checkin-patch): Fix for + vc-async-checkin non-nil (bug#80746). + +2026-04-05 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc-dir.el (vc-dir-update): Remove empty directory entries. + +2026-04-05 Sean Whitton <spwhitton@spwhitton.name> + + New option vc-dir-auto-hide-up-to-date + + * lisp/vc/vc-dir.el (vc-dir-hide-up-to-date-on-revert): Delete. + (vc-dir-auto-hide-up-to-date): New option. + (vc-dir-update, vc-dir-revert-buffer-function): Use it. + * etc/NEWS: Document it. + +2026-04-05 Sean Whitton <spwhitton@spwhitton.name> + + VC-Dir next action: Offer to hide up-to-date items + + * lisp/vc/vc-dir.el (vc-dir--up-to-date-states): New constant. + (vc-dir-hide-state): Use it. + (vc-dir--only-files-state-and-model): New function. + (vc-dir-root-next-action, vc-dir-deduce-fileset): Use it. + * lisp/vc/vc.el (vc-only-files-state-and-model): Improve error + message readability. + +2026-04-05 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/diff-mode.el (diff-mode-read-only-map): Bind 'v'. + +2026-04-05 Eli Zaretskii <eliz@gnu.org> + + Fix display in window margins when text-area text is reordered + + * src/xdisp.c (handle_stop_backwards): Don't overwrite + 'stop_charpos' if we end up on a different stack level of the + iterator. (Bug#80693) + +2026-04-05 Yuan Fu <casouri@gmail.com> + + Fix treesit-query-capture's NODE-ONLY param + + Before the fix, if user uses the NODE-ONLY option, we don't keep + the capture names in the results, then predicates won't work + because they can't reference capture names. + + * src/treesit.c (query_capture_remove_capture_name): New + function. + (Ftreesit_query_capture): Use the new function to remove capture + names AFTER running the predicate. + * test/src/treesit-tests.el: + (treesit-query-node-only-and-grouped): New test. + +2026-04-05 Kyle Meyer <kyle@kyleam.com> + + * etc/NEWS: Announce Org update. + + Update to Org 9.8.1 + +2026-04-04 Philip Kaludercic <philipk@posteo.net> + + List recursive dependencies in the package description + + * lisp/emacs-lisp/package.el (describe-package-1): List and + indicate if a package will require a recursive dependency. + +2026-04-04 Philip Kaludercic <philipk@posteo.net> + + Recursively check dependencies for package compatibility + + * lisp/emacs-lisp/package.el (package--compatible-packages): Add + new function. + (package-install): Use new function to restrict suggestions to + not include incompatible packages. + (package--incompatible-p): Check all dependencies to determine + package compatibility. + * etc/NEWS: Mention change. (Bug#80695) + +2026-04-04 Philip Kaludercic <philipk@posteo.net> + + Adjust return format of 'package--dependencies' + + * lisp/emacs-lisp/package.el (package--dependencies): Return + required dependency version along with every dependency. + (package-menu--list-to-prompt): Discard required versions. + +2026-04-04 Eli Zaretskii <eliz@gnu.org> + + Fix use of special glyphs with faces from display-table + + * src/xdisp.c (produce_special_glyphs): Fix the case where the + display-table specifies a face for truncation/continuation glyphs. + (Bug#80693) + +2026-04-04 Jens Lechtenbörger <jens.lechtenboerger@fsfe.org> + + Avoid line breaks in IMAP AUTHENTICATE PLAIN + + * lisp/net/imap.el (imap-plain-auth): Avoid line breaks in + AUTHENTICATE PLAIN command (bug#80687). + +2026-04-04 Michael Albinus <michael.albinus@gmx.de> + + * lisp/net/tramp.el (tramp-expand-args): Handle ARGS being nil. + +2026-04-03 Stéphane Marks <shipmints@gmail.com> + + Inform macOS Accessibility Zoom of cursor position (bug#80624) + + Enable cursor focus tracking for visually-impaired users that + rely on macOS Zoom screen magnification. + + * src/nsterm.m: Import ApplicationServices.h. + (ns_ua_zoom_enabled_p, ns_cg_rect_flip_y, ns_UAZoomChangeFocus): + New static function. Advise UAZoomChangeFocus of potentially + new cursor position. + (ns_update_end): Call ns_UAZoomChangeFocus. + (ns_draw_window_cursor): Cache the cursor position. + (applicationDidFinishLaunching): NSLog Accessibility API + permissions AXIsProcessTrusted. + (windowDidBecomeKey): Schedule a call to ns_UAZoomChangeFocus. + (deferred_UAZoomChangeFocus_handler): New view method to call + ns_UAZoomChangeFocus. + (accessibilityFrame): New view method to help UAZoomChangeFocus. + (initFrameFromEmacs): Initialize ns_UAZoom_cursor_rect_new and + ns_UAZoom_cursor_rect_old. + * etc/NEWS: Announce the change. + +2026-04-03 Stéphane Marks <shipmints@gmail.com> + + Support setopt-local in treesit--font-lock-level-setter (bug#80731) + + * lisp/treesit.el (treesit--font-lock-level-setter): Add + buffer-local behavior as invoked by 'setopt-local'. + +2026-04-03 Yuan Fu <casouri@gmail.com> + + Filter out some range settings in markdown-ts-mode + + * lisp/textmodes/markdown-ts-mode.el: + (markdown-ts--add-config-for-mode): Filter out functional queries. + +2026-04-03 Dmitry Gutov <dmitry@gutov.dev> + + grep-edit--prepare-buffer: Fix allowed insertion positions + + * lisp/progmodes/grep.el (grep-edit--prepare-buffer): Fix allowed + insertion positions, like previously in xref-edit--prepare-buffer. + +2026-04-03 Dmitry Gutov <dmitry@gutov.dev> + + pgtk_set_window_size: Clear out unused code + + * src/pgtkterm.c (pgtk_set_window_size): Remove unused code. + Rename the last two parameters to pixelwidth and pixelheight so + they can be used directly (bug#80698). And remove the + xg_wm_set_size_hint call because it's called indirectly through + xg_frame_set_char_size already. + Update the commentary above. + +2026-04-03 Dmitry Gutov <dmitry@gutov.dev> + + xref-edit--prepare-buffer: Prohibit insertion before group headers too + + * lisp/progmodes/xref.el (xref-edit--prepare-buffer): Do the + previous change for group headers as well (no insertion in front). + +2026-04-02 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/help.el (help-function-arglist): Fix last change + + lisp/help.el (help-function-arglist): Handle advised aliases (bug#80725) + +2026-04-02 Stéphane Marks <shipmints@gmail.com> + + New macro setopt-local and function set-local (bug#80709) + + 'setopt-local' is the buffer local equivalent of 'setopt'. + + Unify 'setopt', 'setopt-local', 'setq-local', + 'buffer-local-set-state' with 'setq' to signal + 'wrong-number-of-arguments'. + + * lisp/cus-edit.el (setopt): Change error signal to + 'wrong-number-of-arguments'. + (setopt-local): New macro. + (setopt--set-local): New function. + * lisp/subr.el (set-local): New function. + (setq-local, buffer-local-set-state): Signal + 'wrong-number-of-arguments' rather than 'error'. + * doc/emacs/custom.texi (Examining): Document 'setopt-local'. + * etc/NEWS: Announce the new macro and function. + +2026-04-02 Roi Martin <jroi.martin@gmail.com> + + Assume wide chars may span any number of columns during semlf filling + + * lisp/textmodes/fill.el (fill-region-as-paragraph-semlf): Use + `most-positive-fixnum' as the fill-column value during the unfill phase. + +2026-04-02 João Távora <joaotavora@gmail.com> + + Eglot: release version 1.23 + + * lisp/progmodes/eglot.el (Version): Bump to 1.23. + + * etc/EGLOT-NEWS: Announce new version. + +2026-04-02 João Távora <joaotavora@gmail.com> + + Jsonrpc: release version 1.0.28 + + (Version): Bump to 1.0.28. + +2026-04-02 João Távora <joaotavora@gmail.com> + + Eglot: unbreak eglot-report-progress when set to 'messages' (bug#80653) + + * lisp/progmodes/eglot.el (eglot-mode-line-progress): Fix cl-loop thinko. + +2026-04-01 João Távora <joaotavora@gmail.com> + + Eglot: release version 1.22 + + * lisp/progmodes/eglot.el (Version): Bump to 1.22. + (Package-Requires): Bump eldoc to 1.16.0, flymake to 1.4.5, + jsonrpc to 1.0.27, xref to 1.7.0. + + * etc/EGLOT-NEWS: Announce new version. + +2026-04-01 João Távora <joaotavora@gmail.com> + + Eglot: revert part of last change + + * lisp/progmodes/eglot.el (eglot--sig-info): Go back to adding + 1, so it's clear that parlabel's are off-by-one. + +2026-04-01 Michael Albinus <michael.albinus@gmx.de> + + Fix last change + +2026-04-01 Michael Albinus <michael.albinus@gmx.de> + + Make epa-file-insert-file-contents more secure + + * lisp/epa-file.el (epa-file-insert-file-contents): + Use `make-temp-file' instead of `make-temp-name'. + +2026-04-01 Sean Whitton <spwhitton@spwhitton.name> + + newcomers-presets: Set two more variables + + * etc/themes/newcomers-presets-theme.el (newcomers-presets): Set + column-number-mode and compilation-scroll-output. Suggested by + Abdulnafé Toulaïmat <abdulnafe.toulaimat@gmail.com>. + +2026-04-01 Tassilo Horn <tsdh@gnu.org> + + Fix text visibility issue with show-paren--show-context-in-overlay + + * lisp/paren.el (show-paren--show-context-in-overlay): Fix issue where + the overlay's text was hardly visible in certain cases (bug#59527). + +2026-04-01 Dmitry Gutov <dmitry@gutov.dev> + + xref-edit--prepare-buffer: Fix text insertion behavior around prefix + + * lisp/progmodes/xref.el (xref-edit--prepare-buffer): Fix text + insertion behavior before and after the line-number prefix. + +2026-04-01 Dmitry Gutov <dmitry@gutov.dev> + + xref-edit-mode: Compute 'occur-target' markers lazily + + * lisp/progmodes/xref.el (xref-edit--before-change-function): + New function (bug#80616). + (xref-change-to-xref-edit-mode, xref-edit-save-changes): + Use it in before-change-functions hook. + (xref-edit--prepare-buffer): Don't add 'occur-target' here. + +2026-04-01 Dmitry Gutov <dmitry@gutov.dev> + + Change "XREF" to "Xref" in mode lighter + + * lisp/progmodes/xref.el (xref--xref-buffer-mode) + (xref--transient-buffer-mode, xref-edit-save-changes): + Change "XREF" to "Xref" for internal consistency. + + * doc/emacs/maintaining.texi (Xref Commands): + Same. + +2026-04-01 Dmitry Gutov <dmitry@gutov.dev> + + Add xref-edit-mode (bug#80616) + + Based on the existing grep-edit-mode code. + + * lisp/progmodes/xref.el (xref-edit--prepare-buffer): New function. + (xref-edit-mode-map, xref-edit-mode-hook): New variables. + (xref-edit-mode, xref-change-to-xref-edit-mode) + (xref-edit-save-changes): New functions. + (xref--xref-buffer-mode-map): New binding ("e"). + + * doc/emacs/maintaining.texi (Identifier Search): + Mention xref-change-to-xref-edit-mode. + + * etc/NEWS: Describe the addition. + +2026-03-31 Michael Albinus <michael.albinus@gmx.de> + + * lisp/epa-file.el (epa-file-insert-file-contents): Fix last change. + +2026-03-31 Stefan Monnier <monnier@iro.umontreal.ca> + + python-tests.el: Fix test failures introduced by commit c1c08f3c9f6 + + * test/lisp/progmodes/python-tests.el (python-ts-mode-dotted-decorator-face-2) + (python-ts-mode-builtin-call-face) + (python-ts-mode-level-fontification-wo-interpolation) + (python-ts-mode-disabled-string-interpolation): Call `font-lock-ensure` + after setting a var that may flush the font-locking. + +2026-03-31 Michael Albinus <michael.albinus@gmx.de> + + Improve file name handler usage in epa-file.el + + * lisp/epa-file.el (epa-file-insert-file-contents): Handle other + file name handlers. (Bug#80641) + +2026-03-30 Stefan Monnier <monnier@iro.umontreal.ca> + + (treesit--font-lock-level-setter): Work a bit more lazily + + * lisp/treesit.el (treesit--font-lock-level-setter): + Use `font-lock-flush` (as discused in bug#80626). + (treesit-font-lock-fontify-region): Simplify a bit. + +2026-03-30 Michael Albinus <michael.albinus@gmx.de> + + Allow format specifiers in `tramp-login-program' + + * doc/misc/tramp.texi (Extension packages): Explain how to use own + format specifiers. + + * lisp/net/tramp.el (tramp-expand-args): Make DEFAULT argument + optional. Handle also ARGS being an atom. + (tramp-handle-make-process): + * lisp/net/tramp-container.el (tramp-skeleton-completion-function): + * lisp/net/tramp-sh.el (tramp-ssh-or-plink-options) + (tramp-maybe-open-connection): + * lisp/net/tramp-sshfs.el (tramp-sshfs-handle-process-file): + Call `tramp-expand-args' for `tramp-login-program'. + +2026-03-28 Ulrich Müller <ulm@gentoo.org> + + Fix typos in char-acronym-table + + * lisp/international/characters.el (c0-acronyms): Fix #x1c "FS". + (c1-acronyms): Fix #x8d "RI", #x8f "SS3", and #x9a "SCI". + Leave #x99 alone because standards use both "SGCI" and "SGC". + +2026-03-28 Richard Lawrence <rwl@recursewithless.net> + + Update gnus-icalendar to use new iCalendar library + + This change updates gnus-icalendar.el to use the new iCalendar + library instead of obsolete functions from icalendar.el. + * lisp/gnus/gnus-icalendar.el + (gnus-icalendar-event) + (gnus-icalendar-event:recurring-p) + (gnus-icalendar-event:recurring-interval) + (gnus-icalendar-event:recurring-days) + (gnus-icalendar-event--find-attendee) + (gnus-icalendar-event-from-ical) + (gnus-icalendar-event-from-buffer) + (gnus-icalendar-event--build-reply) + (gnus-icalendar-event-reply-from-buffer) + (gnus-icalendar-event:org-repeat): Reimplement using new iCalendar functions. + (gnus-icalendar-event--attendees-by-type): Rename from + `gnus-icalendar-event--get-attendee-names'. + (gnus-icalendar-event--build-reply): Rename from + `gnus-icalendar-event--build-reply-event-body'. + (gnus-icalendar--format-participant-list): Expect list of + `icalendar-attendee's. Add docstring. + (Bug#80426) + + * test/lisp/gnus/gnus-icalendar-tests.el: Update tests. + +2026-03-28 Eli Zaretskii <eliz@gnu.org> + + Better support for anonymous faces in Enriched Text mode + + * lisp/textmodes/enriched.el (enriched-face-ans): Support + :underline, :weight, and :slant in anonymous faces. Suggested by + Madhu <enometh@meer.net>. + +2026-03-28 Adam Sjøgren <asjo@koldfront.dk> (tiny change) + + Gnus: Accept date and time when specifying delay of a new article + + * lisp/gnus/gnus-delay.el (gnus-delay-article): Accept YYYY-MM-DD + hh:mm(:ss) as a valid format. (Bug#80637) + +2026-03-28 Michael Albinus <michael.albinus@gmx.de> + + Fix tramp-smb-handle-copy-file + + * lisp/net/tramp-smb.el (tramp-smb-handle-copy-file): + Suppress `jka-compr-handler'. Reported by Seppo Ronkainen + <sodr80@protonmail.com>. (Bug#80667) + +2026-03-28 Michael Albinus <michael.albinus@gmx.de> + + Fix file-name-all-completions for symlinked directories in Tramp + + * lisp/net/tramp.el (tramp-skeleton-file-name-all-completions): + * lisp/net/tramp-adb.el (tramp-adb-handle-file-name-all-completions): + * lisp/net/tramp-crypt.el (tramp-crypt-handle-file-name-all-completions): + * lisp/net/tramp-fuse.el (tramp-fuse-handle-file-name-all-completions): + * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-name-all-completions): + * lisp/net/tramp-sh.el (tramp-sh-handle-file-name-all-completions): + * lisp/net/tramp-smb.el (tramp-smb-handle-file-name-all-completions): + * lisp/net/tramp-sudoedit.el + (tramp-sudoedit-handle-file-name-all-completions): Simplify. + * test/lisp/net/tramp-tests.el (tramp-test32-shell-command): Adapt + test. + + * lisp/net/tramp-ftp.el (tramp-disable-ange-ftp): Use `seq-difference'. + + * lisp/net/tramp-gvfs.el (tramp-gvfs-monitor-process-filter): + Use `thread-last'. + + * lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory): + Use `seq-difference'. + (tramp-sh-gio-monitor-process-filter): Use `thread-last'. + + * lisp/net/tramp-smb.el (tramp-smb-get-file-entries): Do not add + virtual entry ""; it isn't needed anymore. + + * lisp/net/tramp.el (tramp-make-tramp-hop-name): Use `thread-last'. + (tramp-completion-handle-file-directory-p): Use `tramp-prefix-format'. + (tramp-fnac-add-trailing-slash): New defvar. + (tramp-skeleton-file-name-all-completions): Handle also symlinked + directories. + (tramp-skeleton-directory-files): Use `tramp-fnac-add-trailing-slash'. + (tramp-handle-file-name-completion): Use `seq-difference'. + (tramp-handle-make-process): Handle "%w" format specifier. + + * test/lisp/net/tramp-tests.el (tramp-test26-file-name-completion) + (tramp-test32-shell-command, tramp-test36-vc-registered): Adapt tests. + +2026-03-27 Emil Ingelman Sahlén <shadewind@gmail.com> (tiny change) + + Fix recombination of side windows (Bug#80665) + + * lisp/window.el (window--make-major-side-window): Protect the + sibling (the main-window group) from recombination. Without + this, deleting a side window can flatten the group into the + root, causing subsequent side windows on other sides to be + placed incorrectly (Bug#80665). + +2026-03-27 Stephen Berman <stephen.berman@gmx.net> + + Implement new Dired handling of errors from 'ls' + + The error messages are now displayed in a popped up buffer instead + of being output in the Dired buffer and signalling an error. The + file name bounds in Dired entries are now determined solely by the + offsets calculated by 'ls' with the --dired option and + consequently Dired now reliably recognizes file names that contain + a newline (bug#80499). + + * etc/NEWS: Announce new Dired handling of errors from 'ls'. + + * lisp/dired.el (dired-internal-noselect): Check Dired buffer for + file entries and if there are none kill the buffer to prevent + displaying a Dired buffer with no file entries. + (dired--ls-error-buffer): New variable. + (dired--display-ls-error): New function. + (dired, dired-other-window, dired-other-frame, dired-other-tab): + Use it to pop up buffer with error message emitted by 'ls'. + + * lisp/files.el (insert-directory-clean): Remove the code that + treats lines beginning at column 0 in a Dired buffer as error + lines and consequently also remove the code using these lines to + adjust the offsets specifying the bounds of the file name in the + Dired entries. If the buffer contains a //DIRED-OPTIONS// line + output by --dired, delete this line even when it is at BOB. + (insert-directory): Remove the code that checks the return value + of 'ls' and signals an error based on that value. Write any error + message emitted by 'ls' to a temporary file and insert its content + into a buffer, which will be popped when invoking a Dired command + results in the 'ls' error. Adjust the comment above this function + to accommodate file names containing a newline in Dired entries. + (insert-directory-adj-pos): Remove this now unused function. + + * test/lisp/dired-tests.el (dired-test-filename-with-newline-1) + (dired-test-filename-with-newline-2) + (dired-test-ls-error-message): New tests. + + * test/lisp/files-tests.el + (files-tests-file-name-non-special-insert-directory): Adjust test + to use of 'ls' error buffer instead of signaling an error. + +2026-03-27 Stefan Monnier <monnier@iro.umontreal.ca> + + (c++-ts-mode): Fix bug#80682 + + * lisp/progmodes/c-ts-mode.el (c++-ts-mode): Set + `editorconfig-indent-size-vars` since it can't be guessed. + +2026-03-27 Stefan Monnier <monnier@iro.umontreal.ca> + + (kmacro-end-call-mouse): Make obsolete + + * lisp/kmacro.el (kmacro-end-and-call-macro): Add EVENT argument. + (kmacro-end-call-mouse): Define as obsolete alias + of `kmacro-end-and-call-macro`. + +2026-03-27 Philip Kaludercic <philipk@posteo.net> + + Elaborate the motivation for the "newcomers-presets" theme + +2026-03-27 YugaEgo <yet@ego.team> + + * lisp/textmodes/css-mode.el (css-pseudo-class-ids): Add 'has' (bug#80664). + +2026-03-26 Basil L. Contovounesios <basil@contovou.net> + + Add predicate for initial_terminal + + This introduces the predicate frame-initial-p, which uses + struct frame.output_method or struct terminal.type to detect + initial_terminal without relying on its name (bug#80629). + For some prior discussion, see: + https://lists.gnu.org/r/emacs-devel/2019-12/msg00480.html + https://lists.gnu.org/r/emacs-devel/2020-01/msg00120.html + + * doc/lispref/frames.texi (Frames): Document frame-initial-p. + (Finding All Frames): Fix grammar. + * etc/NEWS (Lisp Changes in Emacs 31.1): Announce frame-initial-p. + * lisp/desktop.el (desktop--check-dont-save): + * lisp/emacs-lisp/debug.el (debug): + * lisp/frameset.el (frameset-restore): + * lisp/menu-bar.el (menu-bar-update-buffers): + * lisp/xt-mouse.el (turn-on-xterm-mouse-tracking-on-terminal): + Use frame-initial-p instead of checking the "initial_terminal" name. + * lisp/emacs-lisp/byte-opt.el: Mark frame-initial-p as error-free. + + * src/pgtkterm.c (pgtk_focus_changed): Use IS_DAEMON in place of + Fdaemonp, thus also accepting a named daemon session. + * src/terminal.c (decode_tty_terminal): Clarify commentary. + (Fframe_initial_p): New function. + (syms_of_terminal): Expose it. + (init_initial_terminal): Update commentary now that + menu-bar-update-buffers uses frame-initial-p (bug#53740). + + * test/lisp/xt-mouse-tests.el (with-xterm-mouse-mode): Simulate the + lack of an initial terminal by overriding frame-initial-p now + that turn-on-xterm-mouse-tracking-on-terminal uses it. + * test/src/terminal-tests.el: New file. + +2026-03-26 Basil L. Contovounesios <basil@contovou.net> + + Simplify some struct frame.output_method checks + + * src/lisp.h (inhibit_window_system): Fix typo in commentary. + * src/dispnew.c (Fopen_termscript): + (init_display_interactive) [!HAVE_ANDROID, !MSDOS]: + * src/dosfns.c [MSDOS] (dos_cleanup): + * src/frame.c (frame_inhibit_resize, frame_windows_min_size) + (do_switch_frame, delete_frame): + (make_terminal_frame) [MSDOS]: + (Fmake_terminal_frame) [MSDOS, WINDOWSNT]: + * src/keyboard.c (read_decoded_event_from_main_queue) [!WINDOWSNT]: + (Fcurrent_input_mode): + * src/menu.c (single_menu_item): + * src/msdos.c [MSDOS] (internal_terminal_init): + * src/sysdep.c (init_sys_modes): + * src/term.c: [HAVE_GPM] (Fgpm_mouse_start, Fgpm_mouse_stop): + [MSDOS] (tty_free_frame_resources): + * src/w32xfns.c (get_frame_dc): + * src/xdisp.c (clear_garbaged_frames, hscroll_window_tree) + (redisplay_internal): + * src/xfaces.c (Fdisplay_supports_face_attributes_p) + (realize_default_face, realize_face, realize_tty_face): Use + is_tty_frame, FRAME_INITIAL_P, FRAME_MSDOS_P, FRAME_TERMCAP_P, + FRAME_W32_P, and FRAME_TTY as appropriate instead of open-coding + them (bug#80629). + +2026-03-26 Basil L. Contovounesios <basil@contovou.net> + + Improve last change to auth-source-pass + + * lisp/auth-source-pass.el (auth-source-pass-search): Remove + redundant expand-file-name. + * test/lisp/auth-source-pass-tests.el + (auth-source-pass--with-store): Bind auth-source-pass-filename to an + existing directory to satisfy the new guard in + auth-source-pass-search (bug#76323). + +2026-03-26 Naofumi Yasufuku <naofumi@yasufuku.dev> (tiny change) + + Don't error on nonexistent ~/.password-store + + * lisp/auth-source-pass.el (auth-source-pass-search): + If auth-source-pass-filename is not a directory, just do nothing to + avoid repeated errors raised by directory-files-recursively in + auth-source-pass-entries which is called for each search pattern. + (Bug#76323) + +2026-03-25 Jens Schmidt <jschmidt4gnu@vodafonemail.de> + + Split up shortdoc functions and groups, fix their format + + Move shortdoc group definitions from shortdoc.el to a separate file + shortdoc-doc.el. Document shortdoc group format in a future-proof way + and guide package authors on how to use shortdoc groups across past + Emacs versions. + + * lisp/emacs-lisp/shortdoc-doc.el: New file. + * lisp/emacs-lisp/shortdoc.el: Document shortdoc group format in a + future-proof way. Require 'shortdoc-doc'. + (shortdoc--keyword-plist-p): New function. + (shortdoc--check): Update to check the documented shortdoc group format. + (shortdoc--groups, define-short-documentation-group): Pull out of + autoloaded 'progn'. + (define-short-documentation-group): Report errors in terms of byte + compiler warnings. + (alist, map, string, file-name, file, hash-table, list, symbol) + (comparison, vector, regexp, sequence, buffer, overlay, process, number) + (text-properties, keymaps): Move group to shortdoc-doc.el. + (shortdoc): Move alias to after function. + (shortdoc-add-function): Add argument checks. + * doc/lispref/tips.texi (Documentation Group Tips): New section. + * doc/lispref/elisp.texi (Top): + * doc/lispref/tips.texi (Tips): Add references to it. + * doc/lispref/help.texi (Documentation Groups): Ditto, and add some + concept index entries. (bug#80297) + +2026-03-25 Stephen Berman <stephen.berman@gmx.net> + + Fix Dired check for newlines in file names + + Ensure that Dired does not treat the sequence "\\n" within a file + name as a newline (bug#80608). + + * lisp/dired.el (dired--filename-with-newline-p): Rewrite using + 'directory-files' with match for regexp "\n". + + * test/lisp/dired-tests.el + (dired-test--filename-with-backslash-n): New function. + (dired-test-filename-with-backslash-n): New test. + +2026-03-25 Pip Cet <pipcet@protonmail.com> + + Allow retrieving scheduler information in seccomp (bug#80656) + + * lib-src/seccomp-filter.c (main): Add rules for 'sched_getscheduler' + and 'sched_getaffinity'. + +2026-03-25 Basil L. Contovounesios <basil@contovou.net> + + Give compile-command a :group again + + Like the commit of 2022-07-31 + "Fix further package.el loaddefs byte-compile warnings" + this pacifies the warning that compile-command fails to specify + a containing group when byte-compiling loaddefs.el (bug#80648). + + * lisp/progmodes/compile.el (compile-command): Restore explicit + custom :group on autoloaded user option. + +2026-03-25 Eli Zaretskii <eliz@gnu.org> + + Fix "File->Open Directory" menu item after 'ffap-bindings' + + * lisp/dired.el (dired-from-menubar): New function. + * lisp/menu-bar.el (menu-bar-file-menu): Use it in the "Open + Directory" menu item, instead of calling Dired directly. This + ensures we show the correct GUI dialog even if some package remaps + 'dired' to something else (like 'ffap-bindings' does). + (Bug#80545) + +2026-03-24 Stefan Monnier <monnier@iro.umontreal.ca> + + minibuffer.el: De-iconify a `*Completions*` frame only for eager display + + * lisp/minibuffer.el (completions--after-change) + (minibuffer--completions-visible): Don't consider an iconified + frame as visible. + +2026-03-24 Vincent Belaïche <vincentb1@users.sourceforge.net> + + Check all SES local variables are always set locally. + + Rename ses tests with prefix ses-tests-... + +2026-03-24 Vincent Belaïche <vincentb1@users.sourceforge.net> + + Fix SES tests indentation. + + * test/lisp/ses-tests.el (ses-jump-B2-lowcase) + (ses-jump-B2-lowcase-keys): Fix indentation. + +2026-03-24 Eli Zaretskii <eliz@gnu.org> + + Avoid segfaults in 'bidi_mirror_char' during startup + + * src/bidi.c (bidi_mirror_char): Make sure 'bidi_mirror_table' is + initialized before accessing it. (Bug#80668) + +2026-03-24 F. Jason Park <jp@neverwas.me> + + Add tests for erc-track-faces-normal-list regression + + * test/lisp/erc/erc-track-tests.el + (erc-track-tests--modified-channels/baseline): Update assertion to + expect an unchanged mode line segment if `erc-track-faces-normal-list' + lacks a ranked face in the latest inserted message. + (erc-track-modified-channels/baseline/nonotice) + (erc-track-modified-channels/priority-only-all/baseline/nonotice): New + tests. (Bug#80659) + +2026-03-24 Ivan <iv@ivanrg.es> (tiny change) + + Fix erc-track-faces-normal-list regression + + * lisp/erc/erc-track.el (erc-track--select-mode-line-face): Check + whether ranked faces in the message appear in the value of the option + `erc-track-faces-normal-list' rather than repeatedly checking if the + current nominee does, usually the highest ranked face in the message. + Failure to do so caused ERC to treat faces absent from the option's + value as being present and thus eligible to replace ranked faces in the + mode line segment. This bug was introduced in ERC 5.6 and is also part + of 5.6.1. (Bug#80659) + +2026-03-24 F. Jason Park <jp@neverwas.me> + + Avoid nested erc-display-message in alert utility + + * lisp/erc/erc.el (erc--warn-once-before-connect): Don't call + `erc-display-message' from insertion hooks because doing so places an + unnecessary burden on the caller to preserve the insertion marker and + "msg prop" environment. + +2026-03-23 Basil L. Contovounesios <basil@contovou.net> + + Fix recent whitespace.el changes + + * etc/NEWS + (Changes in Specialized Modes and Packages in Emacs 31.1): + Announce new user option whitespace-global-mode-buffers (bug#79230). + * lisp/whitespace.el (whitespace-global-modes): Improve docstring + grammar. + (whitespace-global-mode-buffers): Make default value match *scratch* + exactly for backward compatibility. Fix custom :type. + (whitespace-enable-predicate): Prefer any over seq-find. + +2026-03-22 Pip Cet <pipcet@protonmail.com> + + Delay initializing 'compile-command' to runtime (bug#80648) + + * lisp/progmodes/compile.el (compile-command): Use + 'custom-initialize-delay'. + +2026-03-22 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/subr.el (member-if): Fix compiler macro multiple evaluation. + + Problem reported by Pip Cet <pipcet@protonmail.com>. + +2026-03-22 Daniel Mendler <mail@daniel-mendler.de> + + (dabbrev-completion): Improve last fix for bug#80645 + + * lisp/dabbrev.el (dabbrev-completion): Signal the error that + `dabbrev-capf` doesn't signal any more. + +2026-03-22 Helmut Eller <eller.helmut@gmail.com> + + Staticpro executing_kbd_macro + + * src/macros.c (syms_of_macros): Staticpro executing_kbd_macro. + (executing_kbd_macro): Update comment. + * src/macros.h (executing_kbd_macro): Remove redundant comment. + +2026-03-22 Basil L. Contovounesios <basil@contovou.net> + + Fix no-focus-on-map on X without GTK + + * src/xterm.c [!USE_GTK] (x_update_frame_user_time_window): When + replacing _NET_WM_USER_TIME with a new _NET_WM_USER_TIME_WINDOW and + the frame has requested no-focus-on-map, ensure _NET_WM_USER_TIME is + zero also on the new _NET_WM_USER_TIME_WINDOW. + (x_make_frame_visible) [!USE_GTK]: Don't overwrite _NET_WM_USER_TIME + before mapping a frame that has requested no-focus-on-map, and whose + _NET_WM_USER_TIME should thus remain zero (bug#80525). + +2026-03-22 Guilherme de Almeida Suckevicz <guito.linux@gmail.com> (tiny change) + + Fix wrong type argument error in 'find-file-read-only-other-tab' (Bug#80630) + + * lisp/tab-bar.el (find-file-read-only-other-tab): Pass the + function 'find-file-other-tab' directly to + 'find-file--read-only' (Bug#80630). + +2026-03-22 Stefan Monnier <monnier@iro.umontreal.ca> + + (dabbrev-capf): Fix bug#80645. + + * lisp/dabbrev.el (dabbrev-capf): Return an empty table rather than + signaling an error when there are no completions. + The completion UI already takes care of emitting a message like + "No match". + +2026-03-21 Helmut Eller <eller.helmut@gmail.com> + + * test/src/charset-tests.el (charset-tests-define-charset): New. + +2026-03-21 Helmut Eller <eller.helmut@gmail.com> + + Use signed ints in struct charset_table + + * src/charset.h (struct charset_table): Make the slots size and used + signed. + (charset_attributes_getter): Fix spacing. + +2026-03-21 Helmut Eller <eller.helmut@gmail.com> + + * src/charset.c (Fdefine_charset_internal): Fix memory leak. + + * src/charset.c (shrink_charset_table): Simplify. + +2026-03-21 Helmut Eller <eller.helmut@gmail.com> + + Introduce a struct charset_table + + The fields of the new struct are what the global variables + charset_table, charset_table_size, charset_table_used, and + charset_attributes_table used to be. The struct should make it clearer + that those fields must be kept in sync. + + * src/charset.h (struct charset_table): New struct. + (charset_attributes_getter): Adjust accordingly. + * src/charset.c (charset_table): Change type to struct charset_table. + (charset_table_size, charset_table_used, charset_attributes_table): + Moved to the struct. + (Fdefine_charset_internal, Ffind_charset_region, Ffind_charset_string) + (shrink_charset_table, syms_of_charset): Adjust to struct charset_table. + * src/pdumper.c (dump_charset, dump_charset_table): Adjust to struct + charset_table. + +2026-03-21 Helmut Eller <eller.helmut@gmail.com> + + * src/charset.h (charset_attributes_getter): Add assertion. + +2026-03-21 Helmut Eller <eller.helmut@gmail.com> + + Remove the charset_table_init array + + Determining the best size for a static array seems difficult; so + allocate it dynamically. + + * src/charset.c (CHARSET_TABLE_INIT_SIZE): New constant. + (syms_of_charset): Malloc charset_table here. + (charset_table_init): Removed. + (shrink_charset_table): New function. + (Fclear_charset_maps): Call it. + * src/charset.h (charset_table_init): Removed. + (charset_attributes_getter): Add an assertion. + * src/pdumper.c (dump_charset_table): Assert that charset_table_size == + charset_table_used. + +2026-03-21 Helmut Eller <eller.helmut@gmail.com> + + Move the attribute field of charsets to a separate vector + + This simplifies the GC code, as this was the only field in the charset + struct that referenced the GC heap. Without it, we no longer need to + trace the charset_table. + + * src/charset.h (struct charset.attributes): Removed. + (charset_attributes_getter): New helper. + (CHARSET_ATTRIBUTES): Use it. + * src/charset.c (charset_attributes_table): New. + (Fdefine_charset_internal): Place attrs in charset_attributes_table. + (syms_of_charset): Initialize charset_attributes_table. + (mark_charset): Deleted. + * src/pdumper.c (dump_charset): Skip attributes field. + * src/lisp.h (mark_charset): Deleted. + * src/alloc.c (garbage_collect): mark_charset no longer needed. + +2026-03-21 Basil L. Contovounesios <basil@contovou.net> + + Make member-if compiler-macro hygienic + + * lisp/subr.el (member-if): Use uninterned symbol in + compiler-macro (bug#80647). + +2026-03-21 Stéphane Marks <shipmints@gmail.com> + + vtable truncate-string-pixelwise, ellipsis can be a string (bug#80026) + + Eliminate 'vtable--limit-string' in favor of the more efficient + 'truncate-string-pixelwise'. Remove extraneous pre-measurement + calls to 'string-pixel-width' and ellipsis concatenation as + 'truncate-string-pixelwise' does both. + The 'make-vtable' 'ellipsis' keyword can be a string to override + the default returned by 'truncate-string-ellipsis'. + + * lisp/emacs-lisp/vtable.el (vtable--ellipsis): New defun. + (vtable-insert-object, vtable--insert): Use 'vtable--ellipsis'. + (vtable--insert-line, vtable--insert-header-line): Call + 'truncate-string-pixelwise' instead of 'vtable--limit-string'. + (vtable--limit-string): Remove function. + + * test/lisp/emacs-lisp/vtable-tests.el + (test-vtable--limit-string-with-face-remapped-buffer): Remove + test, obsoleted by misc-test-truncate-string-pixelwise. + + * doc/misc/vtable.texi: Document that :ellipsis can be a string. + +2026-03-21 Jeff Valk <jv@jeffvalk.com> (tiny change) + + Ensure correct expansion in 'find-sibling-file-search' + + * lisp/files.el (find-sibling-file-search): Following expansion + of each EXPANSION, advance the search start position to reflect + the actual length of the expanded text (the updated string), not + the length of the "\\([&0-9]+\\)" (the string before expansion). + (Bug#80636) + +2026-03-21 Tassilo Horn <tsdh@gnu.org> + + Fix wrong-type-argument error in package-upgrade + + * lisp/emacs-lisp/package.el (package-upgrade): Fix wrong-type-argument + error when upgrading a builtin package (bug#80633). + +2026-03-21 Stefan Monnier <monnier@iro.umontreal.ca> + + simple-tests.el: Use `kmacro` function + + * test/lisp/simple-tests.el (undo-test-kill-c-a-then-undo) + (undo-test-point-after-forward-kill): Use `kmacro` function. + +2026-03-21 Stefan Monnier <monnier@iro.umontreal.ca> + + cursor-sensor.el: Partial fix for bug#80255 + + This provides limited support for window-specific overlay properties. + To complete it, we still need to add support for it to + `next/previous-single-char-property-change`. + + * lisp/emacs-lisp/cursor-sensor.el (cursor-sensor--intangible-p): + Add `window` argument. + (cursor-sensor-tangible-pos, cursor-sensor--detect): + Pass `window` argument to the functions + looking for overlay properties. + +2026-03-20 Stefan Monnier <monnier@iro.umontreal.ca> + + (Fmakunbound): Break aliasing, if present (bug#80538) + + * src/data.c (Fmakunbound): Break aliasing, if present. + * doc/lispref/variables.texi (Void Variables): Document it. + +2026-03-20 Stefan Monnier <monnier@iro.umontreal.ca> + + diff-mode.el: Don't recompute the position of Git preamble/footer + + On some profiles (after disabling syntax and refined + fontification), this was taking >90% of the time to fontify a buffer. + + * lisp/vc/diff-mode.el (diff--git-preamble-overlay) + (diff--git-footer-overlay): New variables. + (diff--git-preamble-end, diff--git-footer-start): Use them to cache + the result. + +2026-03-19 Ihor Radchenko <yantar92@posteo.net> + + New option to enable global-whitespace-mode in special-buffers (bug#79230) + + * lisp/whitespace.el (whitespace-global-mode-buffers): New custom + option. + (whitespace-enable-predicate): Use it. + (whitespace-global-modes): Refer to the new option. + +2026-03-19 Elias Gabriel Perez <eg642616@gmail.com> + + hideshow: Fix 'hs-hide-block-behavior' set to 'after-cursor'. + + Bug#80455. + + * etc/NEWS: Document changed behavior. + + * lisp/progmodes/hideshow.el (hs-get-near-block): Remove + 'forward-line'. + (hs-hide-block-behavior): Update docstring. + + * doc/emacs/programs.texi (Hideshow): Update. + + Suggested-by: Dima Kogan <dima@secretsauce.net> + +2026-03-19 Eli Zaretskii <eliz@gnu.org> + + Fix "make install-nt" in parallel builds + + * Makefile.in (install-nt): Add order-only dependency on $(NTDIR). + Suggested by Joel Reicher <joel.reicher@gmail.com>. (Bug#80470) + +2026-03-19 Elías Gabriel Pérez <eg642616@gmail.com> + + hideshow: New minor mode 'hs-indentation-mode'. (Bug#80179) + + This minor mode configures hs-minor-mode to use + indentation-based folding. + + * lisp/progmodes/hideshow.el (hs-hideable-block-p): New + function. + (hs-indentation-respect-end-block): New option. + (hs-indentation--store-vars): New variable. + (hs-cycle-filter, hs-get-first-block-on-line, hs-get-near-block) + (hs-find-block-beg-fn--default): Adapt code to use + 'hs-hideable-block-p'. + (hs-block-positions): Update. + (hs-indentation-mode): New minor mode. + + * doc/emacs/programs.texi (Hideshow): Update documentation. + + * etc/NEWS: Announce changes + + * test/lisp/progmodes/hideshow-tests.el: Add 'require'. + (hideshow-check-indentation-folding): New test. + +2026-03-18 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/progmodes/elisp-mode.el (elisp--local-macroenv): Add `static-if` + +2026-03-18 Stéphane Marks <shipmints@gmail.com> + + Kick the event loop in NS drag and drop (bug#80592) + + Eliminate an annoying event-loop delay after dropping into an + Emacs window. + + * src/nsterm.m: ([EmacsView performDragOperation:]): Kick the + event loop after posting the DRAG_N_DROP_EVENT. + +2026-03-17 Michael R. Mauger <michael@mauger.com> + + Window handling bug fixes. + + * lisp/play/zone.el: (zone--build-zone-buffer): select window. + (zone--prepare-frames): Avoid dedicated windows. + +2026-03-17 Stefan Monnier <monnier@iro.umontreal.ca> + + (delete-selection-repeat-replace-region): Partial fix for bug#80216 + + * lisp/delsel.el (delete-selection-repeat-replace-region): Clarify the + need for `delete-selection-save-to-register`. + +2026-03-17 Tassilo Horn <tsdh@gnu.org> + + Further improve blink-matching-paren-highlight-offscreen + + * lisp/simple.el (blink-matching-paren-offscreen): Inherit from + show-paren-match face. + (blink-paren-open-paren-line-string): Add blink-matching-paren-offscreen + face properties to opening paren instead of replacing original + fontification. + * lisp/paren.el (show-paren-context-when-offscreen): Mention + blink-matching-paren-highlight-offscreen in docstring. + +2026-03-16 Dmitry Gutov <dmitry@gutov.dev> + + Assign bit gravity to window in Lucid and Motif ports too + + * src/widget.c (EmacsFrameRealize): Assign bit_gravity, and use + the value of NorthWestGravity which matches the GTK3 behavior, + and the general intuition that window's contents should move + with its top-left corner. The result is that the frame is not + blinking during resizing (bug#80369). + + * src/xfns.c (x_window) [!USE_X_TOOLKIT]: Change bit_gravity from + StaticGravity to NorthWestGravity as well, to match the others. + +2026-03-16 Pip Cet <pipcet@protonmail.com> + + Count characters correctly in 'str_as_multibyte' + + * src/character.c (str_as_multibyte): Increment CHARS for each + character produced, not just once. + +2026-03-16 Basil L. Contovounesios <basil@contovou.net> + + Remove more regex macros from src/conf_post.h + + Further to bug#80428, they are no longer used since commit of + 2018-08-05 "Simplify regex-emacs code by assuming Emacs". + Suggested by Pip Cet <pipcet@protonmail.com>. + + * src/conf_post.h [emacs] (RE_TRANSLATE_TYPE): Remove; + no longer used except under lib-src. + [emacs] (RE_TRANSLATE): Remove; redefined in src/regex-emacs.c. + +2026-03-16 Michael Albinus <michael.albinus@gmx.de> + + * lisp/emacs-lisp/shortdoc.el (list): Fix `ensure-proper-list' examples. + +2026-03-16 Michael Albinus <michael.albinus@gmx.de> + + Use consistent alias name in tramp-compat.el + + * lisp/net/tramp-compat.el (tramp-compat-error-type-p): + Rename from `tramp-error-type-p'. + +2026-03-15 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/startup.el (command-line): Simplify with `error-message-string` + + Suggested by Basil L. Contovounesios <basil@contovou.net>. + +2026-03-15 Sean Whitton <spwhitton@spwhitton.name> + + Set frame-inhibit-implied-resize in newcomers-presets + + * etc/themes/newcomers-presets-theme.el (newcomers-presets): Set + frame-inhibit-implied-resize as suggested by Martin Rudalics. + +2026-03-15 Philip Kaludercic <philipk@posteo.net> + + Add new function 'ensure-proper-list' (bug#80598) + + * doc/lispref/lists.texi (Building Lists): Document it. + * etc/NEWS: Mention it. + * lisp/emacs-lisp/shortdoc.el (list): Demonstrate it. + * lisp/subr.el (ensure-proper-list): Add it. + +2026-03-15 Eli Zaretskii <eliz@gnu.org> + + Avoid segfaults in TTY menu-item selection + + * src/term.c (tty_menu_show): Don't allow "selection" of items in + a bogus menu. (Bug#80603) + +2026-03-14 Eli Zaretskii <eliz@gnu.org> + + Avoid another assertion violation in TTY menus + + * src/term.c (tty_menu_show): Reject bogus menus whose 'menu_items' + is nil. (Bug#80603) + +2026-03-14 Philip Kaludercic <philipk@posteo.net> + + Add references to "User Lisp" Info node where applicable + + * etc/NEWS: Update 'package-vc-install-from-checkout' + obsoletion notice. + * lisp/emacs-lisp/package-vc.el (package-vc-install-from-checkout): + Update obsoletion declaration. + +2026-03-14 Philip Kaludercic <philipk@posteo.net> + + Remove references to 'package-vc-install-from-checkout' in docs + + * lisp/emacs-lisp/package-vc.el: Remove mention in Commentary section. + (package-vc-checkout): Remove suggestion in docstring. + +2026-03-14 Basil L. Contovounesios <basil@contovou.net> + + Rename emacs-module.h.in -> emacs-module.in.h + + * src/emacs-module.h.in: Rename... + * src/emacs-module.in.h: ...to this, for consistency with all other + lib/*.in.h files (bug#80428). + * Makefile.in (CONFIG_STATUS_FILES_IN): + * admin/release-branch.txt: + * src/emacs-module.c: All uses updated. + * admin/authors.el (authors-renamed-files-alist): Register rename. + * configure.ac: Specify non-default AC_CONFIG_FILES input file. + +2026-03-14 Basil L. Contovounesios <basil@contovou.net> + + Review some attribute macro usage + + * .dir-locals.el (c-noise-macro-names): Remove ANDROID_EXPORT, which + is no longer used. Add ATTRIBUTE_COLD, ATTRIBUTE_CONST, + ATTRIBUTE_MAY_ALIAS, ATTRIBUTE_NONSTRING, ATTRIBUTE_RETURNS_NONNULL, + EXTERNALLY_VISIBLE, MAYBE_UNUSED, and NODISCARD. + (c-noise-macro-with-parens-names): Also tell cc-mode about some + function-like attribute macros in use (bug#80428). + + * src/conf_post.h (RE_TRANSLATE_P): Remove; it is no longer used. + +2026-03-14 Eli Zaretskii <eliz@gnu.org> + + Avoid assertion violations in tty menus in rare cases + + * src/term.c (mouse_get_xy): Restore the lost protection against + 'mouse_position' returning nil as mouse coordinates. (Bug#80603) + +2026-03-14 Eli Zaretskii <eliz@gnu.org> + + Fix backward motion in Info manuals under 'scroll-conservatively' + + * lisp/info.el (Info-find-node-2): Don't skip the header or + breadcrumbs line when 'scroll-conservatively' is set to a value + that could leave the beginning of the node outside of the window. + (Bug#80553) + +2026-03-14 Timon Reinold <tirei+gn@agon.one> (tiny change) + + Fix auto-correct previous word with 'flyspell-prog-mode' + + * lisp/textmodes/flyspell.el (flyspell-generic-progmode-verify): + Take into account the word 'flyspell-auto-correct-previous-word' + moved to (i.e., the word starting at point, not the character + before point), when checking whether it should be checked/corrected + by flyspell-prog-mode. (Bug#80289) + +2026-03-14 Stefan Monnier <monnier@iro.umontreal.ca> + + (smerge--refine-prepare-regions): Reduce number of args and retvals + + * lisp/vc/smerge-mode.el (smerge--refine-set-overlay-props): + New function, extracted from `smerge--refine-prepare-regions`. + (smerge--refine-prepare-regions): Take overlays rather than beg/end + arguments and remove all overlay property manipulation. + (smerge-refine-regions): Create the overlays and pass them to those + two functions. + +2026-03-14 Dmitry Gutov <dmitry@gutov.dev> + + etags-regen: Don't try to generate tags during completion, by default + + * etc/NEWS: Describe the change. + + * lisp/progmodes/etags-regen.el + (etags-regen-create-on-completion): New option. + (etags-regen-create-on-completion--set): New function. + (etags-regen-mode): Use it. Discussed in + https://lists.gnu.org/archive/html/emacs-devel/2026-03/msg00405.html + +2026-03-13 Philip Kaludercic <philipk@posteo.net> + + Simplify 'xref-mouse-mode-map' + + See https://mail.gnu.org/archive/html/emacs-devel/2026-03/msg00386.html. + + * lisp/progmodes/xref.el (xref-mouse-mode-map): Prevent + C-<down-mouse-1> from triggering 'mouse-buffer-menu' and drop + C-<drag-mouse-1> binding. + +2026-03-13 Philip Kaludercic <philipk@posteo.net> + + * etc/NEWS: Announce 'package-vc-install-from-checkout' obsoletion + + (Bug#80604) + +2026-03-13 Philip Kaludercic <philipk@posteo.net> + + Give an example of how to use use-package+:vc without :rev + + * doc/misc/use-package.texi (Install package): Add an example + block that doesn't use :rev, and instead shows that you can just + pass a URL as a string to :vc. + +2026-03-13 Paul Eggert <eggert@cs.ucla.edu> + + Ignore Emacs developer’s global core.whitespace + + * build-aux/git-hooks/pre-commit: Use EMACS_GIT_CORE_WHITESPACE, + not the global core.whitespace, for whitespace checks when committing. + This defaults to empty, which means to use the Git default, and + this should fix Bug#80428 “C indentation in .gitattributes, macros + in .dir-locals.el”. The environment variable is a better way to + temporarily override the default. + +2026-03-13 Helmut Eller <eller.helmut@gmail.com> + + * lisp/loadup.el: No longer GC after loading each file + + With the portable dumper it's no longer needed as discussed in + bug#79021. Originally this was done for the unexec based dumping (see + bug#4287 and commit 0e328d3779d1). + +2026-03-13 Eli Zaretskii <eliz@gnu.org> + + Avoid assertion violations in 'display_menu_bar' + + * src/xdisp.c (display_menu_bar): Return immediately if the + menu-bar items were not yet computed. This avoids assertion + violations when this function is called as part of creating a new + frame. (Bug#80603) + +2026-03-13 Basil L. Contovounesios <basil@contovou.net> + + Fix project-recompile directory + + * lisp/progmodes/project.el: Remove stale compilation-read-command + declarations. Autoload recompile for Emacs versions prior to 31, to + allow calling project-recompile before project-compile (bug#74631). + (project-recompile): Set compilation-directory to avoid recompile + using a value unrelated to the current project (bug#68570). + +2026-03-12 Basil L. Contovounesios <basil@contovou.net> + + Replace remaining uses of Qwrong_type_argument + + For discussion, see: + https://lists.gnu.org/r/emacs-devel/2026-03/msg00306.html + + * src/comp.c (helper_GET_SYMBOL_WITH_POSITION): Use + symbol-with-pos-p, not wrong-type-argument, in the + wrong-type-argument error predicate slot. + * src/data.c (Fbare_symbol): + * src/print.c (print_bind_overrides): + * src/treesit.c (Ftreesit_parser_create, treesit_resolve_node): + Prefer wrong_type_argument over xsignal2. + +2026-03-12 Basil L. Contovounesios <basil@contovou.net> + + Fix window-height of project-kill-buffers + + An alternative to setting window-height and preserve-size is to rely + on display-buffer--maybe-at-bottom's support for + temp-buffer-resize-mode. + + * lisp/progmodes/project.el (project-kill-buffers): Set + window-height to a function, not a form/cons (bug#52148). + +2026-03-12 Julian Scheid <julians37@gmail.com> + + Fix 'comp--func-unique-in-cu-p' to match docstring + + * lisp/emacs-lisp/comp.el (comp--func-unique-in-cu-p): Check + only the callee name instead of requiring global uniqueness. + * test/src/comp-resources/comp-test-direct-call.el: New file. + * test/src/comp-resources/comp-test-direct-call-dup.el: New file. + * test/src/comp-tests.el (comp-tests-has-direct-call-p) + (comp-tests-direct-call-with-lambdas) + (comp-tests-direct-call-with-duplicate-names): New tests. + +2026-03-12 Philip Kaludercic <philipk@posteo.net> + + Add 'xref-mouse-mode' minor mode + + * doc/emacs/maintaining.texi (Looking Up Identifiers): Document + it. + * etc/NEWS (bindings): Mention it. + * etc/themes/newcomers-presets-theme.el (newcomers-presets): Add + it. + * lisp/progmodes/xref.el (xref-mouse-mode-map, xref-mouse-mode) + (global-xref-mouse-mode): Implement it. + +2026-03-12 Tassilo Horn <tsdh@gnu.org> + + Don't strip face properties in blink-paren-open-paren-line-string + + With bug#59527 we ensured that the open paren line string was fontified + which was broken again with bug#63089 because there, the opening paren + was fontified with a new face. + + With this change, the returned string is fontified again. Only if + `blink-matching-paren-highlight-offscreen' is non-nil, the opening paren + is unfontified and then fontified again with the + `blink-matching-paren-offscreen' face. + + * lisp/simple.el (blink-paren-open-paren-line-string): Keep returned + line string fontified with slight exception if + `blink-matching-paren-highlight-offscreen' is non-nil. + +2026-03-11 Philip Kaludercic <philipk@posteo.net> + + Add ecomplete support for more header types + + * lisp/gnus/message.el (message-put-addresses-in-ecomplete): + Handle "BCC" and "X-Debbugs-CC" headers. + +2026-03-11 Philip Kaludercic <philipk@posteo.net> + + Do not initialize Info during package activation + + * lisp/emacs-lisp/package-activate.el (package--add-info-node): + Use 'Info-default-directory-list' if Info has not been + initialized, otherwise fall back to 'Info-directory-list' + without calling 'info-initialize' beforehand, since the function + initializes 'Info-directory-list'. (Bug#80495) + +2026-03-11 Philip Kaludercic <philipk@posteo.net> + + Adjust structure of 'newcomers-presets-mode-enabled-local-modes' + + * etc/themes/newcomers-presets-theme.el + (newcomers-presets-mode-enabled-local-modes): Interpret the + variable as a proper alist without duplicate keys. + (newcomers-presets-mode): Handle new structure. + +2026-03-11 Stefan Monnier <monnier@iro.umontreal.ca> + + (elisp--shorthand-aware-(f)boundp): Don't allocate + + * lisp/progmodes/elisp-mode.el (elisp--read-symbol-shorthands): + New function, extracted from `elisp--completion-local-symbols`. + Remember the longhand symbol in `elisp--longhand` property. + (elisp--completion-local-symbols): Use it. + (elisp--shorthand-aware-fboundp, elisp--shorthand-aware-boundp): + Use the new `elisp--longhand` property. + +2026-03-11 Basil L. Contovounesios <basil@contovou.net> + + Tweak recent error descriptor changes + + * etc/NEWS: Fix capitalization and markup. + * lisp/emacs-lisp/ert.el (ert--should-error-handle-error): Prefer + any over cl-some where either will do. + * lisp/epa-file.el (epa-file--find-file-not-found-function): + Reindent. + (epa-file--error-add-context): Use correct variables. Add + docstring. + * lisp/ffap.el (ffap-machine-p): + * lisp/gnus/nnmaildir.el (nnmaildir--emlink-p): Prefer + string-equal-ignore-case over case fiddling. + * lisp/gnus/gnus-search.el (gnus-search-run-query): Fix typo in + error re-signaling. + * lisp/ibuffer.el (ibuffer-confirm-operation-on): Prefer string + search over regexp matching where either will do. + * test/lisp/vc/vc-tests/vc-tests.el + (vc-test--run-maybe-unsupported-function): Pacify unused + condition-case error variable warnings (bug#72212). + +2026-03-11 Stefan Monnier <monnier@iro.umontreal.ca> + + etc/NEWS.26 (Changes in Emacs 26.1): List new names (for `C-h f`) + +2026-03-11 Stefan Monnier <monnier@iro.umontreal.ca> + + (subr-error-API): New test. Also, improve the etc/NEWS + + * test/lisp/subr-tests.el (subr-error-API): New test. + +2026-03-11 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/vc/smerge-mode.el (smerge--refine-apply-diff): Typo + +2026-03-11 Andrea Corallo <acorallo@gnu.org> + + Fix negated equality assumptions (bug#80327) + + * lisp/emacs-lisp/comp.el (comp--add-cond-cstrs): Skip + negated equality assumptions only for relational non-immediate + operands. Keep immediate false-branch constraints. + * test/src/comp-resources/comp-test-funcs.el + (comp-test-80327-hash, comp-test-80327-f): Add reproducer. + * test/src/comp-tests.el (comp-tests-bug-80327): Add regression + test. + +2026-03-11 Michael Albinus <michael.albinus@gmx.de> + + Improve tramp-tests.el + + * test/lisp/net/tramp-tests.el (ert-temp-file-prefix) + (ert-temp-file-suffix, ert--with-temp-file-generate-suffix) + (ert-with-temp-file, ert-with-temp-directory): Add them if they + don't exist. + (tramp--test-make-temp-name, tramp--test-kubernetes-p) + (tramp--test-supports-set-file-times-p): New defuns. + (tramp--test-make-temp-name): Use `tramp--test-make-temp-prefix'. + (tramp-test03-file-error, tramp-test20-file-modes) + (tramp-test22-file-times, tramp-test26-file-name-completion): + Adapt tests. + +2026-03-11 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/subr.el (run-hook-query-error-with-timeout): Avoid `%s` for lists + +2026-03-11 Phil Sainty <psainty@orcon.net.nz> + + Handle compressed filenames in `native--compile-async-skip-p' (bug#57627) + + * lisp/emacs-lisp/comp-run.el (native--compile-async-skip-p): + Process *.el.gz filenames as if they were *.el filenames. + +2026-03-10 Stefan Monnier <monnier@iro.umontreal.ca> + + (smerge-refine-regions): Refactor a bit and work between buffers + + * lisp/vc/smerge-mode.el (smerge--refine-chopup-region): + Replace `beg..end` arg with an overlay. + (smerge-refine-regions): Replace `beg` arg with an overlay. + (smerge--refine-prepare-regions, smerge--refine-apply-diff-1): + New functions, extracted from `smerge-refine-regions`. + (smerge--refine-apply-diff): New function. + (smerge-refine-regions): Use them. Also delete temp files right after + running `diff` rather than after applying diff's output. + +2026-03-10 Stefan Monnier <monnier@iro.umontreal.ca> + + (error-data): Delete function + + Remove `error-data` from the new error API: it is not really + compatible with a more abstract view of error descriptors, and + in practice it seems to be used only in two ways (both of them rare): + + - To add some contextual info to an error. We should maybe add + a dedicated support for that, but it's not clear what shape it + should take, ideally (there was a discussion about with Alan + and myself in emacs-devel a few years ago). + - To do some other massaging whose correctness is dubious anyway. + + * doc/lispref/control.texi (Handling Errors): Remove `error-data`. + + * lisp/epa-file.el (epa-file--find-file-not-found-function): Don't use + `error-data`. + (epa-file--error-add-context): New function, extracted from + `epa-file-insert-file-contents`. + (epa-file-insert-file-contents): Use it instead of `error-data`. + + * lisp/subr.el (error-data): Delete function. + +2026-03-10 Stefan Monnier <monnier@iro.umontreal.ca> + + test subdirectory: Use new error-API + + * test/lisp/vc/vc-tests/vc-tests.el + (vc-test--run-maybe-unsupported-function): Remove dummy branch in + `condition-case`. + * test/lisp/arc-mode-tests.el (define-arc-mode-test-on-type): + Use `error-slot-value`. + + * test/src/process-tests.el (process-tests--ignore-EMFILE): + * test/src/filelock-tests.el (filelock-tests-unlock-spoiled) + (filelock-tests-kill-buffer-spoiled): + * test/lisp/vc/vc-git-tests.el (vc-git-test--run): + * test/lisp/proced-tests.el (proced--assert-process-valid-cpu-refinement): + * test/lisp/emacs-lisp/pp-tests.el (pp-tests--sanity): + * test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-with-normal-env) + (edebug-tests-post-command): + * test/lisp/autorevert-tests.el (auto-revert--deftest-remote): + * test/infra/android/test-controller.el (ats-connect): + +2026-03-10 Stefan Monnier <monnier@iro.umontreal.ca> + + Use single-arg form of `signal` to re-throw an error + + * lisp/vc/smerge-mode.el (smerge-extend): + * lisp/vc/diff-mode.el (diff-beginning-of-file-and-junk): + * lisp/transient.el (transient--with-emergency-exit): + * lisp/textmodes/tex-mode.el (latex-forward-sexp): + * lisp/tar-mode.el (tar-mode): + * lisp/savehist.el (savehist--reload): + * lisp/progmodes/octave.el (inferior-octave-resync-dirs): + * lisp/progmodes/js.el (js--re-search-forward): + * lisp/plstore.el (plstore--decrypt): + * lisp/net/dbus.el (dbus-ignore-errors, dbus-register-signal) + (dbus-handle-event): + * lisp/mouse.el (mouse-drag-track, mouse-drag-region-rectangle): + * lisp/minibuffer.el (completion-pcm--find-all-completions): + * lisp/mail/rfc2231.el (rfc2231-parse-string): + * lisp/mail/rfc2047.el (rfc2047-encode-region): + * lisp/jit-lock.el (jit-lock-fontify-now): + * lisp/international/ja-dic-utl.el (skkdic-lookup-key): + * lisp/gnus/nnselect.el (nnselect-generate-artlist): + * lisp/gnus/mml-sec.el (mml-secure-epg-encrypt, mml-secure-epg-sign): + * lisp/gnus/mail-source.el (mail-source-fetch-pop) + (mail-source-check-pop): + * lisp/gnus/gnus-art.el (gnus-article-read-summary-keys): + * lisp/files.el (basic-save-buffer-2, files--ensure-directory) + (files--force, copy-directory): + * lisp/eshell/esh-io.el (eshell-output-object-to-target): + * lisp/epa.el (epa-decrypt-file, epa-verify-file, epa-sign-file) + (epa-encrypt-file, epa-decrypt-region, epa-verify-region) + (epa-sign-region, epa-encrypt-region, epa-delete-keys) + (epa-export-keys, epa-insert-keys): + * lisp/emacs-lisp/package.el (package--unless-error): + * lisp/emacs-lisp/multisession.el (multisession--read-file-value): + * lisp/emacs-lisp/lisp.el (up-list-default-function): + * lisp/desktop.el (desktop-kill): + * lisp/calendar/time-date.el (date-to-time): + * lisp/calendar/appt.el (appt-display-message): + * lisp/calc/calc.el (calc-do): + * lisp/bookmark.el (bookmark-handle-bookmark): + * src/fileio.c (report_file_errno): + * lisp/vc/vc.el (vc-checkout, vc-pull): Use `(signal err)` instead + of `(signal (car err) (cdr err))`. + +2026-03-10 Stefan Monnier <monnier@iro.umontreal.ca> + + Use the new error API functions + + * lisp/epa-file.el (epa-file--find-file-not-found-function): + Use `error-slot-value` and `error-data`. + (epa-file-insert-file-contents): Use `error-has-type-p`, + `error-slot-value`, and `error-data`. + + * lisp/jka-compr.el (jka-compr-insert-file-contents): + Use `error-has-type-p` and `error-slot-value` as well as new + re-signaling form of `signal`. + + * lisp/simple.el (minibuffer-error-function): Use `error-has-type-p`. + + * lisp/startup.el (startup--load-user-init-file): + Use `error-message-string`. + (command-line): Use `error-has-type-p` and `error-message-string`. + + * lisp/type-break.el (type-break-demo-life): + Use `error-message-string`. + + * lisp/emacs-lisp/bytecomp.el (batch-byte-compile-file): + Use `error-message-string` and `error-has-type-p`. + + * lisp/emacs-lisp/edebug.el (edebug-safe-eval, edebug-report-error) + (edebug-eval-expression): + * lisp/emacs-lisp/debug.el (debugger-eval-expression): + Use `error-message-string`. + + * lisp/emacs-lisp/ert.el (ert--should-error-handle-error): + Use `error-has-type-p` and `error-type`. + + * lisp/net/sasl.el (sasl-error): Use `define-error`. + + * lisp/net/tramp-compat.el (tramp-error-type-p): New function. + (tramp-permission-denied, tramp-compat-permission-denied): Use it. + + * lisp/progmodes/elisp-mode.el (elisp-completion-at-point): + Use `error-type-p`. + + * lisp/xt-mouse.el (turn-on-xterm-mouse-tracking-on-terminal) + (turn-off-xterm-mouse-tracking-on-terminal): Use `error-slot-value`. + + * lisp/simple.el (next-line, previous-line): Remove useless + `condition-case` handler, and hence the whole `condition-case`, and + then simplify. + + * lisp/gnus/nnrss.el (nnrss-insert): Use `with-demoted-errors`. + + * lisp/gnus/nnmaildir.el (nnmaildir--emlink-p, nnmaildir--enoent-p) + (nnmaildir--eexist-p): Use `error-has-type-p`. + (nnmaildir--new-number, nnmaildir-request-set-mark): Use single-arg + `signal`. + + * lisp/ffap.el (ffap-machine-p): Use `error-slot-value`. + + * lisp/emacs-lisp/comp.el (comp--native-compile): + Use `error-has-type-p` as well as single-arg `signal`. + + * lisp/net/ange-ftp.el (ange-ftp-hook-function): Use single-arg + `signal`. + + * lisp/ebuff-menu.el (electric-buffer-menu-looper): Use `error-has-type-p`. + * lisp/progmodes/ebrowse.el (ebrowse-electric-list-looper): + Use `error-has-type-p`. + (ebrowse-electric-position-looper): Make it an alias of + `ebrowse-electric-list-looper`. + + * lisp/ibuffer.el (ibuffer-confirm-operation-on): + * lisp/ls-lisp.el (ls-lisp--insert-directory): + * lisp/gnus/gnus-search.el (gnus-search-run-query): + * lisp/mail/mail-extr.el (mail-extr-safe-move-sexp): + * lisp/net/dbus.el (dbus-set-property): + * lisp/net/eudc-export.el (eudc-bbdbify-phone): + * lisp/net/imap.el (imap-fetch-safe): + * lisp/vc/vc.el (vc-root-dir): Use `error-slot-value` and + single-arg `signal` to re-signal. + +2026-03-10 Stefan Monnier <monnier@iro.umontreal.ca> + + Improve the error API + + Define new functions to manipulate error descriptors and + add support for `signal` to *re*signal a previous error. + + * src/eval.c (Fsignal): Make the second arg optional and document + the possibility of passing a whole error descriptor to re-signal it. + (signal_or_quit): Fix a few corner case issues when + DATA is `nil` and ERROR_SYMBOL is an error descriptor. + + * lisp/subr.el (error-type-p, error--p, error-type, error-data) + (error-has-type-p, error-slot-value): New function. + + * doc/lispref/control.texi (Handling Errors): Prefer "error descriptor" + to "error description". Use the new single-arg call to `signal` to + re-throw an error. + Document `error-type`, `error-data` and `error-slot-value`. + (Error Symbols): Document the new functions `error-type-p` and + `error-has-type-p`. + +2026-03-10 Sean Whitton <spwhitton@spwhitton.name> + + unfill-paragraph: Use most-positive-fixnum + + * lisp/textmodes/fill.el (unfill-paragraph): Use + most-positive-fixnum. + +2026-03-10 Stefan Monnier <monnier@iro.umontreal.ca> + + Fix `signal` calls where the data argument is not a list + + * test/src/thread-tests.el (threads-join-error): + * test/src/emacs-module-resources/mod-test.c (Fmod_test_signal): + * src/print.c (print_bind_overrides): + * lisp/url/url-future.el (url-future-finish, url-future-errored) + (url-future-call, url-future-cancel): Make sure signal's data is a list. + + * test/src/emacs-module-tests.el (mod-test-non-local-exit-signal-test): + Adjust accordingly. + +2026-03-10 Stefan Monnier <monnier@iro.umontreal.ca> + + Error handling clarifications found during error-API + + * lisp/simple.el (next-line, previous-line): Remove useless + `condition-case` handler, and hence the whole `condition-case`, and + then simplify. + + * lisp/emacs-lisp/comp.el (comp--error-add-context): New function. + (comp--native-compile): Use it. + + * lisp/gnus/nnrss.el (nnrss-insert): Use `with-demoted-errors`. + +2026-03-09 Sean Whitton <spwhitton@spwhitton.name> + + newcomers-presets: Drop after-save-hook entry + + * etc/themes/newcomers-presets-theme.el + (newcomers-presets-mode-enabled-local-modes): Remove + executable-make-buffer-file-executable-if-script-p. + +2026-03-09 Eli Zaretskii <eliz@gnu.org> + + Fix 'emacs-news-find-heading' + + * lisp/textmodes/emacs-news-mode.el (emacs-news-find-heading): + HEADING must be a complete line, otherwise we have false positives + and false negatives. (Bug#80569) + +2026-03-09 Stephen Gildea <stepheng+emacs@gildea.com> + + * lisp/time-stamp.el (time-stamp-warn-inactive): Doc string. + +2026-03-09 Sean Whitton <spwhitton@spwhitton.name> + + newcomers-presets: Always show the tab bar + + * etc/themes/newcomers-presets-theme.el (newcomers-presets): Set + tab-bar-show to 0. + +2026-03-09 Sean Whitton <spwhitton@spwhitton.name> + + Restore use of cl-member-if and cl-plusp to flymake.el + + * lisp/progmodes/flymake.el (flymake-goto-next-error): Use + cl-member-if not member-if and cl-plusp not plusp because this + is a `:core' ELPA package (bug#79930). + +2026-03-09 Yuan Fu <casouri@gmail.com> + + Ensure c-ts-mode tests are never stuck (bug#80565) + + * test/lisp/progmodes/c-ts-mode-tests.el: Don't prompt for + installing cpp grammar when they're not installed. + +2026-03-09 Dmitry Gutov <dmitry@gutov.dev> + + Fix Non-existent commands in flymake-diagnostics-buffer-mode-map + + * lisp/progmodes/flymake.el (flymake-diagnostics-buffer-mode-map): + Only bind 'n' and 'p' when 'next-error-this-buffer-no-select' is + defined. For releasing on ELPA (bug#79930). + Bump the package version to 1.4.4. + +2026-03-08 Philip Kaludercic <philipk@posteo.net> + + Mention newcomers theme on 'normal-mouse-startup-screen' + + * lisp/startup.el (startup-insert-newcomers-theme): Factor out + new function from 'normal-no-mouse-startup-screen'. + (normal-mouse-startup-screen, normal-no-mouse-startup-screen): + Call new function. + +2026-03-08 Stefan Monnier <monnier@iro.umontreal.ca> + + cl-seq.el: Prefer `:test` to `:if` + + * lisp/emacs-lisp/cl-seq.el (cl-remove-if, cl-remove-if-not) + (cl-delete-if, cl-delete-if-not, cl-substitute-if) + (cl-substitute-if-not, cl-nsubstitute-if, cl-nsubstitute-if-not) + (cl-find-if, cl-find-if-not, cl-position-if, cl-position-if-not) + (cl-count-if, cl-count-if-not, cl-member-if, cl-member-if-not) + (cl-assoc-if, cl-assoc-if-not, cl-rassoc-if, cl-rassoc-if-not) + (cl-subst-if, cl-subst-if-not, cl-nsubst-if, cl-nsubst-if-not): + Prefer the Common Lisp standard `:test` to the cl-lib specific `:if`. + +2026-03-08 Stefan Monnier <monnier@iro.umontreal.ca> + + iso-transl.el: Revert cosmetic change + + * lisp/international/iso-transl.el (iso-transl-char-map): + Re-add ineffective backslashes removed in in previous patch. + +2026-03-08 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/textmodes/fill.el (unfill-paragraph): Fix for wide chars. + +2026-03-08 shynur <shynur@outlook.com> + + * lisp/files.el (auto-mode-alist): Recognize /etc/profile as sh. + +2026-03-08 Eli Zaretskii <eliz@gnu.org> + + Use images in Emacs Lisp Intro manual (bug#80519) + + * doc/lispintro/emacs-lisp-intro.texi (Lists diagrammed) + (Symbols as Chest, kill-ring-yank-pointer, lambda): Use @image and + remove ASCII-art diagrams, which are now on separate *.txt files. + (header): Remove print-postscript-figures and its commentary. + + * doc/lispintro/Makefile.in (auxfiles): New file list. + (${buildinfodir}/%.txt, ${buildinfodir}/%.png): New targets. + (${buildinfodir}/eintr.info): Depend on ${auxfiles}. + (infoclean): Remove ${auxfiles}. + + * doc/lispintro/cons-1.png: + * doc/lispintro/cons-1.txt: + * doc/lispintro/cons-2.png: + * doc/lispintro/cons-2.txt: + * doc/lispintro/cons-2a.png: + * doc/lispintro/cons-2a.txt: + * doc/lispintro/cons-3.png: + * doc/lispintro/cons-3.txt: + * doc/lispintro/cons-4.png: + * doc/lispintro/cons-4.txt: + * doc/lispintro/cons-5.png: + * doc/lispintro/cons-5.txt: + * doc/lispintro/drawers.png: + * doc/lispintro/drawers.txt: + * doc/lispintro/lambda-1.png: + * doc/lispintro/lambda-1.txt: + * doc/lispintro/lambda-2.png: + * doc/lispintro/lambda-2.txt: + * doc/lispintro/lambda-3.png: + * doc/lispintro/lambda-3.txt: New files, from Matto Fransen + <matto@matto.nl>. + +2026-03-08 Eli Zaretskii <eliz@gnu.org> + + Fix mpuz under text-scaling + + * lisp/play/mpuz.el (mpuz-switch-to-window): Don't unconditionally + turn on 'mpuz-mode', as that kills all local variables. (Bug#80567) + +2026-03-07 Stefan Monnier <monnier@iro.umontreal.ca> + + iso-transl.el: Remove ineffective backslashes in previous patch + + * lisp/international/iso-transl.el (iso-transl-char-map): + Remove ineffective backslashes in previous patch. + +2026-03-07 Eli Zaretskii <eliz@gnu.org> + + Add "C-x 8" commands for letters with breeve + + * lisp/international/iso-transl.el (iso-transl-char-map): Add + Latin letters with breve. (Bug#80515) + +2026-03-07 Pip Cet <pipcet@protonmail.com> + + Fix infloop when decoding incomplete embedded UTF-8 input + + * src/coding.c (decode_coding_iso_2022): Record conversion result for + incomplete data. + +2026-03-07 kobarity <kobarity@gmail.com> + + Improve Python setup codes to avoid leaving global names + + * lisp/progmodes/python.el (python-shell-setup-code) + (python-shell-readline-detect): Improve Python code. (Bug#80551) + +2026-03-07 Eli Zaretskii <eliz@gnu.org> + + Improve documentation of 'define-keymap' + + * lisp/emacs-lisp/shortdoc.el (keymaps): Add example for adding + key bindings to an existing keymap. + * lisp/keymap.el (define-keymap): Doc fix. (Bug#80556) + +2026-03-07 Eli Zaretskii <eliz@gnu.org> + + Fix segfaults in 'kbd_buffer_get_event' + + * src/keyboard.c (kbd_buffer_get_event): Ignore selection-request + events when accessing the frame of an event. Suggested by dick + r. chiang <dick.r.chiang@gmail.com>. (Bug#80558) + +2026-03-06 Michael Albinus <michael.albinus@gmx.de> + + * lisp/recentf.el (recentf-exclude-file-by-extension-p): Fix thinko. + +2026-03-06 Martin Rudalics <rudalics@gmx.at> + + Additional fixes for 'get-mru-frame' (Bug#80397) + + * src/frame.c (delete_frame): Call 'get-mru-frame' safely and + with EXCLUDE-FRAME argument set up correctly. + * lisp/frame.el (get-mru-frames, get-mru-frame): Fix doc-strings. + +2026-03-06 Eli Zaretskii <eliz@gnu.org> + + Fix last change in recentf.el + + * lisp/recentf.el (recentf-exclude-ignored-extensions): Doc fix. + (recentf-exclude-file-by-extension-p): Rename from + `recentf-exclude-ignored-extensions'; all references changed. + Doc fix. + + * etc/NEWS: Improve wording of the entry which announces the + above. + +2026-03-05 Philip Kaludercic <philipk@posteo.net> + + Mention newcomer theme on "no-mouse" splash screen + + * lisp/startup.el (normal-no-mouse-startup-screen): Add a button + to toggle the "newcomers-presets" theme. + +2026-03-05 Stéphane Marks <shipmints@gmail.com> + + New user option and function 'recentf-exclude-ignored-extensions' + + * lisp/recentf.el (recentf-exclude-ignored-extensions): New + user option. + (recentf-exclude-ignored-extensions): New function. + * etc/NEWS: Announce the new option and function. + + (Bug#80347) + +2026-03-05 Sean Whitton <spwhitton@spwhitton.name> + + unfill-paragraph: Reimplement in terms of fill-region + + * lisp/textmodes/fill.el (unfill-paragraph): Reimplement in + terms of fill-region. + +2026-03-05 Sean Whitton <spwhitton@spwhitton.name> + + New user option vc-display-failed-async-commands + + * lisp/vc/vc-dispatcher.el (vc-display-failed-async-commands): + New user option. + (vc-do-async-command): Use it. + * doc/emacs/vc1-xtra.texi (General VC Options): + * etc/NEWS: Document it. + * lisp/vc/vc-dispatcher.el (vc-do-command): Adjust message to + begin "Failed" not "Done" when command exits non-zero. + * lisp/vc/vc.el (vc-checkin): Adjust message to end in + "...failed" not "...done" when async command exits non-zero. + +2026-03-05 Sean Whitton <spwhitton@spwhitton.name> + + vc-do-command: Tidy up some messaging + + * lisp/vc/vc-dispatcher.el (vc--inhibit-message): New defvar, + replacing the undeclared vc-inhibit-message. All uses changed. + (vc--command-message): New function, factored out. + (vc-do-command): Call it. + +2026-03-05 Martin Rudalics <rudalics@gmx.at> + + Fix segfault introduced by recent 'get-mru-frame' change + + * src/frame.c (delete_frame): Fix segfault when deleting a + frame and 'get-mru-frame' returns that frame. + +2026-03-05 Stéphane Marks <shipmints@gmail.com> + + Make 'frame-use-time' more reliable. (bug#80397) + + Walking the window tree is more reliable than using the selected + window. Implement 'get-mru-frame' on top of 'get-mru-frames' + using 'frame-use-time'. + + * lisp/frame.el (frame-use-time): Change to walk the window tree + for the specified frame. + (get-mru-frames): New defun. + (get-mru-frame): Change to call 'get-mru-frames'. + * doc/lispref/frames.texi: Update documentation. + * etc/NEWS: Update announcement. + +2026-03-04 Alan Third <alan@idiocy.org> + + Fix seg fault when image dimensions don't match (bug#80518) + + * src/image.c (four_corners_best): [USE_CAIRO] Reset the image + dimensions to real values. + (Fimage_transforms_p): Fix typo. + +2026-03-04 Michael Albinus <michael.albinus@gmx.de> + + Revert "Repair serious breakage in the batch tests." + + This reverts commit feac53141577161c32a7a6dfe75399a5ae98a7c1. + + This patch has deactivated 253 test cases without a sufficient reasoning. + Instead it speaks about a shotgun in its commite message. + + The patch is reverted because + + - It hasn't been discussed on emacs-devel. It should have, because it is + a serious change in our infrastructure (new official tag :nobatch). Any + documentation of this change, for example in test/README, is missing. + + - The proper way to deactivate such tests would have been + + (skip-when noninteractive) + + Even better to skip for the respective reasons. + + - There is no fault report. There is no information about how these tests + have failed. Since it hasn't been a problem so far for us, nobody will + work on a fix forever. + +2026-03-04 Stefan Monnier <monnier@iro.umontreal.ca> + + (flymake-start): Give a bit more info in the log + + * lisp/progmodes/flymake.el (flymake-start): Log the reason why + it's disabled when not starting a backend. + +2026-03-04 Sean Whitton <spwhitton@spwhitton.name> + + Rename 'any' to 'member-if' and deprecate 'cl-member-if' + + * lisp/subr.el (any): Rename from this ... + (member-if): ... to this. All uses changed. + (any): New function alias. + * lisp/emacs-lisp/cl-seq.el (cl-member-if): Mark obsolete. + * lisp/obsolete/cl.el (member-if): Delete obsolete function + alias. + * doc/lispref/lists.texi (List Elements): + * doc/misc/cl.texi (Lists as Sets): + * etc/NEWS: Document the change. + +2026-03-04 Sean Whitton <spwhitton@spwhitton.name> + + New command 'unfill-paragraph' + + * lisp/simple.el (unfill-paragraph): New command. + * doc/emacs/indent.texi (Indentation Commands): + * etc/NEWS: Document it. + +2026-03-04 Stéphane Marks <shipmints@gmail.com> + + In 'frame--purify-parameters' fix frame-inherited-parameters (Bug#80536) + + * lisp/frame.el (frame--purify-parameters): + 'frame-inherited-parameters' is a parameter list, not an alist. + +2026-03-03 Mattias Engdegård <mattias.engdegard@gmail.com> + + Revert "Rename 'any' to 'member-if' and deprecate 'cl-member-if'" + + This reverts commit 2bdf15f6d8293b21234cd236f39ce68f62e1f6c3. + + There is no consensus for this change. + +2026-03-03 Mattias Engdegård <mattias.engdegard@gmail.com> + + Faster JSON string serialisation (bug#80529) + + * src/json.c (json_out_string): + Optimise for runs of non-special ASCII chars. + + This seems to be a a substantial performance gain for long strings but a + smaller regression for short strings (up to 6 chars or thereabouts, + depending on cpu, compiler, and/or C library). Still likely worth it. + + Suggested by Pavel <cyberkm@gmail.com>. + +2026-03-03 Stefan Monnier <monnier@iro.umontreal.ca> + + eglot.el: Avoid `%s` for composite objects + + * lisp/progmodes/eglot.el (eglot--check-object, eglot--check-dspec) + (eglot-shutdown-all, eglot--connect, eglot--lsp-position-to-point) + (eglot--read-server, eglot-handle-notification, eglot-handle-request): + Avoid `%s` for composite objects. + (eglot--connect, eglot--format): Use `fboundp` rather than `functionp` + to check if something is defined. + (eglot--sig-info): Prefer `point-min`. + +2026-03-03 Manuel Giraud <manuel@ledu-giraud.fr> + + Add mirroring for special glyphs (bug#80440) + + See initial discussion here: + https://lists.gnu.org/archive/html/emacs-devel/2026-02/msg00400.html + + * lisp/international/characters.el (pairs): Populate + special-mirror-table. + * src/xdisp.c (produce_special_glyphs): Add two arguments. One + to identify the paragraph direction and one to identify that the + glyph is produced on the left hand side of a window. Mirror + glyph defined in the display table according to the new + special-mirror-table. Bidi mirroring always takes precedence. + (init_iterator, insert_left_trunc_glyphs, display_line) + (display_string): Call 'produce_special_glyphs' with new arguments. + (syms_of_xdisp) <special-mirror-table>: New char-table. + * etc/NEWS: Announce the change. + +2026-03-03 Alan Mackenzie <acm@muc.de> + + CC Mode: Handle mixed symbols and non-symbols in regexps + + This fixes bug#80507. + + * lisp/progmodes/cc-defs.el (c-make-keywords-re): When a mixed list + of symbols and non-symbols is presented to this function, put + "\_< .... \_>" brackets around the part which handles the symbols + in the resulting regexp. + +2026-03-03 Sean Whitton <spwhitton@spwhitton.name> + + Fix respecting vc-log-show-limit with new -change-log commands + + * lisp/vc/vc.el (vc-print-change-log, vc-print-root-change-log): + Respect vc-log-show-limit when there is no prefix argument (bug#80532). + +2026-03-03 Sean Whitton <spwhitton@spwhitton.name> + + Rename 'any' to 'member-if' and deprecate 'cl-member-if' + + * lisp/subr.el (any): Rename from this ... + (member-if): ... to this. All uses changed. + Implement '&key KEY-FN' for backwards compatibility. + (any): New function alias. + * lisp/emacs-lisp/cl-seq.el (cl-member-if): Make an alias for + 'member-if'. + * lisp/obsolete/cl.el (member-if): Delete obsolete function + alias. + * doc/lispref/lists.texi (List Elements): + * doc/misc/cl.texi (Lists as Sets): + * etc/NEWS: Document the change. + +2026-03-03 Sean Whitton <spwhitton@spwhitton.name> + + dired-diff: Fix default input in inserted subdirectory + + * lisp/dired-aux.el (dired-diff): Use default-directory, not + dired-current-directory, to determine whether the default input + is in another directory (bug#80497). Use a relative file name + to improve readability. + +2026-03-03 Sean Whitton <spwhitton@spwhitton.name> + + Add some settings to newcomers-presets + + * etc/themes/newcomers-presets-theme.el (newcomers-presets): Add + mode-line-compact, indent-tabs-mode, imenu-auto-rescan, + view-read-only, shell-command-prompt-show-cwd, after-save-hook, + etags-regen-mode, vc-deduce-backend-nonvc-modes, + vc-dir-save-some-buffers-on-revert, vc-find-revision-no-save, + vc-follow-symlinks, vc-use-incoming-outgoing-prefixes, + tab-bar-history-mode. + +2026-03-03 Yuan Fu <casouri@gmail.com> + + Make tree-sitter thing navigation handle nested parsers + + Not a bug report, but this is from the emacs-devel thread + "Tree-sitter: Transcendental things". + + Improve tree-sitter thing navigation functions to handle the + case where there are multiple nested parsers in the + buffer. Previously these functions just grab the node at point + and are limited to the parser of that node. Now these functions + will thoUrouly search through all parsers that covers point + before giving up. + + * doc/lispref/parsing.texi: Mention the change. + * lisp/treesit.el (treesit--some): New macro. + (treesit--thing-sibling): Use the new macro, add a new PARSER + parameter. + (treesit-thing-prev): + (treesit-thing-next): Add PARSER parameter. + (treesit-thing-at): + (treesit-navigate-thing): Use the new macro, add a new PARSER + parameter. Also pass the PARSER arg to recursive calls and + calls to treesit-thing-prev, etc. + +2026-03-03 Michael Albinus <michael.albinus@gmx.de> + + Fix grep defaults + + * lisp/progmodes/grep.el (grep-compute-defaults): Quote "xargs" + only for local hosts, running MS Windows. (Bug#80489) + +2026-03-02 Basil L. Contovounesios <basil@contovou.net> + + Initialize help-window-old-frame again + + Its sole initialization seems to have been accidentally dropped as + part of bug#25979. + + * lisp/help.el (help--window-setup): Set help-window-old-frame + before showing the help buffer (bug#80505). + +2026-03-02 Mattias Engdegård <mattias.engdegard@gmail.com> + + Simplify some overly defensive compiler macros + + * lisp/emacs-lisp/bytecomp.el (bytecomp--check-eq-args) + (bytecomp--check-memq-args, bytecomp--char-before) + (bytecomp--backward-char, bytecomp--backward-word): + Don't bother with malformed calls; macroexp--compiler-macro won't call + the handler unless the arity matches. + +2026-03-02 Mattias Engdegård <mattias.engdegard@gmail.com> + + Don't complain on compiler-macro arity mismatch + + * lisp/emacs-lisp/macroexp.el (macroexp--compiler-macro): + Don't warn if calling the compiler-macro handler elicits an arity error. + + This helps in two ways: no messy wrong-number-of-arguments errors during + macro-expansion, only the actual warnings emitted by the compiler, and + compiler-macros no longer need to be written defensively to avoid such + errors. + +2026-03-02 James Cherti <contact@jamescherti.com> (tiny change) + + sh-script: Mark + and * as punctuation rather than a symbol constituent + + In Bash, the characters + and * are not valid in variable names. + In sh, they are also disallowed in both function and variable + names. Treating them as punctuation is appropriate, as they most + commonly appear as operators. + + Examples: + . Arithmetic: $((var1*var2)) + . Compound assignment: list_name+=("item") + + * lisp/progmodes/sh-script.el (sh-mode-syntax-table): Mark + and * + as punctuation in the syntax table. (Bug#80280) + +2026-03-02 Martin Rudalics <rudalics@gmx.at> + + Handle side windows in 'ediff-setup-windows-plain-compare' (Bug#80415) + + * lisp/vc/ediff-wind.el (ediff-split-window-function) + (ediff-merge-split-window-function): Amend doc-strings. + (ediff-setup-windows-plain-compare): Simplify minibuffer window + handling, handle side windows (Bug#80415), avoid 'other-window' + and 'switch-to-buffer' calls. + +2026-03-01 Paul Eggert <eggert@cs.ucla.edu> + + Pacify clang -Wunused-result + + Problem reported by badli al rashid (bug#80512). + * lib-src/make-docfile.c (scan_c_stream): Avoid a tricky ungetc+getc. + +2026-03-01 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + + * admin/merge-gnulib (GNULIB_MODULES): Add memeq, streq and remove + stringeq, to adjust to a module splitup in Gnulib. + * lib/memeq.c, lib/streq.c, lib/strnul.c, m4/memeq.m4, m4/streq.m4: + New files. + * lib/string.c, m4/stringeq.m4: Remove. + +2026-03-01 Jacek Świerk <jacekswierk@gmail.com> (tiny change) + + Add Rust panic message pattern (bug#80403) + + * etc/compilation.txt: Add example. + * lisp/progmodes/compile.el (compilation-error-regexp-alist-alist): + New rule. + * test/lisp/progmodes/compile-tests.el (compile-tests--test-regexps-data) + (compile-test-error-regexps): Add test case. + +2026-03-01 Eli Zaretskii <eliz@gnu.org> + + Teach Emacs on MS-Windows how to export frame screenshots + + * src/w32image.c (w32_gdip_export_frame): New function. + (gdiplus_init): Load 'GdipCreateBitmapFromHBITMAP' from GDI+ DLL. + * src/w32fns.c (Fw32_export_frame): New primitive. + + * etc/NEWS: Announce the new primitive. + +2026-03-01 Michael Albinus <michael.albinus@gmx.de> + + Implement connection-local `command-line-max-length' + + * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): + Set connection-local value of `command-line-max-length'. + + * lisp/net/tramp.el (tramp-get-connection-local-criteria): New defsubst. + (tramp-set-connection-local-variables): Use it. + (tramp-set-connection-local-variables-for-buffer): + Use `connection-local-criteria-for-default-directory'. + +2026-03-01 Eli Zaretskii <eliz@gnu.org> + + Add a few more translations to iso-transl.el + + * lisp/international/iso-transl.el (iso-transl-char-map): Add a + few more translations for accented characters and arrows. (Bug#80515) + +2026-02-28 Sean Whitton <spwhitton@spwhitton.name> + + New variable 'multiple-terminals-merge-keyboards' + + * src/keyboard.c (syms_of_keyboard): + <multiple_terminals_merge_keyboards>: New variable. + (read_event_from_main_queue): Mention it in message. + * lisp/cus-start.el: Make it customizable. + * src/callint.c (Ffuncall_interactively): + * src/keyboard.c (Frecursive_edit): + * src/minibuf.c (read_minibuf): When its value is true, don't + enter single-kboard mode (bug#79892). + * admin/notes/multi-tty: + * etc/NEWS: Document it. + +2026-02-28 Paul Eggert <eggert@cs.ucla.edu> + + Don’t stuff keyboard input uselessly + + Also, document stuffing better. + * src/keyboard.c (stuff_buffered_input): + Give up on stuffing if it fails. + * src/sysdep.c (stuff_char): Return failure indication. + +2026-02-28 Basil L. Contovounesios <basil@contovou.net> + + Better project-find-file error in empty project + + * lisp/progmodes/project.el (project--read-file-name): Signal a + user-error and don't call project-read-file-name-function if the + file name collection is empty, since the default options for + project-read-file-name-function expect a cons (bug#80509). + (project-find-file-in): Avoid redundant consing for + vc-directory-exclusion-list in default case of include-all=nil. + +2026-02-28 Michael Albinus <michael.albinus@gmx.de> + + multiple-command-partition-arguments: Use connection-local value + + * lisp/subr.el (multiple-command-partition-arguments): Use + connection-local value for command-line-max-length. + +2026-02-28 Mattias Engdegård <mattias.engdegard@gmail.com> + + Correct manual entry for string-lessp + + * doc/lispref/strings.texi (Text Comparison): + The old text was wrong: non-ASCII unibyte chars overlap part of Unicode. + +2026-02-28 Mattias Engdegård <mattias.engdegard@gmail.com> + + Implement string> as a compiler macro instead of an optimisation + + This doesn't affect the generated code. + + * lisp/subr.el (string-greaterp): Add compiler macro. + * lisp/emacs-lisp/byte-opt.el (byte-optimize-string-greaterp): Remove. + +2026-02-28 Mattias Engdegård <mattias.engdegard@gmail.com> + + Eliminate double arity warnings + + Calls to some functions, such as 'cdr' and '%', would generate two + slightly different complaints if given the wrong number of arguments. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-subr-wrong-args): Remove. + Calls are replaced with 'byte-compile-normal-call'. + +2026-02-28 Sean Whitton <spwhitton@spwhitton.name> + + Show a message in locked frames in single-kboard mode + + * src/keyboard.c (kbd_buffer_get_event): Pass the event's frame + up to the caller by means of a new 'struct frame **' argument. + (read_event_from_main_queue): Show a message in locked frames in + single-kboard mode (bug#79892). + * src/xdisp.c (log_message): Factor out of message3. + (message3): Call it. + (message3_nolog): Rename to ... + (message3_frame_nolog): ... this. New 'struct frame *' argument + which causes temporarily switching to another frame when + displaying the message. + (message3_frame, message3_nolog): New functions. + * src/lisp.h: Declare message3_frame and message3_frame_nolog. + * admin/notes/multi-tty: Remove notes on showing a message. + +2026-02-28 Eli Zaretskii <eliz@gnu.org> + + Document that string ARG of 'kill-emacs' might not work + + * src/emacs.c (Fkill_emacs): + * doc/lispref/os.texi (Killing Emacs): Document that EXIT-DATA + being a string doesn't always work. (Bug#80435) + +2026-02-28 Richard Lawrence <rwl@recursewithless.net> + + Fix (or ...) patterns in 'cond*'/'match*' + + This fixes Bug#80121. + * lisp/emacs-lisp/cond-star.el (cond*-subpat): Add missing reference to + 'expression' when clearing multiple backtrack aliases. + +2026-02-28 Sean Whitton <spwhitton@spwhitton.name> + + Initialize command-line-max-length with sysconf(3) + + * lisp/subr.el (command-line-max-length): Move from here ... + * src/callproc.c (syms_of_callproc): <Vcommand_line_max_length>: + ... to here. Initialize by calling sysconf(3) if possible. + +2026-02-28 Peter Oliver <git@mavit.org.uk> (tiny change) + + New function rxvt-colorfgbg-background-mode + + * lisp/term/rxvt.el (rxvt-colorfgbg-background-mode): New + function (bug#80486). + (rxvt-set-background-mode): Call it. + +2026-02-28 Philip Kaludercic <philipk@posteo.net> + + Fix prompting of packages for 'package-report-bug' + + * lisp/emacs-lisp/package.el (package--query-desc): Load + 'package-alist' if this hasn't already occurred. + (package-report-bug): Drop unnecessary ALIST argument when + invoking 'package--query-desc'. + +2026-02-28 Philip Kaludercic <philipk@posteo.net> + + Improve 'package-report-bug' robustness + + * lisp/emacs-lisp/package.el (package-maintainers): Add + fallbacks if a package doesn't list a single maintainer. + (package-report-bug): Check if "emacs-devel@gnu.org" is listed + as a maintainer, in which case the message is redirected to + bug-gnu-emacs@gnu.org and the X-Debbugs-CC header is set. + + (Bug#80478) + +2026-02-28 Philip Kaludercic <philipk@posteo.net> + + Allow more fine configuration of package retention + + * lisp/emacs-lisp/package.el (package-upgrade-keep-previous): + Rename user option to 'package-retention-policy'. + (package--policy-type): New constant for policy types. + (package-retention-policy): New option. + (package-review-policy): Use new type constant. + (package--review-p): Rename and generalise to + 'package-matches-selector-p'. + (package-matches-selector-p): New function. + (package-upgrade, package-menu--mark-upgrades-1): Respect + 'package-retention-policy'. + * doc/emacs/package.texi (Package Installation): Document new option. + * etc/NEWS: Update NEWS entry. (Bug#79957) + +2026-02-28 Philip Kaludercic <philipk@posteo.net> + + Indicate if 'package-isolate' had to download a package + + * lisp/emacs-lisp/package.el (package-isolate): Change + formatting to indicate dependencies to include a note if the + package was downloaded in a temporary directory. + +2026-02-28 Philip Kaludercic <philipk@posteo.net> + + Fix 'package-isolate' in combination with quickload + + * lisp/emacs-lisp/package.el (package-isolate): Call + 'package--activate-all' directly, to ensure that all the package + directories are properly loaded. + +2026-02-28 Jeremy Bryant <jb@jeremybryant.net> + + Add option to keep previous package versions on upgrade + + This change adds a conditional to keep old package versions on upgrade. + This allows users to keep running multiple Emacsen without a package + upgrade in one Emacs breaking another running Emacs. + + * lisp/emacs-lisp/package.el (package-upgrade-keep-previous): + New boolean user option. + (package-upgrade): Use it. + (package-menu--mark-upgrades-1): Use it. + (package-menu--find-upgrades): Make consistent with new option. + * etc/NEWS: Announce it. + + (Bug#79957) + +2026-02-27 Boris Buliga <boris@d12frosted.io> + + Fix macOS 26 scrolling lag and input handling issues (bug#80268) + + macOS 26 introduced new event processing behavior that causes scrolling + lag and input handling problems in Emacs. This patch disables two + features via NSUserDefaults when built against the macOS 26 SDK: + - NSEventConcurrentProcessingEnabled + - NSApplicationUpdateCycleEnabled + + This fix is based on the equivalent patch in emacs-mac by Mitsuharu + Yamamoto. See: https://bitbucket.org/mituharu/emacs-mac/commits/e52ebfd + + * src/nsterm.m (ns_term_init): Disable problematic event processing + when built for macOS 26+. + +2026-02-27 Stefan Monnier <monnier@iro.umontreal.ca> + + emacs-lisp-intro.texi: Eliminate duplicate ASCII art + + * doc/lispintro/emacs-lisp-intro.texi (print-postscript-figures): + Set it only if we're outputting TeX. + (Lists diagrammed, Lists diagrammed, Lists diagrammed) + (Lists diagrammed, Lists diagrammed, Symbols as Chest) + (kill-ring-yank-pointer, lambda): Presume that + `print-postscript-figures` is set only for TeX output and remove + the `@tex...@end tex` around `@image` which do not seem relevant any more. + +2026-02-27 Eli Zaretskii <eliz@gnu.org> + + Fix bug on MS-Windows with frame title when system-name is non-ASCII + + * src/w32.c (sys_gethostname): Convert system name to UTF-8. + Ensure the buffer passed to 'gethostname' is large enough. + (Bug#80472) + +2026-02-27 Sean Whitton <spwhitton@spwhitton.name> + + New 'log-outstanding' value for vc-log-view-type + + This fixes vc-hg-print-log's choice of -r arguments to 'hg log'. + + * lisp/vc/vc.el (vc-log-view-type): New 'log-outstanding' value. + (vc-log-outstanding): Pass it. + * lisp/vc/vc-git.el (vc-git-log-view-mode): + * lisp/vc/vc-hg.el (vc-hg-print-log, vc-hg-log-view-mode): Treat + 'log-outstanding' the same as 'log-outgoing'. + +2026-02-27 Sean Whitton <spwhitton@spwhitton.name> + + Fix renaming directories in VC repositories + + * lisp/dired-aux.el (dired-rename-file): When determining + whether to call vc-rename-file, use vc-responsible-backend + instead of vc-backend when FILE is a directory. + * lisp/vc/vc.el (vc-rename-file): Support renaming directories. + +2026-02-26 Richard Lawrence <rwl@recursewithless.net> + + Fix `diary-rrule' recurrence rule calculation (Bug#80460) + + Thanks to TAKAHASHI Yoshio for reporting and for fixing one of + the typos. In addition to the reported bug involving + :include/:exclude, testing revealed that the provided RRULE + COUNT clause was also not being handled correctly; this change + also fixes that. + * lisp/calendar/diary-icalendar.el (diary-rrule): Handle + recurrence rules with a COUNT clause. + * lisp/calendar/icalendar-recur.el + (icalendar-recur-recurrences-in-interval): Fix a couple of + typos that caused RDATE/EXDATE calculations to fail. + * test/lisp/calendar/diary-icalendar-tests.el + (diary-icalendar-test-rrule-bug-80460): New test for this bug. + +2026-02-26 Mattias Engdegård <mattias.engdegard@gmail.com> + + Upgrade 'equal' from side-effect-free to error-free + + * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns) + (side-effect-and-error-free-fns): 'equal' and + 'equal-including-properties' no longer signal 'circular-list'; while + they do error on very deep structures, that is more of a resource limit + so let's overlook that. + +2026-02-26 Mattias Engdegård <mattias.engdegard@gmail.com> + + Simplify peephole optimisation rule + + * lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): + Remove some obsolete dynamic variable optimisations that no longer + improve any code. Fix broken logging (thanks Pip). + +2026-02-26 Yuan Fu <casouri@gmail.com> + + Make c-ts-common-comment-start-skip public + + * lisp/progmodes/c-ts-common.el: + (c-ts-common-comment-start-skip): Change to public. + (c-ts-common-comment-2nd-line-anchor): + (c-ts-common-comment-setup): Use it. + +2026-02-26 Arsen Arsenović <arsen@aarsen.me> (tiny change) + + c-ts-mode: Don't assume comment-start-skip is set + + This patch makes it easier to use the existing C and C++ + language support in other languages. Without this patch, if the + outer mode sets some specific and more accurate + comment-start-skip value, or perhaps leaves it unset, + indentation will break. + + * lisp/progmodes/c-ts-common.el (c-ts-common--comment-start-skip): + Declare to the value c-ts-common-comment-setup used to set as + comment-start-skip. + (c-ts-common-comment-setup): Use it, rather than hardcoding. + (c-ts-common-comment-2nd-line-anchor): Use it, rather than + comment-start-skip. This makes it easier to reuse C/++ + indentation rules in other TS modes for embedding C/++ segments + in other languages. + +2026-02-26 Eric S. Raymond <esr@thyrsus.com> + + Repair another test bollixed by aggressive optimization. + + Repair ab ecal test by making a variable kexical, + + Complete the test set for floatfns,c. + + Tesrts for the portable primitives in fileio.c. + + Tests for primitives in coding.c and charset.c. + + Tests for primitives from the character.c module. + +2026-02-26 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/vc/smerge-mode.el (smerge-refine-shadow-cursor): Make it thinner + + OTOH a thickness of 1 pixel is a bit too thin on my HiDPI + displays, but 2 is too thick on non-HiDPI displays, at least with + my default smallish font. + I originally favored the HiDPI displays and large fonts, + thinking it's a more common situation nowadays, but I changed my + mind because the "too thick" problem seems actually more severe + because it's occasionally bad enough that it's unclear which + cursor is the real one. + +2026-02-26 Eric S. Raymond <esr@thyrsus.com> + + Tests for the lreaf.c amd print.c primitives. + +2026-02-25 Eric S. Raymond <esr@thyrsus.com> + + Tests for remaining functions iun eval.c. + + Completing test coverage for dataa.c orimitives. + + More correctness tesrs for orinitives from fns.c. + + More tests for edit functions, buffers, and markers. + + Added more buffer/marker/editing test coverage. + + Category/charset/coding + char-table tests. + + More test coverage improvements. + +2026-02-25 Eric S. Raymond <esr@thyrsus.com> + + Repair serious breakage in the batch tests. + + There were a bunch of tests that were breaking make check and should + never be run in batch mode, because they do things like assuming there + is a controlling tty or assuming we can access network services when + we can't (e/g. in a CI/CD environment). I have shotgunned this + problem by tagging all the failing tests with :nobatch and then + changing the default and expensive selectors so make check won't barf + all over its shoes. + + As many of these :nobatch should be individually removed as possible, after + upgrading the test harness to mock the environmental stuff they need. + Investigate these failures with "make check-nobatch". + +2026-02-25 Eric S. Raymond <esr@thyrsus.com> + + More test coverage improvements. + + Bignum corner-case tests in data-tests.el. + More buffer-primitive tests in editfns-test.el + Some condition-case tesrs in eval-tests.el. + And another marker-primitive test in marker-tests.el. + +2026-02-25 Eric S. Raymond <esr@thyrsus.com> + + More test coverage improvements for ERT. + + In marker-tests.el, editfbs-tests.el, and data-tests.el. + +2026-02-25 Eric S. Raymond <esr@thyrsus.com> + + Crrections to tedt coverrage extensuion after bootstrap build. + + Files: data-tests.el, editfns-tests.el. + +2026-02-25 Eric S. Raymond <esr@thyrsus.com> + + Improve test coverage of builtin predicates. + +2026-02-25 Sean Whitton <spwhitton@spwhitton.name> + + New function multiple-command-partition-arguments + + * lisp/subr.el (command-line-max-length): New variable. + (multiple-command-partition-arguments): New function. + * doc/lispref/processes.texi (Shell Arguments): + * etc/NEWS: Document them. + * test/lisp/subr-tests.el + (subr-multiple-command-partition-arguments): New test. + +2026-02-25 Stefan Monnier <monnier@iro.umontreal.ca> + + (define-treesit-generic-mode): Improve autoloading support (bug#80480) + + * lisp/treesit-x.el (define-treesit-generic-mode): Mark it as + `(autoload-macro expand)`. + Don't autoload the `treesit-language-source-alist` setting. + Generate simpler code for the common case where AUTO-MODE is a string. + +2026-02-25 Eric S. Raymond <esr@thyrsus.com> + + Tests for 2 marker primitives previously not covered. + + - insertion-type + - last-position-after-kill + +2026-02-25 Eric S. Raymond <esr@thyrsus.com> + + Tests for 7 editor primitives previously not covered. + + - byte-to-position + - byte-to-string + - insert-byte + - insert-buffer-substring + - insert-before-markers-and-inherit + - field-string-and-delete + - constrain-to-field + +2026-02-25 Liu Hui <liuhui1610@gmail.com> + + calendar-check-holidays: Call calendar-increment-month + + * lisp/calendar/holidays.el (calendar-check-holidays): Call + calendar-increment-month (bug#80476). + +2026-02-25 Michael Albinus <michael.albinus@gmx.de> + + Make ert more robust + + * lisp/emacs-lisp/ert.el (ert-run-test): Check, that `begin-marker' + is still valid. The *Messages* buffer could have been deleted + during test run. + +2026-02-24 Mattias Engdegård <mattias.engdegard@gmail.com> + + Fix eglot-tests on MacOS (bug#80479) + + * test/lisp/progmodes/eglot-tests.el (eglot--call-with-fixture): + Normalise 'temporary-file-directory' to stave off problems that + occur when it contains symlinks, which is common on MacOS. + +2026-02-24 Mattias Engdegård <mattias.engdegard@gmail.com> + + Speed up 'equal'-comparison of vectorlike objects + + * src/fns.c (internal_equal_1): Switch on the vectorlike type instead of + using a sequence of type predicates. + +2026-02-24 Mattias Engdegård <mattias.engdegard@gmail.com> + + Compare circular lists in 'equal' without error (bug#80456) + + * src/lisp.h (FOR_EACH_TAIL_INTERNAL): Divvy up the code into... + (FOR_EACH_TAIL_BASIC, FOR_EACH_TAIL_STEP_CYCLEP): ...these macros, + so that they can be used in more flexible ways. + * src/fns.c (internal_equal_1): Detect circular lists and call... + (internal_equal_cycle): ...this function that keeps comparing + but now detecting cycles in the other argument. + + * lisp/emacs-lisp/testcover.el (testcover-after): + Remove unnecessary error handling. + * test/src/fns-tests.el (test-cycle-equal): Adapt and extend. + * test/lisp/emacs-lisp/testcover-resources/testcases.el + (testcover-testcase-cyc1): Remove case that no longer applies. + + * doc/lispref/objects.texi (Equality Predicates): Update. + * etc/NEWS: Announce. + +2026-02-24 Sean Whitton <spwhitton@spwhitton.name> + + Fix "End" key in PuTTY and older GNU screen + + * lisp/term/xterm.el (xterm-alternatives-map): Map <select> to + <end> (bug#80473). + +2026-02-24 Juri Linkov <juri@linkov.net> + + Revert "Unify tab-bar with window/frame times (bug#80465)" + + This reverts commit e4b3fa4a00761b6644ecf28ae64138a82bddb07d. + It breaks the recency order of multi-session tabs. + +2026-02-23 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/files.el (create-file-buffer): Remove left-over comment + + It should have been removed as part of commit 1a724cc2d2e7. + +2026-02-23 Juri Linkov <juri@linkov.net> + + Fix treesit-show-paren-data to match only 2 children nodes or more + + * lisp/treesit.el (treesit-show-paren-data--categorize): + Ignore parent that has less than two children (bug#80475). + This ensures the distinct first and last node. + +2026-02-23 Stéphane Marks <shipmints@gmail.com> + + Unify tab-bar with window/frame times (bug#80465) + + Change 'float-time' to 'window-use-time'. One step closer to + "recent" tab selection across all frames with unified pseudo + clocks. + + * lisp/tab-bar.el (tab-bar--tab): Use 'window-use-time'. + (tab-bar--current-tab-make): Add time property. + +2026-02-23 Spencer Baugh <sbaugh@janestreet.com> + + Use an idle timer for completion-eager-update + + Like how completion-eager-display uses an idle timer, also use + one for completion-eager-update, and in fact unify the idle + timers to just one to avoid unnecessary duplicate updates. + + * lisp/minibuffer.el (completions--should-show-p): New function. + (completions--background-update, completion-help-at-point): Call + it. + (completions--background-update-timer) + (completions--start-background-update): Start an idle timer to + call background-update. (bug#80055) + (completions--start-eager-display, completions--after-change): + Call start-background-update. + +2026-02-23 Steven Allen <steven@stebalien.com> + + Fix arguments to project--buffer-check when reading a project buffer + + * lisp/progmodes/project.el (project--read-project-buffer): Pass the + buffer object to `project--buffer-check', not the (BUF-NAME . BUF-OBJ) + cons. + +2026-02-23 Jacob S. Gordon <jacob.as.gordon@gmail.com> + + New prefix argument for pp-eval-expression + + * lisp/emacs-lisp/pp.el (pp-eval-expression): New optional + argument INSERT-P. + * etc/NEWS: Announce change. + +2026-02-23 Paul Nelson <ultrono@gmail.com> + + Fix VC Git error when patch matches staged changes + + * lisp/vc/vc-git.el (vc-git--checkin): Check that patch-string + is not empty before applying it. This prevents an error when + the patch exactly matches the index (bug#80228). + * test/lisp/vc/vc-git-tests.el + (vc-git-test-checkin-patch-staged-diff): New test. + +2026-02-23 Collin Funk <collin.funk1@gmail.com> + + Add SHA-3 support to secure-hash + + * admin/merge-gnulib (GNULIB_MODULES): Add crypto/sha3-buffer. + * lib/sha3.c: New file, imported by running admin/merge-gnulib. + * lib/sha3.h: Likewise. + * m4/sha3.m4: Likewise. + * lib/gnulib.mk.in: Updated by admin/merge-gnulib. + * m4/gnulib-comp.m4: Likewise. + * src/fns.c: Include sha3.h + (Fsecure_hash_algorithms): Add Qsha3_224, Qsha3_256, Qsha3_384, and + Qsha3_512. + (secure_hash): Likewise. + (Fsecure_hash): List the SHA-3 algorithms in the docstring. + (syms_of_fns): Define Qsha3_224, Qsha3_256, Qsha3_384, and Qsha3_512. + * test/lisp/net/gnutls-tests.el (gnutls-tests-internal-macs-upcased): + Filter out the new SHA-3 algorithms since they are currently not + implemented in gnutls. + * test/src/fns-tests.el (test-secure-hash): Add test cases for the new + algorithms. + * doc/lispref/text.texi (Checksum/Hash): List the SHA-3 algorithms. + Mention that they are considered secure. + * etc/NEWS: Mention the new feature. + +2026-02-23 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + +2026-02-22 Stefan Monnier <monnier@iro.umontreal.ca> + + Fix broken `FOO-mode-indent-offset` convention + + Variable names to control indentation have never been + standardized, but over the years some conventions have naturally + arisen, mostly the use of `FOO-indent-offset`, + `FOO-basic-offset`, or `FOO-indent-level` for `FOO-mode`. + + When the new TS modes were introduced, a mistake was made that + I failed to catch at the time, where those modes used + `FOO-mode-indent-offset` instead of the "standard" `FOO-indent-offset`. + In order to save packages like `editorconfig-mode` and `indent-bars-mode` + from having to cater to yet-another-convention, rename those + vars to what they should have been all along. + + * lisp/editorconfig.el (editorconfig-indentation-alist): Remove the + ad-hoc entries for the deviating modes using `FOO-mode-indent-offset`. + + * lisp/textmodes/toml-ts-mode.el (toml-ts-indent-offset): + * lisp/textmodes/mhtml-ts-mode.el (mhtml-ts-js-css-indent-offset) + (mhtml-ts--js-css-indent-offset): + * lisp/textmodes/html-ts-mode.el (html-ts-indent-offset): + * lisp/progmodes/typescript-ts-mode.el (typescript-ts-indent-offset): + * lisp/progmodes/php-ts-mode.el (php-ts-indent-offset) + (php-ts-js-css-indent-offset, php-ts-html-indent-offset): + * lisp/progmodes/json-ts-mode.el (json-ts-indent-offset): + * lisp/progmodes/java-ts-mode.el (java-ts-indent-offset) + (java-ts-method-chaining-indent-offset): + * lisp/progmodes/go-ts-mode.el (go-ts-indent-offset): + * lisp/progmodes/csharp-mode.el (csharp-ts-indent-offset): + * lisp/progmodes/cmake-ts-mode.el (cmake-ts-indent-offset): + * lisp/progmodes/c-ts-mode.el (c-ts-indent-offset): + Rename `FOO-mode-indent-offset` to `FOO-indent-offset`, + with obsolete alias. + +2026-02-22 Basil L. Contovounesios <basil@contovou.net> + + Improve m4-mode font lock + + Emacs 28 started fontifying several 'composite' (non-builtin) GNU M4 + macros which, while listed under '(m4) Macro index', are not defined + by GNU M4, and are included in its manual for illustrative purposes. + + These macro keywords range from clearly misleading (e.g., 'example', + which the GNU M4 manual explicitly describes as nonexistent), + to common in Autoconf's M4sugar layer (e.g., 'm4_quote'), + to variations thereof (e.g., 'foreachq'). + + It is arguably too late to revert all of these additions, so this + patch selects a handful to remove, and categorizes the rest; this + should make it easier to hide some categories behind a font lock + level or user option in the future, if desired. + + This patch reverts the Emacs 28 addition of 'example', and removes + the older 'file', 'line', and 'gnu' macros. GNU M4 renamed 'gnu' to + '__gnu__' already in 1990; and I couldn't find references to the + other two which exist as '__file__' and '__line__', respectively. + + The remaining macros are partitioned into three sets: built-in, + M4sugar-like, and other (bug#80412). For discussion, see also: + https://lists.gnu.org/r/emacs-devel/2025-10/msg00357.html + + * lisp/progmodes/m4-mode.el (m4-program-options): Remove stale + commentary. + (m4--macro-list): Remove, replacing with... + (m4--builtin, m4--autoconf, m4--composite): ...these new rx + definitions. All uses changed. Remove 'example', 'file', 'gnu', + and 'line' as keywords. + (m4-font-lock-keywords): For consistency with real #-comments, + fontify dnl macro with font-lock-comment-delimiter-face, and only + the rest of its line with font-lock-comment-face. Fontify argument + references with font-lock-variable-use-face rather than + font-lock-variable-name-face. Use font lock faces rather than their + eponymous but obsolete variables. Remove redundant entries for $@ + and $*. Prefer shy regexp groups where applicable. + (m4-mode-syntax-table): Quote syntactically special characters. + (m4-m4-buffer): DRY using m4-m4-region. + (m4-m4-region): Take region bounds as optional arguments, as + recommended under '(elisp) The Mark'. Quote shell command. + Support non-contiguous regions. + (m4-current-defun-name): Recognize m4 backtick in addition to + Autoconf bracket. Prefer shy regexp groups where applicable. + (m4-mode): Simplify font-lock-defaults. + + * test/lisp/progmodes/m4-mode-resources/font-lock.m4: + * test/lisp/progmodes/m4-mode-tests.el: New test files. + +2026-02-22 Basil L. Contovounesios <basil@contovou.net> + + Fix apropos-print window selection + + The call to get-buffer-window doesn't take into account other + frames, and in theory may even return a window other than the one + just displayed. Work around this by buffer-locally mapping the + buffer to the window used by with-output-to-temp-buffer (bug#46034). + + * lisp/apropos.el (apropos--window): New buffer-local variable. + (apropos--set-window): New hook function. + (apropos-print): Add it to the local temp-buffer-show-hook before + the end of with-output-to-temp-buffer. Check apropos--window first, + falling back on a get-buffer-window across visible frames. + +2026-02-22 Michael Albinus <michael.albinus@gmx.de> + + * src/dbusbind.c: Include fcntl.h if needed. (Bug#80373) + +2026-02-22 Michael Albinus <michael.albinus@gmx.de> + + Fix use of older OpenSSH version in Tramp + + * lisp/net/tramp-sh.el (tramp-methods) <scp, scpx, rsync, ssh, sshx>: + Adapt `tramp-login-args' argument. (Bug#80464) + (tramp-ssh-setenv-term): New defvar. + (tramp-ssh-setenv-term): New defun. + (tramp-do-copy-or-rename-file-out-of-band) + (tramp-maybe-open-connection): Use it. + + * lisp/net/tramp.el (tramp-methods, tramp-signal-hook-function): + Extend docstring. + +2026-02-22 Liu Hui <liuhui1610@gmail.com> + + Support displaying more months in the calendar + + * lisp/calendar/calendar.el (calendar-month-edges): Fix typo. + (calendar-total-months): New variable. + (calendar-get-month-range, calendar-get-date-range) + (calendar--month-overlap-p, calendar-month-visible-p) + (calendar-nongregorian-date-visible-p): New functions. + (calendar-nongregorian-visible-p): Declare obsolete. + (calendar-recompute-layout-variables, calendar-generate): + Replace fixed month numbers with 'calendar-total-months'. + (calendar-cursor-to-date, calendar-date-is-visible-p): Support + the calendar with more than three months. + (calendar-mode): Make some variables buffer-local to allow + calendar-mode buffers showing different number of months. + (calendar-mode-map): Use new command names. + + * lisp/calendar/cal-move.el (calendar-goto-today): Always move + the cursor to today's date. + (calendar--show-month-at-edge): New function. + (calendar-recenter, calendar-forward-day): Support the calendar + with more than three months. + (calendar-forward-month, calendar-end-of-month) + (calendar-beginning-of-year, calendar-end-of-year): Place the + new month at the edge instead of the second month segment, to + prevent the cursor from jumping back and forth. This is + consistent with the behavior of calendar-forward-day/week. + (calendar-scroll-left): Maintain the relative position of the + cursor with respect to the window, when the old date is out of + view. + (calendar-scroll-left-three-months) + (calendar-scroll-right-three-months): Replace the fixed month + number with the actual number of months. Rename ... + (calendar-scroll-calendar-left, calendar-scroll-calendar-right): + ... to new commands. Make old names as aliases and mark them + obsolete. + (calendar-show-more-months, calendar-show-fewer-months): New + commands. + + * lisp/calendar/cal-menu.el (cal-menu-holiday-window-suffix): + Use the actual date range instead of three months. + (cal-menu-scroll-menu, cal-menu-global-mouse-menu): Use new + command names and update description. + + * lisp/calendar/holidays.el (holidays, list-holidays) + (calendar-check-holidays, holiday-in-range): Use + calendar-total-months. + (calendar-list-holidays, holiday-fixed, holiday-float) + (holiday-sexp): Replace displayed-year/month with the actual + calendar range. + (holiday-after, holiday-easter-etc-abs) + (holiday-greek-orthodox-easter-abs): New functions. + (holiday-advent, holiday-easter-etc) + (holiday-greek-orthodox-easter): Look up holidays in all visible + years instead of current displayed-year. + + * lisp/calendar/solar.el (solar-equinoxes-solstices): Search + equinoxes and solstices in all visible months. + (solar-equinoxes-solstices-1): New function. + + * lisp/calendar/lunar.el (lunar-phase-list): Add optional + argument. + (calendar-lunar-phases): Use visible calendar range. + + * lisp/calendar/cal-china.el (holiday-chinese-new-year) + (holiday-chinese-winter-solstice, holiday-chinese-qingming) + (holiday-chinese): Replace displayed-year/month with the actual + calendar range, and look up holidays in all visible years. + + * lisp/calendar/cal-julian.el (holiday-julian): Use + calendar-nongregorian-date-visible-p because there may exist + more than one corresponding dates when the calendar shows more + months. + + * lisp/calendar/cal-bahai.el (holiday-bahai): Support calendar + with more than three months. + (holiday-bahai-new-year, holiday-bahai-twin-holy-birthdays): + Look up holidays in all visible years. + (holiday-bahai-new-year-1, holiday-bahai-twin-holy-birthdays-1): + New functions. + + * lisp/calendar/cal-hebrew.el (calendar-hebrew-date-is-visible-p) + (holiday-hebrew, calendar-hebrew-mark-date-pattern): Support + calendar with more than three months, in which more than one + holidays may exist. + (holiday-hebrew-rosh-hashanah-1, holiday-hebrew-hanukkah-1) + (holiday-hebrew-passover-1): New functions. + (holiday-hebrew-rosh-hashanah, holiday-hebrew-hanukkah) + (holiday-hebrew-passover, holiday-hebrew-tisha-b-av): Look up + holidays in all visible years. + + * lisp/calendar/cal-islam.el (holiday-islamic): Support calendar + with more than three months. + (holiday-islamic-new-year): Find holidays in all visible years. + + * lisp/calendar/diary-lib.el (diary-mark-sexp-entries) + (calendar-mark-days-named, calendar-mark-date-pattern) + (calendar-mark-complex): Use the displayed range instead of the + three-month range. + (calendar-mark-1): Fix marking dates in calendar with more than + three months. + + * test/lisp/calendar/holidays-tests.el + (holidays-test-holiday-easter-etc, holidays-test--get-holidays) + (holidays-test-more-months): New test file. + + * doc/emacs/calendar.texi: Mention new commands and update + related description. + * etc/NEWS: Announce new commands. (bug#80099) + +2026-02-22 Eli Zaretskii <eliz@gnu.org> + + Fix absolute cursor positioning in term.el + + * lisp/term.el (term-handle-ansi-escape): Cursor Character + Absolute uses one-based column numbers; adjust to Emacs's + zero-based column numbering. (Bug#80458) + +2026-02-22 Michael Albinus <michael.albinus@gmx.de> + + * lisp/net/tramp.el (tramp-signal-hook-function): Extend docstring. + +2026-02-22 Stéphane Marks <shipmints@gmail.com> + + New user option 'after-delete-frame-select-mru-frame' (bug#80397) + + Users can revert to the old 'delete-frame' behavior of selecting + the oldest frame in 'frame-list' rather than the most-recently + used frame. + + * src/frame.c (delete_frame): Consult + 'after-delete-frame-select-mru-frame'. + (syms_of_frame): New defvar + 'after-delete-frame-select-mru-frame'. + * etc/NEWS: Reflect the new user option. + +2026-02-22 Rahul Martim Juliato <rahul.juliato@gmail.com> + + Add support for hiding markup delimiters in markdown-ts-mode + + * lisp/textmodes/markdown-ts-mode.el + (markdown-ts-hide-markup): New defcustom controlling + visibility of markup delimiters. + (markdown-ts--fontify-delimiter): Fontify delimiter nodes and + conditionally apply invisibility. + (markdown-ts--set-hide-markup): Internal helper to update + invisibility state. + (markdown-ts-toggle-hide-markup): Interactive command to toggle + delimiter visibility. + (markdown-ts-setup): Initialize delimiter hiding according to + 'markdown-ts-hide-markup' and register managed properties. + (markdown-ts--treesit-settings): Use + 'markdown-ts--fontify-delimiter' for delimiter nodes. + (require 'outline): Ensure outline faces are available so + headings are fontified correctly on first load. + +2026-02-22 Paul Eggert <eggert@cs.ucla.edu> + + Stop ENUM_BF worrying about gcc -std=c89 -pedantic + + * src/lisp.h (ENUM_BF): Modernize ENUM_BF doc for latest compilers + that still have a beef with enum bitfields. Simplify by dropping + support for ‘gcc -std=c89 -pedantic’, as it’s been many years + since Emacs worked with C89, for other reasons. + +2026-02-22 Paul Eggert <eggert@cs.ucla.edu> + + Port Lisp_Fwd to strict C bitfields + + ISO C does not require C compilers to support enum bitfields. + Problem found with IBM XL C for AIX 16.1 (2018), which IBM + supports through 2029. + * src/lisp.h (struct Lisp_Fwd): Use ENUM_BF instead of declaring + enum bitfields directly. + +2026-02-22 Jim Porter <jporterbugs@gmail.com> + + Preserve the original order of Eshell aliases when loading + + * lisp/eshell/em-alias.el (eshell-read-aliases-list): Reverse the alias + list back to its original order at the end of loading. + + * test/lisp/eshell/em-alias-tests.el + (em-alias-test/alias-load-preserves-order) + (em-alias-test/alias-save-sorted): New tests. + +2026-02-22 Arto Jantunen <viiru@iki.fi> + + Sort Eshell aliases when adding new ones + + The main point is to make the content of 'eshell-aliases-file' stable so + that storing it in git becomes feasible. + + This also makes the output of the alias command come out in alphabetical + order (bug#80401). + + * lisp/eshell/em-alias.el (eshell/alias): Sort when updating + 'eshell-command-aliases-list'. + + * test/lisp/eshell/em-alias-tests.el + (em-alias-test/alias-list-is-sorted): New test. + + * etc/NEWS: Announce this change. + +2026-02-21 Sean Whitton <spwhitton@spwhitton.name> + + vc-do-async-command: Set special-mode only when no mode set + + * lisp/vc/vc-dispatcher.el (vc-do-async-command): Set + special-mode only when no other mode set. + +2026-02-21 Alan Third <alan@idiocy.org> + Shay Elkin <shay@elkin.io> + + Fix GNUstep width calculation (bug#80331) + + * src/nsfns.m (Fx_display_mm_height): 'dpi' should have been 'px_to_mm'. + +2026-02-21 Shay Elkin <shay@elkin.io> (tiny change) + + Use real display geometry on NS (bug#80331) + + In nsfns.m, `x-display-mm-height' and `x-display-mm-weight' computes the + display size by dividing its (logical) pixel dimensions by 92 dpi. + + This would often give wrong results: by default, logical pixels on in + macOS are computed to 72 dpi, but that can be changed by the user. + + As macOS multi-screen geometry is all computed based on the main + screen's cooridnate system, use its dpi to compute the physical size of + the bounding box containing all the screens. + + * src/nsfns.m (Fx_display_mm_height): + (Fx_display_mm_width): Calculate the total physical display size + using the main-screen's geometry. + +2026-02-21 Paul Nelson <ultrono@gmail.com> + + Make Rmail summary address display customizable + + * lisp/mail/rmailsum.el (rmail-summary-sender-function) + (rmail-summary-recipient-function, rmail-summary-address-width): + New user options. + (rmail-summary--address-display, rmail-summary-name-or-address) + (rmail-summary-recipient-strip-quoted-names) + (rmail-summary-recipient-names): New functions. + (rmail-header-summary): Use them when formatting sender and + recipient fields (bug#80406). + + * doc/emacs/rmail.texi (Rmail Make Summary): Document them. + + * test/lisp/mail/rmailsum-tests.el: New file. + (rmailsum-tests-name-or-address-prefers-name) + (rmailsum-tests-name-or-address-fallback-to-address) + (rmailsum-tests-recipient-strip-quoted-names-first-line) + (rmailsum-tests-recipient-names-folded) + (rmailsum-tests-recipient-names-fallback-to-address): New tests. + +2026-02-21 Alan Third <alan@idiocy.org> + + Fix SVG CSS handling (bug#80384) + + This reverts commit 9f5d17cd7219f72066488c6c57f77e4db9ca2563, but + includes the fix for adding user CSS after the generated CSS. + + * src/image.c (svg_load_image): Set the CSS stylesheet using the librsvg + functions, instead of inserting it into the wrapper. + +2026-02-21 Eli Zaretskii <eliz@gnu.org> + + Avoid segfaults if someone sets 'composition-function-table' to nil + + * src/composite.c (composition_compute_stop_pos) + (composition_reseat_it): Recreate 'composition-function-table' if + it ever becomes garbled. (Bug#80462) + +2026-02-21 Sean Whitton <spwhitton@spwhitton.name> + + New command vc-dir-root-next-action + + * lisp/vc/vc-dir.el (vc-dir-root-next-action): New command. + (vc-dir-mode-map): Bind it. + * doc/emacs/maintaining.texi (VC Directory Commands): + * etc/NEWS: Document it. + +2026-02-21 Liu Hui <liuhui1610@gmail.com> + + Use a custom Pdb class in the Python shell + + The custom Pdb class enables native completion in pdb by + wrapping the pdb's native completer. It also makes necessary + function definitions like __PYTHON_EL_* available between pdb + frames, and enables non-native completion/ffap/eldoc + functionalities when debugging inside python modules. + + * lisp/progmodes/python.el (python-shell-send-setup-code): Fix + the separator between python-shell-setup-codes. + (python-shell-completion-native-setup): Move common completion + setup code ... + (python-shell-completion-setup-code): ... here. + (python-shell-completion-at-point): Enable native completion for + pdb and respect the delimiter of pdb completer. + (python-shell-pdb-setup-code): New variable. + (python-shell-comint-watch-for-first-prompt-output-filter): Send + setup codes only once. + (python-ffap-module-path, python-eldoc--get-doc-at-point): Stop + sending setup code in every function call. + * test/lisp/progmodes/python-tests.el (python-tests--pdb-1) + (python-shell-pdb-1): New test. + * etc/NEWS: Mention the change. (bug#80182) + +2026-02-21 Eli Zaretskii <eliz@gnu.org> + + Adapt ELisp Intro manual to recent changes in Emacs + + * doc/lispintro/emacs-lisp-intro.texi (Effect of installation): + Fix example. (Bug#80442) + (Review): Adapt to recent Emacs. (Bug#80447) + +2026-02-21 Gabriel Santos <gabrielsantosdesouza@disroot.org> + + browse-url-firefox-program: Add support for more Firefox variants. + + * lisp/net/browse-url.el (browse-url-firefox-program): Add support for + Floorp, LibreWolf and Zen Browser. (Bug#80398) + * etc/NEWS: Announce the change. + +2026-02-21 Manuel Giraud <manuel@ledu-giraud.fr> + + Remove one lambda level in some Gnus' functions + + * lisp/gnus/gnus-agent.el (gnus-agent-get-undownloaded-list): + * lisp/gnus/gnus-cloud.el (gnus-cloud-prune-old-chunks): + * lisp/gnus/gnus-draft.el (gnus-draft-check-draft-articles): + * lisp/gnus/gnus-group.el (gnus-group-sort-flat) + (gnus-group-expire-all-groups): + * lisp/gnus/gnus-sum.el (gnus-thread-highest-number): + * lisp/gnus/gnus-topic.el (gnus-topic-init-alist) + (gnus-topic-sort-topic): Replace the (lambda (x) (fun x)) + pattern with #'fun. (Bug#80382) + +2026-02-21 Stefan Monnier <monnier@iro.umontreal.ca> + + Fix predicate of `plist-member` on `function-history` + + The keys of this plist are strings and should thus be compared + with `equal`. `eq` works surprisingly often (because we often + happen to use exactly the same string) but not always. + + * lisp/loadhist.el (loadhist-unload-element): + * src/data.c (add_to_function_history): Pass `equal` to `plist-member`. + +2026-02-20 Philip Kaludercic <philipk@posteo.net> + + New command to skip over the head of Customize buffers + + * lisp/cus-edit.el (custom-mode-map): Bind it. + (Custom-goto-first-choice): New command. (Bug#80218) + +2026-02-20 Philip Kaludercic <philipk@posteo.net> + + * lisp/cus-edit.el (custom-mode-map): Bind 'Custom-reset-standard' + + (Bug#80218) + +2026-02-20 Philip Kaludercic <philipk@posteo.net> + + Add new command 'copy-theme-options' + + * doc/emacs/custom.texi (Custom Themes): Mention command in a + general context. + (Newcomers Theme): Mention command in the context of the + 'newcomers-preset' theme + * etc/NEWS: Mention new command. + * lisp/custom.el (copy-theme-options): New command. + +2026-02-20 Philip Kaludercic <philipk@posteo.net> + + Add a theme and minor mode for new users + + * doc/emacs/custom.texi (Beginners Theme): Document new theme. + * etc/NEWS: Mention new theme. + * etc/themes/newcomers-presets-theme.el: New file including + new theme. + +2026-02-20 Mattias Engdegård <mattias.engdegard@gmail.com> + + Optimise closed-over variables earlier + + * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): + Treat 'internal-get-closed-var' as a special form and delete it in + for-effect context. + +2026-02-20 Mattias Engdegård <mattias.engdegard@gmail.com> + + Remove two obsolete peephole optimisation rules + + * lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): + Remove two rules: the first could sometimes skip a varref in a loop; + this was useful before lexical binding but now just makes some code + slightly bigger. The second rule attempted to move a conditional branch + from the top to the bottom of a loop but depended on the first to work. + + Both were quite slow, easily measurable when compiling big files, and + arguably O(n³) which isn't very good for a peephole optimisation. + +2026-02-20 Sean Whitton <spwhitton@spwhitton.name> + + Show "committing" pseudo-state in VC-Dir during an async checkin + + * lisp/vc/vc-dir.el (vc-dir-fileinfo): New 'display-state' + field. + (vc-dir-update): Use it. + (vc-default-dir-printer): + * lisp/vc/vc-git.el (vc-git-dir-printer): Use it. Fontify a + display state of "committing" as vc-dir-status-warning. + * lisp/vc/vc-hooks.el (vc--file-getinheprop): New function. + * lisp/vc/vc.el (vc-checkin): Set "committing" display state on + items we are checking in asynchronously. + +2026-02-20 Basil L. Contovounesios <basil@contovou.net> + + Use git ls-files --deduplicate in project.el (bug#80409) + + * lisp/progmodes/project.el (vc-git-project-list-files): Prefer + git ls-files --deduplicate, available since Git 2.31 (2021), over + delete-consecutive-dups. Prefer string-prefix-p and string-suffix-p + over slower and more error-prone regexp matching. Prefer + string-match-p over string-match when either will do. + +2026-02-19 kobarity <kobarity@gmail.com> + + Remove (featurep 'project) guards in python.el + + * lisp/progmodes/python.el: Since they are included in emacs 29.1, + remove the Package-Requires for seq, project, and flymake. + (require 'project): Remove 'noerror argument. + (python-shell-get-process-name): Remove (featurep 'project). + Use 'project-name'. + (run-python) + (python--import-sources): Remove (featurep 'project). (Bug#80405) + +2026-02-19 Sean Whitton <spwhitton@spwhitton.name> + + Fix invalid vc-state after vc-revert + + * lisp/vc/vc.el (vc-revert-file, vc-revert-files): If the + vc-state of the file is 'added', set it to 'unregistered' after + the operation, not 'up-to-date'. + (vc-revert-files): Fix updating vc-checkout-time to affect files + within directories within FILES. + +2026-02-19 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc-dispatcher.el (vc-do-async-command): Call special-mode. + +2026-02-19 Sean Whitton <spwhitton@spwhitton.name> + + Restore 'cond' one element clauses to 'cond*' + + * lisp/emacs-lisp/cond-star.el (cond*-non-exit-clause-p) + (cond*-non-exit-clause-substance): Treat only one element + clauses beginning with match*/pcase* pseudoforms as non-exit. + (cond*-convert-condition): Handle exiting clauses with only one + element, that is a regular Lisp expression. + (cond*): + * doc/lispref/control.texi (cond* Macro): Document the change. + +2026-02-18 Sean Whitton <spwhitton@spwhitton.name> + + Fixes to with-vc-properties + + * lisp/vc/vc.el (with-vc-properties): Un-gensym + 'vc-touched-properties'; this is a dynamic variable. Document + the longstanding behavior to capture 'file' while evaluating + SETTINGS, and to evaluate SETTINGS for each file to be updated. + Declare '(indent 0)'. + +2026-02-18 Sean Whitton <spwhitton@spwhitton.name> + + vc-dir-show-outgoing-count: Mark a safe local variable + + * lisp/vc/vc-dir.el (vc-dir-show-outgoing-count): Mark a safe + local variable. + +2026-02-18 Eshel Yaron <me@eshelyaron.com> + + elisp-scope.el: Add variable value specifications + + We add a symbol property 'elisp-scope-variable-spec', which + holds a specification for the values of a variable with that + property. For example, (put 'foo '(symbol . face)) says + that the value of variable 'foo' is a face name. + This allows elisp-scope.el to analyze forms such as + (setq foo 'bar) and (let ((foo 'bar)) ...) more accurately. + This is also used for analyzing macros that let-bind (one of) + their arguments to a specific special variable, such as + 'with-connection-local-application-variables'. + + We initially add this new property to some common variables. + + * lisp/emacs-lisp/elisp-scope.el: Add + 'elisp-scope-variable-spec' property to + 'coding-system-for-read/write' and 'major-mode'. + (elisp-scope--variable-spec): New defsubst. + (elisp-scope--let-1, elisp-scope-let*, elisp-scope-setq): + Use it. + * test/lisp/progmodes/elisp-mode-resources/semantic-highlighting.el: + Add test form. + +2026-02-18 Juri Linkov <juri@linkov.net> + + Adapt mode-line faces to dark background mode (bug#80135) + + * lisp/faces.el (mode-line, mode-line-highlight): Adapt to dark background. + Suggested by Philip Kaludercic <philipk@posteo.net>. + +2026-02-18 Juri Linkov <juri@linkov.net> + + * lisp/net/goto-addr.el (goto-address-fontify): Fix unbalanced parens. + + Use 'bounds-of-thing-at-point' that relies on + 'thing-at-point--bounds-of-well-formed-url' to get + well-formed url with balanced parens (bug#80429). + +2026-02-18 Stéphane Marks <shipmints@gmail.com> + + Add frame-use-time, get-mru-frame, use mru frame in delete-frame (bug#80397) + + * lisp/frame.el (get-mru-frame): New defun. + * src/frame.c (delete_frame): Call 'get-mru-frame' (when force + is not Qnoelisp) to select the most recently used frame that is + not the deleted frame as the candidate to select. + (syms_of_frame): Qget_mru_frame new DEFSYM. + * doc/lispref/frames.texi: Document the new functions. + * etc/NEWS: Announce the new functions. + +2026-02-18 Sean Whitton <spwhitton@spwhitton.name> + + New 'delete-files' VC backend function for faster mass deletions + + * lisp/vc/vc-git.el (vc-git-delete-files): + * lisp/vc/vc-hg.el (vc-hg-delete-files): New functions. + * lisp/vc/vc.el (vc-delete-file): Use them. + +2026-02-18 Sean Whitton <spwhitton@spwhitton.name> + + Fix vc-hg-delete-file on files in nonexistent directories + + * lisp/vc/vc-hg.el (vc-hg-delete-file): Always run hg in the + repository root. + +2026-02-18 Sean Whitton <spwhitton@spwhitton.name> + + vc-git-pull, vc-git-incoming-revision: Use push remotes + + * lisp/vc/vc-git.el (vc-git-pull, vc-git-incoming-revision): Use + configured push remotes. + * etc/NEWS: Announce change to vc-git-pull. + +2026-02-18 Yuan Fu <casouri@gmail.com> + + Change back tree-sitter version requirement (bug#80108) + + Now we use treesit_traverse_sibling_helper when it exists, and + use the old code otherwise. So we still support older + tree-sitter versions. + + * configure.ac (LIBSYSTEMD_CFLAGS): Add back old config checking + for the malloc function. Add another check for + ts_tree_cursor_goto_previous_sibling. + * src/treesit.c: (treesit_traverse_sibling_helper): Add back the + old code that doesn't require + ts_tree_cursor_goto_previous_sibling. + +2026-02-17 Paul Eggert <eggert@cs.ucla.edu> + + Depend explicitly on Gnulib ‘attribute’ module + + Problem reported by Basil L. Contovounesios (bug#80428#8). + * admin/merge-gnulib (GNULIB_MODULES): Add ‘attribute’. + +2026-02-17 Sean Whitton <spwhitton@spwhitton.name> + + Use -outstanding not -outgoing-base in VC command names + + * lisp/vc/vc.el (vc-root-diff-outgoing-base) + (vc-diff-outgoing-base, vc-log-outgoing-base) + (vc-root-log-outgoing-base): Rename from these ... + (vc-root-diff-outstanding, vc-diff-outstanding) + (vc-log-outstanding, vc-root-log-outstanding): ... to these. + All uses changed. + +2026-02-17 Basil L. Contovounesios <basil@contovou.net> + + Mark add-log-always-start-new-record as safe + + * lisp/vc/add-log.el (add-log-always-start-new-record): Mark as + safe-local-variable (bug#80408). + +2026-02-17 Dmitry Gutov <dmitry@gutov.dev> + + project--delete-zombie-projects: Bind tramp-error-show-message-timeout to nil + + * lisp/progmodes/project.el (project--delete-zombie-projects): + Bind tramp-error-show-message-timeout to nil, to instruct Tramp + not to display the "failed to connect" and its message, hiding the + current prompt (bug#80340). + +2026-02-16 Juri Linkov <juri@linkov.net> + + Change the default value of 'split-width-threshold' from 160 to 150 + + * lisp/window.el (split-width-threshold): Change the default value + from 160 to 150 (bug#80050). + (split-window-preferred-function): + Mention 'split-window-preferred-direction' in the docstring. + +2026-02-16 Paul Nelson <ultrono@gmail.com> + + Add repeat-map for smerge-mode commands + + * lisp/vc/smerge-mode.el (smerge-repeat-map): New keymap (bug#80414). + +2026-02-16 Elias Gabriel Perez <eg642616@gmail.com> + + * lisp/treesit.el (treesit-hs-find-next-block): Fix infloop. (bug#80232) + +2026-02-16 Eli Zaretskii <eliz@gnu.org> + + Fix cross-reference in Emacs Lisp Intro + + * doc/lispintro/emacs-lisp-intro.texi + (Lexical & Dynamic Binding Differences): Fix cross-reference. + (Bug#80420) + +2026-02-16 Michael Albinus <michael.albinus@gmx.de> + + Minor Tramp doc clarifications + + * doc/misc/tramp.texi (External packages): Mention handler-bind to + trap for remote-file-error. + (Traces and Profiles): Explain tramp-error-show-message-timeout. + +2026-02-16 Michael Albinus <michael.albinus@gmx.de> + + * lisp/system-sleep.el (sleep-event-state): Define to autoload. + + * doc/lispref/commands.texi (Special Events): Fix insert-special-event defun. + +2026-02-15 Paul Eggert <eggert@cs.ucla.edu> + + Fix SELinux config without -lselinux + + Without this fix, a 64-bit build on Ubuntu 25.10 x86-64 failed + when the libselinux1-dev:i386 package (providing <selinux/selinux.h>) + was installed but the libselinux1-dev package (providing + /usr/lib/x86_64-linux-gnu/libselinux.so) was not. + The first symptom was when compiling emacsclient: + ‘/usr/bin/ld: ../lib/libgnu.a(file-has-acl.o): in function + `get_aclinfo': .../lib/file-has-acl.c:247:(.text+0x4d8): undefined + reference to `getfilecon'’. + * configure.ac: Default with_selinux to maybe, not to yes. + Defer our SELinux configuration to after Gnulib’s, so that + we handle any SELinux problems that Gnulib discovers. + +2026-02-15 Heinz Fridolin <heinzfridolin@protonmail.com> + + project.el: Fix in submodules with nonexistent git root (bug#80402) + + project-try-vc--search in a submodule directory tries to find the git + root directory, so the local variable root would be set to nil if it + didn't exist. Calling project--vc-merge-submodules-p on nil would lead + to a crash, so now the while loop aborts beforehand. + +2026-02-15 Vili Aapro <vili.aapro@iki.fi> + + elisp--highlight-function-argument: Handle special syntax correctly + + * lisp/progmodes/elisp-mode.el + (elisp--highlight-function-argument): Handle special usage + syntax correctly when scanning usage arguments using + 'forward-sexp' (bug#8432). Before binding 'origin', skip over + blanks, so as not to highlight them, and to move immediately + before any possible opening square brackets. After binding + 'origin' and before calling 'forward-sexp', skip over opening + square brackets, so as to highlight them. After calling + 'forward-sexp' and before setting 'start' and 'end', skip over + closing square brackets and periods, so as to highlight them. + +2026-02-15 Vili Aapro <vili.aapro@iki.fi> + + elisp--highlight-function-argument: Use forward-sexp + + * lisp/progmodes/elisp-mode.el + (elisp--highlight-function-argument): Use 'forward-sexp' to move + over usage arguments, handling parenthesized argument patterns + monolithically (bug#8432). Set 'start' and 'end' to the + beginning and end, respectively, of the usage argument. + +2026-02-15 Vili Aapro <vili.aapro@iki.fi> + + elisp--highlight-function-argument: Use temporary buffer + + * lisp/progmodes/elisp-mode.el + (elisp--highlight-function-argument): Insert 'args' into + temporary buffer to prepare for better handling of usage + arguments (bug#8432). Move point after the first opening + parenthesis of the arguments string. In the loop, let `origin' + track the point. No functional change. + +2026-02-15 Richard Lawrence <rwl@recursewithless.net> + + Fix failing iCalendar tests when TZ=UTC + + * lisp/calendar/diary-icalendar.el (diary-icalendar--tz-is-utc-p): New + function. + (diary-icalendar-convert-time-via-strategy): Don't expect a VTIMEZONE + for UTC times. + (diary-icalendar-export-region): Don't generate a VTIMEZONE for 'local + export strategy in UTC. + * test/lisp/calendar/diary-icalendar-tests.el + (diary-icalendar-test-entry-parser): Don't generate a VTIMEZONE for + 'local export strategy in UTC. + +2026-02-15 Yikai Zhao <yikai@z1k.dev> + + Fix project-buffers error on buffers with nil default-directory + + * lisp/progmodes/project.el (project-buffers): + Check that default-directory is non-nil (bug#80390). + +2026-02-14 Stefan Monnier <monnier@iro.umontreal.ca> + + delsel.el: Improve the overlay for text replacement + + * lisp/delsel.el (delete-selection-replacement-face): Delete var. + (delete-selection-replacement): New face, to replace it. + (delsel--replace-overlay, delsel--replace-text): Delete vars and ... + (delete-selection--replacement-text): ...use this single var instead. + (delete-selection--replacement-cursor): New function. + (delete-active-region): Use it with `cursor-sensor-mode` to avoid the + overlay lingering too long. + (delete-selection--replacement-text): New function extracted from + `delete-selection-repeat-replace-region`, with adjustments to account + for the above changes. + (delete-selection-repeat-replace-region): Use it. + + * lisp/emacs-lisp/cursor-sensor.el (cursor-sensor--detect): Do use + `get-pos-property` when it works. Fix the `missing-p` subfunction + so as not to get fooled by a missing property at END. + +2026-02-14 Kim F. Storm <storm@cua.dk> + + delsel.el: Use an overlay to track the replacement text + + This patch was sent back in 2014 as part of bug#18886. + + * lisp/delsel.el (delsel--replace-text-or-position): Delete var. + (delete-selection-replacement-face): New defcustom. + (delsel--replace-text, delsel--replace-overlay): New vars. + (delete-active-region, delete-selection-repeat-replace-region): + Use overlay to track replacement text instead of abusing the + undo-list; this allows the text to be edited before it is + used for substitutions. Add highlight to the replacement text. + +2026-02-14 Stefan Monnier <monnier@iro.umontreal.ca> + + etc/NEWS: Improve text for threads' "buffer disposition" + +2026-02-14 Basil L. Contovounesios <basil@contovou.net> + + Prefer value< with new 'sort' in json.el + + Now that json.el uses the new sort calling convention, there's no + need to prefer string< over value<, which may even run faster. + Suggested by Mattias Engdegård <mattias.engdegard@gmail.com>. + + * lisp/json.el (json-encoding-object-sort-predicate): Mention value< + in docstring. + (json-pretty-print-buffer-ordered, json-pretty-print-ordered): Use + value< in place of string<. + * test/lisp/json-tests.el (test-json-encode-hash-table-sort): Use + value< as json-encoding-object-sort-predicate in at least one test. + +2026-02-14 Sean Whitton <spwhitton@spwhitton.name> + + vc-pull-and-push: Fix when visiting untracked files + + * lisp/vc/vc.el (vc-pull-and-push): Don't fail when called from + buffers visiting unregistered or ignored files. + +2026-02-14 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc.el (vc-push): Fix when visiting untracked files. + +2026-02-14 Philip Kaludercic <philipk@posteo.net> + + Don't invoke Dired with -R when reviewing packages + + * lisp/emacs-lisp/package.el (package-review): Remove + potentially unportable "-R" switch when calling 'dired'. + +2026-02-14 Philip Kaludercic <philipk@posteo.net> + + Do not upgrade VC packages using 'package-upgrade' + + * lisp/emacs-lisp/package.el (package-upgrade): Trigger error + redirecting user to use 'package-vc-upgrade'. + (package--upgradeable-packages): Exclude VC packages from list + of "upgradable" packages. + +2026-02-14 Sean Whitton <spwhitton@spwhitton.name> + + Fix vc-pull from buffers visiting untracked files + + * lisp/vc/vc.el (vc-pull): Don't fail when called from buffers + visiting unregistered or ignored files so long as there is a + 'pull' function available from the backend. + +2026-02-14 Sean Whitton <spwhitton@spwhitton.name> + + vc-find-backend-function: Require vc for default implementations + + * lisp/vc/vc-hooks.el (vc-find-backend-function): Require vc for + default implementations (bug#80254). Report and fix due to + Daniel Mendler <mail@daniel-mendler.de>. + +2026-02-14 Stéphane Marks <shipmints@gmail.com> + + vtable fixes for tty rendering (bug#80312) + + * lisp/emacs-lisp/vtable.el (vtable--insert-line): Do not + produce a divider after the final column. This thinko is more + noticeable on a tty. + (vtable--insert-header-line): On a tty, nullify indicator + padding. + (vtable-tty-char-pixel-width): New defconst. + (vtable--compute-width): On a tty, adjust column width specified + in pixels down by a factor of 'vtable-tty-char-pixel-width'. + (vtable--alter-column-width): On a tty, adjust column width in + characters, otherwise in pixels. + +2026-02-14 Sean Whitton <spwhitton@spwhitton.name> + + Improve vc-git-topic-outgoing-base fallback algorithm + + * lisp/vc/vc-hg.el (vc-hg--bookmarks): New function. + (vc-hg-trunk-or-topic-p): + * lisp/vc/vc-git.el (vc-git--branch-remotes) + (vc-git-trunk-or-topic-p): New optional BRANCH argument. + (vc-trunk-or-topic-p): Declare. + (vc-git-topic-outgoing-base): Consider only local trunks, if + there are any (bug#80006). + * lisp/vc/vc.el (trunk-or-topic-p): New optional BRANCH + argument. + (vc-trunk-or-topic-p): New function. + (vc--outgoing-base): Call it. + +2026-02-14 Visuwesh <visuweshm@gmail.com> + + Escape attribute values and string DOMs when inserting them + + * lisp/net/shr.el (shr-dom-print): Escape these strings, as done + in `dom-print', to prevent producing an erroneous XML document. + * test/lisp/net/shr-tests.el (dom-print-escape): Add new test + (Bug#80383). + +2026-02-14 Eli Zaretskii <eliz@gnu.org> (tiny change) + + Fix 'eglot-imenu' + + * lisp/progmodes/eglot.el (eglot--imenu-SymbolInformation): Fix + call to 'plist-get'. Patch by Lester Longley <lester@ieee.org>. + (Bug#80367) + +2026-02-14 Marco Wahl <marcowahlsoft@gmail.com> + + Add revert capability for page directory buffer + + * lisp/textmodes/page-ext.el (pages-directory-revert-function): New + function. + (pages-directory-list-all-headers-p, pages-directory-count-lines-p) + (pages-directory-regexp): New variables to store the page directory + style. (Bug#80319) + +2026-02-14 Eli Zaretskii <eliz@gnu.org> + + Fix handling of window-specific overlays in buffer iteration for display + + * src/xdisp.c (compute_display_string_pos): Pay attention to + 'display' properties that come from overlays, in case the overlays + are window-specific. Call 'handle_display_prop' with the argument + OVERLAY non-nil, if the property is from an overlay. + (compute_display_string_end): Accept an additional argument, a + pointer to the window; all callers changed. Pay attention to + 'display' properties that come from overlays, in case the overlays + are window-specific. In particular, if the property comes from an + overlay, use that overlay's end position as the next place where + the 'display' property changes, effectively disregarding any + properties on buffer text that is replaced by this overlay's + 'display' property. + (handle_single_display_spec): Always use the end position of the + overlay which determined the 'display' property as the end of the + property, to make sure we obey windows-specific overlays. + * src/bidi.c (bidi_fetch_char): Adapt to the above change. + * src/dispextern.h: Adjust prototype of 'compute_display_string_end'. + (Bug#80255) + +2026-02-14 Eshel Yaron <me@eshelyaron.com> + + New option 'completion-preview-inhibit-functions' (bug#80370) + + * lisp/completion-preview.el + (completion-preview-inhibit-functions): New option. + (completion-preview--post-command): Respect it. + * etc/NEWS: Announce it. + +2026-02-14 Eli Zaretskii <eliz@gnu.org> + + Say in Emacs Lisp Intro how to contribute code to Emacs + + * doc/lispintro/emacs-lisp-intro.texi (Permanent Installation): + Add a cross-reference to "Contributing" in the Emacs user manual. + Suggested by Matto Fransen <matto@matto.nl>. (Bug#80393) + +2026-02-14 Matthias Meulien <orontee@gmail.com> + + Support 'speedbar-prefer-window' in 'speedbar-get-focus' + + * lisp/speedbar.el (speedbar-get-focus) + (speedbar-frame-or-window): Support for 'speedbar-prefer-window' + with fix of 'speedbar-window' trying to delete current frame. + (Bug#80392) + +2026-02-14 Eli Zaretskii <eliz@gnu.org> + + Adjust documentation to changes in 'overlays-in' and 'overlays-at' + + * src/buffer.c (overlays_in): Fix commentary to match the code. + (Foverlays_in, Foverlays_at): Doc fixes. (Bug#80242) + + * test/src/buffer-tests.el (test-overlays-at-2): Add one test. + + * doc/lispref/display.texi (Finding Overlays): Update and improve + the documentation of 'overlays-in' and 'overlays-at'. + + * etc/NEWS: Announce the changes. + +2026-02-14 Stefan Monnier <monnier@iro.umontreal.ca> + + ede/proj-shared.el: Remove leftover obsolete EIEIO name arguments + + * lisp/cedet/ede/proj-shared.el (ede-gcc-shared-compiler) + (ede-gcc-libtool-shared-compiler, ede-cc-linker-libtool) + (ede-g++-shared-compiler, ede-g++-libtool-shared-compiler) + (ede-g++-linker-libtool): Remove obsolete name argument to `clone`. + +2026-02-14 Paul Eggert <eggert@cs.ucla.edu> + + Pacify GCC with gdk-pixbuf 2.44 + + * src/pgtkfns.c (xg_set_icon_from_xpm_data): + * src/xfns.c (xg_set_icon_from_xpm_data): + gdk-pixbuf 2.44 (2025-09) deprecated xg_set_icon_from_xpm_data, + and this breaks --enable-gcc-warnings builds. + For now, pacify GCC by using a pragma. + +2026-02-14 Paul Eggert <eggert@cs.ucla.edu> + + Remove vla.h + + Uses of <vla.h>’s macro VLA_ELEMS were removed some time ago. + * admin/merge-gnulib (GNULIB_MODULES): Remove vla. + * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate. + * lib/vla.h: Remove. + * src/fns.c, src/lread.c: Do not include <vla.h>. + +2026-02-14 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + +2026-02-14 Dmitry Gutov <dmitry@gutov.dev> + + vc-log-show-limit: Change default to 500, and the button to 4X + + * lisp/vc/vc.el (vc-log-show-limit): + Change the default to 500 (bug#80037). + (vc-print-log-setup-buttons): Have the first button prompt and + propose 4X the current limit as the default. + (vc-print-fileset-branch-log): + Update the reference to the changed button text. + + * lisp/vc/log-view.el (log-view-end-of-defun-1): Same. + + * doc/emacs/maintaining.texi (VC Change Log): Also here. + +2026-02-13 João Távora <joaotavora@gmail.com> + + Rewrite flex completion with Gotoh algorithm + + The greedy regexp matching, broken scoring and broken highlight were + sources of frequent complaints about the 'flex' matching style. This + commit fixes that. + + Inspired by the 'hotfuzz' style (available at + https://github.com/axelf4/hotfuzz) it uses a modified version of Gotoh's + 1982 dynamic programming algorithm. It is strictly more correct than the + "old" flex. For example, when matching the pattern 'goto' to no longer + will 'eglot-format' be sorted before some hypothetical much better + 'goobarbaz-goto'. And of course the highlighting is also correctly + placed on the 'goto', not scattered across the candidate. + + Regarding performance, it is faster than the naive 'flex', primarily + because of the Elisp rewrite in minibuffer.el. The matching and costing + algorithm matters but is not the bottleneck. + + The Elisp parts of the style were almost completely decoupled from the + pcm/substring styles in lisp/minibuffer.el. Only + 'completion-flex-try-completion' uses some of pcm's code for pattern + augmentation. + + * src/minibuf.c (completion--flex-cost-gotoh): New function. + + * lisp/minibuffer.el (completion-flex--pattern-str): New variable. + (flex-score-match-tightness): Make obsolete. + (completion--flex-all-completions-1): New helper function. + (completion-flex-try-completion, completion-flex-all-completions): Rewrite. + (completion-substring--all-completions): No longer take transform-pattern-fn. + (completion--flex-adjust-metadata): Tweak. + (completion--flex-score, completion--flex-score-1) + (completion--flex-score-last-md, completion-flex--make-flex-pattern): Delete. + + * test/lisp/minibuffer-tests.el (completion--sorted-flex-completions): + New helper function. + (completion-flex-test-non-ascii): New test. + (completion--pcm-score): Delete. + (completion-pcm-test-3, completion-pcm-test-4) + (completion-substring-test-1, completion-substring-test-2) + (completion-flex-test-2, completion-flex-test-3): Tweak. + + * etc/NEWS: Describe change. + +2026-02-13 Philip Kaludercic <philipk@posteo.net> + + Only check regular files for package metadata + + * lisp/emacs-lisp/package.el (package-dir-info): Do not check + files that do not satisfy 'file-regular-p' when trying to find + the file with the package metadata. (Bug#79742) + +2026-02-13 Philip Kaludercic <philipk@posteo.net> + + Improve 'package-upgrade-all' robustness + + * lisp/emacs-lisp/package.el (package-upgrade-all): Do not quit + because a single upgrade fails with an error. (Bug#80357) + +2026-02-13 Philip Kaludercic <philipk@posteo.net> + + Fix 'help-echo' for package suggestions in mode line + + * lisp/emacs-lisp/package-activate.el (package--autosugest-line-format): + Remove variable and function. + (package--autosuggest-after-change-mode): Inject upgrade prompt + using ':propertize'. We can drop the condition testing if there + are any suggestions, as installing the package changes the major + mode and thus also 'mode-name'. + +2026-02-13 Philip Kaludercic <philipk@posteo.net> + + Autoload 'diff-no-select' + + * lisp/emacs-lisp/package.el (package-review): Remove + unnecessary 'require'. + * lisp/eshell/em-unix.el: Remove declaration. + * lisp/files.el (save-some-buffers-action-alist): Remove + unnecessary 'require'. + * lisp/vc/diff.el (diff-no-select): Autoload it. + + (Bug#80288) + +2026-02-13 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/emacs-lisp/cond-star.el (cond*): New Edebug specification. + +2026-02-13 João Távora <joaotavora@gmail.com> + + Eglot: fix neocmakelsp invocation + + See https://github.com/joaotavora/eglot/issues/1578 + + * lisp/progmodes/eglot.el (eglot-server-programs): Fix neocmakelsp + +2026-02-13 kobarity <kobarity@gmail.com> + + Revert "Use 'project-name-cached' in 'python-shell-get-process-name'" + + This reverts commit 482748592f61abed6f675e7b62b2d56e4e18a146. + + Commit 583a112169f0c964552b94f84ea0c942377a14e6 removed + 'project-name-cached' and also resolved bug#80045. + +2026-02-13 Dmitry Gutov <dmitry@gutov.dev> + + Fix new eglot test failure due to project cache + + * test/lisp/progmodes/eglot-tests.el + (eglot-test-project-wide-diagnostics-rust-analyzer): + Bind project-vc-non-essential-cache-timeout to 0 so that the + result of project-current is refreshed (bug#80387). + +2026-02-12 Philip Kaludercic <philipk@posteo.net> + + Merge branch 'feature/package-autosuggest' + +2026-02-12 Basil L. Contovounesios <basil@contovou.net> + + Use new 'sort' calling convention in json.el + + * lisp/json.el (json--print-alist): Use new 'sort' calling + convention for simplicity and potential performance gains. + +2026-02-12 Michael Albinus <michael.albinus@gmx.de> + + Tramp signals 'remote-file-error' consequently + + * doc/misc/tramp.texi (External packages): Mention also special events. + Emphasise, that Tramp raises remote-file-error. + + * etc/NEWS: Tramp signals 'remote-file-error' consequently. + Presentational fixes and improvements. + + * lisp/net/tramp.el (tramp-skeleton-process-file) + (tramp-handle-make-symbolic-link, tramp-process-actions) + (tramp-wait-for-regexp, tramp-send-string): + * lisp/net/tramp-adb.el (tramp-adb-get-device) + (tramp-adb-send-command-and-check, tramp-adb-barf-unless-okay) + (tramp-adb-wait-for-output, tramp-adb-maybe-open-connection): + * lisp/net/tramp-archive.el (tramp-archive-handle-not-implemented): + * lisp/net/tramp-crypt.el (tramp-crypt-do-encrypt-or-decrypt-file-name) + (tramp-crypt-do-encrypt-or-decrypt-file): + * lisp/net/tramp-gvfs.el (tramp-gvfs-dbus-event-error) + (tramp-gvfs-maybe-open-connection): + * lisp/net/tramp-sh.el + (tramp-do-directory-files-and-attributes-with-perl) + (tramp-do-copy-or-rename-file-directly) + (tramp-do-copy-or-rename-file-out-of-band) + (tramp-sh-handle-file-local-copy, tramp-sh-handle-write-region) + (tramp-bundle-read-file-names, tramp-maybe-send-script) + (tramp-find-file-exists-command, tramp-barf-if-no-shell-prompt) + (tramp-maybe-open-connection, tramp-wait-for-output) + (tramp-send-command-and-check, tramp-barf-unless-okay) + (tramp-send-command-and-read, tramp-get-ls-command): + * lisp/net/tramp-smb.el (tramp-smb-handle-file-attributes) + (tramp-smb-handle-make-symbolic-link) + (tramp-smb-maybe-open-connection, tramp-smb-call-winexe): + * lisp/net/tramp-sshfs.el (tramp-sshfs-maybe-open-connection): + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-send-command-and-read): + Raise a `remote-file-error' in case of connection problems. + + * lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection): Improve + check for host. + + * lisp/net/tramp-smb.el (tramp-smb-get-localname): Improve error message. + + * lisp/net/tramp-sudoedit.el (tramp-default-host-alist): + Set a default for "sudoedit" method. + (tramp-sudoedit-maybe-open-connection): Check for proper host name. + (tramp-sudoedit-send-command): Do not expand ?h. + + * lisp/net/tramp.el (tramp-compute-multi-hops): Check for cycle + proxy definition. + + * test/lisp/net/tramp-archive-tests.el (tramp-archive-test20-file-modes) + (tramp-archive-test21-file-links): Check for `rmote-file-error'. + + * test/lisp/net/tramp-tests.el (tramp-file-name-with-sudo): Declare. + (tramp--test-ignore-make-symbolic-link-error): Check for + `rmote-file-error'. + (tramp-test03-file-name-method-rules): Delete. + (tramp-test03-file-error): New test. + (tramp--test-supports-processes-p): Make it more rebust. + +2026-02-12 Basil L. Contovounesios <basil@contovou.net> + + Check that a UPower battery device IsPresent + + The composite DisplayDevice is meant to be presented to the user + only if it IsPresent. It is not entirely clear whether PowerSupply + implies IsPresent, so check both (bug#80229). + + * lisp/battery.el (battery-upower): Skip hot-removable batteries + that are missing from the bay. + +2026-02-12 Basil L. Contovounesios <basil@contovou.net> + + Allow disabling battery-update-timer + + Now that battery--upower-subscribe registers to signals from + DisplayDevice (bug#80229), it is possible to react to more than just + State changes, including Percentage and IsPresent (although the + latter may already be covered by the DeviceAdded and DeviceRemoved + signals). + + That means that it should be possible to disable polling via + battery-update-timer and still get timely mode line updates. + + * etc/NEWS + (Changes in Specialized Modes and Packages in Emacs 31.1): + Announce new battery-update-interval :type. + + * lisp/battery.el (battery-update-interval): Allow setting to nil. + (display-battery-mode): Do not create battery-update-timer then. + (battery-upower-display-device-path): New constant. + (battery--upower-subscribe): Use it. + (battery-upower-subscribe-properties): New variable. + (battery--upower-props-changed): Use it for more flexibility over + which DisplayDevice properties to react to. + (battery--upower-signal-handler): Call battery-update-handler + directly when there is no battery-update-timer. + +2026-02-12 Morgan Smith <Morgan.J.Smith@outlook.com> + + battery.el: Update on "DisplayDevice" state change + + * lisp/battery.el (battery--upower-props-changed): Check if the + "State" has changed. + (battery--upower-subscribe): Subscribe to state changes of the + "DisplayDevice" (bug#80229). + +2026-02-12 Helmut Eller <eller.helmut@gmail.com> + + * src/lisp.h (struct Lisp_Fwd): Add comments. + +2026-02-12 Helmut Eller <eller.helmut@gmail.com> + + Add tests for per-buffer variables with predicates + + * test/src/data-tests.el (data-tests-per-buffer-var-predicates): New. + +2026-02-12 Helmut Eller <eller.helmut@gmail.com> + + Move the Lisp_Fwd.bufoffset field back to the union + + * src/lisp.h (struct Lisp_Fwd): With the predicate enum, we can now pack + the offset and the predicate into a one-word struct. + (XBUFFER_OFFSET): Use the new field name. + * src/buffer.c (DEFVAR_PER_BUFFER): Create the one-word struct. + * src/data.c (store_symval_forwarding): Use the new field name. + +2026-02-12 Helmut Eller <eller.helmut@gmail.com> + + Introduce an enum Lisp_Fwd_Predicate + + Using an enum instead of a symbol makes it obvious that this field is + of no concern to the GC. + + * src/lisp.h (enum Lisp_Fwd_Predicate): New. + (struct Lisp_Fwd): Use it instead of a symbol. + * src/buffer.c (DEFVAR_PER_BUFFER): Create the necessary enum constant + instead of a symbol. + * src/data.c (check_fwd_predicate, check_choice): New helpers. + (store_symval_forwarding): Use it. + +2026-02-12 Helmut Eller <eller.helmut@gmail.com> + + Remove struct Lisp_Buffer_Objfwd + + * src/lisp.h (struct Lisp_Buffer_Objfwd): Deleted. + (struct Lisp_Fwd): Add the fields bufoffset and bufpredicate. + Make the type a 1-byte bitfield so that the entire struct still + fits in two words. + (XBUFFER_OFFSET): Renamed from XBUFFER_OBJFWD. + * src/buffer.c (DEFVAR_PER_BUFFER, defvar_per_buffer) + (buffer_local_value): Update accordingly. + * src/data.c (do_symval_forwarding, store_symval_forwarding) + (set_internal, default_value, set_default_internal) + (Fmake_local_variable, Fkill_local_variable, Flocal_variable_): Use + XBUFFER_OFFSET. + +2026-02-12 Helmut Eller <eller.helmut@gmail.com> + + Remove struct Lisp_Kboard_Objfwd + + * src/lisp.h (struct Lisp_Kboard_Objfwd): Deleted ... + (struct Lisp_Fwd): ... replaced with field kbdoffset. + (DEFVAR_KBOARD): Use new field. + * src/data.c (XKBOARD_OFFSET): Renamed from XKBOARD_OBJFWD. + (do_symval_forwarding, store_symval_forwarding + (set_default_internal): Use it . + +2026-02-12 Helmut Eller <eller.helmut@gmail.com> + + Remove struct Lisp_Objfwd + + * src/lisp.h (struct Lisp_Objfwd): Deleted. + (struct Lisp_Fwd): Replace it with objvar field. + (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_LISP_NOPROX): Use the field. + * src/lread.c (defvar_lisp): Updated as needed. + * src/pdumper.c (dump_field_fwd): Use the field. + * src/data.c (XOBJVAR): Renamed and updated from XOBJFWD. + (do_symval_forwarding, store_symval_forwarding): Use it. + +2026-02-12 Helmut Eller <eller.helmut@gmail.com> + + Remove struct Lisp_Boolfwd + + * src/lisp.h (struct Lisp Boolfwd): Deleted + (struct Lisp_Fwd): Replaced it with a boolvar field. + (DEFVAR_BOOL): Update. + * src/data.c (XBOOLVAR): Renamed from XBOOLFWD. + (do_symval_forwarding, store_symval_forwarding): Use it. + * src/pdumper.c (dump_field_fwd): Use boolvar field. + +2026-02-12 Helmut Eller <eller.helmut@gmail.com> + + Remove struct Lisp_Intfwd + + It was a struct with a single field. + + * src/lisp.h (struct Lisp_Intfwd): Deleted. + (struct Lisp_Fwd): Add an intvar field instead. + (DEFVAR_INT): Update accordingly. + * src/data.c (XINTVAR): Updated and renamed from XFIXNUMFWD. + (do_symval_forwarding, store_symval_forwarding): Use it. + +2026-02-12 Helmut Eller <eller.helmut@gmail.com> + + Introduce a struct Lisp_Fwd + + This contains the type and an union of Lisp_Objfwd, Lisp_Intfwd etc. + lispfwd is now a pointer to a struct Lisp_Fwd; the void *fwdptr field is + gone. + + * src/lisp.h (struct Lisp_Fwd): New. + (Lisp_Intfwd, Lisp_Boolfwd, Lisp_Objfwd, Lisp_Buffer_Objfwd) + (Lisp_Kboard_Objfwd): The type is in in Lisp_Fwd. + (lispwfd): Is now a pointer to struct Lisp_Fwd. + (SYMBOL_BLV, SET_SYMBOL_FWD, XFWDTYPE, BUFFER_OBJFWDP): Update + accordingly. + (defvar_lisp, defvar_lisp_nopro, defvar_bool, defvar_int) + (defvar_kboard): These all take now a Lisp_Fwd. + (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL, DEFVAR_INT) + (DEFVAR_KBOARD): Update for new types. + * src/lread.c (defvar_int, defvar_bool, defvar_lisp_nopro) + (defvar_lisp, defvar_kboard): Update for new types. + * src/pdumper.c (dump_field_fwd, dump_blv): Update accordingly. + (dump_fwd_int, dump_fwd_bool, dump_fwd_obj, dump_fwd_buffer_obj) + (dump_fwd): Deleted. + * src/buffer.c (DEFVAR_PER_BUFFER, defvar_per_buffer, buffer_local_value) + (set_buffer_internal_1): Update accordingly for new types. + * src/data.c (XBOOLFWD, XKBOARD_OBJFWD, XFIXNUMFWD, XOBJFWD, boundp) + (store_symval_forwarding, swap_in_global_binding) + (swap_in_symval_forwarding, find_symbol_value, set_internal) + (default_value, set_default_internal, make_blv, Fmake_local_variable): + Update accordingly. + +2026-02-12 Helmut Eller <eller.helmut@gmail.com> + + Make Lisp_Buffer_Objfwd objects const + + The predicate field is always a builtin symbol. That means we know the + bit pattern at compile-time and they don't change at runtime. + + * src/buffer.c (DEFVAR_PER_BUFFER): Create a const struct. + (defvar_per_buffer): Remove predicate and address arguments. + (syms_of_buffer): Instead of &BVAR (current_buffer, foo) use a plain foo + as argument to DEFVAR_PER_BUFFER. + + * src/pdumper.c (dump_field_fwd): No more relocs needed for + Lisp_Fwd_Buffer_Obj and we can't apply them in the .rodata section. + +2026-02-12 Helmut Eller <eller.helmut@gmail.com> + + Don't dump lispfwd objects + + The forwarding structs already exist in the data or bss section. + They are all created with DEFVAR_INT and similar macros. Instead + of creating new structs in the dump, create relocs to the data section. + + * src/pdumper.c (dump_field_fwd): New. + (dump_blv, dump_symbol): Use it. + (dump_pre_dump_symbol): Don't dump fwd objects. + +2026-02-12 Stephen Berman <stephen.berman@gmx.net> + + Make 'overlays_in' use only real EOB (bug#80242) + + This restores the original behavior of 'overlays_in'. Changes in + this behavior had been made for cases of narrowing, but this + resulted in a regression with uses of 'remove-overlays'. + + * src/buffer.c (overlays_in): Change all occurrences of ZV to Z. + + * test/src/buffer-tests.el (test-overlays-in-2) + (test-remove-overlays): Adjust expected results to accommodate + changes in 'overlays_in'. + +2026-02-12 Philip Kaludercic <philipk@posteo.net> + + Ensure package contents for package suggestions + + * lisp/emacs-lisp/package.el (package--autosugest-prompt): Query + archives if the package being described is not listed in + package-archive-contents'. + +2026-02-12 Philip Kaludercic <philipk@posteo.net> + + Simplify mode-line prompt for package suggestions + + * lisp/emacs-lisp/package-activate.el (package--autosugest-line-format): + Just indicate that packages can be installed, don't mention which. + +2026-02-12 Stéphane Marks <shipmints@gmail.com> + + Move ns_init_colors from ns_term_init to emacs.c (bug#80377) + + Accommodate NS Emacs on a headless system. + + Add error checking for failed calls to NSColorList writeToURL + and writeToFile. + + * src/nsterm.m (ns_term_init): Move color initialization to + nsfns.m. + * src/nsfns.m (ns_init_colors): New function. + (Fns_list_colors): Call ns_init_colors. + +2026-02-12 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/calendar/diary-icalendar.el (di:summary-regexp): Fix `:type` + +2026-02-12 Arto Jantunen <viiru@debian.org> + + Avoid errors in shr.el due to fractional colspan attribute + + Apparently some people believe that a colspan can be fractional, and + produce HTML with such. Make it possible for SHR to render such HTML + by truncating colspan. + * lisp/net/shr.el (shr-make-table-1): Ensure 'colspan' is a fixnum. + (Bug#80354) + +2026-02-12 Eli Zaretskii <eliz@gnu.org> + + Add a character to IPA input method + + * lisp/leim/quail/ipa.el ("ipa"): Add ɜ. Suggested by Coque Couto + <coque.couto@gmail.com>. (Bug#80364) + +2026-02-12 Rahul Martim Juliato <rahuljuliato@gmail.com> + + Fix parsing of Title field in Newsticker List buffer + + * lisp/net/newst-backend.el (newsticker--parse-text-container): + Only "xhtml" type contains inline XML nodes that need to be run + through 'newsticker--unxml' to serialize back to a string. + (Bug#80317) + +2026-02-12 समीर सिंह Sameer Singh <lumarzeli30@gmail.com> + + Improve composition rules for Devanagari script + + * lisp/language/indian.el (devanagari-composable-pattern): Account + for contextual positioning of punctuation signs when preceded by + a character. (Bug#80368) + + Improve the Devanagari composition rules to account for contextual + positioning of punctuation signs when preceded by a character. + +2026-02-12 Martin Rudalics <rudalics@gmx.at> + + Scale position values in xg_frame_set_size_and_position + + * src/gtkutil.c (xg_frame_set_size_and_position): Scale + position values. + +2026-02-12 Dmitry Gutov <dmitry@gutov.dev> + + Revise the paragraph about project-vc's caching + + * doc/emacs/maintaining.texi (VC-Aware Project Backend): + Rephrase and mention a way to force invalitation (bug#78545). + +2026-02-11 Richard Lawrence <rwl@recursewithless.net> + + * doc/emacs/calendar.texi (Diary iCalendar Import): Doc fix. + +2026-02-11 Stefan Monnier <monnier@iro.umontreal.ca> + + (describe-mode): Fix bug#80170 + + * lisp/help-fns.el (describe-mode--minor-modes): Add argument `buffer`. + (describe-mode): Use it to fix call to `documentation` so the + docstrings are computed in the right buffer and thus show + correctly when bindings are shadowed by minor modes. + +2026-02-11 Morgan Willcock <morgan@ice9.digital> + + Fix typo in smie-rules-function documentation + + Fix a typo in the documentation for the expected arguments when + calling smie-rules-function to set the indentation offset of + function arguments. + + * doc/lispref/modes.texi (SMIE Indentation): + * lisp/emacs-lisp/smie.el (smie-rules-function): Fix typo in + documentation for smie-rules-function arguments. + +2026-02-11 Stefan Monnier <monnier@iro.umontreal.ca> + + make-mode.el: Avoid obsolete font-lock-*-face` variables + + * lisp/progmodes/make-mode.el (makefile-make-font-lock-keywords) + (makefile-makepp-font-lock-keywords): Use `font-lock-*-face` + faces rather than variables. + +2026-02-11 Philip Kaludercic <philipk@posteo.net> + + Generalize 'scrape-elpa--safe-evil' + + * admin/scrape-elpa.el (scrape-elpa--safe-eval): Extend support + from just 'cons' and 'concat' to any side-effect-free function. + +2026-02-11 Philip Kaludercic <philipk@posteo.net> + + Disable 'package-autosuggest-mode' by default + + * lisp/emacs-lisp/package-activate.el (package-autosuggest-mode): + Do not set the :init-value when declaring the minor mode. + +2026-02-11 Mattias Engdegård <mattias.engdegard@gmail.com> + + Better 'prog1' optimisation + + * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): + Always evaporate 'prog1' when the tail is effect-free, even + when the value expression isn't. + +2026-02-11 Sean Whitton <spwhitton@spwhitton.name> + + icomplete-ret: Ignore icomplete-show-matches-on-no-input + + * lisp/icomplete.el (icomplete-ret): No longer conditionalize on + icomplete-show-matches-on-no-input. + Suggested by Juri Linkov <juri@linkov.net> in bug#62108. + (icomplete-show-matches-on-no-input, icomplete-ret): + * etc/NEWS: Improve documentation. + +2026-02-11 Sean Whitton <spwhitton@spwhitton.name> + + cond*: bind-and* is not always a non-exit clause! + + * lisp/emacs-lisp/cond-star.el (cond*-non-exit-clause-p) + (cond*-non-exit-clause-substance): Don't consider a bind-and* + clause without ':non-exit' to be a non-exit clause (bug#80376). + (cond*): + * doc/lispref/control.texi (cond* Macro): Fix docs accordingly. + +2026-02-11 Stéphane Marks <shipmints@gmail.com> + + system-sleep sleep blocker and sleep/wake event package (bug#80348) + + This package provides platform-neutral interfaces to block your + system from entering idle sleep and a hook to process pre-sleep + and post-wake events. + + Implementations are for D-Bus on GNU/Linux, macOS/GNUstep, and + MS-Windows. + + * lisp/system-sleep.el: New package. + * src/fns.c: Qpre_sleep, Qpost_wake: New DEFSYM. + * src/nsfns.m (Fns_block_system_sleep, Fns_unblock_system_sleep) + (syms_of_nsfns): New functions. + * src/nsterm.m (applicationDidFinishLaunching): Subscribe to + pre-sleep and post-wake notifications. + (systemWillSleep, systemDidWake): New function. + * src/w32fns.c (Fw32_block_system_sleep) + (Fw32_unblock_system_sleep, Fw32_system_sleep_block_count) + (sleep_notification_callback) + (w32_register_for_sleep_notifications): New function. + (syms_of_w32fns): Sw32_unblock_system_sleep + Sw32_block_system_sleep Sw32_system_sleep_block_count: New + defsubr. + * src/w32term.h (Fw32_block_system_sleep): New extern. + * src/w32term.c (w32_initialize): Call + w32_register_for_sleep_notifications. + * doc/lispref/os.texi: Document the system-sleep package. + * doc/lispref/commands.texi: Update sleep-event special + documentation. + * etc/NEWS: Announce the new package. + +2026-02-11 Juri Linkov <juri@linkov.net> + + Don't remap RET to 'icomplete-ret' in 'icomplete-mode' (bug#62108) + + * lisp/icomplete.el (icomplete-show-matches-on-no-input): Fix docstring. + (icomplete-minibuffer-map): Don't remap 'minibuffer-complete-and-exit' (RET) + to 'icomplete-ret'. + (icomplete-ret): Improve docstring. + +2026-02-11 Juri Linkov <juri@linkov.net> + + Revert "New key 'M-j' for 'icomplete-mode' (bug#62108)" + + This reverts commit 3584a762b8cbfb6e13011827ec5934f039344d0f. + Another fix follows shortly after this commit. + +2026-02-10 Dmitry Gutov <dmitry@gutov.dev> + + Improve project-vc-*cache-timeout docstrings + + * lisp/progmodes/project.el: (project-vc-cache-timeout) + (project-vc-non-essential-cache-timeout): Improve docstrings (bug#78545). + +2026-02-10 Eli Zaretskii <eliz@gnu.org> + + * src/process.c (server_accept_connection): Fix assertion (bug#80237). + +2026-02-10 Sean Whitton <spwhitton@spwhitton.name> + + vc-git--deduce-files-for-stash: Use file-relative-name (bug#80278) + + * lisp/vc/vc-git.el (vc-git--deduce-files-for-stash): Use + file-relative-name (bug#80278). + +2026-02-10 Dmitry Gutov <dmitry@gutov.dev> + Juri Linkov <juri@linkov.net> + + Do cache and timed invalidation in "VC-aware" project backend + + * lisp/progmodes/project.el: Describe the new cache in Commentary, + the "VC-aware project" section. + (project-vc-cache-timeout) + (project-vc-non-essential-cache-timeout): New variables. + (project--get-cached, project--set-cached): + New functions. + (project-try-vc, project--value-in-dir): Use them. + (project--read-dir-locals): New function, extracted from the + above. Return the full alist, to be saved to cache at once. + (project--clear-cache): New function. + (project-remember-projects-under) + (project-forget-zombie-projects, project-forget-projects-under): + Use it. + (project-uniquify-dirname-transform, project-mode-line-format): + Bind 'non-essential' to choose the longer caching strategy. + (project-name-cache-timeout, project-name-cached): Remove. + (project-mode-line-format): Switch to calling 'project-name' + directly, with the new caching in use. + +2026-02-10 Dmitry Gutov <dmitry@gutov.dev> + + Amend previous to avoid remote call in project--remove-from-project-list + + * lisp/progmodes/project.el (project--remove-from-project-list): + Don't call 'abbreviate-file-name', expect it to be abbreviated + already. The file might be on an inaccessible filesystem. + (project-current): Call abbreviate-file-name here (bug#80340). + +2026-02-09 Philip Kaludercic <philipk@posteo.net> + + Enable fewer minor modes in package suggestion buffers + + * lisp/emacs-lisp/package.el (package--autosugest-prompt): Do + not enable 'enriched-mode' and 'variable-pitch-mode'. + +2026-02-09 Philip Kaludercic <philipk@posteo.net> + + Detect more package suggestions + + * admin/scrape-elpa.el (scrape-elpa--safe-eval): Add new + function. + (scrape-elpa): Evaluate part of the matched expression to catch + more entries. + * etc/package-autosuggest.eld: Update database. + +2026-02-09 Stefan Monnier <monnier@iro.umontreal.ca> + + (loaddefs-generate--print-form): Fix bug#80222 + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--print-form): + Remove the "\\\n" hack we used to use together with + `src/lread.c` code to avoid allocating heap space for docstrings + that were going to be replaced by `Snarf-documentation`. + We don't keep ELisp docstrings in DOC any more anyway. + +2026-02-09 Manuel Giraud <manuel@ledu-giraud.fr> + + Fix selected group sort with topics (bug#80341) + + * lisp/gnus/gnus-topic.el (gnus-group-sort-selected-topic): New + function to sort selected groups into topic. + (gnus-topic-mode): Use it as sort selected function in topic + mode. + * etc/NEWS: Announce the change. + +2026-02-09 Manuel Giraud <manuel@ledu-giraud.fr> + + Add missing symbolic prefix keybinding + + * lisp/gnus/gnus-group.el (:keymap): Add symbolic prefix to + group keymap. + * etc/NEWS: Announce the change. + +2026-02-09 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/calendar: Style changes + + Fix some misuses of `defconst` and `%s`, avoid uses of the old + dynbound dialect of `eval`, delete redundant `:group` arguments, + and prefer #' to quote function names. + And stop creating alists for completion tables since lists of + strings work just as well. + + * lisp/calendar/appt.el: Delete redundant `:group` arguments. + Prefer #' to quote function names. + + * lisp/calendar/cal-hebrew.el (solar-time-string): Declare function. + (calendar-hebrew-read-date, calendar-hebrew-list-yahrzeits): + * lisp/calendar/cal-persia.el (calendar-persian-read-date): + * lisp/calendar/cal-mayan.el (calendar-mayan-read-haab-date) + (calendar-mayan-read-tzolkin-date): + * lisp/calendar/cal-julian.el (calendar-julian-goto-date): + * lisp/calendar/cal-islam.el (calendar-islamic-read-date): + * lisp/calendar/cal-coptic.el (calendar-coptic-read-date): + * lisp/calendar/cal-bahai.el (calendar-bahai-read-date): + Completion tables can be lists of strings for decades. + + * lisp/calendar/cal-china.el: Delete redundant `:group` arguments. + (calendar-chinese-zodiac-sign-on-or-after) + (calendar-chinese-new-moon-on-or-after): Use lexical dialect also + for `eval`. + + * lisp/calendar/cal-dst.el: Delete redundant `:group` arguments. + Use lexical dialect also for `eval`. + + * lisp/calendar/cal-html.el: Delete redundant `:group` arguments. + + * lisp/calendar/cal-menu.el: Prefer #' to quote function names. + + * lisp/calendar/cal-tex.el: Delete redundant `:group` arguments. + (cal-tex-weekly-common): Use lexical dialect also for `eval`. + + * lisp/calendar/calendar.el (calendar-mode-map): + Prefer #' to quote function names. + + * lisp/calendar/diary-icalendar.el (di:rrule-sexp-to-recurrence) + (di:other-sexp-to-recurrence): Use lexical dialect also for `eval`. + + * lisp/calendar/diary-lib.el: Delete redundant `:group` arguments. + Prefer #' to quote function names. + (diary-sexp-entry, diary-offset, diary-remind): Use lexical dialect + also for `eval`. + + * lisp/calendar/icalendar-macs.el (ical:define-param): Fix misuse of + `%s` in `format`. + + * lisp/calendar/icalendar-parser.el (ical:value-types) + (ical:param-types, ical:property-types, ical:component-types): + Don't use `defconst` on variables we mutate. + + * lisp/calendar/icalendar-recur.el (icr:current-tz-to-vtimezone) + (icr:current-tz-to-vtimezone): Use lexical dialect also for `eval`. + + * lisp/calendar/icalendar.el: Delete redundant `:group` arguments. + + * lisp/calendar/lunar.el: Prefer #' to quote function names. + + * lisp/calendar/solar.el (solar-sunrise-sunset-string) + (calendar-sunrise-sunset-month): Use lexical dialect also for `eval`. + + * lisp/calendar/timeclock.el: Prefer #' to quote function names. + +2026-02-09 Paul Eggert <eggert@cs.ucla.edu> + + butttonTrans need not be extern + + * lwlib/lwlib-Xaw.c (buttonTrans) [USE_CAIRO || HAVE_XFT]: + Now static. This pacifies gcc -Wmissing-variable-declarations. + +2026-02-08 Dmitry Gutov <dmitry@gutov.dev> + + project--delete-zombie-projects: Handle "Tramp failed to connect" + + * lisp/progmodes/project.el (project--delete-zombie-projects): + Handle file-error when DIR is remote and unreachable (bug#80340). + +2026-02-08 Stefan Monnier <monnier@iro.umontreal.ca> + + Merge branch 'main' into icalendar + +2026-02-08 Daniel Mendler <mail@daniel-mendler.de> + + completing-read-multiple: Implement on top of completing-read + + Avoid code duplication during minibuffer setup. + + * lisp/emacs-lisp/crm.el (completing-read-multiple): Call + `completing-read' instead of duplicating the setup code of + `completing-read-default'. + +2026-02-08 Sean Whitton <spwhitton@spwhitton.name> + + Revert "Extend emacs server protocol for empty arguments" + + This reverts this change: + + Author: Andreas Schwab <schwab@linux-m68k.org> + AuthorDate: Sun Feb 8 12:34:02 2026 +0100 + + Extend emacs server protocol for empty arguments + + An empty argument is represented by &0. On the receiving side, &0 is + replaced by nothing. + + * lisp/server.el (server-unquote-arg): Replace "&0" by nothing. + (server-quote-arg): Produce "&0" for an empty string. + * lib-src/emacsclient.c (quote_argument): Produce "&0" for an + empty string. + (unquote_argument): Replace "&0" by nothing. (Bug#80356) + + The bug in question was already fixed by this change: + + Author: Sean Whitton <spwhitton@spwhitton.name> + AuthorDate: Fri Nov 7 12:33:21 2025 +0000 + + Don't discard empty string arguments from emacsclient + + * lisp/server.el (server--process-filter-1): Don't discard empty + string arguments from emacsclient. + (server-eval-args-left): + * doc/emacs/misc.texi (emacsclient Options): + * etc/NEWS: Document the change. + +2026-02-08 Sean Whitton <spwhitton@spwhitton.name> + + cond*: Fix handling of :non-exit keywords + + * lisp/emacs-lisp/cond-star.el (cond*-non-exit-clause-p): Don't + return nil for clauses ending with ':non-exit'. + (cond*-non-exit-clause-substance): Don't accept just any + keyword, require ':non-exit'. + +2026-02-08 Sean Whitton <spwhitton@spwhitton.name> + + cond*: Fix handling bind-and* in two places + + * lisp/emacs-lisp/cond-star.el (cond*-non-exit-clause-p) + (cond*-non-exit-clause-substance): Handle bind-and* the same as + bind*. + +2026-02-08 Andreas Schwab <schwab@linux-m68k.org> + + Extend emacs server protocol for empty arguments + + An empty argument is represented by &0. On the receiving side, &0 is + replaced by nothing. + + * lisp/server.el (server-unquote-arg): Replace "&0" by nothing. + (server-quote-arg): Produce "&0" for an empty string. + * lib-src/emacsclient.c (quote_argument): Produce "&0" for an + empty string. + (unquote_argument): Replace "&0" by nothing. (Bug#80356) + +2026-02-08 Matthew Bauer <mjbauer95@gmail.com> + + Eglot: Add "static-ls" to Haskell LSP list + + This is an alternative language server for Haskell. Intended to be + faster and not use as much memory as haskell-language-server. + Making it a backup with lower precedence if both exist. + * lisp/progmodes/eglot.el (eglot-server-programs): Add "static-ls". + (Bug#80351) + +2026-02-07 kobarity <kobarity@gmail.com> + + Change the type of 'python-eldoc-function-timeout' to number + + * etc/NEWS: Announce the change. + * lisp/progmodes/python.el (python-eldoc-function-timeout): + Change the type. (Bug#80045) + +2026-02-07 kobarity <kobarity@gmail.com> + Liu Hui <liuhui1610@gmail.com> + + Use 'project-name-cached' in 'python-shell-get-process-name' + + * lisp/progmodes/python.el + (python-shell-get-project-name): New function. + (python-shell-get-process-name): Use it. (Bug#80045) + +2026-02-07 kobarity <kobarity@gmail.com> + + Revert "Performance improvement of 'python-shell-get-process'" + + This reverts commit 83b4f1ba26844c178e57ecb93ea8db36e8e6fa89. + We concluded that it is better to use 'project-name-cached'. + (Bug#80045) + +2026-02-07 Michael Albinus <michael.albinus@gmx.de> + + Support D-Bus file descriptor manipulation + + * doc/misc/dbus.texi (Synchronous Methods): Adapt `dbus-call-method'. + (Asynchronous Methods): Adapt `dbus-call-method-asynchronously'. + (File Descriptors): New chapter, replaces Inhibitor Locks. + + * etc/NEWS: Replace "New D-Bus functions to support systemd + inhibitor locks" by "Support D-Bus file descriptor manipulation". + Presentational fixes and improvements. + + * lisp/net/dbus.el (dbus-call-method) + (dbus-call-method-asynchronously): Adapt docstring. + (dbus-list-hash-table): Return (nreverse result). + (dbus-monitor-goto-serial): Declare `completion'. + + * src/dbusbind.c (Fdbus_message_internal, xd_read_message_1): + Handle `:keep-fd'. + (xd_registered_inhibitor_locks, Fdbus_make_inhibitor_lock) + (Fdbus_close_inhibitor_lock, Fdbus_registered_inhibitor_locks): Delete. + (xd_registered_fds): New variable. + (Fdbus__fd_open, Fdbus__fd_close, Fdbus__registered_fds): + New DEFUNs. (Bug#79963) + (syms_of_dbusbind_for_pdumper): Initialize `xd_registered_fds'. + (syms_of_dbusbind): Remove subroutines + `Sdbus_make_inhibitor_lock', `Sdbus_close_inhibitor_lock' and + `Sdbus_registered_inhibitor_locks'. Remove symbol `Qdbus_call_method'. + Declare subroutines `Sdbus__fd_open', `Sdbus__fd_close' and + `Sdbus__registered_fds'. Declare symbol `QCkeep_fd'. staticpro + `xd_registered_fds'. + + * test/lisp/net/dbus-tests.el (dbus-test10-inhibitor-locks): Delete. + (dbus-test10-keep-fd, dbus-test10-open-close-fd): New tests. + +2026-02-07 Philip Kaludercic <philipk@posteo.net> + + Revert "Enable 'package-autosuggest-mode' at startup" + + This reverts commit ae673183625aa76fb5d7160730c92eda659b10ee. + +2026-02-07 Dmitry Gutov <dmitry@gutov.dev> + + etags-regen--build-program-options: Expand the error message text + + * lisp/progmodes/etags-regen.el (etags-regen--build-program-options): + Expand the error message text. + +2026-02-07 Dmitry Gutov <dmitry@gutov.dev> + + etags--xref-backend: Move the definition to autoloads + + * lisp/progmodes/etags.el (etags--xref-backend): + Move the definition to autoloads, so that etags.el doesn't have to + be loaded before it really is used. + +2026-02-06 Dmitry Gutov <dmitry@gutov.dev> + + Some manual updates for the recent change + + * doc/emacs/maintaining.texi (Looking Up Identifiers): + Mention that 'M-.' can signal an error. + (Xref): Recommend using 'etags-regen-mode' (bug#43086). + + * etc/NEWS: Add updated marks. + +2026-02-06 Philip Kaludercic <philipk@posteo.net> + + Use 'buffer-file-name' when matching 'auto-mode-alist' + + * lisp/emacs-lisp/package-activate.el (package--suggestion-applies-p): + The file name associated with a buffer is a better match for + entries in 'auto-mode-alist', so we use that instead of the + buffer name that can have additional noise to make the name unique. + +2026-02-06 Philip Kaludercic <philipk@posteo.net> + + Link to "Major Mode" node in manual when suggesting packges + + * lisp/emacs-lisp/package.el (package--autosugest-prompt): Add + another button. + +2026-02-06 Philip Kaludercic <philipk@posteo.net> + + Add separate user option to prevent repetitive package suggestions + + * lisp/emacs-lisp/package-activate.el + (package-autosuggest-style): Remove option 'once' and defer to + new user option. + (package-autosuggest-once): Add new option. + (package--suggestion-applies-p) + (package--autosuggest-after-change-mode): Respect new user option. + +2026-02-06 Philip Kaludercic <philipk@posteo.net> + + Enable 'package-autosuggest-mode' at startup + + * lisp/emacs-lisp/package.el (package-autosuggest-style) + (package-autosuggest-mode, package--autosuggest-suggested) + (package--suggestion-applies-p, package--autosuggest-database) + (package--autosuggest-find-candidates) + (package--autosugest-line-format, package-autosuggest-face) + (package--autosuggest-after-change-mode, package-autosuggest): + Remove definitions needed to recognise suggestions from here. + + * lisp/emacs-lisp/package-activate.el (package-autosuggest-style) + (package--autosuggest-database, package--autosuggest-suggested) + (package--suggestion-applies-p) + (package--autosuggest-find-candidates) + (package--autosugest-line-format, package-autosuggest) + (package--autosuggest-after-change-mode) + (package-autosuggest-mode): Move definitions from package.el. + + (package--activated, package-installed-p, package-get-version) + (package-activate-all, package-activate-all): Remove unnecessary + autoloads. + + * lisp/loadup.el: Load "package-activate.el". + +2026-02-06 Sean Whitton <spwhitton@spwhitton.name> + + Separate input histories for 'C-x v !' and Git pulling & pushing + + * lisp/vc/vc-dispatcher.el (vc-user-edit-command-history): Use + this as a dynamically bound variable, not a minibuffer history. + (vc-user-edit-command): Pass its value to read-shell-command. + * lisp/vc/vc-git.el (vc-git--pushpull): + * lisp/vc/vc.el (vc-edit-next-command): Bind it. + (vc-edit-next-command-history): New variable. + * etc/NEWS: Document the change. + +2026-02-06 Dmitry Gutov <dmitry@gutov.dev> + + Allow using xref-find-references without visiting a tags table + + * lisp/progmodes/xref.el (xref-find-backend): + Allow returning nil (bug#43086). + (xref-backend-definitions, xref-backend-apropos): + Signal user-error when no backend is available. The error text + suggests a few built-in Xref backends. + (xref-backend-identifier-completion-table): Default to nil. + (xref--no-backend-available): New helper function. + + * lisp/progmodes/etags.el (etags--xref-backend): + Return nil when no tags table is visited. + +2026-02-05 João Távora <joaotavora@gmail.com> + + Eglot: fix thinko in eglot--async-request + + Just because a specific request of a specific "hint" is + cancelled doesn't mean we can cancel the other's too. Also + eglot-advertise-cancellation = nil was subtly broken. + + This manifested itself mostly in Eglot semantic tokens. + + * lisp/progmodes/eglot.el (eglot--async-request): Fix thinkos. + +2026-02-05 Visuwesh <visuweshm@gmail.com> + + vc-git--mailinfo: Use file-local-name (bug#80295, bug#80320) + + * lisp/vc/vc-git.el (vc-git--mailinfo): + Use file-local-name (bug#80295, bug#80320). + +2026-02-05 Protesilaos Stavrou <info@protesilaos.com> + + New minibuffer history for vc-user-edit-command (bug#80169) + + * lisp/vc/vc-dispatcher.el (vc-user-edit-command-history): New variable. + (vc-user-edit-command): Use it (bug#80169). + * etc/NEWS: Announce it. + +2026-02-05 Sean Whitton <spwhitton@spwhitton.name> + + Bind "u", "@" in diff-mode-read-only-map, not diff-mode-shared-map + + * lisp/vc/diff-mode.el (diff-mode-shared-map): Move bindings for + "u" and "@" from here ... + (diff-mode-read-only-map): ... to here. + +2026-02-05 Sean Whitton <spwhitton@spwhitton.name> + + Bind "s" in diff-mode-read-only-map, not diff-mode-shared-map + + * lisp/vc/diff-mode.el (diff-mode-shared-map): Move binding for + "s" from here ... + (diff-mode-read-only-map): ... to here (bug#80330). + +2026-02-05 Troy Brown <brownts@troybrown.dev> (tiny change) + + Fix last change in align.el + + * lisp/align.el (align-region): Additional fix of last change. + (Bug#80316) + +2026-02-05 John Wiegley <johnw@gnu.org> + + Fix aligning buffer regions containing multiple alignment sections + + * lisp/align.el (align-region): Use markers to ensure the regions + stay accurate after overlapping aligning modifications. (Bug#80316) + + * test/lisp/align-tests.el (align-c-multi-section): New test. + +2026-02-04 Philip Kaludercic <philipk@posteo.net> + + Merge remote-tracking branch 'origin/master' into feature/package-autosuggest + +2026-02-04 Philip Kaludercic <philipk@posteo.net> + + Rephrase package suggestion message + + * lisp/emacs-lisp/package.el (package--autosugest-prompt): + Follow Richard's suggestion from + https://mail.gnu.org/archive/html/emacs-devel/2026-02/msg00040.html. + +2026-02-04 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/comint.el (comint-redirect-hook): Defvar (bug#80313) + +2026-02-04 Stefan Monnier <monnier@iro.umontreal.ca> + + (yaml-ts-mode-yamllint-options): Use a list of strings + + It is both simpler to code and marginally more general (allows + spaces in arguments). + + * lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode-yamllint-options): Use + a list. + (yaml-ts-mode-flymake): Adjust accordingly. + +2026-02-04 Stefan Monnier <monnier@iro.umontreal.ca> + + shortdoc: Don't burp on missing docstrings + + * lisp/emacs-lisp/shortdoc.el (shortdoc--display-function): Report + missing docstrings more cleanly than "Wrong type argument: stringp, nil". + +2026-02-04 Mattias Engdegård <mattias.engdegard@gmail.com> + + ediff-mult-tests.el: remove temporary directory after test + + * test/lisp/vc/ediff-mult-tests.el (ediff-test-bug3348): Clean up. + +2026-02-04 Mattias Engdegård <mattias.engdegard@gmail.com> + + Make vc-git-tests work with git < 2.46 + + * test/lisp/vc/vc-git-tests.el (vc-git-test-branch-remotes): + The 'unset' subcommand to 'git config' was introduced in git 2.46; use + the '--unset' option instead. + +2026-02-03 Philip Kaludercic <philipk@posteo.net> + + Do not compile database into package.el + + * lisp/emacs-lisp/package.el (package--autosuggest-database): + Add new variable. + (package--autosuggest-find-candidates): Load the contents of the + database from 'data-directory' if necessary, and store them in + the new variable. + +2026-02-03 Dmitry Gutov <dmitry@gutov.dev> + + Fix [More] buttons in tutorial and other buttons in Semantic + + * lisp/help-mode.el (help-setup-xref): Update docstring (bug#80276). + + * etc/NEWS: Add description for the earlier change in help-setup-xref. + + * lisp/tutorial.el (tutorial--describe-nonstandard-key) + (tutorial--detailed-help): Use 'with-help-window', call it after. + + * lisp/cedet/semantic/util.el (semantic-describe-buffer): Same. + + * lisp/cedet/semantic/decorate/include.el + (semantic-decoration-include-describe) + (semantic-decoration-unknown-include-describe) + (semantic-decoration-fileless-include-describe) + (semantic-decoration-unparsed-include-describe) + (semantic-decoration-all-include-summary): Same. + +2026-02-02 Stefan Monnier <monnier@iro.umontreal.ca> + + isearch.el: Remove autoloads hacks + + * lisp/isearch.el (char-fold-to-regexp): Remove redundant autoload. + (emoji--read-emoji): Use `declare-function` rather than autoload. + +2026-02-02 Sean Whitton <spwhitton@spwhitton.name> + + diff-mode-shared-map: Bind '@' to diff-revert-and-kill-hunk + + * lisp/vc/diff-mode.el (diff-mode-shared-map): Bind '@' to + diff-revert-and-kill-hunk. + +2026-02-01 Philip Kaludercic <philipk@posteo.net> + + Merge remote-tracking branch 'origin/master' into feature/package-autosuggest + +2026-02-01 Philip Kaludercic <philipk@posteo.net> + + Adjust formatting of package suggestion buffer + + * lisp/emacs-lisp/package.el (package--autosugest-prompt): Move + 'describe-package' link into the parentheses after the "Install + ..." button. + +2026-02-01 Philip Kaludercic <philipk@posteo.net> + + Clarify that package suggestions have to be confirmed + + * lisp/emacs-lisp/package.el (package--autosugest-prompt): + Adjust message to indicate that no changes have yet occurred. + + Co-Developed-By: Jens Schmidt <jschmidt4gnu@vodafonemail.de> + +2026-02-01 Philip Kaludercic <philipk@posteo.net> + + Explain why package suggestions match + + * lisp/emacs-lisp/package.el (package--autosugest-prompt): Go + through all suggestions for the same package and mention why a + package suggestion was relevant. + +2026-02-01 Mattias Engdegård <mattias.engdegard@gmail.com> + + * etc/symbol-releases.eld: 'any' and 'all' added in Emacs 31 + +2026-02-01 Eli Zaretskii <eliz@gnu.org> + + Minor improvements in vertical cusror motion + + * src/xdisp.c (move_it_vertically_backward): Zero out cached value + of line height, to avoid using stale and incorrect values. + (try_window_reusing_current_matrix): Fix conditions for changes in + tab-line height. + Reported by Michael Heerdegen <michael_heerdegen@mailbox.org> in + https://lists.gnu.org/archive/html/help-gnu-emacs/2026-01/msg00163.html + This improves the scrolling a little bit, but doesn't solve the + problem entirely. + +2026-02-01 Philip Kaludercic <philipk@posteo.net> + + Enable 'package-autosuggest-mode' by default + + * lisp/emacs-lisp/package.el (package-autosuggest-mode): Set + :init-value. + +2026-02-01 Richard Lawrence <rwl@recursewithless.net> + + Fix iCalendar macro (debug ...) forms and indentation + + As discussed in Bug#74994. + + * lisp/calendar/icalendar-ast.el (icalendar-make-param) + (icalendar-make-property, icalendar-make-component) + (icalendar-make-node-from-templates) + * lisp/calendar/icalendar-macs.el (icalendar-with-node-children) + (icalendar-with-node-value, icalendar-with-param) + (icalendar-with-child-of, icalendar-with-property-of): Remove extraneous + arguments in (debug ...) forms. + * lisp/calendar/icalendar-recur.el + * lisp/calendar/diary-icalendar.el: Fix indentation of calls to them. + + Plus one other minor fix: + + * lisp/calendar/diary-icalendar.el + (diary-icalendar-current-tz-to-vtimezone): Ignore unused error + variable (fixes a byte compiler warning). + +2026-02-01 Philip Kaludercic <philipk@posteo.net> + + Add more elaborate prompt when suggesting packages + + * lisp/emacs-lisp/package.el (package--autosugest-prompt): Add + new function. + (package--autosuggest-after-change-mode, package-autosuggest): + Call new function. + +2026-02-01 Philip Kaludercic <philipk@posteo.net> + + Display hint for package suggestions after mode name + + * lisp/emacs-lisp/package.el (package--autosugest-line-format): + Insert a space before the mode-line hint. + (package--autosuggest-after-change-mode): Add hint to 'mode-name'. + +2026-02-01 Philip Kaludercic <philipk@posteo.net> + + Inline database of package suggestions + + * lisp/emacs-lisp/package.el (package--autosuggest-database): + Remove unnecessary variable. + (package--autosuggest-find-candidates): Load the database at + compile time. + (package--autosuggest-suggested, package--suggestion-applies-p) + (package--autosuggest-install-and-enable): Update documentation. + +2026-02-01 Eli Zaretskii <eliz@gnu.org> + + Fix desktop saving and restoring in daemon sessions + + * lisp/desktop.el (desktop--check-dont-save): Don't save daemon's + initial frame. + * lisp/frameset.el (frameset-restore): Don't try deleting the + daemon's initial frame. (Bug#80294) + +2026-01-31 Mattias Engdegård <mattias.engdegard@gmail.com> + + Don't produce zero-length lazy strings + + * lisp/emacs-lisp/bytecomp.el (byte-compile--docstring): + There is no gain from making an empty string lazy. + (It also contributed to bug#80292.) + +2026-01-31 Mattias Engdegård <mattias.engdegard@gmail.com> + + Fix lazy doc string fontify bug in elisp-byte-code-mode (bug#80292) + + * lisp/progmodes/elisp-mode.el (elisp-byte-code-syntax-propertize): + Reset point to just after the start of the previous match so that we + don't skip past the end of the lazy string, which can happen if it's + zero-length; that could lead to an infinite loop. + +2026-01-31 Jens Schmidt <jschmidt4gnu@vodafonemail.de> + + Improve documentation of 'seq-difference' + + * doc/lispref/sequences.texi (Sequence Functions): + * lisp/emacs-lisp/seq.el (seq-difference): Clarify the documentation of + 'seq-difference'. (Bug#80257) + +2026-01-31 Michael Albinus <michael.albinus@gmx.de> + + Improve connection-local variables documentation. + + * doc/emacs/custom.texi (Connection Variables): + * doc/lispref/variables.texi (Applying Connection Local Variables): + Improve documentation. + +2026-01-31 Boris Buliga <boris@d12frosted.io> + + Fix macOS 26 (Tahoe) scrolling lag and input handling issues + + macOS 26 introduced new event processing behavior that causes scrolling + lag and input handling problems in Emacs. This patch disables two + features via NSUserDefaults when built against the macOS 26 SDK: + - NSEventConcurrentProcessingEnabled + - NSApplicationUpdateCycleEnabled + This fix is based on the equivalent patch in emacs-mac by Mitsuharu + Yamamoto. See: https://bitbucket.org/mituharu/emacs-mac/commits/e52ebfd + * src/nsterm.m (ns_term_init): Disable problematic event processing + when built for macOS 26+. (Bug#80268) + +2026-01-31 Jacob S. Gordon <jacob.as.gordon@gmail.com> + + display-time: Add option to customize help-echo format + + This option controls the format of the help-echo when hovering + over the time display in mode line. (Bug#80143) + * lisp/time.el (display-time-help-echo-format): Add option. + (display-time-string-forms): Use it. + + * etc/NEWS (Time): Announce the new option. + +2026-01-31 Kierin Bell <kierin@kierinbell.com> + + Add new input method for Tuscarora + + * lisp/leim/quail/iroquoian.el: New input method "tuscarora-postfix". + + * etc/NEWS: Announce the new input method. (Bug#80264) + +2026-01-31 Stéphane Marks <shipmints@gmail.com> + + New function 'truncate-string-pixelwise' (bug#80244) + + This function will truncate a string on a pixelwise basis in a + work buffer and using a binary search rather than brute force. + + * lisp/emacs-lisp/subr-x.el (work-buffer--prepare-pixelwise): + New defun helper function. + (string-pixel-width): Use the helper function. + (truncate-string-pixelwise): New defun. + * test/lisp/misc-tests.el (misc-test-truncate-string-pixelwise): + (misc-test-truncate-string-pixelwise-unicode): New test. + * doc/lispref/display.texi (Size of Displayed Text): Document + the function. + * etc/NEWS: Announce the function. + +2026-01-31 Daniel Mendler <mail@daniel-mendler.de> + + pixel-scroll: Avoid loading `cua-base' + + CUA is not necessarily used together with `pixel-scroll-precision-mode'. + Make `pixel-scroll-interpolate-down' and `pixel-scroll-interpolate-up' + independent and avoid loading cua-base. + * lisp/pixel-scroll.el (pixel-scroll-interpolate-up) + (pixel-scroll-interpolate-down): Do not use `cua-scroll-down' and + `cua-scroll-up'; replace them with inline code. (Bug#80245) + +2026-01-30 Daniel Colascione <dancol@dancol.org> + + xsettings: honor GDK DPI scaling values + + Some XWayland setups only report DPI changes through + GDK xsettings, so Emacs missed DPI updates there. + Recognize the GDK DPI and scaling settings and use + them to compute the effective DPI. + + * src/xsettings.c (parse_settings): Recognize + Gdk/UnscaledDPI and Gdk/WindowScalingFactor. + Use them to compute DPI when present. + +2026-01-30 Sean Whitton <spwhitton@spwhitton.name> + + vc--incoming-revision: Signal error on cache hit + + * lisp/vc/vc.el (vc--incoming-revision): Signal an error instead + of returning nil on a cache hit (bug#80270). + (vc--outgoing-base-mergebase): Simplify, given that + vc--incoming-revision now handles the error case. + +2026-01-30 Sean Whitton <spwhitton@spwhitton.name> + + Make diff-hunk-kill respect an active region + + * lisp/vc/diff-mode.el (diff--revert-kill-hunks): New workhorse + routine. + (diff-hunk-kill, diff-revert-and-kill-hunk): Call it. + (diff-hunk-kill): New BEG and END parameters and interactive + form. + * doc/emacs/files.texi (Diff Mode): + * etc/NEWS: Document the change. + +2026-01-30 Mattias Engdegård <mattias.engdegard@gmail.com> + + Pass lazy doc string to 'defalias' + + * lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-defalias): + We correctly emit a lazy-loaded doc string but then passed a literal + string to 'defalias' by mistake; fix that. Saves 40 KiB in .elc files. + +2026-01-30 Sean Whitton <spwhitton@spwhitton.name> + + vc-git-topic-outgoing-base: Respect a configure push remote + + * lisp/vc/vc-git.el (vc-git-topic-outgoing-base): If there is a + configured push remote, return tracking branch as outgoing base. + +2026-01-30 Sean Whitton <spwhitton@spwhitton.name> + + Factor out vc-git--branch-remotes + + * lisp/vc/vc-git.el (vc-git--branch-remotes): New function. + (vc-git-trunk-or-topic-p): Use it. + * test/lisp/vc/vc-git-tests.el (vc-git-test-branch-remotes): New + test. + +2026-01-30 João Távora <joaotavora@gmail.com> + + Eglot: recall diagnostics froms unopened files on session start + + This is exclusively for the benefit of rust-analyzer, which + sends publishDiagnostics for all project files upfront, and + never republishes them on 'didOpen'. + + See https://github.com/joaotavora/eglot/issues/1531. + + * lisp/progmodes/eglot.el (eglot--flymake-handle-push): Simplify. + Don't flymake-list-only-diagnostics here. + Save original diagnostic in flymake-list-only-diagnostics setting. + (eglot--on-shutdown): Cleanup flymake-list-only-diagnostics. + (eglot--flymake-report-push+pulled): Hack in data from + flymake-list-only-diagnostics. + +2026-01-30 Sean Whitton <spwhitton@spwhitton.name> + + Bind 's' to diff-split-hunk in read-only diff-mode + + * lisp/vc/diff-mode.el (diff-mode-shared-map): Bind 's' to + 'diff-split-hunk'. + * etc/NEWS: Document the change. + +2026-01-30 Juri Linkov <juri@linkov.net> + + * lisp/progmodes/eglot.el (eglot-server-programs): Use "elp" for erlang-mode. + + erlang_ls has been archived in favour of erlang-language-platform. + Suggested by Alan & Kim Zimmerman <alan.zimm@gmail.com> (bug#79943). + +2026-01-30 Juri Linkov <juri@linkov.net> + + New function 'checkdoc-batch' (bug#80199) + + * lisp/emacs-lisp/checkdoc.el (checkdoc--batch-flag): New variable. + (checkdoc-rogue-spaces, checkdoc-message-text): Use it along the + check for interactive calls to be able to collect errors in the + diagnostic buffer. + (checkdoc-show-diagnostics): Don't show the diagnostic buffer + when 'checkdoc--batch-flag' is non-nil. + (checkdoc-batch): New function to check the buffer and print the + content of the diagnostic buffer. + +2026-01-30 Juri Linkov <juri@linkov.net> + + New key 'M-j' for 'icomplete-mode' (bug#62108) + + * lisp/icomplete.el (icomplete-exit): New alias for 'icomplete-fido-exit'. + (icomplete-minibuffer-map): Bind it to "M-j" . + + * lisp/replace.el (multi-occur--prompt): Show "M-j" bound to 'icomplete-exit' + in 'icomplete-mode'. + +2026-01-30 Spencer Baugh <sbaugh@janestreet.com> + + eager-display *Completions* again after completion failure + + If the completion table requests eager-update (so *Completions* + should be updated as the user types, when already displayed) + then *Completions* will be dismissed automatically if the user + types something which isn't a completion. Previously, + *Completions* wouldn't be redisplayed until the user requests it + again. Now, if the completion table also enables eager-display + in addition to eager-update, then automatically redisplay + *Completions* after it disappears. + + * lisp/minibuffer.el (completions--start-eager-display): Add + REQUIRE-EAGER-UPDATE argument and don't run if Completions is + already displayed. + (completions--after-change): Call + 'completions--start-eager-display'. + (minibuffer-completion-help): Add the 'completions--after-change' + hook earlier, and let it remove itself (bug#80055). + +2026-01-29 Sean Whitton <spwhitton@spwhitton.name> + + New C-x v T l and C-x v T L commands + + * lisp/vc/vc.el (vc-log-outgoing-base) + (vc-root-log-outgoing-base): New commands. + * lisp/vc/vc-dir.el (vc-dir-mode-map): + * lisp/vc/vc-hooks.el (vc-prefix-map): Bind them. + * doc/emacs/vc1-xtra.texi (Outstanding Changes): + * etc/NEWS: Document them. + +2026-01-29 Spencer Baugh <sbaugh@janestreet.com> + + (minibuffer-message): Do not block while displaying message. + + * lisp/minibuffer.el (minibuffer--message-overlay) + (minibuffer--message-timer): New variables. + (minibuffer--delete-message-overlay): New function. + (minibuffer-message): Use a timer and 'pre-command-hook' to + clear message overlay instead of blocking with + 'sit-for'. (bug#79510) + * etc/NEWS: Document the change. + +2026-01-29 Dmitry Gutov <dmitry@gutov.dev> + + xref-find-backend: Error instead of returning nil + + * lisp/progmodes/xref.el (xref-find-backend): + Signal error when we can't find a backend to use (bug#80246). + +2026-01-29 Spencer Baugh <sbaugh@janestreet.com> + + Use frame-pixel-width/height to determine if frame is landscape + + * lisp/window.el (window--frame-landscape-p): New function. + (split-window-sensibly): Call it (bug#80053). + +2026-01-29 Mattias Engdegård <mattias.engdegard@gmail.com> + + tutorial.el: don't mutate quoted list + + * lisp/tutorial.el (tutorial--default-keys): + Don't sort quoted list in-place. Sort at compile time, not load time. + Uniform key representation (vectors) so that the default comparison can + be used. Eliminate unnecessary backquote. + (tutorial--sort-keys): Remove. + +2026-01-29 Mattias Engdegård <mattias.engdegard@gmail.com> + + * lisp/tutorial.el (tutorial--describe-nonstandard-key): add space + +2026-01-29 Eli Zaretskii <eliz@gnu.org> (tiny change) + + Avoid interference between child frame deletion and recentering + + * src/frame.c (delete_frame) [HAVE_X_WINDOWS]: Block input while + child frame is displayed, and process the X events triggered by + that later. Patch by Byakuren (https://web.liminal.cafe/~byakuren/). + (Bug#76186) + +2026-01-28 Dmitry Gutov <dmitry@gutov.dev> + + xref-matches-in-directory and xref-matches-in-files: More consistency + + * lisp/progmodes/xref.el (xref--parse-hits, xref--sort-hits): + Extract from xref-matches-in-directory and xref-matches-in-files. + Use in both for better consistency between these functions. + +2026-01-28 Dmitry Gutov <dmitry@gutov.dev> + + xref-matches-in-directory: Don't error on "Binary file ... matches" + + * lisp/progmodes/xref.el (xref-matches-in-directory): + Consider the "Binary file ... matches" message (bug#80246). + +2026-01-28 Stefan Monnier <monnier@iro.umontreal.ca> + + (loaddefs-generate--make-autoload): Try harder to find `autoload-macro` + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--make-autoload): + Try and (auto)load the macro in case that defines `autoload-macro`. + Simplify the code for the `loaddefs--defining-macros` case. + +2026-01-28 Przemysław Kryger <pkryger@gmail.com> + + Create package-vc-tests repositories once per tests run (bug#80235) + + * test/lisp/emacs-lisp/package-vc-tests.el + (package-vc-tests-repos): New variable. + (package-vc-tests-create-repository): Add argument `repos-dir'. + (package-vc-tests-make-temp-dir): Create a temporary directory + with prefix. + (package-vc-with-tests-environment): Use + `package-vc-tests-make-temp-dir' to create a temporary directory + for package test. Use `package-vc-tests-repos' to cache test + package repository. + (package-vc-tests-preserve-pkg-artifacts-p): Detect when to + preserve package temporary files. + (package-vc-tests-environment-tear-down): Use + `package-vc-tests-preserve-pkg-artifacts-p'. Use plural there + are more than one buffer. Report temporary directory with test + repository. + (package-vc-tests-add-ert-run-tests-listener): Wrap listener in + args with custom functionality for `package-vc-tests'. On tests + run start reset `package-vc-tests-repos' cache. On tests run + end delete temporary directories. + +2026-01-28 Sean Whitton <spwhitton@spwhitton.name> + + Move outstanding changes commands from 'o' to 'T' + + The main reason for this is that then these commands can have + the same bindings in VC-Dir buffers that they have under + vc-prefix-map. 'T' is a good mnemonic for "Topic" and a + serviceable mnemonic for "outsTanding". + + * lisp/vc/vc-hooks.el (vc-prefix-map): Move 'o' to 'T'. + * lisp/vc/vc-dir.el (vc-dir-mode-map): New 'T' bindings. + +2026-01-28 Michael Albinus <michael.albinus@gmx.de> + + New Tramp test + + * test/lisp/net/tramp-tests.el (tramp-test45-force-remote-file-error): + New test. + +2026-01-28 Basil L. Contovounesios <basil@contovou.net> + + Always unset lisp_data when freeing images + + Historically only the GIF code did this (since it stores animation + metadata in lisp_data), and recently the WebP code followed suit. + The benefit of clearing lisp_data is not 100% clear (to me: + bug#66221#41), but it probably can't hurt, so do it unconditionally + for all image types to simplify conditional compilation and avoid + warnings (bug#80266). + + * src/image.c (image_clear_image): Set lisp_data to nil. + [HAVE_GIF || HAVE_WEBP] (gif_clear_image): + [HAVE_IMAGEMAGICK] (imagemagick_clear_image): Remove, replacing all + uses with image_clear_image. + +2026-01-28 Yuan Fu <casouri@gmail.com> + + Fix tree-sitter traversal slowness (bug#80108) + + * configure.ac (LIBSYSTEMD_CFLAGS): Increase minimal required + tree-sitter version to 0.20.10. + * src/treesit.c (treesit_traverse_sibling_helper): When + traversing forward, use the new function + ts_tree_cursor_goto_previous_sibling. + +2026-01-28 Daniel Mendler <mail@daniel-mendler.de> + Dmitry Gutov <dmitry@gutov.dev> + + Customizable xref-references-in-directory backend + + Optionally use find and grep directly instead of going through the + Semantic framework (bug#80246). + + * lisp/progmodes/project.el (project--vc-ignores): Require 'vc' to + ensure that vc-default-ignore-completion-table is available. + + * lisp/progmodes/xref.el (xref-references-in-directory-function): + New user option. + (xref-references-in-directory): Call it. + (xref-references-in-directory-grep): Implementation based on find/grep. + (xref-references-in-directory-semantic): Implementation using Semantic. + (xref-matches-in-directory): Add new argument DELIMITED. + +2026-01-27 Michael Albinus <michael.albinus@gmx.de> + + Organize tramp-adb-handle-make-process a little bit better + + * lisp/net/tramp-adb.el (tramp-adb-handle-make-process): + Call `tramp-taint-remote-process-buffer' where it belongs to. + +2026-01-27 Stefan Monnier <monnier@iro.umontreal.ca> + + (pcase--subtype-bitsets): Make it a bit more precise + + `null`, `booleanp`, and `symbolp` were treated as equivalent in + `pcase--subtype-bitsets`, which was not incorrect to the extent + that we currently use this table only to detect + mutual-exclusion, but made it incorrect to use that same table + to test things like inclusion. + + * lisp/emacs-lisp/cl-preloaded.el (built-in-class): New slot + `non-abstract-supertype`. + (cl--define-built-in-type): Add corresponding keyword argument. + (symbol, boolean): Use it. + + * lisp/emacs-lisp/pcase.el (pcase--subtype-bitsets): Use it. + + * lisp/emacs-lisp/cl-macs.el (cl--transform-lambda): Require `help` + before calling `help--docstring-quote`. Fixes a corner case bootstrap + problem found along the way. + +2026-01-27 Przemysław Kryger <pkryger@gmail.com> + + Ensure skipped package-vc-tests are not installed (bug#80235) + + * test/lisp/emacs-lisp/package-vc-tests.el + (package-vc-tests-packages): Add argument `full'. When `full' + is non-nil, then return full entries. + (package-vc-test-deftest): Use `pkg-arg' for the name of + argument `in-body'. Call `skip-when' and `skip-unless' before + `packgage-vc-tests-with-installed'. + +2026-01-27 Stéphane Marks <shipmints@gmail.com> + + Document frame id related commands and tweak a return value (Bug#80192) + + * doc/lispref/frames.texi (Input Focus): Document the commands + 'select-frame-by-id' and 'undelete-frame-by-id'. + * lisp/frame.el (select-frame-by-id): Clarify return value and + add missing optional argument 'noerror' in sympathy with + 'undelete-frame-by-id'. + +2026-01-26 João Távora <joaotavora@gmail.com> + + Jsonrpc: avoid redisplay_internal calls from jsonrpc-request + + The 'jsonrpc-request' function, when called with non-nil CANCEL-ON-INPUT, + relies on 'sit-for' to stop immediately when the user inputs something into + Emacs. Although this behavior is working well, it has the hitherto + undiscovered side effect of invoking 'redisplay_internal', which triggers + expensive operations such as fontification. + + This bug was noticied when using the 'breadcrumb' package in conjunction + with Eglot and a narrowed buffer. To provide breadcrumbs for the current + context, breadcrumb.el invokes 'imenu--make-index-alist' on a timer. That + function temporarily widens the buffer and then eventually calls + 'redisplay_internal' (through 'eglot-imenu', 'jsonrpc-request', and + 'sit-for'). This has the effect that the temporarily widened buffer is + re-rendered and displayed to the user until the LSP server answers the + request and 'imenu--make-index-alist' restores the restriction, an effect + that lasts between 0.5 and 2 seconds usually and is annoying and confusing. + + To fix this, using a non-nil NODISP argument in the 'sit-for' is not enough + (though it's arguable it should be and maybe that's a separate bug). + Binding 'inhibit-redisplay' to 't' around 'sit-for' seems to fix the issue + robustly. + + * lisp/jsonrpc.el (jsonrpc-request): Bind inhibit-redisplay to t and pass + NODISP to sit-for. + +2026-01-26 Eli Zaretskii <eliz@gnu.org> + + Fix image.c compilation when HAVE_GIF is not defined + + * src/image.c (gif_clear_image): Make it available for other image + types. (Bug#80266) + +2026-01-26 Stefan Monnier <monnier@iro.umontreal.ca> + + (read_char_minibuf_menu_prompt): Fix bug#80146 + + * src/keyboard.c (read_char_minibuf_menu_prompt): Give priority + to a binding in the map over the `menu_prompt_more_char` "binding". + (follow_key): Move before new first use. + +2026-01-26 Eli Zaretskii <eliz@gnu.org> + + Fix point-adjustment when overlays are specific to windows + + * src/keyboard.c (adjust_point_for_property): Consider only + overlays associated with the selected window. (Bug#80255) + +2026-01-26 Bastien Guerry <bzg@gnu.org> + + Update TUTORIAL.translators + + * etc/tutorials/TUTORIAL.translators (Maintainer): Add myself + as TUTORIAL.fr co-maintainer. + +2026-01-26 Mattias Engdegård <mattias.engdegard@gmail.com> + + Neater pcase predicate transform + + Suggested by Stefan Monnier. + + * lisp/emacs-lisp/pcase.el (pcase--macroexpand): Simplify. + * test/lisp/emacs-lisp/pcase-tests.el (pcase-pred-equiv): New test. + +2026-01-25 Philip Kaludercic <philipk@posteo.net> + + Refer to 'package-autosuggest-style' in manual. + + * doc/emacs/package.texi (Package Installation): Mention the + user option. + +2026-01-25 Philip Kaludercic <philipk@posteo.net> + + Update 'package-autosuggest' database + + * etc/package-autosuggest.eld: Add changes detected by the + 'scrape-elpa' command. + +2026-01-25 Philip Kaludercic <philipk@posteo.net> + + Mention scrape-elpa.el file name in autosuggest database + + * admin/scrape-elpa.el (scrape-elpa): Update the inserted comment. + +2026-01-25 Philip Kaludercic <philipk@posteo.net> + + Mark 'package-autosuggest-database' as private + + * admin/scrape-elpa.el (scrape-elpa): + * etc/package-autosuggest.eld: + * lisp/emacs-lisp/package.el (package-autosuggest-database) + (package--autosuggest-suggested, package--suggestion-applies-p) + (package--autosuggest-find-candidates) + (package--autosuggest-install-and-enable): Rename constant name + to add double-dash. + +2026-01-25 Philip Kaludercic <philipk@posteo.net> + + Merge branch 'feature/package-autosuggest' + +2026-01-25 Daniel Mendler <mail@daniel-mendler.de> + + Use a custom buffer name for package review diffs + + * lisp/emacs-lisp/package.el (package-review): Specify a buffer + using 'diff-no-select' instead of falling back to the default + "*Diff*". + + (Bug#80249) + +2026-01-25 Philip Kaludercic <philipk@posteo.net> + + Have default 'compile-command' run make in parallel + + * lisp/progmodes/compile.el (compile-command): Change default + value. + + (Bug#80065) + +2026-01-25 F. Moukayed <alcor@tilde.club> + + Support `undo'ing user input after messages are received + + * lisp/net/rcirc.el (rcirc-update-prompt): Don't track undo info. + (rcirc-send-input): Clear undo list after message is sent. + (rcirc-update-undo-list): Add new function (copied from erc.el). + (rcirc-print): Update (shift) undo list instead of clearing it. + +2026-01-25 Stéphane Marks <shipmints@gmail.com> + + Add 'select-frame-by-id' and 'undelete-frame-by-id' (Bug#80192) + + 'select-frame-by-id' will also undelete a deleted frame ID. + + * lisp/frame.el (select-frame-by-id, undelete-frame-by-id): New + commands. + (make-frame-ids-alist, frame-by-id, frame-id-live-p) + (undelete-frame-id-index): New defuns. + * etc/NEWS: Announce the commands. + +2026-01-25 Po Lu <luangruo@yahoo.com> + + Adjust Android build system for recent changes to package requirements + + * m4/ndk-build.m4 (ndk_package_map): Map libwebp to webp. + +2026-01-24 Basil L. Contovounesios <basil@contovou.net> + + Clarify libwebp configuration checks + + * configure.ac [HAVE_WEBP]: Explicitly check for both libwebpdemux + and libwebp (where the former depends on the latter), since we use + both (bug#57420, bug#61988, bug#66221). Check for WebPDecodeRGBA as + a representative of libwebp and libwebpdecoder now that we no longer + use WebPGetInfo elsewhere. Prepend WEBP_LIBS to LIBS as per + AC_CHECK_LIB. Clarify commentary. + +2026-01-24 Basil L. Contovounesios <basil@contovou.net> + + Improve (WebP) image animation + + This adds support for animations with heterogeneous frame durations + without sacrificing CPU (bug#47895), and plugs a memory leak in and + speeds up WebP animations (bug#66221). + + * lisp/image.el (image-animate): No need to stash + image-multi-frame-p data here, as image-animate-timeout now + refetches it for each animation frame. + (image-show-frame): Fetch image-multi-frame-p anew when checking + bounds; a cached value risks going stale. This is not on the hot + path for animations, and is mainly used when framewise stepping + through an animation interactively. + (image-animate-timeout): Fetch current frame duration anew but do so + before image-show-frame to ensure an image cache hit (bug#47895, + bug#66221). Include time taken by local arithmetic in + 'time-to-load-image'. Update commentary. + + * src/image.c (parse_image_spec): Simplify using FIXNATP. + (filter_image_spec): Remove check for :animate-multi-frame-data as + it is no longer used by image.el. + [HAVE_ANIMATION && HAVE_GIF] (struct gif_anim_handle): + [HAVE_ANIMATION && HAVE_WEBP] (struct webp_anim_handle): New + structures formalizing animation cache handles, and allowing for + more than two custom fields per image type. + (struct anim_cache): Replace generic handle and temp pointers with a + union of gif_anim_handle and webp_anim_handle. All uses updated. + Update destructor signature accordingly. + (anim_create_cache): Use xzalloc to zero-initialize both integer and + pointer fields. Initialize frames, width, height to -1 for + consistency with index. Mark as ATTRIBUTE_MALLOC. + (anim_prune_animation_cache): Check whether destructor (not handle) + is null before calling it. + (gif_clear_image): Note in commentary that WebP also uses it. + (gif_destroy): Free pixmap here now that prune_anim_cache no longer + does it automatically. Remove unused gif_err variable. + (gif_load): Avoid UB from casting destructor to a different type. + Don't redundantly check for null before xfree. Change default frame + delay from 15fps to t, which image-multi-frame-p will translate into + image-default-frame-delay, which the user can control. + [HAVE_WEBP && WINDOWSNT] (init_webp_functions): Reconcile library + definitions with current webp_load implementation. + (webp_destroy): Free owned copy of input WebP bitstream contents. + (webp_load): Ownership of both input and decoded memory is a + function of :data vs :file and animated vs still. Make this and + transfers of ownership to animation cache clearer by using distinct + copy/view variables. Also make resource freeing clearer by using a + single unconditional cleanup and exit path. Check animation cache + early to avoid rereading bitstream and reparsing headers on each + call. Remove redundant call to WebPGetInfo since WebPGetFeatures + does the same thing. Check more libwebpdemux return values for + failure and fix file name reported in error messages. Remove unset + local variable 'file'. If requested :index is ahead, fast-forward + instead of restarting from first frame. If requested :index is + behind, reset animation decoder to first frame instead of deleting + and recreating it. Reuse animation decoder's own WebPAnimInfo and + WebPDemuxer instance instead of creating and deleting a separate + WebPDemuxer. Fix leak when copying :data to animation cache. Fix + frame duration calculation, and return each frame's own duration now + that image.el supports it. Return t as a default frame duration, as + per gif_load. Consistently use WebPBitstreamFeatures to simplify + control flow. Don't pollute lisp_data image-metadata for still + images with animation-related properties. + (image_types) [HAVE_WEBP]: Use gif_clear_image to clear lisp_data + for consistency with GIF code. + (syms_of_image): Remove QCanimate_multi_frame_data; no longer used. + +2026-01-24 Basil L. Contovounesios <basil@contovou.net> + + Improve animation cache documentation + + * doc/lispref/display.texi (Image Cache): Document animation cache + argument that clear-image-cache gained in Emacs 29 (bug#56546, + bug#66221). + + * lisp/image.el (image-animate-timeout): Note limitation of + clear-image-cache with ImageMagick. + + * src/image.c (Fclear_image_cache): Rename animation-cache argument + to animation-filter and expand its description for clarity. + (struct anim_cache, anim_create_cache, image_prune_animation_caches): + Improve commentary. + (mark_image_cache): Replace stale commentary that referred to + forall_images_in_image_cache with description of mark_image_cache. + [HAVE_IMAGEMAGICK] (struct animation_cache): Mention lack of + clear-image-cache support in commentary. + +2026-01-24 Eli Zaretskii <eliz@gnu.org> + + Fix support of listing switches with whitespace in Dired + + * lisp/dired.el (dired-sort-by-date-regexp) + (dired-sort-by-name-regexp): Allow quoted arguments with embedded + whitespace, per the doc string of 'dired-listing-switches'. + (Bug#80200) + +2026-01-24 Liu Hui <liuhui1610@gmail.com> + + Fix inconsistent definition and usage of 'calendar-buffer' + + * lisp/calendar/calendar.el (calendar-buffer): Define it as a + variable. + * lisp/calendar/diary-lib.el (diary-mark-entries): Set + 'calendar-buffer' as a string. (bug#79994) + +2026-01-24 Manuel Giraud <manuel@ledu-giraud.fr> + + Document 'C-u M-x compile' (bug#80156) + + * doc/emacs/building.texi (Compilation): Document 'C-u M-x + compile'. + +2026-01-24 Daniel Mendler <mail@daniel-mendler.de> + Przemysław Alexander Kamiński <alexander@kaminski.se> + Daniel Mendler <mail@daniel-mendler.de> + + Support cons cell for 'line-spacing' + + * etc/NEWS: Announce the change. + * src/dispextern.h (struct glyph_row): Add + 'extra_line_spacing_above' member. + (struct it): Add 'extra_line_spacing_above' member. + * src/frame.h (struct frame): Add 'extra_line_spacing_above' + member. Update comment for 'extra_line_spacing.' + * src/buffer.c (syms_of_buffer): Update the docstring of + 'line-spacing' to describe the cons cell usage. + * src/buffer.h (struct buffer): Update comment for + 'extra_line_spacing'. + * src/frame.c (gui_set_line_spacing): Handle cons cell value for + 'line-spacing'. Calculate and set 'extra_line_spacing_above' + for both integer and float pairs. + * src/xdisp.c (init_iterator): Initialize 'extra_line_spacing_above' + from buffer or frame 'line-spacing', handling cons cells for both + integer and float values. + (gui_produce_glyphs): Use 'extra_line_spacing_above' to distribute + spacing between ascent and descent. Update 'max_extra_line_spacing' + calculation. + (resize_mini_window): Take line spacing into account when resizing the + mini window. Pass height of a single line to 'grow_mini_window' and + 'shrink_mini_window'. + * src/window.c (grow_mini_window, shrink_mini_window): Add unit + argument which defines height of a single line. + * src/window.h (grow_mini_window, shrink_mini_window): Adjust function + prototypes accordingly with unit argument. + * lisp/subr.el (total-line-spacing): New function to calculate total + spacing from a number or cons cell. + (posn-col-row): Use total-line-spacing. + * lisp/simple.el (default-line-height): Use 'total-line-spacing'. + * lisp/textmodes/picture.el (picture-mouse-set-point): Use + 'total-line-spacing'. + * lisp/window.el (window-default-line-height): Use + 'total-line-spacing'. + (window--resize-mini-window): Take 'line-spacing' into account. + * test/lisp/subr-tests.el (total-line-spacing): New test. + * test/src/buffer-tests.el (test-line-spacing): New test. + * doc/emacs/display.texi (Display Custom): Document that + 'line-spacing' can be a cons cell. + (Line Height): Document the new cons cell format for 'line-spacing' + to allow vertical centering. + +2026-01-24 Leo C. Stein <leo.stein@gmail.com> + + Backslashify all open/close punctuation so we don't confuse indenter + + * lisp/leim/quail/latin-ltx.el: Quote characters with general-category + Ps and Pe (Punctuation, Open and Punctuation, Close) with backslash, + otherwise lisp indentation code gets confused. + +2026-01-24 Leo C. Stein <leo.stein@gmail.com> + + Add a few missing mathematical brackets to TeX input method + + * lisp/leim/quail/latin-ltx.el: Add a few more left/right brackets, + especially the ones whose names in ucs-names start with MATHEMATICAL. + The macro names are taken from unimath-symbols.pdf, available at + http://mirrors.ctan.org/macros/unicodetex/latex/unicode-math/unimath-symbols.pdf + +2026-01-24 Leo C. Stein <leo.stein@gmail.com> + + Add unicode's mathematical alphabets to TeX input method + + * lisp/leim/quail/latin-ltx.el: Add math "alphabets" that can be matched + with simple regexps; a few others are added by hand. There are 13 + variants: bf, it, bfit, bb, scr, bfscr, frak, bffrak, sf, bfsf, sfit, + bfsfit, and tt. + +2026-01-24 Leo C. Stein <leo.stein@gmail.com> + + Add some missing LaTeX macros to TeX input method + + * lisp/leim/quail/latin-ltx.el (latin-ltx--define-rules): Add standard + TeX names that were missing; some already had other aliases. Add a few + other non-systematic additions. + +2026-01-24 Josh Berdine <josh@berdine.net> (tiny change) + + Use math symbols instead of CJK punctuation in TeX input method + + This seems more appropriate given the context, and additionally + the CJK symbols often render wider, as a full width CJK glyph, + while the math symbols render narrower. There was some related + discussion in bug#12948, where an analogous change was made + for \langle and \rangle. + * lisp/leim/quail/latin-ltx.el (latin-ltx--define-rules): + Change rules for \llbracket, \rrbracket and \ldata, \rdata to + generate Unicode code points in the Miscellaneous Mathematical + Symbols-A block (U+27E6, U+27E7 and U+27EA, U+27EB) instead of + the CJK Symbols and Punctuation block (U+301A, U+301B and + U+300A , U+300B). + +2026-01-24 Michael Albinus <michael.albinus@gmx.de> + + Improve handling of not-parallel test runs + + * test/Makefile.in: Distinguish between parallel and not-parallel + tests. Mark lisp/autorevert-tests.log, lisp/filenotify-tests.log + and lisp/net/tramp-tests.log to run not-parrallel. (Bug#80164) + + * test/README: Some of the tests do not run parallel when + expensive tests are activated. + + * test/infra/gitlab-ci.yml (.job-template): Use "make -j". + Makefile knows how to handle parallel runs properly. + +2026-01-24 Dmitry Gutov <dmitry@gutov.dev> + + Stop project-query-replace-regexp failing on directory symlinks + + * lisp/progmodes/project.el (project--files-safe): New function. + (project-search, project-query-replace-regexp): Use it (bug#78209). + +2026-01-23 Mattias Engdegård <mattias.engdegard@gmail.com> + + * lisp/emacs-lisp/pcase.el (pcase--macroexpand): Normalise atom etc. + + Transform (pred P) for P in {atom, nlistp, identity, not} into + predicates that pcase already understands in type terms. + This doesn't affect the behaviour but generates better code. + +2026-01-23 Mattias Engdegård <mattias.engdegard@gmail.com> + + * test/Makefile.in (SLOW_TESTS): add package-vc-tests (bug#80235) + +2026-01-23 Sean Whitton <spwhitton@spwhitton.name> + + New bindings for vc-revert + + * lisp/vc/vc-dir.el (vc-dir-mode-map): Bind vc-revert to '@'. + * lisp/vc/vc-hooks.el (vc-prefix-map): Additionally bind + vc-revert to 'C-x v @'. + * doc/emacs/maintaining.texi (VC Undo, VC Directory Commands): + * etc/NEWS: Document the change. + +2026-01-22 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/simple.el (goto-line): Minor optimization + +2026-01-22 Eli Zaretskii <eliz@gnu.org> + + Fix MS-Windows build broken by recent updates in MinGW64 headers + + * nt/inc/ms-w32.h (strerror): Redirect to sys_strerror after + including <string.h>, to prevent the linker from thinking it + should be imported from some DLL. Reported by Richard Copley + <rcopley@gmail.com>. + + * src/w32.c: Remove now unneeded prototype of sys_strerror. + +2026-01-22 Mattias Engdegård <mattias.engdegard@gmail.com> + + * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Speed up. + + Manicure pcase patterns to avoid performance-sapping internal functions + and switch-breaking gaps, resulting in smaller code and less allocation. + +2026-01-22 Juri Linkov <juri@linkov.net> + + Restrict the 'buffer' arg of 'goto-line' only to interactive uses + + * lisp/simple.el (goto-line): Use 'buffer' arg only when + 'interactive' is non-nil (bug#80150). Update docstring. + +2026-01-21 João Távora <joaotavora@gmail.com> + + Eglot: simplify Imenu setup again + + See https://github.com/joaotavora/eglot/issues/1569. + + * lisp/progmodes/eglot.el (eglot--managed-mode): Tweak. + + * etc/EGLOT-NEWS: Tweak. + +2026-01-21 João Távora <joaotavora@gmail.com> + + Eglot: display more readable server-originated messages + + * lisp/progmodes/eglot.el (eglot--format-server-message): New helper. + (eglot-handle-notification<window/showMessage>) + (eglot-handle-request<window/showMessageRequest>): Use it. + +2026-01-21 Juri Linkov <juri@linkov.net> + + Fix down-list navigation in python-ts-mode + + * lisp/progmodes/python.el (python-ts-mode): + Set 'treesit-sexp-thing-down-list' to 'list' to override + sexp navigation with list navigation (bug#72478). + + * lisp/emacs-lisp/lisp.el (up-list): Mention 'up-list-function' in docstring. + +2026-01-21 Vincenzo Pupillo <v.pupillo@gmail.com> + + Flymake support for yaml-ts-mode. + + * etc/NEWS: Announce the new customization option (bug#80215). + * lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode): New customization group. + (yaml-ts-mode-yamllint-options): New customization option. + (yaml-ts-mode--flymake-process): New variable that stores the reference + to the flymake process. + (yaml-ts-mode-flymake): New function that implements support for Flymake. + +2026-01-21 Binbin Ye <phantom2501@gmail.com> + + Add JSON path utility command to json-ts-mode + + * lisp/progmodes/json-ts-mode.el (json-ts--get-path-at-node) + (json-ts--path-to-jq, json-ts--path-to-python): New functions. + (json-ts-jq-path-at-point): New command for getting JSON path at point. + + * test/lisp/progmodes/json-ts-mode-tests.el: New file. + Add tests for the utility command. + + * etc/NEWS: Announce new command 'json-ts-jq-path-at-point' (bug#80190). + +2026-01-21 Eli Zaretskii <eliz@gnu.org> + + Fix updating buffer menu after invoking "M-x term" + + The doc string of 'frame-or-buffer-changed-p' says not to call it + with the nil argument, but term.el did. Since "M-x term" puts + 'term--update-term-menu' on the 'menu-bar-update-hook' ahead of + 'menu-bar-update-buffers', it caused the latter decide that there + was no change in buffers, because the internal state variable + used by 'frame-or-buffer-changed-p' when called with the nil + argument was reset by 'term--update-term-menu'. Fix that by using + a non-nil state variable. + * lisp/term.el (term--buffers-changed): New variable. + (term--update-term-menu): Use it when calling + 'frame-or-buffer-changed-p'. (Bug#80231) + +2026-01-21 João Távora <joaotavora@gmail.com> + + Eglot: fix textDocument/prepareRename support + + Can't send prepareRename requests willy-nilly. + + See https://github.com/joaotavora/eglot/issues/1554. + + * lisp/progmodes/eglot.el (eglot--rename-interactive): Fix. + (eglot-client-capabilities): Advertise "prepareSupport". + + * etc/EGLOT-NEWS: Mention change. + +2026-01-21 João Távora <joaotavora@gmail.com> + + Eglot: set imenu-create-index-function without advice + + See https://github.com/joaotavora/eglot/issues/1569. + + * lisp/progmodes/eglot.el (eglot--managed-mode): Stomp on + imenu-create-index-function conditionally. + (eglot-imenu): Don't check eglot-server-capable here. + + * etc/EGLOT-NEWS: Mention change. + +2026-01-21 João Távora <joaotavora@gmail.com> + + Eglot: limit the number of file watches + + Some language servers request file watching for a very large number of + directories (e.g. Python virtualenvs), which can exhaust system + resources and cause slow startup. + + https://github.com/joaotavora/eglot/issues/1568 + + * lisp/progmodes/eglot.el (eglot-max-file-watches): New variable. + (eglot--count-file-watches): New function. + (eglot--watch-globs): Use them to limit watches. Signal jsonrpc-error + when limit is reached. + (eglot-watch-files-outside-project-root): Fix docstring punctuation. + + * etc/EGLOT-NEWS: Mention change. + +2026-01-21 João Távora <joaotavora@gmail.com> + + Eglot: support more complex workspace edits (create/rename/delete) + + Advertise support for file resource operations in workspace edits. + Implement create, rename, and delete file operations. Rework + confirmation UI to handle mixed operation types. + + * lisp/progmodes/eglot.el (eglot--lsp-interface-alist): Add + CreateFile, RenameFile, DeleteFile interfaces. + (eglot-client-capabilities): Advertise resourceOperations and + failureHandling. + (eglot-handle-request<workspace/applyEdit>): Return failureReason. + (eglot--apply-text-edits): Tweak error message. + (eglot--propose-changes-as-diff): Adjust for new prepared format. + Return buffer. + (eglot--apply-workspace-edit): Rework. Handle file operations. + + * etc/EGLOT-NEWS: Mention change. + +2026-01-21 João Távora <joaotavora@gmail.com> + + Eglot: overhaul eglot-confirm-server-edits defcustom + + Now also accepts file operation kinds as keys in the alist form. + + * lisp/progmodes/eglot.el (eglot-confirm-server-edits): Rework + default value, docstring and defcustom type. + (eglot--confirm-server-edits): Also check for operation-kind-based + entries. + +2026-01-21 João Távora <joaotavora@gmail.com> + + Eglot: default eglot-advertise-cancellation to t + + The current 2026 landscape suggests servers (especially gopls + and ocamllsp) take advantage of this, so let's give it to them + by default. + + * lisp/progmodes/eglot.el (eglot-advertise-cancellation): + Default to t. + + * etc/EGLOT-NEWS: Mention change. + +2026-01-21 João Távora <joaotavora@gmail.com> + + Eglot: handle user quits when applying server-initiated edits + + If the user simply C-g's signal a 'jsonrpc-error' with code 32000 to + mean "no error", provide an LSP :failureReason and keep server chill. + + * lisp/progmodes/eglot.el (eglot-handle-request<workspace/applyEdit>>): + +2026-01-21 João Távora <joaotavora@gmail.com> + + Eglot: ensure no timeout on remote command executions + + Else, if the server asks us a question, the user has just 10 + seconds to ponder, which is a bit silly. + + * lisp/progmodes/eglot.el (eglot-execute): Pass timeout=nil to + eglot--request. + +2026-01-21 João Távora <joaotavora@gmail.com> + + Eglot: slightly friendlier UI for server window/showMessageRequest + + Previously, the default answer pre-filled in the minibuffer was + obscuring the other possible answers. + + * lisp/progmodes/eglot.el + (eglot-handle-request<window/showMessageRequest>): Rework. + +2026-01-21 João Távora <joaotavora@gmail.com> + + Eglot: advertise cancellation on eglot--request quits + + * lisp/progmodes/eglot.el (eglot--request): Pass CANCEL-ON-QUIT + to jsonrpc-request. + +2026-01-21 João Távora <joaotavora@gmail.com> + + Eglot: fix async request cancellation + + It was completely broken, with a cancel being set for every sent (and + probably already received) async request, and no actual discarding + of the response of a cancelled request. + + * lisp/progmodes/eglot.el (eglot--async-request): Fix cancellation + of async requests. + (eglot--semtok-request): Don't need 'buf' &aux anymore. + +2026-01-21 João Távora <joaotavora@gmail.com> + + Eglot: treat code=0 JSONRPC errors as benign + + * lisp/progmodes/eglot.el (eglot--request): Shoosh code=0 errors. + (eglot-mode-line-error): Check for code=0. + +2026-01-21 João Távora <joaotavora@gmail.com> + + Jsonrpc: don't let remote endpoint requests go unanswered + + Previously, 'quit' could cause remote endpoints to never get a + reply and thus sometimes hang. Ensure we always reply. Also, + give the application a chance to signal jsonrpc-error with the + served code=32000, meaning "no error". + + * doc/lispref/text.texi (JSONRPC Overview): Rework section on + request dispatchers. + + * lisp/jsonrpc.el (jsonrpc-connection-receive): Rework. + +2026-01-21 João Távora <joaotavora@gmail.com> + + Jsonrpc: allow control over jsonrpc-request quits + + This allows clients such as Eglot to act on the user + C-g's/quits out of a blocking jsonrpc-request call. It also + fixes the TIMEOUT=nil passed to jsonrpc-request. An infinite + timeout in that case (for a long-running request, for example) + and it was not being transmitted to the lower + jsonrpc-async-request. + + * lisp/jsonrpc.el (jsonrpc-request): Add CANCEL-ON-QUIT. Rework + docstring. + +2026-01-21 Martin Rudalics <rudalics@gmx.at> + + Fix thinko in 'quit-restore-window' + + * lisp/window.el (quit-restore-window): Try to restore the + previously selected window only if WINDOW is either the selected + window or BURY-OR-KILL is neither 'burying' nor 'killing'. + Otherwise, this might deliberately change the selected window, + for example, when 'kill-buffer-quit-windows' is non-nil and WINDOW + shows the buffer to kill. + +2026-01-21 Morgan Smith <Morgan.J.Smith@outlook.com> + + * doc/misc/dbus.texi (Inhibitor Locks): Fix path. + +2026-01-21 Elías Gabriel Pérez <eg642616@gmail.com> + + hideshow: Use 'message' instead of 'user-error'. (Bug#80201) + + Using 'user-error' in 'hs-minor-mode', prevents the major-mode + from initializing correctly when hideshow is not supported in + that mode, using 'message' instead fixes this. + + * lisp/progmodes/hideshow.el (hs-minor-mode): Tweak. + +2026-01-21 Jared Finder <jared@finder.org> + + (xterm--init): Fix probem in async mode (bug#80163) + + In async mode, the workaround for the old Terminal.app collides + with the binding we install for the primary DA. Just drop it. + + * lisp/term/xterm.el (xterm--init): Remove workaround for very old + macOS `Terminal.app`. + +2026-01-20 Stefan Monnier <monnier@iro.umontreal.ca> + + (garbage-collect-heapsize): New function + + The info returned from `garbage-collect` is really handy to + track the evolution of the heap size, but sadly it's available only + at the cost of running a full GC, which has two big downsides: + it's slow, it affects what we're measuring, and it can't be used + in `post-gc-hook`. + So, this patch makes it available without running the GC. + + * src/alloc.c (Fgarbage_collect_heapsize): New function, extracted from + `Fgarbage_collect`. + (Fgarbage_collect): Use it. + (syms_of_alloc): defsubr it. + + * doc/lispref/internals.texi (Garbage Collection): Extract + documentation for it from that of `garbage-collect`. + +2026-01-20 Juri Linkov <juri@linkov.net> + + * lisp/tab-bar.el (tab-bar-split-tab): New command. + + (split-tab): Alias for 'tab-bar-split-tab'. + +2026-01-20 Michael Albinus <michael.albinus@gmx.de> + + Extend Tramp traces + + * lisp/net/tramp-message.el (tramp-debug-message): + Change selection for `trace-function-background'. + +2026-01-20 Michael Albinus <michael.albinus@gmx.de> + + Tag Tramp tests as :expensive-test + + * test/lisp/net/tramp-tests.el (tramp-test03-file-name-defaults) + (tramp-test10-write-region-file-precious-flag) + (tramp-test10-write-region-other-file-name-handler) + (tramp-test16-file-expand-wildcards) + (tramp-test17-dired-with-wildcards) + (tramp-test17-insert-directory-one-file) + (tramp-test33-environment-variables-and-port-numbers) + (tramp-test35-remote-path, tramp-test39-make-lock-file-name) + (tramp-test39-detect-external-change, tramp-test42-utf8) + (tramp-test43-file-system-info) + (tramp-test44-file-user-group-ids, tramp-test48-session-timeout) + (tramp-test49-external-backend-function) + (tramp-test50-recursive-load): Tag them as :expensive-test. (Bug#80164) + +2026-01-20 Daniel Mendler <mail@daniel-mendler.de> + + Call browser functions via `browse-url' + + This is in order to apply `browse-url-transform-alist'. + + * lisp/net/browse-url.el (browse-url-with-browser-kind) + (browse-url-button-open, browse-url-button-open-url): + * lisp/net/shr.el (shr-browse-url): + * lisp/net/eww.el (eww-browse-with-external-browser): + * lisp/gnus/gnus-sum.el (gnus-summary-browse-url): + * lisp/emacs-lisp/package.el (package-browse-url): Let-bind + `browse-url-browser-function' and call `browse-url'. + +2026-01-20 Pranshu Sharma <pranshu@bauherren.ovh> + + Factor out calculation of window combination for 'split-frame' + + * lisp/window-x.el (window--get-split-combination): New function. + (split-frame): Call it. + +2026-01-19 Paul Eggert <eggert@cs.ucla.edu> + + Don’t use C basename function + + * src/pdumper.c (pdumper_set_emacs_execdir): + Don’t use basename; simply use the pointer we already have. + If we ever need a basename-like function in the future, we should + use Gnulib’s basename-lgpl module, as POSIX basename modifies its + argument string and is incompatible with glibc/Android basename; see + <https://www.gnu.org/software/gnulib/manual/html_node/basename.html>. + +2026-01-19 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + +2026-01-19 Paul Eggert <eggert@cs.ucla.edu> + + Omit -Wzero-as-null-pointer-constant + + * configure.ac: If --enable-gcc-warnings, don’t use + -Wzero-as-null-pointer-constant, which is enabled by default with + bleeding-edge Gnulib (as there seems to be movement in this + direction in C2y). Although -Wzero-as-null-pointer-constant is + useful, Emacs isn’t clean for it yet. + +2026-01-19 Paul Eggert <eggert@cs.ucla.edu> + + Merge Gnulib save-cwd.c changes + + * lib/save-cwd.c: Propagate changes from Gnulib sibling. + This doesn’t affect behavior. + +2026-01-19 Juri Linkov <juri@linkov.net> + + Allow non-interactive calls of 'goto-line' (bug#80150) + + * lisp/simple.el (goto-line, goto-line-relative): Add new arg 'interactive'. + Remove 'declare' with 'interactive-only'. Don't push the mark when called + non-interactively. + +2026-01-19 Juri Linkov <juri@linkov.net> + + Don't fail in minibuffer--completions-visible for undefined reference buffer + + * lisp/minibuffer.el (minibuffer--completions-visible): + Return 'window' even when 'completion-reference-buffer' is nil (bug#80064). + +2026-01-19 Eli Zaretskii <eliz@gnu.org> + + Fix vertical cursor motion across overlay strings + + * src/indent.c (Fvertical_motion): Fix vertical cursor motion when + a screen line begins with an overlay string. (Bug#80223) + +2026-01-19 RadioNoiseE <rne.kou@icloud.com> + + Fix box cursor width returned for stretch glyph + + * src/window.c (Fwindow_cursor_info): Return canonical character width + when on stretch glyph and `x-stretch-cursor' is nil. (Bug#80211) + +2026-01-19 Yavor Doganov <yavor@gnu.org> + + NS: Fix UI freezes and Lisp threads on GNUstep + + * src/nsterm.m (ns_select_1): Return thread_select if current + thread is not the main thread or timeout is zero; otherwise call + 'thread_select' with a minimal timeout to allow other Lisp + threads to run. (Bug#80110, Bug#80112) + +2026-01-19 Michael Albinus <michael.albinus@gmx.de> + + Suppress parallel make for filenotify-tests and tramp-tests + + * test/Makefile.in (.NOTPARALLEL): Add lisp/filenotify-tests.log + and lisp/net/tramp-tests.log. (Bug#80164) + +2026-01-18 Philip Kaludercic <philipk@posteo.net> + + Have 'package-find-news-file' handle built-in packages + + * lisp/emacs-lisp/package.el (package-find-news-file): Abort + early if the package is built-in. + (describe-package-1): Do not invoke 'package-find-news-file' if + missing a package descriptor. + +2026-01-18 Philip Kaludercic <philipk@posteo.net> + + Portable escape SWITCHES in 'package-review-diff-command' + + * lisp/emacs-lisp/package.el (package-review-diff-command): Use + 'shell-quote-argument' to quote arguments instead of assuming a + POSIX shell. + +2026-01-18 Philip Kaludercic <philipk@posteo.net> + + Improve type of user option 'package-review-policy' + + * lisp/emacs-lisp/package.el (package-review-policy): Move tags + to the cons-cell level, so that the labels are displayed in the + menu when inserting a new item. + +2026-01-18 Wilson Snyder <wsnyder@wsnyder.org> + + verilog-mode.el: Fix parameter replacements in AUTOINST. + + * lisp/progmodes/verilog-mode.el (verilog-auto-inst-port): Fix + parameter replacements in AUTOINST (#1903). + +2026-01-18 Michael Albinus <michael.albinus@gmx.de> + + Fix `Man-shell-file-name' + + * lisp/man.el (Man-shell-file-name): Fix for MS Windows. + (Bug#80212) + +2026-01-18 Philip Kaludercic <philipk@posteo.net> + + Extract "news" file extraction logic + + * lisp/emacs-lisp/package.el (package-review) + (describe-package-1): Use new function. + (package-find-news-file): Add new function that also checks for + the "NEWS-elpa" file name. + +2026-01-18 Philip Kaludercic <philipk@posteo.net> + + Autoload 'package-delete' + + * lisp/emacs-lisp/package.el (package-delete): Add autoload + cookie. (Bug#80178) + +2026-01-17 Philip Kaludercic <philipk@posteo.net> + + Autoload 'package-browse-url' + + * lisp/emacs-lisp/package.el (package-browse-url): Add autoload + cookie. (Bug#80178) + +2026-01-17 Philip Kaludercic <philipk@posteo.net> + + Remove some mode restriction in interactive specs of package.el + + * lisp/emacs-lisp/package.el (package-browse-url) + (package-report-bug): Do not restrict these commands to + 'package-menu-mode'. (Bug#80178) + +2026-01-17 Philip Kaludercic <philipk@posteo.net> + + Remove rcirc-set-{en,de}code-coding-system aliases + + These were in the wrong order anyway, so they never had any + effect. + + * lisp/net/rcirc.el (rcirc-set-decode-coding-system) + (rcirc-set-encode-coding-system): Remove obsoletion aliases. + (Bug#80145) + +2026-01-17 Paul Eggert <eggert@cs.ucla.edu> + + Avoid overflows in image size calculations + + Problem reported by Basil L. Contovounesios (bug#66221#89). + * src/image.c (image_size_in_bytes, image_frame_cache_size): + Use intptr_t for sizes of collections of objects. + (struct anim_cache.byte_size, gif_load, Fimage_cache_size): + Use intmax_t for sizes of either files or objects. + +2026-01-17 Paul Eggert <eggert@cs.ucla.edu> + + Improve doc re integer overflow + + * doc/lispref/internals.texi (Module Values, C Integer Types): + Mention that the example assumes Emacs was built with the + GMP library, not with mini-gmp. Mention stdckdint.h for + integer overflow checking, and mention Emacs integers + for values outside machine range. + +2026-01-17 Philip Kaludercic <philipk@posteo.net> + + Add a default "Subject" for package reviews + + * lisp/emacs-lisp/package.el (package-review): Set the SUBJECT + parameter when calling 'compose-mail'. + +2026-01-17 Philip Kaludercic <philipk@posteo.net> + + Quote diff when reviewing package + + * lisp/emacs-lisp/package.el (package-review): Run + 'comment-region' on the output of diff. + +2026-01-17 Sean Whitton <spwhitton@spwhitton.name> + + Disable diff-restrict-view by default + + * lisp/vc/diff-mode.el (diff-restrict-view): Disable it. + * etc/NEWS: Announce the change. + +2026-01-17 Sean Whitton <spwhitton@spwhitton.name> + + Automatically detect the VC outgoing base (bug#80006) + + * lisp/vc/vc-git.el (vc-git--current-branch): Rename to ... + (vc-git-working-branch): ... this. All uses changed. + (vc-git-trunk-or-topic-p, vc-git-topic-outgoing-base): + * lisp/vc/vc-hg.el (vc-hg--working-branch, vc-hg-working-branch) + (vc-hg-trunk-or-topic-p, vc-hg-topic-outgoing-base): + * lisp/vc/vc-hooks.el (vc--safe-branch-regexps-p): + * lisp/vc/vc.el (vc-default-working-branch) + (vc-default-trunk-or-topic-p, vc--match-branch-name-regexps) + (vc--outgoing-base, vc--outgoing-base-mergebase) + (vc--maybe-read-outgoing-base): New functions. + (vc-diff-outgoing-base): Call vc--outgoing-base-mergebase. + (vc-root-diff-outgoing-base, vc-diff-outgoing-base): Use + vc--maybe-read-outgoing-base in interactive specification. + (working-branch, trunk-or-topic-p, topic-outgoing-base): New + specifications for backend functions. + (vc-trunk-branch-regexps, vc-topic-branch-regexps): New + variables. + * .dir-locals.el: Commented entries for the new variables. + * test/lisp/vc/vc-tests/vc-test-misc.el + (vc-test-match-branch-name-regexps): New test. + * doc/emacs/vc1-xtra.texi (Outstanding Changes): Document the + new functionality. + +2026-01-17 kobarity <kobarity@gmail.com> + + Performance improvement of 'python-shell-get-process' + + 'python-shell-get-process' is frequently called from + 'python-eldoc--get-doc-at-point' and etc., invoking + 'project-current' unless there is a buffer-specific Inferior + Python process. When the buffer is a remote buffer not + belonging to any project and has significant latency, + 'project-current' may take a long time. To avoid this, + implement a process cache in 'python-shell-get-process'. + + * lisp/progmodes/python.el (python-shell--process-cache) + (python-shell--process-cache-valid): New variables. + (python-shell--invalidate-process-cache): New function. + (python-shell-make-comint): Add a call to the above function. + (python-shell-get-process): Add process cache. (Bug#80045) + +2026-01-17 Jostein Kjønigsen <jostein@kjonigsen.net> + + csharp-mode.el: Fix indentation after preprocessor statements + + * lisp/progmodes/csharp-mode.el (csharp-ts-mode--indent-rules): + Add rules for preprocessor statements. (Bug#80202) + +2026-01-17 Pig Fang <g-plane@hotmail.com> (tiny change) + + Eglot: support 'wat-mode' + + * lisp/progmodes/eglot.el (eglot-server-programs): Add wat_server. + (Bug#80188) + +2026-01-17 Yavor Doganov <yavor@gnu.org> + + NS: Fix startup with HAVE_NATIVE_COMP && !NS_SELF_CONTAINED + + * src/pdumper.c (pdumper_set_emacs_execdir): Add workaround for + !NS_SELF_CONTAINED so that launching Emacs from the app bundle + works flawlessly when built with native compilation. + * configure.ac: Define BINDIR. (Bug#80094) + +2026-01-17 Daniel Mendler <mail@daniel-mendler.de> + + gnus-msg-mail: Attempt to start Gnus if not yet alive + + * lisp/gnus/gnus-msg.el (gnus-msg-mail): Attempt to start Gnus + if not yet alive. In case of failure, fall back to plain + message mode. (Bug#80173) + +2026-01-17 kobarity <kobarity@gmail.com> + + Improve non-native completion in Python mode + + Previously, both the definition of __PYTHON_EL_get_completions + and the call to __PYTHON_EL_get_completions were sent to the + inferior Python each time + 'python-shell-completion-get-completions' was executed. + However, there is no need to send the definition every time as + long as the definition remains unchanged. We improved this so + that the definition of __PYTHON_EL_get_completions is only sent + during the inferior Python initialization; it is no longer sent + during 'python-shell-completion-get-completions' execution. + * lisp/progmodes/python.el + (python-shell-completion-send-setup-code): New function. + (python-shell-first-prompt-hook): Add the above new function. + (python-shell-completion-get-completions): Omit sending + 'python-shell-completion-setup-code'. (Bug#80182) + +2026-01-17 Jacob S. Gordon <jacob.as.gordon@gmail.com> + + calc: Improve handling of invalid 'calc-string-maximum-character' + + Previously, if 'calc-string-maximum-character' wasn't a valid + character 'math-vector-is-string' would throw an error in the + comparison, leading to an incomplete display of the stack and a + cryptic error message. Instead, have 'math-vector-is-string' + return nil, which effectively disables the display of strings. + Refines feature introduced in bug#78528. + * doc/misc/calc.texi (Customizing Calc): Update description of + behavior for invalid 'calc-string-maximum-character'. + * lisp/calc/calccomp.el (math-vector-is-string): Return nil when + 'calc-string-maximum-character' doesn't represent a character. + * test/lisp/calc/calc-tests.el (calc-math-vector-is-string): Correct + and simplify tests. + +2026-01-17 Amin Bandali <bandali@gnu.org> + + New minor mode center-line-mode + + * lisp/textmodes/text-mode.el (center-line-mode--track-changes): + New local variable for storing the id of the change tracker registered + for the current buffer. + (center-line-mode--track-changes-signal): New function to be called by + the track-changes library whenever there is a change in the current + buffer. + (center-line-mode--track-changes-function): New function called from the + above signal function, iterates over the lines of the modified region, + calling 'center-line' for each non-empty line. + (center-line-mode): New minor mode. + * etc/NEWS: Document the new minor mode. + +2026-01-17 Yavor Doganov <yavor@gnu.org> + + NS: Add native image support for HEIF, SVG and WEBP on GNUstep + + * src/nsimage.m (ns_can_use_native_image_api): Handle HEIF, SVG + and WEBP image types on GNUstep. + * src/image.c (syms_of_image): Add conditional native image + support for HEIF, SVG and WEBP on GNUstep. (Bug#80101) + +2026-01-17 Yavor Doganov <yavor@gnu.org> + + NS: Fix Meta key on GNUstep + + * src/nsterm.m (syms_of_nsterm): On GNUstep, set + ns-command-modifier to "meta" to match the backend default + setting. (Bug#80090) + +2026-01-17 Michael Albinus <michael.albinus@gmx.de> + + New D-Bus functions to support systemd inhibitor locks + + * doc/misc/dbus.texi (Top): Add "Inhibitor Locks" submenu. + Remove trailing period from chapter and section titles. + (Inhibitor Locks): New node. + + * etc/NEWS: New D-Bus functions to support systemd inhibitor locks. + Presentational fixes and improvements. + + * src/dbusbind.c (xd_registered_inhibitor_locks): New variable. + (Fdbus_make_inhibitor_lock, Fdbus_close_inhibitor_lock) + (Fdbus_registered_inhibitor_locks): New DEFUNs. (Bug#79963) + (syms_of_dbusbind_for_pdumper): Initialize + `xd_registered_inhibitor_locks'. + (syms_of_dbusbind): Declare subroutines + `Sdbus_make_inhibitor_lock', `Sdbus_close_inhibitor_lock' and + `Sdbus_registered_inhibitor_locks'. Declare symbol `Qdbus_call_method'. + staticpro `xd_registered_inhibitor_locks'. + + * test/lisp/net/dbus-tests.el (dbus--test-systemd-service) + (dbus--test-systemd-path, dbus--test-systemd-manager-interface): + New defconsts. + (dbus-test10-inhibitor-locks): New test. + +2026-01-16 Basil L. Contovounesios <basil@contovou.net> + + Various housekeeping in image.c + + * doc/lispref/display.texi (Customizing Bitmaps): Fix grammar. + (XBM Images): Fix reference to incorrect number of properties. + (Multi-Frame Images, Other Image Types): Mention multi-frame WebP + support. + + * src/image.c: Don't include pdumper.h; it hasn't been needed since + commit of 2019-05-17 "Clean up and simplify image-type setup". Fix + some commentary. + (image_pix_container_create_from_bitmap_data): Remove no longer used + frame parameter (bug#80191); this continues from commit of + 2022-11-25 "Remove unused parameter from + image_create_pix_container". All callers updated. + (x_create_xrender_picture, initialize_image_type): Simplify. + (xbm_image_p): Remove redundant conditional branch. Update + commentary. + +2026-01-16 Basil L. Contovounesios <basil@contovou.net> + + Fix off-by-one error in native_image_p + + * src/image.c (native_image_format): Make array size explicit, to + help keep it consistent with its later fmt descriptor copy. + (native_image_p): Parse the correct number of keywords (bug#80191). + +2026-01-15 Jared Finder <jared@finder.org> + + Fix behavior for ielm-dynamic-multiline-inputs (bug#80123) + + * lisp/ielm.el (ielm-return): Navigate to before the prompt when + looking for prompt (bug#80123). + +2026-01-15 Jared Finder <jared@finder.org> + + New IELM option to insert newline when inside sexp (bug#80123) + + * lisp/ielm.el (ielm-dynamic-return): Add new value `point' to + user option. + (ielm-return): Implement it (bug#80123). + +2026-01-15 Rudolf Adamkovič <rudolf@adamkovic.org> + + Update SQLite font-lock rules + + * lisp/progmodes/sql.el (sql-mode-sqlite-font-lock-keywords): + Synchronize all SQLite keywords with the official documentation. + +2026-01-15 Andrea Corallo <acorallo@gnu.org> + + * Fix 'message' function signature + + * lisp/emacs-lisp/comp-common.el(comp-primitive-type-specifiers): Fix + 'message' entry. + +2026-01-14 Stefan Monnier <monnier@iro.umontreal.ca> + + (define-ibuffer-column): Fix corner case miscompilations (bug#80180) + + * lisp/ibuf-macs.el (define-ibuffer-column): Don't quote the + SUMMARIZER functions as data. + +2026-01-14 Stefan Monnier <monnier@iro.umontreal.ca> + + (make-progress-reporter): Tweak wording of CONTEXT doc + +2026-01-14 Stéphane Marks <shipmints@gmail.com> + + Optionally inhibit echo area progress reporting (bug#80198) + + Add an optional 'context' argument to 'make-progress-reporter' + which 'progress-reporter-echo-area' consults to inhibit updates + if the context is 'async' and the echo area is busy. + + * lisp/subr.el (make-progress-reporter): Add the optional + 'context' argument. + (progress-reporter-context): New defun accessor. + (progress-reporter-echo-area): Consult + 'progress-reporter-context'. + * doc/lispref/display.texi: Document context. + * etc/NEWS: Announce context. + +2026-01-14 Stefan Monnier <monnier@iro.umontreal.ca> + + (package-install): Fix accidental regression + + * lisp/emacs-lisp/package.el (package-install): Remove code re-added + probably by erroneous merge. + +2026-01-14 Paul Nelson <ultrono@gmail.com> + + Allow Ispell to save corrections as abbrevs + + * lisp/textmodes/ispell.el (ispell-save-corrections-as-abbrevs): + New user option. + (ispell--abbrev-saving-allowed) + (ispell--save-correction-as-abbrev): New variables. + (ispell--maybe-save-correction-abbrev): New function. + (ispell-word, ispell-process-line): Use them to save corrections + as abbrevs when appropriate (bug#79985). + (ispell-command-loop): Add C-u as command character to toggle + abbrev saving for an immediately following replacement command. + (ispell-help): Document C-u binding. + + * doc/emacs/fixit.texi (Spelling): Document new feature. + +2026-01-14 Spencer Baugh <sbaugh@janestreet.com> + + Add new up-down option for minibuffer-visible-completions + + * lisp/emacs-lisp/crm.el (completing-read-multiple): Call + 'minibuffer-visible-completions--maybe-compose-map'. + * lisp/minibuffer.el (completion-in-region-mode): Call + 'minibuffer-visible-completions--maybe-compose-map'. + (minibuffer-visible-completions): Add new value 'up-down' (bug#80024). + (minibuffer-visible-completions-up-down-map): Add. + (minibuffer-visible-completions--maybe-compose-map): Add helper + function. + (completing-read-default): Call + 'minibuffer-visible-completions--maybe-compose-map'. + * lisp/simple.el (completion-setup-function): Check + 'minibuffer-visible-completions' is t, not just non-nil. + +2026-01-14 Juri Linkov <juri@linkov.net> + + * lisp/progmodes/project.el: Improve performance of 'project-mode-line'. + + (project-name-cache-timeout): New variable. + (project-name-cached): New function (bug#78545). + (project-mode-line): New value 'non-remote'. + (project-mode-line-format): Don't show the remote project's name + when 'project-mode-line' is 'non-remote'. Use 'project-name-cached'. + +2026-01-14 Sean Whitton <spwhitton@spwhitton.name> + + Rename VC outgoing and incoming log commands to include "-root-" + + * lisp/vc/vc.el (vc-log-incoming, vc-log-outgoing): Rename ... + (vc-root-log-incoming, vc-root-log-outgoing): ... to these. All + uses changed. Leave behind obsolete function aliases. + * lisp/emacs-lisp/package-vc.el (package-vc-log-incoming): + Rename ... + (package-vc-root-log-incoming): ... to this. All uses changed. + Leave behind obsolete function alias. + +2026-01-14 Jared Finder <jared@finder.org> + + Reset Xterm cursor color to default when face is unspecified + + * lisp/term/xterm.el (xterm-update-cursor): Mention OSC 112 in + doc string. + (xterm--reset-cursor-color-escape-sequence): New constant. + (xterm--init-update-cursor, xterm--update-cursor-color): Use it + (bug#80091). + +2026-01-14 Michael Albinus <michael.albinus@gmx.de> + + Call all registered D-Bus signal handlers + + * doc/misc/dbus.texi (Signals): All registered signal handlers are + called. + (Synchronous Methods, Signals, Monitoring Messages): Add function + result in examples. + + * src/dbusbind.c (xd_store_event): New function. + (xd_read_message_1): Use it. Call all registered handlers per + signal. (Bug#80168) + + * test/lisp/net/dbus-tests.el (dbus--test-signal-handler): Adapt defun. + (dbus--test-signal-handler1, dbus--test-signal-handler2): New defuns. + (dbus-test05-register-signal-several-handlers): New test. + (dbus-test04-register-method) + (dbus-test04-call-method-authorizable) + (dbus-test05-register-signal) + (dbus-test05-register-signal-with-nils) + (dbus-test06-register-property-emits-signal): Adapt tests. + +2026-01-13 Stefan Monnier <monnier@iro.umontreal.ca> + + (loaddefs-generate--make-autoload): Fix bug#80180 + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--make-autoload): + Avoid accidentally loading the `.elc` file. + +2026-01-13 Jonas Bernoulli <jonas@bernoul.li> + + * lisp/icomplete.el (icomplete--render-vertical): Avoid trailing whitespace + + When a completion candidate has no suffix, then there is no need to + add whitespace "between" the candidate and suffix, since there is no + need to align suffixes if there are none. In this case the trailing + whitespace only serves to needlessly make all candidates the same + length, with the result that if one candidate does not fit one a + single line, then all other candidates are made to not fit either. + +2026-01-13 Stefan Monnier <monnier@iro.umontreal.ca> + + package.el: Fix bug#80172 + + * lisp/emacs-lisp/package-activate.el: Move defvar of + `Info-directory-list` to when we know it should exist. + + * lisp/emacs-lisp/package.el (Info-directory-list): Defvar before we + `let-bind it. + +2026-01-13 Manuel Giraud <manuel@ledu-giraud.fr> + + Fix buffer menu unmark (bug#80082) + + Now when calling 'Buffer-menu-unmark-all-buffers', only the + selected mark is removed. + + * lisp/buff-menu.el (Buffer-menu--unmark): Add a mark parameter + to correctly select it in the entry. + (Buffer-menu-unmark, Buffer-menu-unmark-all-buffers) + (Buffer-menu-backup-unmark): Usage. + +2026-01-13 Stefan Monnier <monnier@iro.umontreal.ca> + + Merge branch 'master' of git+ssh://git.sv.gnu.org/srv/git/emacs + +2026-01-13 Stefan Monnier <monnier@iro.umontreal.ca> + + sgml-mode.el: Prefer `forward-sexp` over `forward-list` + + They're always called immediately before a `<` char, in which case + they do the same anyway. This saves us from having to touch + `forward-list-function` in addition to `forward-exp-function`. + + While at it, change `sgml-tags-invisible` to use `define-minor-mode`. + + * lisp/textmodes/sgml-mode.el (sgml-delete-tag) + (sgml-electric-tag-pair-before-change-function): Prefer `forward-sexp` + over `forward-list`. + (sgml-tags-invisible): Define with `define-minor-mode`. Don't disable + `cursor-sensor-mode` when we don't need it any more, since some other + package may be using it. Remove redundant binding of `inhibit-read-only`. + +2026-01-13 Stefan Monnier <monnier@iro.umontreal.ca> + + (forward-sexp-function): Give it a default value + + * lisp/emacs-lisp/lisp.el (forward-sexp-function): Give it a default value. + (forward-sexp): Simplify a bit. + (up-list-default-function): Fix for `forward-sexp-default-function`. + +2026-01-13 Stefan Monnier <monnier@iro.umontreal.ca> + + (forward-list-function): Give it a default value + + * lisp/emacs-lisp/lisp.el (forward-list-function): Give it a default value. + (forward-list): Simplify. + +2026-01-13 Stéphane Marks <shipmints@gmail.com> + + Inhibit unused variable warning in NSTRACE_WHEN (bug#80096) + + * src/nsterm.h (NSTRACE_WHEN): Mark + 'nstrace_saved_enabled_global' as unused. + +2026-01-13 Stéphane Marks <shipmints@gmail.com> + + Add frame identifiers (bug#80138) + + A unique frame id is assigned to a new or cloned frame, and + reused on an undeleted frame. + + The id facilitates unambiguous identification among frames that + share identical names or titles, deleted frames where a live + frame object no longer exists that we can resurrect by id, for + example via 'tab-bar-undo-close-tab'. It also aids debugging at + the C level using the frame struct member id. + + Rewrite 'clone-frame' and 'undelete-frame' to not let bind + variables that 'make-frame' uses to avoid conflicts with nested + 'make-frame' calls, for example via + 'after-make-frame-functions'. + + * lisp/frame.el (clone-frame, undelete-frame): Use + 'frame--purify-parameters' to supply parameters explicitly. + (undelete-frame--save-deleted-frame): Save frame id for + restoration. + (undelete-frame): Restore frame id. + (frame--purify-parameters): New defun. + (make-frame): Assign a new id for a new or cloned frame, reuse + for undeleted frame. + * src/frame.h (struct frame): Add id member. + (frame_next_id): New extern. + * src/frame.c (frame_next_id): New global counter. + (frame_set_id, frame_set_id_from_params): New function. + (Fframe_id): New DEFUN. + (syms_of_frame <Sframe_id>): New defsubr. + (syms_of_frame <Qinternal_id>): New DEFSYM. + (syms_of_frame <frame_internal_parameters>): Add 'Qinternal_id'. + * src/androidfns.c (Fx_create_frame): + * src/haikufns.c (Fx_create_frame): + * src/nsfns.m (Fx_create_frame): + * src/pgtkfns.c (Fx_create_frame): + * src/w32fns.c (Fx_create_frame): + * src/xfns.c (Fx_create_frame): Call 'frame_set_id_from_params'. + * doc/lispref/frames.texi: Add documentation. + * etc/NEWS: Announce frame id. + +2026-01-13 Juri Linkov <juri@linkov.net> + + * lisp/textmodes/html-ts-mode.el: Special handling of 'show-paren-mode'. + + (html-ts-mode--show-paren-data): New function to exclude + unbalanced tags when the closing tag is missing. + (html-ts-mode): Set 'show-paren-data-function' to + 'html-ts-mode--show-paren-data' (bug#80151). + +2026-01-13 Juri Linkov <juri@linkov.net> + + * lisp/textmodes/sgml-mode.el: Fix for html-ts-mode. + + (sgml-electric-tag-pair-before-change-function): + Let-bind 'forward-list-function' to nil. + (sgml-delete-tag): Let-bind 'forward-sexp-function' + and 'forward-list-function' to nil. + (sgml-tags-invisible): Let-bind 'forward-list-function' to nil. + + All this is required to use the default definitions of sexp/list + that significantly differ from treesit definitions (bug#80151). + +2026-01-12 Sean Whitton <spwhitton@spwhitton.name> + + vc--read-branch-to-log: Pass BACKEND to vc-read-revision + + * lisp/vc/vc.el (vc--read-branch-to-log): When passing FILES to + vc-read-revision, also pass BACKEND. Necessary in some cases. + +2026-01-12 Sean Whitton <spwhitton@spwhitton.name> + + save-place-alist-to-file: Use prin1, not pp (bug#80183) + + * lisp/saveplace.el (save-place-alist-to-file): Use 'prin1', not + 'pp' (bug#80183). Suggested by Daniel Mendler + <mail@daniel-mendler.de>. + +2026-01-11 Stefan Monnier <monnier@iro.umontreal.ca> + + Fix recent test suite regression (bug#80177) + + * lisp/emacs-lisp/cl-generic.el (cl--generic-make-function): + Preserve advertised-calling-convention info. + + * test/lisp/emacs-lisp/pcase-tests.el (pcase-tests-quote-optimization): + Require `byte-opt` to fix the test when the compiler is not loaded yet. + + * lisp/progmodes/elisp-mode.el: Fix some >80column problems. + (elisp--xref-format-extra) + (elisp--xref-format): Make them constant, now that we don't have + the purespace. Also, use %S since some of the elements + don't necessarily have names and even if they do, we'd want to + escape any funny characters in them to avoid ambiguities. + (elisp--xref-find-definitions): Fix uses of + `elisp--xref-format-extra` accordingly. + Improve heuristic to distinguish proper `cl-defgeneric` from + implicit ones. + (elisp-eldoc-docstring-length-limit) + (elisp-eldoc-funcall-with-docstring-length): Remove redundant `:group`. + * lisp/cedet/mode-local.el (xref-mode-local-overload): Pass the + override symbol rather than its name through `elisp--xref-format-extra`. + * test/lisp/progmodes/elisp-mode-tests.el (find-defs-constructor): + Adjust test to new text. + +2026-01-11 Juri Linkov <juri@linkov.net> + + Adapt tab-bar/tab-line faces to dark background mode (bug#80135) + + * lisp/faces.el (tab-bar, tab-line): Adapt to dark background. + Suggested by Philip Kaludercic <philipk@posteo.net>. + + * lisp/tab-bar.el (tab-bar-tab, tab-bar-tab-inactive, tab-bar-tab-highlight): + * lisp/tab-line.el (tab-line-tab, tab-line-tab-inactive) + (tab-line-tab-current, tab-line-highlight): Adapt faces to dark background. + +2026-01-11 João Távora <joaotavora@gmail.com> + + Eglot: support textDocument/prepareRename for more accurate eglot-rename + + See https://github.com/joaotavora/eglot/issues/1554. + + * lisp/progmodes/eglot.el (eglot--rename-interactive): New helper. + (eglot-rename): Use it. + +2026-01-11 Eli Zaretskii <eliz@gnu.org> + + Fix Emacs responsiveness when debugging many thread-exit events + + * lisp/progmodes/gdb-mi.el (gdb-start-wait-for-pending): New + function. + (gdb-thread-exited): Call 'gdb-start-wait-for-pending' to make + sure the timer which waits for pending GDB commands is launched + just once, even if many =thread-exited notifications are received + at a high rate. Suggested by Neil Roberts <bpeeluk@yahoo.co.uk>. + (Bug#80157) + +2026-01-11 F. Jason Park <jp@neverwas.me> + + Use seq-doseq for iterating over strings in ERC + + * lisp/erc/erc-common.el (erc--doarray): Remove unused function. + * lisp/erc/erc.el (erc--channel-mode-types, erc--process-channel-modes) + (erc--parse-user-modes): Replace `erc--doarray' with `seq-doseq'. + * test/lisp/erc/erc-tests.el (erc--doarray): Remove test. + +2026-01-11 João Távora <joaotavora@gmail.com> + + Eglot: release version 1.21 + + * lisp/progmodes/eglot.el (Version): Bump to 1.21. + + * etc/EGLOT-NEWS: Announce new version. + +2026-01-11 João Távora <joaotavora@gmail.com> + + Eglot: properly announce semantic tokens support to servers + + * lisp/progmodes/eglot.el (eglot-client-capabilities): Property + annouce semantic tokens. + +2026-01-11 João Távora <joaotavora@gmail.com> + + Eglot: solve misc Elisp compatibility problems on Emacs 26.3 + + * lisp/progmodes/eglot.el (eglot--semtok-request) + (eglot--semtok-after-send-changes): Unbreak for 26.3. + + * test/lisp/progmodes/eglot-tests.el (eglot--tests-connect): Use + split-string. + (eglot-test-rust-completion-exit-function): Use skip-unless. + +2026-01-11 João Távora <joaotavora@gmail.com> + + Eglot: don't use text-property-search-forward unavailable on 26.3 + + * lisp/progmodes/eglot.el (eglot--format-markup) + (eglot--semtok-font-lock-2): Rewrite. + + * test/lisp/progmodes/eglot-tests.el (eglot--semtok-wait): Rewrite. + +2026-01-11 Phil Sainty <psainty@orcon.net.nz> + + Avoid byte-compiled code in `ibuffer-maybe-show-predicates' value (bug#80117) + + * lisp/ibuffer.el (ibuffer-hidden-buffer-p): New function. + (ibuffer-maybe-show-predicates): Use it. + (ibuffer-fontification-alist): Use it (for consistency). + + This prevents byte-compiled code appearing in the *Help* buffer + and in the customize UI for `ibuffer-maybe-show-predicates'. + +2026-01-11 Martin Rudalics <rudalics@gmx.at> + + Fix crash where dead frame remains on list of live frames (Bug#80120) + + * src/fns.c (delq_no_quit): New function. + * src/lisp.h: Extern delq_no_quit. + * src/frame.c (delete_frame): Call delq_no_quit to remove frame + from Vframe_list uninterruptedly (Bug#80120). + +2026-01-11 Michael Albinus <michael.albinus@gmx.de> + + Don't use "make -j" when running tests + + * test/infra/gitlab-ci.yml (.job-template): + * test/README: Don't use "make -j". + +2026-01-11 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/subr.el (insert-for-yank-1): Use `with-silent-modifications` + +2026-01-11 João Távora <joaotavora@gmail.com> + + Eglot: release version 1.20 + + * lisp/progmodes/eglot.el (Version): Bump to 1.20. + + * etc/EGLOT-NEWS: Announce new version. + +2026-01-11 João Távora <joaotavora@gmail.com> + + Eglot: add new command 'eglot-momentary-inlay-hints' + + * doc/misc/eglot.texi (Eglot Commands) + (Customization Variables): Advertise eglot-momentary-inlay-hints. + + * etc/EGLOT-NEWS: Advertise new command. + + * lisp/progmodes/eglot.el (eglot--momentary-hints-data): New variable. + (eglot-momentary-inlay-hints): New command. + +2026-01-11 João Távora <joaotavora@gmail.com> + + Eglot: de-spam eglot-mode-line-progress + + Too spammy when many progress reporters are created by servers + such as rust-analyzer. + + * lisp/progmodes/eglot.el (eglot-mode-line-progress): Tweak. + +2026-01-11 João Távora <joaotavora@gmail.com> + + Eglot: improve diagnostics tests + + * test/lisp/progmodes/eglot-tests.el + (eglot-test-basic-diagnostics): Robustify. + (eglot-test-basic-pull-diagnostics) + (eglot-test-basic-stream-diagnostics): New tests. + +2026-01-11 João Távora <joaotavora@gmail.com> + + Eglot: improve automated test machinery + + * test/lisp/progmodes/eglot-tests.el + (eglot--wait-for): Fix thinkos and improve. + (eglot--tests-connect): Take TIMEOUT and SERVER kwargs. + (eglot-test-eclipse-connect) + (eglot-test-slow-sync-connection-wait) + (eglot-test-slow-sync-connection-intime): Update + eglot--tests-connect call. + +2026-01-11 João Távora <joaotavora@gmail.com> + + Eglot: enhance eglot-list-connections-mode + + * lisp/progmodes/eglot.el (eglot-list-connections-mode) + (eglot-list-connections): Tweak. + +2026-01-11 João Távora <joaotavora@gmail.com> + + Eglot: don't notify server of in-disk changes for managed files + + Not only is this notification strictly redundant for files + managed by Eglot (since didSave, didClose and didChange are + scrupulously sent), but it also confuses some serers which end + up posting a bunch of useless textDocument/publishDiagnostics, + for example. + +2026-01-11 João Távora <joaotavora@gmail.com> + + Eglot: spectacular optimization in files with many diagnostics + + In a large (or simply long) file with many diagnostics, calling + eglot-range-region repeteadly constantly throws Emacs for a spin + around the buffer, since each diagnostics comes annotated with a + (line/col): LSP range spec that is reasonably expensive to + translate into Elisp point positions. + + A much faster approach for such large lists is to first sort all the + objects containing ranges by their start lines and then do a + single pass of the buffer, moving lines by delta. + + By much faster, I do mean spectacularly (100x) faster. A long python + with 7000 "ruff" diagnostics, before the change, typical editor + operations (add/delete words) are impossible. + + 14053 84% - jsonrpc-connection-receive + 14052 84% - #<byte-code-function B94> + 14052 84% - apply + 14052 84% - eglot-handle-notification + 14052 84% - applyn + 14052 84% - #<byte-code-function 6DB> + 14052 84% - eglot--flymake-handle-push + 12295 74% - eglot--flymake-make-diag + 12218 73% + eglot-range-region + 50 0% + eglot--check-object + 12 0% plist-member + 3 0% flymake-make-diagnostic + + After the change: + + 99 1% - jsonrpc-connection-receive + 99 1% - #<byte-code-function 0EE> + 99 1% - apply + 99 1% - eglot-handle-notification + 99 1% - apply + 99 1% - #<byte-code-function E84> + 99 1% - eglot--flymake-handle-push + 99 1% - eglot--call-with-ranged + 99 1% - #<byte-code-function 2C6> + 99 1% - eglot-move-to-utf-16-linepos + 99 1% line-end-position + + * lisp/progmodes/eglot.el (eglot-move-to-linepos-function): + Forward declare. + (eglot--call-with-ranged, eglot--collecting-ranged): New helpers. + (eglot--flymake-report-1) + (eglot--imenu-SymbolInformation): Use eglot--collecting-ranged. + (eglot--imenu-DocumentSymbol): Could use eglot--collecting-ranged. + + * etc/EGLOT-NEWS: Mention it + +2026-01-11 João Távora <joaotavora@gmail.com> + + Eglot: add support for experimental $/streamingDiagnosticsProvider + + * lisp/progmodes/eglot.el + (eglot-client-capabilities): Advertise $streamingDiagnostics + (eglot--streamed-diagnostics): New variable. + (eglot-handle-notification<$/streamDiagnostics>): New method. + (eglot--flymake-make-diag): Tweak docstring. + (eglot-flymake-backend): Rework. + (eglot--flymake-reset): Set eglot--streamed-diagnostics. + +2026-01-11 João Távora <joaotavora@gmail.com> + + Eglot: rework Flymake integration ahead of more changes + + LSP Diagnostics are converted to Flymake diagnostics just-in-time. + Introduce helpers that allow precise control over the type of the + reports (clearing or incremental) and the inhibition of reports. + + * lisp/progmodes/eglot.el + (eglot--pulled-diagnostics) + (eglot--pushed-diagnostics): Rework docstring. + (eglot--flymake-sniff-diagnostics): Rename from + eglot--flymake-diagnostics. + (eglot--diagnostics-map, cl-loop, eglot-warning) + (eglot-note, eglot-error): Move to Flymake section. + (eglot--find-buffer-visiting): New helper.. + (eglot--flymake-handle-push): New helper. + (eglot--flymake-report-1, eglot--flymake-report-2) + (eglot--flymake-report-push+pulled): New helpers. + (eglot--flymake-make-diag): Take REGION arg. + (eglot--handle-notification<textDocument/PublishDiagnostics>): + Use eglot--flymake-handle-push. + (eglot--flymake-pull): Call eglot--flymake-report-push+pulled. + (eglot--flymake-report): Delete. + (eglot--flymake-reset): New helper. + (eglot--managed-mode): Use eglot--flymake-reset. + (eglot--diag-to-lsp-diag): Delete. + (eglot--signal-textDocument/didOpen) + (eglot--managed-mode): Use eglot--flymake-reset. + (eglot--maybe-activate-editing-mode): Don't reset Flymake things here. + (eglot--code-action-params): Tweak. + (eglot--code-action-bounds): Use eglot--flymake-sniff-diagnostics. + (eglot--capf-session-flush): Tweak. + +2026-01-11 João Távora <joaotavora@gmail.com> + + Eglot: document LSP server multiplexer support + + This documents how to use LSP multiplexer programs like Rassumfrassum + to connect multiple language servers to a single buffer. + + * doc/misc/eglot.texi (Top): Add "Multi-server support" menu entry. + (Multi-server support): New chapter. + (Using Rassumfrassum, Design rationale): New sections documenting + how to use the Rassumfrassum multiplexer program with Eglot, with + practical examples for C++, Python, and multi-language files. + (Performance): Mention Rassumfrassum as solution for JSONRPC traffic + performance issues. + (Reporting bugs): Add guidance for troubleshooting multiplexer-related + bugs. Improve project description guidance. Fix various typos. + * lisp/progmodes/eglot.el (eglot-server-programs): Add a couple + of rass entries. + + * etc/EGLOT-NEWS: Announce support for LSP server multiplexers via + Rassumfrassum. + +2026-01-11 João Távora <joaotavora@gmail.com> + + Flymake: clarify :region in docstring of f-diagnostic-functions + + * lisp/progmodes/flymake.el (flymake-diagnostic-functions): + Clarify meaning of :region. Re-fill docstring. + +2026-01-11 João Távora <joaotavora@gmail.com> + + Jsonrpc: add major mode for events buffers + + If the 'jq' program is installed, this dramatically simplifies debugging + LSP transcripts. + + * lisp/jsonrpc.el (jsonrpc-events-jq-at-point): New function. + (jsonrpc-events-occur-at-point): New function. + (jsonrpc-events-mode-map): New variable. + (jsonrpc-events-mode): New major mode. + (jsonrpc-events-buffer): Use new mode. + +2026-01-10 JD Smith <jdtsmith@gmail.com> + + Limit yanks to a single set of modification hook calls + + * lisp/subr.el (insert-for-yank-1): Locally set + `inhibit-modification-hooks' to t prior to changing yanked text + properties. Bug#77221 + +2026-01-10 Elías Gabriel Pérez <eg642616@gmail.com> + + hideshow: Reword documentation (bug#80116) + + * etc/NEWS: Reword entry. + + * lisp/progmodes/hideshow.el: Reword Commentary Header. + + (hs-block-start-mdata-select, hs-block-end-regexp) + (hs-c-start-regexp, hs-forward-sexp-function) + (hs-adjust-block-beginning-function) + (hs-adjust-block-end-function, hs-find-block-beginning-function) + (hs-find-next-block-function) + (hs-looking-at-block-start-predicate) + (hs-inside-comment-predicate): Reword docstrings. + + (hs-block-positions): Reword docstring, and move + 'hs-adjust-block-beginning-function' so that it is not affected + by 'pos-eol'. + + (hs-find-block-beg-fn--default): Use 0 instead of + 'hs-block-start-mdata-select'. + + * lisp/treesit.el (treesit-hs-find-block-beginning): Update + code. + +2026-01-10 Jared Finder <jared@finder.org> + + Update cursor display using Xterm escape sequences + + * lisp/term/xterm.el (xterm-update-cursor): New user option. + (xterm--init): Use it. + (xterm--post-command-hook): New function for all xterm + functionality installed in 'post-command-hook'. + (xterm--init-frame-title): Install it. + (xterm--init-update-cursor, xterm--set-cursor-type) + (xterm--update-cursor-type, xterm--update-cursor-color): New + functions. + (xterm--cursor-type-to-int): New constant. + * doc/emacs/display.texi (Cursor Display): + * etc/NEWS: Document the new feature. + +2026-01-10 Yavor Doganov <yavor@gnu.org> + + NS: Use Cocoa implementation of EmacsBell -init if named image is declared + + * configure.ac: Check for 'NSImageNameCaution' declaration when + building on GNUstep. + * src/nsterm.m ([EmacsBell init]): Use fallback implementation on + GNUstep only if 'NSImageNameCaution' is not declared. (Bug#80107) + +2026-01-10 Liu Hui <liuhui1610@gmail.com> + + Fix cursor position in calendar-generate-window (bug#80069) + + * lisp/calendar/calendar.el (calendar-generate-window): Move + cursor to today before running calendar-today-visible-hook. + +2026-01-10 Sean Whitton <spwhitton@spwhitton.name> + + vc--apply-to-other-working-tree: Handle 'diff-default-read-only'. + + * lisp/vc/vc.el (vc--apply-to-other-working-tree): Bind + inhibit-read-only to non-nil to handle the case when + diff-default-read-only is non-nil (bug#80128). + +2026-01-10 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc.el (vc-deduce-fileset): Don't return empty FILESET. + + Suggested by Spencer Baugh <sbaugh@janestreet.com>. + +2026-01-10 Philip Kaludercic <philipk@posteo.net> + + Bind 'apropos-user-option' to C-h u + + * doc/emacs/help.texi: Adjust documentation. + * etc/NEWS: Mention change. + * lisp/help.el (help-map): Add binding. + +2026-01-10 Philip Kaludercic <philipk@posteo.net> + + Allow 'package-isolate' to fetch missing packages + + * lisp/emacs-lisp/package.el (package-isolate): Fetch missing + packages and make them available in the new Emacs process, but + not the current one. + * etc/NEWS: Mention change. + +2026-01-10 Philip Kaludercic <philipk@posteo.net> + + Allow reviewing packages before installaion + + * lisp/emacs-lisp/package.el (package-review-policy) + (package-review-directory, package-review-diff-command): Add + new options. + (package--review-p): Add new function to consult + 'package-review-policy'. + (package-review): Add new function. + (package-unpack): Use new functions. + (package-install-from-archive): Return package descriptors of + installed packages. + (package-download-transaction): Handle failure of a incomplete + transaction. + (package-install): Report if a package installation failed. + (package-upgrade): Anticipate a failed package transaction by + not deleting a package beforehand. + (package-install-from-buffer): Handle the failure to download + dependencies or a rejection during the actual package review. + * doc/emacs/package.texi: Document feature. + * etc/NEWS: Mention new feature. + +2026-01-10 Stefan Monnier <monnier@iro.umontreal.ca> + + cl-generic.el: Avoid an O(N^2) behavior + + When N methods are defined, don't (re)build the dispatch + function each time since it takes O(N) time to build it. + + * lisp/emacs-lisp/cl-generic.el (cl--generic-method): Add docstring. + (cl--generic): New `lazy-function` slot. + (cl--generic-make-function): Use it and delay building the dispatch + function until the next call. + [toplevel]: Simplify the bootstrap hacks a bit. + +2026-01-09 Stefan Monnier <monnier@iro.umontreal.ca> + + (cl--generic-build-combined-method): Fix lingering error (bug#80154) + + The cycle detection could occasionally leave some lingering + cycle marker leading to bogus errors. While we're here, + streamline the code, to eliminate an unneeded signal+condition-case. + + * lisp/emacs-lisp/cl-generic.el (cl--generic-build-combined-method): + Delete error. + (cl--generic-build-combined-method): Rewrite. + +2026-01-09 Philip Kaludercic <philipk@posteo.net> + + Merge branch 'package-activate' + +2026-01-09 Philip Kaludercic <philipk@posteo.net> + + Remove definitions not relevant to startup from package-activate + + (Bug#80079) + +2026-01-09 Philip Kaludercic <philipk@posteo.net> + + Extract definitions from package.el used during activation + + This change removes all definitions that we move to + package-activate.el in a parallel branch, and then merge back + together. We do this to retain the file history of both files. + + (Bug#80079) + +2026-01-09 Stefan Monnier <monnier@iro.umontreal.ca> + + (project-files): Revert part of commit 6c832af15705 + + * lisp/progmodes/project.el (project-files): Don't add `ignores` twice. + +2026-01-09 Mattias Engdegård <mattias.engdegard@gmail.com> + + Less stingy lisp-eval-depth supply for debugger + + * src/eval.c (call_debugger, signal_or_quit): + Raise extra headroom to 200 levels. The debugger is sometimes entered + via handler-bind so we raise the bar there as well (bug#80154). + +2026-01-09 Michael Albinus <michael.albinus@gmx.de> + + * test/README: Specify, how to invoke "make". (Bug#80112) + +2026-01-08 Stefan Monnier <monnier@iro.umontreal.ca> + + trace.el: Avoid inf-loops when tracing "core functions" + + This makes it possible to trace at least some of the functions + used by the tracer, such as the cl-print functions. + + * lisp/emacs-lisp/trace.el (trace--entry-message) + (trace--exit-message): Don't trace the tracing code. + +2026-01-08 João Távora <joaotavora@gmail.com> + + Unobsolete and autoload M-x eglot-manual, mention it in manual + + The only alternative I've found is + + M-: ( i n f o " ( e g l o t ) " ) RET + + which isn't really very user friendly. + + * lisp/progmodes/eglot.el (eglot-manual): Unobsolete. + + * doc/misc/eglot.texi (Top): Mention M-x eglot-manual. + + * etc/EGLOT-NEWS: Mention unobsoletion. + +2026-01-07 Stefan Monnier <monnier@iro.umontreal.ca> + + (package-test-install-single): Fix test failure + + * test/lisp/emacs-lisp/package-tests.el (package-test-install-single): + We signal an error only for interactive calls now. + +2026-01-07 Stefan Monnier <monnier@iro.umontreal.ca> + + * admin/notes/elpa.md: Update to match current reality + + * admin/notes/elpa: Rename to `elpa.md`. + * admin/notes/elpa.md: Rename from `elpa`, adjust to recently + changed repository location, mention the "new" NonGNU repository. + +2026-01-07 Michael Albinus <michael.albinus@gmx.de> + + shadowfile.el uses eqhemeral buffer names now + + * etc/NEWS: shadowfile.el uses eqhemeral buffer names now. + + * lisp/shadowfile.el (shadow-find-file-noselect): New function. + (shadow-read-files, shadow-write-info-file) + (shadow-write-todo-file): Use it. + +2026-01-07 Stefan Monnier <monnier@iro.umontreal.ca> + + (package-install): Refine fix for bug#79881 + + * lisp/emacs-lisp/package.el (package-install): Demote `user-error` to + `message` if the call is not interactive. + +2026-01-06 Michael Albinus <michael.albinus@gmx.de> + + External Tramp methods can be used in multi-hops + + * doc/misc/tramp.texi (External methods): Mention, how external + methods are used for multi-hops. + (Ad-hoc multi-hops): Change requirement of method. + + * doc/misc/trampver.texi: + * lisp/net/trampver.el: Change version to "2.8.2-pre". + + * etc/NEWS: External Tramp methods can be used in multi-hops. + Presentational fixes and improvements. + + * lisp/net/tramp-sh.el (tramp-sh-handle-copy-directory): Check for + `tramp-method-out-of-band-p' explicitly. Don't flush directory + properties. + (tramp-method-out-of-band-p): There shouldn't be a multi-hop. + + * lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory): Don't + flush directory properties. + + * lisp/net/tramp.el (tramp-methods): Adapt docstring. + (tramp-barf-if-file-missing) + (with-parsed-tramp-file-name): Adapt debug spec. + (tramp-skeleton-copy-directory): Flush directory properties. + (tramp-add-hops): Check for `tramp-login-args' property. + +2026-01-05 Stephen Gildea <stepheng+emacs@gildea.com> + + time-stamp-helper-string-used: New test + + * test/lisp/time-stamp-tests.el (time-stamp-helper-string-used): + New test. + +2026-01-05 João Távora <joaotavora@gmail.com> + + Eglot: prevent textDocument/diagnostic from being sent before didOpen + + Set eglot--docver to -1 in LSP documents not yet 'didOpen'ed, + then add a check for this in the jsonrpc-connection-ready-p + predicate. + + We do this because the call to eglot-flymake-backend may come in + so fast that textDocument/diagnostic actually makes it into the + jsonrpc queue before the didOpen. Much like, say, completions + before didChange, some servers don't like that, understandibly. + + So use the existing "deferred" mechanism checks to make sure, as + usual, that requests targetting a specific LSP document come + after the didOpen/didChange informing the server of the actual + state of the buffer. + + I _could_ have used nil instead of -1, and it would probably be + cleaner. But -1 is safer, we never know if a version comparison + won't slip outside the didOpen period. Might change my mind + about this. + + * lisp/progmodes/eglot.el (eglot--docver): Init to -1. + (eglot--managed-mode): Set eglot--docver to -1 when unmanaging. + (jsonrpc-connection-ready-p): Check eglot--docver non-negative. + (eglot--signal-textDocument/didClose): Set eglot--docver to -1. + +2026-01-05 Martin Rudalics <rudalics@gmx.at> + + Fix typo in 'set-frame-size-and-position' + + * lisp/frame.el (set-frame-size-and-position): Fix typo. + Reported by Al Haji-Ali <abdo.haji.ali@gmail.com>. + +2026-01-05 Martin Rudalics <rudalics@gmx.at> + + Fix calculation of outer frame height in NS builds (Bug#80077) + + * src/nsfns.m (frame_geometry): Include tool bar height when + calculating a frame's outer height (Bug#80077). + +2026-01-05 Martin Rudalics <rudalics@gmx.at> + + In Elisp manual warn about unpredictable changes of point (Bug#79927) + + * doc/lispref/positions.texi (Point): Define "buffer point". + * doc/lispref/windows.texi (Window Point): Say that buffer point + can change in unpredictable ways when windows get selected + (Bug#79927). + +2026-01-04 JD Smith <jdtsmith@gmail.com> + + repeat: handle non-character keys with hint strings + + When a repeat hint string exists, the hint is formatted using + `read-multiple-choice' formatting. But `rmc--add-key-description' only + works on characters, not symbols like 'right or 'left. + + * lisp/repeat.el (repeat-echo-message-string): check for chars + +2026-01-04 Jonas Bernoulli <jonas@bernoul.li> + + Update to Transient v0.12.0-15-gfe5214e6 + +2026-01-04 João Távora <joaotavora@gmail.com> + + Eglot: require project 0.11.2 (bug#79809) + + * lisp/progmodes/eglot.el (Package-Requires): Require project 0.11.2 + +2026-01-04 João Távora <joaotavora@gmail.com> + + * lisp/progmodes/project.el (Version): Bump to 0.11.2 + + (bug#79809) + +2026-01-04 João Távora <joaotavora@gmail.com> + + Eglot: fix thinko in recent diagnostics logic change + + If the pushed diagnostics are outdated and we have pulled diagnostics, + we want to report them. And if the pushed diagnostics are up to date, + we want to report them along with any pulled ones. The do-nothing + update happens only if the pulled response indicated so explicitly or if + there are no pulled diagnostics and the pushed ones are out-of-date. + + * lisp/progmodes/eglot.el (eglot--flymake-report): Tweak. + +2026-01-03 Richard Lawrence <rwl@recursewithless.net> + + Some minor code improvements in iCalendar library + + * lisp/calendar/icalendar-mode.el: Update file header. + + Fix error display in 'icalendar-errors-mode': + + * lisp/calendar/icalendar.el (icalendar-error-regexp): Fix to allow + " *UNFOLDED:" prefix in buffer names. (Extra colon was breaking match.) + (icalendar-format-error): Suppress this prefix preferentially in long + buffer names. + + Add declarations to some iCalendar macros: + + * lisp/calendar/icalendar-macs.el (icalendar-with-node-value) + (icalendar-with-child-of) + (icalendar-with-param-of) + (icalendar-with-node-children) + (icalendar-with-node-value) + (icalendar-with-param) + * lisp/calendar/icalendar-ast.el (icalendar-make-property) + (icalendar-make-component) + (icalendar-make-node-from-templates): Add (declare ...) forms. + + Add `icalendar-trimp' to icalendar-utils.el: + + * lisp/calendar/icalendar-utils.el (icalendar-trimp): New function. + * lisp/calendar/diary-icalendar.el + (diary-icalendar-format-entry) + (diary-icalendar-parse-attendees-and-organizer) + (diary-icalendar-parse-location) + (diary-icalendar-parse-url) + (diary-icalendar-parse-uid): Use it to replace diary-icalendar--nonempty. + (diary-icalendar--nonempty): Remove. + + Move VTIMEZONE creation to icalendar-recur.el: + + The following changes move `diary-icalendar-current-tz-to-vtimezone' and + associated code to icalendar-recur.el. Library users are likely to need + this function, so it makes sense to keep it with other time zone-related + code in that file, instead of having them depend on diary-icalendar. + + * lisp/calendar/icalendar-recur.el (icalendar-tz-data-insufficient) + (icalendar-tz-unsupported): New error types. + (icalendar-recur-current-tz-to-vtimezone): Rename from + `diary-icalendar-current-tz-to-vtimezone'; signal new error types. + (icalendar-recur--tz-warning): Rename from `diary-icalendar--tz-warning'. + (icalendar-recur--emacs-local-tzid): Rename from + `diary-icalendar--emacs-local-tzid'. + (icalendar-recur--tz-info-sexp-p): Rename from + `diary-icalendar--tz-info-sexp-p'. + * lisp/calendar/diary-icalendar.el + (diary-icalendar-current-tz-to-vtimezone): Reimplement with + `icalendar-recur-current-tz-to-vtimezone'. + (diary-icalendar--tz-warning) + (diary-icalendar--emacs-local-tzid) + (diary-icalendar--tz-info-sexp-p): Renamed and moved; see above. + (diary-time-zone-export-strategy): Update validation function name. + +2026-01-03 Michael Albinus <michael.albinus@gmx.de> + + Mitigate uutils coreutils problems in Tramp + + * lisp/net/tramp-sh.el (tramp-get-ls-command): Prefer gnuls over ls. + (tramp-get-remote-readlink): Prefer gnureadlink over readlink. + (Bug#79956, Bug#80075) + +2026-01-03 Eli Zaretskii <eliz@gnu.org> + + Unbreak a build --without-x + + * src/window.c (Fwindow_cursor_info): Provide values for TTY + frames. (Bug#80023) + +2026-01-03 Daniel Eklöf <daniel@ekloef.se> (tiny change) + + Automatically enable xterm-mouse-mode in the foot terminal + + Foot supports all features required for this (OSC-52, DECSET1000, + DECSET1003). + * lisp/term/xterm.el (xterm--auto-xt-mouse-allowed-names): + Add foot. (Bug#80083) + +2026-01-03 Daniel Eklöf <daniel@ekloef.se> (tiny change) + + Use Primary Device Attributes to detect OSC-52 support + + Up until recently, there were no reliable way to detect if a terminal + supported OSC-52 or not. + A number or terminal emulators decided to remedy this by including '52' + in their primary DA response. In short, the presence of 52 in the DA + response means the terminal supports *writing* to the clipboard. + Reading the clipboard is _usually_ supported, but not guaranteed. + It should be noted that Emacs uses both the 'c' and 'p' parameters in + OSC-52, to copy to either PRIMARY, or CLIPBOARD, while the specification + only requires the terminal to implement 'c'. If a terminal doesn't + support 'p', the OSC-52 request will be silently ignored. + * lisp/term/xterm.el (xterm--init, xterm--primary-da-handler): + Query primary device attributes for OSC-52 support. (Bug#80083) + +2026-01-03 Paul Nelson <ultrono@gmail.com> + + Rmail: fix misplaced "D" after auto-file + + * lisp/mail/rmailsum.el (rmail-summary-mark-deleted): Move to + beginning of line before searching for status indicator. + (Bug#80097) + +2026-01-03 Jared Finder <jared@finder.org> + + Make tty default face show the face widget in customize + + * lisp/wid-edit.el (widget-color-match): Allow unspecified-fg + and unspecified-bg as color names. + +2026-01-03 Jared Finder <jared@finder.org> + + Use tty reported background and foreground colors (Bug#79765) + + * lisp/term/xterm.el (xterm--report-background-handler) + (xterm--report-foreground-handler): Record tty background and + foreground color in terminal parameters. + (xterm--version-handler): Also query foreground color. + (xterm--init): Also query foreground color; move background and + foreground color handling here. + (xterm--set-background-mode): Rename from + xterm-maybe-set-dark-background-mode; now always set background + mode to dark or light. + (xterm-maybe-update-default-face): Update default face + background and foreground colors to terminal reported values if + they have not yet been customized. + +2026-01-03 Manuel Giraud <manuel@ledu-giraud.fr> + + Refill 'image-dired-display-image-buffer' + + Bug#68486 + + * lisp/image/image-dired.el (image-dired-display-image): Refill + 'image-dired-display-image-buffer' with image contents instead + of killing it. + +2026-01-03 john muhl <jm@pub.pink> + + Fontify 'table.create' in 'lua-mode' + + * lisp/progmodes/lua-mode.el (lua--builtins): Add 'create' to list + of built-in methods. (Bug#80057) + +2026-01-03 Jostein Kjønigsen <jostein@kjonigsen.net> + + 'csharp-ts-mode': fix indentation error for try/catch statement + + * lisp/progmodes/csharp-mode.el (csharp-ts-mode--indent-rules): + Fix issue with incomplete try/catch statements when try_definition + is parsed, but catch_declaration is not yet parsed (shows in tree + as ERROR). (Bug#80029) + +2026-01-03 RadioNoiseE <rne.kou@icloud.com> + + New function 'window-cursor-info' + + * src/window.c (Fwindow_cursor_info): New function. + (syms_of_window): Defsubr it. + * doc/lispref/windows.texi (Window Point): Document it. + * etc/NEWS: Announce new function. (Bug#80023) + +2026-01-03 kobarity <kobarity@gmail.com> + + Do not use codecs.open for Python 3 + + * lisp/progmodes/python.el (python-shell-eval-file-setup-code): + For Python 3, use built-in open instead of codecs.open to address the + deprecation of codecs.open in Python 3.14. (Bug#79723) + +2026-01-03 kobarity <kobarity@gmail.com> + + Improve python-shell-completion-get-completions + + In 'python-shell-completion-get-completions', since output from the + inferior Python is expected to be in JSON format, commands being echoed + back or warning messages being output caused parsing errors. We + improved this by re-parsing only the last line when a parsing error + occurs, preventing echo-back or warning messages from affecting parsing. + + * lisp/progmodes/python.el + (python-shell-completion-get-completions): Improved to re-parse + only the last line when a JSON parse error occurs. (Bug#79723) + +2026-01-03 Stéphane Marks <shipmints@gmail.com> + + Add frame parameters 'cloned-from' and 'undeleted' (bug#80104) + + * lisp/frame.el (clone-frame): Set the frame parameter + 'cloned-from'. + (undelete-frame): Set the frame parameter 'undeleted'. + * src/frame.c (syms_of_frame): <Qcloned_from> <Qundeleted>: New + DEFSYM. + (syms_of_frame): Add 'Qcloned_from' and 'Qundeleted' to + 'frame_internal_parameters'. + * doc/lispref/frames.texi: Document these frame parameters. + * etc/NEWS: Announce the new frame parameters. + +2026-01-03 Michael Albinus <michael.albinus@gmx.de> + + Set `lexical-binding' buffer-local in shadowfile.el + + * lisp/shadowfile.el (shadow-read-files): Enable `lisp-data-mode'. + Set `lexical-binding' cookie. (Bug#80086) + +2026-01-03 Phil Sainty <psainty@orcon.net.nz> + + Document more display actions in `display-buffer' (bug#80092) + + * lisp/window.el (display-buffer): Add docs for several missing actions: + - display-buffer-in-atom-window + - display-buffer-in-direction + - display-buffer-in-side-window + - display-buffer-reuse-mode-window + - display-buffer-use-some-frame + Re-arrange the actions into a less-arbitrary sequence. + Re-word some descriptions to use a more consistent phrasing. + Re-wrap some lines (based on the longest pre-existing line), to reduce + the line count. + Un-link the `pop-up-frames' symbol in the alist entry listing. + + (display-buffer--action-function-custom-type): Add missing actions, + and re-order as above. + + (display-buffer-reuse-mode-window): Tweak the docstring for better + consistency with other display actions. + +2026-01-03 Phil Sainty <psainty@orcon.net.nz> + + Support the `reusable-frames' value 0 for `display-buffer-in-tab' + + * lisp/tab-bar.el (tab-bar--reusable-frames): Implement support for the + `reusable-frames' value 0, for better consistency with other buffer + display actions. (bug#80092) + +2026-01-03 Phil Sainty <psainty@orcon.net.nz> + + Improve documentation for tab-bar buffer display actions (bug#80092) + + * doc/lispref/windows.texi: Document the display actions + `display-buffer-in-tab' and `display-buffer-in-new-tab' and the + associated alist entries `tab-name' and `tab-group'. + + * lisp/tab-bar.el (display-buffer-in-tab): Restructure docstring for + clarity. Describe the `reusable-frames' behaviour first (as if it finds + a frame with a suitable tab then the `tab-name' entry is not used). + + (display-buffer-in-new-tab): Use consistent wording. + + * lisp/window.el (display-buffer--action-function-custom-type): Add the + display actions as customize choices for user options. + + (display-buffer): Document the display actions and alist entries. + +2026-01-02 Mattias Engdegård <mattias.engdegard@gmail.com> + + Make string-trim faster + + * lisp/subr.el (string-trim): Avoid intermediate substring allocation. + * test/lisp/subr-tests.el (subr-string-trim-left): + (subr-string-trim-right): Move here from subr-x-tests.el. + (subr-string-trim): New test. + +2026-01-02 Michael Albinus <michael.albinus@gmx.de> + + Fix Tramp completion for default method "-" + + * lisp/net/tramp.el (tramp-completion-handle-file-name-all-completions): + Keep `tramp-default-method{-alist}' in order to get completion + functions for `tramp-default-method-marker'. + +2026-01-02 João Távora <joaotavora@gmail.com> + + Eglot: consider "pulled" and "pushed" diagnostics separately + + This is chiefly for the benefit of rust-analyzer which uses both + mechanisms. + + Per https://github.com/joaotavora/eglot/discussions/1562 + + * lisp/progmodes/eglot.el + (eglot--flymake-report-fn): Rename from eglot--flymake-push-report-fn. + (eglot--pulled-diagnostics) + (eglot--pushed-diagnostics): Rework from eglot--diagnostics. + (eglot--diagnostics): Remove. + (eglot--managed-mode): Tweak. + (eglot--maybe-activate-editing-mode): Tweak. + (eglot-handle-notification): Set eglot--pushed-diagnostics + only. Call eglot--flymake-report. + (eglot-flymake-backend): Use eglot--flymake-report and + eglot--flymake-report-fn. + (eglot--flymake-pull): Rework. + (eglot--flymake-report): Renam from eglot--flymake-push and reworked. + +2026-01-02 Yuan Fu <casouri@gmail.com> + + Compile queries in treesit-f-l-recompute-features (bug#80108) + + The direct cause of the problem in the bug report is that when + user runs treesit-font-lock-recompute-features to add the + emacs-devel feature in c-ts-mode's mode hook, the added query + for emacs-devel aren't compiled. + + This change consists of two parts: + 1. The immediate fix: validate and compile queries in + treesit-font-lock-recompute-features. + 2. To make it more fool-proof, change treesit-font-lock-rules + back to compile the queries and make + treesit--compile-query-with-cache support compiled queries. This + way, as long as the query goes through treesit-font-lock-rules, + it'll be compiled eventually and not cause slow-down. I had to + add some c-level functions, but they're kind of overdue anyway, + so I don't have any problem adding them to the API. + + * lisp/treesit.el (treesit--compile-query-with-cache): Support + compiled queries. + (treesit-font-lock-rules): Compile the queries (but not + eagerly). + (treesit-font-lock-recompute-features): Validate and compile + queries. + (treesit-major-mode-setup): Remove call to + treesit-validate-and-compile-font-lock-rules since it's now + called in treesit-font-lock-recompute-features. + + * src/treesit.c (Ftreesit_query_eagerly_compiled_p): + (Ftreesit_query_source): New functions. + + * doc/lispref/parsing.texi (Pattern Matching): Add manual + entries for the new functions. + +2026-01-02 Dmitry Gutov <dmitry@gutov.dev> + + Fix indentation in some project.el functions + + * lisp/progmodes/project.el + (vc-git-project-list-files, project--vc-ignores) + (project-prompt-project-dir): Fix indentation. + +2026-01-02 Dmitry Gutov <dmitry@gutov.dev> + + project-files<vc>: Fix 'void-function vc-git--program-version' + + * lisp/progmodes/project.el (project-try-vc--search): Re-add the + loading of vc-<backend> feature just removed from `project-files'. + +2026-01-01 Mattias Engdegård <mattias.engdegard@gmail.com> + + Clean up a lapcode peephole optimisation rule + + * lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): + Clean up and simplify an old jump-to-conditional-jump rule that was + originally intended for moving loop branches from the top to the bottom, + but is today not much used because it relies on other transformations + only made for dynbound variables. + + This change should not alter code generation. + +2026-01-01 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/diff-mode.el (diff-undo): New obsolete function alias. + +2026-01-01 Po Lu <luangruo@yahoo.com> + + Don't permit special configuration events to trigger `throw-on-input' + + * src/keyboard.c (init_while_no_input_ignore_events): Ignore + Qmonitors_changed and Qtoolkit_theme_changed events. + (is_ignored_event): Assign symbols to + {MONITOR_CHANGED,TOOLKIT_THEME_CHANGED}_EVENT. + (syms_of_keyboard) <Qmonitors_changed> + <Qtoolkit_theme_changed>: New symbols. (bug#80022) + +2026-01-01 Dmitry Gutov <dmitry@gutov.dev> + + Allow project-vc-ignores to be applied in more cases + + Discussed in + https://lists.gnu.org/archive/html/emacs-devel/2025-12/msg00903.html. + + * lisp/progmodes/project.el (project-files) <vc>: Look up the + value of 'project-vc-ignores' inside DIR rather than project root. + This allows this variable to be applied in external dirs as well. + (project-ignores) <vc>: Do likewise. + (project--value-in-dir): Ensure that DIR has a trailing slash. + The caller might pass the value without slash if produced + differently. + + * test/lisp/progmodes/project-tests.el + (project-vc-ignores-in-external-directory): New test. + (project-vc-supports-files-in-subdirectory): Update the test, + considering the subtle change in behavior: the directory DIR + directly includes a .dir-locals.el which sets project-vc-ignores, + which wasn't previously applied because it wasn't set in the root. + +2025-12-31 Stefan Monnier <monnier@iro.umontreal.ca> + + (native--compile-async): Try and avoid inf-loops (bug#80012) + + * lisp/emacs-lisp/comp-run.el (native--compile-async): Call + `comp--run-async-workers` only if we caused the queue to become non-empty. + +2025-12-31 Sean Whitton <spwhitton@spwhitton.name> + + Factor out undo-ignore-read-only (bug#80049) + + * lisp/vc/diff-mode.el (diff-undo): Rename to + undo-ignore-read-only. + (diff-mode-shared-map): Update "<remap> <undo>" binding. + * lisp/simple.el (undo-ignore-read-only): Rename from diff-undo. + * lisp/dired.el (dired-undo): + * lisp/proced.el (proced-undo): Call it. New numeric prefix + argument to specify a repeat count. + * doc/emacs/dired.texi (Marks vs Flags): + * etc/NEWS: Document the change. + +2025-12-31 Sean Whitton <spwhitton@spwhitton.name> + + Split diff-mode-shared-map into two maps + + This is easier to understand and easier to customize. + + * lisp/vc/diff-mode.el (diff-mode-shared-map): Move bindings for + "W", "w", "A", "r" and "R" from here ... + (diff-mode-read-only-map): ... to here, a new map. + (diff-mode-map): Bind diff-mode-shared-map to "ESC". + (diff-read-only-map): Make a composed map from + diff-mode-read-only-map instead of diff-mode-shared-map. + +2025-12-31 Michael Albinus <michael.albinus@gmx.de> + + Sync with Tramp 2.8.1 + + * doc/misc/trampver.texi: + * lisp/net/trampver.el (tramp-version): Adapt Tramp versions. + +2025-12-31 Protesilaos Stavrou <info@protesilaos.com> + + Update Modus themes to their version 5.2.0 + + Release notes: <https://protesilaos.com/codelog/2025-12-31-emacs-modus-themes-5-2-0/>. + +2025-12-31 Yuan Fu <casouri@gmail.com> + + Update c-ts-common--adaptive-fill-prefix for Rust + + * lisp/progmodes/c-ts-common.el: + (c-ts-common--adaptive-fill-prefix): Make it support Rust's //! style comment. + +2025-12-31 Stefan Monnier <monnier@iro.umontreal.ca> + + project-vc: Provide default implementation of `project-list-files` + + Rework the implementation of `project-files<vc>` so as to + delegate more to the `project-list-files` operation, including + the default implementation. + + This can change the behavior in some cases, because it changes + which ignore settings apply where and also it can now use + a dedicated VC backend implementation even for directories + that are outside of the project's root. But the effect should + hopefully be marginal and rather positive by making the behavior + more "regular". + + * lisp/progmodes/project.el (project-vc--backend): New function. + (project-files) <vc>: Use it. Call VC's `project-list-files` operation + for all dirs with a backend and remove the `vc-not-supported` fallback. + Inline the `project--dir-ignores` call. + (vc-default-project-list-files): New function, extracted from + `project-files<vc>`. + (vc-git-project-list-files): Use it instead of signaling `vc-not-supported`. + (project--vc-ignores): New function, extracted from `project-ignores<vc>`. + Remove the `vc-not-supported` since the operation has a default + implementation. Use DIR's `ignore-completion-table` regardless + if we're at the root of the project. + (project-ignores) <vc>: Use it. + +2025-12-31 Dmitry Gutov <dmitry@gutov.dev> + + Clarify the type of value that 'ignore-completion-table' returns + + * lisp/vc/vc.el: Clarify the type of value that + 'ignore-completion-table' returns + (https://lists.gnu.org/archive/html/emacs-devel/2025-12/msg00895.html). + +2025-12-31 João Távora <joaotavora@gmail.com> + + Flymake: try to resize margins less frequently + + In particular, don't auto-resize in flymake-start if the current buffer + already has suitable margins. Otherwise it's impossible to operate two + windows showing the same buffer with different scrolls while using + Flymake. + + Also, when attempting to restore margins, remember to actually apply + them. + + * lisp/progmodes/flymake.el (flymake--original-margin-width) + (flymake--suitably-fringed-p, flymake--bs-display) + (flymake--restore-margins, flymake-restore-margins): Move to + separate section. Rework. + (flymake--suitable-margin-width, flymake--apply-margins) + (flymake--appropriate-margin): New helpers. + +2025-12-30 Sean Whitton <spwhitton@spwhitton.name> + + vc--maybe-read-upstream-location: Default to returning nil + + This should have been updated along with the recent change to + make the UPSTREAM-LOCATION argument to the incoming-revision + backend API function optional. + + * lisp/vc/vc.el (vc--maybe-read-upstream-location): Default to + returning nil, not an empty string. + +2025-12-30 Martin Rudalics <rudalics@gmx.at> + + Inhibit looping in resize_mini_window (Bug#80017) + + * src/xdisp.c (redisplay_window): Don't call resize_mini_window + when the minibuffer is active and minibuffer-only frames shall + be resized automatically since that can loop infinitely (Bug#80017). + +2025-12-29 Stéphane Marks <shipmints@gmail.com> + + Improve system-taskbar on unsupported or unenabled back ends (bug#80087) + + * lisp/system-taskbar.el (system-taskbar-mode): Set + 'system-taskbar-mode' to nil if an unsupported system or + unenabled back end. + +2025-12-29 Richard Lawrence <rwl@recursewithless.net> + + Change the format function calling conventions in diary-icalendar.el + + This avoids `calendar-dlet' and unprefixed dynamic variable bindings + when calling user format functions, as discussed in Bug#74994. + + * lisp/calendar/diary-icalendar.el (diary-icalendar-time-format): Fix + whitespace. + (diary-icalendar-format-attendee) + (diary-icalendar-format-entry): Use fewer dynamic variables, prefix + them, replace `calendar-dlet' with `dlet', and call user format + functions with the node to be formatted. + (diary-icalendar-attendee-format-function) + (diary-icalendar-vevent-format-function) + (diary-icalendar-vjournal-format-function) + (diary-icalendar-vtodo-format-function): Document these changes. + (diary-icalendar-attendee-skeleton) + (diary-icalendar-vevent-skeleton) + (diary-icalendar-vjournal-skeleton) + (diary-icalendar-vtodo-skeleton): Use `defun' with `skeleton-insert' + instead of `define-skeleton'. Update variable references. + (diary-icalendar-import-buffer-to-buffer) + (diary-icalendar-add-valarms): Replace `calendar-dlet' with `dlet'. + * doc/emacs/calendar.texi (Diary iCalendar Import): Update example in + manual. + +2025-12-29 Richard Lawrence <rwl@recursewithless.net> + + iCalendar code improvements + + Thanks to Stefan Monnier for the comments in Bug#74994 leading to most + of these changes. + + Improvements in diary-icalendar.el and related changes: + + * lisp/calendar/diary-icalendar.el + (icalendar-save-binary-atttachment): Rename to + `diary-icalendar-save-binary-attachment'. Document internal require. + (diary-icalendar-attendee-skeleton-command): Rename to + `diary-icalendar-attendee-format-function'. + (diary-icalendar-vevent-skeleton-command): Rename to + `diary-icalendar-vevent-format-function'. + (diary-icalendar-vjournal-skeleton-command): Rename to + `diary-icalendar-vjournal-format-function'. + (diary-icalendar-vtodo-skeleton-command): Rename to + `diary-icalendar-vtodo-format-function'. + * doc/emacs/calendar.texi (Diary iCalendar Import) + * lisp/calendar/icalendar.el (icalendar-import-format) + (icalendar-import-format-summary, icalendar-import-format-description) + (icalendar-import-format-location, icalendar-import-format-organizer) + (icalendar-import-format-url, icalendar-import-format-uid) + (icalendar-import-format-status, icalendar-import-format-class): Update + references to renamed functions. + (diary-icalendar-attendee-format-function): Fix quoted function name. + (diary-icalendar-attendee-format-function) + (diary-icalendar-vevent-format-function) + (diary-icalendar-vjournal-format-function) + (diary-icalendar-vtodo-format-function) + (diary-icalendar-after-mailcap-viewer-hook): Improve docstrings. + (diary-icalendar-skip-addresses-regexp): Ensure default value is a + regexp. + (diary-icalendar-description-regexp): Fix :type declaration to agree + with default. + (diary-icalendar-format-date): Replace unnecessary `calendar-dlet' with + `dlet'. + (diary-icalendar-vevent-format-function) + (diary-icalendar-vjournal-format-function) + (diary-icalendar-vtodo-format-function) + (diary-icalendar-format-entry) + (diary-icalendar-import-buffer-to-buffer) + (diary-icalendar--entry-import) + (diary-icalendar-import-buffer) + (diary-icalendar-import-file): Change "non-marking" to "nonmarking" in + variable names for consistency (cf. `diary-nonmarking-symbol'). + (diary-icalendar-attendee-skeleton): Remove unnecessary call to + `skeleton-insert'. + (diary-icalendar-vevent-skeleton) + (diary-icalendar-vjournal-skeleton) + (diary-icalendar-vtodo-skeleton): Don't insert return values of `let' + forms. + (diary-icalendar-parse-entry): Call + `diary-icalendar-other-properties-parser' with type and properties as + arguments, instead of dynamic binding. + (diary-icalendar-other-properties-parser): Document the new calling + convention. + * test/lisp/calendar/diary-icalendar-tests.el + (diary-icalendar-test-parse-@-location): Accept the new arguments. + + Clarify `declare-function' usage: + + * lisp/calendar/icalendar-parser.el (icalendar-read-time) + (icalendar-period-end, icalendar-parse-calendar) + (icalendar-index-insert, icalendar-index-get) + * lisp/calendar/icalendar-ast.el (icalendar-printable-value-type-symbol-p) + (icalendar-ast-node-valid-value-p) + * lisp/calendar/icalendar-utils.el (icalendar-date-time-add) + (icalendar-dates-until, icalendar-date-time-variant): Move + `declare-function' forms to corresponding `require' forms. + + Improve debugging with icalendar-ast.el macros: + + * lisp/calendar/icalendar-ast.el + (icalendar-make-value-node-of): Add explanatory comment to require. + (icalendar--make-param--list, icalendar--make-param--nonlist) + (icalendar--make-property--list, icalendar--make-property--nonlist): New + functions. + (icalendar-make-param, icalendar-make-property): Use them to reduce code + generated by these macros. Add (declare (debug ...)) forms. + (icalendar-make-component, icalendar-make-node-from-templates): + Add (declare (debug ...)) forms. + * test/lisp/calendar/icalendar-ast-tests.el: New file. + + Various other minor changes: + + * lisp/calendar/icalendar-macs.el (icalendar-define-type): Improve + docstring. + (icalendar-define-property): Fix deprecation warning: replace 'any' with + 'not-newline' in rx definition. + * + test/lisp/calendar/icalendar-recur-tests.el (icalendar-test-rrule-test): + Pass tags on to `ert-deftest' and mark several tests as expensive. + * lisp/calendar/calendar.el (diary-date-insertion-form): Remove + constants from :set-after list. + * lisp/calendar/diary-lib.el (diary-time-regexp): Clarify FIXME comment. + * lisp/calendar/icalendar-parser.el + (icalendar-x-name): Fix indentation. + (icalendar-cal-address): Improve docstring. + +2025-12-29 Richard Lawrence <rwl@recursewithless.net> + + Allow CRLF line endings in iCalendar (.ics) test files + + Thanks to Jim Porter for feedback in Bug#74994. + + * .gitattributes: Allow CRLF endings in iCalendar test files. + +2025-12-29 Manuel Giraud <manuel@ledu-giraud.fr> + + Fix buffer menu unmark on first line (bug#80089) + + * lisp/buff-menu.el (Buffer-menu-backup-unmark): Remove mark on + first line too. + +2025-12-29 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc-hooks.el (vc-prefix-map): Move 'B' to 'o' (bug#80037). + +2025-12-29 Sean Whitton <spwhitton@spwhitton.name> + + Rename node from "Outgoing Base Diffs" to "Outstanding Changes" + + There are going to be new outstanding changes commands that will + deal in logs, not diffs. + + * doc/emacs/vc1-xtra.texi (Outgoing Base Diffs): Rename and + retitle node ... + (Outstanding Changes): ... to this. + +2025-12-29 Sean Whitton <spwhitton@spwhitton.name> + + New commands vc-print-change-log & vc-print-root-change-log + + * lisp/vc/vc.el (vc--read-branch-to-log): Call + vc-deduce-fileset. Don't wrap return value in a list. + (vc-print-fileset-branch-log, vc-print-root-branch-log): Adjust + calls to vc--read-branch-to-log. + (vc-print-change-log, vc-print-root-change-log): + New commands (bug#80037). + * etc/NEWS: Announce them. + +2025-12-29 Liu Hui <liuhui1610@gmail.com> + + Fix the date in the calendar mode line (bug#80069) + + * lisp/calendar/calendar.el (calendar-redraw) + (calendar-other-month): Make sure that the mode line is updated + after cursor motion in case 'date' is used in + 'calendar-mode-line-format'. + (calendar-set-date-style): Delete call to + calendar-update-mode-line because it is called in calendar-draw. + (calendar-generate-window): Delete calls to + calendar-update-mode-line and calendar-cursor-to-visible-date. + It's better for the caller to do it. + (calendar-basic-setup): Update cursor position and mode line. + * lisp/calendar/cal-move.el (calendar-goto-today): Delete + calendar-update-mode-line because calendar-move-hook is called + last. This is consistent with other cal-move commands. + * test/lisp/calendar/calendar-tests.el + (calendar-test-date-in-mode-line): New test. + +2025-12-29 Stefan Monnier <monnier@iro.umontreal.ca> + + track-changes.el (track-changes-undo-only): New var + + * lisp/emacs-lisp/track-changes.el (track-changes-undo-only): New var. + (track-changes-fetch): Bind it. + (track-changes--state): New slot `undo`. + (track-changes--after): Set it. + + * lisp/vc/diff-mode.el (diff--track-changes-function): Use the + new var. + + * doc/lispref/text.texi (Tracking changes): Mention + `track-changes-undo-only`. + +2025-12-28 Yuan Fu <casouri@gmail.com> + + Use variable-use-face for assignment in c-ts-mode (bug#79623) + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): + Use variable-use face for the LHS of assignment statements. + +2025-12-28 Morgan Willcock <morgan@ice9.digital> + + Fix specification of 'python-indent-guess-indent-offset-verbose' + + * lisp/progmodes/python.el (python-indent-guess-indent-offset-verbose): + Fix typo in configuration of safe value function. (Bug#80085) + +2025-12-28 Sean Whitton <spwhitton@spwhitton.name> + + New command 'C-x v b l' + + * lisp/vc/vc.el (vc--read-branch-to-log): New function. + (vc-print-root-branch-log): Rewrite to use + vc--read-branch-to-log and vc--with-backend-in-rootdir. + (vc-print-fileset-branch-log): New command. + * lisp/vc/vc-dir.el (vc-dir-mode-map): + * lisp/vc/vc-hooks.el (vc-prefix-map): + (vc-menu-map): Bind it. + * doc/emacs/maintaining.texi (VC Change Log): + * etc/NEWS: Document it. + +2025-12-28 Sean Whitton <spwhitton@spwhitton.name> + + Factor out vc--read-limit + + * lisp/vc/vc.el (vc--read-limit): New function. + (vc-print-root-log): Call it. + (vc-print-log): Call it. Modernize style. Fix docs regarding + LIMIT: it defaults to vc-log-show-limit only for interactive + calls. + +2025-12-28 Sean Whitton <spwhitton@spwhitton.name> + + Move 'C-x v b l' to 'C-x v b L', rename command + + * lisp/vc/vc-dir.el (vc-dir-mode-map): + * lisp/vc/vc-hooks.el (vc-prefix-map, vc-menu-map): Replace + bindings of 'b l' with 'b L'. + * lisp/vc/vc.el (vc-print-root-branch-log): Rename from + 'vc-print-branch-log'. All uses changed. + (vc-print-branch-log): New obsolete alias. + * doc/emacs/maintaining.texi (VC Change Log) + (VC Directory Commands): + * doc/emacs/vc1-xtra.texi (Editing VC Commands): + * etc/NEWS: Document the change. + +2025-12-28 Mattias Engdegård <mattias.engdegard@gmail.com> + + Don't use the term 'null' for empty strings + + Zero-length strings are just 'empty'; 'null' can be confusing in several + ways. + + * lisp/subr.el (split-string, string-lines): + * doc/lispref/strings.texi (Creating Strings): + Change argument names from 'omit-nulls' to 'omit-empty'. + +2025-12-28 Mattias Engdegård <mattias.engdegard@gmail.com> + + Clean up split-string documentation + + * doc/lispref/strings.texi (Creating Strings): + * lisp/subr.el (split-string): + + Make it clear that the SEPARATORS argument should not match the empty + string, since the behaviour was entirely an artefact of the original + implementation in this case; it makes little sense otherwise. + + Clean up the examples for conciseness and do not waste space on + irrelevant details. + +2025-12-28 Mattias Engdegård <mattias.engdegard@gmail.com> + + Various split-string improvements + + * lisp/subr.el (split-string): + Fix quadratic behaviour in (split-string "x:x:x..." ":" nil " +"). + General code reorganisation for speed and reduced allocation. + Fix a regexp bug; eg, (split-string "A;B" "," nil ";\\|:") + + * test/lisp/subr-tests.el (subr-test-split-string): + More extensive test coverage. + +2025-12-28 Martin Rudalics <rudalics@gmx.at> + + Fix two thinkos in 'set-frame-size-and-position' + + * lisp/frame.el (set-frame-size-and-position): Correctly + interpret width and height of workarea as returned by + 'frame-monitor-attributes'. If LEFT or RIGHT are floats, + position FRAME according to left/top position of workarea. + +2025-12-27 Stefan Monnier <monnier@iro.umontreal.ca> + + (nxml-compute-indent-in-token): Use `noindent` in CDATA + + `noindent` is more precise than what we did since it gives more + info to the caller: `indent-for-tab-command` can treat it + differently (e.g. fall back to `indent-relative`) than `indent-region`. + + * lisp/nxml/nxml-mode.el (nxml-compute-indent-in-token): Use `noindent` + in CDATA. + (nxml-compute-indent-in-delimited-token): Remove CDATA case, not used + any nmore. + +2025-12-27 Jonas Bernoulli <jonas@bernoul.li> + + lisp-indent-local-overrides: New variable + +2025-12-26 Paul Eggert <eggert@cs.ucla.edu> + + Move vc-cloneable-backends-custom-type alias up + + * lisp/vc/vc.el (vc-cloneable-backends-custom-type): + Move alias up. Problem reported by Arash Esbati in: + https://lists.gnu.org/r/emacs-devel/2025-12/msg00772.html + +2025-12-26 Paul Eggert <eggert@cs.ucla.edu> + + * CONTRIBUTE: American English in messages & IDs. + +2025-12-26 Paul Eggert <eggert@cs.ucla.edu> + + December 2025 spelling fixes + + Some of the fixes are to continue to use American + rather than British spelling. + * doc/misc/modus-themes.org (my-modus-themes-engraved-faces): + Fix misspelled ‘:foreground’s. + * etc/themes/modus-themes.el (modus-themes-faces): + Fix misspelled ‘modus-themes-bold’. + * lisp/emacs-lisp/rx.el (rx--normalize-char-pattern): + Rename from rx--normalise-char-pattern. + (rx--optimize-or-args): Rename from rx--optimise-or-args. + * lisp/frame.el (frame--special-parameters): + Fix misspelled "right-divider-width". + * lisp/net/tramp.el (tramp-fingerprint-prompt-regexp): + Use American spelling “centered”, to match current libfprintf. + * lisp/org/org-fold-core.el (org-fold-core--optimize-for-huge-buffers): + Rename from org-fold-core--optimise-for-huge-buffers. + (org-fold-core-update-optimization): + Rename from org-fold-core-update-optimisation, + leaving an alias behind. + (org-fold-core-remove-optimization): + Rename from org-fold-core-remove-optimisation, + leaving an alias behind. + * lisp/org/org.el (org-advertized-archive-subtree): + This alias is now obsolete. + * lisp/play/zone.el (zone-ignored-buffers): + Fix misspelling of ‘zone--buffer-encrypted-p’. + * lisp/progmodes/csharp-mode.el (csharp-ts-mode-faces): + Fix misspelling of ‘csharp’ group. + * lisp/vc/vc.el (vc-clonable-backends-custom-type): + Rename from vc-cloneable-backends-custom-type, + leaving an alias behind. + * test/lisp/emacs-lisp/bytecomp-tests.el: + (bytecomp-tests--warn-arity-non-compiled-callee): + Rename from bytecomp-tests--warn-arity-noncompiled-callee. + (bytecomp-test-defface-spec): Reword a deliberate misspelling + of “default” that is so common I don’t want it to pollute the + spelling dictionary. + * test/lisp/emacs-lisp/package-vc-tests.el: + (package-vc-tests-preserve-artifacts): + Rename from package-vc-tests-preserve-artifacts. + * test/lisp/eshell/em-prompt-tests.el: + (em-prompt-test/forward-backward-paragraph-1): + Reword a deliberate misspelling of “goodbye” that is so common I + don’t want it to pollute the spelling dictionary. + +2025-12-26 Michael Albinus <michael.albinus@gmx.de> + + Fix problem in tramp-adb + + * lisp/net/tramp-adb.el (tramp-adb-do-ls): New function. + (tramp-adb-handle-file-attributes) + (tramp-adb-handle-directory-files-and-attributes) + (tramp-adb-handle-file-name-all-completions): Use it. (Bug#80054) + +2025-12-25 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + +2025-12-25 João Távora <joaotavora@gmail.com> + + Eglot: speed up symbol highlighting (bug#80072) + + In large buffers, responses to textDocument/documentHighlight + requests may return thousands of occurrences. Avoid incurring + expensive eglot--lsp-position-to-point calls, by restricting the + highlights to visible region in the active window. + + * lisp/progmodes/eglot.el (eglot-highlight-eldoc-function): + Rework. + +2025-12-24 Juri Linkov <juri@linkov.net> + + * lisp/tab-bar.el (tab-bar-merge-tabs): New command. + + (merge-tabs): Alias for 'tab-bar-merge-tabs'. + https://lists.gnu.org/archive/html/emacs-devel/2025-12/msg00721.html + +2025-12-24 Juri Linkov <juri@linkov.net> + + * lisp/image-mode.el (image-mode--next-file): Fix infinite loop. + + Fix the case when an image file is visited in the directory with + image files without image file extensions, and 'dired-movement-style' + is non-nil, and 'dired-next-line' wraps to the top of the dired buffer, + doesn't find the next image file and goes into an infinite loop. + Remember the original file name and exit the loop when after wrapping + 'dired-next-line' reaches the original file. + +2025-12-24 Stéphane Marks <shipmints@gmail.com> + + Add ns_set_window_size_and_position + + * src/frame.c (Fset_frame_size_and_position_pixelwise): Correct + docstring typo. + * src/nsterm.m (compute_offset): New function of common code. + (ns_set_offset): Call compute_offset. + (ns_set_window_size_and_position): New function. + (ns_create_terminal): Add new function to the hook. + +2025-12-24 Stéphane Marks <shipmints@gmail.com> + + In Fns_progress_indicator fix GNUstep enum spelling (bug#79859) + + * src/nsfns.m (Fns_progress_indicator): GNUstep spells its level + indicator enum NSContinuousCapacityLevelIndicatorStyle vs. macOS + NSLevelIndicatorStyleContinuousCapacity. + +2025-12-24 Eli Zaretskii <eliz@gnu.org> + + Improve documentation of 'word-combining-categories' + + * src/category.c (syms_of_category) <word-combining-categories>: + Doc fix. (Bug#80042) + +2025-12-24 Stefan Monnier <monnier@iro.umontreal.ca> + + Merge branch 'cursor-intangible' + +2025-12-24 Stefan Monnier <monnier@iro.umontreal.ca> + + (cursor-sensor-tangible-pos): Prefer shortening the motion + + When moving to the middle of an intangible chunk, and either end + of the chunk would result in a movement in the right direction, prefer + the shorter movement, since it's easier for the users to repeat a + movement than to "go back". + (see https://lists.gnu.org/archive/html/emacs-devel/2025-12/msg00686.html) + + * lisp/emacs-lisp/cursor-sensor.el (cursor-sensor-tangible-pos): + Refine the choice. + +2025-12-24 Stefan Monnier <monnier@iro.umontreal.ca> + + (cursor-sensor-tangible-pos): Insist on picking a tangible position + + * lisp/emacs-lisp/cursor-sensor.el (cursor-sensor-tangible-pos): + Prefer a tangible position, even if it means going in the wrong + direction; and don't favor shorter movement. + +2025-12-24 Stefan Monnier <monnier@iro.umontreal.ca> + + (cursor-sensor-tangible-pos): Clarify edge case + + * lisp/emacs-lisp/cursor-sensor.el (cursor-sensor-tangible-pos): + Make it clear that prevpos/nextpos can be nil only at BOB/EOB. + +2025-12-24 Stefan Monnier <monnier@iro.umontreal.ca> + + (cursor-sensor-tangible-pos): Rewrite + + The main purpose is to make the code more symmetric and make it + easier to tweak the behavior, compared to the previous code which + focused on moving always in the direction of the overall motion. + + * lisp/emacs-lisp/cursor-sensor.el (cursor-sensor-tangible-pos): + Rewrite and allow movement in both directions, tho with (hopefully) + minimal changes in behavior. + +2025-12-23 milkvetch <xuhi@distruzione.org> (tiny change) + + Fix tool-bar commands in Info + + * lisp/info.el (Info-mode-map, Info-history-back-menu) + (Info-history-forward-menu): Unbreak tool-bar commands by fixing + letter-case. (Bug#80059) + +2025-12-23 Po Lu <luangruo@yahoo.com> + + Implement set_window_size_and_position_hook on Android + + * java/org/gnu/emacs/EmacsWindow.java (moveResizeWindow): New + method, which alters all of the bounding box of a window at + once. + + * src/android.c (android_init_emacs_window): Load method + `move_resize_window'. + (android_move_resize_window): Invoke this method, rather than a + sequence of operations that will produce two ConfigureNotify + events. + + * src/androidterm.c (android_set_window_size_and_position_1) + (android_set_window_size_and_position): New functions; ported + from X. + (android_create_terminal): Register the same. + +2025-12-23 Katsumi Yamaoka <yamaoka@jpl.org> + + Revert the commit 70678cd5 (bug#80052) + * message.el (message-get-reply-headers): Revert. + +2025-12-22 Stephen Gildea <stepheng+emacs@gildea.com> + + time-stamp-custom-pattern test: Minor optimization + + * test/lisp/time-stamp-tests.el (time-stamp-custom-pattern): Refactor, + lifting the setup of the test buffer out of the loop. + +2025-12-22 Gerd Möllmann <gerd.moellmann@gmail.com> + + Fix handling of border face on tty child frames (bug#80043) + + * src/dispnew.c (box_from_display_table, box_default, + box_glyph): New functions, extracted from produce_box_glyphs. + (box_from_display_table): Merge face nwith glyph's face. + (box_default): Lookup face. + (produce_box_glyphs): Use new functions. + +2025-12-22 Mattias Engdegård <mattias.engdegard@gmail.com> + + Repair package-tests failure + + * test/lisp/emacs-lisp/package-tests.el (package-test-install-single): + "already installed" is now an error; adapt test. + +2025-12-22 Mattias Engdegård <mattias.engdegard@gmail.com> + + * lisp/cus-start.el: Don't complain about :initialize (bug#80051) + +2025-12-22 Mattias Engdegård <mattias.engdegard@gmail.com> + + Recognise %b and %B in compile-time format string checker + + * lisp/emacs-lisp/bytecomp.el (byte-compile-format-warn): Add b and B. + +2025-12-22 Martin Rudalics <rudalics@gmx.at> + + Add functions to set frame size and position in one compound step + + * lisp/frame.el (set-frame-size-and-position): New function. + * src/frame.c (adjust_frame_size): Handle requests to set size + and position. + (Fset_frame_size_and_position_pixelwise): New function. + * src/gtkutil.c (xg_frame_set_size_and_position): New function. + (xg_wm_set_size_hint): Handle any non-NorthWestGravity values + for child frames only. Some GTK implementations don't like + them. + * src/gtkutil.h (xg_frame_set_size_and_position.): Add external + declaration. + * src/termhooks.h (set_window_size_and_position_hook): New hook. + * src/w32term.c (w32_set_window_size_and_position): New + function. + (w32_create_terminal): Make it the Microsoft Windows API + set_window_size_and_position_hook. + * src/xterm.c (x_set_window_size_and_position_1) + (x_set_window_size_and_position): New functions. + (x_create_terminal): Make x_set_window_size_and_position the + set_window_size_and_position_hook for the X protocol. + * src/xterm.h (x_set_window_size_and_position): Add external + declaration. + * etc/NEWS: Announce new functions. + +2025-12-22 Paul Eggert <eggert@cs.ucla.edu> + + Simplify new %b/%B code many years from now + + * src/editfns.c (styled_format): Do %b and %B with sprintf if + sprintf is known to support them. This will let us simplify this + code many years from now. (Bug#79990) + +2025-12-22 Jacob S. Gordon <jacob.as.gordon@gmail.com> + Paul Eggert <eggert@cs.ucla.edu> + + Add binary format specifications '%b' and '%B' + + These produce the binary representation of a number. + '%#b' and '%#B' prefix with '0b' and '0B', respectively. + (bug#79990) + * etc/NEWS: Announce change. + * doc/lispref/strings.texi (Formatting Strings): Describe new format + specs and add to comment on reconstructing the value with 'read'. + * src/editfns.c (format): Update doc string. + (styled_format): Add support for '%b' and '%B'. To remain + portable, avoid use of 'sprintf' by converting by hand. + * test/src/editfns-tests.el (format-binary-zero, format-binary-floats) + (format-binary-nonzero-integers): Add tests. + (read-large-integer): Add binary test cases. + +2025-12-21 Mattias Engdegård <mattias.engdegard@gmail.com> + + Avoid mutating properties of string literals + + * lisp/emacs-lisp/shortdoc.el (text-properties): + * lisp/progmodes/gdb-mi.el (gdb-put-breakpoint-icon): + * lisp/progmodes/gud.el (gud-speedbar-buttons): + Don't mutate literals in some obvious cases. + +2025-12-21 Paul Eggert <eggert@cs.ucla.edu> + + Remove binary-as-unsigned (bug#79990) + + This experimental variable caused more trouble than it cured: + it was rarely used, and when used it tended to be used incorrectly. + * src/editfns.c (binary-as-unsigned): Remove. All uses removed. + +2025-12-21 Sean Whitton <spwhitton@spwhitton.name> + + diff-sanity-check-hunk: Better handle incomplete lines (bug#80040) + + * lisp/vc/diff-mode.el (diff-sanity-check-hunk): Better handle + incomplete lines (bug#80040). + +2025-12-21 Juri Linkov <juri@linkov.net> + + Add text property 'imenu-region' for Eglot and 'M-x imenu' (bug#79980) + + * lisp/imenu.el (imenu--flatten-index-alist) + (imenu--parentify-index-alist, imenu-choose-buffer-index): + Use the text property 'imenu-region' instead of 'breadcrumb-region'. + + * lisp/progmodes/eglot.el (eglot--imenu-SymbolInformation) + (eglot--imenu-DocumentSymbol): Add new text properties 'imenu-region' + and 'imenu-kind' while keeping the old text properties 'breadcrumb-region' + and 'breadcrumb-kind' for backward-compatibility. + +2025-12-21 Philip Kaludercic <philipk@posteo.net> + + List all packages in 'package-install' prompt + + * lisp/emacs-lisp/package.el (package-install-upgrade-built-in): + Update documentation. + * lisp/emacs-lisp/package.el (package-install): Raise error when + re-installing an installed package. (Bug#79881) + +2025-12-21 Stéphane Marks <shipmints@gmail.com> + + System GUI taskbar and progress reporter hooks (bug#79859) + + Implement system GUI taskbar/dock/launcher icon badge, icon + progress indicator, icon attention alert features for D-Bus + platforms (tested on KDE and GNOME), NS (macOS/GNUstep), + MS-Windows. + + Add 'progress-reporter-update-functions' abnormal hook to facilitate + taskbar progress display, and other custom progress reporters. + The default function list is 'progress-reporter-echo-area' which + is backward compatible. + + * lisp/subr.el (progress-reporter-update-functions): + New defvar. + (progress-reporter-echo-area): New defun. + (progress-reporter-do-update): Run + progress-reporter-update-functions for both numerical and + pulsing reporters. + (progress-reporter-done): Run progress-reporter-done-functions. + * lisp/system-taskbar.el: New file. + * src/nsfns.m (Fns_badge, Fns_progress_indicator) + (Fns_request_user_attention): New function. + (syms_of_nsfns): Add defsubr Sns_badge, + Sns_request_user_attention, Sns_progress_indicator. Add DEFSYM + Qinformational, Qcritical. + * src/w32fns.c (rgb_list_to_colorref, Fw32_badge) + (Fw32_request_user_attention, Fw32_progress_indicator): New + function. + (syms_of_w32fns): Add defsubr Sw32_badge, + Sw32_progress_indicator, Sw32_request_user_attention. Add DEFSYM + Qinformational, Qcritical. + * doc/emacs/frames.texi: User documentation. + * doc/lispref/os.texi: Programmer documentation. + * etc/NEWS: Announce system-taskbar-mode. Announce progress + reporter callback enhancements. + +2025-12-21 Eli Zaretskii <eliz@gnu.org> + + Fix VIQR decoding and encoding + + * lisp/language/viet-util.el (viqr-regexp): Include escaped + punctuation characters, to handle escaped punctuation correctly. + (viqr-punctuation-regexp): New defconst. + (viet-encode-viqr-region): Backslash-escape punctuation characters + matching 'viqr-punctuation-regexp' before encoding Vietnamese + characters with diacritics. (Bug#80039) + + * test/lisp/language/viet-util-tests.el (viet-util-test-viqr): New + file with tests for VIQR encoding and decoding. + +2025-12-21 Michael Albinus <michael.albinus@gmx.de> + + * doc/misc/tramp.texi (FUSE setup): Extend rclone setup section. + +2025-12-21 Dmitry Gutov <dmitry@gutov.dev> + + project-vc-supports-project-in-different-dir: Tune the expectation for 'find' + + * test/lisp/progmodes/project-tests.el + (project-vc-supports-project-in-different-dir): + Account for difference in behavior when failing over to 'find' + (comments in bug#79809). + +2025-12-20 Jens Schmidt <jschmidt4gnu@vodafonemail.de> + + Add query-replace-read-transpose-from-to + + Provide a command to easily swap FROM and TO arguments in a query + replace operation. + + * lisp/replace.el (query-replace-read-transpose-from-to): New function. + (query-replace-read-map): New keymap. + (query-replace-read-from): Use new keymap to read from minibuffer. + (read-regexp-map): Inherit from 'query-replace-read-map'. + (query-replace-read-from, query-replace-read-to): Fix parameter + references in doc strings. + * etc/NEWS: Document the change. (Bug#79835) + +2025-12-20 Juri Linkov <juri@linkov.net> + + Handle non-leaf nodes with Eglot text properties in 'M-x imenu' + + * lisp/imenu.el (imenu--flatten-index-alist): Add special handling + of the text property 'breadcrumb-region' added by 'eglot-imenu'. + Add non-leaf nodes with these text properties to the flat index alist. + (imenu--parentify-index-alist): New function. + (imenu-choose-buffer-index): For the case when imenu-flatten is nil, + use 'imenu--parentify-index-alist' to add separate ".." to non-leaf nodes + when the first node of 'index-alist' has Eglot text properties (bug#79980). + +2025-12-20 Richard Lawrence <rwl@recursewithless.net> + + Add full support for iCalendar (RFC5545) data + + This is a fix for Bug#74994 that replaces the existing support + in icalendar.el. It implements a full parser, recurrence rule + and time zone calculations, diary import and export, and a + major mode with syntax highlighting for iCalendar data. It + obsoletes most of the code in icalendar.el. + + In addition to Bug#74994, the proposal to update Emacs' iCalendar + support was discussed on emacs-devel in this thread: + https://lists.gnu.org/archive/html/emacs-devel/2024-10/msg00425.html + + icalendar.el pre-dates the current standard (RFC5545), contains numerous + bugs, is not well documented, and could not easily be updated or + extended; starting fresh was the simplest path to creating an iCalendar + library that other Emacs applications and packages can rely on. It was + decided to leave icalendar.el's code in place for posterity, but declare + it obsolete. Most of the changes in icalendar.el simply consist of such + declarations. The old To Do list has also been deleted. + + A few changes in icalendar.el, however, consist of new code for + library-wide functions and options, especially error handling. In + particular: + + * lisp/calendar/icalendar.el: Log iCalendar library errors in a single + buffer. + (icalendar-errors-mode): New mode for it. + (icalendar-uid-format): Change the default value to "%h", a hash + value (for privacy). + (icalendar-make-uid): New function, to replace 'icalendar--create-uid'. + (icalendar-debug-level, icalendar-vcalendar-prodid): New option. + (icalendar-vcalendar-version): New constant. + * lisp/calendar/icalendar.el (icalendar-import-format) + (icalendar-import-format-summary, icalendar-import-format-description) + (icalendar-import-format-location, icalendar-import-format-organizer) + (icalendar-import-format-url, icalendar-import-format-uid) + (icalendar-import-format-status, icalendar-import-format-class) + (icalendar-recurring-start-year, icalendar-export-hidden-diary-entries) + (icalendar-export-sexp-enumerate-all, icalendar-export-alarms, + icalendar-debug, icalendar--weekday-array, icalendar--dmsg) + (icalendar--get-unfolded-buffer icalendar--clean-up-line-endings) + (icalendar--rris, icalendar--read-element) + (icalendar--get-event-property, icalendar--get-event-properties) + (icalendar--get-event-property-attributes) + (icalendar--get-children, icalendar--all-events, icalendar--split-value) + (icalendar--convert-tz-offset, icalendar--parse-vtimezone) + (icalendar--get-most-recent-observance) + (icalendar--convert-all-timezones, icalendar--find-time-zone) + (icalendar--decode-isodatetime) + (icalendar--decode-isoduration, icalendar--add-decoded-times) + (icalendar--datetime-to-american-date) + (icalendar--datetime-to-european-date, icalendar--datetime-to-iso-date) + (icalendar--datetime-to-diary-date, icalendar--datetime-to-colontime) + (icalendar--get-month-number, icalendar--get-weekday-number) + (icalendar--get-weekday-numbers, icalendar--get-weekday-abbrev) + (icalendar--date-to-isodate, icalendar--datestring-to-isodate) + (icalendar--diarytime-to-isotime, icalendar--convert-string-for-export) + (icalendar--convert-string-for-import, icalendar-export-file) + (icalendar-export-region, icalendar--create-uid) + (icalendar--parse-summary-and-rest, icalendar--create-ical-alarm) + (icalendar--do-create-ical-alarm, icalendar--convert-ordinary-to-ical) + (icalendar-first-weekday-of-year, icalendar--convert-weekly-to-ical) + (icalendar--convert-yearly-to-ical, icalendar--convert-sexp-to-ical) + (icalendar--convert-block-to-ical, icalendar--convert-float-to-ical) + (icalendar--convert-date-to-ical, icalendar--convert-cyclic-to-ical) + (icalendar--convert-anniversary-to-ical, icalendar-import-file) + (icalendar-import-buffer, icalendar--format-ical-event) + (icalendar--convert-to-ical, icalendar--convert-ical-to-diary) + (icalendar--convert-recurring-to-diary) + (icalendar--convert-non-recurring-all-day-to-diary) + (icalendar--convert-non-recurring-not-all-day-to-diary) + (icalendar--add-diary-entry, icalendar-import-format-sample): Mark them + as obsolete. + + In addition to the changes above, the new iCalendar library consists of + the following: + + * lisp/calendar/diary-icalendar.el: + * lisp/calendar/icalendar-ast.el: + * lisp/calendar/icalendar-macs.el: + * lisp/calendar/icalendar-mode.el: + * lisp/calendar/icalendar-parser.el: + * lisp/calendar/icalendar-recur.el: + * lisp/calendar/icalendar-utils.el: New files + + A few changes were made to existing files dealing with the calendar and + diary: + + * lisp/calendar/calendar.el (calendar-date-from-day-of-year): New + function, extracted from calendar-goto-day-of-year. + * lisp/calendar/cal-move.el (calendar-goto-day-of-year): Use it. + * lisp/calendar/cal-dst.el (calendar-dst-find-data): Improve docstring. + * lisp/calendar/calendar.el (diary-date-insertion-form): New option. + (diary-american-date-insertion-form, diary-european-date-insertion-form) + (diary-iso-date-insertion-form): New constants. + * lisp/calendar/diary-lib.el (diary-insert-entry): Use the new + 'diary-date-insertion-form' option. + (diary-time-regexp): Add FIXME to an existing comment. + + The user-facing aspects of the above changes are documented in the Emacs + manual and the NEWS file: + + * doc/emacs/calendar.texi (Diary Conversion): Update manual section to + describe the new importer and exporter. + * doc/emacs/emacs.texi (Detailed node listing): Update to include the + new nodes in docs/emacs/calendar.texi. + * etc/NEWS: Briefly describe the new library, major mode, and options. + + The remainder of the changes apply to test files. + + The following changes introduce new test files related to the new diary + importer and exporter: + + * test/lisp/calendar/diary-icalendar-tests.el (Diary import and export): + Tests for diary-icalendar. In addition to new tests for the exporter, + the existing import tests for icalendar.el have been ported here; these + use the existing iCalendar files in + test/lisp/calendar/icalendar-resources. (A few new input .ics files + have also been added to this directory; see below.) + * test/lisp/calendar/diary-icalendar-resources: New directory containing + expected outputs for the import tests in diary-icalendar-tests.el. + (These have the same or similar names to the output files for the old + importer, in test/lisp/calendar/icalendar-resources, but different + contents. Thus they live in a new directory.) + * test/lisp/calendar/icalendar-resources/import-legacy-function.ics: New + input file to test backward compatibility of the new importer with a + function as the value of 'icalendar-import-format', now obsolete. + * test/lisp/calendar/icalendar-resources/import-legacy-vars.ics: New + input file to test backward compatibility of the new importer with + values for options provided by icalendar.el which are now obsolete. + * test/lisp/calendar/icalendar-resources/import-with-attachment.ics: New + input file to test import of base64-encoded attachments. + * icalendar-resources/import-time-format-12hr-blank.ics: New input file + to test import with a custom value of 'diary-icalendar-time-format'. + + Two other new test files provide unit tests for the main functions of + the library: + + * test/lisp/calendar/icalendar-parser-tests.el (Parser): Tests for + icalendar-parser. Most of these are derived from examples in RFC5545, + to ensure the parser implements the standard. + * test/lisp/calendar/icalendar-recur-tests.el (Recurrence rules): Tests + for icalendar-recur. Most of these are derived from examples in RFC5545, + to ensure the recurrence rule interpreter implements the standard. + + A few of the existing test files for icalendar.el have also been + modified. Besides the specific changes mentioned below, the modified + .ics files also now use CR-LF line endings, as required by RFC5545: + + * test/lisp/calendar/icalendar-tests.el (icalendar-deftest-obsolete): + New macro. + * test/lisp/calendar/icalendar-resources/import-non-recurring-all-day.ics: + Correct a malformed VALUE parameter. + * test/lisp/calendar/icalendar-resources/import-rrule-anniversary.ics: + Correct representation of a recurring event. + * + test/lisp/calendar/icalendar-resources/import-rrule-daily-with-exceptions.ics: + Add a required VALUE parameter. + * test/lisp/calendar/icalendar-resources/import-rrule-daily.ics: + * test/lisp/calendar/icalendar-resources/import-rrule-monthly-no-end.ics: + * test/lisp/calendar/icalendar-resources/import-rrule-monthly-with-end.ics: + * test/lisp/calendar/icalendar-resources/import-rrule-weekly.ics: + Correct a malformed RRULE property. + +2025-12-20 Jens Schmidt <jschmidt4gnu@vodafonemail.de> + + Improve handling of non-ASCII characters in 'transpose-regions' + + * src/editfns.c (Ftranspose_regions): Separate code related to character + semantics from that related to byte semantics and in that way leverage + optimizations for regions of equal length with respect to both + semantics. Move and update comments dating back to the initial + implementation. + * test/src/editfns-tests.el (editfns-tests--transpose-regions-tests) + (editfns-tests--transpose-regions-markups) + (editfns-tests--transpose-regions): New test and accompanying variables. + +2025-12-20 Jens Schmidt <jschmidt4gnu@vodafonemail.de> + + Fix byte-vs-char length issue in 'transpose-regions' + + * src/editfns.c (Ftranspose_regions): Calculate length of range between + regions both in units of bytes and characters and use these values as + appropriate. + +2025-12-20 Elías Gabriel Pérez <eg642616@gmail.com> + + hideshow: Support nested comment block in 'hs-hide-level-recursive' + + bug#80009 + + * doc/emacs/programs.texi (Hideshow): Update documentation. + * lisp/progmodes/hideshow.el (hs-hide-level-recursive): Rework. + (hs-get-first-block-on-line): Minor changes. + (hs--add-indicators, hs-hide-comments-when-hiding-all) + (hs-minor-mode-menu, hs-hide-level, hs-cycle): Update code. + * test/lisp/progmodes/hideshow-tests.el + (hideshow-hide-levels-with-comments-1): New test. + +2025-12-20 Stéphane Marks <shipmints@gmail.com> + + Add vtable buffer slot (bug#79982) + + This solves for background vtable mutations, i.e., updates + initiated from buffers other than the vtable buffer, and for + buffer-adjusted string-pixel-width computations. + + * lisp/emacs-lisp/vtable.el (vtable): New '-buffer' slot. + (vtable-buffer, vtable-set-buffer): New function. + (vtable-update-object, vtable-remove-object) + (vtable-insert-object): Wrap operation with the vtable buffer. + (vtable--insert): Split from old 'vtable-insert'. + (vtable-insert): Insert table and record the buffer. + (vtable--insert-line, vtable--insert-header-line): Use + 'vtable-buffer' for pixel-width computation. + (vtable--limit-string, vtable--char-width): Pass buffer to + 'string-pixel-width'. + (vtable-revert): New optional table argument. + (vtable--alter-column-width, vtable-revert-command) + (vtable-sort-by-current-column): Call 'vtable-revert' with the + table. + + * test/lisp/emacs-lisp/vtable-tests.el + (vtable-tests--make-no-header-2-object-table): New helper + function. + (test-vstable-compute-columns): Correct typo in test name. Use + new helper function. + (test-vtable-unique-buffer) + (test-vtable-non-current-buffer-insert-object) + (test-vtable-non-current-buffer-remove-object) + (test-vtable-non-current-buffer-update-object) + (test-vtable--limit-string-with-face-remapped-buffer): New test. + +2025-12-20 Martin Rudalics <rudalics@gmx.at> + + Don't change visibility of tty root frames (Bug#80032) + + * src/frame.c (Fmake_frame_visible, Fmake_frame_invisible): + * doc/lispref/frames.texi (Visibility of Frames): Don't change + visibility of tty root frames. (Bug#80032) + +2025-12-20 Jostein Kjønigsen <jostein@kjonigsen.net> + + csharp-mode: Fix fontification of catch-expressions + + * lisp/progmodes/csharp-mode.el + (csharp-ts-mode--font-lock-settings): Improve specificity + of selectors. Don't let type-selector bleed into + name-selector. (Bug#80038) + +2025-12-20 Rudolf Adamkovič <rudolf@adamkovic.org> + + hi-lock: Use active region for default values in more places + + * lisp/hi-lock.el (hi-lock-line-face-buffer, hi-lock-face-buffer) + (hi-lock-face-phrase-buffer): Use the new function + `hi-lock-read-regexp' to read font-lock patterns, mirroring + `hi-lock-read-face-name' used to read face names. For end users, + all three functions now get the default value from the active + region, rather than just `hi-lock-face-buffer'. + (hi-lock-read-regexp): Extract font-lock pattern reading + functionality from `hi-lock-face-buffer' into this function, to + mirror how faces are read with `hi-lock-read-face-name' and to + promote reuse. (Bug#79976) + +2025-12-20 Michael Albinus <michael.albinus@gmx.de> + + Fix problem in Tramp completion + + * lisp/net/tramp.el (tramp-completion-handle-expand-file-name): + Expand FILENAME also when it is absolute. (Bug#80031) + +2025-12-19 Paul Eggert <eggert@cs.ucla.edu> + + Revert to simpler (and we hope faster) TAGGEDP + + Suggested by Mattias Engdegård (bug#80021#17). + * src/lisp.h (lisp_h_FIXNUMP, lisp_h_TAGGEDP): + Go back to the simpler (X&7) == TAG approach for checking object tags. + This reverses my commit ccdb08ef4ed8f96e79aa06cf5e806c9c487d58ad + “Improve performance of CONSP, FIXNUMP, etc.” + dated 2018-08-25 13:39:18 -0700, + though it keeps the TAGGEDP function the older commit introduced. + Although the older commit improved performance on its circa 2010 + platform, when I ran today’s ‘make -C lisp compile-always’ + benchmark on Ubuntu 25.10 which uses gcc (Ubuntu 15.2.0-4ubuntu4) + on an circa-2021 Intel Xeon W-1350, this patch makes the + ‘make -C lisp compile-always’ benchmark 3.1% faster. Although the + patch unfortunately also makes the Emacs text segment 0.6% larger, + in this case speed and simplicity beat text size in importance. + +2025-12-19 Gerd Möllmann <gerd.moellmann@gmail.com> + + Don't make tty child frames visible when selected (bug#80020) + + * src/frame.c (do_switch_frame): Don't change visibility of tty + child frames. + (Fraise_frame): Doc string fix. + +2025-12-19 Paul Eggert <eggert@cs.ucla.edu> + + Fix ‘make compile-always’ with native compilation + + Without the fix, ‘make compile-always’ failed nearly immediately + in a native compilation build, with ‘ELC+ELN + emacs-lisp/loaddefs-gen.elc’ outputting “Error: file-missing + ("Cannot open load file" "No such file or directory" "comp")...”. + * lisp/Makefile.in (compile-always): + Build ../src first, since the ‘find ... -delete’ removes files + needed by ‘make compile’. + +2025-12-19 Paul Eggert <eggert@cs.ucla.edu> + + Remove stray references to $(LOADDEFS) + + They became obsolete some time ago. + * lisp/Makefile.in (compile, compile-one-process): + Don’t depend on $(LOADDEFS). + +2025-12-19 João Távora <joaotavora@gmail.com> + + Eglot: remove "face" suffix for semtok-specific faces + + * lisp/progmodes/eglot.el (eglot--semtok-define-things) + (eglot--semtok-decode-token): Remove "face" suffix for semtok faces. + +2025-12-19 Dmitry Gutov <dmitry@gutov.dev> + + Re-introduce fallback to 'find' for extra ignores with older Git + + * lisp/progmodes/project.el (vc-git-project-list-files): + Fall back to 'find' when Git is older than 1.13 and EXTRA-IGNORES + is non-nil (bug#79809). + +2025-12-19 Dmitry Gutov <dmitry@gutov.dev> + + Revert "vc-git-project-list-files: Restore support for Git < 2.13" + + This reverts commit 821c0d36dfa2f2cddb9d05a024a8248f2390f478. + + Despite re-enacting what the modern Git versions seem to do under the + covers, the effect is not the same: filtering works differently. + +2025-12-18 Sean Whitton <spwhitton@spwhitton.name> + + Make VC-Dir's 'd' able to delete unregistered files + + * lisp/vc/vc.el (vc-delete-file): Simplify. + * lisp/vc/vc-dir.el (vc-dir-delete-file): Handle deleting + unregistered files, too. + (vc-dir-menu-map, vc-dir-mode-map): Replace bindings for + vc-dir-clean-files with ones for vc-dir-delete-file. + * doc/emacs/maintaining.texi (VC Directory Commands): + * etc/NEWS: Document the bindings change. + +2025-12-18 João Távora <joaotavora@gmail.com> + + Eglot: fallback to project-files if no 'find' available (bug#79809) + + When find-based directory listing fails, fallback to project-files + strategy for robustness. + + * lisp/progmodes/eglot.el (eglot--watch-globs): Inline directory + listing and add error handling with fallback. Rename BASE-PATH to DIR, + add IN-ROOT parameter. + (eglot--list-directories): Delete + (eglot-register-capability): Adjust caller, group by both DIR and + IN-ROOT. + +2025-12-18 Sean Whitton <spwhitton@spwhitton.name> + + vc-diff-internal: Call into backend with old current buffer + + * lisp/vc/vc.el (vc-diff-internal): Call into the backend with + the original current buffer, not BUFFER (see bug#80005). + +2025-12-18 Dmitry Gutov <dmitry@gutov.dev> + + Fix "No such file or directory" "vc-nil" in project-files + + * lisp/progmodes/project.el (project-files): + Fix vc-nil backend error (bug#80013). + +2025-12-17 Dmitry Gutov <dmitry@gutov.dev> + + vc-git-project-list-files: Restore support for Git < 2.13 + + * lisp/progmodes/project.el (vc-git-project-list-files): + Restore support for Git < 2.13 (discussed in bug#79809). + +2025-12-17 Sean Whitton <spwhitton@spwhitton.name> + + New M-RET, M-p, M-n commands in Log View mode + + * lisp/vc/log-view.el (log-view-msg-and-diff-next) + (log-view-msg-and-diff-prev, log-view-display-entry-and-diff): + New commands. + (log-view-mode-map): Bind them. + * doc/emacs/maintaining.texi (VC Change Log): + * etc/NEWS: Document them. + +2025-12-17 Sean Whitton <spwhitton@spwhitton.name> + + log-view-toggle-entry-display: Don't deactivate the mark + + * lisp/vc/log-view.el (log-view-toggle-entry-display): Bind + inhibit-read-only instead of buffer-read-only. Bind + deactivate-mark to nil. + +2025-12-17 Eli Zaretskii <eliz@gnu.org> + + Fix 'mode-line-format-right-align' in Olivetti mode + + * lisp/bindings.el (mode--line-format-right-align): Account for + the left fringe. (Bug#80019) + +2025-12-17 Liu Hui <liuhui1610@gmail.com> + + calendar-mode-line-format: Fix regexp + + * lisp/calendar/calendar.el (calendar-mode-line-format): Replace + '*' with '\\*'. + (calendar-get-buffer, calendar-exit): + * lisp/calendar/diary-lib.el (diary-mark-entries): Improve + comment and doc string. + +2025-12-17 João Távora <joaotavora@gmail.com> + + Eglot: speed up file watching outside project (bug#79809) + + Use find-based directory listing when watching outside project root, + avoiding the expensive delete-dups/file-name-directory/project-files + combo. + + * lisp/progmodes/eglot.el (eglot--list-directories): New helper. + (eglot--watch-globs): Use it for directories outside project root. + +2025-12-17 Stéphane Marks <shipmints@gmail.com> + + New bookmark-after-load-file-hook (bug#80003) + + * lisp/bookmark.el (bookmark-after-load-file-hook): New + defcustom (bug#80003). + (bookmark-load): Call the new hook. + * etc/NEWS: Announce the new hook. + +2025-12-17 Stéphane Marks <shipmints@gmail.com> + + New optional recentf autosave timer (bug#80002) + + * etc/NEWS: Announce the new user option. + * lisp/recentf.el (recentf-auto-cleanup): When canceling the + auto-cleanup timer, set recentf-auto-cleanup-timer to nil to + avoid false positive timerp. + (recentf-autosave-interval): New defcustom. + (recentf--autosave-timer, recentf--cancel-autosave-timer) + (recentf--manage-autosave-timer): New defun. + (recentf-mode): Call recentf--manage-autosave-timer. + +2025-12-17 Christoph Wedler <christoph.wedler@sap.com> + + Fix init of auto/not-auto buffer-local vars in antlr-mode + + * lisp/progmodes/antlr-mode.el (antlr-mode): Fix initialization of + variables, some are actually auto buffer-local and others not. + Patch by Arash Esbati <arash@gnu.org>. + +2025-12-17 João Távora <joaotavora@gmail.com> + + Eglot: fix thinko, group file watchers by base URI (bug#79809) + + It's fairly important to do this to reduce both the number of + file-notify watches and the number of expensive project-files among + "watcher" items pertaining to the same baseUri. + + * lisp/progmodes/eglot.el (eglot--watch-globs): Rename from + eglot--watch-glob. Accept list of compiled glob/kind pairs. + (eglot-register-capability): Group watchers by base-path before + setting up watches. + +2025-12-16 Sean Whitton <spwhitton@spwhitton.name> + + Fix outgoing diff commands including uncommitted changes + + * lisp/vc/vc-hooks.el (vc-symbolic-working-revision): Don't + return nil when passed a directory if also passed a backend. + * lisp/vc/vc.el (vc-diff-outgoing): Pass backend to + vc-symbolic-working-revision. + +2025-12-16 João Távora <joaotavora@gmail.com> + + Eglot: fix last change about relativePatternSupport (bug#79809) + + According to the spec, glob patterns are matched against relative paths + when server provides a RelativePattern baseUri. Else match the glob + against the absolute path as usual. + + * lisp/progmodes/eglot.el (eglot--watch-glob): Tweak + +2025-12-16 João Távora <joaotavora@gmail.com> + + Eglot: support relativePatternSupport for file watching (bug#79809) + + Announce relativePatternSupport capability. Parse RelativePattern + objects with baseUri and pattern fields. Add defvar + eglot-watch-files-outside-project-root to control filtering. + + Rewrote file watching implementation. Key by registration ID instead of + directory. Each LSP watchers item spawns directory watchers + indenpendently that will look for the associated pattern only. + + This change needs (or at least is known to work more efficiently) with + the latest project.el, so we should bump it. + + * lisp/progmodes/eglot.el (eglot-client-capabilities): Announce + relativePatternSupport for didChangeWatchedFiles. + (eglot-lsp-server): Change file-watches slot to ID-keyed structure. + (eglot-watch-files-outside-project-root): New defvar. + (eglot--watch-glob): New function. + (eglot-register-capability): Rewrite. + (eglot-unregister-capability): Simplified for ID-keyed structure. + (eglot--on-shutdown): Update watch cleanup. + +2025-12-16 Michael Albinus <michael.albinus@gmx.de> + + Document and test process filters in tramp-smb.el + + * doc/misc/tramp.texi (Remote processes): Provide more details in + "Running remote processes on MS Windows hosts". + + * test/lisp/net/tramp-tests.el (tramp-test29-start-file-process) + (tramp-test30-make-process): Adapt tests. + +2025-12-16 Przemysław Kryger <pkryger@gmail.com> + + Mark less important package-vc-tests as expensive + + * test/lisp/emacs-lisp/package-vc-tests.el + (package-vc-test-deftest): Add support for `:tags' keyword. + (upgrade, upgrade-all, upgrade-all-after-require, rebuild) + (prepare-patch, log-incoming, pkg-spec-info-manual): Mark as + `:expensive-test'. + +2025-12-16 Przemysław Kryger <pkryger@gmail.com> + + Fix package-vc-tests failing when no install-info is available + + * test/lisp/emacs-lisp/package-vc-tests.el + (pkg-spec-make-shell-command): Rename from + `pkg-spec-doc-make-shell-command'. Remove assertions related to + info manual installation. + (pkg-spec-info-manual): Add tests for info manual installation. + +2025-12-16 Liu Hui <liuhui1610@gmail.com> + + Improve support for non-default calendar buffer (bug#79994) + + * lisp/calendar/calendar.el (calendar-get-buffer): New function. + (calendar-mode-line-format): Support displaying non-default + calendar buffer name. + (calendar-exit): Handle non-default calendar buffer separately. + (calendar-generate-window): Update mode-line after cursor + motion (bug#79994). + (calendar-redraw, calendar-update-mode-line, calendar-unmark) + (calendar-mark-visible-date): + * lisp/calendar/cal-hebrew.el (calendar-hebrew-mark-date-pattern) + (calendar-hebrew-list-yahrzeits): + * lisp/calendar/diary-lib.el (diary-mark-sexp-entries) + (calendar-mark-days-named, calendar-mark-date-pattern) + (calendar-mark-1): Replace 'calendar-buffer' with the new + function or current calendar buffer. + (diary-mark-entries): Record current calendar buffer (bug#79994). + +2025-12-16 Stefan Monnier <monnier@iro.umontreal.ca> + + (cconv-make-interpreted-closure): Be more conservative + + We can't use `cconv-make-interpreted-closure` until it's + compiled because it would get called in an infinite recursion. + The same holds for a lof of the code needed to compute the interpreted + closures used during the computation of `cconv-make-interpreted-closure`. + We used to work around this inf-loop in `loadup.el` with a hack + that checks if two specific functions have been compiled. + + In practice that worked well enough in normal use, but was brittle + if you ever tried to load `cconv.el`, or Edebug or `M-C-x` that code + for whatever reason. So we replace it with a more conservative + approach which just short-circuits any recursive invocation. + It makes it conservative in that it will sometimes redirect the call + to the "dumb" `make-interpreted-closure` even though it would be able + to complete the call properly, but it should be infrequent + enough to be worth the added reliability. + + * lisp/loadup.el: Simplify setting of + `internal-make-interpreted-closure-function`. + + * lisp/emacs-lisp/cconv.el (cconv-make-interpreted-closure): + Avoid recursive invocations. + +2025-12-15 João Távora <joaotavora@gmail.com> + + Eglot: improve pull diagnostics support + + * lisp/progmodes/eglot.el (eglot--diagnostics): Move up here. + (eglot--managed-mode): Use eglot--flymake-push. + (eglot-handle-notification): Simplify. + (eglot-flymake-backend): Simplify. + (eglot--flymake-pull): Rewrite. + (eglot--flymake-push): Tweak. + + * etc/EGLOT-NEWS: Improve slightly. + +2025-12-15 Michael Albinus <michael.albinus@gmx.de> + + Finish process error buffer support in tramp-smb.el + + * doc/misc/tramp.texi (Remote processes): Provide more details in + "Running remote processes on MS Windows hosts". + + * lisp/net/tramp-smb.el (tramp-smb-handle-make-process): + Suppress lock files. + + * test/lisp/net/tramp-tests.el (auto-revert-notify-watch-descriptor) + (auto-revert-remote-files, auto-revert-use-notify): Declare. Set + proper values. + (tramp-test30-make-process): Adapt test. + +2025-12-15 Juri Linkov <juri@linkov.net> + + * lisp/vc/vc.el (vc-diff-internal): Reuse the buffer object (bug#80005). + + Instead of delaying hooks, set the variable 'buffer' to the buffer object + returned by 'get-buffer-create'. This allows renaming the diff buffer + via 'diff-mode-hook'. + +2025-12-14 Paul Eggert <eggert@cs.ucla.edu> + + make-docfile preferring streq + + * lib-src/make-docfile.c (main, add_global, compare_globals): + Prefer streq to strcmp where either will do. + +2025-12-14 Paul Eggert <eggert@cs.ucla.edu> + + Support nested parens in make-docfile args + + * lib-src/make-docfile.c (scan_c_stream): Allow nested parens. + E.g., ‘(Lisp_Object XXX (force))’ for the identifier ‘force’, + where XXX is a macro. This is for future changes. + +2025-12-14 Paul Eggert <eggert@cs.ucla.edu> + + Fix make-docfile strncmp typo + + * lib-src/make-docfile.c (write_c_args): + Don’t mishandle the identifiers ‘v’, ‘vo’, and ‘voi’. + +2025-12-14 Paul Eggert <eggert@cs.ucla.edu> + + Improve make-docfile.c for C23 + + * lib-src/make-docfile.c (write_c_args): Don’t diagnose “()”. + In C23 it’s equivalent to (void), and it works fine (albeit with + less type-checking) in older C. Omit first arg, which is no + longer needed. Caller changed. + +2025-12-14 Paul Eggert <eggert@cs.ucla.edu> + + Fix some make-docfile core dumps + + This bit me when I ran ‘make’ with typos in the Emacs source. + * lib-src/make-docfile.c (struct rcsoc_state.buf_lim): + New member. + (read_c_string_or_comment): Initialize it. + (put_char, scan_c_stream): Check for buffer overflow. + (scan_c_stream): Output a diagnostic rather than aborting + when the buffer overflows. + +2025-12-14 João Távora <joaotavora@gmail.com> + + Eglot: half-decent pull diagnostics support + + Implement basic LSP 3.17 pull diagnostics ('textDocument/diagnostic'). + Only diagnostics for the current document are requested. This is + chiefly because virtually no server has been found to support the + 'relatedDocumentSupport' sub-capability which would allow to test this. + + * etc/EGLOT-NEWS: Announce pull diagnostics support. + + * lisp/progmodes/eglot.el (eglot-client-capabilities): Announce + :diagnostic capability. + (eglot--flymake-diag-type): New function. + (eglot--flymake-make-diag): New function. + (eglot--flymake-push-report-fn): Rename from + eglot--current-flymake-report-fn. + (eglot-flymake-backend): Check for :diagnosticProvider and dispatch + to pull or push path. + (eglot--flymake-pull): New function. + (eglot--flymake-push): Rename from eglot--report-to-flymake. + (eglot-handle-notification textDocument/publishDiagnostics): Use + eglot--flymake-make-diag helper. + (eglot-ignored-server-capabilities): Add diagnosticProvider + +2025-12-14 Christoph Wedler <christoph.wedler@sap.com> + + Add NEWS and auto-load entry for antlr-mode + + * etc/NEWS (Antlr mode): Mention major changes. + * lisp/files.el (auto-mode-alist): Add 'antlr-v4-mode' for extension "g4". + +2025-12-14 Michael Albinus <michael.albinus@gmx.de> + + Implement process error buffer in tramp-smb.el + + * lisp/net/tramp-smb.el (tramp-smb-handle-make-process): + Handle error buffer. + + * test/lisp/net/tramp-tests.el (tramp-test30-make-process): Adapt test. + +2025-12-14 Philip Kaludercic <philipk@posteo.net> + + Load 'byte-recompile-file' to process User Lisp directory + + * lisp/startup.el (byte-recompile-file): Declare 'byte-recompile-file'. + (prepare-user-lisp): Load bytecomp if necessary. (Bug#79997) + +2025-12-14 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc.el (vc-diff-internal): Use delay-mode-hooks. + +2025-12-14 Eli Zaretskii <eliz@gnu.org> + + Fix a bug in 'kill-visual-line' that caused it signal an error + + * lisp/simple.el (kill-visual-line): Don't assume 'posn-at-point' + always returns a non-nil value. (Bug#80004) + +2025-12-14 Paul Eggert <eggert@cs.ucla.edu> + + Use GCC warning -Wunused-const-variable=2 + + * configure.ac: Stop suppresssing -Wunused-const-variable=2 when + configured --with-gcc-warnings. Suppressing no longer seems to be + needed with current GCC and src/lisp.h. + +2025-12-14 Dmitry Gutov <dmitry@gutov.dev> + + project-files: Add the 'else' case to the previous change + + * lisp/progmodes/project.el (project-files): Add the 'else' case + to the previous change (for DIRS outside of project root). + +2025-12-14 Dmitry Gutov <dmitry@gutov.dev> + + Make project--vc-list-files extensible + + * lisp/progmodes/project.el (project--vc-list-files): + Call backend function 'project-list-files'. + (project-files): Catch 'vc-not-supported' and default to + 'project--files-in-directory' using the current project. + (vc-git-project-list-files, vc-hg-project-list-files): + New functions, extracted from 'project--vc-list-files'. + (https://lists.gnu.org/archive/html/emacs-devel/2025-12/msg00290.html) + +2025-12-14 Dmitry Gutov <dmitry@gutov.dev> + + Relax the condition on the values of DIRS in project-files + + * lisp/progmodes/project.el (project-files): + Use 'file-in-directory-p' to dispatch to 'project--vc-list-files' + when listing subdirectory files too (bug#79809). + +2025-12-13 Michael Albinus <michael.albinus@gmx.de> + + Mention tramp-hlo in Tramp's documentation + + * doc/misc/tramp.texi (Frequently Asked Questions) + (New operations): Mention tramp-hlo, again. + +2025-12-13 Michael Albinus <michael.albinus@gmx.de> + + Implement process STDERR file in tramp-smb.el + + * lisp/net/tramp-smb.el (tramp-smb-handle-make-process) + (tramp-smb-handle-process-file): Handle STDERR file. + (tramp-smb-call-winexe): Regroup sent commands. + + * test/lisp/net/tramp-tests.el (tramp-test28-process-file) + (tramp-test30-make-process): Adapt tests. + +2025-12-13 Sean Whitton <spwhitton@spwhitton.name> + + vc-diff-internal: Call into backend after setting up the major mode + + This means the backend can, for example, enable a minor mode, + without our changing the major mode immediately wiping that out. + + * lisp/vc/vc.el (vc-diff-internal): Set up the major mode before + calling into the backend. + +2025-12-13 Sean Whitton <spwhitton@spwhitton.name> + + vc-git-dir-status-goto-stage: Accept exit 128 from git-add + + * lisp/vc/vc-git.el (vc-git-dir-status-goto-stage): Accept an + exit code of 128 from 'git add --refresh' (bug#79999). + +2025-12-13 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 948c4f7f64f ; * admin/authors.el (authors-aliases): Add Rudolf Adamko... + +2025-12-13 Daniel Semyonov <daniel@dsemy.com> + + nnatom: Fix parsing of empty articles + + * lisp/gnus/nnatom.el (nnatom--read-parts): Fix typo (bug#77539). + +2025-12-13 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + +2025-12-12 Roi Martin <jroi.martin@gmail.com> + + Fix interactive call to 'prepare-user-lisp' + + When called interactively with a prefix argument, + 'prepare-user-lisp' throws a "Wrong type argument: stringp, (4)" + error. This happens because the list passed to the interactive + specification is missing one argument and 'current-prefix-arg' + is assigned to AUTOLOAD-FILE instead of FORCE. + + * lisp/startup.el (prepare-user-lisp): Fix list passed to + 'interactive'. (Bug#79996) + +2025-12-12 Stefan Monnier <monnier@iro.umontreal.ca> + + Editorconfig: Merge a few more changes from upstream + + * lisp/editorconfig-core.el: Fix up leading comment. + (editorconfig-core-get-properties-hash): Remove unused `confversion` arg. + + * lisp/editorconfig-fnmatch.el (editorconfig-fnmatch--cache-hashtable): + Use `defconst`. + (editorconfig-fnmatch--do-translate): Don't escape `,` or `-` in regexps. + + * lisp/editorconfig.el (editorconfig-indentation-alist): + Remove redundant entries for `ess-mode` and `terra-mode`. + +2025-12-12 lolbinarycat <dogedoge61+github@gmail.com> + + editorconfig-fnmatch: fix ** globs (#374) + + Cherypick of upstream commit 4af10445fcdf1c9dfa7af4f9e5bec59e8a759d6f + +2025-12-12 Mattias Engdegård <mattias.engdegard@gmail.com> + + * lisp/cus-start.el: Better unbound variable filter. + + Remove (almost) all regexp matching and the need for saving match data. + Signal an error for unbound variables instead of a timid message, + so that it's certain to be noticed. + +2025-12-12 Mattias Engdegård <mattias.engdegard@gmail.com> + + * lisp/cus-start.el: Clean up. + + Avoid computing things unless needed. Use a slightly more modern elisp + style with fewer variable assignments. + +2025-12-12 Michael Albinus <michael.albinus@gmx.de> + + Fix :type in `antlr-tool-command' + + * lisp/progmodes/antlr-mode.el (antlr-tool-command): Give it a + proper :type. + +2025-12-12 Mattias Engdegård <mattias.engdegard@gmail.com> + + Warn about uses of the 'any' atom in rx + + 'any' is a holdover from the ancient 'sregex' package where it meant + 'not-newline', but is easily mistaken for 'anychar'. + + * lisp/emacs-lisp/rx.el (rx--translate-symbol): Warn about 'any'. + * test/lisp/emacs-lisp/rx-tests.el (rx-atoms): Suppress warning here. + * etc/NEWS: Explain. + +2025-12-12 Mattias Engdegård <mattias.engdegard@gmail.com> + + Don't use rx 'any' to mean 'not-newline' + + * lisp/emacs-lisp/package-vc.el (package-vc--unpack-1): + * lisp/pcmpl-rpm.el (pcomplete/dnf): + * test/lisp/emacs-lisp/package-vc-tests.el (log-incoming): + Use 'anychar' instead of 'any', since that's probably what was meant. + +2025-12-12 Mattias Engdegård <mattias.engdegard@gmail.com> + + * doc/lispref/strings.texi (Formatting Strings): Cut obsolete text. + + Since we got bignums the output is platform-independent. + +2025-12-12 Mattias Engdegård <mattias.engdegard@gmail.com> + + * doc/lispref/eval.texi (Backquote): Clarify and simplify. + + The previous phrasing could be read as if backquote expansion were + mutable if containing substitions, but that is simply not true; + they should always be treated as non-mutable. + +2025-12-11 Philip Kaludercic <philipk@posteo.net> + + Handle remaining usages of 'package-vc-install-from-checkout' + + * doc/emacs/package.texi (Fetching Package Sources): Remove + mention of `package-vc-install-from-checkout'. + * doc/misc/use-package.texi (Install package): Remove mention of + :vc in combination with :load-path. + * lisp/use-package/use-package-core.el (use-package-vc-install): + Suppress compile-time warning and generate warning during + evaluation instead. + * test/lisp/emacs-lisp/package-vc-tests.el + (package-vc-tests-checkout-from-elpa-install-from-checkout) + (package-vc-tests-checkout-with-git-install-from-checkout): + Suppress obsoletion warning. + +2025-12-11 Philip Kaludercic <philipk@posteo.net> + + Simplify 'comint-write-input-ring' + + * lisp/comint.el (comint-write-input-ring): Use + 'with-temp-buffer', 'decf' and write the buffer contents without + 'buffer-string'. (bug#79954) + +2025-12-10 Stefan Monnier <monnier@iro.umontreal.ca> + + Merge branch 'antlr-mode' + +2025-12-10 Stefan Monnier <monnier@iro.umontreal.ca> + + antlr-mode.el: Cosmetics, mostly to silence compiler warnings + + * lisp/progmodes/antlr-mode.el: Prefer #' to quote function names. + Fix a few incorrect ' in docstring markup. + (antlr-font-lock-checked-face): Don't use obsolete + `font-lock-warning-face` variable. + (antlr-do-syntax-propertize): Use `emacs-major-version`. + (antlr-set-tool-version-and-mode-line): Don't set + `indent-region-function` to a non-function value. + (antlr-mode): Remove call to obsolete `easy-menu-add`. + (antlr-delphi-indent-action-line, antlr-ruby-indent-action-line): + Avoid obsolete functions `point-at-[be]ol`. + (antlr-python-indent-action-line): Make sure `syntax-ppss-*` vars are + bound dynamically rather than statically. + +2025-12-10 Juri Linkov <juri@linkov.net> + + Evaluate result on first call to throttled func in timeout.el + + * lisp/emacs-lisp/timeout.el (timeout--throttle-advice) + (timeout-throttled-func): Replace 'prog1' with 'progn' + to return the evaluated value of 'result' (bug#79979). + This will capture the correct return value the first time + a throttled function is called. Previously, it would return nil + on the very first call. + (timeout-debounce, timeout-throttle, timeout-throttled-func) + (timeout-debounced-func): Add the autoload cookie. + +2025-12-10 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/emacs-lisp/byte-opt.el (byte-optimize-memq): Beware improper lists + +2025-12-10 Paul Eggert <eggert@cs.ucla.edu> + + Work even if aclocal is invoked by hand + + Problem reported by Ulrich Müller (bug#79974). + * configure.ac (gl_ALIGNASOF): Arrange for it to be defined + even if aclocal is invoked other than via admin/merge-gnulib. + Also, change comments from # to dnl as they don’t make + much sense in the shell script. + +2025-12-09 Paul Eggert <eggert@cs.ucla.edu> + + Remove no-longer needed MALLOC_0_IS_NONNULL macro. + + * src/conf_post.h (MALLOC_0_IS_NONNULL): Remove. + Gnulib no longer needs this. + +2025-12-09 Paul Eggert <eggert@cs.ucla.edu> + + Garbage-collect Gnulib sources + + Remove Gnulib sources no longer needed or used. + admin/merge-gnulib is typically not smart enough to do that. + * configure.ac: Do not call gl_EEMALLOC, as it is no longer + supplied or needed. + * lib/explicit_bzero.c, lib/malloc/scratch_buffer_dupfree.c: + * lib/xalloc-oversized.h, m4/eealloc.m4, m4/explicit_bzero.m4: + * m4/st_dm_mode.m4, m4/year2038.m4: + Remove. + +2025-12-09 Sean Whitton <spwhitton@spwhitton.name> + + Display done message for async checkins too + + * lisp/vc/vc.el (vc-checkin): When an async checkin completes, + display the same "Checking in...done" message. + +2025-12-09 Sean Whitton <spwhitton@spwhitton.name> + + Make C-g skip counting outgoing revisions for VC-Dir + + * lisp/vc/vc-dir.el (vc-dir--count-outgoing): New function, + factored out. + (vc-dir-headers): Use it. + +2025-12-09 Paul Eggert <eggert@cs.ucla.edu> + + Port back to GTK2 + + Problem reported by Sven Joachim in: + https://lists.gnu.org/r/emacs-devel/2025-12/msg00225.html + * src/xterm.c (xi_frame_selected_for): + Also define if !(defined USE_GTK && defined HAVE_GTK3). + +2025-12-09 Sean Whitton <spwhitton@spwhitton.name> + + prepare-user-lisp: Fix adding to load-path + + * lisp/startup.el (prepare-user-lisp): Use directory-file-name + when adding to load-path, as documented for the latter. + +2025-12-09 Przemysław Kryger <pkryger@gmail.com> + + Update email and rename packages and buffers in package-vc-tests + + * test/lisp/emacs-lisp/package-vc-tests.el + (package-vc-tests-packages): Rename test packages to avoid + suffix being treated as a version number by + `package--description-file'. + (package-vc-tests-add): Ensure suffix capitalisation remains as + original when calling `replace-regexp-in-string'. + (package-vc-tests-create-repository): Fix typo in temporary + email and use a reserved TLD. + (package-vc-tests-environment-tear-down): Rename preserved + buffers to avoid conflicts between tests. + +2025-12-09 Przemysław Kryger <pkryger@gmail.com> + + Update email in vc-tests and vc-git-tests + + * test/lisp/vc/vc-git-tests.el (vc-git-test--with-repo): Use + example.com, domain following RFC 2606. + * test/lisp/vc/vc-tests/vc-tests.el + (vc-test--with-author-identity): Use example.com, domain + following RFC 2606. + +2025-12-09 Gerd Möllmann <gerd.moellmann@gmail.com> + + Don't make a tty child frame visible by selecting it (bug#79960) + + * lisp/xt-mouse.el (turn-on-xterm-mouse-tracking-on-terminal): + Use the tty-top-frame to avoid accidentally making an invisible + child frame visible by selecting it + +2025-12-09 Przemysław Kryger <pkryger@gmail.com> + + Add `lexical-binding' cookie to generated files by package-vc + + * lisp/emacs-lisp/package-vc.el + (package-vc--generate-description-file, package-vc--unpack-1): + Add `lexical-binding:t' cookie. + +2025-12-09 Juri Linkov <juri@linkov.net> + + * lisp/progmodes/hideshow.el (hs-minor-mode): Show/hide margins. + + Increment 'left-margin-width' when 'hs-indicator-type' is 'margin', + and decrement it on disabling 'hs-minor-mode'. + +2025-12-09 Christoph Wedler <christoph.wedler@sap.com> + + Update progmodes/antlr-mode.el from v2.2c to v3.2.0 + + For the ChangeLog with timeline, + see https://sourceforge.net/projects/antlr-mode/files/ + + The following is the ChangeLog between v2.2c to v3.2.0 + without (intermediate) version numbers and changes already in the Emacs + repository. + + * lisp/progmodes/antlr-mode.el: Command `antlr-run-tool' now runs + on the file for the current buffer by default. + (antlr-run-tool-on-buffer-file): New user option. + (antlr-run-tool-interactive): Use it. + + * lisp/progmodes/antlr-mode.el: Allow `antlr-tool-version' and + `antlr-language' be set in the Local Variables section of a file. + (antlr-hack-local-variables-hook): New function. + (antlr-set-tool-version-and-mode-line): Adapt + (antlr-delayed-mode-hook): Renamed from `antlr-after-body-hook'. + (antlr-font-lock-keywords): Correctly call `font-lock-value-in-major-mode'. + + * lisp/progmodes/antlr-mode.el: Miscellaneous corrections and + other changes. + (antlr-insert-keyword-rule): Make it work in v2 and v4, too. + (antlr-indent-line): Correctly calculate beginning of action. + (antlr-grammar-header-regexp): Has a value which is valid for v3 and v4. + (antlr-v4-grammar-header-regexp, antlr-v3-grammar-header-regexp): + Delete. + (antlr-tool-version-variables): tool-dependent variable for + `antlr-grammar-header-regexp`' is optional. + (antlr-upcase-p): Delete XEmacs bug workaround. + + * lisp/progmodes/antlr-mode.el: Enhance options, add v4 language "Cpp". + (antlr-v4-language-list): Add "Cpp". + (antlr-v4-options-alists, antlr-v3-options-alists) + (antlr-v2-options-alists): Do not hard-code languages. + (antlr-read-language): New function used instead. + (antlr-v4-options-alists): Add grammar option "contextSuperClass" + and Cpp-only "exportMacro". + (antlr-insert-option-do): Call the "right" antlr-mode for v4 grammars. + (antlr-option-spec): Delete function. + (antlr-insert-option-do): Do not use it. + + * lisp/progmodes/antlr-mode.el: Correct command `antlr-insert-options'. + (antlr-try-rule-or-grammar-option): New function. + (antlr-option-level): Use it, correcting v3 and v4 behavior. + (antlr-v2-options-alists): Correct "language" option. + (antlr-syntactic-grammar-depth): Correct calculation + (antlr-options-style): Make it really obsolete. + (antlr-read-value): Do not use it. + + * lisp/progmodes/antlr-mode.el: Disable command + `antlr-show-makefile-rules' for ANTLR v3 and v4, these have + "-depend" to show Makefile deps. + (antlr-show-makefile-rules): User error when used with v3 or v4. + + * lisp/progmodes/antlr-mode.el: Adapt command `antlr-run-tool' to + ANTLR v3 and v4, do not calculate v2 option "-glib" for file + dependencies. + (antlr-tool-command): Make it tool-version dependent + (antlr-v4-tool-command, antlr-v3-tool-command) + (antlr-v2-tool-command): New user option. + (antlr-run-tool-interactive): Only add "-glib" option with v2. + (antlr-directory-dependencies): Only calculate deps with v2. + (antlr-compilation-error-regexp-alist) + (antlr-v4-compilation-error-regexp-alist): New variable. + (antlr-tool-version-variables, antlr-run-tool): Use it. + + * lisp/progmodes/antlr-mode.el: Cleanup, miscellaneous. Replace + `match-string' by `match-string-no-properties' (see vc history). + (antlr-grammar-file): New function. + (antlr-insert-keyword-rule): New command. + (antlr-mode-map): Use it. + (antlr-font-lock-late-keywords): Correct face name. + + * lisp/progmodes/antlr-mode.el: Allow to write a derived mode for + grammars - like for PEG.js - whose rule header and body is + separated by an operator other than ":" and other similar + deviations. Also prepare for messages without file name in + "*compilation*" buffer. + (antlr-rule-body-start-op): New variable. + (antlr-end-of-body, antlr-indent-line): Use it. + (antlr-grammar-file): New variable. + (antlr-run-tool): Set it local in *compilation*" to FILE. + (antlr-font-lock-attribute-regexp, antlr-ruleref-assign-regexp): + (antlr-v2-ruleref-assign-regexp, antlr-font-lock-negation-regexp): + (antlr-font-lock-syntax-spec): New variables. + (antlr-font-lock-additional-keywords): + (antlr-font-lock-late-keywords): Use them here. + (antlr-tool-version-variables): Add `antlr-ruleref-assign-regexp'. + + * lisp/progmodes/antlr-mode.el: Adaptation to Emacs-25.1, cleanup. + (antlr-insert-makefile-rules): Set variable properly. + (antlr-syntax-propertize-template-literals): Using << inside an + unclosed code block could lead to error during font-locking. + (antlr-slow-cache-enabling-symbol): Delete variable. + + * lisp/progmodes/antlr-mode.el: Adopt change below and other + changes in the Emacs repository to current antlr-mode version. + + * lisp/progmodes/antlr-mode.el: Use syntax-ppss. Check "are we in + the grammar or action code?" does not use extra action + syntax-table anymore, but 9th element of syntax-ppss / + parse-partial-sexp, whose value is "subject to change" but has not + changed since decades. + (antlr-action-syntax-table): Delete variable. + (antlr-font-lock-defaults): Do not give parentheses symbol syntax. + (antlr-slow-context-cache): Delete variable. + (antlr-invalidate-context-cache): Delete function. + (antlr-syntactic-context): Use syntax-ppss, new optional arg PPSS. + Now returns nil instead 0 if in normal grammar code. + (antlr-syntax-propertize-template-literals, antlr-re-search-forward) + (antlr-search-result, antlr-syntax-propertize-charsets) + (antlr-electric-character): Simplify. + (antlr-do-syntax-propertize): New variable. + + * lisp/progmodes/antlr-mode.el: Code is not run under extra syntax + table anymore. + (antlr-syntax-propertize-wholerule, antlr-indent-at-bol-alist) + (antlr-v4-grammar-header-regexp, antlr-v3-grammar-header-regexp) + (antlr-v2-grammar-header-regexp, antlr-rule-postlude-skip-regexp) + (antlr-skip-file-prelude, antlr-font-lock-additional-keywords) + (antlr-imenu-create-index-function, antlr-inside-rule-p) + (antlr-end-of-rule, antlr-beginning-of-rule antlr-end-of-body) + (antlr-hide-actions, antlr-insert-option, antlr-option-level) + (antlr-downcase-literals, antlr-file-dependencies) + (antlr-guess-tool-version, antlr-indent-line): + Do not call deleted function, do not use deleted variables, use + regexp \\_> instead \\>., use both \\s_ and \\sw. + + * lisp/progmodes/antlr-mode.el: Minor changes. + (antlr-action-face, antlr-symbol-face): New face. + (antlr-token-identifier-p): New variable. + (antlr-font-lock-late-keywords): Use it, use + antlr-grammar-header-regexp, use new faces. + (antlr-syntax-propertize-charsets): Ignore @actionscope::name when + searching for lexer rules. + (antlr-syntax-propertize-template-literals): Change handling if + the template literal does not end before eob. + (antlr-font-lock-keywords): Use font-lock-eval-keywords. + (antlr-rule-postlude-skip-regexp): Allow scope name to begin with + underscore. + + * lisp/progmodes/antlr-mode.el: Make antlr-mode more modular - + allow to add new target languages without changing existing code. + (antlr-language-variables, antlr-language-mode-name) + (antlr-java-language-mode-name, antlr-action-mode) + (antlr-java-action-mode, antlr-init-cc-mode) + (antlr-java-init-cc-mode, antlr-init-submode) + (antlr-indent-action-line, antlr-action-font-lock-keywords) + (antlr-java-action-font-lock-keywords, antlr-action-scope-names) + (antlr-action-names, antlr-java-action-names): New variables. + (antlr-c-language-mode-name, antlr-cpp-language-mode-name) + (antlr-objc-language-mode-name, antlr-c-action-mode) + (antlr-cpp-action-mode, antlr-objc-action-mode) + (antlr-c-init-cc-mode, antlr-cpp-init-cc-mode) + (antlr-obj-init-cc-mode, antlr-cpp-action-font-lock-keywords) + (antlr-c-action-font-lock-keywords) + (antlr-objc-action-font-lock-keywords) + (antlr-js-language-mode-name, antlr-js-action-mode) + (antlr-js-init-submode, antlr-js-action-font-lock-keywords) + (antlr-js-indent-action-line, antlr-delphi-language-mode-name) + (antlr-delphi-action-mode, antlr-delphi-init-submode) + (antlr-delphi-action-font-lock-keywords) + (antlr-delphi-indent-action-line, antlr-ruby-language-mode-name) + (antlr-ruby-action-mode, antlr-ruby-init-submode) + (antlr-ruby-action-font-lock-keywords) + (antlr-ruby-indent-action-line, antlr-python-language-mode-name) + (antlr-python-action-mode, antlr-python-action-font-lock-keywords) + (antlr-python-indent-action-line, antlr-python-init-submode): New + variables. + (antlr-init-js, antlr-js-indent-action-line, antlr-init-delphi) + (antlr-delphi-indent-action-line, antlr-init-ruby) + (antlr-ruby-indent-action-line, antlr-init-python) + (antlr-python-indent-action-line): New functions. + (antlr-font-lock-keywords-alist): Remove variable. + (antlr-guess-language): Rename from anlr-language-option, use + antlr-language-list, use cl function. + + * lisp/progmodes/antlr-mode.el: Make antlr-mode more modular - + allow to add new ANTLR versions/flavors without changing existing + code. + (antlr-tool-version): Is a symbol now, default to nil = automatic. + For backward compatibility, numbers between 20000 and 29999 are + set to antlr-v2 in antlr-set-tool-version-and-mode-line. This + variable should not be customized anymore - change :type spec. + (antlr-tool-version-variables, antlr-tool-mode-name) + (antlr-v4-tool-mode-name, antlr-v3-tool-mode-name) + (antlr-v2-tool-mode-name, antlr-language-list) + (antlr-v4-language-list, antlr-v3-language-list) + (antlr-v2-language-list, antlr-syntax-propertize) + (antlr-v4-syntax-propertize, antlr-v3-syntax-propertize) + (antlr-v2-syntax-propertize, antlr-v2-options-alist) + (antlr-v4-skip-line-regexp, antlr-v3-skip-line-regexp) + (antlr-font-lock-symbol-regexp) + (antlr-v4-font-lock-symbol-regexp) + (antlr-v3-font-lock-symbol-regexp) + (antlr-v4-grammar-header-regexp, antlr-v3-grammar-header-regexp) + New variables. + (antlr-options-alist): Make it tool-dependent. Remove sub-version + specific settings for ANTLR v2. Remove function. + (antlr-v2-grammar-header-regexp): Rename from + antlr-class-header-regexp. + (antlr-grammar-header-regexp): Make it tool-version dependent. + (antlr-mode-menu, antlr-insert-option-interactive) + (antlr-options-menu-filter, antlr-option-level) + (antlr-insert-option-do): Use tool specific variable. + (antlr-option-spec): ...and do not support sub versions. + (antlr-guess-tool-version): Rename from antlr-tool-version. + (antlr-set-local-variables): New function + (antlr-set-tool-version-and-mode-line): Use them. + + * lisp/progmodes/antlr-mode.el: Remove XEmacs and old Emacs + compatibility code. + (require): require cl-lib instead cl at compile time. + (antlr-run-tool-interactive, antlr-insert-makefile-rules) + (antlr-set-tabs, antlr-next-rule, antlr-downcase-literals) + (antlr-file-dependencies): Use cl- prefix for cXXXr, cXXXXr, incf, + decf, list*. + (cond-emacs-xemacs, cond-emacs-xemacs-macfn, defunx) + (ignore-errors-x, save-buffer-state-x): Delete functions/macros. + (antlr-skip-sexps, antlr-hide-actions, antlr-option-kind): Adopt. + (antlr-mode-menu): Do not test for Emacs below 21.0. + (antlr-with-syntax-table): Delete, use with-syntax-table instead. + (antlr-imenu-create-index-function, antlr-inside-rule-p) + (antlr-end-of-rule, antlr-beginning-of-rule, antlr-end-of-body) + (antlr-downcase-literals, antlr-hide-actions) + (antlr-option-level, antlr-file-dependencies, antlr-indent-line) + (antlr-electric-character, antlr-tool-version): Adopt. + (antlr-default-directory): Delete function. Actually XEmacs' + default-directory as a function is quite useful... + (antlr-run-tool-interactive, antlr-insert-makefile-rules): Adopt. + (antlr-read-shell-command): Delete, use read-shell-command. + (antlr-run-tool-interactive): Adopt. + (antlr-with-displaying-help-buffer): Delete. + (antlr-show-makefile-rules): Use with-output-to-temp-buffer. + (antlr-invalidate-context-cache) + (antlr-syntactic-context): Remove XEmacs code. + (antlr-end-of-rule, antlr-beginning-of-rule, antlr-end-of-body) + (antlr-beginning-of-body): use interactive "^" for "_" in XEmacs. + (antlr-mode): Do not consider cc-mode below 5.30. + + * lisp/progmodes/antlr-mode.el: Scope references inside a v3 rule and import + statements in a v4 grammar do not confuse the navigation anymore. + (antlr-skip-line-regexp): New variable, contains regexp for v3 + "scope" / v4 "import" up to the semicolon. + (antlr-set-tool-version-and-mode-line): Set it. + (antlr-search-result): New function. + (antlr-search-forward, antlr-search-backward): Use it. Add extra + regexp parameter for occurrences which should be skipped. + (antlr-imenu-create-index-function, antlr-next-rule) + (antlr-beginning-of-rule, antlr-indent-line): Provide + `antlr-skip-line-regexp' when searching for ";". + (antlr-rule-postlude-skip-alist): Make it a `defconst', + re-compilation would use previous value. Add "import". + (antlr-skip-rule-postlude): Allow function as SKIP. + (antlr-skip-import-statement): New function for postlude skip. + + * lisp/progmodes/antlr-mode.el: Correctly recognize ANTLR v4 lexer charsets, + [...], and v3 templates, <<...>>, as literals. + (antlr-syntax-propertize-wholerule) + (antlr-syntax-propertize-charsets) + (antlr-syntax-propertize-template-literals): New function + (antlr-set-tool-version-and-mode-line): Use them. + (antlr-imenu-create-index-function): Call `syntax-propertize'. + + * lisp/progmodes/antlr-mode.el (antlr-end-of-defun-is-next): New + option. If non-nil, both `antlr-end-of-rule' and + `antlr-end-of-rule' jump to beginning of a rule with no or + positive prefix arg, and to the end of a rule with negative prefix + arg. Default nil means: `antlr-end-of-rule' jumps to beginning of + a rule, `antlr-end-of-rule' jumps to end of a rule. + (antlr-end-of-rule): Use it. + (antlr-beginning-of-rule): Use it + + * lisp/progmodes/antlr-mode.el: Options support for ANTLR v3 and v4. + (antlr-v3-options-alists): Correct prompts. + (antlr-v4-options-alists): New variable. + (antlr-options-alists): Use it. + (antlr-read-boolean): Use `y-or-n-p' without TABLE. + (antlr-mode-menu): Do not include empty option menus. + (antlr-option-level): Consider non-existent file/subrule options. + Correctly recognize v3/v4 grammar definitions. + + * lisp/progmodes/antlr-mode.el: Imenu and syntax-highlighting corrections. + (antlr-font-lock-late-keywords): Correct syntax-highlighting of + rule definitions with modifiers in same line. + (antlr-grammar-header-regexp): New regexp for v3 and v4. + (antlr-class-header-regexp): New function. + (antlr-imenu-create-index-function): Also collect v4 scanner + modes. Correctly scan fragment rules. + + * lisp/progmodes/antlr-mode.el: Correctly skip the part of the + rule which comes after the semicolon. To simplify things) + (consider v2 class preamble actions as belonging to the previous + definition. + (antlr-skip-file-prelude): Skip final ACTION. + (antlr-rule-postlude-skip-alist) + (antlr-rule-postlude-skip-regexp): New variables. + (antlr-skip-rule-postlude): Use them. Rename from + `antlr-skip-exception-part'. + (antlr-beginning-of-body): Tool version-dependent error message. + (antlr-options-alists): Consider v4 options. + + * lisp/progmodes/antlr-mode.el (antlr-indent-line): For + indentation cycling in Python, do not require a patched python.el + anymore, but prog-mode.el and python.el from Emacs-24.5. Do not + touch multi-line python actions which do not start in its own line + - they are a bad idea anyway. + + * lisp/progmodes/antlr-mode.el: Experimental indentation cycling + for Python actions. Requires a patched python.el. Note: this + patch is just a first proposal by me - things will change. + (antlr-indent-line): Bind `python-submode-indentation-context' + while calling `python-indent-line'. + + * lisp/progmodes/antlr-mode.el: Use much less intrusive face + settings, some minor font-lock changes. + (antlr-syntax): Just inherit from `font-lock-keyword-face', face + is now only used for AST-relevant operators (!, ^, ->), not + parentheses, colons etc anymore - see below. + (antlr-keyword): Just inherit from `font-lock-keyword-face'. + (antlr-ruledef): Just inherit from `font-lock-function-name-face'. + (antlr-tokendef): Just inherit from `font-lock-function-name-face'. + (antlr-ruleref): Just inherit from `font-lock-type-face'. + (antlr-tokenref): Just inherit from `font-lock-constant-face'. + (antlr-attribute): Just inherit from `font-lock-preprocessor-face'. + (antlr-literal): Just inherit from `font-lock-string-face' and + specify :weight bold. + (antlr-grammardef-face): Delete variable introduced in v3.0.2. + (antlr-grammardef): Delete face, use `font-lock-type-face'. + (antlr-font-lock-late-keywords): Change according to semantic + change of `antlr-syntax', properly highlight scope definitions. + (antlr-font-lock-additional-keywords): Change highlighting + according to ANTLR change concerning grammar element labels, ANTLR + v3/v4 only. Use `font-lock-negation-char-face' for ~, single dot. + + * lisp/progmodes/antlr-mode.el: Be more robust / fix bug + introduced with v3.0.5 - class definitions in ANTLR v2 grammars + would look strange, makefile dependencies would not work even with + ANTLR v2 grammars. + (antlr-class-header-regexp): Revert accidentally change in regexp. + (antlr-insert-makefile-rules): Be more robust against incomplete + grammar files, i.e. those without any extracted dependency. + + * lisp/progmodes/antlr-mode.el: Indentation for non-cc-based languages: + JavaScript, Delphi, Ruby - Python actions are left as they are. + (antlr-indent-line): For a line starting with the closing brace of + bracket of an action / parameter section, use our own indentation + engine, not that of the grammar language. + (antlr-indent-line): Run indentation functions of `js-mode', + `opascal-mode' and `ruby-mode' with buffer restriction starts + after the opening brace/bracket. + (antlr-indent-command): Preparation for future support for + indentation cycling used by Python - do not insert a TAB with + repeated call of this command. + (antlr-set-tool-version-and-mode-line): Locally set indentation + offsets/levels of grammar language according to offset used in the + ANTLR grammar. + + * lisp/progmodes/antlr-mode.el: Correct indentation of rule headers. + (antlr-indent-line): When looking for the end of a rule header, do + not stop at colon if that is followed by another one, because this + the scope name of a preceeding grammar action. + + * lisp/progmodes/antlr-mode.el: Support more action languages. + (antlr-language-alist): Add entries for C, Delphi, JavaScript, + ObjC, Python and Ruby, additional to Java and Cpp. + (antlr-language-limit-n-regexp): Allow language name to contain + digits. + (antlr-font-lock-keywords-alist): Add font-lock specifications for + the newly supported languages. + (antlr-set-tool-version-and-mode-line): Handle non-cc-based + languages, currently hard-coded. + + * lisp/progmodes/antlr-mode.el: Preparation for non-cc-mode-based + indentation. + (antlr-indent-line): With non-cc-based languages, do not touch + lines in braces and brackets, i.e. mainly actions. + + * lisp/progmodes/antlr-mode.el: Bug fixes and minor changes. + (antlr-indent-line): Introduced 3.0.4: lines starting with a colon + would be incorrectly indented. + (antlr-tool-version): v3 grammars with a class definition in a + header action or containing a rule called "header" or "class" + would be incorrectly categorized as v2 grammar. + (antlr-set-tool-version-and-mode-line, antlr-mode): Set + `indent-line-function' and friends after initializing cc-mode. + (antlr-java-action-names): Renamed from `antlr-action-names', + only include action names used with language Java. + (antlr-font-lock-late-keywords): Check action names only in Java. + + * lisp/progmodes/antlr-mode.el: Preparation for v3/v4 options support. + (antlr-v3-options-alists): New variable. + (antlr-options-alists): New function. + (antlr-insert-option-interactive, antlr-options-menu-filter) + (antlr-insert-option-do): Use it. + (antlr-option-spec): Allow options-alist not to specify ANTLR + subversions. + + * lisp/progmodes/antlr-mode.el: More flexible tool invocation. + (antlr-tool-path): New variable. + (antlr-run-tool): Use it. + (antlr-tool-command): Can now be a function. + (antlr-run-tool-interactive): Change accordingly. + + * lisp/progmodes/antlr-mode.el: Emacs-corrected and more flexible indentation. + (antlr-syntactic-context): Bind `parse-sexp-ignore-comments' to t, + parentheses inside comments would bring Emacs out of sync. + (antlr-base-offset-alist): New user option. + (antlr-indent-line): Use it. + + * lisp/progmodes/antlr-mode.el: Delay language recognition and tab settings. + (antlr-tool-version): Correctly recognize v2 grammars without + header{...}. + (antlr-set-tool-version-and-mode-line): Set language here. + (antlr-mode): Do not set language here. + + * lisp/progmodes/antlr-mode.el: Bug fixes. + (antlr-language-limit-n-regexp): Also recognize 'LANG'. + (antlr-imenu-create-index-function): in ANTLR v2 grammars, + `which-function-mode' would not work, classes would not appear. + (antlr-font-lock-checked-face): action names would not be + highlighted, the doc string was inserted at the wrong place... + + * lisp/progmodes/antlr-mode.el: Use "Antlr2"/"Antlr3"/"Antlr4" in mode line. + (antlr-tool-version): Set default value to nil = automatic. + (antlr-tool-version): New function. + (antlr-set-tool-version-and-mode-line): New function. + (antlr-after-body-hook): New variable. + (antlr-mode): Run it as mode hook. + (antlr-v4-mode): Do not update mode line anymore. + + * lisp/progmodes/antlr-mode.el: Minor font-lock changes. + (antlr-font-lock-literal-regexp): Also match strings surrounded by + single quotes, and symbols and punctuation. + (antlr-font-lock-late-keywords): Highlight regexp group 2 of that. + + * lisp/progmodes/antlr-mode.el: Preparation for further v3 and v4 support. + (antlr-v4-mode): New major mode for file suffix "g4". + + * lisp/progmodes/antlr-mode.el: Adopt imenu and navigation to ANTLR v3 and v4. + (antlr-imenu-create-index-function): Recognize fragment + specification and named actions. + (antlr-skip-exception-part): With v3 and v4, there is no + 'exception' keyword, but an additional optional 'finally'. + + * lisp/progmodes/antlr-mode.el: Adopt font-lock to ANTLR v3 and v4. + (antlr-grammardef, antlr-attribute): New faces. + (antlr-action-names, antlr-action-scope-names): New variables + (antlr-font-lock-late-keywords): Recognize new elements. + (antlr-font-lock-additional-keywords): Changed font-lock for $attr + constructs. + + * lisp/progmodes/antlr-mode.el: Newer cc-mode fontification is very eager, + i.e. would overwrite that of antlr-mode. + (antlr-font-lock-late-keywords): New variable, also using + OVERRIDE in MATCH-HIGHLIGHT. + (antlr-font-lock-keywords): Add at end of keywords. + (antlr-font-lock-additional-keywords): Delete keywords here. + + * lisp/progmodes/antlr-mode.el: Checked ANTLR up to latest v2. + (antlr-tool-version): Set for ANTLR v2.7.7. + (antlr-options-alists): Added options introduced with ANTLR + v2.7.2, "classHeaderPrefix" and "noConstructors". + + * lisp/progmodes/antlr-mode.el: redisplay during font-lock could signal + "c-where-wrt-brace-construct: c-beginning-of-decl-1 returned + label". + (antlr-font-lock-defaults): Do not set `beginning-of-defun'. + + * lisp/progmodes/antlr-mode.el: Delete support for old cc-mode versions. + (antlr-c-init-language-vars): Delete function. + (antlr-mode): Do not call it anymore. + (antlr-mode-syntax-table): Adopt docstring to changed init. + + * lisp/progmodes/antlr-mode.el: imenu creation could signal + "c-where-wrt-brace-construct: c-beginning-of-decl-1 returned + label". + (antlr-slow-cache-diff-threshold): Delete variable. + (antlr-syntactic-context): Do not use it here, do not call + `beginning-of-defun' anymore. + (antlr-mode): Allow /// etc as `comment-start-skip'. Still set + `require-final-newline'. + + * lisp/progmodes/antlr-mode.el (antlr-electric-character): With + Emacs, use `last-command-event' instead `last-command-char'. + + * lisp/progmodes/antlr-mode.el: imenu creation could signal + "c-where-wrt-brace-construct: c-beginning-of-decl-1 returned + label". + (antlr-slow-cache-diff-threshold): Deletia. + (antlr-syntactic-context): Do not use it here, do not call + `beginning-of-defun' anymore. + +2025-12-09 Paul Eggert <eggert@cs.ucla.edu> + + Pacify -Wunused-function re get_conversion_field + + * src/textconv.c (get_conversion_field): Define only if HAVE_ANDROID, + since it is unused on non-Android. + +2025-12-09 Paul Eggert <eggert@cs.ucla.edu> + + Move Gnulib configuration back to where it was + + * configure.ac: Move the gl_INIT call back to where it was, + as Mattias Engdegård reported the following problem: + checking whether pthread_sigmask is a macro... no + ./configure: line 32767: test: =: unary operator expected + because moving gl_INIT up made the check for pthread_sigmask’s + availability appear later than Gnulib’s check whether it’s a macro. + Instead of moving gl_INIT up, call gl_ALIGNASOF earlier, + as that’s the only part of gl_INIT that is needed earlier. + +2025-12-09 Po Lu <luangruo@yahoo.com> + + Fix builds without toolkit menu bars + + * src/keyboard.c (make_lispy_event): Call x_y_to_column_row when + building internal menu bar events. + + * src/xdisp.c (x_y_to_column_row): Provide DX and DY parameters + to x_y_to_column_row. + +2025-12-08 João Távora <joaotavora@gmail.com> + + Jsonrpc: defend against very large stderr lines + + In https://github.com/joaotavora/rassumfrassum/issues/1 we found + a language server that emits very large single-line messages + (5MB): that eventually end up in Eglot's stderr. With the + output arriving in chunks into the stderr buffer, this creates a + significant slowdown of '[stderr] nil' lines, which eventually + clogs up the stdout JSONRPC communication. + + This fix exits the `jsonrpc--forwarding-buffer` function early + if the forward-line call didn't actually move to a new line. + + * lisp/jsonrpc.el (jsonrpc--forwarding-buffer): Fix. + (Version): Bump to 1.0.27. + +2025-12-08 Paul Eggert <eggert@cs.ucla.edu> + + Fix xmenu.c USE_X_TOOLKIT duplication + + * src/xmenu.c (Fx_menu_bar_open_internal): + Don’t say ‘#ifdef USE_X_TOOLKIT’ inside an #if where + it is already known that USE_X_TOOLKIT is defined. + +2025-12-08 Paul Eggert <eggert@cs.ucla.edu> + + Fix some C symbol extern visibility + + Make some C symbols static if they don’t need to be extern. + Also, remove a couple of functions that were discovered to be + unused as a result of this process, and mark two extern + functions intended to be usable from GDB. + * src/buffer.c (previous_overlay_change): + * src/composite.c (composition_lisp_table): + * src/fileio.c (file_name_directory): + * src/frame.c (check_tty): + * src/insdel.c (adjust_markers_for_insert): + * src/keyboard.c (unread_switch_frame, read_char) + (requeued_events_pending_p): + * src/sysdep.c (renameat_noreplace) [!HAVE_ANDROID]: + * src/textconv.c (get_conversion_field) [!HAVE_ANDROID]: + * src/treesit.c (TREESIT_BOB_LINECOL, TREESIT_TS_POINT_1_0) + (treesit_buf_tracks_linecol_p, make_treesit_parser) + (make_treesit_node): + * src/xdisp.c (x_y_to_hpos_vpos): + * src/xfaces.c (load_color) [!MSDOS]: + * src/xfns.c (x_real_pos_and_offsets): + * src/xterm.c (x_dnd_do_unsupported_drop): + Now static. Move up if necessary. + * src/coding.c (utf8_string_p): + * src/keyboard.c (detect_input_pending_ignore_squeezables): + Remove; unused. + * src/frame.c (gui_set_alpha): + * src/textconv.c (start_batch_edit, end_batch_edit, commit_text) + (finish_composing_text, set_composing_text) + (set_composing_region, textconv_set_point_and_mark) + (delete_surrounding_text, request_point_update) + (textconv_barrier, replace_text, get_extracted_text) + (get_surrounding_text): + * src/xdisp.c (gui_union_rectangles): + * src/xterm.c (xi_frame_selected_for): + Define only if needed. + * src/treesit.c (treesit_debug_print_parser_list) + (treesit_debug_print_linecol): Declare EXTERNALLY_VISIBLE. + * src/xdisp.c (x_y_to_column_row): New function, defined + only if needed. All external callers to x_y_to_hpos_vpos changed. + +2025-12-08 Przemysław Kryger <pkryger@gmail.com> + + Fix package-vc-tests + + * lisp/emacs-lisp/package-vc.el (package-vc--make): Use same + format for buffer as `package-vc--build-documentation'. + * test/lisp/emacs-lisp/package-vc-tests.el + (message-auto-save-directory): Silence byte compiler. + (package-vc-with-tests-environment): Initialize package archives + after setting a temporary `package-user-dir'. Set up + `package-gnupghome-dir'. Remove `default-directory' binding. + (package-vc-tests-environment-tear-down): Fix argument order in + `package-vc-tests-log-buffer-name' call. + (package-vc-tests-with-installed): Rename from + `package-vc-with-installed-tests'. + (package-vc-test-deftest): Use + `package-vc-tests-with-installed'. + (prepare-patch): Bind `message-auto-save-directory' to + `package-vc-tests-dir'. + * test/lisp/package-vc-tests.el: Rename to + test/lisp/emacs-lisp/package-vc-tests.el + * test/lisp/package-vc-resources/Makefile.in: Rename to + test/lisp/emacs-lisp/package-vc-resources/Makefile.in + * test/lisp/package-vc-resources/test-package-SUFFIX-inc.texi.in: + Rename to + test/lisp/emacs-lisp/package-vc-resources/test-package-SUFFIX-inc.texi.in + * test/lisp/package-vc-resources/test-package-SUFFIX-lib-v0.1.el.in: + Rename to + test/lisp/emacs-lisp/package-vc-resources/test-package-SUFFIX-lib-v0.1.el.in + * test/lisp/package-vc-resources/test-package-SUFFIX-lib-v0.2.el.in: + Rename to + test/lisp/emacs-lisp/package-vc-resources/test-package-SUFFIX-lib-v0.2.el.in + * test/lisp/package-vc-resources/test-package-SUFFIX-v0.1.el.in: + Rename to + test/lisp/emacs-lisp/package-vc-resources/test-package-SUFFIX-v0.1.el.in + * test/lisp/package-vc-resources/test-package-SUFFIX-v0.2.el.in: + Rename to + test/lisp/emacs-lisp/package-vc-resources/test-package-SUFFIX-v0.2.el.in + * test/lisp/package-vc-resources/test-package-SUFFIX.texi.in: + Rename to + test/lisp/emacs-lisp/package-vc-resources/test-package-SUFFIX.texi.in + +2025-12-08 Sean Whitton <spwhitton@spwhitton.name> + + New 'R' code letter for 'interactive' forms + + * src/callint.c (callint_argfuns): Add use-region-beginning and + use-region-end. + (syms_of_callint): Protect use-region-beginning and + use-region-end. Add DEFSYM for Quse_region_p. + (Fcall_interactively): New 'R' code letter. + * lisp/textmodes/paragraphs.el (repunctuate-sentences): + * lisp/vc/diff-mode.el (diff-delete-other-hunks, diff-apply-hunk) + (diff-revert-and-kill-hunk, diff-apply-buffer): + * lisp/vc/log-view.el (log-view-mark-entry) + (log-view-unmark-entry): Use it. + * doc/lispref/commands.texi (Interactive Codes): + * doc/lispref/markers.texi (The Region): + * etc/NEWS: + * lisp/simple.el (use-region-beginning, use-region-end) + (use-region-p): + * src/callint.c (Finteractive): Document it. + +2025-12-08 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/help-fns.el (describe-symbol): Don't silently do nothing + +2025-12-08 Stefan Monnier <monnier@iro.umontreal.ca> + + (loaddefs-generate--make-autoload): Obey expand-macro at each step + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--make-autoload): + Perform one macro expansion at a time. + +2025-12-08 Robert Pluim <rpluim@gmail.com> + + Improve 'auth-source-ignore-non-existing-file' doc + + * doc/misc/auth.texi (Help for users): Improve + 'auth-source-ignore-non-existing-file' description. Include + warning about storing cleartext in .authinfo. + +2025-12-08 Robert Pluim <rpluim@gmail.com> + + * doc/misc/auth.texi (Help for users): Warn about use of .authinfo + +2025-12-08 David Caldwell <david@porkrind.org> + + NS: Fix compilation on pre macOS 11 macs + + * src/nsterm.m ([EmacsWindow initWithEmacsFrame:fullscreen:screen:]): + Add a compile check around setToolbarStyle since it is not available + until macOS 11.0 and a run-time check in case it was compiled on + macOS >= 11.0 but run on an earlier version. (Bug#79951) + +2025-12-08 Paul Eggert <eggert@cs.ucla.edu> + + Simplify conv_sockaddr_to_lisp via strnlen + + * src/process.c (conv_sockaddr_to_lisp): + Use strnlen rather than a circumlocution. + +2025-12-08 Elías Gabriel Pérez <eg642616@gmail.com> + + * lisp/textmodes/bibtex.el (bibtex-mode): Fix hs variables (bug#79934). + +2025-12-08 Elías Gabriel Pérez <eg642616@gmail.com> + + Fix 'treesit-hs-block-end' and 'treesit-hs-inside-comment-p' (Bug#79934) + + * lisp/treesit.el (treesit-hs-block-end): Properly get the block + end. + (treesit-hs-inside-comment-p): Add support for single-line + comments. + +2025-12-08 Elías Gabriel Pérez <eg642616@gmail.com> + + hideshow: Deep cleaning. (Bug#79934) + + This is just a refactoring change, simplifying most of the code + and commentaries and removing/deprecating redundant code. + + * etc/NEWS: Announce changes. + * lisp/progmodes/hideshow.el (hs-hide-hook, hs-show-hook): Use + 'defcustom' instead of 'defvar'. + (hs-block-end-regexp, hs-forward-sexp-function) + (hs-adjust-block-beginning-function) + (hs-adjust-block-end-function, hs-find-block-beginning-function) + (hs-find-next-block-function) + (hs-looking-at-block-start-predicate) + (hs-inside-comment-predicate): Update docstring. + (hs-discard-overlays): Simplify. + (hs-life-goes-on): Update docstring. + (hs-hideable-region-p): Revert previous changes. + (hs-overlay-at): Simplify. + (hs-make-overlay): Fix performance. + (hs-block-positions): Rework. + (hs--add-indicators): Fix performance. + (hs-isearch-show-temporary): Simplify. + (hs-looking-at-block-start-p): Rename ... + (hs-looking-at-block-start-p--default): ... to this. + (hs-forward-sexp, hs-hide-comment-region): Mark as obsolete. + (hs-hide-block-at-point): Rework. + (hs-get-first-block): Rename ... + (hs-get-first-block-on-line): ... to this. + (hs-inside-comment-p--default): Rework. + (hs-find-block-beginning): Rename ... + (hs-find-block-beg-fn--default): ... to this. + (hs-find-next-block): Rename ... + (hs-find-next-block-fn--default): ... to this. + (hs-hide-level-recursive): Rework. + (hs-find-block-beginning-match): Remove function. + (hs-already-hidden-p): Simplify. + (hs-c-like-adjust-block-beginning): Mark as obsolete. + (hs-hide-all, hs-show-all, hs-hide-block, hs-show-block) + (hs-hide-level, hs-hide-initial-comment-block, hs-cycle): + Simplify. + * test/lisp/progmodes/hideshow-tests.el (hideshow-hide-level-1) + (hideshow-hide-level-2): + * test/lisp/progmodes/python-tests.el + (python-hideshow-hide-levels-3, python-hideshow-hide-levels-4): + * test/lisp/progmodes/hideshow-tests.el (hideshow-hide-level-1) + (hideshow-hide-level-2): + * test/lisp/progmodes/python-tests.el + (python-hideshow-hide-levels-3, python-hideshow-hide-levels-4): + Update tests. + +2025-12-08 Po Lu <luangruo@yahoo.com> + + Fix the DJGPP port + + * msdos/sed2v2.inp (ALIGNOF_EMACS_INT): Define to 4. + + * msdos/sedlibmk.inp (OMIT_GNULIB_MODULE_fchmodat) + (OMIT_GNULIB_MODULE_issymlinkat, OMIT_GNULIB_MODULE_issymlink) + (OMIT_GNULIB_MODULE_lchmod): Define to true. + + * src/gmalloc.c (__morecore, __after_morecore_hook) + (__malloc_initialize_hook): Don't declare till stddef.h has been + included for `ptrdiff_t'. + +2025-12-07 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + + * admin/merge-gnulib (AVOIDED_MODULES): Add strncpy, as Emacs is not + likely to exercise the FreeBSD 15 strncpy bug that this module fixes. + * lib/issymlinkat.h: New file, taken from Gnulib. + +2025-12-07 Paul Eggert <eggert@cs.ucla.edu> + + Align config.h better to src/lisp.h + + This is mostly a cleanup patch to fix growing discrepancies + between src/lisp.h and configure.ac in terms of how they deduce + how EMACS_INT aligns. The patch includes a static check that the + two methods now agree. It also speeds up ‘configure’ a bit. + * configure.ac (ALIGNOF_INT, ALIGNOF_LONG, ALIGNOF_LONG_LONG): + Remove; no longer used. + (ALIGNOF_EMACS_INT): New macro. + (system_malloc): Set to 'no' more consistently with what’s + in src/lisp.h. + * src/lisp.h (ALIGNOF_EMACS_INT): Do not define here, as config.h + defines it now. Check that config.h’s definition equals the + actual alignof (EMACS_INT). + (USE_USB_TAG): Set more consistently with what’s in configure.ac. + (alignas): Don’t second-guess Gnulib. + +2025-12-07 Paul Eggert <eggert@cs.ucla.edu> + + Work around GCC bug 123042 + + * src/ccl.c: The bug occurs in GCC versions after GCC 13. + +2025-12-07 Paul Eggert <eggert@cs.ucla.edu> + + Include malloc.h early in alloc.c + + * src/alloc.c, src/gmalloc.c: Include <malloc.h> before <stdlib.h>. + This mimics include patterns elsewhere, and avoids a problem if + malloc.h declares realloc (i.e., rpl_realloc) early as extern, + whereas Gnulib stdlib.h declares it later as inline which means it + is extern inline, which clashes with gmalloc’s definition of + rpl_realloc when gmalloc.o is used. Problem discovered when + building Emacs on Ubuntu 25.10 with "./configure CC='gcc -m32' + emacs_cv_struct_alignment=no gl_cv_header_working_stdalign_h=no". + +2025-12-07 Paul Eggert <eggert@cs.ucla.edu> + + Pacify -Werror=null-dereference in ralloc.c + + * src/ralloc.c (find_heap, update_heap_bloc_correspondence): + Omit unnecessary comparisons to NULL that cause GCC to warn. + +2025-12-07 Paul Eggert <eggert@cs.ucla.edu> + + Move Gnulib configuration up in configure.ac + + This is so that later patches can fix some near-duplication errors + in the malloc configuration. + * configure.ac: Move Gnulib configuration earlier. + +2025-12-07 Paul Eggert <eggert@cs.ucla.edu> + + Remove some obsolete C89, C99, Automake cruft + + These have not been needed for some time in configure.ac. + * configure.ac (_AC_PROG_CC_C89): Don’t bother redefining to empty. + (gl_PROG_CC_C99, AC_PROG_CC_C_O): Remove; no longer needed. + +2025-12-07 Philip Kaludercic <philipk@posteo.net> + + Make 'package-vc-install-from-checkout' as obsolete + + See https://mail.gnu.org/archive/html/emacs-devel/2025-11/msg00039.html. + + * lisp/emacs-lisp/package-vc.el (package-vc-install-from-checkout): + Obsolete it. + +2025-12-07 Przemysław Kryger <pkryger@gmail.com> + + Add tests for package-vc + + * test/lisp/package-vc-tests.el + (package-vc-tests-preserve-artefacts): When non nil then + preserve temporary test files and buffers. + (package-vc-tests-dir, package-vc-tests-packages) + (package-vc-tests-repository): Silence byte compiler. + (package-vc-tests-packages): Define packages to test. + (package-vc-tests-add): Copy a an in file template, update + SUFFIX in it and add it to index. + (package-vc-tests-create-repository): Create a package git + repository with a test package's source. + (package-vc-tests-package-desc): Retrieve a `package-desc' for + tested package. + (package-vc-tests-package-spec): Retrieve a pkg-spec for tested + package. + (package-vc-tests-package-lisp-dir): Determine a lisp directory + for a package. + (package-vc-tests-package-main-file): Calculate expected + location of package's main file. + (package-vc-tests-load-history-marker): Create a load history + marker. + (package-vc-tests-load-history-pattern): Create a regexp pattern + to search in `load-history'. + (package-vc-tests-load-history-position): Calculate a position + in `load-history'. + (package-vc-tests-load-history-interesting-entries): Return + `load-history' entries related to the current + `package-vc-tests-dir'. + (package-vc-tests-explain-load-history-position): Return ERT + explanation for load history position failures. + (package-vc-tests-log-buffer-name): Return name of a log buffer + used to build package or its documentation. + (package-vc-tests-log-buffer-exists): Return non-nil when a log + buffer used to build package or its documentation exists. + (package-vc-tests-explain-log-buffer): Print contents of log + buffer used to build package or its documentation and return ERT + explanation for the failure. + (package-vc-tests-elc-files): Check that there are elc files and + that there is no compiled autoloads file amongst them. + (package-vc-tests-assert-delete-elc): Assert that .elc files are + present for a package. + (package-vc-tests-assert-package-alist): Assert that + `package-alist' contains a `package-desc' for package, and that + the `package-desc' has correct slot `version' and slot + `dir'.:(package-vc-tests-reset-head^): Reset head of checkout of + tested packages to HEAD^. + (package-vc-tests-packages-head): Return current checkout + revision. + (package-vc-tests-make-spec): Make a new test spec for a test + package. + (with-package-vc-tests-environment): Setup test environment. + (package-vc-tests-environment-tear-down): Tear down test + environment. + (with-package-vc-tests-installed): Withing a test environment, + install package, evaluate test body, and then tear down the test + environment. + (package-vc-tests-install-from-elpa) + (package-vc-tests-install-from-spec): Install a test package. + (package-vc-tests-checkout-from-elpa-install-from-checkout) + (package-vc-tests-checkout-with-git-install-from-checkout): + Checkout and install a test package. + (package-vc-tests-package-vc-async-wait): Wait for an + asynchronous VC command to finish. + (package-vc-tests-deftest): Define series tests for each package + in `package-vc-tests-under-test'. + (install-post-conditions): Tests that after installing a test + package the `load-history' entries, package's main file, commit, + elc files, and `package-alist' entry are correct. + (require): Test that after calling `require' the `load-history' + entries are correct. + (upgrade, upgrade-all): Test that after calling + `package-vc-upgrade'/`package-vc-upgrade-all' the `load-history' + entries, package's elc files, commit, and `package-alist' entry + are correct. + (upgrade-after-require, upgrade-all-after-require): Test that + after calling `require' followed by + `package-vc-upgrade'/`package-vc-upgrade-all' the `load-history' + entries, commit, package's elc files, and `package-alist' entry + are correct. + (rebuild): Test that after calling `package-vc-rebuild' on an + old version of a package, the package's old function, old macro, + elc files, and `package-alist' entry are correct. + (rebuild-after-require): Test that after calling `require' + followed by `package-vc-rebuild' on an old version of a package, + the package's old function, old macro, elc files, and + `package-alist' entry are correct. + (prepare-patch): Test that after calling + `package-vc-prepare-patch' the message buffer is correct. + (log-incoming): Test that after calling + `package-vc-log-incoming' the log buffer is correct. + (pkg-spec-doc-make-shell-command): Test that :doc, :make, and + :shell-command slots in a pkg spec execute. + * test/lisp/package-vc-resources/test-package-SUFFIX-v0.1.el.in: + * test/lisp/package-vc-resources/test-package-SUFFIX-lib-v0.1.el.in: + Code template of version 0.1 of a test package. + * test/lisp/package-vc-resources/test-package-SUFFIX-v0.2.el.in: + * test/lisp/package-vc-resources/test-package-SUFFIX-lib-v0.2.el.in: + Code template of code of version 0.2 of a test package. + * test/lisp/package-vc-resources/test-package-SUFFIX-inc.texi.in: + * test/lisp/package-vc-resources/test-package-SUFFIX.texi.in: + Documentation template of a test package. + * test/lisp/package-vc-resources/Makefile.in: Makefile template of + a test package. + + Co-developed-by: Philip Kaludercic <philipk@posteo.net> + + (Bug#79188) + +2025-12-07 Philip Kaludercic <philipk@posteo.net> + + Store VC checkout dir in 'package-desc-extras' + + * lisp/emacs-lisp/package-vc.el (package-vc--url-scheme): Remove constant. + (package-vc--checkout-dir): Check 'package-desc-extras'. + (package-vc--save-selected-packages): Remove single-use function. + (package-vc--unpack): (Re-)inline 'package-vc--save-selected-packages'. + (package-vc-install-from-checkout): Set :vc-dir entry in + 'package-desc-extras' if necessary. (Bug#79188) + +2025-12-07 Przemysław Kryger <pkryger@gmail.com> + + Fix upgrading, rebuilding, and logging of VC packages + + There are a few issues addressed in this patch: + + 1. Compilation (including native compilation) should happen in + directory that contains package's Lisp code. + + 2. After installing a package with + `package-vc-install-from-checkout' and subsequently upgrading it + with `package-vc-upgrade' the pkg-desc for the package becomes + corrupted. After the upgrade the pkg-desc's dir (a.k.a + `pkg-dir') points to checkout directory. This will cause the + subsequent `package-delete' to delete the checkout directory and + leaving incorrect forwarding autoloads file in + `package-user-directory'. + + 3. The detection of package's Lisp directory has been not + effective for packages installed with `package-vc-install' and + not existent for packages installed with + `package-install-from-checkout'. + + 4. Deduction of VC backend has been not working when called from + outside of deducing context. + + 5. Extract maintainers and store them in a package description + file when installing a package from a checkout. + + * lisp/emacs-lisp/package-vc.el (package-vc--checkout-dir): New + function to determine the real checkout of a VC + package. + (package-vc--url-scheme): Define scheme for `:url' property. + (package-vc--generate-description-file): Extract maintainers + from main package file and store them in generated description + file. + (package-vc--save-selected-packages): Refactor new helper + function out of 'package-vc--unpack' to modify + 'package-vc-selected-packages'. + (package-vc--checkout-dir): Use `pcase' to extract checkout + directory from `pkg-spec'. Detect standard lisp sub directory + if called with non-nil `lisp-dir'. + (package-vc-commit, package-vc--main-file) + (package-vc--build-documentation, package-vc-prepare-patch): Use + 'package-vc--checkout-dir'. + (package-vc--unpack-1): Remove superfluous `pkg-dir' argument. + Remove elc files before compilation. Use a `package' with + `:dir' pointing to where package code is. When `checkout-dir' + is different than `pkg-dir' then call `package--add-info-node' + and after calling `package-activate-1' reload source files in + case when `lisp-dir' is a sub directory. Use the right + directories in the right places. + (package-vc-install-from-checkout): Remove superfluous + `package-vc-selected-packages' binding. Remove `pkg-dir' + argument from `package-vc--unpack-1' calls. + (package-vc--unpack): Remove `lisp-dir' variable and convert to + `let*'. Remove superfluous Lisp code sub directory detection - + logic moved to `package-vc--checkout-dir'. Remove `pkg-dir' + argument from `package-vc--unpack-1' call. Use + 'package-vc--save-selected-packages'. + (package-vc-upgrade, package-vc-rebuild): Remove `pkg-dir' + argument from `package-vc--unpack-1' calls. Use + 'package-vc--checkout-dir'. + (package-vc-log-incoming): Set `vc-deduce-backend-nonvc-modes' + to t. Use 'package-vc--checkout-dir'. + * lisp/emacs-lisp/package.el (package--add-info-node): New + function to install info node for package. Extracted from + `package-activate-1'. + (package-activate-1): Call `package--add-info-node'. + + Co-developed-by: Philip Kaludercic <philipk@posteo.net> + + (Bug#79188) + +2025-12-07 Jens Schmidt <jschmidt4gnu@vodafonemail.de> + + Use a consistent package description + + Ensure that the long description of a package is the same regardless of + originating package archive and package installation state. + + * lisp/emacs-lisp/package.el: Add documentation on additional files that + Emacs creates during package installation. + (package-desc): Update incomplete description of slot `kind'. + (package-install-from-archive): Download '*-readme.txt' from the archive + and save it as 'README-elpa' to avoid the issues described in bug#79411. + * test/lisp/emacs-lisp/package-resources/multi-file-readme.txt: + * test/lisp/emacs-lisp/package-resources/simple-single-readme.txt: + Update readmes to mark them as "server readmes" and distinguish them + from what the packages themselves provide in their documentation. + * test/lisp/emacs-lisp/package-tests.el (package-test-install-singlefile) + (package-test-describe-installed-with-ws-only-readme): Add tests. + (package-test-install-multifile): Test more files for presence. + (package-test-describe-package) + (package-test-describe-installed-multi-file-package) + (package-test-describe-non-installed-package) + (package-test-describe-non-installed-multi-file-package): Test for + server readme being used as long description. (Bug#79411) + +2025-12-07 Jens Schmidt <jschmidt4gnu@vodafonemail.de> + + Brush up macro with-package-test and related tests + + * test/lisp/emacs-lisp/package-tests.el (with-package-test): Remove + unused keyword :update-news and its implementation. Add documentation + for remaining keywords, since in particular :basedir was being overused. + Eliminate code redundancy by reimplementing keyword :upload-base in + terms of equivalent macro `ert-with-temp-directory' macro. Implement + other minor improvements. + (package-test-install-file, package-test-bug58367, package-test-bug65475) + (package-test-install-file-EOLs, package-test-install-multifile): Remove + superfluous :basedir keyword from `with-package-test' calls to not give + future developers bad example. + (package-test-install-multifile): Move file tests out of + `with-temp-buffer', as they are independent of current buffer. (Bug#79411) + +2025-12-07 Philip Kaludercic <philipk@posteo.net> + + Prepare and load user scripts at startup + + * doc/emacs/custom.texi (Early Init File): Document feature and + related user options. + * etc/NEWS: Mention new feature. + * lisp/startup.el (user-lisp-auto-scrape, user-lisp-directory) + (user-lisp-ignored-directories): New user options. + (prepare-user-lisp): New command. + (command-line): Invoke 'prepare-user-lisp' during startup if a + user-lisp directory exists and if not disabled per + 'user-lisp-auto-scrape'. + +2025-12-07 David Fussner <dfussner@googlemail.com> + + Fix package-vc to find the GNU "make" executable + + * lisp/emacs-lisp/package-vc.el (package-vc--make): Improve heuristic + for finding the name of GNU "make" on the system. + (package-vc-make-program): New defcustom to allow the user to specify + the name of GNU "make" in case auto-detection doesn't work. (Bug#79729) + +2025-12-07 Sean Whitton <spwhitton@spwhitton.name> + + vc-dir-headers: Set a delayed message during vc--count-outgoing + + * lisp/vc/vc-dir.el (vc-dir-headers): Set a delayed message + during vc--count-outgoing. + +2025-12-07 Sean Whitton <spwhitton@spwhitton.name> + + Check for successful exit when parsing output with vc-exec-after + + When using vc-exec-after to parse program output, check that the + program didn't die to a signal or exit with an error exit code + before attempting the parse. Continue to use plain + vc-run-delayed where we aren't parsing output, because in these + cases it doesn't matter to CODE if the output is incomplete. + + * lisp/vc/vc-dispatcher.el (vc-exec-after): <process-status>: + Treat PROC dying to a signal the same as PROC exiting non-zero. + + (vc-exec-after): <accept-process-output>: Restore making a + nonblocking call, for the case of vc-exec-after called from a + process sentinel. diff-hl *does* require this. + + (vc-exec-after): <OKSTATUS>: New parameter, replacing SUCCESS, + which never worked as documented. + * test/lisp/vc/vc-tests/vc-test-misc.el (vc-test-exec-after-3): + Test it. + + (vc-run-delayed-success): New macro. + * lisp/vc/vc-git.el (vc-git-dir-status-goto-stage): + * lisp/vc/vc-hg.el (vc-hg-dir-status-files): + * lisp/vc/vc.el (vc-pull-and-push): Use it. + + * lisp/obsolete/vc-arch.el (vc-exec-after): + * lisp/obsolete/vc-mtn.el (vc-exec-after): + * lisp/vc/vc-bzr.el (vc-exec-after): + * lisp/vc/vc-cvs.el (vc-exec-after): + * lisp/vc/vc-git.el (vc-exec-after): + * lisp/vc/vc-hg.el (vc-exec-after): + * lisp/vc/vc-svn.el (vc-exec-after): Update declarations. + +2025-12-07 Alan Mackenzie <acm@muc.de> + + Eliminate possible confusion in comments in registry.el. + + This will prevent any recurrence of bug#79870 (whose cause has + not been established). + + * lisp/registry.el (Header comments): Replace ";; version: a + float" with ";; version - a float", etc., to prevent ";; + version:" being wrongly recognized by + loaddefs-generate--parse-file. + +2025-12-07 Eli Zaretskii <eliz@gnu.org> + + Allow volume control of system audio device on MS-Windows + + * src/sound.c (Fw32_sound_volume): New function. + + * etc/NEWS: Announce it. + +2025-12-07 Gerd Möllmann <gerd.moellmann@gmail.com> + + * src/comp.c (emit_EQ): Make a declaration an assignment (bug#79722) + +2025-12-06 Sean Whitton <spwhitton@spwhitton.name> + + New user option vc-dir-show-outgoing-count + + * lisp/vc/vc-dir.el (vc-dir-show-outgoing-count): New defcustom. + (vc-dir-headers): Use it. + * doc/emacs/maintaining.texi (VC Directory Buffer): + * etc/NEWS: Document it. + +2025-12-06 Sean Whitton <spwhitton@spwhitton.name> + + vc-git-incoming-revision: Don't fetch when branch has no upstream + + * lisp/vc/vc-git.el (vc-git-incoming-revision): Don't perform a + useless fetch when the branch has no upstream (bug#79952). + +2025-12-06 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 998d45d5d10 ; * lisp/calc/calc-units.el: Better reference for CODATA ... + fae83f1eb8b ; Improve documentation of 'char-script-table' + 3e489ed8049 ; * src/font.c (Flist_fonts): Doc fix. + 4c292b6f703 ; vc-dir-clean-files: Improve docstring and message (bug#... + 8a6b84dbcbc Fix doc string of 'display-buffer' + +2025-12-06 Eli Zaretskii <eliz@gnu.org> + + Increase the value of 'max-lisp-eval-depth' used when dumping + + * lisp/loadup.el (max-lisp-eval-depth): Bump to 4200. Problem + reported by Gerd Möllmann <gerd.moellmann@gmail.com>. + +2025-12-06 Jostein Kjønigsen <jostein@kjonigsen.net> + + sh-script: Fix fontification of command-invocations in 'bash-ts-mode' + + * lisp/progmodes/sh-script.el (sh-mode--treesit-settings): Change + font-face used for command-invocations. (Bug#79944) + +2025-12-06 Michael Albinus <michael.albinus@gmx.de> + + Rework remote process support for Tramp's "smb" method + + * doc/misc/tramp.texi (Remote processes): Rewrite subsection + "Running remote processes on MS Windows hosts". + + * etc/NEWS: Mention remote process support for Tramp's "smb" method. + Presentational fixes and improvements. + + * lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist): + Use `tramp-smb-handle-make-process', `tramp-smb-handle-shell-command' + and `tramp-handle-start-file-process'. + (tramp-smb-matching-line): New defvar. + (tramp-smb-handle-make-process, tramp-smb-handle-shell-command) + (tramp-smb-shell-prompt): New defuns. + (tramp-smb-handle-process-file): Rewrite. + (tramp-smb-handle-start-file-process): Remove. + (tramp-smb-get-localname, tramp-smb-shell-quote-localname): + New optional argument SHARE. + (tramp-smb-send-command): Remove echoed command string. + (tramp-smb-maybe-open-connection): Initialize variables. + (tramp-smb-wait-for-output): Wait more robust. + (tramp-smb-call-winexe): Check for share. Goto current directory. + (tramp-smb-connection-local-powershell-variables): New defconst. + Set it as connection local variables. + + * test/lisp/net/tramp-tests.el (tramp-test28-process-file) + (tramp-test29-start-file-process, tramp-test30-make-process) + (tramp-test32-shell-command, tramp--test-async-shell-command) + (tramp--test-supports-processes-p): Adapt for "smb" method. + (tramp-test34-explicit-shell-file-name) + (tramp-test45-asynchronous-requests): Skip for "smb" method. + (tramp--test-check-files): Skip shell test for some special + characters in the "smb" case. + (tramp-test52-unload): Disable further tests. + +2025-12-06 Roi Martin <jroi.martin@gmail.com> + + Simplify fill-tests.el and add tests + + Simplify fill-tests.el by grouping similar tests in the same + erts file. Move the test code into the erts files, so it is + closer to the test cases, which provides context. Add basic + test cases for common filling operations and for the scenarios + described in Bug#79575. + + * test/lisp/textmodes/fill-tests.el (fill-test-end-period) + (fill-test-haskell): Rename from `test-fill-end-period' and + `test-fill-haskell' to follow the same naming convention of + the other tests. + (fill-test-fill-region-as-paragraph-default) + (fill-test-fill-region-as-paragraph-semlf) + (fill-test-fill-region-as-paragraph, fill-test-fill-region) + (fill-test-fill-paragraph, fill-test-fill-paragraph-semlf): + Group tests and move test code into erts files. + (fill-test-fill-paragraph-semlf-emacs-lisp-mode) + (fill-test-fill-paragraph-semlf-c-mode) + (fill-test-fill-paragraph-semlf-org-mode) + (fill-test-fill-paragraph-semlf-markdown-mode): Rename from + `fill-test-semlf-emacs-lisp-mode', `fill-test-semlf-c-mode', + `fill-test-semlf-org-mode' and + `fill-test-semlf-markdown-mode'. Move test code into erts + files. + (fill-test-semlf, fill-test-semlf-fill-region) + (fill-test-semlf-justify) + (fill-test-semlf-sentence-end-double-space) + (fill-test-semlf-fill-column) + (fill-test-semlf-punctuation-marks, fill-test-semlf-twice) + (fill-test-semlf-fill-prefix, fill-test-semlf-indented-block) + (fill-test-semlf-revert): Delete tests since they are now + grouped with other tests. + + * test/lisp/textmodes/fill-resources/fill-paragraph.erts: + * test/lisp/textmodes/fill-resources/fill-paragraph-semlf.erts: + * test/lisp/textmodes/fill-resources/fill-region-as-paragraph.erts: + * test/lisp/textmodes/fill-resources/fill-region-as-paragraph-default.erts: + * test/lisp/textmodes/fill-resources/fill-region-as-paragraph-semlf.erts: + Add test cases for the function specified in the file name, + including tests for the scenarios described in the bug report. + * test/lisp/textmodes/fill-resources/fill-region.erts: Add + test case for custom `fill-region-as-paragraph-function', + include test code in the test specification. + * test/lisp/textmodes/fill-resources/fill-paragraph-semlf-c-mode.erts: + * test/lisp/textmodes/fill-resources/fill-paragraph-semlf-emacs-lisp-mode.erts: + * test/lisp/textmodes/fill-resources/fill-paragraph-semlf-markdown-mode.erts: + * test/lisp/textmodes/fill-resources/fill-paragraph-semlf-org-mode.erts: + Rename from semlf-*-mode.erts, prefix test names with the + tested function and include test code in the test + specification. + * test/lisp/textmodes/fill-resources/semlf-fill-column.erts: + * test/lisp/textmodes/fill-resources/semlf-fill-prefix.erts: + * test/lisp/textmodes/fill-resources/semlf-fill-region.erts: + * test/lisp/textmodes/fill-resources/semlf-fill-region-as-paragraph.erts: + * test/lisp/textmodes/fill-resources/semlf-indented-block.erts: + * test/lisp/textmodes/fill-resources/semlf-justify.erts: + * test/lisp/textmodes/fill-resources/semlf-punctuation-marks.erts: + * test/lisp/textmodes/fill-resources/semlf-revert.erts: + * test/lisp/textmodes/fill-resources/semlf-sentence-end-double-space.erts: + * test/lisp/textmodes/fill-resources/semlf-twice.erts: + * test/lisp/textmodes/fill-resources/semlf.erts: Delete + files. (Bug#79575) + +2025-12-06 John Wiegley <johnw@newartisans.com> + + Update Bahá'í calendar for 2014 calendar reform + + In 2014, the Universal House of Justice announced modifications to + the Badí' calendar to bring it more in line with its original design. + >From 172 BE (Naw-Rúz 2015) onwards, Naw-Rúz is determined by the + vernal equinox as observed from Tehran, and the Twin Holy Birthdays + are calculated from the eighth new moon after Naw-Rúz. + + * doc/emacs/calendar.texi (Calendar Systems): Update Bahá'í calendar + description to mention the 2014 reform, Ayyám-i-Há, and the + astronomical basis for Naw-Rúz and Twin Holy Birthday calculations. + + * lisp/calendar/cal-bahai.el: Require 'solar' and 'lunar' for + astronomical calculations. + (calendar-bahai-tehran-latitude) + (calendar-bahai-tehran-longitude) + (calendar-bahai-tehran-timezone) + (calendar-bahai-reform-year): New constants for Tehran-based + astronomical observations and reform year (172 BE). + (calendar-bahai-nawruz-for-gregorian-year): New function to calculate + Naw-Rúz from vernal equinox relative to Tehran sunset. + (calendar-bahai-nawruz): New function returning absolute date of + Naw-Rúz for a given Bahá'í year. + (calendar-bahai-twin-holy-birthdays-for-year): New function to + calculate Birth of the Báb and Birth of Bahá'u'lláh from the eighth + new moon after Naw-Rúz. + (calendar-bahai-leap-year-p): Handle post-reform years based on gap + between successive Naw-Rúz dates. + (calendar-bahai-to-absolute, calendar-bahai-from-absolute): Rewrite + to use astronomical Naw-Rúz dates for years >= 172 BE. + (holiday-bahai-new-year): Calculate variable Naw-Rúz date. + (holiday-bahai-twin-holy-birthdays): New function for lunar-based + Twin Holy Birthday dates. + (holiday-bahai-ridvan): Use Bahá'í calendar dates instead of fixed + Gregorian dates. + (calendar-bahai--nawruz-reference-dates) + (calendar-bahai--twin-birthdays-reference-dates): New constants with + official dates from Bahá'í World Centre for 2015-2064. + (calendar-bahai--verify-nawruz) + (calendar-bahai--verify-twin-birthdays) + (calendar-bahai-verify-calculations): New verification functions to + test calculations against official reference data. + + * lisp/calendar/holidays.el (holiday-bahai-holidays): Use + 'holiday-bahai' with Bahá'í calendar dates instead of 'holiday-fixed' + with Gregorian dates. Add 'holiday-bahai-twin-holy-birthdays' for + lunar-calculated dates. + +2025-12-06 Eli Zaretskii <eliz@gnu.org> + + Improve documentation of 'seq-intersection' + + * doc/lispref/sequences.texi (Sequence Functions): + * lisp/emacs-lisp/seq.el (seq-intersection): Clarify the + documentation of 'seq-intersection'. (Bug#79844) + +2025-12-06 Kristoffer Balintona <krisbalintona@gmail.com> + + Support 'eager-update' in 'completion-category-overrides' defcustom + + * lisp/minibuffer.el (completion-category-overrides): Accept + 'eager-update' as a completion property in its :type. (Bug#79899) + +2025-12-06 Martin Rudalics <rudalics@gmx.at> + + Fix root frame check in store_frame_param (Bug#79947) + + * src/frame.c (store_frame_param): Make sure 'minibuffer', + 'parent-frame' and 'delete-before' parameters reference frame on + same terminal. Spare GUI frames when checking root frames of + tty frames and their surrogate minibuffer frames (Bug#79947). + +2025-12-05 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/diff-mode.el (diff-revert-and-kill-hunk): Fix finding END. + +2025-12-04 Mattias Engdegård <mattias.engdegard@gmail.com> + + Don't emit print-circle refs for empty string and vector + + The empty vector and string(s) are immutable, contain no references and + always read as the same objects. + + * src/print.c (PRINT_CIRCLE_CANDIDATE_P): Turn macro into... + (print_circle_candidate_p): ...a function, and exclude [] and "". + * test/src/print-tests.el (print-circle): Add test case. + +2025-12-04 Mattias Engdegård <mattias.engdegard@gmail.com> + + * lisp/emacs-lisp/bytecomp.el (funarg-positions): amend 'sort' + +2025-12-04 Andrea Corallo <acorallo@gnu.org> + + * Have comp do not use builtin_expect with libgccjit < 14 (bug#79722) + + * src/comp.c (emit_EQ): Do not use '__builtin_expect' with + libgccjit < 14. + +2025-12-04 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/diff-mode.el (diff-revert-and-kill-hunk): Fix killing. + +2025-12-04 Kristoffer Balintona <krisbalintona@gmail.com> + + Improve performance of 'flyspell-goto-next-error' + + * lisp/textmodes/flyspell.el (flyspell-goto-next-error): Use + 'next-overlay-change' and 'previous-overlay-change'. + (Bug#79933) + +2025-12-04 Rudolf Adamkovič <rudolf@adamkovic.org> + + NS: Fix toolbar style and position + + * src/nsterm.m ([EmacsWindow initWithEmacsFrame:fullscreen:screen:]): + Always show the toolbar below the window title. This is needed on + Mac OS 11+ where the toolbar style is decided by the system (which + is unpredictable) and the newfangled "compact" toolbar may be chosen + (which is undesirable). (Bug#79900) + +2025-12-03 Paul Eggert <eggert@cs.ucla.edu> + + Waste 4 fewer bytes in GNU/Linux 32-bit HPPA + + Also, add more commentary about the situation. + * src/systhread.h (SYSTHREAD_ALIGN_ROOM): Use alignof (double), + not alignof (int), to align the room. This means we have + only 8 (not 12) bytes of slop on 32-bit HPPA GNU/Linux. + +2025-12-03 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/emacs-lisp/bytecomp.el (seq-sort-by): Improve `funarg-positions` + +2025-12-03 Stefan Monnier <monnier@iro.umontreal.ca> + + gnus-icalendar.el: Avoid EIEIO's non-standard FOO-p predicates + + * lisp/gnus/gnus-icalendar.el (gnus-icalendar-event->gnus-calendar) + (gnus-icalendar-event:inline-org-buttons): Avoid EIEIO's non-standard + FOO-p predicates. + +2025-12-03 Sean Whitton <spwhitton@spwhitton.name> + + Query-on-exit for VC push, pull and async checkin commands + + * lisp/vc/vc-bzr.el (vc-bzr--pushpull): + * lisp/vc/vc-git.el (vc-git--checkin, vc-git--pushpull): + * lisp/vc/vc-hg.el (vc-hg--checkin, vc-hg--pushpull): Set + query-on-exit flag for async processes. + +2025-12-03 Paul Nelson <ultrono@gmail.com> + + Use dedicated minibuffer history for mairix-search + + * lisp/net/mairix.el (mairix-search-history): New variable. + (mairix-search): Use it (bug#79926). + +2025-12-03 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc.el (vc-pull): Clear cached incoming revisions. + +2025-12-03 Sean Whitton <spwhitton@spwhitton.name> + + Pass the VC backend down through fns called by vc--count-revisions + + * lisp/vc/vc-hooks.el (vc--repo-setprop, vc--repo-getprop) + (vc--repo-clearprops): + * lisp/vc/vc.el (vc-root-dir): New BACKEND parameter. + (vc--incoming-revision, vc-push): Pass it. + (vc-default-log-incoming, vc-default-log-outgoing): Pass down + BACKEND provided by caller, instead of ignoring it and always + calling vc-deduce-backend (bug#79929). + +2025-12-03 Paul Eggert <eggert@cs.ucla.edu> + + Port to GNU/Linux HPPA malloc + + On this platform, you cannot reliably malloc objects containing + values of type pthread_mutex_t or pthread_cond_t, since malloc + guarantees only 8-byte alignment but these two types require + 16-byte alignment. See GCC bug 115750 + <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115750> reported by + Sam James and Emacs bug 79936 <https://bugs.gnu.org/79936> + reported by John Paul Adrian Glaubitz. + * configure.ac (ALIGNOF_MAX_ALIGN_T, ALIGNOF_PTHREAD_COND_T) + (ALIGNOF_PTHREAD_MUTEX_T) [HAVE_PTHREAD]: New C macros. + * src/systhread.c (sys_mutex_init, sys_mutex_lock) + (sys_mutex_unlock, sys_cond_init, sys_cond_wait) + (sys_cond_signal, sys_cond_broadcast, sys_cond_destroy): + Use SYTHREAD_ALIGN_PTR to convert sys_mutex_t and sys_cond_t to + pthread_mutex_t and pthread_cond_t, since runtime conversion is + needed on GNU/Linux HPPA. + * src/systhread.h (SYSTHREAD_ALIGN_ROOM, SYSTHREAD_ALIGN_PTR): + New macros, which affect the generated code only on + unusual platforms like GNU/Linux HPPA. + (sys_mutex_t, sys_cond_t) [HAVE_PTHREAD]: Use them. + +2025-12-03 Paul Eggert <eggert@cs.ucla.edu> + + Pacify gcc -Wdangling-else in dbusbind.c + + * src/dbusbind.c (XD_DBUS_VALIDATE_BUS_NAME) + (XD_DBUS_VALIDATE_PATH, XD_DBUS_VALIDATE_INTERFACE) + (XD_DBUS_VALIDATE_MEMBER): Make these expand to single statements + when they are followed by ‘;’. All uses changed. + +2025-12-02 Juri Linkov <juri@linkov.net> + + Improve margin handling in outline-minor-mode (bug#76193) + + * lisp/outline.el (outline-minor-mode): Make margin changes + idempotent to multiple calls. When enabling, check for + nil 'outline--margin-width' instead of relying on the value + of 'left-margin-width'. When disabling, check for non-nil + 'outline--margin-width' and set back to nil afterwards. + Use kill-local-variable for 'fringes-outside-margins'. + +2025-12-02 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc.el (vc-push): Delay clearing incoming revisions cache. + + * lisp/vc/vc.el (vc--incoming-revision): Do store 'nil'. + +2025-12-01 Sean Whitton <spwhitton@spwhitton.name> + + vc-dir-headers: Use ngettext, move the newline out of 'propertize' + + * lisp/vc/vc-dir.el (vc-dir-headers): Use ngettext, move the + newline out of 'propertize'. + +2025-12-01 Elías Gabriel Pérez <eg642616@gmail.com> + Karthik Chikmagalur <karthikchikmagalur@gmail.com> + + hideshow.el: New commands 'hs-cycle' and 'hs-toggle-all'. (Bug#79877) + + * etc/NEWS: Announce features. + * doc/emacs/programs.texi (Hideshow): Document it. + * lisp/progmodes/hideshow.el (hs-prefix-map): Bind the new + commands. + (hs-hide-level-recursive): Simplify. + (hs--toggle-all-state): New variable. + (hs-toggle-all, hs-cycle): New commands. + (hs-get-near-block): New function. + (hs-hide-block): Simplify. + +2025-12-01 Juri Linkov <juri@linkov.net> + + Override 'display-buffer-overriding-action' conditionally in perform-replace + + * lisp/replace.el (perform-replace): For 'diff' display, override + 'display-buffer-overriding-action' only when it has the default value. + https://lists.gnu.org/archive/html/emacs-devel/2025-11/msg01077.html + +2025-12-01 Mattias Engdegård <mattias.engdegard@gmail.com> + + Deduplicate bytecode strings in each top-level form + + This cheap device enables sharing of byte-code for local functions + that only differ in their constant vectors (and/or doc strings etc). + It makes the .elc files smaller by about 150 KB, and should reduce + in-memory usage a little as well. + + * lisp/emacs-lisp/bytecomp.el (bytecomp--code-strings): New. + (byte-compile-from-buffer, byte-compile-flush-pending) + (byte-compile-lambda): Hash-cons byte-code locally. + +2025-12-01 Eli Zaretskii <eliz@gnu.org> + + Fix whitespace in remember.el + + * lisp/textmodes/remember.el (remember-mode): Remove redundant + whitespace. Patch by Huang Jing <rne.kou@icloud.com> (bug#79928). + +2025-12-01 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc-dir.el (vc-dir-headers): Put newlines in better places. + +2025-12-01 Kristoffer Balintona <krisbalintona@gmail.com> + + log-edit-show-files: Respect display-buffer-alist + + * lisp/vc/log-edit.el (log-edit-show-files): Consolidate the + call to cvs-pop-to-buffer-same-frame, + shrink-window-if-larger-than-buffer, and set-window-dedicated-p + into a single call to display-buffer. + +2025-12-01 Sean Whitton <spwhitton@spwhitton.name> + + Fix log-view-vc-fileset in *vc-incoming* and *vc-outgoing* buffers + + This fixes log-view-modify-change-comment in those buffers. + + * lisp/vc/vc.el (vc-incoming-outgoing-internal): Pass the VC + root to vc-log-internal-common. + +2025-12-01 Sean Whitton <spwhitton@spwhitton.name> + + log-edit-generate-changelog-from-diff: Special-case Summary field + + * lisp/vc/add-log.el (log-edit-fill-entry): Delete unused + declaration. + * lisp/vc/log-edit.el (log-edit-generate-changelog-from-diff): + Special-case inserting a single line into the Summary field. + +2025-11-30 Sean Whitton <spwhitton@spwhitton.name> + + New display of outgoing revisions count in VC-Dir + + This relies on how vc--incoming-revision now caches incoming + revisions. + + * lisp/vc/vc.el (vc--count-outgoing): New function. + * lisp/vc/vc-dir.el (vc-dir-header-urgent-value): New face. + (vc-dir-outgoing-revisions-map): New keymap. + (vc-dir-headers): Use them. + * etc/NEWS: Document the change. + +2025-11-30 Stephen Gildea <stepheng+emacs@gildea.com> + + time-stamp: Add test of multi-line start regexp + + * test/lisp/time-stamp-tests.el: (time-stamp-custom-start-multiline): + New test, inspired by Amin Bandali. + +2025-11-30 Juri Linkov <juri@linkov.net> + + Make goto-address/bug-reference buttons TAB-navigable in 'button-mode' + + * lisp/net/goto-addr.el (goto-address-fontify): Set overlay property + 'button' to 'this-overlay', and 'category' to 'goto-address'. + + * lisp/progmodes/bug-reference.el (bug-reference-fontify): + Set overlay property 'button' to 'ov' (bug#74792). + +2025-11-30 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc.el (vc-push): Clear cached incoming revision. + + * lisp/vc/vc.el (vc--incoming-revision): Don't cache 'nil'. + +2025-11-30 Juri Linkov <juri@linkov.net> + + Show Flymake diagnostics on clicking mouse-1 on the mode-line indicator + + * lisp/progmodes/flymake.el (flymake--mode-line-counter-map): + Bind [mode-line mouse-1] to 'flymake-show-buffer-diagnostics' (bug#76254). + +2025-11-30 Sean Whitton <spwhitton@spwhitton.name> + + Cache VC incoming revisions + + * lisp/vc/vc-hooks.el (vc-file-setprop): Use cl-pushnew. + (vc--repo-setprop, vc--repo-getprop, vc--repo-clearprops): New + functions. + * lisp/vc/vc.el (vc--incoming-revision): Cache incoming + revisions. + * src/fns.c (Fput): State that VALUE is returned. + +2025-11-30 Juri Linkov <juri@linkov.net> + + Use treesit-extra-load-path for more values of treesit-auto-install-grammar + + * lisp/treesit.el (treesit-auto-install-grammar): Use the first + writable directory from 'treesit-extra-load-path' for values + 'always', 'ask', 'ask-dir' (bug#79862). + + * src/treesit.c (syms_of_treesit): Extend docstring. + +2025-11-30 Sean Whitton <spwhitton@spwhitton.name> + + project-compile: Don't let-bind compile-command + + * lisp/progmodes/project.el (project-compile): Handle ignoring + compile-command from a vc-compilation-mode buffer in a way that + does not involve let-binding compile-command. + +2025-11-30 João Távora <joaotavora@gmail.com> + + Eglot: revert changes to eglot-rename's interface (bug#79757) + + After some weeks of testing, I've changed by mind on this. Having the + current name appear passed the INITIAL-VALUE to read-from-minibuffer is + a jarring backward-incompatible change. There is no evidence that the + majority of renames are simple tweaks to the existing names, and even + less evidence that these tweaks happen frequently at the end of the + symbol. + + Therefore it's better for the ergonomics of this commonly used command + to leave the code as it was and simply rely on C-n to bring in the + default value (which is the current symbol name), instead of forcing + users accustomed to the previous behaviour remember to press sth like + M-DEL to clean the input. + + * lisp/progmodes/eglot.el (eglot-rename): Tweak. + +2025-11-30 Sean Whitton <spwhitton@spwhitton.name> + + server--process-filter-1: Fix stripping -auth argument (bug#79889) + + * lisp/server.el (server--process-filter-1): Strip trailing + space after -auth argument (bug#79889). Fix due to Richard + Copley <rcopley@gmail.com>. + +2025-11-30 Roi Martin <jroi.martin@gmail.com> + + Fix bug in semantic linefeed filling + + Fix bug in semantic linefeed filling related to wide characters and + `sentence-end-without-space'. + * lisp/textmodes/fill.el (fill-region-as-paragraph-semlf): Fix the + calculation of the maximum column. Do not depend on where + `fill-region-as-paragraph-default' leaves point after being called. + (Bug#79575) + +2025-11-30 Eli Zaretskii <eliz@gnu.org> + + Fix doc string of 'display-buffer' + + * lisp/window.el (display-buffer): Add missing actions and fix + quoting to avoid showing hyper-links to non-existent or irrelevant + symbols. (Bug#79912) + +2025-11-29 Mattias Engdegård <mattias.engdegard@gmail.com> + + * test/src/data-tests.el (data-tests-ash-lsh): Test for bug#79876. + +2025-11-29 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/diff-mode.el (diff-filename-drop-dir): Match backslashes. + +2025-11-29 Stephen Gildea <stepheng+emacs@gildea.com> + + time-stamp: return quicker when inactive + + * lisp/time-stamp.el (time-stamp-once): Do not look for additional + templates once we have displayed the warning about being disabled. + Move earlier the check for arguments being the correct type. + * test/lisp/time-stamp-tests.el (time-stamp-custom-messages): New test. + +2025-11-29 Sean Whitton <spwhitton@spwhitton.name> + + Handle copying additions & removals between working trees + + * lisp/vc/diff-mode.el (diff-file-kill): New optional DELETE + parameter. + (diff-kill-creations-deletions): + * lisp/vc/vc.el (vc--fileset-by-state): New functions. + (diff-kill-creations-deletions, diff-filename-drop-dir) + (diff-hunk-file-names, diff-file-next, diff-hunk-header-re) + (vc-dir-resynch-file): Declare. + (vc--apply-to-other-working-tree): Handle copying and moving + files in the added, removed, missing and unregistered states. + * test/lisp/vc/vc-tests/vc-tests.el + (vc-test--apply-to-other-working-tree): New test. + +2025-11-29 Sean Whitton <spwhitton@spwhitton.name> + + Fix vc-git-uncommit-revisions-from-end + + * lisp/vc/vc-git.el (vc-git-uncommit-revisions-from-end): Don't + leave changes staged. + +2025-11-29 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc-svn.el (vc-svn-state): Handle FILE with no directory. + +2025-11-29 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + a74b6936835 Clarify use of ':font' in face-remapping functions + 5c0d2ca79ae ; cl-reduce, seq-reduce: Improve wording. + + # Conflicts: + # lisp/emacs-lisp/seq.el + +2025-11-29 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + cb2e9dd4838 * doc/misc/efaq.texi (Spell-checkers): Update ispell URL. + +2025-11-29 Eli Zaretskii <eliz@gnu.org> + + eglot: add "ty" LSP server for Python to 'eglot-server-programs' + + * lisp/progmodes/eglot.el (eglot-server-programs): Add "ty" LSP + server for Python. Patch by Steve Purcell <steve@sanityinc.com>. + +2025-11-29 Rudolf Adamkovič <rudolf@adamkovic.org> + + Add current subject to future history in `message-change-subject' + + * lisp/gnus/message.el (message-change-subject): Read the new subject + with the old subject in the "future history". + * etc/NEWS (minutes): Announce the feature. (Bug#79815) + +2025-11-29 Eli Zaretskii <eliz@gnu.org> + + Clarify use of ':font' in face-remapping functions + + * lisp/face-remap.el (face-remap-add-relative) + (face-remap-set-base, buffer-face-set, buffer-face-toggle) + (buffer-face-mode-invoke): Clarify how to use ':font' in face + attribute lists. (Bug#79906) + +2025-11-28 João Távora <joaotavora@gmail.com> + Lua Viana Reis <me@lua.blog.br> + + Eglot: re-do semantic tokens again (bug#79374) + + After a week of intense testing, found out there were various insidious + bugs related to out-of-date requests that rear their heads in different + typing patterns. One way to sort this out and still minimize the number + of requests is to have Eglot's semtok code be aware of the states a + request for tokens can be in: inexistent/invalid, unsent, sent, valid. + + The needs and optimization opportunities for servers that support "full" + and "full/delta" requests are considerably different from the ones of + servers which only support "full" and "range". The latter seem to be in + the minority, so for now I've removed the range requests. These servers + should still work with "full" requests. + + In a further bug, at least two servers (clangd and lean) were found to + plainly abuse the semanticTokens/refresh server request. This confuses + the state logic. The solution is to simply no-op this request handler, + it doesn't seem to do anything useful. + + Finally, when auto-reverting with preserve-modes (as done by vc-revert + and auto-revert-mode), the font-lock state needs to be reinitialized. + Fixed this in eglot--after-revert-hook. + + * lisp/progmodes/eglot.el (eglot-client-capabilities): Don't announce + ranged request support. + (eglot--docver): Rename from eglot--versioned-identifier. + (eglot--diagnostics) + (eglot--flymake-diagnostics) + (eglot-handle-notification) + (eglot--signal-textDocument/didOpen) + (eglot--report-to-flymake) + (eglot--apply-text-edits) + (eglot--VersionedTextDocumentIdentifier): Use eglot--docver. + (eglot--send-changes-hook): Rename from eglot--document-changed-hook. + (eglot--after-change): Don't run eglot--send-changes-hook here. + (eglot--signal-textDocument/didChange): Run it here. + (eglot--semtok-state): Rename from eglot--semtok-cache. + (eglot--semtok-inflight): Delete. + (eglot--handle-request semanticTokens/refresh): Nullify. + (eglot-semantic-tokens-mode): Tweak. + (eglot--semtok-after-send-changes): New hook. + (eglot--semtok-request) + (eglot--semtok-font-lock): Rewrite. + (eglot--after-revert-hook): Reinitialize semtok state. + +2025-11-28 Michael Albinus <michael.albinus@gmx.de> + + Sync with Tramp 2.8.0.5 + + * doc/misc/tramp.texi (Remote processes): Improve description + where direct asyn processes won't work. + + * lisp/net/tramp-cache.el (with-tramp-saved-connection-properties): + Adapt `tramp-verbose' less aggressive. + + * lisp/net/tramp-container.el (tramp-kubernetes--context-namespace): + Use `string-join'. + + * lisp/net/tramp-message.el (tramp-get-debug-file-name): + Modify debug file name. + (tramp-debug-message): Simplify. + + * lisp/net/tramp-sh.el (tramp-actions-before-shell) + (tramp-actions-copy-out-of-band): + Add `tramp-keyboard-interactive-authentication-prompt-regexp'. + + * lisp/net/tramp.el (tramp-encoding-shell): Fix docstring. + (tramp-keyboard-interactive-authentication-prompt-regexp): New defcustom. + (tramp-action-ignore-message): New defun. + + * test/lisp/net/tramp-tests.el (tramp-test10-write-region) + (tramp-test10-write-region-file-precious-flag) + (tramp-test10-write-region-other-file-name-handler) + (tramp-test27-load, tramp-test32-shell-command) + (tramp-test32-shell-command-dont-erase-buffer) + (tramp-test34-connection-local-variables) + (tramp-test36-vc-registered, tramp-test39-make-lock-file-name) + (tramp-test39-detect-external-change) + (tramp-test45-asynchronous-requests): Adapt tests. + +2025-11-28 Yuan Fu <casouri@gmail.com> + + Remove the cached values in tree-sitter modes (bug#79363) + + The cached values are not needed anymore since Emacs now caches + the compiled queries. + + * lisp/progmodes/cmake-ts-mode.el: + (cmake-ts-mode--indent-rules-cached): Remove. + (cmake-ts-mode--indent-rules): Return values directly. + (cmake-ts-mode--font-lock-settings-cached): Remove. + (cmake-ts-mode--font-lock-settings): Return values directly. + * lisp/progmodes/php-ts-mode.el: + (php-ts-mode--font-lock-settings-cached): Remove. + (php-ts-mode--font-lock-settings): Return values directly. + (php-ts-mode--custom-html-font-lock-settings-cached): Remove. + (php-ts-mode--custom-html-font-lock-settings): Return values directly. + * lisp/textmodes/mhtml-ts-mode.el: + (mhtml-ts-mode--treesit-font-lock-settings-cached): Remove. + (mhtml-ts-mode--treesit-font-lock-settings): Return values directly. + (mhtml-ts-mode--treesit-indent-rules-cached): Remove. + (mhtml-ts-mode--treesit-indent-rules): Return values directly. + * lisp/progmodes/cmake-ts-mode.el: + (cmake-ts-mode--indent-rules-cached): Remove + (cmake-ts-mode--indent-rules): Return values directly. + (cmake-ts-mode--font-lock-settings-cached): Remove. + (cmake-ts-mode--font-lock-settings): Return values directly. + * lisp/progmodes/csharp-mode.el: + (csharp-ts-mode--font-lock-settings-cached): Remove. + (csharp-ts-mode--font-lock-settings): Return values directly. + +2025-11-28 Paul Eggert <eggert@cs.ucla.edu> + + Port better to GNUstep with Nix gcc + + Problem reported by David Caldwell (bug#79879). + * configure.ac: When configuring for GNUstep and the + Objective C compiler does not support even C99 features, + use the first flag of -std=gnu23, -std=gnu17, -std=gnu11, -std=gnu99 + that works, instead of insisting on -std=c99 which (a) is too + strict and (b) can override another -std= option in an + undesirable way. + +2025-11-28 Juri Linkov <juri@linkov.net> + + * lisp/cus-start.el: Make 'treesit-extra-load-path' customizable. + + * lisp/treesit.el (treesit-auto-install-grammar): Add the value 'ask-dir'. + (treesit-ensure-installed): When 'treesit-auto-install-grammar' is + 'ask' or 'ask-dir', ask for the directory to install the grammar library + using the first writable directory of 'treesit-extra-load-path' as default. + Also add the provided directory to 'treesit-extra-load-path' afterwards. + + * src/treesit.c (treesit-extra-load-path): In the docstring + mention the fact that the first directory is special (bug#79862). + +2025-11-27 Paul Eggert <eggert@cs.ucla.edu> + + Fix recently-introduced ash bug + + Problem reported by John Paul Adrian Glaubitz (bug#79876). + * src/data.c (Fash): Don’t assume stdc_leading_zeros, which + returns an unsigned integer of unspecified width, returns + a value narrower than EMACS_INT. Also, don’t munge the code to + worry about stdc_leading_zeros (0); unlike GCC’s __builtin_clz, + stdc_leading_zeros works fine on 0. And use a temporary to + avoid a cast. + +2025-11-27 Spencer Baugh <sbaugh@janestreet.com> + + Support completion-eager-display in completing-read-multiple + + Make completing-read-multiple do eager display of *Completions* + when the table requests it. + + As a side-effect of the implementation, we now check again if + eager-display is enabled if we have to retry doing eager-display + due to being interrupted by user input. This is mildly nicer + since it gives the completion table a little more control: for + example, maybe the table only wants to do eager-display if the + minibuffer is empty; this change makes that work better. + + * lisp/minibuffer.el (completions--start-eager-display) + (completing-read-default): Move the code for checking whether to + do eager-display into completions--start-eager-display. + * lisp/emacs-lisp/crm.el (completing-read-multiple): Call + completions--start-eager-display (bug#79858). + +2025-11-27 Stefan Monnier <monnier@iro.umontreal.ca> + + (display-buffer-overriding-action): Try and discourage abuse + + * lisp/window.el (display-buffer-overriding-action): Document + the intended use in the deluded hope to reduce the current abuse. + +2025-11-27 Eli Zaretskii <eliz@gnu.org> + + Improve the fix for 'd' command in 'query-replace' + + * lisp/misearch.el (coding-system--for-buffer-diff): Move + definition from here... + * lisp/vc/diff.el (coding-system--for-buffer-diff): ...to here. + +2025-11-27 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc.el (vc--apply-to-other-working-tree): Use y-or-n-p. + +2025-11-27 Dmitry Gutov <dmitry@gutov.dev> + + Fix project-prompt-project-name with (choose a dir) + + * lisp/progmodes/project.el (project-prompt-project-name): + Use correct equality check (bug#79894). + +2025-11-27 Neal Sidhwaney <nealsid@users.noreply.github.com> + + Add test cases for 'dolist' + + This patch adds tests for the following scenarios: + - Every element is handled (basic functionality) + - Result specified in SPEC is returned + - Bindings named "tail" are not shadowed by 'dolist' + * test/lisp/subr-tests.el (subr-tests--dolist--every-element-is-handled) + (subr-tests--dolist--returns-spec-result) + (subr-tests--dolist--does-not-shadow-tail-binding): New tests. + (Bug#79778) + +2025-11-27 Paul Eggert <eggert@cs.ucla.edu> + + Work around a bug in GCC 14 i386 C23 alignas + + Problem reported by Helmut Eller (bug#79886). + * src/lisp.h (USE_LSB_TAG): Adjust to alignas changes. + (alignas): For GCC and Clang, prefer __attribute__ ((__aligned__ (A))) + to alignas (A) even if the compiler claims to support the latter. + This works around a bug in GCC 14 i386 C23 alignas. + No need to worry about whether __alignas_is_defined is defined. + +2025-11-27 Pranshu Sharma <pranshu@bauherren.ovh> + + Add new commands 'merge-frames' and 'split-frame' + + * lisp/window-x.el (merge-frames, split-frame): New commands. + * etc/NEWS: Announce new commands 'merge-frame' and + 'split-frame'. + +2025-11-27 Eli Zaretskii <eliz@gnu.org> + + Remove all traces of MSVC support from MS-Windows code + + We dropped support for MSVC long ago, and nowadays only support + MinGW for the MS-Windows builds of Emacs. + * src/w32term.h: + * src/w32fns.c: + * src/w32.c: + * nt/inc/sys/socket.h: + * nt/inc/stdalign.h: + * nt/inc/ms-w32.h: Remove MSVC-specific code and preprocessor + conditions. + * nt/inc/ms-w32.h: Don't redirect Posix functions to MS _FOO + equivalents, as MinGW headers do that nowadays better, not + necessarily via functions, and do not disable that when __STDC__ + is defined. + +2025-11-26 Stefan Monnier <monnier@iro.umontreal.ca> + + Fix completion error in `C-x RET f ut-8-d TAB` + + The core of the problem is that `completion-pcm--prepare-delim-re` + is designed to match a "delimiter" in the pattern but was misused + to match a sequence of delimiter chars in the completions. + + * lisp/minibuffer.el (completion-pcm--delim-re): Rename from + `completion-pcm--prepare-delim-re` and change its calling convention. + (completion-pcm--segments->regex): Use it. + (completion-pcm-word-delimiters): Adjust accordingly. + + * test/lisp/minibuffer-tests.el (completion-pcm--test-zerowidth-delim): + New test. + +2025-11-26 Paul Eggert <eggert@cs.ucla.edu> + + Port to glibc 2.43+ with GCC 15+ + + Port to planned glibc 2.43 (scheduled for February 2026), + which will support qualifier-generic standard functions; see: + https://sourceware.org/git/?p=glibc.git;a=commit;h=cd748a63ab1a7ae846175c532a3daab341c62690 + For example, strchr (P, C) will return pointer to const if P is + pointer to const. The idea is to catch dumb programming errors when a + program mistakenly uses strchr to convert a pointer to const + to an unrestricted pointer. This feature is required by C23, + and will be enabled by default in GCC 15. + * src/callint.c (Fcall_interactively): + Respect constness of pointer when calling memchr. + * src/gtkutil.c (xg_get_font): + 2nd arg is char *, not const char *. + * src/xfaces.c (parse_float_color_comp): Return bool, not double. + New arg DST. All callers changed. This makes it easier for + callers to use char const *. + (parse_color_spec): Respect constness of pointer when calling strchr. + +2025-11-26 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + +2025-11-25 Aaron Jensen <aaronjensen@gmail.com> + + Fix indentation of keyword argument arrays/hashes in ruby-mode + + * lisp/progmodes/ruby-mode.el (ruby-smie-rules): Check for ':' and + '=>' as previous tokens, and handle symbols ending with ':' to + properly indent keyword argument arrays and hashes when + ruby-bracketed-args-indent is nil. + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--parent-call-or-bol): + Handle arrays/hashes that are children of 'pair' nodes (keyword + arguments) to ensure consistent indentation. + + * test/lisp/progmodes/ruby-mode-resources/ruby-bracketed-args-indent.rb: + Add test cases for keyword argument arrays and hashes with both + symbol-colon and hash-rocket syntax. + + When ruby-bracketed-args-indent is nil, arrays and hashes used as + keyword argument values now indent by ruby-indent-level from the + line start, matching the documented behavior and fixing inconsistent + indentation (bug#74517). + + (https://lists.gnu.org/archive/html/emacs-devel/2025-11/msg00939.html) + +2025-11-25 Stephen Gildea <stepheng+emacs@gildea.com> + + * test/lisp/time-stamp-tests.el: More tests of word conversions. + +2025-11-25 Sean Whitton <spwhitton@spwhitton.name> + + Make it easier to enable Abbrev mode by default + + * lisp/cus-start.el: Make 'abbrev-mode' customizable. + * doc/emacs/abbrevs.texi (Abbrev Concepts): + * etc/NEWS: + * src/buffer.c (syms_of_buffer): <abbrev-mode>: Document + enabling Abbrev mode by default in all buffers by customizing + 'abbrev-mode' to a non-nil value. + +2025-11-25 Sean Whitton <spwhitton@spwhitton.name> + + Refine VC-Dir mass mark changes + + * lisp/vc/vc-dir.el (vc-dir-mark-file): Prompt before unmarking + all subitems. Use y-or-n-p and user-error instead of + yes-or-no-p and error. + (vc-dir-unmark-file): Use y-or-n-p instead of yes-or-no-p. + (vc-dir-allow-mass-mark-changes): Update docs. + +2025-11-25 Sean Whitton <spwhitton@spwhitton.name> + + Make diff-revert-and-kill-hunk consider an active region + + * lisp/vc/diff-mode.el (diff-revert-and-kill-hunk): When the + region is active, operate on all hunks it overlaps. + * doc/emacs/files.texi (Diff Mode): + * etc/NEWS: Document the change. + +2025-11-25 Sean Whitton <spwhitton@spwhitton.name> + + Make diff-apply-hunk consider an active region + + * lisp/vc/diff-mode.el (diff-apply-buffer): New 'no-save' + meaning for fourth optional argument. Reserve other non-nil + values for this argument. Use ngettext for one message. + (diff-apply-hunk): If the region is active, apply all hunks that + the region overlaps, like diff-apply-buffer. + * doc/emacs/files.texi (Diff Mode): + * etc/NEWS: Document the change to diff-apply-hunk. + +2025-11-25 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/emacs-lisp/cond-star.el (pcase*): New dummy definition. + +2025-11-25 Alan Mackenzie <acm@muc.de> + + CC Mode: update Version: header. Add a comment about it + + * lisp/progmodes/cc-defs.el (c-version): Add a comment + encouraging maintainers to keep cc-mode.el's Version: header + the same. + + * lisp/progmodes/cc-mode.el (top level): Update the Version: + header to 5.35.2. + +2025-11-25 Michael Albinus <michael.albinus@gmx.de> + + Add etc/NEWS style rules + + * CONTRIBUTE (Documenting your changes): + Refer to admin/notes/documentation. + + * admin/notes/documentation: Add etc/NEWS style rules. (Bug#79851) + +2025-11-25 Po Lu <luangruo@yahoo.com> + + Fix mouse dragging on touch screens + + * lisp/mouse.el (mouse-position-for-drag-line): New function; + return position of active touch screen tool if a sequence is + being translated into mouse movement events, and the last mouse + position otherwise. + (mouse-drag-line): Invoke `mouse-position-for-drag-line' rather + than reading the mouse position manually. + + * lisp/touch-screen.el (touch-screen-current-tool): New 10th + field holding the frame-relative last attested position of this + tool. + (touch-screen-relative-xy): Clarify doc string. + (touch-screen-handle-point-update): Update the said field with + POSN's position relative to its frame. + (touch-screen-handle-touch): Initialize the 10th field of new + tool lists with such a position. + (touch-screen-last-drag-position): New function. + +2025-11-24 Philip Kaludercic <philipk@posteo.net> + + Only search for package descriptors in package root + + See the following thread for a background on this change: + https://mail.gnu.org/archive/html/emacs-devel/2025-08/msg00332.html. + This change reverts b81f937e. + + * lisp/emacs-lisp/package.el (package-dir-info): Do not + recursively try to find all Lisp files that might have package + metadata. (Bug#79742) + +2025-11-24 Philip Kaludercic <philipk@posteo.net> + + Replace underscores in bind-and* with fresh symbols + + * lisp/emacs-lisp/cond-star.el (cond*-convert-condition): Bind + unused values to fresh symbols, to avoid the compiler warning + that a symbol starting with an underscore is accessed later on. + This mirrors the behaviour of `if-let*' and family. + +2025-11-24 Juri Linkov <juri@linkov.net> + + Fix query-replace-regexp for using '^' with calculated replacement '\,' + + * lisp/replace.el (replace--push-stack): Add new args + 'next-replacement' and 'match-again' and push them to the stack. + (perform-replace): Restore the previous already calculated values + of 'next-replacement' and 'match-again' from the stack for the + 'backup' ('^') key (bug#79811). + + * test/lisp/replace-tests.el (query-replace-tests): Add tests. + +2025-11-24 Stefan Monnier <monnier@iro.umontreal.ca> + + Don't apply EditorConfig files to themselves + + * lisp/international/mule.el (auto-coding-alist): Add entry for + `.editorconfig` files. + +2025-11-24 Sean Whitton <spwhitton@spwhitton.name> + + Persist Log View mode marks across buffer revert + + * lisp/vc/log-view.el (vc-exec-after): Autoload. + (log-view--restore-marks): New function. + (log-view-mode): Add it to revert-buffer-restore-functions. + +2025-11-24 Stefan Monnier <monnier@iro.umontreal.ca> + + editorconfig-core-handle.el: Fix silent misparse + + See https://github.com/editorconfig/editorconfig-emacs/issues/380 + + * lisp/editorconfig-core-handle.el (editorconfig-core-handle--parse-file): + Fix regexp to not inadvertently match LF. Remove an O(N²) complexity. + Use `line-number-at-pos`. + + * lisp/editorconfig.el (editorconfig--get-coding-system): Don't let + errors propagate. + +2025-11-24 Robert Pluim <rpluim@gmail.com> + + * doc/misc/efaq.texi (Spell-checkers): Update ispell URL. + + (Bug#79872) + + Reported by Geoff Kuenning <geoff@cs.hmc.edu> + +2025-11-24 Po Lu <luangruo@yahoo.com> + + Support `toolkit-theme-set-functions' on Android and execute hooks safely + + * java/org/gnu/emacs/EmacsNative.java (setEmacsParams): New arg + UIMODE. + (sendConfigurationChanged): New args DETAIL and UI_MODE. + + * java/org/gnu/emacs/EmacsNoninteractive.java (main1): Provide + an undefined UI mode. + + * java/org/gnu/emacs/EmacsService.java (EmacsService): New field + uiMode. + (onCreate): Initialize this field at start-up and provide the + same to setEmacsParams. + (onConfigurationChanged): If the UI mode has been altered, + generate a configuration changed event to match. + + * src/android.c (android_ui_mode): New variable. + (setEmacsParams): New argument UI_MODE. Initialize the same + from this variable. + + * src/androidgui.h (enum android_configuration_changed): New + enum. + (struct android_configuration_changed_event): New field + `DETAIL'. Convert fields providing specifics into a union of + display density information and a UI mode integer. + + * src/androidterm.c (handle_one_android_event): Handle both + manners of configuration change events. + (android_term_init): Initialize Vtoolkit_theme from UI mode + provided at start-up. + + * src/frame.c (syms_of_frame): Always define Vtoolkit_theme. + Define Qtoolkit_theme_set_functions. + + * src/gtkutil.c (xg_update_dark_mode_for_all_displays): + + * src/w32term.c (w32_read_socket): Generate special toolkit + theme events, rather than executing hooks directly within the + read_socket callback. + + * src/keyboard.c (kbd_buffer_get_event) + <TOOLKIT_THEME_CHANGED_EVENT>: Run Qtoolkit_theme_set_functions + and set Vtoolkit_theme from event->ie.arg. + + * src/termhooks.h (enum event_kind): New event + TOOLKIT_THEME_CHANGED_EVENT. + +2025-11-23 Sean Whitton <spwhitton@spwhitton.name> + + New commands to rewind decentralized VCS branches + + * lisp/vc/vc.el (vc--remove-revisions-from-end): New function. + (vc-uncommit-revisions-from-end, vc-delete-revisions-from-end): + * lisp/vc/log-view.el (log-view-uncommit-revisions-from-end) + (log-view-delete-revisions-from-end): New commands (bug#79408). + (log-view-mode-map): Bind them. + * doc/emacs/maintaining.texi (VC Change Log): + * doc/emacs/vc1-xtra.texi (VC Auto-Reverting): + * etc/NEWS: Document them. + +2025-11-23 Ulf Jasper <ulf.jasper@web.de> + + Add 'newsticker--treeview-handle-url' (Bug#79849) + + * lisp/net/newst-treeview.el (newsticker--treeview-url-keymap) + (newsticker--treeview-handle-url): Add 'newsticker--treeview-handle-url' + to replace 'newsticker-handle-url' in newsticker-treeview (Bug#79849). + +2025-11-23 Eli Zaretskii <eliz@gnu.org> + + Fix 'd' command in 'query-replace' in buffers not visiting files + + * lisp/vc/diff.el (diff-file-local-copy): Use proper coding-system + when writing a local copy of a non-file visiting buffer. + + * lisp/misearch.el (coding-system--for-buffer-diff): New variable. + (multi-file-replace-as-diff): Bind it to 'utf-8-emacs'. + (multi-file-diff-no-select): Use proper coding-system when reading + output of Diff. (Bug#79761) + +2025-11-22 Sean Whitton <spwhitton@spwhitton.name> + + vc-resynch-window: Restore always using vc-revert-buffer-internal + + * lisp/vc/vc-dispatcher.el (auto-revert-buffers): Delete. + (vc-resynch-window): Always call vc-revert-buffer-internal. + Calling auto-revert-buffers will not necessarily revert the + current buffer, but we want it to happen synchronously. + +2025-11-22 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/ldefs-boot.el: Update generated presumably by lisp/Makefile.in (?) + +2025-11-22 Sean Whitton <spwhitton@spwhitton.name> + + Default split-window-preferred-direction to 'longest' + + * lisp/window.el (split-window-preferred-direction): Change + default value to 'longest'. + +2025-11-22 Sean Whitton <spwhitton@spwhitton.name> + + vc-git-revision-published-p: Resolve REV + + * lisp/vc/vc-git.el (vc-git-revision-published-p): Resolve REV + before using it, using vc-git--rev-parse. + +2025-11-22 Sean Whitton <spwhitton@spwhitton.name> + + New command alias vc-restore + + * lisp/vc/vc.el (vc-restore): New alias. + * etc/NEWS: Announce it. + +2025-11-22 Stefan Monnier <monnier@iro.umontreal.ca> + + (loaddefs-generate--make-autoload): Fix bug#79852 + + As JD Smith <jdtsmith@gmail.com> said we had 3 paths: + + 1. macro has `autoload-macro expand` and is already loaded: expand + 2. macro has `autoload-macro expand` but is /not/ yet loaded: shortcut + 3. macro does not have `autoload-macro expand`: shortcut + + and the co-existence of 1 and 2 is a problem because it means + that same macro is sometimes handled one way and sometimes + another, with different results. + Remove number 2 by removing from the shortcut all the remaining + macros that have `autoload-macro expand`. + + The immediate effect is that `make autoloads` now (auto)loads three + more files: + + [...] + loaddefs-gen: loading file frameset (for cl-defun) + Loading frameset... + INFO Scraping 1547 files for loaddefs...10% + INFO Scraping 1547 files for loaddefs...20% + loaddefs-gen: loading file semantic/analyze (for define-overloadable-function) + Loading semantic/analyze... + INFO Scraping 1547 files for loaddefs...30% + INFO Scraping 1547 files for loaddefs...40% + INFO Scraping 1547 files for loaddefs...50% + INFO Scraping 1547 files for loaddefs...60% + INFO Scraping 1547 files for loaddefs...70% + loaddefs-gen: loading file tramp-adb (for tramp--with-startup) + Loading tramp-adb... + INFO Scraping 1547 files for loaddefs...80% + loaddefs-gen: loading file grep (for define-compilation-mode) + Loading grep... + [...] + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs--defining-macros): + Remove macros that are marked `autoload-macro expand`, even if they are + not predefined. + (loaddefs-generate--make-autoload): Simplify accordingly. + +2025-11-22 Stefan Monnier <monnier@iro.umontreal.ca> + + (loaddefs--defining-macros): Weed out a few more entries + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs--defining-macros): + Remove `define-skeleton`, `define-derived-mode`, and + `define-generic-mode` since their `autoload-macro expand` property is + now preloaded. + +2025-11-22 Stefan Monnier <monnier@iro.umontreal.ca> + + : Update ldefs-boot.el + +2025-11-22 Stefan Monnier <monnier@iro.umontreal.ca> + + loaddefs-gen: Weed out some elements from the shortcut path + + The predefined macros marked as `autoload-macro expand` can't + get to the shortcul path, so simplify it accordingly. + Mark a few more macros from the shortcut path as `autoload-macro expand` + but don't remove them yet from the shortcut path (need to update + `ldefs-boot.el`). + + * lisp/progmodes/compile.el (define-compilation-mode): + * lisp/emacs-lisp/generic.el (define-generic-mode): + * lisp/emacs-lisp/derived.el (define-derived-mode): + * lisp/cedet/mode-local.el (define-overloadable-function): + * lisp/skeleton.el (define-skeleton): Mark as `autoload-macro expand` + so as to make the "shortcut" path in `loaddefs-gen.el` redundant. + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs--defining-macros): + Remove the easy-mmode.el macros since they are already marked as + `autoload-macro expand` and they are always defined, so we never check + them against that list. + (loaddefs-generate--make-autoload): Remove handling of the + `easy-mmode.el` macros as well as `defun` and `defmacro` from the + shortcut path since we can never get there with them anyway. + +2025-11-22 Michael Albinus <michael.albinus@gmx.de> + + Adapt etc/NEWS + + * etc/NEWS: Shrink Zone entry. + Presentational fixes and improvements. + +2025-11-22 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + e262ed18f94 ; * admin/notes/spelling: Copy note on possessive from CO... + +2025-11-22 Reuben Thomas <rrt@sc3d.org> + + Fix ispell’s handling of comment-end when adding local words + + * lisp/textmodes/ispell.el (ispell-add-per-file-word-list): Deal + with `comment-end' in a way that works for comments that don’t + nest. + + We proceed as follows: when `comment-end' is non-empty, we only + ever insert one start and one end comment, the first time we add + a local word. This works with both C-style (which don’t nest) + and Rust-style comments (which do). + + If we’re using line comments (i.e. comments that only have a + `comment-start'), then continue to insert one on each line. + + * test/lisp/textmodes/ispell-tests/ispell-tests.el + (ispell/ispell-add-per-file-word-list/nxml): Adjust test. + + Bug#79871 + +2025-11-22 Eli Zaretskii <eliz@gnu.org> + + Fix documentation of 'alpha-background' frame parameter + + * doc/lispref/frames.texi (Font and Color Parameters): Fix + documentation of values of 'alpha-background'. Suggested by Jacob + S. Gordon <jacob.as.gordon@gmail.com>. (Bug#79861) + +2025-11-22 john muhl <jm@pub.pink> + + Fix non-interactive use of 'lua-start-process' + + * lisp/progmodes/lua-mode.el (lua-process-init-code): Add newline. + (lua-start-process): Use 'process-send-string' to avoid starting + two processes. Flatten 'switches' argument since rest arguments + get added to a list. Replace 'switch-to-buffer' with + 'pop-to-buffer' so that the process window behavior can be + customized with 'display-buffer-alist'. Expand docstring and + update it to match the code. (Bug#79853) + +2025-11-22 Protesilaos Stavrou <info@protesilaos.com> + + Make Flymake fringe indicators use dedicated faces + + * lisp/progmodes/flymake.el (flymake-error-bitmap) + (flymake-warning-bitmap, flymake-note-bitmap): Define new faces. + (flymake-error-fringe, flymake-warning-fringe) + (flymake-note-fringe): Use the new faces by default. + (Bug#79785) + +2025-11-22 Ahmed Khanzada <me@enzu.ru> + + Add `toolkit-theme' and 'toolkit-theme-set-functions' + + * etc/NEWS: Document `toolkit-theme' and + 'toolkit-theme-set-functions' + * lisp/frame.el: Add 'toolkit-theme-set-functions' + * src/frame.c: Add `toolkit-theme' Elisp variable + * src/gtkutil.c: (xg_update_dark_mode_for_all_displays): Set + `toolkit-theme' and call 'toolkit-theme-set-functions' + * src/w32fns.c: (w32_applytheme): Send WM_EMACS_SET_TOOLKIT_THEME + message to Lisp thread. + * src/w32term.h: Declare WM_EMACS_SET_TOOLKIT_THEME + * src/w32term.c: (w32_read_socket): Receive + WM_EMACS_SET_TOOLKIT_THEME message and set `toolkit-theme' and call + 'toolkit-theme-set-functions' + +2025-11-22 Pip Cet <pipcet@protonmail.com> + + The --script option now enforces lexical binding (bug#79760) + + * etc/NEWS: Document the change. + * lisp/startup.el (command-line--load-script): Set 'lexical-binding'; + if we delete the first line, insert a new line to preserve line + numbers. + (command-line--eval-script): Set 'lexical-binding'. + +2025-11-22 RadioNoiseE <rne.kou@icloud.com> (tiny change) + + Fix XML indentation for CDATA section content + + * lisp/nxml/nxml-mode.el (nxml-merge-indent-context-type): + Handle 'cdata-section' type to prevent it from returning 'mixed'. + * lisp/nxml/nxml-mode.el (nxml-compute-indent-in-delimited-token): + Preserve existing indentation for CDATA section content. + (bug#79817) + +2025-11-22 Ana <ana@kigoth.pink> + + csharp-mode : Fix typos and remove duplicated declaration + + * lisp/progmodes/csharp-mode.el (csharp-vsemi-unknown): Rename + to 'csharp-vsemi-unknown-p'. The code was calling a function that + does not exist due to this typo. + (c-class-decl-kwds): Remove duplicated declaration for csharp. + (csharp-ts-mode--font-lock-settings): Remove duplicated declaration + of 'escape-sequence'. + +2025-11-22 Martin Rudalics <rudalics@gmx.at> + + Fix thinko in 'window_set_parent_and_normal_sizes' + + * src/window.c (window_set_parent_and_normal_sizes): When + assigning normal sizes in a combination, take the direction from + its parent's 'horizontal' slot and not from that of the first + window in the combination. + +2025-11-21 Po Lu <luangruo@yahoo.com> + + Disable C23 for Android builds + + * configure.ac (ac_cv_prog_cc_c23): Define to no when + configuring for Android. + +2025-11-21 Po Lu <luangruo@yahoo.com> + + * lib/strnlen.c (strnlen): Fix syntax error in Gnulib module. + +2025-11-20 Sean Whitton <spwhitton@spwhitton.name> + + Fix '(vc-revert-file (vc-git-root)' + + * lisp/vc/vc-git.el (vc-git--file-list-is-rootdir): + Merge into vc-git-command. + (vc-git-command): When operating on the repository root, first + bind default-directory to that root. When operating on the + repository root with 'git checkout', pass "." as FILE-OR-LIST. + +2025-11-20 Paul Eggert <eggert@cs.ucla.edu> + + A few more functions are not pure + + Assuming ATTRIBUTE_PURE means that the function must return, + a few more functions that should not be declared with ATTRIBUTE_PURE. + The GCC manual (and even the C23 standard, with [[reproducible]]) + is not clear about this, and it’s better to be safe. + * src/bignum.h (mpz_get_d_rounded): + * src/lisp.h (bignum_to_double): + No longer pure, as it does not return if memory is exhausted. + * src/fns.c (Fproper_list_p): No longer pure, as it does not + return if the user quits. + * src/gnutls.c (Fgnutls_errorp): No longer pure, as it does not + return if it runs into an eassert failure in XSYMBOL_WITH_POS via EQ. + * src/lisp.h (bignum_to_intmax, bignum_to_uintmax, bignum_bufsize): + No longer pure, as it does not return if it runs into an + eassert failure in XBIGNUM via xbignum_val. + +2025-11-20 Paul Eggert <eggert@cs.ucla.edu> + + Prefer C23 support if available + + This merges in changes that were made to Autoconf master + in April 2024. It causes ‘configure’ to prefer the C compiler to + enable C23 features if possible; otherwise, ‘configure’ + behaves as before, using C11 if available and C99 if not. + * admin/merge-gnulib (GNULIB_MODULES): Add std-gnu23. + (AVOIDED_MODULES): Add (i.e., start avoiding) std-gnu11. + * m4/std-gnu11.m4: Remove. + * m4/std-gnu23.m4: Add. + +2025-11-20 Juri Linkov <juri@linkov.net> + + Show the diff buffer with replacements by typing 'd' in 'query-replace' + + * doc/emacs/search.texi (Query Replace): Mention new key 'd'. + + * lisp/replace.el (query-replace-help): Mention the key 'd'. + (query-replace-map): Bind the key 'd' to 'diff'. + (perform-replace): When 'def' is equal to 'diff', + call 'multi-file-replace-as-diff' to show the diff buffer + with replacements (bug#79761). + +2025-11-20 Juri Linkov <juri@linkov.net> + + Support buffers in FILES arg of multi-file-replace-as-diff (bug#79761) + + * lisp/misearch.el (multi-file-replace-as-diff): Allow providing + a list of buffers in the argument FILES. Add autoload cookie. + (replace-regexp-as-diff): Provide the current buffer to + 'multi-file-replace-as-diff' when 'buffer-file-name' is nil. + +2025-11-20 Sean Whitton <spwhitton@spwhitton.name> + + vc-exec-after: Drop passing zero timeout to accept-process-output + + This reverts this change: + + Author: Sean Whitton <spwhitton@spwhitton.name> + AuthorDate: Thu Oct 30 20:45:31 2025 +0000 + Commit: Sean Whitton <spwhitton@spwhitton.name> + CommitDate: Fri Nov 7 15:40:25 2025 +0000 + + vc-exec-after: Pass zero timeout to accept-process-output + + * lisp/vc/vc-dispatcher.el (vc-exec-after): Pass zero timeout to + accept-process-output. + Fix due to Spencer Baugh <sbaugh@janestreet.com>. + + See thread starting at + <https://lists.gnu.org/archive/html/emacs-devel/2025-11/msg00263.html> + +2025-11-20 Vincenzo Pupillo <v.pupillo@gmail.com> + + Use documentation mark-up face for 'tag_name' node in document block. + + Embedded documentation mark-up should be used for 'tag_name' in + documentation blocks (thanks to Protesilaos Stavrou). + + * lisp/progmodes/c-ts-common.el + (c-ts-mode-doxygen-comment-font-lock-settings): + * lisp/progmodes/js.el (js--treesit-font-lock-settings): + * lisp/progmodes/php-ts-mode.el + (php-ts-mode--phpdoc-font-lock-settings): Replace 'font-lock-constant-face' + with 'font-lock-doc-markup-face' (bug#79856). + +2025-11-20 Elías Gabriel Pérez <eg642616@gmail.com> + + hideshow: Add modification hooks to remove the hidden blocks + + bug#79865 + + * lisp/progmodes/hideshow.el (hs--discard-overlay-after-change): + New function. + (hs-make-overlay): Use the new function. + +2025-11-20 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + +2025-11-20 Paul Eggert <eggert@cs.ucla.edu> + + Fix more mis-declarations of non-const functions + + Problem reported by Helmut Eller in: + https://lists.gnu.org/r/emacs-devel/2025-11/msg00809.html + * src/data.c (Fsymbol_with_pos_p, Fnatnump): + * src/fns.c (Fproper_list_p): + * src/gnutls.c (Fgnutls_errorp): + Now pure, not const. + +2025-11-20 Stefan Monnier <monnier@iro.umontreal.ca> + + Editorconfig: Cherrypick from commit fbd078ad6478 from upstream + + * lisp/editorconfig-core-handle.el (editorconfig-core-handle--parse-file): + Bump limits beyond the spec's minimum. + Cherrypick from commit fbd078ad6478 from upstream. + * lisp/editorconfig-fnmatch.el (editorconfig-fnmatch--do-translate): + Hoist `push` out of the `cl-case`. + +2025-11-20 Paul Eggert <eggert@cs.ucla.edu> + + Fix mis-declarations of non-const functions + + Problem for mpz_get_d_rounded reported by Helmut Eller in: + https://lists.gnu.org/r/emacs-devel/2025-11/msg00795.html + * lib-src/make-docfile.c (DEFUN_pure): New constant. + (write_globals, scan_c_stream): Support "attributes: pure". + * src/bignum.h (mpz_get_d_rounded): + * src/data.c (Fsymbolp, Fmodule_function_p, Fintegerp, Fnumberp): + * src/lisp.h (bignum_to_double, bignum_to_intmax) + (bignum_to_uintmax, bignum_bufsize): + Now pure, not const, since they depend on current state. + For example, Fsymbolp now inspects symbols_with_pos_enabled, + and the bignum functions inspect bignum contents in memory. + * src/data.c (Feq): + * src/xfaces.c (Fface_attribute_relative_p): + No longer const, since they might abort when debugging. + * src/pdumper.h (pdumper_object_p, pdumper_cold_object_p) + (pdumper_find_object_type, pdumper_object_p_precise): + These are not const functions. But there is no need to declare + them to be pure, either, as they’re inline so the compiler can + figure it out. + +2025-11-19 Spencer Baugh <sbaugh@janestreet.com> + + Fix implicit usage of the current window-width in vtable.el + + Previously, many functions in vtable.el called 'vtable--cache', + which computed 'vtable--cache-key' based on the current selected + window and frame; this could cause vtable functions to fail or + misbehave if they were not called from the selected window and + frame that 'vtable-insert' was last called in. + + Now, the vtable cache is stored with the text of the vtable, so + that functions which need to interact with some vtable text can + do so reliably without having to use the same selected window + and frame. + + Also, 'vtable-update-object' has always required TABLE to be + present at point in the current buffer; now its docstring states + this. + + * lisp/emacs-lisp/vtable.el (vtable--current-cache) + (vtable--cache-widths, vtable--cache-lines): Add. + (vtable-insert): Save cache in 'vtable-cache. + (vtable--ensure-cache, vtable--recompute-cache): Inline into + 'vtable-insert'. + (vtable--widths, vtable--cache): Delete. + (vtable-update-object): Use 'vtable--current-cache' and + update docstring. (Bug#69837) + (vtable-remove-object, vtable-insert-object): Use + 'vtable--current-cache' and save cache in 'vtable-cache'. + (vtable--sort, vtable--alter-column-width) + (vtable-previous-column, vtable-next-column): Use + 'vtable--current-cache'. + +2025-11-19 10sr <8.slashes@gmail.com> + + Editorconfig: Fix for `spaces_in_middle_key` test + + * lisp/editorconfig-core-handle.el (editorconfig-core-handle--parse-file): + fix for `spaces_in_middle_key` test. + + Cherrypick of commit 72b8847275cb from upstream. + +2025-11-19 Ron Parker <rdparker@gmail.com> (tiny change) + + Editorconfig: Fix parsing section lines with trailing comments (#363) + + + * lisp/editorconfig-core-handle.el (editorconfig-core-handle--parse-file): + Fix parsing section lines with trailing comments. + + Cherrypick of commit 183cfa105c2e from upstream. + +2025-11-19 Stefan Monnier <monnier@iro.umontreal.ca> + + Fix `editorconfig-display-current-properties` + + In Emacs-30, `editorconfig-display-current-properties` was + broken in that it displayed only the properties set by + `editorconfig-apply` but not those set in the "normal" way, + i.e. by `hack-local-variables`. Fix that along with a few + docstrings that had misleading old info. + + * lisp/editorconfig-tools.el (editorconfig-apply) + (editorconfig-mode-apply): Fix docstring and declare obsolete. + + * lisp/editorconfig.el (editorconfig-properties-hash): + (editorconfig-call-get-properties-function): Remove elements of + docstring that aren't true any more. + (editorconfig-call-get-properties-function): + Set `editorconfig-properties-hash`. + +2025-11-19 Martin Rudalics <rudalics@gmx.at> + + Fix 'make_lispy_position' for left margin clicks (Bug#79846) + + * src/keyboard.c (make_lispy_position): When calculating a + position in the left margin skip any scroll bar on the left of + the associated window (Bug#79846). + +2025-11-19 Elías Gabriel Pérez <eg642616@gmail.com> + + hideshow: Fix regressions. (Bug#79857) + + * lisp/progmodes/hideshow.el (hs-block-positions): Exit the + function if 'hs-forward-sexp' fails. + (hs-hide-level-recursive): Fix infloop. + * test/lisp/progmodes/hideshow-tests.el (hideshow-hide-level-1): + (hideshow-hide-level-2): Update tests. + +2025-11-18 Stefan Monnier <monnier@iro.umontreal.ca> + + (loaddefs-generate--emacs-batch): Fix bug#79821 again + + Hopefully, this one is for good. + Use `file-truename` on all the input file/dir names to try and + make sure we don't get bitten any more by symlinks or driver + letter capitalization. + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Revert last change. + (loaddefs-generate--excluded-files): Remove test that's not needed any + more now that we use all relative names. + (loaddefs-generate--emacs-batch): Apply truename to all input files/dirs. + +2025-11-18 Stefan Monnier <monnier@iro.umontreal.ca> + + (lisp-indent-function): Auto-load macros to get the indent info + + Rather than preload the `lisp-indent-function` property for + autoloaded macros, auto-load them to fetch their property. + In terms of cost, this slightly reduces the heap size at + startup, while tending to increase the heap size while editing + ELisp code since more packages will be (auto)loaded. + + The benefit is elsewhere: by loading the definition the macro we + will also load other (non-autoloaded) definitions, so we get + better behavior for things like `ert.el` and `inline.el` where + only some of the macros are autoloaded, because there's a good + chance that we'll end up loading them to indent the autoloaded + macro, after which indentation of the other macros will be + performed correctly (bug#68818). + + * lisp/emacs-lisp/byte-run.el (byte-run--dont-autoload): New function. + (macro-declarations-alist): Use it to override `byte-run--set-indent`. + + * lisp/emacs-lisp/lisp-mode.el (lisp-indent-function): Auto-load macros + if needed to get the indent info. + +2025-11-18 Anatolii Smolianinov <zarkonesmall@gmail.com> (tiny change) + + Eglot: use symbol at point as default in eglot-rename (bug#79757) + + * lisp/progmodes/eglot.el (eglot-rename): Tweak. + +2025-11-18 Juri Linkov <juri@linkov.net> + + Display daemon startup warnings on the first client frame (bug#79783) + + * lisp/emacs-lisp/warnings.el (display-warning): For warnings/errors + on the initial daemon frame use 'after-make-frame-functions' + to postpone their display until the first client frame is created. + (warning--display-buffer): New internal function refactored out of + 'display-warning'. + +2025-11-18 Jonas Bernoulli <jonas@bernoul.li> + + Update to Transient v0.11.0-10-g6637364e + +2025-11-18 Eli Zaretskii <eliz@gnu.org> + + Fix MinGW build broken by integration of 'stdio-consolesafe' + + * src/conf_post.h: Avoid redirecting '*printf' functions if + 'OMIT_CONSOLESAFE' is defined to 1. + * nt/cmdproxy.c: + * nt/ddeclient.c: Define 'OMIT_CONSOLESAFE' to 1 to avoid + redirecting '*printf functions' to stdio-consolesafe replacements. + * nt/Makefile.in (LIBS_ADDPM): Add -lgnu to link 'addpm' against + Gnulib. (Bug#79855) + +2025-11-18 Sean Whitton <spwhitton@spwhitton.name> + + diff-apply-hunk: Avoid display-buffer-overriding-action + + * lisp/vc/diff-mode.el (diff-apply-hunk): Use ACTION argument to + display-buffer instead of display-buffer-overriding-action. + +2025-11-17 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/emacs-lisp/smie.el (smie-indent-basic): Add safety predicate + +2025-11-17 Juri Linkov <juri@linkov.net> + + Improve hs-indicator-mouse-toggle-hiding for non-selected windows + + * lisp/progmodes/hideshow.el (hs-indicator-mouse-toggle-hiding): + Use 'mouse-set-point' to select the clicked window when it was not selected. + +2025-11-17 Juri Linkov <juri@linkov.net> + + New hideshow option 'hs-cycle-filter' for visibility-cycling with 'TAB' + + * doc/emacs/programs.texi (Hideshow): Add 'hs-cycle-filter' and + remove duplicate 'hs-toggle-hiding'. + + * lisp/progmodes/hideshow.el (hs-cycle-filter): New defcustom (bug#79585). + (hs-minor-mode-map): Bind 'TAB' to 'hs-toggle-hiding' using the filter. + +2025-11-17 Elías Gabriel Pérez <eg642616@gmail.com> + + hideshow: Simplify code. (Bug#79585) + + * lisp/progmodes/hideshow.el (hs-get-first-block): New function. + (hs--add-indicators, hs-hide-block): Use the new function and + simplify. + +2025-11-16 Thomas Fitzsimmons <fitzsim@fitzsim.org> + + ntlm.el: Add Package-Requires and fix two docstrings + + * lisp/net/ntlm.el (Package-Requires): Add emacs 27.1. + * lisp/net/ntlm.el (ntlm-build-auth-response, ntlm-string-xor): + Fix docstrings to satisfy `checkdoc'. + +2025-11-16 Juri Linkov <juri@linkov.net> + + * lisp/outline.el: Small fixes. + + (outline-font-lock-keywords, outline-minor-mode-highlight-buffer): + Fall back to eol when there is no newline at the end of outline at eob. + (outline-after-change-functions): Remove the temporarily added variable. + (outline--fix-buttons): Remove its last use. + +2025-11-16 João Távora <joaotavora@gmail.com> + + Eglot: rework semtok feature again + + This time, I bit the bullet and made eglot--semtok-cache a list + of responses. This is motivated by "range" request which happen + in for multiple regions asynchronously. They must all be + (eventually) sent and cannot stomp on each others' cache. + + Figuring out when to delete outdated entries from + eglot--semtok-cache is also tricky. It must be done only once + we're certain an outdated entry cannot be reused for a "delta" + request. + + * lisp/progmodes/eglot.el (eglot--semtok-cache): Reword docstring. + (eglot--semtok-apply-delta-edits): Tweak variable name. + (eglot--semtok-request): Rework again. + (eglot--semtok-font-lock): Rework. + (eglot--semtok-font-lock-1): DATA no longer optional. + +2025-11-16 Eli Zaretskii <eliz@gnu.org> + + Fix last change in keyboard.c + + * src/keyboard.c (adjust_point_for_property): Handle 'display' + property on the same text as 'invisible' property the same as the + overlay with a 'display' property. (Bug#79787) + +2025-11-16 Eli Zaretskii <eliz@gnu.org> + + Fix cursor motion across invisible text with an overlay + + * src/keyboard.c (adjust_point_for_property): Handle the case + where invisible text has an overlay over it with a replacing + 'display' property, which leaves some "trace" of the invisible + text on display. (Bug#79787) + +2025-11-16 Elías Gabriel Pérez <eg642616@gmail.com> + + hideshow: Make ellipsis a little noticeable in TTY frames + + bug#79585 + + * lisp/progmodes/hideshow.el (hs-ellipsis): Use 'shadow' face. + (hs--get-ellipsis): Rework. + (hs-already-hidden-p): Fix regression. + +2025-11-16 Eli Zaretskii <eliz@gnu.org> + + Workaround for MSVCRT stdio on MS-Windows for CJK locales + + MSVCRT implementation of stdio functions which output + characters one by one fails for CJK double-byte encodings. + Gnulib provides replacement functions which work around + those bugs. This change makes Emacs and lib-src programs + use the replacements when Emacs is linked against MSVCRT. + * src/conf_post.h (fwrite, fprintf, printf, vfprintf, vprintf) + [WINDOWSNT]: Redirect to Gnulib replacements when Emacs is linked + against MSVCRT (as opposed to UCRT). Suggested by Bruno Haible + <bruno@clisp.org>. + +2025-11-16 João Távora <joaotavora@gmail.com> + + Eglot: rework semtok feature again + + This version was tested with the clangd, rust-analyzer and lean servers. + Each server is slightly different. + + The main change is to recognize that that eglot--semtok-request is a + promise to get some data for BEG to END and a promise to flush it. The + eglot--semtok-inflight variable is overhauled so that it more precisely + encodes this information. + + The lean server insists on many workspace/semanticTokens/refresh waiting + for a textDocument/semanticTokens/full request from our part, but we + don't give in. The spec doesn't actually say what types of requests the + clients should issue. It eventualy gives up. The only thing we do on + this request is to flush everything we know. After this flush, the + font-lock machinery will know what to do. + + * lisp/progmodes/eglot.el (eglot--async-request): Return id. + (eglot--semtok-inflight): Redesign variable. + (eglot-handle-request): Just flush. + (eglot--semtok-request): Rewrite. + (eglot--semtok-font-lock): Tweak. + +2025-11-15 Eli Zaretskii <eliz@gnu.org> + + Fix processing sub-process exit when keyboard input is pending + + * src/process.c (wait_reading_process_output): Process status + changes of sub-processes when called with read_kbd zero and some + "keyboard input" is available, but no output from any sub-process. + (Bug#79777) + +2025-11-15 Eli Zaretskii <eliz@gnu.org> + + Avoid extra newline in user-error logged in *Messages* + + * src/xdisp.c (reset_message_log_need_newline): New function. + * src/lisp.h: Add prototype of 'reset_message_log_need_newline'. + * src/print.c (print_error_message): Call + 'reset_message_log_need_newline' to prevent message3 from + outputting a newline after "user-error:". (Bug#79840) + +2025-11-15 Paul Nelson <ultrono@gmail.com> + + Improve foldout-exit-fold with negative arg (bug#77370) + + * lisp/foldout.el (foldout-exit-fold): When called with a + negative prefix argument (so that the exited fold is not + hidden), preserve the position of point and do not recenter. + +2025-11-15 Eli Zaretskii <eliz@gnu.org> + + : Update ldefs-boot.el. + +2025-11-15 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 9b3eb06c76e Indent jsx_text properly with modern grammars + 1c87be8ac95 ; * lisp/gnus/gnus.el (gnus-summary-line-format): Reindent. + +2025-11-15 Jostein Kjønigsen <jostein@kjonigsen.net> + + csharp-mode.el: fontify variables assigned from awaited tasks + + * lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings): + Add missing selector. (Bug#79825) + +2025-11-15 Marc Herbert <marc.herbert@intel.com> (tiny change) + + * lisp/gnus/gnus.el (gnus-summary-line-format): Doc fix (bug#79820). + +2025-11-15 Protesilaos Stavrou <info@protesilaos.com> + + Make ibuffer.el use dedicated faces + + * lisp/ibuffer.el (ibuffer-marked, ibuffer-deletion) + (ibuffer-title, ibuffer-filter-group-name): Define the faces. + (ibuffer-marked-face, ibuffer-deletion-face, ibuffer-title-face) + (ibuffer-filter-group-name-face): Make the new faces the default + values. (Bug#79786) + +2025-11-15 Jackson Ray Hamilton <jackson@jacksonrayhamilton.com> + + Indent jsx_text properly with modern grammars + + * lisp/progmodes/js.el: + * lisp/progmodes/typescript-ts-mode.el: Indent jsx_text from correct + column when a modern grammar is installed; previously was over-indented. + +2025-11-14 João Távora <joaotavora@gmail.com> + + Eglot: fix bug in eglot--semtok-font-lock + + The entry condition to eglot--semtok-font-lock-1, which checks + if the region to refontify is contained in the recorded region + in eglot--semtok-cache was blatantly wrong. It used 'beg' + twice! + + * lisp/progmodes/eglot.el (eglot--semtok-font-lock): Fix bug. + +2025-11-14 João Távora <joaotavora@gmail.com> + + Eglot: invalidate local semtok cache at server's bidding + + When the server sends workspace/semanticTokens/refresh, calling + font-lock-flush isn't enough. It will trigger a new + eglot--semtok-font-lock call, but we can't assume anything about + the validity of eglot--semtok-cache. + + Clangd seems to send workspace/semanticTokens/refresh when + complicated enough changes happen in an LSP document. If the + buffer-local eglot--semtok-cache isn't flushed we'll likely + request a delta, and clangd may still supply it, but it won't + apply correctly to the outdated local state. + + * lisp/progmodes/eglot.el (eglot--semtok-cache) + (eglot--semtok-inflight): Move up here. + (eglot-handle-request): Flush the eglot--semtok-cache. + +2025-11-14 João Távora <joaotavora@gmail.com> + + Eglot: janitorial cleanup + + * lisp/progmodes/eglot.el (eglot--lsp-position-to-point): Use + eglot--widening. + (eglot--lsp-position-to-point): Use eglot--widening. + (eglot-range-region): New util. + (eglot-format) + (eglot--code-action-params) + (eglot--update-hints-1) + (eglot--semtok-request): Use eglot-range-region. + (eglot--after-change): Add comment. + + eglot-range-region is an idea by Lua Viana Reis <me@lua.blog.br> + +2025-11-14 Sean Whitton <spwhitton@spwhitton.name> + + Autoload match*, bind*, bind-and* dummy macros + + * lisp/emacs-lisp/cond-star.el (match*, bind*, bind-and*): + Autoload, for the sake of syntax highlighting. + +2025-11-14 Sean Whitton <spwhitton@spwhitton.name> + + diff-apply-hunk: Don't display BUF in the selected window + + * lisp/vc/diff-mode.el (diff-apply-hunk): Don't display BUF in + the selected window. + +2025-11-14 Spencer Baugh <sbaugh@janestreet.com> + + Do eager display of *Completions* while idle + + Don't block user input while rendering the *Completions* buffer + due to eager-display. This allows eager-display to be used with + larger and slower completion tables without interfering with the + user. Like in eager-update, we use while-no-input and + non-essential to ensure that eager-display happens without + blocking the user. + + To support this, we remove the ability to set eager-display to a + function. The only user was tmm.el, which nows sets + eager-display to t and adds a completion-setup-hook instead. + (This also fixes a bug in tmm where dismissing and redisplaying + the *Completions* buffer would not have the special help text) + + * lisp/minibuffer.el (completion-eager-display--timer) + (completions--eager-display, completions--start-eager-display): + Add. (bug#79819) + (completing-read-default): Call + completions--start-eager-display, stop supporting functionp + eager-display. + * lisp/tmm.el (tmm-add-prompt): Delete. + (tmm--completion-setup-hook): Add. + (tmm-add-prompt): Add completion-setup-hook, set eager-display + to t. + (tmm-goto-completions): Call minibuffer-completion-help instead + of tmm-add-prompt. + +2025-11-14 Elías Gabriel Pérez <eg642616@gmail.com> + + hideshow: Update Header Commentary. (Bug#79829) + + * lisp/progmodes/hideshow.el: Document how to migrate from + 'hs-special-modes-alist'. + +2025-11-13 João Távora <joaotavora@gmail.com> + + Eglot: add two semtok tests + + The tests are pretty basic, I don't expect them to catch + anything else than giant bugs. + + * test/lisp/progmodes/eglot-tests.el (eglot-test-semtok-basic) + (eglot-test-semtok-refontify): New tests. + (eglot--semtok-faces, eglot--semtok-wait): New helpers. + +2025-11-13 João Távora <joaotavora@gmail.com> + + Eglot: tweak some semtok functions to be more debug-friendly + + * lisp/progmodes/eglot.el (eglot--semtok-request): Return value + records return reason. + (eglot--semtok-font-lock-1): Return number of painted tokens and + exit locus. + (eglot--semtok-decode-token): Rename + from eglot--semtok-token-faces. Rework. + (eglot--semtok-font-lock-1): Use eglot--semtok-decode-token. + +2025-11-13 João Távora <joaotavora@gmail.com> + + Eglot: tidy overlay cleanup code + + And turn off semtok when tearing down eglot--managed-mode. + + * lisp/progmodes/eglot.el (eglot--delete-overlays): New helper. + (eglot--managed-mode): Turn off minor modes and cleanup here. + (eglot--managed-mode-off): Not here. + (eglot-highlight-eldoc-function) + (eglot-code-action-suggestion): Use eglot--overlay prop. + (eglot-inlay-hints-mode): Use eglot--delete-overlays. + +2025-11-13 Elías Gabriel Pérez <eg642616@gmail.com> + + hideshow: Fix indicator mouse clicks on TTY + + * lisp/progmodes/hideshow.el (hs-make-overlay) + (hs--make-indicators-overlays): Rework (bug#79585). + +2025-11-13 Sean Whitton <spwhitton@spwhitton.name> + + read_key_sequence: Additional check for fix_current_buffer + + * src/keyboard.c (read_key_sequence): If we were interrupted + while initializing the terminal, also check for a change of + current buffer (bug#79513). + +2025-11-13 Sean Whitton <spwhitton@spwhitton.name> + + New dummy defmacro for bind* + + * lisp/emacs-lisp/cond-star.el (bind*): New macro, like match* + and bind-and*. + +2025-11-13 Sean Whitton <spwhitton@spwhitton.name> + + VC revert commands: Facilities to entirely delete revisions + + * lisp/vc/vc.el (vc-revision-revert, vc-revision-cherry-pick): + Rename to ... + (vc-revert-or-delete-revision, vc-cherry-pick): + ... these (bug#79408). All uses changed. + * lisp/vc/log-view.el (log-view-revision-revert) + (log-view-revision-cherry-pick): Rename to ... + (log-view-revert-or-delete-revisions, log-view-cherry-pick): + ... these. All uses changed. + * lisp/vc/log-view.el (log-view-revert-or-delete-revisions): + * lisp/vc/vc.el (vc-revert-or-delete-revision): New INTERACTIVE + and DELETE parameters, and prefix argument. Offer to entirely + delete REV in certain circumstances (bug#79408). + * lisp/vc/log-view.el (log-view--pick-or-revert): + * lisp/vc/vc.el (vc--pick-or-revert): New INTERACTIVE and DELETE + parameters. All uses changes. + * lisp/vc/log-view.el (log-view-revert-revisions) + (log-view-delete-revisions): + * lisp/vc/vc.el (vc-revert-revision, vc-delete-revision): New + commands (bug#79408). + * doc/emacs/maintaining.texi (VC Change Log, VC Undo) + (Copying Between Branches): + * etc/NEWS: Document the changes. + +2025-11-13 Sean Whitton <spwhitton@spwhitton.name> + + Revised bindings for diff-revert-and-kill-hunk + + * lisp/vc/diff-mode.el (diff-mode-shared-map): Bind + diff-revert-and-kill-hunk to 'u'. + (diff-mode-map): Replace binding for diff-revert-and-kill-hunk + with 'C-c M-u'. + * doc/emacs/files.texi (Diff Mode): + * etc/NEWS: Document the change. + +2025-11-13 Robert Pluim <rpluim@gmail.com> + + Support unqualified keycap emoji + + * admin/unidata/emoji-zwj.awk: Add U+20E3 as a trigger codepoint + so that U+0023 U+20E3 and similar are displayed using the emoji + font. + +2025-11-13 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/replace.el (replace--push-stack, perform-replace): Use markers + + Don't use integers to store match data for "long term". + Otherwise, buffer edits that occur between two steps + (e.g. via process filters of post-command-hooks) makes it invalid, + leading to very confusing behavior, e.g. after `C-M-% ... y` + the right (next) match is highlighted yet if a process-filter or + post-command-hook runs, the next `y` may replace something else + than what was highlighted. + +2025-11-13 Stefan Monnier <monnier@iro.umontreal.ca> + + etc/NEWS.28: Mention `read-symbol-shorthands` to improve `C-h v` info + + lisp/emacs-lisp/bytecomp.el (define-widget): Add `funarg-positions` + +2025-11-13 Stefan Monnier <monnier@iro.umontreal.ca> + + (loaddefs-generate--emacs-batch): Fix bug#79821 + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--emacs-batch): + Expand file names before changing directory, in case they're relative. + +2025-11-12 João Távora <joaotavora@gmail.com> + + Eglot: document semantic tokens (semtok) feature (bug#79374) + + Also clarify how to turn off semantic tokens and inlay hints, since I + suspect that will be a theme. + + * doc/misc/eglot.texi (Eglot Features): Add semantic tokens. (Eglot + Commands): Document eglot-semantic-tokens-mode. (Eglot and Buffers): + Provide example on how to turn off semtok and inlay hints. + + * etc/EGLOT-NEWS (Changes to upcoming Eglot): Announce semantic + tokens support + +2025-11-12 João Távora <joaotavora@gmail.com> + + Eglot: don't use eglot--semtok-idle-timer (bug#79374) + + Don't have evidence for the usefulness of this technique yet. + + * lisp/progmodes/eglot.el (eglot--semtok-idle-timer): Delete. + (eglot--semtok-request): Simplify. + +2025-11-12 João Távora <joaotavora@gmail.com> + + Eglot: rework semtok defcustoms and face calculation (bug#79374) + + * lisp/progmodes/eglot.el (eglot-semantic-tokens-faces) + (eglot-semantic-tokens-modifier-faces): Delete. + (eglot--semtok-types, eglot--semtok-modifiers): Rename from + eglot-semantic-tokens-faces and + eglot-semantic-tokens-modifier-faces. + (eglot-client-capabilities): Tweak. + (eglot--lsp-interface-alist): Add SemanticTokensLegend. + (eglot--connect): Don't initialize a server. + (eglot--semtok-define-things): New helper. + (eglot-lsp-server): Just one slot needed. + (eglot--semtok-token-faces): Rework. + +2025-11-12 João Távora <joaotavora@gmail.com> + + Eglot: debounce consecutive semtok full/delta requests (bug#79374) + + Many back-to-back calls for 'eglot--semtok-request' and small + regions occur even on trivial fast edits. Even though it's + cheap and harmless to send many delta rquests, it's nicer to + just send just one. + + The debouncing from jsonrpc-async-request isn't enough. When a response + to a semtok request is received, it's important to remember which + regions to flush. Font-lock logic will then do its magic and coalesce + those regions into one before invoking eglot--semtok-font-lock, and + eglot--semtok-font-lock-1 will have up-to-date data to work with. + + * lisp/progmodes/eglot.el (eglot--semtok-inflight): New variable. + (eglot--semtok-request): Use it. + +2025-11-12 João Távora <joaotavora@gmail.com> + + Eglot: rework semtok again to use only font-lock (bug#79374) + + Stefan's idea to use ONLY font-lock instead of jit-lock seems more + promising and less buggy. I did have to add this slightly odd + eglot--semtok-font-lock-2 kludge. Other than that, it seems fine. + + * lisp/progmodes/eglot.el (eglot-semantic-tokens-mode): Now use + ONLY font-lock. + (eglot--semtok-request): Rework, don't call painting function + here. + (eglot--semtok-font-lock): Rename from eglot--semtok-jit-lock and + use a single arg. Maybe call eglot--semtok-font-lock-2. Return + nil or risk crashing Emacs. + (eglot--semtok-font-lock-1): Rework slightly. + (eglot--semtok-font-lock-2): New helper. + (eglot-region-range): Delete. + +2025-11-12 João Távora <joaotavora@gmail.com> + + Eglot: rework semtok to use only jit-lock (bug#79374) + + Kept the general structure but clarified the code paths. + + Simplify many things. Instead of font-lock-add-keywords, use + jit-lock-register exclusively. Works, but slightly problematic, + since when editing the buffer the existing enriched face + information is first removed, then re-added. Will try other + approaches. + + * lisp/progmodes/eglot.el (eglot-lsp-server): Tweak doc. + (eglot--semtok-request-full-on-idle): Delete. Integrated into caller. + (eglot--semtok-jit-lock): Rename from eglot--semtok-propertize. Rework. + (eglot--semtok-jit-lock-1): Extract from old eglot--semtok-propertize. + (eglot-semantic-tokens-mode): Use new eglot--semtok-jit-lock name. + (eglot--semtok-put-cache) + (eglot--semtok-ingest-range-response) + (eglot--semtok-ingest-delta-response) + (eglot--semtok-ingest-full-response): Delete helpers. + (eglot--semtok-apply-delta-edits): Rework with more cl-loopy idioms. + (eglot--semtok-flush-region): Delete. + (eglot--semtok-request): Now takes a region as argument. Rework extensively. + (eglot-connect-hook): Don't put + eglot--semtok-initialize here. + (eglot--connect): Rather here. + (eglot--semtok-token-faces): New helper. + (eglot--semtok-font-lock): Delete. + (eglot--semtok-initialize): Rework. + (eglot-semantic-tokens-mode): Simplify. + +2025-11-12 João Távora <joaotavora@gmail.com> + + Eglot: fix bug on server-intiated semtok refresh (bug#79374) + + src/emacs -Q src/cm.c \ + --eval '(trace-function (quote eglot--semtok-propertize))' \ + --eval '(trace-function (quote eglot--semtok-request))' \ + --eval '(trace-function (quote font-lock-flush))' -f eglot + + More trace-values will show that too many full requests are being + sent. + + * lisp/progmodes/eglot.el + (eglot-handle-request): Don't bump eglot--versioned-identifier, + since that confuses semtok bootstrap in a new file with clangd. + +2025-11-12 João Távora <joaotavora@gmail.com> + + Eglot: rework semtok code (bug#79374) + + * lisp/progmodes/eglot.el (eglot-semantic-tokens-faces) + (eglot-semantic-tokens-modifier-faces): Move up to defcustom section. + (eglot--semtok-request-full-on-idle, eglot-handle-request) + (eglot--semtok-build-face-map, eglot--semtok-initialize) + (eglot-semantic-tokens-mode): Move into semantic tokens section. + (eglot--semtok-font-lock): Rename from + eglot--semtok-fontify-tokens. + (eglot-semantic-tokens-mode): Use eglot--semtok-font-lock. + (eglot--semtok-ingest-delta-response): Rename from + eglot--semtok-ingest-full/delta-response + (eglot--semtok-request): Use new function. + +2025-11-12 Lua Viana Reis <me@lua.blog.br> + João Távora <joaotavora@gmail.com> + + Eglot: add semantic token (semtok) support (bug#79374) + + * lisp/progmodes/eglot.el (eglot-semantic-tokens-faces) + (eglot-semantic-tokens-modifier-faces): New defcustom.. + (eglot-ignored-server-capabilities): Tweak. + (eglot-client-capabilities): Advertise semtok support. + (eglot-lsp-server): Tweak. + (eglot-region-range): New helper. + (eglot-connect-hook): Add eglot--semtok-initialize. + (eglot--maybe-activate-editing-mode): Activate + eglot-semantic-tokens-mode. + (eglot--semtok-idle-timer, eglot--semtok-cache) + (eglot--semtok-put-cache, eglot--semtok-ingest-range-response) + (eglot--semtok-ingest-full-response) + (eglot--semtok-apply-delta-edits) + (eglot--semtok-ingest-full/delta-response) + (eglot--semtok-flush-region, eglot--semtok-request) + (eglot--semtok-propertize, eglot--semtok-fontify-tokens) + (eglot--semtok-request-full-on-idle): New helpers. + (eglot-handle-request workspace/semanticTokens/refresh): New + request handler. + (eglot--semtok-build-face-map, eglot--semtok-initialize): New + helpers. + (eglot-semantic-tokens-mode): New minor mode. + (desktop): Mention eglot-semantic-tokens-mode. + (command-modes tweak): Add eglot-semantic-tokens-mode. + +2025-11-12 Sean Whitton <spwhitton@spwhitton.name> + + vc-do-async-command: Print how long command took to run + + * lisp/vc/vc-dispatcher.el (vc-do-async-command): Print how long + the command took to run. + +2025-11-12 Sean Whitton <spwhitton@spwhitton.name> + + vc-do-command: Restore using a pipe in the async case + + * lisp/vc/vc-dispatcher.el (vc-do-command): Restore using a pipe + in the async case. This was unintentionally changed when adding + support for discarding output. + +2025-11-11 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + ca4af1768d6 Fix crash on Android 2.2 + +2025-11-11 Po Lu <luangruo@yahoo.com> + + Fix crash on Android 2.2 + + * src/android-asset.h (AAssetManager_open): Initialize desc and + asset to NULL, lest `desc' be accessed uninitialized if C_NAME + does not exist in the directory tree. + +2025-11-11 Michael Albinus <michael.albinus@gmx.de> + + Extend Tramp direct async processes for further methods + + * lisp/net/tramp-container.el (tramp-methods) <distrobox>: + * lisp/net/tramp-sh.el (tramp-methods) <sg>: Add `tramp-direct-async'. + (tramp-expand-script): Fix typo in script name. + (tramp-maybe-send-script): Adapt docstring. + +2025-11-11 Elías Gabriel Pérez <eg642616@gmail.com> + + hideshow: Fix indicators for multiple block in the same line + + bug#79810 + + * lisp/progmodes/hideshow.el (hs-hideable-region-p): Simplify. + (hs-block-positions): Change return value. + (hs--add-indicators): Go to the next line only if we have + successfully created the overlays. + (hs-hide-block-at-point, hs-hide-block): Update code. + +2025-11-10 Juri Linkov <juri@linkov.net> + + Improve hideshow support for heex-ts-mode and yaml-ts-mode + + * lisp/progmodes/heex-ts-mode.el (heex-ts--thing-settings): Add 'defun' thing. + (heex-ts-mode): Use it in 'hs-treesit-things'. + + * lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode): Set 'hs-treesit-things' + and 'hs-adjust-block-end-function'. + +2025-11-10 Juri Linkov <juri@linkov.net> + + Improve hideshow support for elixir-ts-mode and heex-ts-mode + + * lisp/progmodes/elixir-ts-mode.el (elixir-ts--thing-settings): + Add 'defun' thing. + (elixir-ts-mode): Set 'hs-treesit-things'. + * lisp/progmodes/heex-ts-mode.el (heex-ts-mode): + Set 'hs-treesit-things'. Use bos/eos instead of bol/eol. + +2025-11-10 Sean Whitton <spwhitton@spwhitton.name> + + vc-do-command: Support discarding standard error + + * lisp/vc/vc-dispatcher.el (vc-do-command): Support discarding + standard error. + * lisp/vc/vc-hg.el (vc-hg-dir-status-files): Discard standard + error of 'hg status' to avoid parsing mistakes. + (vc-hg-command): Update docstring given new meaning of first + argument to vc-do-command. + * test/lisp/vc/vc-tests/vc-test-misc.el (vc-test-do-command-1) + (vc-test-do-command-2, vc-test-do-command-3) + (vc-test-do-command-4, vc-test-do-command-5) + (vc-test-do-command-6, vc-test-do-command-7): New tests. + +2025-11-10 João Távora <joaotavora@gmail.com> + + Flymake: fix compatibility to older emacsen (bug#79769) + + * lisp/progmodes/flymake.el (flymake-diagnostics-buffer-mode-map): + Don't use keymap-set. + (Package-Requires): Require project 0.11.1 + (Version): Bump to 1.4.3. + +2025-11-10 Spencer Baugh <sbaugh@janestreet.com> + João Távora <joaotavora@gmail.com> + + Eglot: consider invisibility in eldoc one-liners (bug#79779) + + Since we keep the invisible characters of all the + server-supplied markdown, we risk that the first lines are + entirely invisible. This defeats the :echo calculation in + eglot-hover-eldoc-function. + + Fallout of bug#79552. + + * lisp/progmodes/eglot.el (eglot-hover-eldoc-function): Fix. + +2025-11-10 Elías Gabriel Pérez <eg642616@gmail.com> + + * lisp/progmodes/grep.el (grep-menu-map): Add "Edit Grep Buffer" (bug#79793). + +2025-11-10 Po Lu <luangruo@yahoo.com> + + Port Android build system to Autoconf < 2.70 + + * m4/ndk-build.m4 (ndk_INIT): Don't suppose that $ac_aux_dir + will be terminated with a trailing slash on Autoconf 2.69 and + earlier. + +2025-11-10 Michael R. Mauger <michael@mauger.com> + + Zone multi-window and -frame support + + * lisp/play/zone.el: Multi-window and -frame support. + (zone): New group. + (zone-buffer-name): New constant. + (zone-add-program, zone-remove-program): New functions. + + * : User configuration + (zone-all-frames, zone-all-windows-in-frame) + (zone-delete-other-windows): New boolean options. + (zone-time-elapsed-while-zoning): New var. + (zone-start-hook, zone-finish-hook): New hooks. + + * : Preserve frame configuration + (zone-frame-configuration-alist): New Alist of cursor type and + window configuration per frame. + (zone--save-frame-configuration) + (zone--restore-frame-configuration) + (zone--restore-all-frame-configuration): New internal functions to + restore windows and frames. + + * : Rewrite/modularization of zone logic + (zone): Refactor function. + (zone--buffer-empty-p, zone--buffer-encrypted-p): New functions. + (zone--choose-window-and-buffer): New function. + (zone-ignored-buffers, zone--buffer-zoneable-p): New var and function. + (zone--build-zone-buffer): New function to create zone buffer. + (zone--prepare-frames): New function to configure multi-frames and -windows. + (zone--apologize-seconds, zone--apologize-for-failing): New var + and function when zone fails. + +2025-11-09 Juri Linkov <juri@linkov.net> + + * lisp/progmodes/flymake.el (flymake-start): Use 'when-let*' (bug#79796). + + This fixes the case when 'flymake-autoresize-margins' is nil, but + 'flymake--suitably-fringed-p' returns nil and still resizes margins. + +2025-11-09 Juri Linkov <juri@linkov.net> + + * lisp/vc/diff-mode.el (diff-changed-unspecified): Restore old colors. + + Restore yellow colors previously used in the 'diff-changed' face. + Copy color values from 'smerge-base'. This will distinguish them + from grey 'diff-file-header' and 'diff-hunk-header' in context diffs. + +2025-11-09 Juri Linkov <juri@linkov.net> + + * lisp/simple.el (minibuffer-default-add-shell-commands): Fix old bug. + + Don't treat the first element of the list of commands as a file name. + +2025-11-09 Eli Zaretskii <eliz@gnu.org> + + * src/w32fns.c (Fw32_system_idle_time): New function. + +2025-11-09 Michael Albinus <michael.albinus@gmx.de> + + Improve handling of Tramp internal shell scripts + + * doc/misc/tramp.texi (New operations): Mention tramp-expand-script. + + * lisp/net/tramp-sh.el (tramp-uudecode) + (tramp-readlink-file-truename, tramp-perl-file-truename) + (tramp-perl-file-name-all-completions) + (tramp-shell-file-name-all-completions) + (tramp-perl-file-attributes) + (tramp-perl-directory-files-and-attributes, tramp-perl-id) + (tramp-python-id, tramp-perl-encode, tramp-perl-decode) + (tramp-awk-encode, tramp-awk-decode) + (tramp-bundle-read-file-names): Indent script for better readability. + (tramp-perl-file-name-all-completions) + (tramp-shell-file-name-all-completions) + (tramp-ls-file-attributes, tramp-bundle-read-file-names): + Adapt docstring. + (tramp-shell-print-quoted-string): New defconst. + (tramp-shell-file-name-all-completions): Use "%b" format specifier. + (tramp-bundle-read-file-names): Use "%k" format specifier. + (tramp-sh-handle-file-name-all-completions): Don't send + `tramp-bundle-read-file-names'. + (tramp-expand-script): Adapt docstring. Apply always + `format-spec'. Handle also "%b" and "%k" format specifiers. + +2025-11-09 Sean Whitton <spwhitton@spwhitton.name> + + vc-do-command: Error when BUFFER is nil, untabify + + This function is shortly to gain support for separating standard + output and standard error from the child. Commit untabifying it + first to make the diff adding the new features more readable. + This will include documented support for BUFFER nil, meaning to + discard output. + + * lisp/vc/vc-dispatcher.el (vc-do-command): Untabify the source + in preparation for work on this function. If BUFFER is nil, + signal an error, in keeping with the current docstring. + Use ensure-list. Use equal not string= for string comparison. + +2025-11-09 Elías Gabriel Pérez <eg642616@gmail.com> + + hideshow: Rework previous changes + + * lisp/progmodes/hideshow.el (hs-grok-mode-type): Improve 'hs--set-variable'. + * lisp/progmodes/python.el (python-base-mode, python-ts-mode): + Provide backward-compatibility for older versions. + +2025-11-09 Eli Zaretskii <eliz@gnu.org> + + Fix a crash in 'merge_face_ref' + + * src/xfaces.c (get_lface_attributes): Avoid crashes if F is NULL. + This happens when 'face_inheritance_cycle' is for some reason + called for the default attributes of a face (which are applicable + to future frames). We avoid the crashes by not consulting face + remapping in that case, since face remapping is buffer-local, and + therefore cannot possibly affect face defaults. (Bug#79790) + +2025-11-08 Wilson Snyder <wsnyder@wsnyder.org> + + verilog-mode: Make recent change backward-compatible and update from package upstream. + + * lisp/progmodes/verilog-mode.el (verilog-mode): Support Emacs 31.1 + 'hs-forward-sexp-func in backward-compatible way. + (verilog-submit-bug-report) Remove key binding. + +2025-11-08 Elías Gabriel Pérez <eg642616@gmail.com> + + hideshow: Rework previous changes + + * lisp/progmodes/hideshow.el: Set default values of buffer-local variables. + (hs-inside-comment-p): Restore. + (hs--set-variable): Rename from 'hs--get-mode-value'. + (hs-grok-mode-type): Rework. + * lisp/nxml/nxml-mode.el: + * lisp/progmodes/f90.el: + * lisp/progmodes/fortran.el: + * lisp/progmodes/icon.el: + * lisp/progmodes/lua-mode.el: + * lisp/progmodes/python.el: + * lisp/progmodes/verilog-mode.el: + * lisp/progmodes/vhdl-mode.el: + * lisp/textmodes/mhtml-mode.el: + * lisp/textmodes/sgml-mode.el: + * lisp/treesit.el (treesit-major-mode-setup): Rename + 'hs-forward-sexp-func' to 'hs-forward-sexp-function', + 'hs-adjust-block-beginning' to 'hs-adjust-block-beginning-function', + 'hs-find-block-beginning-func' to 'hs-find-block-beginning-function', + 'hs-find-next-block-func' to 'hs-find-next-block-function', + 'hs-looking-at-block-start-p-func' to 'hs-looking-at-block-start-predicate', + 'hs-inside-comment-p-func' to 'hs-inside-comment-predicate'. + +2025-11-08 Steven Allen <steven@stebalien.com> + + Lookup cached basic-auth credentials with the correct key + + Credentials cached in 'url-basic-auth-storage' are keyed by + "server:port", but were being looked up by just "server" in + 'url-basic-auth'. + * lisp/url/url-auth.el (url-basic-auth): Lookup cached basic auth + credentials by "server:port". (Bug#79486) + + * test/lisp/url/url-auth-tests.el (url-auth-test-auth-retrieve-cache): + Check the digest auth test-cases cache retrieval test cases against the + basic auth logic. + +2025-11-08 Alexander Kuleshov <kuleshovmail@gmail.com> + + * lisp/progmodes/ld-script.el: Add 'PT_TLS' to 'ld-script-keywords'. + +2025-11-08 David Fussner <dfussner@googlemail.com> + + Fix package-vc to install multiple info manuals + + * lisp/emacs-lisp/package-vc.el (package-vc--build-documentation): + Take the name of the .info file from the name of the source file, + instead of from the name of the package. + +2025-11-08 Philip Kaludercic <philipk@posteo.net> + + Fix error messages when building docs for VC packages + + * lisp/emacs-lisp/package-vc.el (package-vc--build-documentation): + Use the buffer name of the output buffer instead of the buffer + name of the current buffer. + +2025-11-08 Philip Kaludercic <philipk@posteo.net> + + Allow 'package-upgrade-all' to upgrade built-in packages + + * lisp/emacs-lisp/package.el (package-upgrade-all): Respect + 'package-install-upgrade-built-in'. (Bug#79718) + +2025-11-08 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + a71ba898db8 ; Update the MinGW URLs in w32 FAQ and nt/INSTALL + e0ffcc655e5 No more color emoji issue on OpenBSD 7.8 and later (bug#7... + +2025-11-08 Eli Zaretskii <eliz@gnu.org> + + Adapt vc-test-misc to MS-Windows + + * test/lisp/vc/vc-tests/vc-test-misc.el (vc-test-exec-after-1) + (vc-test-exec-after-2, vc-test-exec-after-3) + (vc-test-exec-after-4, vc-test-exec-after-5): Fix shell commands + for MS-Windows: use "&" instead of ";" and don't use fractional + times for 'sleep', as some Windows ports of 'sleep' don't support + that. + +2025-11-08 Lester Longley <lester@ieee.org> (tiny change) + + Fix 'bind*' in 'cond*' + + * lisp/emacs-lisp/cond-star.el (cond*-non-exit-clause-substance): + Fix 'bind*' to match the documentation. (Bug#79247) + +2025-11-07 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Fix bug#79694 + +2025-11-07 Stefan Monnier <monnier@iro.umontreal.ca> + + (diff-refine-threshold): New custom var (bug#79546) + + Avoid getting stuck waiting for `diff` to refine big hunks. + + * lisp/vc/diff-mode.el (diff-refine-threshold): New custom var. + (diff--refine-hunk): Add arg `skip-if-large` and use that new var if + the arg says so. + (diff-refine-hunk): Add arg `skip-if-large`. + (diff-auto-refine-mode, diff-next/prevhunk, diff--font-lock-refined): + Use it. + +2025-11-07 Sean Whitton <spwhitton@spwhitton.name> + + New tests for vc-exec-after + + * test/lisp/vc/vc-tests/vc-test-misc.el + (vc-test--exec-after-wait): New macro. + (vc-test-exec-after-1, vc-test-exec-after-2) + (vc-test-exec-after-3, vc-test-exec-after-4) + (vc-test-exec-after-5): New tests. + +2025-11-07 Sean Whitton <spwhitton@spwhitton.name> + + vc-exec-after: Pass zero timeout to accept-process-output + + * lisp/vc/vc-dispatcher.el (vc-exec-after): Pass zero timeout to + accept-process-output. + Fix due to Spencer Baugh <sbaugh@janestreet.com>. + +2025-11-07 Sean Whitton <spwhitton@spwhitton.name> + + Replace recursive calls of vc-exec-after + + * lisp/vc/vc-dispatcher.el (vc-exec-after): Refactor so as to no + longer repeatedly add and remove the sentinel. Don't have two + different ways to set mode-line-process. Don't call + accept-process-output from the sentinel, because Emacs always + reads all available process output before calling sentinels. + +2025-11-07 Sean Whitton <spwhitton@spwhitton.name> + + Merge vc--process-sentinel into vc-exec-after + + * lisp/vc/vc-dispatcher.el (vc--process-sentinel, vc-exec-after): + Merge vc--process-sentinel into vc-exec-after. Tidy up. This + should not involve any functional changes; those are to follow. + +2025-11-07 Sean Whitton <spwhitton@spwhitton.name> + + server-eval-at: End request in trailing space + + This is for consistency with how emacsclient behaves. + + * lisp/server.el (server--process-filter-1): Improve assertion. + (server-eval-at): End request with trailing space. + +2025-11-07 Sean Whitton <spwhitton@spwhitton.name> + + vc-start-logentry: Disable log-edit-hook when finishing immediately + + * lisp/vc/vc-dispatcher.el (log-edit-hook): Declare. + (vc-start-logentry): Bind log-edit-hook to nil when finishing + the log edit immediately with a caller-supplied message. + +2025-11-07 Sean Whitton <spwhitton@spwhitton.name> + + Don't discard empty string arguments from emacsclient + + * lisp/server.el (server--process-filter-1): Don't discard empty + string arguments from emacsclient. + (server-eval-args-left): + * doc/emacs/misc.texi (emacsclient Options): + * etc/NEWS: Document the change. + +2025-11-07 Protesilaos Stavrou <info@protesilaos.com> + + Update modus-themes to version 5.1.0 + + * doc/misc/modus-themes.org (Build on top of the Modus themes): + Bump the version number. + (Acknowledgements): Include more names in the Acknowledgements + section. + * etc/themes/modus-themes.el (modus-themes--activate) + (modus-themes-get-all-known-themes, modus-themes-known-p) + (modus-themes--list-enabled-themes) + (modus-themes-get-current-theme) + (modus-themes--get-theme-palette-subr) + (modus-themes-get-theme-palette, modus-themes-faces) + (modus-themes-theme) + (modus-themes--with-colors-resolve-palette-sort) + (modus-themes-with-colors-subr, modus-themes-with-colors): + Ensure that the modus-themes-with-colors macro works the way it + did before, namely, 'let' binding the current theme's palette. + +2025-11-07 Po Lu <luangruo@yahoo.com> + + * configure.ac Remove patch for bugs in nproc that have been remediated. + +2025-11-06 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + + Update from Gnulib by running admin/merge-gnulib + +2025-11-06 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + + * admin/merge-gnulib (GNULIB_MODULES): Add stdio-windows. + Also, sort and remove duplicates. + +2025-11-06 Mattias Engdegård <mattias.engdegard@gmail.com> + + * test/src/comp-tests.el (setcarcdr): Don't mutate literals. + +2025-11-06 Sean Whitton <spwhitton@spwhitton.name> + + Fixes to echo area messages when creating Log Edit mode buffers + + * lisp/vc/log-edit.el (log-edit): Don't emit a message when + MODE. + * lisp/vc/vc-dispatcher.el (vc-start-logentry): Use '\\<>' to + simplify the code slightly. + +2025-11-06 Robert Pluim <rpluim@gmail.com> + + Improve error message for invalid key syntax + + * lisp/keymap.el: (keymap--compile-check, define-keymap--compile): + Mention 'key-valid-p' rather than 'kbd'. + +2025-11-06 Sean Whitton <spwhitton@spwhitton.name> + + project-compile: Ignore compile-command from vc-compilation-mode + + * lisp/progmodes/project.el (project-compile): Ignore + compile-command from vc-compilation-mode (bug#79658). + * lisp/vc/vc-dispatcher.el (vc-compilation-mode-hook): New + variable. + (vc-compilation-mode): Promote to its own derived mode. Don't + use define-derived-mode in order to preserve the BACKEND + argument to this function. Don't give it its own major mode + map, et cetera, for now. + +2025-11-06 Manuel Giraud <manuel@ledu-giraud.fr> + + No more color emoji issue on OpenBSD 7.8 and later (bug#79768) + + Since version OpenBSD 7.8, its FreeType library supports color + emoji out of the box. See + https://cvsweb.openbsd.org/xenocara/lib/freetype/include/freetype/config/ftoption.h?rev=1.32&content-type=text/x-cvsweb-markup. + +2025-11-06 Andrea Corallo <acorallo@gnu.org> + + * Fix native compiler for circular objects (bug#75135) + + * lisp/emacs-lisp/comp.el (comp--ssa-rename-insn): Fix circular objects. + +2025-11-06 Elías Gabriel Pérez <eg642616@gmail.com> + + hideshow: Rework previous changes + + * doc/emacs/programs.texi (Hideshow): + * etc/NEWS: Fix doc. + * lisp/progmodes/hideshow.el: Update Commentary Header. + (hs-modes-alist): Remove. + (hs--get-mode-value, hs-grok-mode-type): Rework. + * lisp/treesit.el (treesit-major-mode-setup): + * lisp/emacs-lisp/lisp-mode.el: + * lisp/nxml/nxml-mode.el: + * lisp/progmodes/cc-mode.el: + * lisp/progmodes/f90.el: + * lisp/progmodes/fortran.el: + * lisp/progmodes/hideshow.el: + * lisp/progmodes/icon.el: + * lisp/progmodes/js.el: + * lisp/progmodes/lua-mode.el: + * lisp/progmodes/python.el: + * lisp/progmodes/verilog-mode.el: + * lisp/progmodes/vhdl-mode.el: + * lisp/textmodes/bibtex.el: + * lisp/textmodes/mhtml-mode.el: + * lisp/textmodes/sgml-mode.el: + * lisp/treesit.el: Fix and rework previous changes. + +2025-11-06 Juri Linkov <juri@linkov.net> + + Don't move point when clicking on hideshow fringe/margin indicator + + * lisp/progmodes/hideshow.el (hs-indicator-mouse-toggle-hidding): + Enclose in 'hs-life-goes-on' (bug#79585). + Suggested by Elijah Gabe Pérez <eg642616@gmail.com>. + +2025-11-06 Eli Zaretskii <eliz@gnu.org> + + A better fix for recent changes in Gnulib's acl_entries.c + + See https://lists.gnu.org/archive/html/emacs-devel/2025-11/msg00145.html + for the related discussions. + * nt/mingw-cfg.site (ac_cv_func_acl_entries): Set to "yes" to + disable compilation of lib/acl_entries.c on MinGW. + + * lib/acl_entries.c (acl_entries): Revert last change, as it is no + longer needed. + +2025-11-05 Stefan Monnier <monnier@iro.umontreal.ca> + + (loaddefs-generate--emacs-batch): Chdir to `lisp-directory` + + Chdir once and for all at the beginning to simplify the code. + Eliminate some redundant `expand-file-name`s and fix a broken use + of `expand-file-name` where we passed a list as second arg. + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Rename DIR to + DIRS, to clarify that it can be a list. Use `ensure-list`. + Don't pass DIR(S) directly to `expand-file-name`. + Remove redundant `expand-file-name`. + (loaddefs-generate--excluded-files): Add sanity checks. + Return relative file names since `loaddefs-generate` will make them + absolute anyway. Simplify. + (loaddefs-generate--emacs-batch): Chdir to `lisp-directory` and + simplify the rest accordingly. + +2025-11-05 Stefan Monnier <monnier@iro.umontreal.ca> + + (load-history, lisp-directory): Don't `file-truename` + + This fixes problems in some cases of out-f-tree builds + (bug#79694, bug#62099, bug#64806). + + The use of true names in `load-history` dates back to to commits + 33d74677e739 and 6bb6da3ec173 by Alan Mackenzie <acm@muc.de> in + May 24 2006, but that was reverted by Paul Eggert's commit + dff4f9c759f5 on Sep 18 2019. + + * lisp/startup.el (command-line): Don't `file-truename` `lisp-directory`. + * src/lread.c (syms_of_lread) <load-history>: Adjust docstring, + to reflect the fact that the files there aren't "true names". + + * doc/lispref/loading.texi (Hooks for Loading): Adjust accordingly. + Also massage the text to reflect the fact that nowadays features are + more common than file names as arguments to `with-eval-after-load`. + +2025-11-05 Juri Linkov <juri@linkov.net> + + * lisp/image.el (image-supported-file-p): Fix autoload cookie (bug#79764). + + * lisp/emacs-lisp/icons.el (icons--create): + * lisp/mail/rmailmm.el (rmail-mime-set-bulk-data): + Remove unnecessary '(fboundp 'image-supported-file-p)'. + +2025-11-05 Mattias Engdegård <mattias.engdegard@gmail.com> + + Unify constants that are equal-including-properties in compiler + + This results in a healthy reduction of .elc file size (> 300 KiB saved) + as well as less memory use. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-get-constant): + Use 'equal-including-properties' as equivalence relation for all + constants, not just strings. + * etc/NEWS: Mention it. Strictly speaking it's not an incompatible + change because it doesn't break any earlier promises, but for people + having code that made incorrect assumptions, this provides a useful + explanation. + +2025-11-05 Sean Whitton <spwhitton@spwhitton.name> + + Further document cond*'s bind-and*, document cond-let* discussion + + * doc/lispref/control.texi (Conditionals): Pointer to cond*'s + bind-and* clauses for Lisp programmers looking for a cond-let*. + (cond* Macro): Document bind-and* clauses. + * lisp/subr.el: Comment summarizing recent discussion, for + future Emacs developers wondering about cond-let*. + +2025-11-05 Eli Zaretskii <eliz@gnu.org> + + Unbreak MinGW build broken by Gnulib merge + + * lib/acl_entries.c (acl_entries): Make it no-op for MinGW, as it + was before. Without this, acl_entries doesn't compile on MinGW. + + * nt/gnulib-cfg.mk (OMIT_GNULIB_MODULE_issymlink) + (OMIT_GNULIB_MODULE_issymlinkat): Disable these Gnulib modules. + +2025-11-05 Elías Gabriel Pérez <eg642616@gmail.com> + + Add option to auto-refresh the lossage buffer. (Bug#79732) + + * lisp/help.el (view-lossage-auto-refresh): New user option. + (help--lossage-update): New variable. + (help--lossage-make-recent-keys, help--refresh-lossage-buffer): + New functions. + (view-lossage): Rework. + * doc/emacs/help.texi (Misc Help): + * etc/NEWS: Document change. + +2025-11-05 Juri Linkov <juri@linkov.net> + + * test/lisp/emacs-lisp/map-ynp-tests.el: Use 'eval-expression-debug-on-error'. + + (test-map-ynp-kmacro): Bind 'eval-expression-debug-on-error' to nil + instead of silencing 'backtrace-print'. + +2025-11-05 Po Lu <luangruo@yahoo.com> + + Fix compilation on Android SDK 20 and earlier + + * configure.ac (gl_PREREQ_NPROC): Disable ac_cv_header_mntent_h + if on Android and setmntent is not declared. + +2025-11-05 Po Lu <luangruo@yahoo.com> + + Fix the Android port + + * configure.ac (gl_cv_onwards_func_tzalloc): Don't disable on + Android SDK 35. + + * src/conf_post.h (tzalloc): Don't override Gnulib-selected + identifier on Android SDK 35. + +2025-11-05 Po Lu <luangruo@yahoo.com> + + Fix the MS-DOS port and reading of symlink targets + + * doc/misc/eglot.texi (Eglot Features): Add comma after @xref. + + * msdos/sed2v2.inp (GNULIB_ISSYMLINK): Define to 1. + + * msdos/sedlibmk.inp (HAVE_RANDOM_H): Undefine, in line with its + deletion from gnulib.mk. + (GL_GNULIB_STRINGEQ): Define to 1. + + * src/msdos.c (careadlinkat): NULL terminate at the end of the + data written, not one character beyond the same. + +2025-11-04 Paul Eggert <eggert@cs.ucla.edu> + + Simplify tzfree use + + * src/timefns.c (Fdecode_time, Fencode_time) + (Fcurrent_time_string): Do not bother to preserve errno around + tzfree calls, as Gnulib now does that for us. + +2025-11-04 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + + * admin/merge-gnulib (GNULIB_MODULES): Add stringeq. + With current Gnulib it is already present as in indirect dependency; + listing it here because Emacs now depends on it directly. + * lib-src/ebrowse.c, lib-src/etags.c: + (streq): Remove, as Gnulib defines this now. + * lib/fseterr.c, lib/fseterr.h, lib/issymlink.c, lib/issymlink.h: + * lib/issymlinkat.c, lib/stdio-consolesafe.c, lib/string.c: + * m4/fseterr.m4, m4/gettext_h.m4, m4/stringeq.m4: + New files from Gnulib. + * src/conf_post.h (tzfree) [__ANDROID_API__ >= 35]: Remove. + +2025-11-04 Philip Kaludercic <pkal@posteo.net> + + Add support for 'bind-and*' patterns to 'cond*' + + * lisp/emacs-lisp/cond-star.el (cond*): Document 'bind-and*'. + (bind-and*): Add a stub to raise an error if 'bind-and*' is used + outside of 'cond*'. + (cond*-convert-condition): Implement a new type of condition. + +2025-11-04 Juri Linkov <juri@linkov.net> + + Use 'read-char-choice' in 'ask-user-about-lock' (bug#79664) + + * lisp/userlock.el (ask-user-about-lock): Use 'read-char-choice' + instead of 'read-char'. + + * lisp/subr.el (read-char-choice-with-read-key): Add fallback + cond-branch to show a message with required keys. + +2025-11-04 Juri Linkov <juri@linkov.net> + + * test/lisp/emacs-lisp/map-ynp-tests.el: Silence backtrace. + + (test-map-ynp-kmacro): Ignore 'backtrace-print' that prints + unrequested backtrace (bug#67836). + +2025-11-04 Elías Gabriel Pérez <eg642616@gmail.com> + + hideshow: Rewrite 'hs-special-modes-alist' + + Rewrite the format in 'hs-special-modes-alist' to make easier to + exclude some values, add support for settings inheritance + according to current major mode and parents, and support string + hiding for lisp modes. + + Bug#79671 + + * lisp/progmodes/hideshow.el (hs-modes-alist): New variable. + (hs-special-modes-alist): Mark as obsolete. + (hs-forward-sexp-func, hs-adjust-block-beginning) + (hs-find-block-beginning-func, hs-find-next-block-func) + (hs-looking-at-block-start-p-func): Set default values to nil. + (hs-inside-comment-p): Remove function. + (hs-adjust-block-end, hs-treesit-things): New buffer-local + variables. + (hs-block-positions): Minor updates. + (hs--get-mode-value): New function. + (hs-grok-mode-type): Rewrite. + * lisp/progmodes/f90.el (hs-special-modes-alist): + * lisp/progmodes/fortran.el (hs-special-modes-alist): + * lisp/progmodes/icon.el (icon-mode): + * lisp/progmodes/lua-mode.el (lua-mode): + * lisp/progmodes/python.el (python-base-mode): + * lisp/progmodes/verilog-mode.el (verilog-mode): + * lisp/progmodes/vhdl-mode.el (vhdl-hs-minor-mode): Rewrite + settings. + * lisp/progmodes/python.el (python-ts-hs-adjust-block-end-fn): + New function. + * lisp/treesit.el (treesit-hs-block-end) + (treesit-hs-find-block-beginning, treesit-hs-find-next-block) + (treesit-hs-looking-at-block-start-p): Minor updates. + * doc/emacs/programs.texi (Hideshow): + * etc/NEWS: Document changes. + +2025-11-04 Mattias Engdegård <mattias.engdegard@gmail.com> + + Improved examples for documentation of 'eq' + + * doc/lispref/objects.texi (Equality Predicates): + Remove incorrect and/or misleading examples, add new ones, + and display them more compactly to save space. + +2025-11-04 Martin Rudalics <rudalics@gmx.at> + + Fix thinko in 'delete-other-frames' + + * lisp/frame.el (delete-other-frames): In second round make sure + the candidate frame has not been deleted in the first round to + avoid that 'frame-terminal' and friends throw an error. + +2025-11-03 Eli Zaretskii <eliz@gnu.org> + + Fix compilation errors in xsettings.c + + * src/xsettings.c (store_config_changed_event, dpyinfo_valid) + (store_font_name_changed, store_tool_bar_style_changed): Tweak + preprocessor conditions to satisfy all builds without warnings. + +2025-11-03 Mattias Engdegård <mattias.engdegard@gmail.com> + + Don't assume that literal constants are eq-unique in tests + + * test/lisp/emacs-lisp/cl-lib-tests.el (cl-test-ldiff): + * test/lisp/emacs-lisp/seq-tests.el (test-seq-union): + These tests relied on literal constants being unique in the sense of + 'eq', and would fail if they stop being that (already the case for + strings). + +2025-11-03 Yuan Fu <casouri@gmail.com> + + Change tree-sitter query predicate names (bug#79687) + + Latest tree-sitter library throws a syntax error if the + predicate names in a query don't end with question mark. So we + made the following change: + + :equal changed to :eq? + :match changed to :match? + :pred changed to :pred? + + Old names are transparently converted to new names when + expanding patterns. + + :match predicate can now take the regexp and the node in any + order: it'll figure out which is which automatically. This way + it works with current Emacs convention (regexp first), as well + as tree-sitter's match convention (regexp second). + + * doc/lispref/parsing.texi (Pattern Matching): Update manuel to + use new predicate names. + * src/treesit.c: + (Ftreesit_pattern_expand): + (Ftreesit_query_expand): + (treesit_predicate_match): + (treesit_eval_predicates): + (syms_of_treesit): Use new predicate names. + * test/src/treesit-tests.el (treesit-query-api): Update test. + +2025-11-02 Yuan Fu <casouri@gmail.com> + + Fix fontification for var in java-ts-mode (bug#79626) + + * lisp/progmodes/java-ts-mode.el: + (java-ts-mode--font-lock-settings): Add font-lock rule for "var". + +2025-11-02 Eli Zaretskii <eliz@gnu.org> + + Fix PGTK build without HSETTINGS, broken by recent changes + + * src/xsettings.c (store_tool_bar_style_changed): Compile only + under HAVE_GSETTINGS. + (xg_get_system_dark_mode): Compile only under HAVE_GSETTINGS. + * src/gtkutil.c (xg_set_gtk_theme_dark_mode) + (xg_update_dark_mode_for_all_displays, xg_set_initial_dark_mode): + Only compile when HAVE_GSETTINGS is defined. + (xg_create_frame_widgets): Call 'xg_set_initial_dark_mode' only + under HAVE_GSETTINGS. + (xg_create_frame_outer_widgets): Remove unused code. Call + 'xg_set_initial_dark_mode' only under HAVE_GSETTINGS. + * src/pgtkselect.c (pgtk_reply_selection_request): Remove unused + variable. + +2025-11-02 Martin Rudalics <rudalics@gmx.at> + + Handle resizing of fullscreen frames more consistently (Bug#79704) + + * src/frame.c (adjust_frame_size): Honor new option + 'alter-fullscreen-frames'. + (syms_of_frame) <alter-fullscreen-frames>: New option to + maintain consistent state when attempting to resize fullscreen + frames. Default to 'inhibit' for NS builds because these + resized the frame while leaving the 'fullscreen' parameter alone + (Bug#79704). + (syms_of_frame) <Qinhibit>: Define symbol. + * lisp/cus-start.el (standard): Add customization options for + 'alter-fullscreen-frames' + * doc/lispref/frames.texi (Frame Size): Describe new option + 'alter-fullscreen-frames'. + * etc/NEWS: Call out new option 'alter-fullscreen-frames'. + +2025-11-02 Juri Linkov <juri@linkov.net> + + * lisp/simple.el (previous-line-or-history-element): Fix off-by-one error. + + (bug#79746) + +2025-11-02 Ahmed Khanzada <me@enzu.ru> + + Automatically toggle between dark and light mode PGTK widgets + + * src/gtkutil.h: Declare 'xg_set_gtk_theme_dark_mode', + 'xg_update_dark_mode_for_all_displays', + 'xg_set_initial_dark_mode'. + * src/gtkutil.c (xg_set_gtk_theme_dark_mode): Toggle PGTK dark mode. + (xg_update_dark_mode_for_all_displays): Toggle PGTK dark mode for all + displays. + (xg_set_initial_dark_mode): Determine PGTK dark mode preference and set. + (xg_create_frame_widgets): Set PGTK dark mode preference for widgets. + (xg_create_frame_outer_widgets): Set PGTK dark mode preference for outer + widgets. + * src/xsettings.h: Declare 'xg_get_system_dark_mode'. + * src/xsettings.c (something_changed_gsettingsCB): Update PGTK dark mode + setting. + (xg_get_system_dark_mode): Determine PGTK dark mode preference. + GSETTINGS_COLOR_SCHEME: Defined and set to "color-scheme". + * etc/NEWS: Document automatic dark mode toggling. + (Bug#79689) + +2025-11-01 Philip Kaludercic <pkal@posteo.net> + + Fix markup toggling in rcirc + + (rcirc-markup-attributes): Delete markup codes straight after + processing it, to correctly handle toggling codes. E.g. when + processing the message "one ^Btwo^B three", we previously + recognised the first interval "^Btwo^B" and moved over the ^B. + Searching for the next range to markup, we would now falsely + recognise "^B three" to be another markup range, instead of it + being the negative toggle. By removing the processed codes, we + avoid this issue. This reverts the functionality removed in + 946ceca2, and therefore also re-adds the check to make an + exception to removing a ^O as that code can terminate multiple + markup sequences. (Bug#57383) + +2025-11-01 Philip Kaludercic <pkal@posteo.net> + + Check if 'hash-table-contains-p' is available in map.el + + * lisp/emacs-lisp/map.el (map-contains-key): Hide old + implementation prior to f60fc128 behind a `fboundp', as the + package is distributed on ELPA and should be backwards + compatible to Emacs 26. (Bug#79711) + +2025-11-01 Spencer Baugh <sbaugh@janestreet.com> + + * test/lisp/emacs-lisp/map-ynp-tests.el: New file (bug#67836). + +2025-11-01 Juri Linkov <juri@linkov.net> + + 'map-y-or-n-p' now uses the minibuffer to read a char (bug#79664) + + * lisp/emacs-lisp/map-ynp.el (map-y-or-n-p): Use the 'read-key' + branch only when the variable 'y-or-n-p-use-read-key' is non-nil. + Add a new cond-branch to read from the minibuffer. + Add a special case when def is nil in a kmacro in batch mode (bug#67836). + + * test/lisp/files-tests.el (files-tests--with-buffer-offer-save): + Let-bind 'y-or-n-p-use-read-key' to t. + +2025-11-01 Juri Linkov <juri@linkov.net> + + 'read-multiple-choice' now uses the minibuffer to read a char (bug#79664) + + * doc/lispref/commands.texi (Reading One Event): Mention + 'read-char-choice-use-read-key'. + + * lisp/emacs-lisp/rmc.el (rmc--show-help): Show non-selected + resized Help window at bottom. Inhibit useless message. + Remove unnecessary call to 'pop-to-buffer'. + (read-multiple-choice): Call 'read-multiple-choice--from-minibuffer' + when 'read-char-choice-use-read-key' is nil. + (read-multiple-choice--from-minibuffer): New function. + + * test/lisp/emacs-lisp/rmc-tests.el (test-rmc--with-minibuffer-setup): + New macro. + (test-read-multiple-choice, test-read-multiple-choice-help): + Test both values of 'read-char-choice-use-read-key'. + +2025-11-01 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 0974418f2a8 Improve and correct documentation of 'font-lock-keywords-... + +2025-11-01 Gautier Ponsinet <gautier@gautierponsinet.xyz> + + Fix a typo in newst-backend.el + + * lisp/net/newst-backend.el (newsticker--parse-text-container): Fix a + typo in the docstring. (Bug#79747) + +2025-11-01 Protesilaos Stavrou <info@protesilaos.com> + + Update to modus-themes version 5.0.0 + + The release notes: <https://protesilaos.com/codelog/2025-11-01-emacs-modus-themes-5-0-0/>. + +2025-11-01 Po Lu <luangruo@yahoo.com> + + Restore compatibility with Texinfo 4.13 + + * doc/emacs/vc1-xtra.texi (Other Working Trees): Remove + @indentedblock; after reading the node twice I could not + understand why the paragraphs so formatted must have been thus. + + * doc/misc/cl.texi (Derived types): Rename node to Derived + Types, and insert the same into the menu. + +2025-10-31 Sean Whitton <spwhitton@spwhitton.name> + + New *-revisions-from-end VC backend API functions (bug#79408) + + * lisp/vc/vc-git.el (vc-git-delete-revisions-from-end) + (vc-git-uncommit-revisions-from-end): + * lisp/vc/vc-hg.el (vc-hg--assert-rev-on-current-branch) + (vc-hg--reset-back-to, vc-hg-delete-revisions-from-end) + (vc-hg-uncommit-revisions-from-end): New functions. + * lisp/vc/vc.el: Specify delete-revisions-from-end and + uncommit-revisions-from-end backend API functions (bug#79408). + +2025-10-31 David Ponce <da_vid@orange.fr> + + lisp/emacs-lisp/cl-*.el: Minor changes accumulated during new API design + + * lisp/emacs-lisp/cl-macs.el (cl-deftype): Support dispatch on + types that take arguments, as long as they can be used without arguments. + + * lisp/emacs-lisp/cl-generic.el (cl--generic-derived-mode-specializers): + Rename from `cl--generic-derived-specializers` to clarify it's about + derived modes and not derived types. + (cl--generic-derived-mode-generalizer): Adjust accordingly and rename + from `cl--generic-derived-generalizer` for the same reason. + Ignore additional args in the tagcode function. + (cl-generic-generalizers) <derived-mode>: Adjust accordingly. + + * lisp/emacs-lisp/macroexp.el (macroexp--dynamic-variable-p): Simplify. + +2025-10-31 David Ponce <da_vid@orange.fr> + + cl-extra.el: Use the new API to speed up dispatch on derived types + + * lisp/emacs-lisp/cl-extra.el (cl--types-of-memo): Delete var. + (cl--derived-type-specializers-memo): New var. + (cl-types-of): Delete function. + (cl--derived-type-specializers): New function. + (cl--derived-type-dispatch-list): Delete var. + (cl--derived-type-generalizer): Use the `:need-specializers` API instead. + (cl--derived-type-generalizers): Don't fill + `cl--derived-type-dispatch-list` any more. + + * lisp/emacs-lisp/cl-preloaded.el (cl--derived-type-list): Delete var. + (cl--define-derived-type): Don't add type to `cl--derived-type-list`. + + * test/lisp/emacs-lisp/cl-extra-tests.el (cl-types-test): Adjust. + +2025-10-31 Stefan Monnier <monnier@iro.umontreal.ca> + + (cl-generic-define-generalizer): Add new API + + Sometimes, the computation of the tag (or the computations of + the list of specializers corresponding to a tag) can be sped up + if we know the set of specializers we're looking for. + + So we add a new API for both the TAGCODE-FUNCTION and SPECIALIZERS-FUNCTION + that lets them receive the set of specializers they need to consider (or any + information they can precompute from that), i.e. the set of specializers + handled by the same generalizer currently used by the generic function + for the the specific argument on which we're currently dispatching. + + * lisp/emacs-lisp/cl-generic.el (cl-generic-define-generalizer): + Document new API. + (cl--generic-collect-specializers, cl--generic-filter-specializers) + (cl--generic--tagcode-with-specializers): New helper functions. + (cl--generic-get-dispatcher): Use them to support new API. + +2025-10-31 Eli Zaretskii <eliz@gnu.org> + + Avoid infinite recursion in 'face_inheritance_cycle' + + * src/xfaces.c (face_inheritance_cycle) + (Finternal_set_lisp_face_attribute): Prevent infinite recursion if + a face is defined to inherit from itself (whaaat? how??!). + +2025-10-31 Martin Rudalics <rudalics@gmx.at> + + Fix a bug in Fcombine_windows + + * src/window.c (window_set_parent_and_normal_sizes): New function. + (Fcombine_windows): Improve doc-string. Use wset_... functions. + Call window_set_parent_and_normal_sizes to fix a bug where it + failed to assign new normal sizes. + (Funcombine_window): Call window_set_parent_and_normal_sizes. + +2025-10-31 Yuan Fu <casouri@gmail.com> + + Revert "Use cached compiled tree-sitter queries for range settings" + + This reverts commit e28ec7627148e523e215ee672b3dda40f1a6ad44. + + * lisp/treesit.el (treesit-range-rules): Use treesit-query-compile. + +2025-10-30 Steven Allen <steven@stebalien.com> + + More reliably check if a frame is the daemon's initial frame + + Frames created when Emacs is running as a daemon may not have the + "client" frame parameter set, e.g., when: + + 1. Created from the user's init file. + 2. Created via "emacsclient -e" (e.g., "emacsclient -e '(make-frame)'"). + + The "client" parameter simply indicates that the frame was created by + emacsclient directly (or recursively from another emacsclient frame). + + Instead, this commit checks if (a) Emacs is running as a daemon and (b) + the target frame is the "terminal frame". When run as a daemon, Emacs's + terminal frame is always the daemon's initial frame. + + * lisp/desktop.el (desktop-clear): + (desktop-restoring-frameset-p): + * lisp/display-fill-column-indicator.el + (display-fill-column-indicator--turn-on): + * lisp/frame.el (frame-notice-user-settings): + * lisp/obsolete/linum.el (linum-on): + * lisp/progmodes/flymake.el (flymake-start): + * lisp/tab-bar.el (tab-bar--update-tab-bar-lines): Fix the "is this the + initial daemon-frame" checks. (Bug#79686) + +2025-10-30 Spencer Baugh <sbaugh@janestreet.com> + + Optimize PCM regex to not contain adjacent wildcards + + When multiple wildcards occur in a PCM pattern, + completion-pcm--pattern->regex previously would generate one + instance of [^z-a]* for each of those wildcards, even if the + wildcards were adjacent and could therefore be matched by a + single [^z-a]*. This can make regex matching performance much + worse. For example, with a minibuffer containing "*/" with + point at the start, completion-pcm-all-completions would take + several seconds to match in project-find-file in the Emacs repo. + + Now, we run completion-pcm--pattern->segments on the pattern + first, which adds additional structure to the pattern, including + consolidating adjacent regexes into a single sublist. Then + completion-pcm--segments->regex generates a single regex + wildcard for each of those pattern wildcards. As a consequence, + we need to update the callers of completion-pcm--pattern->regex + which pass non-nil GROUP. This provides a substantial + performance improvement in various edge cases. + + * lisp/minibuffer.el (completion-pcm--pattern->segments) + (completion-pcm--segments->regex): Add. (bug#79693) + (completion-pcm--pattern->regex) + (completion-pcm--merge-completions): Call pattern->segments and + segments->regex. + (completion-pcm--pattern-point-idx): Delete. + (completion-pcm--segments-point-idx): Add. + (completion-pcm--hilit-commonality): Call + completion-pcm--segments-point-idx to find the submatch + containing point. + * test/lisp/minibuffer-tests.el (completion-pcm-test-5): Add + more tests of highlighting the first difference. + (completion-pcm-test-pattern->regex): Add tests showing the + regex form of PCM patterns. + +2025-10-30 Mattias Engdegård <mattias.engdegard@gmail.com> + + * lisp/emacs-lisp/range.el (range-add-list): Don't mutate argument. + + It's clear from the doc strings that this function isn't meant + to mutate its arguments. + +2025-10-30 Mattias Engdegård <mattias.engdegard@gmail.com> + + Faster constant pool string searching + + * lisp/emacs-lisp/bytecomp.el (byte-compile-get-constant): + No reason not to use 'assoc' to search for strings as well. + Previously we kept searching even after having found the string! + +2025-10-30 Mattias Engdegård <mattias.engdegard@gmail.com> + + Define compiler macros for /=, atom and nlistp + + Calls to these functions were previously rewritten in terms of other + functions both in the optimiser and during codegen, for no good reason. + + This also resulted in poor diagnostics: wrong-arity calls to 'atom' and + 'nlistp' produced doubled but slightly-different warnings, and no + warnings at all for '/='. + + Using compiler macros fixes the problems. The generated code is the same. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-negated) + (byte-compile-negation-optimizer): Replace with... + (bytecomp--define-negated): ...this compiler macro defining macro. + +2025-10-30 Mattias Engdegård <mattias.engdegard@gmail.com> + + Fix numeric comparison bug when optimisation is disabled + + * lisp/emacs-lisp/bytecomp.el (byte-compile-cmp): + Don't assume that N-ary comparisons have been normalised, which is done + in the optimiser. Reported by Pip Cet. + +2025-10-30 Mattias Engdegård <mattias.engdegard@gmail.com> + + Remove unused byte-compile-eval-before-compile + + * lisp/emacs-lisp/bytecomp.el (byte-compile-eval-before-compile): + This function has been unused since 2012 (e703069f9c). + +2025-10-30 Protesilaos Stavrou <info@protesilaos.com> + + Make 'link' not inherit 'button' in modus-themes.el (bug#79672) + + * etc/themes/modus-themes.el (modus-themes-faces): Apply the + font attributes directly. + +2025-10-30 Yuan Fu <casouri@gmail.com> + + Skip unknown language for code block in markdown-ts-mode (bug#79670) + + * lisp/textmodes/markdown-ts-mode.el: + (markdown-ts--convert-code-block-language): Return nil if the + langauge doesn't have a corresponding major mode in + markdown-ts-code-block-source-mode-map. + +2025-10-30 Yuan Fu <casouri@gmail.com> + + Tree-sitter range language function can return nil (bug#79670) + + * lisp/treesit.el (treesit-query-range-by-language): Allow + LANGUAGE-FN to return nil. + (treesit-range-rules): Update docstring. + +2025-10-30 Yuan Fu <casouri@gmail.com> + + Use cached compiled tree-sitter queries for range settings + + * lisp/treesit.el (treesit-range-rules): Use + treesit--compile-query-with-cache. + +2025-10-29 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/custom.el (custom-set-minor-mode): Load the mode more lazily + +2025-10-29 Michael Albinus <michael.albinus@gmx.de> + + Adapt `tramp-test49-external-backend-function' + + * test/lisp/net/tramp-tests.el (tramp-test49-external-backend-function): + Extend test. + +2025-10-29 Michael R. Mauger <michael@mauger.com> + + lisp/comint.el: Fix `comint-write-input-ring' context + + (comint-write-input-ring): Use `comint-input-ring-separator' in the + context of the caller, not the output buffer + +2025-10-28 F. Jason Park <jp@neverwas.me> + + Fix regression involving erc-channel-user accessors + + * etc/ERC-NEWS: New section for ERC 5.6.2 and new entry mentioning + slight change in `erc-channel-user' accessor behavior. + * lisp/erc/erc-common.el (erc-channel-user): Change type for status slot + to natnum from integer. + * lisp/erc/erc.el (erc-channel-user-signal-if-status-unknown): New + variable. + (erc--define-channel-user-status-compat-getter): Only use fallback in + Non-ERC buffers because "obviously" a status flag is unusable if the + server doesn't advertise it or, rather, advertises nonsupport via its + absence. This regression was introduced in ERC 5.6. + (erc-channel-begin-receiving-names): Sharp-quote function name. + (erc--get-prefix-flag): Mention in doc that a return value of nil can + also mean the status flag is not supported by the server. + * test/lisp/erc/erc-tests.el (erc--parsed-prefix): Show that it returns + nil in a non-ERC buffer. + (erc-tests--make-combinations) + (erc-tests--with-channel-user-status-accessors): New functions. + (erc-channel-user/status-accessors/solo/default) + (erc-channel-user/status-accessors/solo/ov) + (erc-channel-user/status-accessors/multi/default) + (erc-channel-user/status-accessors/multi/ov): New tests. + (Bug#67220) + +2025-10-28 F. Jason Park <jp@neverwas.me> + + Change ERC version to 5.6.2-git + + * doc/misc/erc.texi: Change ERCVER to 5.6.2. + * lisp/erc/erc.el (erc-version): Change working version to 5.6.2-git. + Do the same for the package Version header and the + `customize-package-emacs-version-alist' mapping. + +2025-10-27 Sean Whitton <spwhitton@spwhitton.name> + + New delete-revision VC backend API function (bug#79408) + + * lisp/vc/vc-git.el (vc-git--assert-revision-on-branch): New + function, factored out. + (vc-git-revision-published-p): Use it. + (vc-git-delete-revision): + * lisp/vc/vc-hg.el (vc-hg-delete-revision): New functions. + * lisp/vc/vc.el: Specify delete-revision backend API function + (bug#79408). + +2025-10-27 Sean Whitton <spwhitton@spwhitton.name> + + vc-log-incoming, vc-log-outgoing: Pass nil UPSTREAM-LOCATION + + This should have been updated along with the recent change to + make the UPSTREAM-LOCATION argument to the incoming-revision + backend API function optional. + + * lisp/vc/vc.el (vc-log-incoming, vc-log-outgoing): Pass nil, + not the empty string, as the default UPSTREAM-LOCATION. + +2025-10-27 Eli Zaretskii <eliz@gnu.org> + + Avoid face inheritance cycles + + * src/xfaces.c (face_inheritance_cycle): New function. + (Finternal_set_lisp_face_attribute): Signal an error if the + ':inherit' attribute of a face is modified in a way that will + cause it to inherit from itself. (Bug#79672) + + * test/src/xfaces-tests.el (xfaces-test-circular-inheritance): New + test. + + * etc/NEWS: Announce the incompatible change. + +2025-10-26 Sean Whitton <spwhitton@spwhitton.name> + + New revision-published-p VC backend API function (bug#79408) + + * lisp/vc/vc-git.el (vc-git-revision-published-p): New function. + (vc-git--assert-allowed-rewrite): Use it. + * lisp/vc/vc-hg.el (vc-hg-revision-published-p): New function. + * lisp/vc/vc.el: Specify revision-published-p backend API + function (bug#79408). + +2025-10-26 Stefan Monnier <monnier@iro.umontreal.ca> + + (cl-defstruct): Use `define-inline` + + * lisp/emacs-lisp/inline.el (define-inline): Add `noinline` declaration. + * doc/lispref/functions.texi (Inline Functions): Mention it. + + * lisp/emacs-lisp/cl-macs.el (cl--do-arglist): Avoid %s for lists in + format string. + (cl-dolist, cl-dotimes): Remove obsolete optimization. + (cl-defstruct): Use `define-inline` instead of `cl-defsubst` for accessors. + +2025-10-26 Michael Albinus <michael.albinus@gmx.de> + + Fix tramp-add-external-operation + + * lisp/net/tramp.el (tramp-add-external-operation): Check + `default-directory' if `(car args)' is a relative file name, or nil. + +2025-10-25 Stefan Monnier <monnier@iro.umontreal.ca> + + elisp-scope.el: Require `cl-lib` + + * lisp/emacs-lisp/elisp-scope.el: Require `cl-lib`. + [ We could instead replace the `cl-case`s with `pcase`. ] + (elisp-scope-cl-lambda-rest, elisp-scope-cl-lambda-key): Simplify. + +2025-10-25 Eli Zaretskii <eliz@gnu.org> + + Improve and correct documentation of 'font-lock-keywords-only' + + * lisp/font-lock.el (font-lock-keywords-only): + * doc/lispref/modes.texi (Syntactic Font Lock): Improve + documentation of 'font-lock-keywords-only'. (Bug#79692) + +2025-10-25 Mattias Engdegård <mattias.engdegard@gmail.com> + + * lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): Fix mistake + +2025-10-25 Stephen Berman <stephen.berman@gmx.net> + + Fix Tramp support of GVFS built without FUSE + + * lisp/net/tramp-gvfs.el (tramp-gvfs-enabled): Add check for + running process "gvsd", since GVFS may be built without FUSE. + +2025-10-25 Amin Bandali <bandali@gnu.org> + + Recompute calendar-holidays when its components are set (bug#79629) + + * lisp/calendar/holidays.el (holidays--set-calendar-holidays): + New function for recomputing the 'calendar-holidays' user option + for use as the :set function of the following user options, + using 'custom-reevaluate-setting' to avoid overwriting the + user's customization of 'calendar-holidays'. + (holiday-general-holidays, holiday-oriental-holidays) + (holiday-local-holidays, holiday-other-holidays) + (holiday-hebrew-holidays, holiday-christian-holidays) + (holiday-islamic-holidays, holiday-bahai-holidays) + (holiday-solar-holidays): Use 'holidays--set-calendar-holidays' + as the :set function to recompute 'calendar-holidays' as needed. + +2025-10-24 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc-git.el (vc-git-branches): Use 'git for-each-ref'. + +2025-10-24 Sean Whitton <spwhitton@spwhitton.name> + + Make UPSTREAM-LOCATION argument to incoming-revision optional + + Using an empty string to mean the location from which vc-update + would pull was inherited from the old incoming/outgoing + functions, but we have opportunity to simplify things for this + new one. + + * lisp/vc/vc-bzr.el (vc-bzr-incoming-revision): + * lisp/vc/vc-git.el (vc-git-incoming-revision): + * lisp/vc/vc-hg.el (vc-hg-incoming-revision): + * lisp/vc/vc.el (vc-diff-incoming, vc-diff-outgoing) + (vc-diff-outgoing-base, vc--incoming-revision): Make + UPSTREAM-LOCATION parameter optional. Use nil, rather than an + empty string, to mean the default. + +2025-10-24 Mattias Engdegård <mattias.engdegard@gmail.com> + + Fix peephole optimiser bug for symbolp + + * lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): + Don't sink 'symbolp' past 'unbind'; it's unsafe. + +2025-10-24 Mattias Engdegård <mattias.engdegard@gmail.com> + + Move some constants into the peephole optimiser + + * lisp/emacs-lisp/byte-opt.el (byte-tagref-ops, byte-conditional-ops) + (byte-after-unbind-ops, byte-compile-side-effect-and-error-free-ops) + (byte-compile-side-effect-free-ops): + Move into the constant pool... + * lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): ...here, + bringing comments up to date. + +2025-10-24 Yuan Fu <casouri@gmail.com> + + Remove cached font-lock settings in java-ts-mode + + After the changes made in bug#79363, we don't need the cache anymore. + + * lisp/progmodes/java-ts-mode.el: + (java-ts-mode--font-lock-settings-cached): Remove variable. + (java-ts-mode--font-lock-settings): Remove use of the variable. + +2025-10-24 Yuan Fu <casouri@gmail.com> + + Fix field access fontification in java-ts-mode (bug#79625) + + * lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings): + Remove the field_access rule. + +2025-10-24 Yuan Fu <casouri@gmail.com> + + Fix treesit-admin.el after recent treesit.el change + + * admin/tree-sitter/treesit-admin.el: + (treesit-admin--verify-major-mode-queries): + (treesit-admin--validate-mode-lang): + (treesit-admin--mode-languages): Use + treesit-font-lock-setting-language. + +2025-10-23 João Távora <joaotavora@gmail.com> + + Prevent shorthand inheritance when loading .elc files (bug#79485) + + Loading .elc files doesn't go through 'load-with-code-conversion' as + usual, but since these files are still 'read', we must still take care + to bind read-symbol-shorthands to nil around that. The process is + simpler than in 'load-with-code-conversion' because .elc files cannot + have read-symbol-shorthands cookies, so the binding is always to nil. + If we don't do this, the symbols in the .elc will be subject to + shorthand manipulation if there's an active binding in the recursive + load stack. + + * src/lread.c (readevalloop): Bind read-symbol-shorthands to nil. + (syms_of_lread): Add Qread_symbol_shorthands. + +2025-10-23 João Távora <joaotavora@gmail.com> + + Eglot: release version 1.19 + + * lisp/progmodes/eglot.el (Version): Bump to 1.19. + (Package-Requires): Require Flymake 1.4.2 + + * etc/EGLOT-NEWS: Announce new version. + +2025-10-23 João Távora <joaotavora@gmail.com> + + Flymake: bump package version to 1.4.2 + + * lisp/progmodes/flymake.el (Version): Bump to 1.4.2. + +2025-10-23 João Távora <joaotavora@gmail.com> + + Eglot: don't send JSONRPC params in 'shutdown' request (bug#79653) + + See also bug#66144. + Github-reference: https://github.com/joaotavora/eglot/discussions/1540 + + * lisp/progmodes/eglot.el (eglot-shutdown): Pass :jsonrpc-omit + (Package-Requires): Require jsonrpc 1.0.26. + + * etc/EGLOT-NEWS: Announce bugfix. + +2025-10-23 João Távora <joaotavora@gmail.com> + + Jsonrpc: support requests and notifications without params (bug#79653) + + See also bug#66144. + Github-reference: https://github.com/joaotavora/eglot/discussions/1540 + + * lisp/jsonrpc.el (jsonrpc-async-request): Fix docstring. + (jsonrpc--async-request-1): Handle :jsonrpc-omit + (jsonrpc-notify): Handle jsonrpc-omit. + (jsonrpc-request): Tweak doc. + (Version): Bump to 1.0.26. + +2025-10-23 Juri Linkov <juri@linkov.net> + + * doc/lispref/display.texi (Display Margins): Remove obsolete remark. + + Text and images in the margin were made mouse-sensitive long ago. + https://lists.gnu.org/archive/html/emacs-devel/2025-10/msg00596.html + +2025-10-23 Mattias Engdegård <mattias.engdegard@gmail.com> + + Sink calls to byte-compile-warning-enabled-p + + * lisp/emacs-lisp/bytecomp.el (byte-compile--check-arity-bytecode) + (byte-compile-warn-about-unresolved-functions, byte-compile-form) + (byte-compile-free-vars-warn): + Delay checking whether a warning is enabled until we are about to emit + such a warning, since most warnings are enabled most of the time but + finding something to warn about is rare. + +2025-10-23 Martin Rudalics <rudalics@gmx.at> + + Revert recent additions of 'split-frame' and 'merge-frames' + + * lisp/window-x.el (merge-frames, split-frame): Remove. + * doc/lispref/windows.texi (Changing Window Layouts): Remove + sections on 'split-frame' and 'merge-frames'. + * etc/NEWS: Remove announcement of 'split-frame' and + 'merge-frames'. + +2025-10-23 Martin Rudalics <rudalics@gmx.at> + + Document and announce 'split-frame' and 'merge-frames' + + * lisp/window-x.el (merge-frames): Rewrite doc-string. Error out + when FRAME1 and FRAME2 are not distinct frames. + (split-frame): Rewrite doc-string. Use 'user-error' instead of + 'error'. + * doc/lispref/windows.texi (Changing Window Layouts): Document + 'split-frame' and 'merge-frames'. + * etc/NEWS: Announce 'split-frame' and 'merge-frames'. + +2025-10-23 Pranshu Sharma <pranshu@bauherren.ovh> + + New commands to split and merge frames + + * lisp/window-x.el (merge-frames, split-frame): New commands. + +2025-10-23 Stephen Gildea <stepheng+git-config-global@gildea.com> + + time-stamp-format-* tests: reduce repetitiveness + + * test/lisp/time-stamp-tests.el (time-stamp-test): New macro. + Use it to coalesce the repetitive lines of the various + time-stamp-format-* tests, reducing the line count of the + time-stamp-string formatting tests by 30%. + +2025-10-22 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/comint.el (comint--mark-yanked-as-output): Use `letrec` + +2025-10-22 Stefan Monnier <monnier@iro.umontreal.ca> + + (custom-initialize-after-file): New function + + Some global minor modes require initialization. Those that are preloaded + currently abuse `custom-initialize-delay` for that, but it's suboptimal + and doesn't help those that aren't preloaded. + So introduce a new function to fill that need. + While at it, make `define-globalized-minor-mode` use it + automatically when useful. + + * lisp/custom.el (custom-initialize-after-file-load): New function. + * lisp/tooltip.el (tooltip-mode): + * lisp/paren.el (show-paren-mode): + * lisp/rfn-eshadow.el (file-name-shadow-mode): + * lisp/epa-hook.el (auto-encryption-mode): + * lisp/minibuffer.el (minibuffer-regexp-mode, minibuffer-nonselected-mode): + * lisp/electric.el (electric-indent-mode): Use it instead of + `custom-initialize-delay` since the value does not depend on the + runtime context. + (electric-quote-mode): Don't use `custom-initialize-delay` since + the default value is nil anyway. + + * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode): + Automatically add `:initialize` if needed. + * lisp/emacs-lisp/eldoc.el (global-eldoc-mode): Remove `:initialize`, + now provided automatically. + + * doc/lispref/customize.texi (Variable Definitions): + * doc/lispref/modes.texi (Defining Minor Modes): Document and Suggest + `custom-initialize-after-file-load` instead of `custom-initialize-delay`. + +2025-10-22 Alan Mackenzie <acm@muc.de> + + Allow renaming of frames to F<num> on text terminals + + This fixes bug#79649. Creating duplicate names F<num> is + prevented, ensuring that select-frame-by-name is still + effective on text terminals. + + * src/frame.c (frame_get, frame_next_F_name): New functions. + (make_terminal_frame): Use frame_next_F_name. + (set_term_frame_name): In place of disallowing F<num>, check + that the requested F<num> doesn't already exist. + + * etc/NEWS (Frames): Add an entry for this amendment. + +2025-10-22 F. Jason Park <jp@neverwas.me> + + Release ERC 5.6.1 + + * lisp/erc/erc.el: Change "Version" header from 5.6.1-git to 5.6.1. A + `customize-package-emacs-version-alist' mapping to Emacs 31.1 was + already added at some point during the course of development for this + release. The ERCVER variable in doc/misc/erc.texi was updated when + moving to the "-git" suffixed version. + (erc-version): Change version from 5.6.1-git to 5.6.1. + +2025-10-21 Stephen Berman <stephen.berman@gmx.net> + + Improve Dired handling of file names with newlines (bug#79528) + + * doc/emacs/dired.texi (Dired Enter): Update documentation of + Dired's display and handling of file names that contain newlines. + Document new user option 'dired-auto-toggle-b-switch'. + + * etc/NEWS: Announce new warning and new user option. + + * lisp/dired.el (dired-auto-toggle-b-switch): New user option. + (dired-internal-noselect): Pop up a warning if the Dired listing + displays a literal newline. + (dired-switches-escape-p): Take the 'ls' switch + '--quoting-style=escape' into account. + (dired-mode): Add 'dired--toggle-b-switch' to 'post-command-hook'. + (dired-move-to-end-of-filename): When the Dired listing includes a + file name containing a newline, this can result in no change in + the 'dired-filename' text property on the last file name, so in + this case take the position just before the final newline as the + end of the last file name to prevent a wrong-type-argument error. + (dired--filename-with-newline-p, dired--remove-b-switch) + (dired--toggle-b-switch, dired--set-auto-toggle-b-switch) + (dired--display-filename-with-newline-warning): New functions. + +2025-10-21 Stefan Monnier <monnier@iro.umontreal.ca> + + (easy-mmode--less-selective-first): Enable test + + * test/lisp/emacs-lisp/easy-mmode-tests.el + (easy-mmode--less-selective-first): Enable test since it now succeeds. + +2025-10-21 Stefan Monnier <monnier@iro.umontreal.ca> + + (define-globalized-minor-mode): Remove `MODE-mode-name` hack (bug#79624) + + Stop trying to detect when a globalized mode enabled its + minor mode "too early". This reverts the core of commit 876daebc8594 + since the problem it tried to circumvent has been made almost impossible + by commit 17e26cf57e18. + + * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode): + Remove the `MODE-mode-name` variable, don't remember in which major + mode we enabled the minor mode, and don't disable the minor mode + before (re)enabling it. + +2025-10-21 Mattias Engdegård <mattias.engdegard@gmail.com> + + Use 'any' and 'all' to simplify parts of the byte-compiler + + * lisp/emacs-lisp/byte-opt.el (byte-opt--nary-comparison) + (byte-optimize-constant-args, byte-optimize-member) + (byte-optimize-append): + * lisp/emacs-lisp/bytecomp.el (byte-compile-warnings) + (byte-compile-out-toplevel): + * lisp/emacs-lisp/cconv.el (cconv-convert): + Replace various hand-written 'any' and 'all' expressions with + calls to the new functions, for readability and speed. + +2025-10-21 Mattias Engdegård <mattias.engdegard@gmail.com> + + * lisp/emacs-lisp/shortdoc.el: Add take-while, drop-while, any, all. + +2025-10-21 Mattias Engdegård <mattias.engdegard@gmail.com> + + Disable one tab-bar-test case on macOS + + The test works when run interactively and in batch mode started from + a terminal, but not from M-x compile. + + * test/lisp/tab-bar-tests.el (tab-bar-tests-quit-restore-window): + Disable on macOS when TERM=dumb. + +2025-10-21 Elías Gabriel Pérez <eg642616@gmail.com> + + hideshow: Define new keymap for all the commands. + + bug#79569 + + * lisp/progmodes/hideshow.el (hs-prefix-map): New keymap. + (hs-minor-mode-map): Use the new keymap. + +2025-10-21 Elías Gabriel Pérez <eg642616@gmail.com> + + hideshow: Update the indicators properly after showing/hiding + + bug#79616 + + * lisp/progmodes/hideshow.el (hs-discard-overlays) + (hs-make-overlay, hs-show-block): Rework + 'hs--refresh-indicators' calls. + (hs--refresh-indicators): Rework code, add new function + arguments. + (hs-minor-mode): Properly remove the indicators after turning + off the mode. + +2025-10-21 Yuan Fu <casouri@gmail.com> + + Cache compiled tree-sitter queries (bug#79363) + + This way major modes can compute font-lock settings and + indentation rules dynamically when the major mode is enabled. + We don't want to compute it at package load time because the + grammar might not be installed at that point. (Grammar might + be (semi)auto-installed when the major mode is enabled.) + + This commit adds treesit--query-cache and changes + treesit-font-lock-rules to not compile the query. Instead, the + queries are compiled in + treesit-validate-and-compile-font-lock-rules. + + Go-ts-mode is modified to use this new framework. + + * lisp/progmodes/go-ts-mode.el (go-ts-mode--iota-query-supported-p): + (go-ts-mode--method-elem-supported-p): + (go-ts-mode--font-lock-settings-cached): Removed. + (go-ts-mode--font-lock-settings): Simply return the result of + treesit-font-lock-rules rather than saving to + go-ts-mode--font-lock-settings-cached. Use + treesit-query-with-optional for computed queries. + * lisp/treesit.el (treesit--query-cache): New variable. + (treesit-font-lock-settings): Add new field language. + (treesit-font-lock-setting-language): New function. + (treesit-query-with-optional): New function. + (treesit-font-lock-recompute-features): Don't compile query and + store language (because we can't derive from compiled query anymore). + (treesit-replace-font-lock-feature-settings): Use the new + language field. + (treesit-validate-and-compile-font-lock-rules): Renamed from + treesit-validate-font-lock-rules, add logic to compile queries. + (treesit-major-mode-setup): Use treesit-validate-and-compile-font-lock-rules. + +2025-10-20 Elías Gabriel Pérez <eg642616@gmail.com> + + hideshow: Add new option for control how the block should be hidden. + + bug#79585 + + * doc/emacs/programs.texi (Hideshow): + * etc/NEWS: Document changes. + + * lisp/progmodes/hideshow.el (hs-hide-behavior): New user option. + (hs-life-goes-on): Add 'save-excursion' and 'save-match-data'. + (hs-hide-block): Rework. + +2025-10-20 Mattias Engdegård <mattias.engdegard@gmail.com> + + Don't feed the stack overflow detector bad data + + * src/lisp.h (record_in_backtrace): Don't record the argument address as + stack_top because most of the time it won't be on the C stack at all. + * src/eval.c (eval_sub): Do it here instead using an address guaranteed + to be on the C stack and we are just in the Lisp interpreter anyway. + +2025-10-20 Sean Whitton <spwhitton@spwhitton.name> + + vc-test--with-temp-change: Use write-region + + * test/lisp/vc/vc-tests/vc-tests.el (vc-test--with-temp-change): + Use write-region (bug#79657). + +2025-10-20 Michael Albinus <michael.albinus@gmx.de> + + Revert "* test/lisp/net/tramp-resources/foo.tar.gz: Remove." + + This reverts commit e5cd797988a5b2fddaf1c850d797674a299bc574. + +2025-10-20 Michael Albinus <michael.albinus@gmx.de> + + * test/lisp/net/tramp-resources/foo.tar.gz: Remove. + +2025-10-20 Michael Albinus <michael.albinus@gmx.de> + + Tramp cleanup + + * doc/misc/tramp.texi (Configuration): Extend example. + + * lisp/net/tramp.el (tramp-skeleton-write-region): + * lisp/net/tramp-cache.el (tramp-flush-file-upper-properties): + * lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory): + Use `when-let*' consequently. + + * lisp/net/tramp-cmds.el (tramp-file-name-with-method): + Add :initialize and :set functions. + (tramp-set-file-name-with-method): New defun. + (with-tramp-file-name-with-method): Filter out enabled methods. + + * lisp/net/tramp-compat.el: Add TODO. + + * test/lisp/net/tramp-archive-tests.el + (tramp-archive-test-cascaded-file-archive): Use "foo.zip". + + * test/lisp/net/tramp-tests.el (tramp--test-instrument-test-case-p): + Extend check. + (tramp-test48-session-timeout): Adapt test. + + * test/lisp/net/tramp-archive-resources/foo.zip: Renamed from outer.zip. + +2025-10-20 Eli Zaretskii <eliz@gnu.org> + + Avoid unnecessary y-or-n-p questions in client frames + + * lisp/server.el (server-visit-files): Don't consider the file as + having disappeared if it never existed when visited previously. + Doc fix. (Bug#79609) + +2025-10-20 João Távora <joaotavora@gmail.com> + + Eglot: expand on eglot-workspace-configuration sections (bug#79655) + + * doc/misc/eglot.texi (Project-specific configuration): Clarify section. + +2025-10-20 Mattias Engdegård <mattias.engdegard@gmail.com> + + Add any and all (bug#79611) + + * lisp/subr.el (all, any): New. + * test/lisp/subr-tests.el (subr-all, subr-any): New tests. + * doc/lispref/lists.texi (List Elements): Document. + * etc/NEWS: Announce. + +2025-10-20 Mattias Engdegård <mattias.engdegard@gmail.com> + + Add drop-while and take-while (bug#79611) + + * lisp/subr.el (internal--effect-free-fun-arg-p) + (drop-while, take-while): New. + * test/lisp/subr-tests.el (subr-drop-while, subr-take-while): New tests. + * doc/lispref/lists.texi (List Elements): Document. + * etc/NEWS: Announce. + +2025-10-19 João Távora <joaotavora@gmail.com> + + Flymake: fix daemon-mode + and window client fringe usage (bug#77313) + + To make Flymake's margin/fringe decision correct, four cases + must be tested. (1) A daemon that starts flymake-mode on a + buffer and then connecting a graphical client. Here fringes + must be used. (2) Like 1, but with a tty client. Here margins + must be used automatically. (3) A non-daemonic start of a + graphical emacs. (4) A non-daemonic start of a tty emacs. + + The code was failing case 1. 1 and 2 are the trickiest to get + right and currently can't be gotten right unless the margin + auto-resize is done at buffer annotation time. + + Additionally, fix bugs in 'flymake-start's buffer visibility logic. + Refactor duplicate code in 'flymake--highlight-line' and fix docstrings. + + * lisp/progmodes/flymake.el (flymake-autoresize-margins): Fix + focstring. + (flymake--bs-display): Rename from flymake--indicator-overlay-spec. + Fix docstring. Return just the display spec. + (flymake--suitably-fringed-p): New helper, instead of duplication. + (flymake--resize-margins): Cut up into two functions. + (flymake--restore-margins): Dedicated to restoring functions. + (flymake--highlight-line): Simplify logic when + flymake-indicator-type is 'auto'. + (flymake-start): Fix visibility logic to account for daemon mode. + Maybe resize margins here. + (flymake-mode): Call restore margins. + +2025-10-19 Juri Linkov <juri@linkov.net> + + * lisp/progmodes/compile.el (compilation--set-up-margin): Fix. + + Call 'set-window-margins' only on the compilation buffer where the + hook 'window-buffer-change-functions' is set buffer-locally (bug#79640). + +2025-10-19 Juri Linkov <juri@linkov.net> + + New value 'auto' of user option 'flymake-indicator-type' used by default + + * lisp/progmodes/flymake.el (flymake-indicator-type): + Change the default value from 'fringes' to 'auto'. + (flymake--resize-margins): Use margins when + 'flymake-indicator-type' is 'auto', but fringes are no available. + (flymake--highlight-line): Use display condition '(when CONDITION . SPEC)' + that checks for 'window-fringes' at display time and switches + between fringes and margins (bug#77313). + +2025-10-19 Sean Whitton <spwhitton@spwhitton.name> + + vc-git-registered: Be quieter when Git is not installed + + * lisp/vc/vc-git.el (vc-git-registered): If Git is not + installed, don't echo a message about it. + +2025-10-19 Sean Whitton <spwhitton@spwhitton.name> + + vc-rename-file: Make it work regardless of default-directory + + * lisp/vc/vc.el (vc-rename-file): Make it work regardless of + default-directory; now the only influence of default-directory + should be resolving OLD and NEW if they are relative file names. + * test/lisp/vc/vc-tests/vc-tests.el (vc-test--rename-file): Test + the influence of default-directory on vc-rename-file. + +2025-10-19 Mattias Engdegård <mattias.engdegard@gmail.com> + + Disable -Wclobbered for GCC in exec_byte_code (bug#79610) + + * src/bytecode.c (exec_byte_code): + Disable the -Wclobbered warning for GCC locally as the old work-around + doesn't appear to be effective for variables with explicitly assigned + registers. This also allows us to remove that work-around which + improves the code somewhat. + +2025-10-19 Mattias Engdegård <mattias.engdegard@gmail.com> + + exec_byte_code: use fixed registers for top and pc (bug#79610) + + GCC seems to have difficulty allocating important global interpreter + variables in registers; telling it which ones to use for 'top' and 'pc' + makes a big difference and seems to ease pressure enough for it to + deal with other variables as well. + + We do it for AMD64 and ARM64. Clang doesn't seem to need these directives. + It does result in -Wclobbered warnings that seem difficult to silence. + + * src/bytecode.c (BC_REG_TOP, BC_REG_PC): New. + (exec_byte_code): Use them. + +2025-10-19 Mattias Engdegård <mattias.engdegard@gmail.com> + + exec_byte_code: reduce use of semi-global 'op' (bug#79610) + + * src/bytecode.c (exec_byte_code): + Re-type op from int to ptrdiff_t, which avoids some useless conversions. + Reduce its use by using local variables for intra-block use, + and another variable (arg) where it doesn't need to be alive across + instruction dispatch. We also eliminate it where performance doesn't + matter by re-fetching it from the instruction stream. + + All this should help the register allocator. + +2025-10-19 Lockywolf <for_emacs_1@lockywolf.net> + + Fix ispell-tests on emacs CI + + * test/lisp/textmodes/ispell-resources/fake-aspell-new.bash + Error with a broken dictionary. + + * test/lisp/textmodes/ispell-tests/ispell-tests-common.el + (ispell-tests--constants/nonexistent-dictionary): Add. + (ispell-tests--some-valid-dictionary): Give fallback dictionary. + + * test/lisp/textmodes/ispell-tests/ispell-tests.el + (ispell/ispell-accept-buffer-local-defs/received-file): Use + proper broken dictionary. + +2025-10-19 LdBeth <andpuke@foxmail.com> + + Fix a recent regression in Newsticker + + * lisp/net/newst-backend.el (newsticker--parse-text-container): + New function. + (newsticker--parse-atom-1.0): Use it. (Bug#79617) + +2025-10-18 Stefan Monnier <monnier@iro.umontreal.ca> + + (eval-and-compile): Preserve the surrounding lexical context + + Implement a better fix for bug#79634. + + * lisp/emacs-lisp/byte-run.el (eval-and-compile): + * lisp/emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment) + <eval-and-compile>: Preserve the surrounding lexical context (the part + available during macroexpansion, i.e. which vars are dynbound). + + * lisp/emacs-lisp/rx.el (<pcase> rx): Remove workaround. + + * test/lisp/emacs-lisp/macroexp-tests.el + (macroexp--dynbound-eval-and-compile): New test. + +2025-10-18 Helmut Eller <eller.helmut@gmail.com> + + Add a test for puthash + + It's actually for a bug on the feature/igc branch. + + * test/src/fns-tests.el (ft-puthash-weak): New test + (ft--puthash-weak): New helper. + +2025-10-18 Juri Linkov <juri@linkov.net> + + * lisp/minibuffer.el (completion--insert-strings): Use the correct frame. + + Provide the 'frame-height' call with the frame of the window where + the *Completions* buffer is displayed for the case when the minibuffer + window uses a dedicated frame (bug#79635). + +2025-10-18 Alan Mackenzie <acm@muc.de> + + Fix coding error in byte-run--strip-vector/record + + * lisp/emacs-lisp/byte-run.el (byte-run--strip-vector/record): + Replace a symbol with position by its bare symbol, rather + than returning it unchanged. + +2025-10-18 Sean Whitton <spwhitton@spwhitton.name> + + vc-do-command: Don't print a spurious newline + + * lisp/vc/vc-dispatcher.el (vc-do-command): Don't print a + spurious newline. Don't omit the format string with 'message'. + (Bug#79650) + +2025-10-18 Alcor <alcor@tilde.club> (tiny change) + + Rcirc: Fix invalid face error message when applying IRC color + + * lisp/net/rcirc.el (rcirc-color-attributes): Fix invalid face. + (Bug#79561) + +2025-10-18 Lockywolf <for_emacs_1@lockywolf.net> + + Fix detecting a working hunspell on systems without a dictionary + + Fixes bug#79477 and bug#79514 + + * test/lisp/textmodes/ispell-tests/ispell-hunspell-tests.el + (ispell-tests-hunspell--hunspell-working): Implement checker. + (ispell/hunspell/ispell-word/russian/check-only): Add skip-check. + (ispell/hunspell/ispell-word/english/check-only): Add skip-check. + (ispell/hunspell/ispell-word/language-switch/check-only): Add + skip-check. + (ispell/hunspell/ispell-word/russian/check-only/wrong-language): Add + skip-check. + (ispell/hunspell/ispell-word/multilang): Add skip-check. + * test/lisp/textmodes/ispell-tests/ispell-tests-common.el + (fake-aspell-path): Improve checking that an engine works. + (ispell-tests--letopt): Make restoring variables more robust, + rename to a local name. Add debug spec. + (ispell-tests--with-ispell-global-dictionary): Rename to a local name + Add debug spec. + (ispell-tests--some-valid-dictionary): Add a selector for a safe + dictionary. + (ispell/ispell-accept-buffer-local-defs/received-file): Add. + (ispell-tests--constants/english/correct-list): Add. + (ispell-tests--constants/english/correct-one): Add. + (ispell-tests--constants/english/wrong): Add. + (ispell-tests--constants/russian/correct): Add. + (ispell-tests--constants/russian/wrong): Add. + (ispell-tests--constants/completion): Add. + * test/lisp/textmodes/ispell-tests/ispell-tests.el + (ispell/ispell-buffer-local-words/ispell-buffer-session-localwords): + reverse letopt and with-ispell-dictionary. + (ispell/ispell-buffer-local-words/ispell-words-keyword): + reverse letopt and with-ispell-dictionary. + (ispell/ispell-complete-word-interior-frag/simple): + reverse letopt and with-ispell-dictionary. + (ispell/ispell-complete-word/ispell-completion-at-point): + reverse letopt and with-ispell-dictionary. + (ispell/ispell-init-process/works-with-home): + reverse letopt and with-ispell-dictionary. + (ispell/ispell-kill-ispell): + reverse letopt and with-ispell-dictionary. + * test/lisp/textmodes/ispell-resources/fake-aspell-new.bash: + Add comments on unused function. Replace echo with printf. + +2025-10-18 Eli Zaretskii <eliz@gnu.org> + + : Update ldefs-boot.el. + +2025-10-18 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 53aac6aecd2 ; Improve documentation of commands that split current wi... + +2025-10-18 Spencer Baugh <sbaugh@janestreet.com> + + Respect keymaps in buffer text for clicks on displayed strings + + When clicking on a string displayed by a display property, also + look at the text properties of the underlying buffer text for + keymaps, not just the displayed string. The displayed string + takes precedence over the buffer text, but it doesn't replace + it. + + Also, we should use the buffer's local map even for clicks on + the mode line. (Otherwise, what's the point of the <mode-line> + event?) + + * src/keymap.c (Fcurrent_active_maps): Consider displayed + string, then buffer text, then fall back to local + map. (Bug#79505) + + * test/src/keymap-tests.el + (keymap-test-keymaps-for-non-buffer-positions): Add more tests. + +2025-10-18 Augusto Stoffel <arstoffel@gmail.com> + + Fix an error when bookmark handler is a lambda + + * lisp/bookmark.el (bookmark-type-from-full-record): Ensure + handler is a symbol before calling 'symbol-function'. + (Bug#79618) + +2025-10-18 Lin Sun <sunlin7@hotmail.com> + + Remove directory of deleted package from `load-path' + + * lisp/emacs-lisp/package.el (package--delete-directory): Remove + the directory of the to-be-deleted package `load-path'. Doc + fix. (Bug#79597) + +2025-10-18 Martin Rudalics <rudalics@gmx.at> + + Add functions 'combine-windows' and 'uncombine-window' + + * src/window.c (make_parent_window, Fcombine_windows) + (Funcombine_window): New functions. + (Fsplit_window_internal): Use make_parent_window. + * doc/lispref/windows.texi (Recombining Windows): Describe new + functions 'combine-windows' and 'uncombine-window'. + (Window Configurations): Explain "window clones". + * etc/NEWS: Mention new functions 'combine-windows' and + 'uncombine-window'. + +2025-10-18 john muhl <jm@pub.pink> + + New 'lua-mode' inferior process command & options + + * lisp/progmodes/lua-mode.el (lua-process-buffer-name) + (lua-process-history-file, lua-process-startfile): New options. + (lua-start-process): Use new options. + (lua-send-file): New command. + (lua--repl-buffer-p): Remove unused internal variable. (Bug#79573) + +2025-10-17 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/emacs-lisp/rx.el (<pcase> rx): Workaround for bug#79634 + +2025-10-17 Przemysław Alexander Kamiński <alexander@kaminski.se> + Rudolf Adamkovič <rudolf@adamkovic.org> + + Release NS objects (bug#79023) + + * src/nsterm.m (ns_free_frame_resources): Release the NSView. + ([EmacsView dealloc]): Release the EmacsLayer and menu. + ([EmacsWindow dealloc]): Fix the toolbar release. + +2025-10-17 Sean Whitton <spwhitton@spwhitton.name> + + Replace recent fix for vc-auto-revert-mode autoload problem + + * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode): + Wrap references to MODE-variable in bound-and-true-p. + * lisp/vc/vc-hooks.el (auto-revert-mode): Restore to compilation + declaration only. + +2025-10-17 Eli Zaretskii <eliz@gnu.org> + + Support Tree-sitter version 0.26 and later + + * src/treesit.c (init_treesit_functions) + [TREE_SITTER_LANGUAGE_VERSION >= 15]: Define prototype for, and + load 'ts_language_abi_version' instead of the deprecated (and + removed in tree-sitter 0.26) 'ts_language_version'. + (ts_language_abi_version) [TREE_SITTER_LANGUAGE_VERSION >= 15]: + Define on WINDOWSNT, instead of 'ts_language_version'. + (treesit_language_abi_version): New compatibility function. + (treesit_load_language, Ftreesit_language_abi_version): Use + 'treesit_language_abi_version' instead of 'ts_language_version'. + (Bug#79627) + +2025-10-17 Martin Rudalics <rudalics@gmx.at> + + Clarify buffer-local behavior of 'window-buffer-change-functions' + + * doc/lispref/windows.texi (Window Hooks): Explain how to + discern calls for 'window-buffer-change-functions' where a + buffer was removed from the window from those where a buffer is + now shown in that window. + +2025-10-17 Helmut Eller <eller.helmut@gmail.com> + + Add some tests for weak hashtables + + Also add ft- as shorthand for fns-tests-. + + * test/src/fns-tests.el (ft-hash-table-weakness, ft-weak-key-removal) + (ft-weak-value-removal, ft-weak-and-removal, ft-weak-or-removal): New + tests. + (ft--test-weak-removal, ft--gc, ft--check-entries, ft--check-entry) + (ft--hash-table-entries, ft--populate-hashtable, ft--component-num) + (ft--parse-component, ft--dead-component, ft--format-component) + (ft--init-rng, ft--nentries): New helpers. + +2025-10-17 Stephen Gildea <stepheng+emacs@gildea.com> + + Manual pages: use a showcase time-stamp-pattern + + * doc/man/ebrowse.1: + * doc/man/emacs.1.in: + * doc/man/emacsclient.1: + * doc/man/etags.1: Loosen the time-stamp-pattern used so that + it is not specific to each file. These files now provide + readable examples that will work with most man pages. + +2025-10-16 Stephen Gildea <stepheng+emacs@gildea.com> + + time-stamp: padding composed characters + + * lisp/time-stamp.el (time-stamp-string-preprocess): Use + 'string-width' instead of 'length' to calculate needed padding. + + Thanks to Stefan Monnier for the suggestion. + +2025-10-16 Spencer Baugh <sbaugh@janestreet.com> + + Return case common to all completions in try-completion + + When completion-ignore-case is non-nil, if all completions share + a common prefix ignoring case, try-completion has always + returned that. Now, if all completions also share a common + prefix including case, try-completion includes that common + prefix in its return value (bug#79377). + + * lisp/minibuffer.el (completion-pcm--merge-completions): Always + use return value from try-completion, which may change case. + * src/minibuf.c (Ftry_completion): Return the common prefix + which changes case. + * test/lisp/minibuffer-tests.el (completion-pcm-bug4219) + (completion-substring-test-5): New tests. + +2025-10-16 Juri Linkov <juri@linkov.net> + + Improve color contrast of refine-related diff faces on dark backgrounds + + * lisp/vc/diff-mode.el (diff-refine-removed, diff-refine-added): + * lisp/vc/ediff-init.el (ediff-fine-diff-A, ediff-fine-diff-B): + * lisp/vc/smerge-mode.el (smerge-refined-removed, smerge-refined-added): + Lower the dominant component of RGB colors from "aa" to "88" (bug#79633). + +2025-10-16 Juri Linkov <juri@linkov.net> + + * lisp/treesit.el: Small fixes in navigation functions. + + (treesit-up-list): Better handle multi-language buffers. + (treesit-hs-find-next-block): Fix off-by-one error. + +2025-10-16 Sean Whitton <spwhitton@spwhitton.name> + + Update VC-Dir contents upon revert-buffer + + * lisp/vc/vc-hooks.el (vc-after-revert): New function. + (after-revert-hook): Add it. + +2025-10-16 Sean Whitton <spwhitton@spwhitton.name> + + vc-auto-revert-mode: Fix an autoload problem + + * lisp/vc/vc-hooks.el (auto-revert-mode): Replace compiler + declaration for this variable with a full defvar-local. + +2025-10-16 Sean Whitton <spwhitton@spwhitton.name> + + autorevert: Use defvar-local for the -mode variables + + * lisp/autorevert.el (auto-revert-mode, auto-revert-tail-mode): + Use defvar-local not defvar. New comment explaining why these + duplicate definitions of the variables are present. + +2025-10-16 Martin Rudalics <rudalics@gmx.at> + + In 'minibuffer--nonselected-check' consult 'completion-reference-buffer' + + * lisp/minibuffer.el (minibuffer--nonselected-check): Don't + highlight when the selected window's buffer has + 'completion-reference-buffer' set. + +2025-10-16 Juri Linkov <juri@linkov.net> + + Check if treesit-major-mode-remap-alist is bound in ts-modes autoload forms + + * lisp/progmodes/c-ts-mode.el: + * lisp/progmodes/cmake-ts-mode.el: + * lisp/progmodes/csharp-mode.el: + * lisp/progmodes/dockerfile-ts-mode.el: + * lisp/progmodes/elixir-ts-mode.el: + * lisp/progmodes/go-ts-mode.el: + * lisp/progmodes/heex-ts-mode.el: + * lisp/progmodes/java-ts-mode.el: + * lisp/progmodes/js.el: + * lisp/progmodes/json-ts-mode.el: + * lisp/progmodes/lua-ts-mode.el: + * lisp/progmodes/php-ts-mode.el: + * lisp/progmodes/python.el: + * lisp/progmodes/ruby-ts-mode.el: + * lisp/progmodes/rust-ts-mode.el: + * lisp/progmodes/sh-script.el: + * lisp/progmodes/typescript-ts-mode.el: + * lisp/textmodes/css-mode.el: + * lisp/textmodes/markdown-ts-mode.el: + * lisp/textmodes/mhtml-ts-mode.el: + * lisp/textmodes/toml-ts-mode.el: + * lisp/textmodes/yaml-ts-mode.el: In autoload forms replace + '(treesit-available-p)' with (boundp 'treesit-major-mode-remap-alist). + Calling 'treesit-available-p' in loaddefs.el is too early + since the tree-sitter library might not be loaded yet. + Checking if 'treesit-major-mode-remap-alist' is bound is + equivalent to checking if Emacs is compiled with tree-sitter support. + (bug#79622) + +2025-10-16 Stephen Gildea <stepheng+emacs@gildea.com> + + time-stamp: padding with mixed uni- and multibyte + + * lisp/time-stamp.el (time-stamp-string-preprocess): Use + 'length' instead of 'format' to calculate string padding, + so that we consistently count characters, not bytes. + +2025-10-15 Stefan Monnier <monnier@iro.umontreal.ca> + + (remote-shell-program): Simplify + + * lisp/files.el (remote-shell-program): Don't bother looking + for the full file name of the `ssh` executable, since all users + end up looking it up in `load-path` anyway. + +2025-10-15 Stefan Monnier <monnier@iro.umontreal.ca> + + doc/emacs/display.texi (Semantic Font Lock): Simplify + +2025-10-15 Stefan Monnier <monnier@iro.umontreal.ca> + + (easy-mmode--less-selective-first): Uncomment the test + + * test/lisp/emacs-lisp/easy-mmode-tests.el (easy-mmode--less-selective-first): + Mark it as failing, instead. + +2025-10-15 Juri Linkov <juri@linkov.net> + + * lisp/minibuffer.el: Fix recent change of scrolling truncated completions + + (completion--lazy-insert-strings-on-scroll): Don't move to the last + completion candidate since this is what happens when scrolling without + truncated completions buffer (bug#79506). + +2025-10-15 Sean Whitton <spwhitton@spwhitton.name> + + New tests for multiple globalized minor modes + + * test/lisp/emacs-lisp/easy-mmode-tests.el + (easy-mmode-test-mode): Mark permanent-local. + (easy-mmode--test-two-globalized-modes): New function. + (easy-mmode--more-selective-first) + (easy-mmode--less-selective-first): New tests. + +2025-10-15 Stefan Monnier <monnier@iro.umontreal.ca> + + (xdg-mime-apps): Restore corner case and simplify + + * lisp/xdg.el (xdg-mime-apps): Return nil if that's what the table + holds, like we did before commit f60fc1287d49. + Consolidate the three (assoc type xdg-mime-table) and shrink the + scope of `files`. + +2025-10-15 Michael Albinus <michael.albinus@gmx.de> + + Add support for su-rs and sudo-rs programs + + * doc/misc/tramp.texi (Inline methods): Add "surs" and "sudors" methods. + + * etc/NEWS: Add optional "surs" and "sudors" Tramp methods. + Presentational fixes and improvements. + + * lisp/net/tramp-cmds.el (tramp-file-name-with-method): Add "surs" + and "sudors" to :type. Adapt :version. + + * lisp/net/tramp-sh.el (tramp-enable-surs-method) + (tramp-enable-sudors-method): New defuns + (tramp-sh-handle-expand-file-name): Add "surs" and "sudors" in check. + + * lisp/net/tramp.el (tramp-methods): Adapt docstring. + + * lisp/comint.el (comint-password-prompt-regexp): + * test/lisp/comint-tests.el (comint-testsuite-password-strings): + Add su-rs and sudo-rs password prompts. + +2025-10-15 Stefan Monnier <monnier@iro.umontreal.ca> + + (font-lock-defaults): Clarify the use of SYNTAX-ALIST (bug#79586) + + * doc/lispref/modes.texi (Font Lock Basics): + * lisp/font-core.el (font-lock-defaults): Document when + SYNTAX-ALIST is used and how it interacts with syntactic fontification. + +2025-10-14 Stefan Monnier <monnier@iro.umontreal.ca> + + (rx): Remove the `rx--pcase-expand` middle man + + * lisp/emacs-lisp/rx.el (rx): Remove the `rx--pcase-expand` middle man, + now that `loaddefs-gen.el` expands the `pcase-defmacro` for us. + +2025-10-14 Stefan Monnier <monnier@iro.umontreal.ca> + + (define-minor-mode): Update `global-minor-modes` if init-value is non-nil + + When a global minor mode is enabled by init-value rather than by + calling the major mode function, we failed to register it in + `global-minor-modes` (bug#79518). + + * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Register + ourselves in `global-minor-modes` at top-level for global modes + with a non-nil init-value. + Also in the `modefun`, simply the code with `not` and `add-to-list` + and consolidate the local/global paths to update `*-minor-modes`. + + * lisp/simple.el (global-minor-modes): Move to... + * lisp/subr.el (global-minor-modes): ...here so it's defined early enough + for `auto-compression-mode` to register itself. + +2025-10-14 Michael Albinus <michael.albinus@gmx.de> + + Fix Tramp customization + + Do not use the ;;;###tramp-autoload cookie for defcustoms. This + damages the customisation when Tramp is autoloaded. Reported by + Joel Reicher <joel.reicher@gmail.com>. + + * lisp/net/tramp-cache.el (tramp-verbose): Declare. + (tramp-connection-properties): + * lisp/net/tramp-message.el (tramp-verbose): + Remove ;;;###tramp-autoload cookie. + +2025-10-14 Eli Zaretskii <eliz@gnu.org> + + Extend Tree-sitter support on MS-Windows to v0.26.x + + * lisp/term/w32-nt.el (dynamic-library-alist): Support Tree-sitter + DLLs for versions upto 0.26.x. + +2025-10-13 Jonas Bernoulli <jonas@bernoul.li> + + Update to Transient v0.10.1-8-g188ec9a1 + +2025-10-13 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc-dir.el (vc-dir-resynch-file): Use file-in-directory-p. + + For better compatibility with MS-Windows. + +2025-10-13 Martin Rudalics <rudalics@gmx.at> + + Rewrite 'minibuffer-nonselected-mode' to use 'window-state-change-functions' + + * lisp/minibuffer.el (minibuffer-nonselected): Rewrite + doc-string. + (minibuffer--nonselected-overlay): Define it global. Rewrite + doc-string. + (minibuffer--nonselected-check): Rewrite by comparing the active + minibuffer window with the selected window. + (minibuffer--nonselected-setup): Globally add + 'minibuffer--nonselected-check' to list of functions called by + 'window-state-change-functions'. + (minibuffer--nonselected-exit): Remove + 'minibuffer--nonselected-check' from list of functions called by + 'window-state-change-functions' when exiting last recursive + minibuffer. + (minibuffer-nonselected-mode): Globally add/remove + 'minibuffer--nonselected-setup' to/from list of functions called + by 'minibuffer-setup-hook' and 'minibuffer--nonselected-exit' + to/from list of functions called by 'minibuffer-exit-hook' when + activating/deactivating 'minibuffer-nonselected-mode'. Rewrite + doc-string. + +2025-10-12 Eshel Yaron <me@eshelyaron.com> + + Merge branch 'feature/elisp-fontify-semantically' + +2025-10-12 Eli Zaretskii <eliz@gnu.org> + + Fix squashfs archives embedded in another archive + + * lisp/arc-mode.el (archive-delete-local): Delete the directory + recursively. + (archive-squashfs-summarize): Make a local copy of a file if + squashfs archive is included in another archive. (Bug#79582) + +2025-10-12 Stefan Monnier <monnier@iro.umontreal.ca> + + (read-only-keymap-*): Be more careful with the namespace + + * lisp/keymap.el (keymap-read-only-bind): Rename from + `read-only-keymap-bind`. Improve docstring. + (keymap--read-only-filter): Rename from `read-only-keymap-filter`. + * lisp/net/goto-addr.el (goto-address-highlight-keymap): + * lisp/progmodes/bug-reference.el (bug-reference-map): + * lisp/net/browse-url.el (browse-url-button-map): + * lisp/ansi-osc.el (ansi-osc-hyperlink-map): Adjust accordingly. + +2025-10-12 Michael Albinus <michael.albinus@gmx.de> + + Fix regression in Tramp file name completion + + * lisp/net/tramp.el (tramp-make-tramp-file-name): Do not use the + hop for the "archive" method. + +2025-10-12 Martin Rudalics <rudalics@gmx.at> + + Make buffer-local decorations show up on new window-system frames (Bug#79606) + + * lisp/frame.el (make-frame): On window-system frames apply + buffer-local values for fringes, scroll bars and margins of root + and minibuffer window after the new frame was made (Bug#79606). + +2025-10-12 Eli Zaretskii <eliz@gnu.org> + + Update MS-Windows manifest for Emacs + + * nt/emacs-x64.manifest: + * nt/emacs-x86.manifest: supportedOS GUID for Windows 11 is the + same as for Windows 10. See + https://learn.microsoft.com/en-us/windows/win32/sbscs/application-manifests#trustinfo + +2025-10-11 Juri Linkov <juri@linkov.net> + + * lisp/progmodes/hideshow.el: Small improvements (bug#79585). + + (hs-allow-nesting): Turn defvar into defcustom. + (hs-indicator-hide): Use BLACK DOWN-POINTING SMALL TRIANGLE + as a counterpart for the BLACK RIGHT-POINTING SMALL TRIANGLE. + +2025-10-11 Michael Albinus <michael.albinus@gmx.de> + + Make cascaded archives working in tramp-archive.el work, again + + * lisp/net/tramp-archive.el (tramp-archive-file-name-handler): + Move bindings of `tramp-methods' and `tramp-gvfs-methods' up. + (tramp-archive-file-name-handler): Do not use + `tramp-archive-run-real-handler' for testing existence of + `archive'. (Bug#79582) + + * test/lisp/net/tramp-archive-tests.el + (tramp-archive-test-file-archive-hexlified): Move down. + (tramp-archive-test-cascaded-file-archive) + (tramp-archive-test-cascaded-archive, tramp-archive-test-cascaded): + New defvars. + (tramp-archive--test-deftest-cascaded): New defmacro. + (tramp-archive-test01-file-name-syntax) + (tramp-archive-test05-expand-file-name): Adapt tests. + (tramp-archive-test01-file-name-syntax-cascaded) + (tramp-archive-test05-expand-file-name-cascaded) + (tramp-archive-test06-directory-file-name-cascaded) + (tramp-archive-test07-file-exists-p-cascaded) + (tramp-archive-test08-file-local-copy-cascaded) + (tramp-archive-test09-insert-file-contents-cascaded) + (tramp-archive-test11-copy-file-cascaded) + (tramp-archive-test15-copy-directory-cascaded) + (tramp-archive-test16-directory-files-cascaded) + (tramp-archive-test17-insert-directory-cascaded) + (tramp-archive-test18-file-attributes-cascaded) + (tramp-archive-test19-directory-files-and-attributes-cascaded) + (tramp-archive-test20-file-modes-cascaded) + (tramp-archive-test21-file-links-cascaded) + (tramp-archive-test26-file-name-completion-cascaded) + (tramp-archive-test40-make-nearby-temp-file-cascaded) + (tramp-archive-test43-file-system-info-cascaded) + (tramp-archive-test44-user-group-ids-cascaded): New tests. + + * test/lisp/net/tramp-archive-resources/outer.zip: New test file. + +2025-10-11 Eshel Yaron <me@eshelyaron.com> + + Document 'elisp-fontify-semantically' in the Emacs manual + + * doc/emacs/display.texi (Semantic Font Lock): New node. + * doc/emacs/emacs.texi: Update menu. + * etc/NEWS: Update relevant entry. + * lisp/emacs-lisp/elisp-scope.el: Expand commentary. + * doc/misc/elisp-semantic-highlighting.org: Delete it. + +2025-10-11 Eli Zaretskii <eliz@gnu.org> + + Fix MS-Windows tray notifications from different Emacs frames + + * src/w32fns.c (EMACS_TRAY_NOTIFICATION_ID_INIT): Rename from + EMACS_TRAY_NOTIFICATION_ID; all users adjusted. + (last_tray_notification_id): New static variable. + (add_tray_notification): Advance 'last_tray_notification_id' for + each new notification; wrap around to the fixed initial value when + reached the maximum. This allows Lisp programs track notifications + and remove them from the same frame from which they were created. + (Fw32_notification_notify, Fw32_notification_close): Doc fixes. + + * doc/lispref/os.texi (Desktop Notifications): Update the + documentation of 'w32-notification-notify' and + 'w32-notification-close'. + + Bug#79400 + +2025-10-11 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 1895ba3ba3b ; Document %i format + 85db0ac0d6e ; * doc/lispref/nonascii.texi (Explicit Encoding): Fix a ... + c119a3600ed ; * doc/lispref/tips.texi (Documentation Tips): Document ... + + Also fix trailing whitespace in test files. + +2025-10-11 Elías Gabriel Pérez <eg642616@gmail.com> + + hideshow: Fix cursor when using end-of-line indicators. + + bug#79580 + + * lisp/progmodes/hideshow.el (hs--make-indicators-overlays): Add + 'cursor' property to the EOL indicator, so it will not conflict + with flymake EOL indicators. + +2025-10-11 Pooya Moradi <pvonmoradi@gmail.com> (tiny change) + + Eglot: Add LSP server for TOML. + + * lisp/progmodes/eglot.el (eglot-server-programs): Add LSP server + for TOML. (Bug#79605) + +2025-10-11 Eli Zaretskii <eliz@gnu.org> + + Fix last change + + At least on MS-Windows, the last change caused the + process-tests/fd-setsize-no-crash/make-process test to hang. + * src/process.c (wait_reading_process_output) [WINDOWSNT]: Do + not stop monitoring the process descriptor when zero bytes are + read. The EOF indication from subprocesses on MS-Windows is + detected via an error condition (see w32.c), while zero-size + reads are not to be taken as such. (Bug#79436) + +2025-10-11 Spencer Baugh <sbaugh@janestreet.com> + + Stop monitoring fds after receiving EOF + + When a subprocess closes its stdout/stderr pipe, that causes + pselect to always indicate that fd is readable, and read to + always return with EOF on that fd. Therefore when we receive an + EOF we need to stop monitoring the fd. Otherwise Emacs will + spin at 100% CPU, repeatedly reading that same EOF off the fd. + + * src/process.c (wait_reading_process_output): When + 'read_process_output' returns EOF indication, stop monitoring + the descriptor. (Bug#79436) + +2025-10-11 Spencer Baugh <sbaugh@janestreet.com> + + Allow creating a pipe process without a buffer + + Previously, even passing :buffer nil to make-pipe-process would + create a buffer. Now, if you explicitly call (make-pipe-process + :buffer nil), it will create a pipe process without a buffer, + just like all the other process creation functions. + + * src/process.c (Fmake_pipe_process): Check for explicit :buffer + nil and don't make a buffer. (bug#79596) + * doc/lispref/processes.texi (Asynchronous Processes): Update. + * test/src/process-tests.el + (process-test-make-pipe-process-no-buffer): Add test. + +2025-10-11 Sahil Kang <sahil.kang@asilaycomputing.com> (tiny change) + + * src/pdumper.c (dump_queue_dequeue): Avoid -Wgnu-folding-constant. + + Fixes bug#79581 + +2025-10-11 Manuel Giraud <manuel@ledu-giraud.fr> + + Do not erase the output buffer upon empty async shell command + + * lisp/simple.el (shell-command): Test if an asynchronous + shell command is not empty before creating or erasing the + output buffer. (Bug#79560) + +2025-10-10 Arash Esbati <arash@gnu.org> + + Replace obsolete floatfig package with floatflt + + * doc/misc/reftex.texi (Builtin Label Environments): Mention the + floatflt LaTeX package instead of the obsolete floatfig. + + * lisp/textmodes/reftex-vars.el (reftex-label-alist-builtin): + Replace obsolete floatfig entry with floatflt. Add entry for + "floatingtable". + Fix type indicator for "tabwindow". + (reftex-default-label-alist-entries): Use floatflt as well. + +2025-10-09 Juri Linkov <juri@linkov.net> + + * lisp/progmodes/flymake.el: Improve flymake--resize-margins. + + (flymake--resize-margins): Move checking for a non-displayable + character to the loop over all supported symbols. + (flymake-margin-indicators-string): Mention the character name + in the docstring. + +2025-10-09 Spencer Baugh <sbaugh@janestreet.com> + + Treat a completion boundary change as completion + + In completion--do-completion, check if completion-try-completion + moved point out of the old completion boundaries. If that + happened, then we did non-trivial completion even if the string + is otherwise unchanged. + + For example, + ~/src/emacs/trunk/lisp|/progmodes/project.el + hitting TAB moves us to: + ~/src/emacs/trunk/lisp/|progmodes/project.el + then hitting TAB again moves us to + ~/src/emacs/trunk/lisp/progmodes/|project.el + + Both of these completions are successful, but we previously ran + code for completion failure (the t branch of the cond in + completion--do-completion) in the second case. In particular, + we would always run minibuffer-completion-help, ignoring the + specific value of completion-auto-help which controls whether or + not to run minibuffer-completion-help. Now we correctly run + code for successful completion for both cases. + + We also always have checked that we're in the same boundaries + before doing completion cycling; that check is now more + accurate (bug#79238). + + * lisp/minibuffer.el (completion--in-boundaries-p): Add. + (completion--do-completion): Check completion--in-boundaries-p. + +2025-10-09 Juri Linkov <juri@linkov.net> + + * lisp/xdg.el (xdg-mime-apps): Fix recent regression. + + After the change that introduced 'hash-table-contains-p' + it's necessary to keep setting 'files' to the hash value. + +2025-10-09 Juri Linkov <juri@linkov.net> + + Use shorter margin indicators in flymake-mode (bug#76254) + + * lisp/progmodes/flymake.el (flymake-margin-indicators-string): + Replace two-character error indicator "!!" with one character "‼". + Update the docstring. + (flymake--resize-margins): Use "!!" when "‼" is not displayable. + Calculate the margin width depending on the indicator string width. + +2025-10-09 Eli Zaretskii <eliz@gnu.org> + + * src/w32console.c: Fix last change (bug#79298). + +2025-10-09 Arash Esbati <arash@gnu.org> + + Remove setting of reference format + + * lisp/textmodes/reftex-vars.el (reftex-label-alist-builtin): + Don't set the reference format for ?f and ?t type indicators in + entries of subfig. + +2025-10-09 Eli Zaretskii <eliz@gnu.org> + + Fix text-terminal output with UTF-8 encoding on MS-Windows + + * src/w32console.c (w32con_write_glyphs) + (w32con_write_glyphs_with_face): Support UTF-8 encoded text + better, by counting characters and using display columns, not + bytes, to move the cursor after writing the text. (Bug#79298) + +2025-10-09 Roi Martin <jroi.martin@gmail.com> + + Fix font lock in csharp-ts-mode + + Fix font lock in csharp-ts-mode when the tree-sitter grammar is + automatically installed (Bug#79363). + * lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings): + Evaluate the rules only after the tree-sitter grammar is installed. + (csharp-ts-mode): Call the new `csharp-ts-mode--font-lock-settings' + function. + +2025-10-09 Roi Martin <jroi.martin@gmail.com> + + Fix font lock in java-ts-mode + + Fix font lock in java-ts-mode when the tree-sitter grammar is + automatically installed (Bug#79363). + * lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings): + Evaluate the rules only after the tree-sitter grammar is installed. + (java-ts-mode): Call the new `java-ts-mode--font-lock-settings' + function. + +2025-10-09 Stefan Monnier <monnier@iro.umontreal.ca> + + modes.texi: Declare official support for a standard "abuse" + + * doc/lispref/modes.texi (Search-based Fontification): + Explicitly mention the "abuse" of matchers that perform the + highlighting instead of matching. + +2025-10-08 LdBeth <andpuke@foxmail.com> + + newsticker.el: fix escaping of XML strings + + * lisp/net/newst-backend.el (newsticker--unxml): XML-escape + the parsed string in case it contains characters that could + confuse the HTML parser. (Bug#79600) + +2025-10-08 Michael Albinus <michael.albinus@gmx.de> + + Fix another inconsistency in auth-source.el + + * lisp/auth-source.el (auth-source-backends): Filter out backends + with type `ignore'. + (auth-source-search-spec): Use `_' in `and-let*' + +2025-10-08 Sean Whitton <spwhitton@spwhitton.name> + + vc-dir-resynch-file: Be more defensive about default-directory + + * lisp/vc/vc-dir.el (vc-dir-resynch-file): Use both + expand-file-name and buffer-local-toplevel-value on + default-directory before using the value. + +2025-10-08 Sean Whitton <spwhitton@spwhitton.name> + + define-globalized-minor-mode: Fix multiple globalized modes + + * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode): + Suppress MODE-set-explicitly function when enabling the mode + ourselves. + +2025-10-08 Michael Heerdegen <michael_heerdegen@web.de> + Elijah Gabe Pérez <eg642616@gmail.com> + + Fix a regression introduced by Bug#79294 fix + + * lisp/progmodes/hideshow.el (hs-hide-block-at-point): Try to restore + old semantics. Do nothing when no block positions are found. + +2025-10-07 Elijah Gabe Pérez <eg642616@gmail.com> + + (hs-hideable-region-p): Optimize the optimization + + * lisp/progmodes/hideshow.el (hs-hideable-region-p): Simplify + +2025-10-07 Sean Whitton <spwhitton@spwhitton.name> + + Merge from origin/emacs-30 + + c7ab3700675 ; * doc/lispref/control.texi (Conditionals): Grammar fix. + f3c29c1415e ; * doc/lispref/control.texi (Conditionals): Document SYM... + da47fa2f23b if-let*/when-let*/and-let*: Don't recommend (VALUEFORM) form + +2025-10-07 Sean Whitton <spwhitton@spwhitton.name> + + Merge from origin/emacs-30 + + cd400326b2f ; Improve documentation of 'string-glyph-split' + +2025-10-07 Sean Whitton <spwhitton@spwhitton.name> + + if-let*/when-let*/and-let*: Don't recommend (VALUEFORM) form + + * doc/lispref/control.texi (Conditionals): + * lisp/subr.el (if-let*): Document '(_ VALUEFORM)' instead of + '(VALUEFORM)'. + +2025-10-07 Ilya Chernyshov <ichernyshovvv@gmail.com> (tiny change) + + decoded-time-add: Use 'floor' + + * lisp/calendar/time-date.el (decoded-time-add): Use 'floor' to + count new year field value. + +2025-10-06 Sean Whitton <spwhitton@spwhitton.name> + + defvar-keymap: New ':prefix t' abbreviation + + * lisp/keymap.el (defvar-keymap): New ':prefix t' abbreviation. + * lisp/emacs-lisp/helper.el (Helper-help-map): + * lisp/vc/pcvs.el (cvs-mode-diff-map): + * lisp/vc/vc-hooks.el (vc-prefix-map): + * lisp/vcursor.el (vcursor-map): Use it. + * doc/lispref/keymaps.texi (Creating Keymaps): + * etc/NEWS: Document it. + +2025-10-06 Michael Albinus <michael.albinus@gmx.de> + + Don't call dbus-launch in dbus-tests.el + + * test/lisp/net/dbus-tests.el (dbus-test02-register-service-own-bus): + Adapt test. Don't use dbus-launch, call dbus-daemon directly. + See <1117059@bugs.debian.org>. + See <https://lists.debian.org/debian-devel/2016/08/msg00554.html>. + + * test/lisp/net/dbus-resources/session.conf.in: New file. It is + copied from <https://salsa.debian.org/debian/flatpak/-/blob/debian/ + trixie/tests/session.conf.in>. + +2025-10-06 Eshel Yaron <me@eshelyaron.com> + + Add documentation about ELisp semantic highlighting + +2025-10-06 Eshel Yaron <me@eshelyaron.com> + + elisp-scope.el: Unify and generalize local function/macro handling + + * lisp/emacs-lisp/elisp-scope.el + (elisp-scope-local-definitions): New variable. Replaces... + (elisp-scope-flet-alist, elisp-scope-macrolet-alist): these. + Removed, no longer used. + (elisp-scope-1, elisp-scope--handle-quoted): Update. + (elisp-scope-with-local-definition): New macro. + (elisp-scope-flet, elisp-scope-labels, elisp-scope-named-let) + (elisp-scope-cl-macrolet): Use it. + +2025-10-06 Martin Rudalics <rudalics@gmx.at> + + Run buffer-local window change functions in their buffers now + + The buffer-local-versions of 'window-buffer-change-functions', + 'window-size-change-functions', + 'window-selection-change-functions' and + 'window-state-change-functions' are now run with the respective + buffer temporarily current. Also, the local version of + 'window-buffer-change-functions' is run for the buffer removed + from the window too. + + * src/window.c (run_window_change_functions_locally) + (run_window_change_functions_globally): New functions replacing + 'run_window_change_functions_1'. + (run_window_change_functions): Run the buffer local versions of + these hooks in their respective buffers. Run + 'window-buffer-change-functions' for the buffer removed from the + window too. + (Vwindow_buffer_change_functions, Vwindow_size_change_functions) + (Vwindow_selection_change_functions) + (Vwindow_state_change_functions): Mention that the buffer-local + versions are run with their buffer temporarily current. + * doc/lispref/windows.texi (Window Hooks): Mention that + buffer-local-versions of window change functions are run with + their buffer temporarily current. Also say that + 'window-buffer-change-functions' will be run for removed buffer + too. + * etc/NEWS: Advertise changes for the buffer-local versions of + window change functions. + +2025-10-05 Eli Zaretskii <eliz@gnu.org> + + Fix rare breakage of 'revert-buffer' in 'archive-mode' + + * lisp/arc-mode.el (archive--mode-revert): Avoid deletion of + some region of the reverted buffer by 'archive-desummarize'. + (Bug#79574) + +2025-10-05 Michael Albinus <michael.albinus@gmx.de> + + Add fallback backend in auth-sources + + * etc/NEWS: Describe effect of auth-sources being nil. + + * lisp/auth-source.el (auth-sources): Add const nil. + (auth-source-ignored-keys): New defconst. + (auth-source-backends, auth-source-keys) + (auth-source-search-keys, auth-source-returned-keys) + (auth-source-search-spec): New macros. + (auth-source-file-name-p, auth-source-search) + (auth-source-specmatchp, auth-source-netrc-create) + (auth-source-secrets-search, auth-source-secrets-create) + (auth-source-macos-keychain-search) + (auth-source-plstore-search, auth-source-plstore-create): Use them + (auth-source-read-passwd-search, auth-source-read-passwd-create): + New defuns. + + * test/lisp/auth-source-tests.el + (auth-source-backend-parse-plstore-string) + (auth-source-backend-parse-json-string) + (auth-source-backend-parse-fallback) + (auth-source-test-read-passwd-create-secret): New tests. + +2025-10-05 Sean Whitton <spwhitton@spwhitton.name> + + VC: Use symbolic names for the working revision + + * lisp/vc/vc-hg.el (vc-hg-diff): When OLDVERS is ".", behave the + same as if OLDVERS was the actual working revision. + (vc-hg-previous-revision): Return ".~1" for input ".", ".~3" for + input ".^^" et cetera. + Also, when passed non-symbolic revisions, use "REV~1" instead of + "REV^" for MS-Windows compatibility. + (vc-hg-working-revision-symbol): + * lisp/vc/vc-git.el (vc-git-working-revision-symbol): + * lisp/vc/vc-hooks.el (vc-symbolic-working-revision): New + functions. + (vc-default-mode-line-string): + * lisp/vc/ediff-vers.el (ediff-vc-merge-internal): + * test/lisp/vc/vc-tests/vc-tests.el (vc-test--checkin-patch): + * lisp/vc/vc.el (vc-diff-build-argument-list-internal) + (vc-diff-outgoing, vc-revision-other-window, vc-default-revert): + Call vc-symbolic-working-revision. + (vc-buffer-revision): Specify that this should always be a + revision number/hash, not a symbolic name. + * lisp/vc/vc-git.el (vc-git-previous-revision): Return "HEAD~1" + for input "HEAD", "HEAD~3" for input "HEAD^^" et cetera. + +2025-10-04 Sean Whitton <spwhitton@spwhitton.name> + + VC: New commands for cherry-picking (bug#79408) + + * lisp/vc/diff-mode.el (diff-buffer-file-names): New function. + * lisp/vc/log-view.el (vc--pick-or-revert) + (vc--prompt-other-working-tree): Autoload. + (vc-parent-buffer-name, vc-log-short-style) + (vc-print-log-internal): Declare. + (log-view--pick-or-revert): New function. + (log-view-revision-cherry-pick, log-view-revision-revert): New + commands. + (log-view-mode-map, log-view-mode-menu): Bind them. + * lisp/vc/vc-dispatcher.el (vc-start-logentry): If + get-file-buffer returns nil, use the current buffer as the + parent buffer. + * lisp/vc/vc.el (diff-buffer-file-names, diff-reverse-direction): + Declare. + (vc--pick-or-revert): New function. + (vc-revision-cherry-pick, vc-revision-revert): New commands. + * lisp/vc/vc-hooks.el (vc-menu-map): Bind them. + * doc/emacs/maintaining.texi (VC Change Log, VC Undo) + (Copying Between Branches): + * etc/NEWS: Document the new commands. + +2025-10-04 Sean Whitton <spwhitton@spwhitton.name> + + Improve log-view-copy-revision-as-kill + + * lisp/vc/log-view.el (log-view-copy-revision-as-kill): Signal + user-error if there is no revision at point. + * doc/emacs/maintaining.texi (VC Change Log): + * etc/NEWS: Shorten docs for the new command. + +2025-10-04 Timo Myyrä <timo.myyra@bittivirhe.fi> + + New command log-view-copy-revision-as-kill + + * lisp/vc/log-view.el (log-view-copy-revision-as-kill): New + command. + (log-view-mode-map): Bind it. + * doc/emacs/maintaining.texi (VC Change Log): + * etc/NEWS: Document it. + +2025-10-04 Elías Gabriel Pérez <eg642616@gmail.com> + + hideshow.el: Minor optimizations + + * lisp/progmodes/hideshow.el (hs-hideable-region-p): New + function. + (hs--make-indicators-overlays, hs--add-indicators) + (hs-hide-block-at-point, hs-hide-all, hs-hide-block) + (hs-hide-initial-comment-block): Use it. (Bug#79533) + +2025-10-04 Augusto Stoffel <arstoffel@gmail.com> + + Add 'auto-mode-alist' entry for Containerfile + + * lisp/progmodes/dockerfile-ts-mode.el: Also match Containerfile + and Containerfile.* in the 'auto-mode-alist' entry. (Bug#79524) + +2025-10-03 Stefan Monnier <monnier@iro.umontreal.ca> + + (editorconfig-indentation-alist): Pare down + + * lisp/editorconfig.el (editorconfig-indentation-alist): Remove entries + of the form `(MODE-mode MODE-basic-offset)`, `(MODE-mode + MODE-indent-level)`, or `(MODE-mode MODE-indent-offset)` since they are + covered by the fallback guessing code. + (editorconfig--default-indent-size-function): Remove "-block-offset" + from the guessing code since it's used only by `octave-mode`. + +2025-10-03 Sean Whitton <spwhitton@spwhitton.name> + + New command log-view-unmark-all-entries + + * lisp/vc/log-view.el (log-view-unmark-all-entries): New + command. + (log-view-mode-map): Bind it. + * doc/emacs/maintaining.texi (VC Change Log): + * etc/NEWS: Document it. + +2025-10-03 Sean Whitton <spwhitton@spwhitton.name> + + Merge from origin/emacs-30 + + 0aa44112b68 ; * doc/emacs/maintaining.texi (VC Change Log): Missing a... + +2025-10-03 Sean Whitton <spwhitton@spwhitton.name> + + Merge from origin/emacs-30 + + 6a8fda1f339 Fix process name matching in 'tramp-process-running-p' + 217fd4f09ea ; * doc/lispref/modes.texi (Defining Minor Modes): Fix la... + +2025-10-03 Sean Whitton <spwhitton@spwhitton.name> + + vc--prompt-other-working-tree: Better handle no other working trees + + * lisp/vc/vc.el (vc--prompt-other-working-tree): If there are no + other working trees but ALLOW-EMPTY is non-nil, it is not an + error. + +2025-10-03 Spencer Baugh <sbaugh@janestreet.com> + João Távora <joaotavora@gmail.com> + + Eglot: make markup invisible instead of deleting it (bug#79552) + + We use gfm-view-mode to render Markdown before we hand over the string + to ElDoc (which usually put it in a 'special' mode "*eldoc*" buffer). + 'gfm-view-mode' adds keymap text properties to make links clickable. It + also makes some of the markup invisible with a special 'invisible' + property value which is specific to 'gfm-view-mode'. We used to delete + the latter, therefore breaking the link-clicking. Simply resetting the + regions with non-nil 'invisible' to 't' instead of deleting them fixes + this. See also https://github.com/joaotavora/eglot/discussions/1238 + + * lisp/progmodes/eglot.el: Make invisible markup invisible + instead of deleting it. + + * etc/EGLOT-NEWS: Mention bugfix. + +2025-10-02 Sean Whitton <spwhitton@spwhitton.name> + + Log View marking: Fix lambda lists + + * lisp/vc/log-view.el (log-view-mark-entry) + (log-view-unmark-entry): Mark ARG as a required argument, as it + in fact is. + (log-view-toggle-mark-entry): Call them properly. + +2025-10-02 Eli Zaretskii <eliz@gnu.org> + + * lisp/term/w32-nt.el (dynamic-library-alist): Add libxml2-16.dll. + + Reported by Andy Moreton <andrewjmoreton@gmail.com>. + +2025-10-02 Eli Zaretskii <eliz@gnu.org> + + Fix 'restart-emacs' on MS-Windows + + * src/w32.c (w32_reexec_emacs): Reset undocumented bits in + STARTUPINFO flags. Suggested by yhr0x43 <yhr0x43@gmail.com>. + (Bug#79554) + +2025-10-01 Sean Whitton <spwhitton@spwhitton.name> + + New command vc-kill-other-working-tree-buffers + + * lisp/vc/vc.el (vc-kill-other-working-tree-buffers): New + command. + * lisp/vc/vc-hooks.el (vc-prefix-map): Bind it. + * doc/emacs/vc1-xtra.texi (Other Working Trees): + * etc/NEWS: Document it. + +2025-10-01 Renato Ferreira <renatofdds@gmail.com> (tiny change) + + Fix process name matching in 'tramp-process-running-p' + + * lisp/net/tramp.el (tramp-process-running-p): Use 'compare-strings' + for matching PROCESS-NAME with process command. (Bug#79545) + +2025-10-01 Sean Whitton <spwhitton@spwhitton.name> + + vc-add-working-tree: Finish by starting Dired + + There won't be any uncommitted changes in the new working tree + yet, so vc-dir is unlikely to be useful. + + * lisp/vc/vc.el (vc-add-working-tree): Finish by calling 'dired' + not 'vc-dir'. + * test/lisp/vc/vc-tests/vc-tests.el + (vc-test--other-working-trees): Delete stubbing out 'vc-dir'. + +2025-10-01 Juri Linkov <juri@linkov.net> + + * lisp/hl-line.el (global-hl-line-buffers): Skip internal buffers (bug#79547). + +2025-10-01 Eshel Yaron <me@eshelyaron.com> + + (elisp-scope-get-symbol-type-property): Revise inheritance handling. + +2025-09-30 Sean Whitton <spwhitton@spwhitton.name> + + vc-test--checkin-patch: Use atomic change groups + + * test/lisp/vc/vc-tests/vc-tests.el (vc-test--with-temp-change): + New macro. + (vc-test--checkin-patch): Use it. + +2025-09-30 Sean Whitton <spwhitton@spwhitton.name> + + VC: Allow deleting or moving current working tree + + * lisp/progmodes/project.el (project-prompter) + (project-prompt-project-dir, project-prompt-project-name): + * lisp/vc/vc.el (vc--prompt-other-working-tree): New ALLOW-EMPTY + optional argument. + (delete-working-tree, move-working-tree): Specify that callers + must ensure DIRECTORY is not the current working tree. + (vc-delete-working-tree, vc-move-working-tree): Pass ALLOW-EMPTY + non-nil to vc--prompt-other-working-tree. Bind + 'default-directory' to another working tree when operating on + the current working tree. + (vc-delete-working-tree): Extra prompt when asked to delete the + current working tree. When deleting the current working tree, + call 'bury-buffer' one or more times at the end. + +2025-09-30 Stephen Berman <stephen.berman@gmx.net> + + Fix debug specs in minibuffer-tests.el macros (bug#79499) + + * test/lisp/minibuffer-tests.el (with-minibuffer-setup) + (completing-read-with-minibuffer-setup): Prevent instrumenting + functions that call these macros from erroring due to an invalid + debug specification in the 'declare' form. Use 't' as the debug + spec since it is the most general and adequate here. + +2025-09-29 Juri Linkov <juri@linkov.net> + + New value 'window' of 'global-hl-line-sticky-flag' + + * etc/NEWS: Rename 'global-hl-line-modes' to 'global-hl-line-buffers' + (bug#79481). Mention new default value of 'global-hl-line-buffers' + (bug#64993). Mention new value 'window' of 'global-hl-line-sticky-flag' + that is more useful than the value 'all' now removed from NEWS (bug#64993). + + * lisp/hl-line.el (hl-line-nonselected): New face. + (global-hl-line-sticky-flag): Add the value 'window'. + (global-hl-line-buffers): Change the default value to exclude + the minibuffer and 'cursor-face-highlight-mode'. + (global-hl-line-mode): Handle the value 'window' of + 'global-hl-line-sticky-flag'. + (global-hl-line-window-redisplay): New function. + +2025-09-29 Juri Linkov <juri@linkov.net> + + Fix completions truncated on scrolling (bug#79506) + + * lisp/simple.el (completion-setup-function): + Add 'completion--lazy-insert-strings-on-scroll' + to buffer-local hook 'window-scroll-functions'. + + * lisp/minibuffer.el (completion--lazy-insert-strings-on-scroll): + New function. + (completion--in-region-1): Remove calls to the function + 'completion--lazy-insert-strings' that now are handled + by the scroll hook. + +2025-09-29 Robert Pluim <rpluim@gmail.com> + + Fix macOS build with SDK version 26 + + * configure.ac: Use gl_CHECK_FUNCS_ANDROID_MACOS to check for + 'posix_spawn_file_actions_addchdir', since it checks which + version of macOS is being used for the build, rather than what + is available in the SDK. (Bug#79489) + +2025-09-29 Eshel Yaron <me@eshelyaron.com> + + Add optional semantic highlighting for Emacs Lisp. + + * lisp/emacs-lisp/scope.el: New file. + + * lisp/progmodes/elisp-mode.el (elisp): New 'defgroup'. + (elisp-add-help-echo, elisp-fontify-semantically) + (elisp-fontify-symbol-precedence-function): New options. + (elisp-symbol-at-mouse, elisp-free-variable, elisp-condition) + (elisp-major-mode-name, elisp-face, elisp-symbol-type) + (elisp-symbol-type-definition, elisp-function-reference) + (elisp-non-local-exit, elisp-unknown-call, elisp-macro-call) + (elisp-special-form, elisp-throw-tag, elisp-feature) + (elisp-rx, elisp-theme, elisp-binding-variable) + (elisp-bound-variable, elisp-shadowing-variable) + (elisp-shadowed-variable, elisp-variable-at-point) + (elisp-warning-type, elisp-declaration, elisp-thing) + (elisp-slot, elisp-widget-type, elisp-type, elisp-group) + (elisp-nnoo-backend, elisp-ampersand, elisp-constant) + (elisp-defun, elisp-defmacro, elisp-defvar, elisp-defface) + (elisp-icon, elisp-deficon, elisp-oclosure) + (elisp-defoclosure, elisp-coding, elisp-defcoding) + (elisp-charset, elisp-defcharset, elisp-completion-category) + (elisp-completion-category-definition): New faces. + (elisp-local-references, elisp-highlight-variable) + (elisp-unhighlight-variable, elisp-cursor-sensor) + (elisp--function-help-echo, elisp--help-echo-1) + (elisp--help-echo, elisp--annotate-symbol-with-help-echo) + (elisp-extend-region-to-whole-defuns, elisp-fontify-symbol) + (elisp-fontify-region-semantically, elisp-fontify-region): + New functions. + (emacs-lisp-mode): Set 'font-lock-extra-managed-props', + 'font-lock-fontify-region-function' and + 'font-lock-extend-region-functions'. + + * etc/NEWS: Announce new feature. + +2025-09-29 Eli Zaretskii <eliz@gnu.org> + + Fix 'mm-copy-to-buffer' when original text is multibyte + + * lisp/gnus/mm-decode.el (mm-copy-to-buffer): Always return a + unibyte buffer. If the original text was multibyte, encode it + while inserting it into the copy buffer. (Bug#79376) + +2025-09-29 Liu Hui <liuhui1610@gmail.com> + + Fix etags-regen-mode for remote projects (bug#79358) + + * lisp/progmodes/etags-regen.el + (etags-regen--process-file-region): New function. + (etags-regen--tags-generate, etags-regen--append-tags): Use the + new helper function to run the program, and use relative file + name if TAGS file is in the project root. + (etags-regen--update-file): Use relative file name if possible. + +2025-09-28 Eli Zaretskii <eliz@gnu.org> + + Make textsec descriptive texts more user-friendly + + * lisp/international/textsec.el (textsec-domain-suspicious-p) + (textsec-local-address-suspicious-p, textsec-name-suspicious-p) + (textsec-suspicious-nonspacing-p): Clarify descriptive texts. + +2025-09-28 Eli Zaretskii <eliz@gnu.org> + + Detect suspicious email addresses in Rmail and Sendmail + + * lisp/mail/rmail.el (rmail-detect-suspicious-headers): New user + option. + (rmail-check-suspicious-from): New function, highlights suspicious + "From" addresses. + (rmail-show-message-1): Call 'rmail-check-suspicious-from' if + 'rmail-detect-suspicious-headers' is non-nil. + * lisp/mail/sendmail.el (mail-send): Detect suspicious addresses + before sending. + + * etc/NEWS: Announce the new features. + +2025-09-28 Eli Zaretskii <eliz@gnu.org> + + Revert "Fix bug#79518 with 'windmove-mode' in "C-h m" display" + + This reverts commit bf750adc4e637d871d551bab5b5c6ff9240797ed. + It caused windmove to be loaded unconditionally. + The correct "fix" for bug#79518 is to load the package or + to toggle the mode. + +2025-09-28 Stefan Monnier <monnier@iro.umontreal.ca> + + peg.el: Fix bug#79502 a bit more + + * lisp/progmodes/peg.el (peg--detect-cycles): Accept args. + (peg--detect-cycles) <funcall>: New method. + +2025-09-27 Stefan Monnier <monnier@iro.umontreal.ca> + + peg.el: Fix bug#79502 + + * lisp/progmodes/peg.el (peg--merge-error): Provide a default method. + (peg--merge-error) <call>: Handle calls with arguments. + (peg--merge-error) <any, not>: Remove methods, now redundant with the + default method. + (peg--merge-error) <guard>: Delegate to the default method if we can't + do better. + +2025-09-27 Sean Whitton <spwhitton@spwhitton.name> + + VC prepare-patch: New :patch-start & :patch-end plist entries + + * lisp/vc/vc.el (prepare-patch): Specify :patch-start and + :patch-end plist entries. + * lisp/vc/vc-git.el (vc-git-prepare-patch): Use -n1 to avoid + passing a revision range to git-format-patch, which is a bit + simpler. Catch search-failed errors and signal an error with a + more helpful message. Properly handle Subject: header by + looking for continuation lines. Return :patch-start and + :patch-end entries in the plist. + * lisp/vc/vc-hg.el (vc-hg-prepare-patch): Always pass --git to + 'hg export' for consistency. Catch search-failed errors and + signal an error with a more helpful message. Return a + :patch-start entry in the plist. + +2025-09-27 Sean Whitton <spwhitton@spwhitton.name> + + vc-test--checkin-patch: Restore alternative revert code path + + * test/lisp/vc/vc-tests/vc-tests.el (vc-test--checkin-patch): + For the last stage of the test, restore alternative code path + for Git, though this time limited to when running the test on + MS-Windows. Cf. subthread starting from + <https://lists.gnu.org/archive/html/emacs-devel/2025-09/msg00785.html>. + +2025-09-27 Paul Eggert <eggert@cs.ucla.edu> + Spencer Baugh <sbaugh@janestreet.com> + + Use up-to-date time in wait_reading_process_output + + In “Avoid duplicate calls to current_timespec” (2015-07-05) + we started caching current_timespec results in NOW. + However, this was buggy: we updated NOW only when the timeout was + nonzero, but the timeout can be set temporarily to zero in several + places in wait_reading_process_output (such as when checking for + process status changes), which would cause us to never update NOW + and therefore never detect that a timeout happened. + + Also, this caching was wrong even in principle: since we call + Lisp code from wait_reading_process_output, substantial amounts + of time can pass, and we can be left using an outdated NOW and + incorrectly not time out. Also, nowadays we can use + monotonic_coarse_timespec which is fast, and which is better + anyway because it’s immune to manual clock changes. + + * src/process.c (wait_reading_process_output): + Stop caching the current realtime. + Instead, use the coarse monotonic clock without caching. + +2025-09-27 Paul Eggert <eggert@cs.ucla.edu> + + Prefer coarse timestamps when using X sync + + They are good enough for this purpose, and are cheaper to get. + * src/timefns.c (monotonic_coarse_timespec): New function. + * src/xterm.c [HAVE_XSYNC && !USE_GTK && HAVE_CLOCK_GETTIME]: + (x_sync_current_monotonic_time): Use it. + (CLOCK_MONOTONIC): Remove; no longer uneeded here. + +2025-09-27 Juri Linkov <juri@linkov.net> + + Improve documentation and customization of 'derived-mode' in buffer predicate + + * doc/lispref/buffers.texi (Buffer List): + * lisp/subr.el (buffer-match-p): + Document that 'derived-mode' can be a list (bug#79481). + + * lisp/wid-edit.el (buffer-predicate): Support a list for 'derived-mode'. + +2025-09-27 Paul Eggert <eggert@cs.ucla.edu> + + Document coding system issues with system-*-locale + +2025-09-27 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 6d35c807e5f ; Improve documentation of globalized minor modes + 704fab0452a ; Improve documentation of handling errors + 307f465f7b9 ; * doc/lispref/text.texi (Suspicious Text): Fix suspicio... + 6bedbafc7ad ; * doc/lispref/text.texi (Suspicious Text): Indexing fix. + +2025-09-27 Martin Rudalics <rudalics@gmx.at> + + Restore mouse line dragging in character increments (Bug#79351) + + * lisp/mouse.el (mouse-drag-line): Restore dragging in character + increments and make it the default (Bug#79351). + * etc/NEWS: Mention restored behavior of mouse line dragging. + +2025-09-26 Sean Whitton <spwhitton@spwhitton.name> + + vc-test--checkin-patch: Use {author} not {user} + + * test/lisp/vc/vc-tests/vc-tests.el (vc-test--checkin-patch): + Use Mercurial template '{author}' not '{user}' for + compatibility. + +2025-09-26 Jakub Ječmínek <kuba@kubajecminek.cz> + + nnmbox-read-mbox: fix Xref header parsing + + * lisp/gnus/nnmbox.el (nnmbox-read-mbox): Use the 'mail-fetch-field' + function instead of a broken regexp which matched Date-like headers. + + (Bug#79167) + +2025-09-26 Eli Zaretskii <eliz@gnu.org> + + Fix bug#79518 with 'windmove-mode' in "C-h m" display + + * lisp/windmove.el (windmove-mode): Make sure "C-h m" mentions it. + +2025-09-26 Eli Zaretskii <eliz@gnu.org> + + Fix dunnet when played on terminals which don't support UTF-8 + + * lisp/play/dunnet.el (dun-rooms, dun-endgame-question, dun-help) + (dun-physobj-desc, dun-endgame-questions): Don't use non-ASCII + characters. (Bug#79520) + +2025-09-25 Stefan Monnier <monnier@iro.umontreal.ca> + + (dabbrev-completion): Try and fix the test regressions + + * lisp/dabbrev.el (dabbrev-completion): Revert this part of last + change, but additionally set `dabbrev--last-abbrev-location` so we know + what the vars were reset for. + (dabbrev-capf): Be more careful about when and how to reset the vars. + (dabbrev--abbrev-at-point): Don't set `dabbrev--last-abbrev-location`, + so it doesn't mess with the marker we set it to in + `dabbrev-capf` or `dabbrev-completion`. + +2025-09-25 Elías Gabriel Pérez <eg642616@gmail.com> + + (electric-indent-actions): Add missing NEWS + + * lisp/electric.el (electric-indent-actions): Fix docstring. + +2025-09-25 Sean Whitton <spwhitton@spwhitton.name> + + vc-git--checkin: Ignore 'git apply --3way' exiting 1 + + This is expected to happen in some cases. + + * lisp/vc/vc-git.el (vc-git--with-apply-temp): New OKSTATUS + parameter. + (vc-git--checkin): Use it to ignore 'git apply --3way' exiting + 1. + +2025-09-25 Sean Whitton <spwhitton@spwhitton.name> + + vc-git--checkin: Avoid passing --ours to git-apply + + * lisp/vc/vc-git.el (vc-git--with-apply-temp): New BUFFER param. + (vc-git--checkin): Avoid passing --ours to git-apply. + +2025-09-25 Michael Albinus <michael.albinus@gmx.de> + + Adapt tramp-tests.el + + * test/lisp/net/tramp-tests.el + (tramp-test26-interactive-file-name-completion): Adapt test. + +2025-09-25 Juri Linkov <juri@linkov.net> + + * lisp/minibuffer.el (minibuffer--nonselected-check): Simplify condition. + +2025-09-25 Yuan Fu <casouri@gmail.com> + + Fix infloop in python-ts-mode string fontification (bug#79457) + + * lisp/progmodes/python.el (python--treesit-fontify-string): + Make sure there's no infloop. + +2025-09-24 Alcor <alcor@tilde.club> (tiny change) + + (dabbrev-capf): Improve last fix for bug#61274 + + + * lisp/dabbrev.el (dabbrev-completion): Don't call + `dabbrev--reset-global-variables` any more. + (dabbrev-capf): Call it here, unconditionally, instead. + +2025-09-24 Juri Linkov <juri@linkov.net> + + * lisp/minibuffer.el (minibuffer--nonselected-check): Fix condition. + + To detect the completions buffer check for the buffer-local value of + 'completion-reference-buffer' in the newly selected window. + +2025-09-24 Daniel Mendler <mail@daniel-mendler.de> + + Improve minibuffer-nonselected-mode + + Use private names. Use hashed function symbols. Do not restrict the + overlay to the miniwindow, since the minibuffer can be displayed by + other windows, for example by packages using child frames or by + vertico-buffer-mode (bug#79490). + + * lisp/minibuffer.el (minibuffer-nonselected-setup): Rename to + minibuffer--nonselected-setup. Use hashed function symbols. + Add docstring. + (minibuffer-nonselected-check): Rename to + minibuffer--nonselected-check. Use hashed function symbols. + Do not restrict overlay to miniwindow. + (minibuffer-nonselected-overlay): Rename to + minibuffer--nonselected-overlay. + (minibuffer-nonselected-mode): Use hashed function symbol for + custom-initialize-delay. + +2025-09-24 Juri Linkov <juri@linkov.net> + + * lisp/hl-line.el: Rename global-hl-line-modes to global-hl-line-buffers. + + (global-hl-line-buffers): Rename from recently added 'global-hl-line-modes', + use :type 'buffer-predicate' and change the default value to a condition + to not match completion-list-mode. + (global-hl-line-highlight): Use 'buffer-match-p' instead of + 'easy-mmode--globalized-predicate-p' (bug#79481). + +2025-09-24 Juri Linkov <juri@linkov.net> + + * lisp/wid-edit.el (buffer-predicate): Implement complete specification. + + Support all conditions of 'buffer-match-p' in the Customization UI, + including recursive 'not', 'or' and 'and' (bug#79481). + +2025-09-24 Sean Whitton <spwhitton@spwhitton.name> + + VC: New cherry-pick-comment API function + + * lisp/vc/vc-git.el (vc-git-cherry-pick-comment): + * lisp/vc/vc-hg.el (vc-hg-cherry-pick-comment): + * lisp/vc/vc.el (vc-default-cherry-pick-comment): + New functions (bug#79408). + +2025-09-24 Sean Whitton <spwhitton@spwhitton.name> + + vc-git--checkin: Apply PATCH-STRING to working tree + + * lisp/vc/vc-git.el + (vc-git--with-apply-temp-to-staging): Rename ... + (vc-git--with-apply-temp): ... to this. New ARGS parameter. + All uses changes. + (vc-git--checkin): In POST function, apply PATCH-STRING to the + working tree with 'git apply --3way --ours'. + * lisp/vc/vc-hg.el (vc-hg--checkin): Document what the call to + 'hg update' is for. + * test/lisp/vc/vc-tests/vc-tests.el (vc-test--checkin-patch): + Delete completed FIXME and workaround. + +2025-09-24 Sean Whitton <spwhitton@spwhitton.name> + + vc-git--checkin: Restore dropping stash of staged changes + + * lisp/vc/vc-git.el (vc-git--checkin): Restore dropping stash of + staged changes after applying it. This was accidentally lost + when factoring out vc-git--with-apply-temp-to-staging. + +2025-09-24 Eli Zaretskii <eliz@gnu.org> + + * lisp/window.el (display-buffer-alist): Fix :key-type (bug#79496). + +2025-09-23 Stefan Monnier <monnier@iro.umontreal.ca> + + (electric-indent-actions): Fix corner case and refine setup + + * lisp/electric.el (electric-indent--activate-indent-actions): + Rename from `electric-indent-toggle-indent-actions`. Adjust callers. + Make its result less dependent on the input state. Support `yank` and + `before-save` at the same time. + (electric-indent-actions): Use it instead if `electric-indent-mode`. + +2025-09-23 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/electric.el (electric-indent-actions): Fix bootstrap + +2025-09-23 Elías Gabriel Pérez <eg642616@gmail.com> + + Add electric-indent actions to reindent (bug#79371) + + * lisp/electric.el (electric-indent-actions) + (electric-indent-function): New user options. + (electric-indent-should-reindent-p, electric-indent--yank-advice) + (electric-indent-save-hook): New functions. + (electric-indent-post-self-insert-function): Use them. + +2025-09-23 Stefan Monnier <monnier@iro.umontreal.ca> + + (electric-indent-functions-without-reindent): Pare down + + * lisp/electric.el (electric-indent-functions-without-reindent): + Remove obsolete entries: Haskell modes, python-mode, and + coffer-mode already disable electric reindentation on their + side, so we don't need those entries any more. + + * lisp/org/org.el (org-mode): Don't rely on + `electric-indent-functions-without-reindent'. + +2025-09-23 Yuan Fu <casouri@gmail.com> + + Fix python-ts-mode font-lock breakage by grammar change (bug#79457) + + * lisp/progmodes/python.el (python--treesit-fontify-string): Use + new algorithm. + +2025-09-22 Roi Martin <jroi.martin@gmail.com> + + Fix font lock in php-ts-mode + + Fix font lock in php-ts-mode when the tree-sitter grammars are + automatically installed. Also, update php-ts-mode to call the new + `mhtml-ts-mode--treesit-font-lock-settings' function. + + * lisp/progmodes/php-ts-mode.el (php-ts-mode--keywords) + (php-ts-mode--operators): Generate the lists after the tree-sitter + grammars are installed. + (php-ts-mode--font-lock-settings, php-ts-mode--font-lock-settings-cached) + (php-ts-mode--custom-html-font-lock-settings) + (php-ts-mode--custom-html-font-lock-settings-cached): Evaluate the rules + after the tree-sitter grammars are installed. Also, add cache for the + rules. + (php-ts-mode): Call the new + `php-ts-mode--custom-html-font-lock-settings' function. (Bug#79363) + +2025-09-22 Stephen Berman <stephen.berman@gmx.net> + + Navigate *Completions* buffer based on 'completions-format' + + This patch makes 'next-completion' and 'previous-completion' work + in the vertical completions format analogously to how they work in + the default horizontal format (bug#78959). It also fixes wrapping + in the vertical format and confines navigation (including + wrapping) in column-wise movement in the vertical format to the + current line, analogously to how navigation (including wrapping) + in line-wise movement in the horizontal format is confined to the + current column. + + * doc/emacs/mini.texi (Completion): Fix several typos and improve + wording is several places. + (Completion Commands): Document navigation of the *Completions* + buffer in the vertical format. Document the difference between + format-sensitive movement and strictly column-wise or line-wise + movement. Document 'minibuffer-complete-and-exit' and update the + documentation of 'minibuffer-completion-auto-choose' and + 'minibuffer-choose-completion'. Document the use of a numeric + prefix argument with the navigation commands. + (Completion Options): Rearrange and improve documentation of + 'completions-sort', 'completions-format' and + 'completion-auto-wrap', updating the latter to document the new + behavior. + + * lisp/minibuffer.el (minibuffer-visible-completions-map): Rebind + "<left>" to 'minibuffer-previous-column-completion' and "<right>" + to 'minibuffer-next-column-completion'. + (minibuffer-next-completion): Add check for whether completions + format is vertical to decide whether to call + 'next-line-completion' and replace calling 'next-completion' by + 'next-column-completion'. + (minibuffer-next-column-completion) + (minibuffer-previous-column-completion): New commands. + + * lisp/simple.el (completion-list-mode-map): Rebind "<left>" to + 'previous-column-completion' and "<right>" to 'next-column-completion'. + (last-completion): Add handling for vertical completions format. + (completion--move-to-candidate-end): Always move point to the + position immediately after the last character of the completion + candidate. This unifies the behavior, simplifies the + implementation and facilitates implementing the improved + navigation of the *Completions* buffer. + (previous-column-completion, next-column-completion): New + commands, replacing the previous definitions of + 'previous-completion' and 'next-completion' to reflect their + column-wise operation. Confine navigation (including wrapping) in + vertical format to the current line. + (previous-line-completion, next-line-completion): Implement + line-wise navigation (including wrapping) through all completions + in vertical format, not just those in the current column as in + horiztonal format. Update doc strings. + (next-completion, previous-completion): Redefine to call + '{next,previous}-line-completion' when completions format is + vertical and '{next,previous}-column-completion' otherwise. + + * test/lisp/minibuffer-tests.el + (completions-format-navigation--tests): New function providing a + template to define tests of the navigation and wrapping behavior + with specified numbers of completion candidates. + (completions-format-navigation-test-{2,3,4,5,10,15,16}): New tests. + +2025-09-22 Philipp Stephani <p.stephani2@gmail.com> + + Fix minor incorrect statement about shorthands. + + * doc/lispref/symbols.texi (Shorthands): Make documentation match + reality. See symbol_char_span in src/lread.c. + +2025-09-22 Andrea Corallo <acorallo@gnu.org> + + Revert "* Clean-up some compilation warnings in vc-hooks.el" + + This reverts commit dd622e06e7db8362ecdb69ecbd42b2fb01a5168b as + functions are autoloaded. + +2025-09-22 Andrea Corallo <acorallo@gnu.org> + + Make native lisp code reflect EQ C implementation + + * src/comp.c (ABI_VERSION): Bump new version + (comp_t): add 'eq'. + (helper_link_table): add 'slow_eq'. + (emit_slow_eq): New function. + (emit_EQ): Rework to reflect EQ implementation. + (declare_runtime_imported_funcs): Import 'slow_eq'. + (Fcomp__init_ctxt): Register emitter 'emit_eq' for op code Qeq. + + This and the previous 2 commits increase elisp-benchmarks performance by + 3.6% on my test machine. Also a (small) reduction in eln size comes with + it. + +2025-09-22 Andrea Corallo <acorallo@gnu.org> + + * Make sure the compiler optimizes for symbols_with_pos_enabled 0 in EQ + + * src/lisp.h (EQ): Make use '__builtin_expect'. + +2025-09-22 Pip Cet <pipcet@protonmail.com> + + Change EQ to move slow code path into a separate function + + * src/data.c (slow_eq): New function. + * src/lisp.h (EQ): Call it. + +2025-09-22 Juri Linkov <juri@linkov.net> + + * lisp/keymap.el (read-only-keymap-bind): The remaining fix. + + Replace 'browse-url-keymap-filter' with 'read-only-keymap-filter'. + +2025-09-22 Po Lu <luangruo@yahoo.com> + + Fix bootstrap and prevent browse-url from preloading numerous files + + * lisp/keymap.el (read-only-keymap-filter) + (read-only-keymap-bind): New functions, removed from + browse-url.el. + + * lisp/net/browse-url.el (browse-url-keymap-filter) + (browse-url-keymap-bind): Move to keymap.el. All callers + changed. + +2025-09-21 Sean Whitton <spwhitton@spwhitton.name> + + VC checkin-patch: Support extracting commit metadata from patches + + * lisp/vc/vc-git.el (vc-git--mailinfo): New function. + (vc-git-checkin-patch): Use it to extract authorship, date and + log message information from patches. + (vc-git--call): New INFILE argument. All uses changed. + * lisp/vc/vc-hg.el (vc-hg--checkin): When COMMENT is nil, take + authorship, date and log message information from the patch. + * lisp/vc/vc.el (checkin-patch): Specify to use authorship, date + and comment information in PATCH-STRING (bug#79408). + (prepare-patch): Specify that patch should include authorship + identity, date and log message information for REV if supported. + (diff-bounds-of-hunk): Declare. + (vc-default-checkin-patch): Warn if it looks like we will ignore + patch authorship information. + * test/lisp/vc/vc-tests/vc-tests.el (vc-hg-command) + (vc-git--out-str): Declare. + (vc-test--checkin-patch): New function. + (vc-test-git08-checkin-patch, vc-test-hg08-checkin-patch): New + tests. + +2025-09-21 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc-git.el (vc-git--checkin): Validate parameters. + +2025-09-21 Juri Linkov <juri@linkov.net> + + Support 'RET' for visiting URLs in read-only buffers (bug#74792) + + * lisp/net/browse-url.el (browse-url-keymap-filter) + (browse-url-keymap-bind): New functions. + (browse-url-button-map): Bind "C-c RET" to 'browse-url-button-open' + and rebind "RET" with the filter 'browse-url-keymap-bind'. + + * lisp/ansi-osc.el (ansi-osc-hyperlink-map): + * lisp/net/goto-addr.el (goto-address-highlight-keymap): + * lisp/progmodes/bug-reference.el (bug-reference-map): + Bind "RET" with the filter 'browse-url-keymap-bind'. + +2025-09-21 Roi Martin <jroi.martin@gmail.com> + + Suffix tree-sitter cache variables with "-cached" + + * lisp/progmodes/cmake-ts-mode.el (cmake-ts-mode--indent-rules) + (cmake-ts-mode--indent-rules-cached, cmake-ts-mode--font-lock-settings) + (cmake-ts-mode--font-lock-settings-cached): + * lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings) + (go-ts-mode--font-lock-settings-cached): + * lisp/progmodes/js.el (js--treesit-indent-rules) + (js--treesit-indent-rules-cached, js--treesit-font-lock-settings) + (js--treesit-font-lock-settings-cached): Suffix tree-sitter cache + variables with "-cached" (bug#79363). + +2025-09-21 Roi Martin <jroi.martin@gmail.com> + + Fix font lock and cache indent rules in mhtml-ts-mode + + Fix font lock in mhtml-ts-mode when the required tree-sitter grammars + are automatically installed (bug#79363). Also, cache tree-sitter indent + rules. + * lisp/textmodes/mhtml-ts-mode.el + (mhtml-ts-mode--treesit-font-lock-settings): Evaluate the rules only + after the tree-sitter grammars are installed. + (mhtml-ts-mode--treesit-indent-rules): Cache indent rules. + (mhtml-ts-mode): Call the new + `mhtml-ts-mode--treesit-font-lock-settings' function. + +2025-09-21 Steven Allen <steven@stebalien.com> + + Fix minibuffer-nonselected-mode when using recursive minibuffers + + * lisp/minibuffer.el (minibuffer-nonselected-setup): Use + window-buffer-change-functions in addition to + window-selection-change-functions to detect changes from one recursive + minibuffer to another within the same minibuffer-window. + (minibuffer-nonselected-check): Ensure that the target minibuffer is + current before checking/deleting the overlay (bug#79472). + +2025-09-20 Juri Linkov <juri@linkov.net> + + * lisp/progmodes/js.el: Obsolete 'js--treesit-sexp-nodes'. + + (js--treesit-sexp-nodes): Set the default value to nil and make obsolete. + (js--treesit-thing-settings): Instead of using + 'js--treesit-sexp-nodes', define a list of named and anonymous nodes + that don't match the 'sexp' thing (bug#79465). + +2025-09-20 Masatake YAMATO <yamato@redhat.com> + + (register-preview-info): sort registers in preview buffer + + * lisp/register.el (register-preview): Sort alist returned + from `register-of-type-alist'. (Bug#79474) + +2025-09-20 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 159ad91d0df ; Add Richard Stallman to admin/MAINTAINERS. + +2025-09-20 Eli Zaretskii <eliz@gnu.org> + + Avoid signaling errors in 'dabbrev-capf' + + * lisp/dabbrev.el (dabbrev-capf): Call + 'dabbrev--reset-global-variables' if necessary. (Bug#61274) + +2025-09-20 Elías Gabriel Pérez <eg642616@gmail.com> + + Add hideable indicators for hideshow. (Bug#79294) + + * doc/emacs/programs.texi (Hideshow): Update documentation. + * etc/NEWS: Announce changes. + * lisp/progmodes/hideshow.el (hs-show-indicators) + (hs-indicator-type, hs-indicator-maximum-buffer-size): New user + options. + (hs-indicator-hide, hs-indicator-show): New icons. + (hs-block-positions, hs--make-indicators-overlays) + (hs-indicator-mouse-toggle-hidding, hs--add-indicators) + (hs--refresh-indicators): New functions. + (hs-hide-block-at-point): Use hs-block-positions. + (hs-inside-comment-p): Use 'get-char-property' instead of + 'hs-overlay-at'. + (hs-minor-mode): Rework. + +2025-09-20 Janneke Nieuwenhuizen <janneke@gnu.org> + + Fix 'shell-resync-dirs' for multi-line prompt. + + * lisp/shell.el (shell-eval-command): Instead of always taking the last + element from the shell-dirtrack-query command, first try selecting the + last directory. (Bug#79441) + +2025-09-20 Eli Zaretskii <eliz@gnu.org> + + Improve documentation of 'accept-process-output' + + * doc/lispref/processes.texi (Accepting Output): + * src/process.c (Faccept_process_output): Document better the + meaning of the timeout of 'accept-process-output' a,d the fact + that it doesn't always return as soon as some output is available. + See https://lists.gnu.org/archive/html/emacs-devel/2025-08/msg00750.html + for more details. + +2025-09-20 Stephen Berman <stephen.berman@gmx.net> + + Prevent displaying an ungrammatical string in *Help* + + * lisp/help-fns.el (help-fns-function-description-header): If a + function type symbol begins with a vowel, precede it with the + article "an" instead of "a". To date this only prevents + displaying "a interpreted-function", and it's susceptible to + future false positives (bug#79469). + +2025-09-20 Po Lu <luangruo@yahoo.com> + + Fix reference leak in displaying successive dashes of distinct styles on Android + + * src/android.c (android_set_dashes): Always release local + reference to dash array even when it was returned by + GetObjectField. + +2025-09-19 Alan Mackenzie <acm@muc.de> + + CC Mode: Don't indent a construct in a class after a template + + This fixes bug#79438. + + * lisp/progmodes/cc-align.el (c-lineup-class-field-cont): New + function. + + * lisp/progmodes/cc-vars.el (c-offsets-alist): Change the + entry for class-field-cont from + to + c-lineup-class-field-cont. + + * doc/misc/cc-mode.texi (Misc Line-Up): Add a new entry for + c-lineup-class-field-cont. + +2025-09-19 Juri Linkov <juri@linkov.net> + + New mode 'minibuffer-nonselected-mode' + + * lisp/minibuffer.el (minibuffer-nonselected): New face. + (minibuffer-nonselected-overlay): New buffer-local variable. + (minibuffer-nonselected-check, minibuffer-nonselected-setup): + New functions. + (minibuffer-nonselected-mode): New command (bug#49844). + +2025-09-18 Mattias Engdegård <mattias.engdegard@gmail.com> + + * src/bytecode.c (exec_byte_code): Better quitcounter reset value. + + This value forces a quit check at the next backward branch, to avoid + rare situations being hard to interrupt. + Suggested by Pip Cet. + +2025-09-18 Juri Linkov <juri@linkov.net> + + * lisp/textmodes/mhtml-ts-mode.el: Fix for recent changes in js-ts-mode. + + (mhtml-ts-mode--treesit-font-lock-settings): Replace variable + 'js--treesit-font-lock-settings' with the function call. + (mhtml-ts-mode--treesit-indent-rules): Replace variable + 'js--treesit-indent-rules' with the function call (bug#79363). + +2025-09-18 Mattias Engdegård <mattiase@acm.org> + + Don't save quitcounter across longjmp in exec_byte_code + + * src/bytecode.c (exec_byte_code): Reset quitcounter to 1 after longjmp; + the exact value isn't important. This may reduce register pressure a + tiny bit or at least remove a useless stack slot. + +2025-09-18 Michael Albinus <michael.albinus@gmx.de> + + Fix failed tests on emba + + * test/lisp/autorevert-tests.el (auto-revert-test05-global-notify) + (auto-revert-test07-auto-revert-several-buffers): Adapt tests. + + * test/src/comp-resources/comp-test-funcs.el (foo): Define error symbol. + +2025-09-18 Andrea Corallo <acorallo@gnu.org> + + * Clean-up some compilation warnings in vc-hooks.el + + * lisp/vc/vc-hooks.el(vc-diff-outgoing-base) + (vc-root-diff-outgoing-base, vc-apply-to-other-working-tree) + (vc-apply-root-to-other-working-tree): Declare. + +2025-09-18 Sean Whitton <spwhitton@spwhitton.name> + + Refactor vc-git checkin functions + + * lisp/vc/vc-git.el (vc-git-patch-string): Delete. All uses + changed. + (vc-git--checkin): Rename vc-git-checkin to this. + (vc-git-checkin-patch, vc-git-checkin): New wrapper functions. + +2025-09-18 Sean Whitton <spwhitton@spwhitton.name> + + vc--prompt-other-working-tree: Fail when no other working trees + + * lisp/vc/vc.el (vc--prompt-other-working-tree): When there are + no other working trees, signal an error. + +2025-09-18 Leo C. Stein <leo.stein@gmail.com> (tiny change) + + Skip over possible blank lines returned by kpsewhich + + * lisp/ffap.el (ffap-latex-mode): Starting with TeXlive 2025, the + kpsewhich utility may return blank lines before the first valid + path for `ffap'. The old behavior of `ffap-latex-mode' was to + simply return the first line of output from kpsewhich (if the + output was nonempty). The fix simply skips all \r and \n chars. + (Bug#79397) + +2025-09-18 Roi Martin <jroi.martin@gmail.com> + + Fix font lock and indentation in js-ts-mode + + Fix font lock and indentation in js-ts-mode when the tree-sitter grammar + is automatically installed (Bug#79363). + * lisp/progmodes/js.el (js--treesit-indent-rules) + (js--treesit-font-lock-settings): Evaluate the rules only after the + tree-sitter grammar is installed. + (js-ts-mode): Call the new `js--treesit-indent-rules' and + `js--treesit-font-lock-settings' functions. + +2025-09-17 Eric Frederickson <ericfrederickson68@gmail.com> + + * doc/misc/eshell.texi (Scripts): Improve wording for 'eshell-batch-file'. + +2025-09-17 Michael Albinus <michael.albinus@gmx.de> + + * lisp/net/tramp.el (tramp-cache): Require at bottom. + +2025-09-17 Juri Linkov <juri@linkov.net> + + * lisp/hl-line.el: Various fixes (bug#64993). + + (hl-line-face): Move 'global-hl-line-overlay' updates + to the loop over buffers since it's a buffer-local variable. + (global-hl-line-maybe-unhighlight): Remove obsolete overlays + from 'global-hl-line-overlays'. + +2025-09-17 Mattias Engdegård <mattias.engdegard@gmail.com> + + Turn some checking macros into functions in the GC marker code + + This rids us of a bunch of unhygienic macros with free variables and + makes the marking code actually readable again. Even better, it is all + processed by the compiler even when the checks are disabled. + + * src/alloc.c (CHECK_ALLOCATED, CHECK_LIVE, CHECK_ALLOCATED_AND_LIVE) + (CHECK_ALLOCATED_AND_LIVE_SYMBOL): Transform macros into... + (check_live, check_allocated_and_live, check_allocated_and_live_symbol) + (check_allocated_and_live_vectorlike): ...functions. Callers adapted. + +2025-09-17 Jostein Kjønigsen <jostein@kjonigsen.net> + + Fixes for csharp-ts-mode fontification (bug#79406) + + - hightlight reserved keywords agressively, dont allow misuse as + variables etc (the compiler will fail!) + - highlight lambda-valued variables as funtions. + - improve semantics of function/class annotations using attributes + (maps closer to using-something than declaring it). also: rename to + "attribute". "property" has a different, defined meaning in C#. + - better highlight variable-use in different scenarios (function-calls, + if-statements, assignment-expressions, property-use, anonymous object + initializers). + - better highlight for property-use (anonymous object initializers). + - highlight field-declaration using font-lock-variable-face. + - fontify attributes using new face csharp-ts-mode-attribute-face + (defaults to font-lock-property-use-face). + - remove extensive use of "override" making evalutation hard-to-reason about. + + * lisp/progmodes/csharp-mode.el (csharp-ts-mode--indent-rules): + Update indent rules. + (csharp-ts-mode-faces): New group. + (csharp-ts-mode-attribute-face): New face. + (csharp-ts-mode--font-lock-settings): Rule updates. + (csharp-ts-mode): Change property feature to attribute + +2025-09-16 Juri Linkov <juri@linkov.net> + + New mode 'mouse-shift-adjust-mode' for S-<mouse-1> + + * lisp/mouse.el (mouse-shift-adjust-mode-map): New variable. + (mouse-shift-adjust-mode): New minor mode (bug#79453). + (mouse-shift-adjust-point): New variable. + (mouse-drag-region-shift-adjust): New command. + (mouse-drag-track, mouse-set-region): Use 'mouse-shift-adjust-point' + to take into account the already existing region boundary. + +2025-09-16 Juri Linkov <juri@linkov.net> + + * lisp/hl-line.el (global-hl-line-sticky-flag): New value 'all'. + + (global-hl-line-mode): Use 'global-hl-line-highlight-all' + for 'post-command-hook' when the value of + 'global-hl-line-sticky-flag' is 'all' (bug#64993). + +2025-09-16 Juri Linkov <juri@linkov.net> + + Context menu related fixes (bug#64980) + + * etc/PROBLEMS: Suggest how to keep context menus open on Lucid. + + * lisp/mouse.el (context-menu-mode-map): Bind [mouse-3] to + 'ignore' instead of 'nil' to not fallback to the default binding. + (mouse--drag-start-event): Remove unused variable. + (mouse-undouble-last-event): Remove unused function. + +2025-09-16 Stefan Monnier <monnier@iro.umontreal.ca> + + Revert "Fix generation of defvars defined by easy-mmode and company in loaddefs.el" + + This reverts commit e9800cabffa73018a83108de2bb4e1686f1e8385. + AFAICT that commit had no effect but it re-introduces some magic constants + in the code that we'd like to eliminate. + We presume it was a misunderstanding, trying to fix + a transient problem which a bootstrap would have fixed. + See https://lists.gnu.org/archive/html/emacs-devel/2025-08/msg00716.html + and https://lists.gnu.org/archive/html/emacs-devel/2025-09/msg00109.html + +2025-09-16 Sean Whitton <spwhitton@spwhitton.name> + + New commands to apply changes to other working trees + + * lisp/vc/diff-mode.el (diff-apply-buffer): New TEST argument. + * lisp/vc/vc.el (diff-apply-buffer): Declare. + (vc-no-confirm-moving-changes): New user option. + (vc-apply-to-other-working-tree) + (vc-apply-root-to-other-working-tree): New commands. + * lisp/vc/vc-hooks.el (vc-prefix-map): Bind them. + * doc/emacs/vc1-xtra.texi (Other Working Trees): + * etc/NEWS: Document them. + +2025-09-16 Dmitry Gutov <dmitry@gutov.dev> + + ruby-syntax-propertize: Add exception for /= + + * lisp/progmodes/ruby-mode.el (ruby-syntax-propertize): + Create an exception for assign-division operator not to be + recognized as regexp start (bug#79454). + + * test/lisp/progmodes/ruby-mode-resources/ruby.rb: Add example. + +2025-09-15 Vincenzo Pupillo <v.pupillo@gmail.com> + + Fix tree-sitter ABI version incompatibility in php-ts-mode + + * lisp/progmodes/php-ts-mode.el (php-ts-mode--language-source-alist): + For ABI version < 15 add the recommended version "v0.23.12" (full hash + "f7cf7348737d8cff1b13407a0bfedce02ee7b046"). + +2025-09-15 Michael Albinus <michael.albinus@gmx.de> + + Tramp code cleanup + + * lisp/net/tramp.el (tramp-use-absolute-autoload-file-names) + (tramp-skeleton-file-name-all-completions) + (tramp-parse-auth-sources, tramp-parse-file, tramp-parse-netrc): + * lisp/net/tramp-cache.el (tramp-parse-connection-properties): + * lisp/net/tramp-gvfs.el (tramp-gvfs-parse-device-names): + * lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory): + Use `seq-uniq'. + + * lisp/net/tramp.el (tramp-register-foreign-file-name-handler): + * lisp/net/tramp-fuse.el (tramp-fuse-handle-directory-files): + Use `seq-union'. + + * test/lisp/net/tramp-archive-tests.el + (tramp-archive-test17-insert-directory): + * test/lisp/net/tramp-tests.el (tramp-test17-insert-directory): + Use `seq-union'. + (tramp-test42-utf8): Use `seq-uniq' and `tramp-compat-seq-keep'. + +2025-09-15 Michael Albinus <michael.albinus@gmx.de> + + Improve check for netrc tokens + + * doc/misc/auth.texi (Help for users): Mention also "#" inside tokens. + + * lisp/auth-source.el (auth-source-netrc-create): Better check for + token format. + + * test/lisp/auth-source-tests.el (auth-source-backend-parse-json): + New test. + (auth-source-test-netrc-create-secret): Extend test. + +2025-09-14 Paul Eggert <eggert@cs.ucla.edu> + + Fix incorrect timezones for London and Paris + + Also, replace obsolete city name "Bangalore" with "Delhi", + and improve doc strings. + * lisp/time.el (zoneinfo-style-world-list) + (legacy-style-world-list): Evidently "Bangalore" was chosen for + Asia/Kolkata to avoid confusion about "Calcutta" vs "Kolkata". + However, it has similar confusion with "Bengaluru". + Use "Delhi" instead, as Delhi is larger, its name has not changed + for some time, and proposals to change its name have so far failed. + See: Sharma MS. Vijay Goel wants Delhi renamed as Dilli, but historians + say it will only spell trouble. Times of India. 2019-07-25. + (zoneinfo-style-world-list): Update doc string. “Posix-style” was + ambiguous as TZDB-style strings are specified only by POSIX.1-2024, + so use “TZDB-style” instead. Say “AREA/LOCATION” to be consistent. + If AREA/LOCATION is unsupported, Emacs signals an error on NetBSD + so don’t imply that some other timezone will be used. + (legacy-style-world-list): Remove ("GMT0BST" "London") and ("CET-1CDT" + "Paris"). These are wrong because neither London nor Paris follow + US DST rules. Instead, use ("GMT0BST,M3.5.0/1,M10.5.0" "London") + and ("CET-1CEST,M3.5.0,M10.5.0/3" "Paris") if they work, and omit + London and Paris entries otherwise. + +2025-09-14 Eli Zaretskii <eliz@gnu.org> + + * lisp/net/shr.el (shr-tag-sub): Handle BOB (bug#79448). + +2025-09-14 Andreas Schwab <schwab@linux-m68k.org> + + * lisp/calc/calc.el (calc): Ony substitute binding of + calc-help-prefix after calc-ext has been loaded. + +2025-09-14 Mattias Engdegård <mattias.engdegard@gmail.com> + + Use linear arrays in ispell test to work with old bash + + * test/lisp/textmodes/ispell-resources/fake-aspell-new.bash: + Avoid using associative arrays since they are not available + in old bash versions that come with some systems (bug#79177). + +2025-09-14 Eli Zaretskii <eliz@gnu.org> + + Fix gdb-mi startup when asking user about debuginfod + + * lisp/progmodes/gdb-mi.el (gdb-init-1): Delay processing of GDB + responses while waiting for the user to answer the question about + enabling debuginfod. (Bug#79403) + +2025-09-14 Eli Zaretskii <eliz@gnu.org> + + Fix 'ucs-normalize' tests following Unciode 17.0 import + + * lisp/international/ucs-normalize.el + (ucs-normalize-composition-exclusions): Doc fix. + + * test/lisp/international/ucs-normalize-tests.el + (ucs-normalize-tests--failing-lines-part1): Update to _really_ + match Unicode 17.0. + + * admin/notes/unicode: Update instructions. + +2025-09-13 James Thomas <jimjoe@gmx.net> + + (eww-switch-to-buffer): Prefer seq- functions to cl- + + * lisp/net/eww.el (eww-switch-to-buffer): Don't reverse the list + of buffers since it doesn't do what we want any way (bug#79084). + +2025-09-13 Eli Zaretskii <eliz@gnu.org> + + Fix 'define-globalized-minor-mode' when :variable is used + + * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode): + Fix a typo (bug#79412). + +2025-09-13 Eli Zaretskii <eliz@gnu.org> + + Fix Unicode-related tests + + * test/lisp/international/mule-tests.el + (mule-cmds-tests--ucs-names-missing-names): Update no-name regions + of codepoints to Unicode 17.0. + + * lisp/international/mule-cmds.el (ucs-names): Fix comments. + + * admin/notes/unicode: Update instructions. + +2025-09-13 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 47454566772 ; * lisp/dired-x.el (dired-find-subdir): Doc fix (bug#794... + 0832e5fec56 ; * lisp/vc/vc.el (vc-print-root-log): Improve docstring ... + 2fafcdbf6ac ; Minor copyedits in src/editfns.c + +2025-09-13 Vincenzo Pupillo <v.pupillo@gmail.com> + + Add support for PHP 8.5 in 'php-ts-mode.el' + + * lisp/progmodes/php-ts-mode.el: Doc string update. + (php-ts-mode--language-source-alist): PHP grammar update. + (php-ts-mode-find-sibling-rules): Doc string fix. + (php-ts-mode--parent-html-heuristic): Handled the case where there + is no HTML between two blocks of PHP code. + (php-ts-mode--array-element-heuristic): Fix typo. + (php-ts-mode--pipe-heuristic): New function that handle PHP's new + pipe operator. + (php-ts-mode--indent-styles): Removed commented code. More + accurate indentation of ‘member_call_expression’. Use of new + function to handle pipe operator indentation. New rule for + indenting ‘property_hook_list’. + (php-ts-mode--test-yield-from-p): New predicate to check whether + the 'yield from' keyword is supported by the PHP grammar. + (php-ts-mode--test-pipe-p): New predicate to check whether the + ‘pipe’ operator is supported by the PHP grammar. + (php-ts-mode--keywords): Use the new predicate + 'php-ts-mode--test-yield-from-p'. Now it is a var instead of a + const. + (php-ts-mode--operators): Use the new predicate + 'php-ts-mode--test-pipe-p'. Now it is a var instead of a const. + (php-ts-mode--font-lock-settings): New rules for + 'nullsafe_member_access_expression', 'callable' primitive type. + New rule for the 'php_end_tag' if supported by the grammar. + More precise rules for 'scoped_call_expression' and + 'member_call_expression'. + (php-ts-mode--inferior-php-process): Removed this unnecessary + variable. + (inferior-php-ts-mode-startup): Removed the use of + 'php-ts-mode--inferior-php-process'. + (php-ts-mode-inferior--write-history): Removed the use of + 'php-ts-mode--inferior-php-process'. + (Bug#79339) + +2025-09-13 Eli Zaretskii <eliz@gnu.org> + + Fix 'kill-region' when buffer has been changed outside of Emacs + + * lisp/subr.el (read-char-choice): Let-bind 'last-command' to + prevent it from being overwritten by 'recursive-edit'. + (Bug#79388) + +2025-09-13 Alcor <alcor@tilde.club> + + Fix parsing single-digit color codes in rcirc + + * lisp/net/rcirc.el (rcirc-color-attributes) + (rcirc-remove-markup-codes): Handle single-digit color codes correctly. + +2025-09-13 Spencer Baugh <sbaugh@janestreet.com> + + Allow disabling of reloading files on doc read failure + + Reloading a byte-compiled file when we fail to fetch some + docstring in it is not guaranteed to work and can cause + subtle bugs which are worse than simply not having a + docstring. Add 'documentation-dynamic-reload' variable to + allow disabling this behavior. See the discussion in + https://lists.gnu.org/archive/html/emacs-devel/2025-08/msg00304.html + for more details. + * src/doc.c (syms_of_doc): Add 'documentation-dynamic-reload'. + (Fdocumentation, Fdocumentation_property): Check value of + 'documentation-dynamic-reload'. + +2025-09-13 Michael Albinus <michael.albinus@gmx.de> + + * lisp/comint.el (comint-password-prompt-regexp): Join two entries. + +2025-09-13 Andre A. Gomes <andremegafone@gmail.com> + + Make comint understand SSH proxy password phrases + + * lisp/comint.el (comint-password-prompt-regexp): + * test/lisp/comint-tests.el (comint-testsuite-password-strings): + Add SSH proxy password phrase. (Bug#79424) + +2025-09-12 Sean Whitton <spwhitton@spwhitton.name> + + Delete obsolete log-edit-beginning-of-line + + * lisp/vc/log-edit.el (message): No longer require. + (log-edit-beginning-of-line): Delete. No longer required now + that Log Edit buffers use fields for headers. (In combination + with the new fields, this binding led to C-a behaving strangely + for summaries with colons in them.) + (log-edit-mode-map): Unbind it. + +2025-09-12 Michael Albinus <michael.albinus@gmx.de> + + Fix last change + + * test/lisp/textmodes/ispell-tests/ispell-aspell-tests.el: + * test/lisp/textmodes/ispell-tests/ispell-hunspell-tests.el: + * test/lisp/textmodes/ispell-tests/ispell-international-ispell-tests.el: + * test/lisp/textmodes/ispell-tests/ispell-tests.el: Fix load argument. + +2025-09-12 Lockywolf <for_emacs_1@lockywolf.net> + + Add tests to ispell.el interactive functions + + * lisp/textmodes/ispell.el (ispell-accept-output): Fix variable init. + + * test/lisp/textmodes/ispell-resources/fake-aspell-new.bash: + Update mock aspell to be able to serve all tests. + + * test/lisp/textmodes/ispell-tests/ispell-aspell-tests.el: + (ispell/aspell/ispell-word/english/correct): Implement. + (ispell/aspell/ispell-word/english/incorrect): Implement. + (ispell/aspell/ispell-word/english/wrong-language): Implement. + + * test/lisp/textmodes/ispell-tests/ispell-hunspell-tests.el + Fix byte compilation errors. + + * test/lisp/textmodes/ispell-international-ispell-tests.el + Fix byte compilation errors. + + * test/lisp/textmodes/ispell-tests/ispell-tests-common.el + (with-ispell-global-dictionary): Implement a macro to + set and restore ispell.el's global dictionary. + + * test/lisp/textmodes/ispell-tests/ispell-tests.el: + (ispell/ispell-buffer-local-words/ispell-words-keyword): Fix CI run. + (ispell/ispell-accept-buffer-local-defs/simple): Fix skip condition. + (ispell/ispell--run-on-word/default): Fix skip condition. + (ispell/ispell-word/default/check-only/correct): Fix global variable. + (ispell/ispell-word/default/check-only/correct/add-init): Fix + global variable. + (ispell/ispell-word/default/check-only/incorrect): Fix skip condition. + (ispell/ispell-region/incorrect): Fix postcondition. + (ispell/ispell-call-process/simple): Fix emacs path. + (ispell/ispell-call-process/simple-writable): Fix emacs path. + (ispell/ispell-call-process-region/cat-empty): Fix emacs path. + (ispell/ispell-call-process-region/cat-random): Fix emacs path. + (ispell/ispell-kill-ispell): Implement. + (ispell/ispell/buffer): Implement. + (ispell/ispell/region): Implement. + (ispell/ispell-change-dictionary): Implement. + (ispell/ispell-comments-and-strings/correct): Implement. + (ispell/ispell-comments-and-strings/incorrect): Implement. + (ispell/ispell-comment-or-string-at-point): Implement. + (ispell/ispell-pdict-save): Implement. + (ispell/ispell-pdict-save/force): Implement. + (ispell/ispell-pdict-save/modified): Implement. + (ispell/ispell-pdict-save/unmodified): Implement. + (ispell/ispell-lookup-words/simple): Implement. + (ispell/ispell-complete-word/ispell-completion-at-point): Implement. + (ispell/ispell-complete-word-interior-frag/simple): Implement. + (ispell/ispell-minor-mode/simple): Implement. + (ispell/ispell-message/correct): Implement. + (ispell/ispell-message/incorrect): Implement. + +2025-09-12 Eli Zaretskii <eliz@gnu.org> + + Add new scripts to the default fontset + + * lisp/international/fontset.el (setup-default-fontset): Add 4 + scripts new in Unicode 17.0. + +2025-09-12 Liu Hui <liuhui1610@gmail.com> + + Tramp: Refactor environment variable filtering to a separate function + + * lisp/net/tramp.el (tramp-local-environment-variable-p): + New function. (Bug#79413) + (tramp-handle-make-process): + * lisp/net/tramp-sh.el (tramp-sh-handle-make-process) + (tramp-sh-handle-process-file): + * lisp/net/tramp-androidsu.el + (tramp-androidsu-handle-make-process): + Use `tramp-local-environment-variable-p'. + +2025-09-12 Michael Albinus <michael.albinus@gmx.de> + + Introduc auth-source-ignore-non-existing-file + + * lisp/auth-source.el (auth-source-ignore-non-existing-file): + Rename it from `auth-source-ignore-empty-file'. + (auth-source-backends-parser-file): Use it. + + * doc/misc/auth.texi (Help for users): + * etc/NEWS: + * test/lisp/auth-source-tests.el (auth-source-validate-backend) + (auth-source-test-netrc-create-secret): + Use `auth-source-ignore-non-existing-file'. + +2025-09-12 Michael Albinus <michael.albinus@gmx.de> + + Minor edits in tramp-tests.el + + * test/lisp/net/tramp-tests.el (tramp-test16-file-expand-wildcards) + (tramp-test26-interactive-file-name-completion): + Prefer #'string-lessp over 'string<. + (tramp--test-ange-ftp-p, tramp-test47-read-password) + (tramp-test47-read-otp-password): Use function read syntax. + +2025-09-11 Philip Kaludercic <pkal@posteo.net> + + Update timeout to 2f3ebb53 + + See https://github.com/karthink/timeout/commit/f3ebb5. + +2025-09-11 Eli Zaretskii <eliz@gnu.org> + + Update to Unicode 17.0 + + * test/manual/BidiCharacterTest.txt: + * admin/unidata/BidiBrackets.txt: + * admin/unidata/BidiMirroring.txt: + * admin/unidata/Blocks.txt: + * admin/unidata/IVD_Sequences.txt: + * admin/unidata/IdnaMappingTable.txt: + * admin/unidata/NormalizationTest.txt: + * admin/unidata/PropertyValueAliases.txt: + * admin/unidata/ScriptExtensions.txt: + * admin/unidata/Scripts.txt: + * admin/unidata/SpecialCasing.txt: + * admin/unidata/UnicodeData.txt: + * admin/unidata/confusables.txt: + * admin/unidata/emoji-data.txt: + * admin/unidata/emoji-sequences.txt: + * admin/unidata/emoji-test.txt: + * admin/unidata/emoji-variation-sequences.txt: + * admin/unidata/emoji-zwj-sequences.txt: Import from Unicode 17.0. + + * etc/NEWS: + * test/lisp/international/ucs-normalize-tests.el + (ucs-normalize-tests--failing-lines-part1) + (ucs-normalize-tests--failing-lines-part2): + * lisp/international/mule-cmds.el (ucs-names): + * lisp/international/fontset.el (script-representative-chars) + (otf-script-alist): + * lisp/international/characters.el: + * admin/unidata/blocks.awk: Update for Unicode 17.0. + +2025-09-11 Stefan Monnier <monnier@iro.umontreal.ca> + + Rearrange tramp.el in order to avoid bootstrap problems + + * lisp/net/tramp.el (tramp-compat, tramp-message) + (tramp-integration, trampver): Require them later. + (top): Use `eval-and-compile' modifying `macro-declarations-alist'. + (tramp-register-file-name-handlers): Don't fail during bootstrap + before `tramp-loaddefs.el' is built. + +2025-09-11 Stefan Monnier <monnier@iro.umontreal.ca> + + (scheme-mode-variables): Fix bug#79282 + + * lisp/progmodes/scheme.el (scheme-mode-variables): Re-install + `lisp-font-lock-syntactic-face-function` mistakenly removed + in commit 0a5cfeeecb9e. + +2025-09-10 Mattias Engdegård <mattias.engdegard@gmail.com> + + Make bytecomp-tests cease warn and error to stdout + + They were caused by compilation errors going to 'display-warning' + which prints a duplicate of the message to stdout when running + noninteractively. + + * test/lisp/emacs-lisp/bytecomp-tests.el + (bytecomp-tests--log-warning-for-byte-compile) + (bytecomp-tests--with-warnings): New. Wrap around compilation calls in + this file. + +2025-09-10 Mattias Engdegård <mattias.engdegard@gmail.com> + + Remove unused and broken source inline code path + + * lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand): We can + assume that non-compiled functions are from another file at this point + and remove an unused code branch which didn't actually work with + interpreted function objects anyway. + +2025-09-10 Dmitry Gutov <dmitry@gutov.dev> + + Better 'project-buffer' completion category defaults in Emacs <= 30 + + * lisp/progmodes/project.el: Fall back to adding 'project-buffer' + to 'completion-category-defaults' if 'define-completion-category' + is not available (bug#79409). + +2025-09-09 Spencer Baugh <sbaugh@janestreet.com> + + Ignore keymaps at point for positions outside the buffer + + Correct a few edge cases where we used the keymaps at point when + looking up keymaps for an event position which is outside the + current buffer. Namely: + + - Clicking on a part of the mode line which is after the end of + mode-line-format produces an event with non-nil posn-area but + nil posn-string. + + - Even if posn-string doesn't have a local keymap, we should + still ignore the keymaps at point if posn-string is non-nil. + + * src/keymap.c (Fcurrent_active_maps): Ignore keymaps at point + for more positions outside the buffer. (bug#76620) + +2025-09-09 Stefan Monnier <monnier@iro.umontreal.ca> + + Allow use of \N{...} earlier to help fix bug#79353 + + * lisp/emacs-lisp/shorthands.el (hack-read-symbol-shorthands): + Avoid inf-loops during bootstrap. + E.g. this can occur while loading `uni-special-lowercase.el` where + `hack-local-variables--find-variables` uses `downcase` which triggers + loading `uni-special-lowercase.el`, ... + + * lisp/international/mule-cmds.el (ucs-names): Explicitly require + `charprop`. + + * src/Makefile.in ($(lispsource)/loaddefs.el): Depend on `charprop`. + +2025-09-09 Michael Albinus <michael.albinus@gmx.de> + + Ignore non-existing or empty files in auth-sources + + * doc/misc/auth.texi: Replace @code{"..."} by @t{"..."}. + (Help for users): Describe property lists format. Explain, that + empty files in auth-sources are ignored when + auth-source-ignore-empty-file is non-nil. + (Help for developers): Add auth-source-creation-defaults to vindex. + + * etc/NEWS: Introduce auth-source-ignore-empty-file. + Presentational fixes and improvements. + + * lisp/auth-source.el (auth-source-ignore-empty-file): New defcustom. + (auth-source-backends-parser-file): Use it. (Bug#9113) + + * test/lisp/auth-source-tests.el (auth-source-validate-backend): + Let-bind `auth-source-ignore-empty-file'. + (auth-source-test-searches): Set file suffix. + (auth-source-test-netrc-create-secret): Adapt test. + +2025-09-09 Michael Albinus <michael.albinus@gmx.de> + + Merge from origin/emacs-30 + + 56cdb65e540 ; * doc/emacs/mini.texi (Minibuffer History): Fix typo. + e65ebdf3290 ; Improve documentation of isearch ion minibuffer + 6544372764d * doc/misc/tramp.texi (Password handling): Fix default of... + 96d90403417 Fix auth-source.el doc + +2025-09-09 Lockywolf <for_emacs_1@lockywolf.net> + + Add convenience path/to/component target to tests/Makefile.in + + * test/Makefile.in (subdir_template): Add convenience targets. + + * test/README: Mention this. + +2025-09-08 Stefan Monnier <monnier@iro.umontreal.ca> + + (cl--make-usage-args): Try and fix bug#79353 + + * lisp/emacs-lisp/cl-macs.el (cl--make-usage-args): Don't depend on + `cl-extra` when `take` does the job. + +2025-09-08 Sean Whitton <spwhitton@spwhitton.name> + + Make C-x v w w work in Log View mode, to change working directory + + * lisp/vc/diff-mode.el (diff-find-matching-buffer): Rename ... + * lisp/progmodes/project.el + (project-change-to-matching-directory): ... to here. All uses + changed. + * lisp/vc/log-view.el (project-change-to-matching-directory): + Declare. + (log-view-mode): Use it. + * doc/emacs/vc1-xtra.texi (Other Working Trees): Document the + change. + +2025-09-08 Sean Whitton <spwhitton@spwhitton.name> + + vc-next-action: Fix a cache invalidation problem + + * lisp/vc/vc.el (vc-next-action): Use vc-registered, not + vc-backend, to see which files are already registered. + +2025-09-07 Jostein Kjønigsen <jostein@kjonigsen.net> + + csharp-mode: indentation fixes (bug#79398) + + * lisp/progmodes/csharp-mode.el (csharp-ts-mode--indent-rules): + Adjust rules to fix the following incorrect behaviours: + - in multiline expressions/method call chains; + - in object initialization expressions; + - in array creation expressions. + +2025-09-07 Roi Martin <jroi.martin@gmail.com> + + Fix grammar installation in elixir-ts-mode and heex-ts-mode + + Fix tree-sitter grammar installation issues in elixir-ts-mode and + heex-ts-mode (Bug#79363). + * lisp/progmodes/elixir-ts-mode.el (elixir-ts--font-lock-settings): + Check that tree-sitter is available. + (elixir-ts-mode): If the user answers "no" to installing the heex + tree-sitter grammar, do not ask again. Group heex settings. + * lisp/progmodes/heex-ts-mode.el (heex-ts-mode): Ensure that elixir + tree-sitter grammar is installed. + +2025-09-07 Roi Martin <jroi.martin@gmail.com> + + Fix font lock in go-ts-mode + + Fix font lock in go-ts-mode when the tree-sitter grammar is + automatically installed (Bug#79363). + * lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings): + Evaluate the rules only after the tree-sitter grammar is installed. + (go-ts-mode): Call the new `go-ts-mode--font-lock-settings' function. + +2025-09-07 Roi Martin <jroi.martin@gmail.com> + + Fix font lock and indentation in cmake-ts-mode + + Fix font lock and indentation in cmake-ts-mode when the tree-sitter + grammar is automatically installed (Bug#79363). + * lisp/progmodes/cmake-ts-mode.el (cmake-ts-mode--indent-rules) + (cmake-ts-mode--font-lock-settings): Evaluate the rules only after the + tree-sitter grammar is installed. + (cmake-ts-mode): Call the new `cmake-ts-mode--indent-rules' and + `cmake-ts-mode--font-lock-settings' functions. + +2025-09-07 Mattias Engdegård <mattias.engdegard@gmail.com> + + * lisp/emacs-lisp/cl-lib.el (cl-copy-list): Not error-free, bug#79396 + +2025-09-07 Michael Albinus <michael.albinus@gmx.de> + + * doc/misc/tramp.texi (Password handling): Fix default of auth-sources. + +2025-09-07 Mattias Engdegård <mattias.engdegard@gmail.com> + + Less expensive jsonrpc logging (bug#79361) + + Remove the oldest 1/4 of the jsonrpc events buffer when reaching the + size limit instead of just a few lines. This reduces the cost of adding + a log entry from O(buffer-size) to O(1). + + Also make messages forwarded to the events buffer, such as ones sent to + stderr from the server process, obey the same limit. + + * lisp/jsonrpc.el (jsonrpc--limit-buffer-size): New. + (jsonrpc--log-event, jsonrpc--forwarding-buffer): Use it. + +2025-09-07 Mattias Engdegård <mattias.engdegard@gmail.com> + + Avoid unnecessary text decoding in jsonrpc for speed (bug#79361) + + The built-in JSON parser works on undecoded (unibyte) input; decoding + received data is just a waste and does take time even when all-ASCII. + + * lisp/jsonrpc.el (initialize-instance): Use unibyte process buffer and + binary coding for process I/O, implying unibyte strings being passed to + the filter function. + (jsonrpc-connection-send): More efficient message generation. + (jsonrpc--json-read): Compatibility code for the old elisp json parser. + (jsonrpc--process-filter): Faster header-matching regexp. + +2025-09-07 Mattias Engdegård <mattias.engdegard@gmail.com> + + Harmonise doc strings for {re-,posix-,}search-{forward,backward} + + The doc strings for re-search-forward and re-search-backward have been + improved (bug#25193, bug#31584) but the corresponding posix- and + non-regexp search functions still have the original text, despite + describing the exact same mechanism. + + There is no reason for them to differ, so we make them all use the + updated version which also is more readable. Any future doc string + improvements should be made to all of them in the same way for + consistency. + + * src/search.c (Fsearch_backward, Fsearch_forward) + (Fposix_search_backward, Fposix_search_forward): + Use text from Fre_search_forward and Fre_search_backward. + +2025-09-07 Lockywolf <for_emacs_1@lockywolf.net> + + ispell.el: Add 56 tests (bug#79177) + + * test/lisp/textmodes/ispell-tests/ispell-tests.el: + * test/lisp/textmodes/ispell-tests/ispell-aspell-tests.el: + * test/lisp/textmodes/ispell-tests/ispell-international-ispell-tests.el: + * test/lisp/textmodes/ispell-tests/ispell-hunspell-tests.el: New files. + * test/lisp/textmodes/ispell-resources/fake-aspell.bash: Add a mock + `aspell' for use in ispell.el test, with old version. + * test/lisp/textmodes/ispell-resources/fake-aspell-new.bash: Add a mock + `aspell' for use in ispell.el test, with recent version. + +2025-09-07 Michael Albinus <michael.albinus@gmx.de> + + Fix auth-source.el doc + + * doc/misc/auth.texi (Help for users): Change variables to user + options where appropriate. Use setopt for them. Add Tramp link. + Fix example. (Bug#9113) + + * lisp/auth-source.el (auth-sources): Add :link. + +2025-09-07 Michael Albinus <michael.albinus@gmx.de> + + * admin/notes/jargon: Add RSN. + +2025-09-07 Dmitry Gutov <dmitry@gutov.dev> + + project--read-project-buffer: Fix creating new buffer + + * lisp/progmodes/project.el (project--read-project-buffer): + Fix the case of entering new buffer name (bug#77312). + +2025-09-06 Sean Whitton <spwhitton@spwhitton.name> + + vc-deduce-backend: Respect vc-buffer-overriding-fileset + + * lisp/vc/vc.el (vc-deduce-backend): Respect + vc-buffer-overriding-fileset, if set. + +2025-09-06 Spencer Baugh <sbaugh@janestreet.com> + + Fix nil value of 'elisp-flymake-byte-compile-executable' + + * lisp/progmodes/elisp-mode.el + (elisp-flymake-byte-compile--executable): Properly check for + nil, and simplify code. (Bug#79380) + +2025-09-06 Brian Leung <leungbk@posteo.net> + + Eglot: Really fix neocmakelsp invocation + + * lisp/progmodes/eglot.el (eglot-server-programs): Remove an + incorrect extra layer of parentheses. (Bug#79394) + +2025-09-06 Sean Whitton <spwhitton@spwhitton.name> + + Fix log-view--mark-unmark interactive arguments + + * lisp/vc/log-view.el (log-view--mark-unmark): New BEG and END + arguments. Don't call region-beginning and region-end here. + (log-view-mark-entry, log-view-unmark-entry): Pass BEG and END + to log-view--mark-unmark, non-nil when the region is active. + +2025-09-06 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + aad5b676d1c ; * lisp/emacs-lisp/ring.el (ring-convert-sequence-to-rin... + ddd63891a48 ; * doc/misc/flymake.texi (Troubleshooting): Fix typo (bu... + 8dcb8020466 ; vc-hooks.el: Standardize terminology in header. + +2025-09-06 Eli Zaretskii <eliz@gnu.org> + + Avoid assertion violations when starting client network process + + * src/process.c (deactivate_process): Clear the callback info of + descriptors we are closing. (Bug#79367) + +2025-09-06 Jostein Kjønigsen <jostein@kjonigsen.net> + + 'nxml-mode': add schema for .NET SLNX files. + + SLNX is a new XML-based file-format for .NET based solutions, replacing + the older proprietary SLN file-format. + + Unlike SLN-files, it is merge-friendly and expected to become the new + de-facto standard for working with .NET projects. This commit adds + support for SLNX-schema to 'nxml-mode'. + + The schme provided has been synthesized using the official XSD-schema + definition: + https://github.com/microsoft/vs-solutionpersistence/blob/main/src/Microsoft.VisualStudio.SolutionPersistence/Serializer/Xml/Slnx.xsd + + This schema was then converted to RNG using XSDtoRNG.xsl: + https://github.com/epiasini/XSDtoRNG + + The RNG schema was then converted to RNC using the trang CLI-tool: + https://relaxng.org/jclark/trang.html + + * etc/schema/dotnet-slnx.rnc: New file. + * etc/schema/schemas.xml: Add Slnx schema. + + * lisp/files.el (auto-mode-alist): Add association for SLNX files. + (Bug#79379) + +2025-09-06 Eli Zaretskii <eliz@gnu.org> + + Fix command keys in doc string of 'inferior-python-mode' + + * lisp/progmodes/python.el (inferior-python-mode): Mention the + correct mode-map in the doc string. (Bug#79386) + +2025-09-06 Gustav Hållberg <emacs@askgustav.com> (tiny change) + + "M-x lldb": bugfix source code location without column + + * lisp/progmodes/gud.el (gud-lldb-marker-filter): Fix problem + where the source code location ends up at the last character of + the previous line if no (or zero) column is reported by lldb. + (Bug#79360) + +2025-09-06 Liu Hui <liuhui1610@gmail.com> + + Fix duplicate inputs in 'comint-read-input-ring' + + * lisp/comint.el (comint-read-input-ring): Fix the index of + the last input in the ring. (Bug#79329) + +2025-09-05 Stefan Monnier <monnier@iro.umontreal.ca> + + (redisplay_internal): Fix `follow-mode` (bug#79306) + + * src/xdisp.c (redisplay_internal): Don't increment `redisplay_counter` + if we ail out before starting an actual redisplay. + +2025-09-05 Sean Whitton <spwhitton@spwhitton.name> + + Log View marking commands: respect numeric prefixes & active regions + + * lisp/vc/log-view.el (log-view--mark-unmark) + (log-view--mark-entry, log-view--unmark-entry): New functions. + (log-view-mark-entry, log-view-unmark-entry): Call them. + Newly respect numeric prefix arguments and active regions. + +2025-09-05 Sean Whitton <spwhitton@spwhitton.name> + + vc-dir-mark-unmark: When region active, don't do any y/n prompting + + * lisp/vc/vc-dir.el (vc-dir-mark-unmark): When region active, + bind vc-dir-allow-mass-mark-changes to nil. + +2025-09-05 Sean Whitton <spwhitton@spwhitton.name> + + vc-dir-mark-unmark: When region active, don't do any y/n prompting + + * lisp/vc/vc-dir.el (vc-dir-mark-unmark): When region active, + bind vc-dir-allow-mass-mark-changes to nil. + +2025-09-05 Sean Whitton <spwhitton@spwhitton.name> + + Make 'm' and 'u' in Log View mode more standard + + * lisp/vc/log-view.el (log-view-mark-entry) + (log-view-unmark-entry): New commands. + (log-view-toggle-mark-entry): Rewrite in terms of them. + (log-view-mode-map): Unbind log-view-toggle-mark-entry. + Bind the two new commands. + * etc/NEWS: Document the change. + +2025-09-05 Eli Zaretskii <eliz@gnu.org> + + Fix locking to threads of the client network process + + * src/process.c (server_accept_connection): Make the client + process be locked to the same thread as the parent server process, + or unlocked if the server process was unlocked. (Bug#79367) + +2025-09-05 F. Jason Park <jp@neverwas.me> + + Make function erc-scrolltobottom-mode idempotent + + * lisp/erc/erc-goodies.el (erc-scrolltobottom-mode) + (erc-scrolltobottom-enable): Always remove hook functions whose + membership hinges on the value of `erc-scrolltobottom-all'. In ERC 5.6, + an init file's `setopt' form containing an `erc-modules' assignment + before an `erc-scrolltobottom-all' one would result in conflicting sets + of hook members come `erc-open'. Having such option-dependent branching + in module setup, while difficult to maintain, is a long held ERC + practice, as seen in functions like `erc-nickserv-identify-mode'. + Making all new modules "local" may be the most manageable solution + because existing global modules can't be made to require prior + deactivation. + +2025-09-05 F. Jason Park <jp@neverwas.me> + + Don't touch window configuration in erc-fill prompt hook + + * lisp/erc/erc-fill.el (erc-fill--wrap-indent-prompt): While computing + the prompt indentation's text size, don't bother saving and restoring + the window configuration because unwanted scrolls are now believed to be + unlikely because of other changes. + +2025-09-04 Po Lu <luangruo@yahoo.com> + + Fix crash when the same XI device appears in multiple hierarchy events + + * src/xterm.c (xi_disable_devices): Move `out' label into the + outermost loop. (bug#79343) + +2025-09-03 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/eshell/em-glob.el (eshell-glob-translate-alist): Don't quote lambda + +2025-09-03 Eshel Yaron <me@eshelyaron.com> + + Support completion category inheritance + + * lisp/minibuffer.el (define-completion-category): New function. + (completion-category-get): New function, implements completion + category property lookup with (multiple) inheritance. + (completion-metadata-get, completion--styles) + (completion--cycle-threshold): Use it. + (completion-category-defaults): Mention it in docstring. + Remove entry for 'project-buffer' category, and instead... + * lisp/progmodes/project.el: ...have 'project-buffer' inherit + from 'buffer'. + * test/lisp/minibuffer-tests.el + (completion-category-inheritance): New test. + * etc/NEWS: Announce support for category inheritance. + +2025-09-03 Jonas Bernoulli <jonas@bernoul.li> + + Update to Transient v0.10.0-8-g5efa5c6e + +2025-09-03 João Távora <joaotavora@gmail.com> + + Eglot: really fix bug#79259 + + The previous change actually introduced a bug in a closely + related but distinct place. We need to address the off-by-one + in the 'substring' call, not the 'add-face-text-property'. + + * lisp/progmodes/eglot.el (eglot--sig-info): Fixup. + +2025-09-03 Juri Linkov <juri@linkov.net> + + Make 'isearch-mode' more idempotent (bug#79368). + + * lisp/isearch.el (isearch-mode): Don't override + 'isearch--saved-local-map' when 'overriding-terminal-local-map' + was already set to 'isearch-mode-map' in a previous call. + (with-isearch-suspended): Don't call the function 'isearch-mode' + when the variable 'isearch-mode' is already non-nil. + +2025-09-02 Stefan Monnier <monnier@iro.umontreal.ca> + + (macroexp--obsolete-warning): Prefer `%s` + + * lisp/emacs-lisp/macroexp.el (macroexp--obsolete-warning): `instead` + can be a list. + * lisp/dom.el (dom-text, dom-texts): Fix obsolescence declaration. + +2025-09-02 Spencer Baugh <sbaugh@janestreet.com> + + Allow any thread to run native compilations + + * lisp/emacs-lisp/comp-run.el (comp--run-async-workers): Don't + lock the native compilation process to a thread (bug#79228). + +2025-09-02 Sean Whitton <spwhitton@spwhitton.name> + + fileloop-next-file: Convert file-error to warnings + + * lisp/fileloop.el (fileloop-next-file): Catch file-error and + convert to a delayed warning (bug#79356). + +2025-09-02 Spencer Baugh <sbaugh@janestreet.com> + + Add 'elisp-flymake-byte-compile-executable' defcustom + + The correct Emacs executable to use for + 'elisp-flymake-byte-compile' is not necessarily the running + Emacs. For example, when editing trunk with Emacs 30, + various Lisp changes will cause spurious flymake warnings. + Add 'elisp-flymake-byte-compile-executable' to allow + customizing this. + * lisp/progmodes/elisp-mode.el + (elisp-flymake-byte-compile-executable) + (elisp-flymake-byte-compile--executable): Add. (Bug#79342) + (elisp-flymake-byte-compile): Invoke + 'elisp-flymake-byte-compile--executable'. + + * etc/NEWS: Announce the change. + +2025-09-02 Michael Albinus <michael.albinus@gmx.de> + + Extend tramp-test26-interactive-file-name-completion + + * lisp/net/tramp.el (tramp-get-completion-methods): + Use `tramp-compat-seq-keep'. + + * test/lisp/net/tramp-tests.el (completions-max-height): Declare. + (tramp-test26-interactive-file-name-completion): Extend test. + +2025-09-01 Spencer Baugh <sbaugh@janestreet.com> + + Revert "Avoid duplicating strings in pcm--merge-completions" + + Revert "Avoid duplicating strings in pcm--merge-completions", + commit b511c38bba5354ff21c697e4d27279bf73e4d3cf. It broke + existing behavior, now covered by tests adding in this commit. + + * lisp/minibuffer.el (completion-pcm--merge-completions): + * test/lisp/minibuffer-tests.el (completion-pcm-test-anydelim): + (completion-pcm-bug4219): + +2025-09-01 Philip Kaludercic <pkal@posteo.net> + + Add new library 'timeout' + + * lisp/emacs-lisp/timeout.el: Add the file. + * etc/NEWS: Mention the library. + + See https://mail.gnu.org/archive/html/emacs-devel/2025-07/msg00520.html. + +2025-09-01 Sean Whitton <spwhitton@spwhitton.name> + + New project-find-matching-buffer-function for diff-mode + + * lisp/vc/diff-mode.el (project-root): Declare. + (diff-find-matching-buffer): New function. + (diff-mode): Use it. + * doc/emacs/vc1-xtra.texi (Other Working Trees): Document + 'C-x v w w' in diff-mode buffers. + +2025-09-01 Mattias Engdegård <mattias.engdegard@gmail.com> + + * src/data.c (Fash): Speed up when argument and result are fixnums. + + * lisp/emacs-lisp/bytecomp.el (featurep): Safer comp-time evaluation + +2025-09-01 Sean Whitton <spwhitton@spwhitton.name> + + Rename arg REMOTE-LOCATION -> UPSTREAM-LOCATION + + * lisp/vc/vc-bzr.el (vc-bzr-log-incoming) + (vc-bzr-incoming-revision, vc-bzr-log-outgoing): + * lisp/vc/vc-git.el (vc-git-incoming-revision): + * lisp/vc/vc-hg.el (vc-hg-incoming-revision): + * lisp/vc/vc.el (vc-root-diff-incoming, vc-diff-incoming) + (vc-root-diff-outgoing, vc-diff-outgoing) + (vc-root-diff-outgoing-base, vc-diff-outgoing-base) + (vc-incoming-outgoing-internal, vc-remote-location-history) + (vc--incoming-revision, vc-log-incoming, vc-default-log-incoming) + (vc-log-outgoing, vc-default-log-outgoing): Rename arguments + REMOTE-LOCATION -> UPSTREAM-LOCATION. Adjust strings. + (vc--maybe-read-remote-location): Rename ... + (vc--maybe-read-upstream-location): ... to this. + +2025-09-01 Sean Whitton <spwhitton@spwhitton.name> + + VC outgoing commands for Git: Don't unconditionally fetch + + * lisp/vc/vc-bzr.el (vc-bzr-incoming-revision): + * lisp/vc/vc-hg.el (vc-hg-incoming-revision): + * lisp/vc/vc.el (vc-diff-incoming, vc--incoming-revision): New + REFRESH optional argument. + (vc-default-log-incoming): Pass it. + * lisp/vc/vc-git.el (vc-git-incoming-revision): New REFRESH + optional argument. When nil, use cached info (bug#62940). + +2025-09-01 Stefan Monnier <monnier@iro.umontreal.ca> + + (completion-file-name-table): Refine last fix + + * lisp/minibuffer.el (completion-file-name-table): Don't + hardcode Tramp knowledge here. + +2025-08-31 Juri Linkov <juri@linkov.net> + + New user option 'tab-line-define-keys' + + * lisp/tab-line.el (tab-line-define-keys): New defcustom. + (tab-line--define-keys, tab-line--undefine-keys): + New functions that explicitly bind commands from + 'tab-line-mode-map' to 'ctl-x-map'. + (tab-line-mode-map): Leave this keymap empty by default + to avoid breaking 'ctl-x-map' (bug#79323). + (global-tab-line-mode): Call either 'tab-line--define-keys' + or 'tab-line--undefine-keys'. + +2025-08-31 Juri Linkov <juri@linkov.net> + + * doc/emacs/modes.texi (Choosing Modes): Document 'treesit-enabled-modes'. + +2025-08-31 Sean Whitton <spwhitton@spwhitton.name> + + vc-revert: Fix calling vc-buffer-sync (bug#79319) + + * lisp/vc/vc.el (vc-revert): Don't call vc-buffer-sync on a + non-file-visiting buffer (bug#79319). Don't try to use memq to + compare strings. + +2025-08-31 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc.el (vc-revert): Tighten up save-some-buffers predicate. + +2025-08-31 Spencer Baugh <sbaugh@janestreet.com> + + Allow entering the debugger on error in emacsclient connections + + * lisp/server.el (server--process-filter-1): Use + 'condition-case-unless-debug'. (Bug#65897) + +2025-08-30 Eli Zaretskii <eliz@gnu.org> + + Fix EOL decoding in files extracted from ZIP archives + + * lisp/arc-mode.el (archive-set-buffer-as-visiting-file): Don't + lose EOL conversion determined by 'decode-coding-region' from the + extracted file's data. (Bug#79316) + +2025-08-30 Jeremy Bryant <jb@jeremybryant.net> + + * lisp/saveplace.el (save-places-to-alist): Add doc string. + + Replace previous comment and simplify wording by refering to + the function 'save-place-to-alist' being called on all + buffers. (Bug#79340) + +2025-08-30 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 3d2a8186793 * doc/misc/efaq-w32.texi (UTF-8 encoding): New section (b... + ec50d775acf ; * doc/misc/flymake.texi (Finding diagnostics): Fix a ty... + 293e258a1b2 * doc/emacs/screen.texi (Mode Line): Fix reference. + 8eb192c23df ; * admin/make-tarball.txt: Update the "Web pages" sectio... + +2025-08-30 Spencer Baugh <sbaugh@janestreet.com> + + Document and test 'let-alist' support for indexing + + * etc/NEWS: Announce 'let-alist' support for indexing. + * test/lisp/emacs-lisp/let-alist-tests.el (let-alist-numbers): + Add a test for 'let-alist's support for indexing. + * doc/lispref/lists.texi (Association Lists): Document indexing + with 'let-alist'. (Bug#66509) + +2025-08-30 Eli Zaretskii <eliz@gnu.org> + + Fix "C-u C-h C-n" + + * lisp/help.el (view-emacs-news): Widen the buffer before + re-narrowing it again to a different version. (Bug#79324) + +2025-08-30 Sean Whitton <spwhitton@spwhitton.name> + + New commands for outgoing diffs including uncommitted changes + + * lisp/vc/vc.el (vc-root-diff-outgoing-base) + (vc-diff-outgoing-base): New commands (bug#62940). + * lisp/vc/vc-hooks.el (vc-prefix-map): Bind them. + * doc/emacs/vc1-xtra.texi (Outgoing Base Diffs): + * etc/NEWS: Document them. + * doc/emacs/emacs.texi (Outgoing Base Diffs): New node. + +2025-08-30 Sean Whitton <spwhitton@spwhitton.name> + + Document C-x v M D and C-x v M L in the manual + + * doc/emacs/emacs.texi (Merge Bases): + * doc/emacs/vc1-xtra.texi (Merge Bases): New node. + +2025-08-30 João Távora <joaotavora@gmail.com> + + Eglot: fix likely off-by-1 in LabelOffsetSupport feature (bug#79259) + + This feature was tweaked and last tested with a 2019 edition of + the 'ccls' LSP. The spec does not clearly specify this number + to be 0-indexed, but it would make sense that it would be so. + So there's not need to 1+ - correct the numbers at all before + using them in substring. This would fix the Haskell server use + of this feature (which is bug#79259) + + * lisp/progmodes/eglot.el (eglot--sig-info): Fix likely off-by-1. + +2025-08-30 Steven Allen <steven@stebalien.com> + + Eglot: escape literal % characters in URIs + + Escape literal % characters in Eglot URIs + + Otherwise, a literal % in a file-name will be interpreted (by the + language server) as if it were a part of a percent-encoded sequence. + + See Bug#78984 for context on why `url-path-allowed-chars' cannot be + changed to escape literal % characters. + + * lisp/progmodes/eglot.el (eglot--uri-path-allowed-chars): Escape %, + remove the redundant variable definition. + * test/lisp/progmodes/eglot-tests.el (eglot-test-path-to-uri-escape): + test it. + +2025-08-30 Sergio Pastor Pérez <sergio.pastorperez@gmail.com> (tiny change) + + bug#79241: Fix incorrect handling of overlays in `vertical-motion' + + * src/indent.c (vertical-motion): If iterator is inside an overlay, + reset it to the beginning of line before trying to reach goal + column. This prevents point from being stuck at the beginning + of overlay strings during upward motions. + +2025-08-30 Jens Schmidt <jschmidt4gnu@vodafonemail.de> + + Add edebug-bounce-to-previous-value + + Command edebug-bounce-to-previous-value uses the previous value + observed while single-stepping or evaluating an expression to + bounce point in the outside current buffer to the buffer + position corresponding to that value. + + * lisp/emacs-lisp/edebug.el (edebug-previous-value): Add + variable. + (edebug-compute-previous-result, edebug-eval-expression): Update + it. + (edebug-bounce-to-previous-value): Add command. + (edebug-mode-map): Add keybinding for the new command, replacing + the binding of "P" to edebug-view-outside. + (edebug-mode-menus): Add menu entry for the new command. + * doc/lispref/edebug.texi (Edebug Views): Add documentation. + * test/lisp/emacs-lisp/edebug-resources/edebug-test-code.el + (edebug-test-code-bounce-point): Add test code. + * test/lisp/emacs-lisp/edebug-tests.el + (edebug-tests-bounce-outside-buffer) + (edebug-tests-bounce-outside-point) + (edebug-tests-bounce-outside-mark) + (edebug-tests-bounce-record-outside-environment) + (edebug-tests-should-have-bounced-to): Add infrastructure to + test bounces. + (edebug-tests-check-keymap): Update tests to new key bindings. + (edebug-tests-bounce-point) + (edebug-tests-bounce-to-previous-value) + (edebug-tests-bounce-to-previous-non-position): Add tests. + (edebug-tests-evaluation-of-current-buffer-bug-19611): Clean up + side effects. (Bug#79288) + +2025-08-30 Eli Zaretskii <eliz@gnu.org> + + * doc/misc/efaq-w32.texi (UTF-8 encoding): New section (bug#79296). + +2025-08-30 john muhl <jm@pub.pink> + + Fontify all comment delimiters in 'lua-ts-mode' + + * lisp/progmodes/lua-ts-mode.el (lua-ts--comment-font-lock): + Apply 'font-lock-comment-delimiter-face' to the entire span of + initial dashes. In particular, this improves the appearance of + LuaCATS and EmmyLua style annotations which use "---". + * test/lisp/progmodes/lua-ts-mode-resources/font-lock.lua: + Add tests. (Bug#79258) + +2025-08-30 Sean Devlin <spd@toadstyle.org> + + Fix recursive load when 'calc-always-load-extensions' is set + + * lisp/calc/calc.el (calc-create-buffer): Call 'calc-load-everything'. + (calc-always-load-extensions): Delete erroneous stanza. (Bug#79157) + +2025-08-30 Sean Devlin <spd@toadstyle.org> + + Add user option to inhibit Calc startup message (bug#79143) + + * doc/misc/calc.texi (Customizing Calc): Document the new option. + * etc/NEWS: Document the new option. + * lisp/calc/calc.el (calc-inhibit-startup-message): New option to + inhibit Calc’s startup message. + (calc): Respect the option in Calc’s startup code. + * test/lisp/calc/calc-tests.el (ert): Require ert-x for + 'ert-with-message-capture'. + (calc-inhibit-startup-message): Test the new user option. + +2025-08-29 Juri Linkov <juri@linkov.net> + + * lisp/treesit-x.el (treesit-generic-mode-font-lock-map): Extend. + + Add more font-lock mappings based on existing settings in ts-modes. + +2025-08-29 Juri Linkov <juri@linkov.net> + + * lisp/textmodes/markdown-ts-mode.el: Fix embed settings. + + (markdown-ts--range-settings): Move embed settings + for html/toml/yaml to 'markdown-ts-setup'. + (markdown-ts-setup): Append range rules to 'treesit-range-settings' + only when grammars for html/toml/yaml are installed. + +2025-08-29 Juri Linkov <juri@linkov.net> + + * lisp/progmodes/python.el: Use 'treesit-major-mode-remap-alist'. + + (python-ts-mode): Don't duplicate 'auto-mode-alist' and + 'interpreter-mode-alist' settings in Emacs 31 (bug#79180). + Add ts-mode mapping to 'treesit-major-mode-remap-alist'. + +2025-08-29 Michael Albinus <michael.albinus@gmx.de> + + `Fix read-directory-name' for Tramp files + + * lisp/minibuffer.el (completion-file-name-table): Improve bypass + for directory checking. (Bug#79236) + + * lisp/net/tramp.el (tramp-user-regexp): Exclude "[" and "]". + (tramp-completion-make-tramp-file-name): Handle port for IPv6 hosts. + (tramp-completion-handle-file-directory-p) + (tramp-completion-handle-file-exists-p): Simplify. + (tramp-completion-handle-file-name-completion): Ignore PREDICATE. + (tramp-completion-dissect-file-name): Handle ports. + (tramp-parse-default-user-host): Suppress '(nil nil) result. + (tramp-parse-file): Delete duplicates. + (tramp-parse-shosts-group): Accept also IPv6 addresses. + (tramp-handle-file-directory-p): Return t for filenames + "/method:foo:". + (tramp-parse-auth-sources, tramp-parse-netrc): + * lisp/net/tramp-cache.el (tramp-parse-connection-properties): + * lisp/net/tramp-gvfs.el (tramp-gvfs-parse-device-names): + Use `tramp-compat-seq-keep'. + + * test/lisp/net/tramp-tests.el (edebug-mode): Declare. + (tramp--test-message): Write also trace value. + (tramp-test26-file-name-completion): + (tramp-test26-interactive-file-name-completion): Extend tests. + +2025-08-29 Mattias Engdegård <mattias.engdegard@gmail.com> + + Fix org-habit bug related to string mutation + + * lisp/org/org-habit.el (org-habit-build-graph): Rewrite without using + string mutation (using vectors instead), fixing a bug where + org-habit-completed-glyph and org-habit-today-glyph wouldn't display + properly if in the U+0080..00FF range, discovered by the more restricted + string mutation. + + Reported by Daniel Mendler in + https://lists.gnu.org/archive/html/emacs-orgmode/2025-08/msg00224.html + +2025-08-29 john muhl <jm@pub.pink> + + Make 'lua-prefix-key' option a 'key-sequence' + + This fixes a failure in 'test-custom-opts' caused by both strings + and integers being used for 'lua-prefix-key'. + + * lisp/progmodes/lua-mode.el (lua-prefix-key): Convert option to + 'key-sequence' type. + (lua-mode-map, lua-prefix-key-update-bindings, lua-set-prefix-key) + (lua--customize-set-prefix-key): Adjust to the change of type for + 'lua-prefix-key'. + (lua-prefix-mode-map): Use 'defvar-keymap'. (Bug#79335) + +2025-08-28 Robert Pluim <rpluim@gmail.com> + + Prefer tls to ssl in nnimap and smtpmail code + + * lisp/gnus/nnimap.el (nnimap-open-connection): Use 'tls. + (nnimap-open-connection-1): Check 'tls before 'ssl. + * lisp/mail/smtpmail.el (smtpmail-stream-type): Add 'ssl to + allowed values, state 'tls is preferred. + +2025-08-28 Spencer Baugh <sbaugh@janestreet.com> + + Pass dired default filenames via defaults argument + + Rather than using minibuffer-with-setup-hook, just pass the list + of default file names as a regular argument to read-file-name. + This allows read-file-name to run abbreviate-file-name on the + defaults as it normally does, instead of the defaults appearing + in expanded form. + + dired-dwim-target-defaults changes slightly to return the + correct default at the start of the list. + + * lisp/dired-aux.el (dired-do-create-files) + (dired-compare-directories): Pass default file names as an + argument. (bug#79293) + (dired-dwim-target-defaults): Return the correct default at the + start of the list. + +2025-08-28 Juri Linkov <juri@linkov.net> + + * lisp/tab-bar.el (frameset-session-filter-tabs): New function. + + Push new function to 'frameset-session-filter-alist' + with 'tabs' key (bug#79291). + +2025-08-28 Dmitry Gutov <dmitry@gutov.dev> + + ruby-flymake-simple: Refine further + + * lisp/progmodes/ruby-mode.el (ruby-flymake-simple): + Relax regexp but limit allowed characters (bug#79257). + +2025-08-27 Spencer Baugh <sbaugh@janestreet.com> + + Make RET choose the selected completion + + Previously, one could select a completion via M-<up>/M-<down>, + but then RET would not actually select the chosen completion. + With the addition of completion-auto-deselect, this is not + actually necessary: we can reasonably assume that when a + completion is selected, the user wants to use that, since their + last action must have been to select it. So, just choose the + selected completion on RET. This lets us default + minibuffer-completion-auto-choose to nil. + + For minibuffers with require-match completion, this can be done + by changing the existing command bound to RET. For minibuffers + with nil require-match completion, RET was previously bound to + exit-minibuffer, and changing exit-minibuffer to have this logic + is risky. We handle that case by adding a new + minibuffer-completion-exit which wraps exit-minibuffer and bind + RET to it. + + * lisp/minibuffer.el (minibuffer-insert-completion-if-selected) + (minibuffer-completion-exit, completion--selected-candidate): + Add. + (minibuffer-complete-and-exit): Call + minibuffer-choose-completion. (bug#77253) + (minibuffer-local-completion-map): Bind RET to + minibuffer-completion-exit, overriding exit-minibuffer. + (completion-in-region-mode-map): Bind RET to + minibuffer-choose-completion when there's a selected candidate. + (minibuffer-completion-auto-choose): Default to nil. + (minibuffer-visible-completions--filter) + (minibuffer-visible-completions-map): Delete RET binding, no + longer necessary. + * lisp/simple.el (completion-setup-function): Update completion + help text to show more correct bindings. + * test/lisp/minibuffer-tests.el (completions-header-format-test) + (minibuffer-next-completion): Set + minibuffer-completion-auto-choose=t explicitly. + (with-minibuffer-setup, minibuffer-completion-RET-prefix) + (completion-in-region-next-completion): Add new tests. + * etc/NEWS: Announce. + +2025-08-27 Michael Albinus <michael.albinus@gmx.de> + + * doc/emacs/screen.texi (Mode Line): Fix reference. + +2025-08-27 Michael Albinus <michael.albinus@gmx.de> + + Extend info-xref-test-emacs-manuals, fix info reference + + * doc/lispref/loading.texi (Autoload): Fix reference. + + * test/lisp/info-xref-tests.el (info-xref-test-emacs-manuals): + Print output buffer. + +2025-08-26 Eli Zaretskii <eliz@gnu.org> + + Fix last change in 'next_element_from_display_vector' + + * src/xdisp.c (next_element_from_display_vector): Only switch the + iterator from unibyte to multibyte, never in the other direction, + and not if the original character came from a unibyte buffer. + (Bug#79317) + +2025-08-26 F. Jason Park <jp@neverwas.me> + + Remove scrolltobottom dependency from erc-fill module + + This mostly reverts 9668b4f97c2fc6bfff83258861d455a6d02516a8 + "Make erc-fill-wrap depend on scrolltobottom". + + * etc/ERC-NEWS: Mention removal of formal dependency. + * lisp/erc/erc-fill.el (erc-fill--wrap-scrolltobottom-exempt-p): Remove + unused variable. + (erc-fill--wrap-ensure-dependencies): Remove unused dependency check. + (erc-fill-wrap-mode): Remove scrolltobottom dependency from doc string. + * test/lisp/erc/erc-fill-tests.el (erc-fill-tests--wrap-populate): + Remove unused binding from var list. + * test/lisp/erc/resources/erc-scenarios-common.el + (erc-scenarios-common--make-bindings): Remove unused binding. + +2025-08-26 F. Jason Park <jp@neverwas.me> + + Prefer window-text-pixel-size in erc-fill + + * lisp/erc/erc-fill.el (erc-fill--wrap-measure): Using + `buffer-text-pixel-size' for measuring text size in the selected window + can end up triggering a scroll, which then requires imperfect countering + by the scrolltobottom module, especially with regard to the option + `erc-scrolltobottom-all'. Thanks to Alcor for reporting and helping + with this bug, which was introduced along with fill-wrap in ERC 5.6. + +2025-08-26 john muhl <jm@pub.pink> + + Fix 'ruby-flymake-simple' for Ruby 3.4 (Bug#79257) + + * lisp/progmodes/ruby-mode.el (ruby-flymake-simple): Update + regular expression to handle new versions of Ruby including the + location of the executable in the output. + +2025-08-25 Eli Zaretskii <eliz@gnu.org> + + Fix use of display-table for mode-line display + + * src/xdisp.c (next_element_from_display_vector): Fix handling + non-ASCII characters in display-table cells corresponding to + ASCII characters. (Bug#79311) + +2025-08-25 Eli Zaretskii <eliz@gnu.org> + + Fix assertion violations caused by recent redisplay changes + + * src/xdisp.c (push_it): Don't rest the string_from_prefix_prop_p + flag. (Bug#79304) + +2025-08-25 Eli Zaretskii <eliz@gnu.org> + + Attempt to fix assertion violations in bug#79304 + + The following changes make the changes for bug#79275 less + radical, closer to their previous shape, while still fixing + that bug. + * src/xdisp.c (push_prefix_prop, get_it_property): Restore + original code that determined the object and position on it. + (get_line_prefix_it_property): Take FROM_BUFFER from the actual + object of the prefix property. + +2025-08-25 Andre A. Gomes <andremegafone@gmail.com> + + Pass remote name explicitly in bug-reference-try-setup-from-vc. + + * lisp/progmodes/bug-reference.el (bug-reference-setup-from-vc-alist): + Add comment explaining the meaning of the nil argument when calling + vc-call-backend. Even though "origin" and nil are equivalent when using + the git backend, it is more intelligible to see "upstream" and "origin" + passed explicitly (bug#79276). + +2025-08-25 Juri Linkov <juri@linkov.net> + + * lisp/progmodes/lua-ts-mode.el: Simplify non-ts/ts mode mapping. + + (lua-ts-mode-maybe): Remove since lua-mode is added to core. + +2025-08-25 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'savannah/master' into master-android-1 + +2025-08-25 john muhl <jm@pub.pink> + + * etc/NEWS: Mention 'lua-mode' merge. + +2025-08-25 john muhl <jm@pub.pink> + + Add warn to 'lua-mode' builtins + + * lisp/progmodes/lua-mode.el (lua--builtins): Include warn. + +2025-08-25 john muhl <jm@pub.pink> + + Remove trivial cl-* stuff from 'lua-mode' + + * lisp/progmodes/lua-mode.el (lua-process-buffer, lua--signum): + Replace 'cl-assert'. + (lua-accumulate-indentation-info): Replace 'cl-dolist' with + 'dolist'. + +2025-08-25 john muhl <jm@pub.pink> + + Replace big regexps w/ rx expressions in 'lua-mode' + + * lisp/progmodes/lua-mode.el (lua-block-regexp) + (lua-indentation-modifier-regexp, lua-cont-eol-regexp) + (lua-cont-bol-regexp): Use rx. + +2025-08-25 john muhl <jm@pub.pink> + + Remove unnecessary 'progn' in 'lua-mode' + + * lisp/progmodes/lua-mode.el (lua-accumulate-indentation-info) + (lua--goto-line-beginning-rightmost-closer): Delete. + +2025-08-25 john muhl <jm@pub.pink> + + Replace 1-armed 'if' with 'when' in 'lua-mode' + + * lisp/progmodes/lua-mode.el (lua--customize-set-prefix-key) + (lua-electric-match, lua-prefix-key-update-bindings) + (lua-indent-line, lua-find-matching-token-word) + (lua-goto-matching-block-token, lua-last-token-continues-p) + (lua-is-continuing-statement-p) + (lua--goto-line-beginning-rightmost-closer, lua-start-process) + (lua-prompt-line): Replace. + +2025-08-25 john muhl <jm@pub.pink> + + Prefer 'defvar-local' in 'lua-mode' + + * lisp/progmodes/lua-mode.el (lua-default-command-switches) + (lua-electric-flag, lua--repl-buffer-p): Replace + 'make-variable-buffer-local' with 'defvar-local'. + +2025-08-25 john muhl <jm@pub.pink> + + Remove unnecessary 'setq' from 'lua-mode' + + * lisp/progmodes/lua-mode.el (lua--rx-bindings): Combine variable + definition and assignment. + +2025-08-25 john muhl <jm@pub.pink> + + Cleanup whitespace in 'lua-mode' + +2025-08-25 john muhl <jm@pub.pink> + + Cleanup defcustoms in 'lua-mode' + + * lisp/progmodes/lua-mode.el (lua-mode-hook): Add options. + (lua-indent-level, lua-comment-start, lua-comment-start-skip) + (lua-default-application, lua-default-command-switches) + (lua-always-show, lua-documentation-function) + (lua-documentation-url, lua-prefix-key, lua-prompt-regexp) + (lua-indent-string-contents) + (lua-indent-nested-block-content-align) + (lua-indent-close-paren-align, lua-jump-on-traceback) + (lua-mode-hook, lua-mode, lua-luacheck-program): Delete group, + add version. + +2025-08-25 john muhl <jm@pub.pink> + + Remove unnecessary code from 'lua-mode' + + * lisp/progmodes/lua-mode.el (lua-traceback-line-re) + (lua-start-process): compile.el has Lua support now. + +2025-08-25 john muhl <jm@pub.pink> + + Remove advice from 'lua-mode' + + * lisp/progmodes/lua-mode.el (lua--compilation-find-file) + (compilation-find-file, lua--compilation-goto-locus) + (compilation-goto-locus): Delete. + +2025-08-25 john muhl <jm@pub.pink> + + Use easy-menu in 'lua-mode' + + * lisp/progmodes/lua-mode.el (lua-mode-menu): Delete. + (lua-mode-map): Use 'easy-menu-define'. + +2025-08-25 john muhl <jm@pub.pink> + + Remove obsolete code from 'lua-mode' + + * lisp/progmodes/lua-mode.el: Remove Emacs<27 compatibility code. + (lua-emacs-menu): Remove XEmacs compatibility code. + +2025-08-25 Juergen Hoetzel <juergen@hoetzel.info> + + * lisp/progmodes/lua-mode.el: Import lua-mode. + +2025-08-24 F. Jason Park <jp@neverwas.me> + + Don't set bufbar cursor-type in erc-mode buffers + + * lisp/erc/erc-status-sidebar.el (erc-status-sidebar-get-window): Set + `cursor-type' in `erc-status-sidebar-mode' buffer instead. This bug was + introduced along with the bufbar module for bug#63595 in ERC 5.6. It's + a regression because it also affects the status-sidebar module. + +2025-08-24 F. Jason Park <jp@neverwas.me> + + Use existing X-Debbugs-CC header in erc-bug + + * lisp/erc/erc.el (erc-bug): On Emacs 30 and later, search for and + ideally use an existing "X-Debbugs-CC" header instead of inserting a new + one at the top. Section 4.5 Obsolete Header Fields of RFC 5322 says, + "except for destination address fields (described in section 4.5.3), the + interpretation of multiple occurrences of fields is unspecified." + Anecdotal fiddling suggests the Savannah servers aren't confused by the + second "empty" header field, so this change is probably just cosmetic. + +2025-08-24 Juri Linkov <juri@linkov.net> + + * lisp/treesit.el (treesit-enabled-modes): Use 'add-to-list'. + + Using 'add-to-list' instead of 'cons' in :set avoids + adding duplicate entries to 'major-mode-remap-alist'. + +2025-08-24 Mattias Engdegård <mattiase@acm.org> + + Disallow string data resizing (bug#79784) + + Only allow string mutation that is certain not to require string data to + be resized and reallocated: writing bytes into a unibyte string, and + changing ASCII to ASCII in a multibyte string. + + This ensures that mutation will never transform a unibyte string to + multibyte, that the size of a string in bytes never changes, and that + the byte offsets of characters remain the same. Most importantly, it + removes a long-standing obstacle to reform of string representation and + allow for future performance improvements. + + * src/data.c (Faset): Disallow resizing string mutation. + * src/fns.c (clear_string_char_byte_cache): + * src/alloc.c (resize_string_data): Remove. + * test/src/data-tests.el (data-aset-string): New test. + * test/lisp/subr-tests.el (subr--subst-char-in-string): + Skip error cases. + * test/src/alloc-tests.el (aset-nbytes-change): + Remove test that is no longer relevant. + * doc/lispref/strings.texi (Modifying Strings): + * doc/lispref/sequences.texi (Array Functions): + * doc/lispref/text.texi (Substitution): Update manual. + * etc/NEWS: Announce. + +2025-08-24 Mattias Engdegård <mattias.engdegard@gmail.com> + + * lisp/emacs-lisp/bytecomp.el (mutating-fns): cl-fill and cl-replace + +2025-08-24 Dmitry Gutov <dmitry@gutov.dev> + + Have project-switch-to-buffer use a distinct completion category + + * etc/NEWS: Mention the change. + + * lisp/minibuffer.el (completion-category-defaults): + Add an entry for it. + + * lisp/progmodes/project.el (project--buffers-completion-table): + Return category 'project-buffer'. + +2025-08-24 Dmitry Gutov <dmitry@gutov.dev> + + Follow-up to previous changes in project--read-project-buffer + + * lisp/progmodes/project.el (project--buffers-completion-table): + New function, use it to implement the no-internal/internal + fallback logic from 'internal-complete-buffer', apply the + category and cycle-sort-function (bug#77312). + (project--read-project-buffer): Use it. Skip 'read-buffer' in + favor of 'completing-read'. But make sure to honor + read-buffer-completion-ignore-case and use format-prompt when + the function is available. Unify two execution paths. + +2025-08-24 Dmitry Gutov <dmitry@gutov.dev> + + Add NEWS entry for project-switch-buffer change from bug#77312 + +2025-08-23 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + b3ed4876b63 ; Improve documentation of Edebug + fdad3417dcf ; Fix typo in 'cursor-type' widget + +2025-08-23 Eli Zaretskii <eliz@gnu.org> + + Improve and clarify documentation of 'dired-click-to-select-mode' + + * lisp/dired.el (dired-click-to-select-mode) + (dired-post-do-command): + * doc/emacs/dired.texi (Marks vs Flags): Improve documentation of + 'dired-click-to-select-mode'. + +2025-08-23 Jeremy Bryant <jb@jeremybryant.net> + + * doc/lispref/control.texi (cond* Macro): Update bind* entry + + Update manual to match docstring of (bind*) clause, including + the qualifier `all subsequent clauses'. (Bug#79246) + +2025-08-23 Eli Zaretskii <eliz@gnu.org> + + Use better temporary file names under 'file-precious-flag' + + * lisp/files.el (basic-save-buffer-2): Use a more meaningful + temporary file name under 'file-precious-flag'. (Bug#79252) + + * etc/NEWS: Announce the change in behavior. + +2025-08-23 Eli Zaretskii <eliz@gnu.org> + + Rmail can fetch email from several inboxes with different passwords + + * lisp/mail/rmail.el (rmail--remote-password-host) + (rmail--remote-password-user): New variables. + (rmail-get-remote-password): Use them to ask for the password + whenever we need to fetch email from an inbox whose user or host + are different from the last ones. (Bug#79214) + +2025-08-23 Spencer Baugh <sbaugh@janestreet.com> + + flymake: stop trying to automatically fall back to margins + + The code to automatically fallback to margins is not correct: it + relies implicitly on the buffer being displayed in a window + while flymake-mode is running. If the buffer is created while + not displayed, we will always automatically fallback to margins, + which is incorrect. + Avoid the regression by simply disabling this code. I'll try + again to fall back automatically in the future. (Bug#79244) + + * doc/misc/flymake.texi (Customizable variables): Remove section + about automatic fallback to margins. + * etc/NEWS: Un-announce removed feature. + * lisp/progmodes/flymake.el (flymake-indicator-type) + (flymake-mode): Stop automatically falling back to + margins. (bug#77313) + +2025-08-23 Michael Albinus <michael.albinus@gmx.de> + + Minor fixes for file notifications on MS Windows + + * lisp/filenotify.el (file-notify-rm-all-watches): Clear hash. + + * test/lisp/filenotify-tests.el (file-notify--test-event-test): + Fix check. + (file-notify-test09-watched-file-in-watched-dir): Adapt test. + +2025-08-23 Eli Zaretskii <eliz@gnu.org> + + Fix line-prefix display when there's a 'display' string at BOL + + * src/xdisp.c (push_it): Reset the 'string_from_prefix_prop_p' flag. + (try_window_id): Disable this optimization if the last unchanged + at-beg row begins with a display or overlay string and there;s a + line/wrap-prefix property on the row. + (push_prefix_prop): Accept an additional argument FROM_BUFFER to + indicate that the prefix property was found on buffer text + underlying a display or overlay property, and set up the position + to pop to accordingly. Reset the 'string_from_display_prop_p' flag + of the iterator after pushing IT to set up for iterating the + prefix string. + (get_it_property): Use it->string, not it->object, as indication + that prefix property is on a string. + (get_line_prefix_it_property): Accept an additional argument: + pointer to a flag indicating that the prefix property was found on + buffer text underlying a display or overlay property. Callers + adjusted. + (handle_line_prefix): Use the FROM_BUFFER flag to correctly handle + prefix properties on buffer text at the same position as a display + string. (Bug#79275) + +2025-08-22 Michael Albinus <michael.albinus@gmx.de> + + Minor tramp.texi changes + + * doc/misc/tramp.texi (File name syntax): Describe port for IPv6 address. + (Traces and Profiles): Fix default value of tramp-debug-buffer-limit. + +2025-08-22 Michael Albinus <michael.albinus@gmx.de> + + Skip eglot-test-rust-completion-exit-function on emba + +2025-08-21 Steven Allen <steven@stebalien.com> + + Fix 'submit-emacs-patch' MIME type + + * lisp/mail/emacsbug.el (submit-emacs-patch): Use the correct + MIME type for patches. Otherwise, `mm-inline-media-tests' won't + recognize and fontify the patch. (Bug#79287) + +2025-08-21 Elías Gabriel Pérez <eg642616@gmail.com> + + project: Improve pruning of zombie projects. + + * etc/NEWS: Update 'project-prune-zombie-projects' entry. + * lisp/progmodes/project.el (project-prune-zombie-projects): + Change default value (bug#77566). + (project--ensure-read-project-list, project--write-project-list) + (project-prompt-project-dir, project-prompt-project-name): + Rework for use 'project-prune-zombie-projects' value. + (project-forget-zombie-projects): Move code... + (project--delete-zombie-projects): ... to this new function. + +2025-08-21 Spencer Baugh <sbaugh@janestreet.com> + + Add minibuffer--completions-visible and use it + + At various places, instead of just checking that there's any + window displaying a buffer named *Completions*, we should + additionally check that that *Completions* buffer is actually + for the current completion session. + minibuffer--completions-visible does that. + + * lisp/comint.el (comint-complete-input-ring) + (comint-dynamic-list-completions): Call + minibuffer--completions-visible. + * lisp/minibuffer.el (minibuffer--completions-visible): + Add. (bug#77253) + (completion--do-completion, completions--post-command-update) + (completions--after-change, minibuffer-hide-completions) + (minibuffer-visible-completions) + (minibuffer-visible-completions--always-bind) + (minibuffer-visible-completions--filter) + (with-minibuffer-completions-window, minibuffer-complete-history) + (minibuffer-complete-defaults): Call + minibuffer--completions-visible. + * lisp/pcomplete.el (pcomplete-show-completions): Call + minibuffer--completions-visible. + * lisp/simple.el (switch-to-completions): Call + minibuffer--completions-visible. + * test/lisp/minibuffer-tests.el (completion-auto-help-test) + (completion-auto-select-test): Call + minibuffer--completions-visible. + +2025-08-21 Steven Allen <steven@stebalien.com> + + rust-ts-mode: handle invalid rust syntax without signaling + + Don't signal an error when encountering invalid rust syntax. Without + this patch, invalid rust code would prevent a chunk of the buffer from + being highlighted (bug#79272). + + * lisp/progmodes/rust-ts-mode.el (rust-ts-mode--fontify-scope): + (rust-ts-mode--fontify-pattern): Avoid calling `string-match-p' on nil + when a node is missing a parent. + * test/lisp/progmodes/rust-ts-mode-resources/font-lock-no-parent.rs: + Rust file that reproduces the issue. + * test/lisp/progmodes/rust-ts-mode-tests.el: Test case to reproduce the + issue. + +2025-08-21 Rahguzar <rahguzar@mailbox.org> + + Correctly document the format of tabulated-list-groups + + * lisp/emacs-lisp/tabulated-list.el (tabulated-list-groups): + Correct format in doc string (bug#79220). + + * doc/lispref/modes.texi (Tabulated List Mode): + Correct format in manual. + +2025-08-21 Mattias Engdegård <mattias.engdegard@gmail.com> + + Speed up JSON parsing by not maintaining line and column (bug#79192) + + We use the current parsing position instead. The line and column in the + error weren't used (nor very accurate to begin with) and the user can + easily compute them when needed. The line number calculation is kept + just in case but deprecated, for removal in Emacs 32. + + * src/json.c (struct json_parser, json_parser_init): Update parser state. + (json_signal_error): New position computation. + (json_skip_whitespace_internal): Remove. + (is_json_whitespace): New. + (json_skip_whitespace, json_skip_whitespace_if_possible) + (json_parse_unicode, json_parse_string, json_parse_number) + (json_parse_value): Simplify and rewrite for efficiency. + (count_chars, count_newlines) + (string_byte_to_pos, string_byte_to_line) + (buffer_byte_to_pos, buffer_byte_to_line): New. + (Fjson_parse_string, Fjson_parse_buffer): Adapt to new parser state. + * test/src/json-tests.el (json-tests--parse-string-error-pos) + (json-tests--parse-buffer-error-pos, json-parse-error-position): New. + * etc/NEWS: Note deprecation of line and column. + +2025-08-21 Mattias Engdegård <mattias.engdegard@gmail.com> + + Free tar-mode helper buffers after use in package.el (bug#79280) + + The auxiliary buffer used by tar-mode is normally destroyed when the + parent buffer is, but package.el uses tar-mode in temporary buffers + which inhibit kill-buffer-hook and this made package installation leave + orphaned buffers behind. + + * lisp/emacs-lisp/package.el (package-untar-buffer) + (package-install-file): Switch away from tar-mode before the buffer is + killed, triggering a tar-data buffer purge. + +2025-08-21 Mattias Engdegård <mattias.engdegard@gmail.com> + + Eliminate some gratuitous string mutation + + * lisp/play/zone.el (zone-replace-char): + * lisp/international/quail.el (quail-get-translations): + * lisp/hippie-exp.el (he-capitalize-first): Clarify the code by removing + mutation that is probably not resizing but just in case. + +2025-08-21 Spencer Baugh <sbaugh@janestreet.com> + + Avoid duplicating strings in pcm--merge-completions + + Make completion-pcm--merge-completions operate only on the text + matched by the wildcards, instead of also the text in between + the wildcards. This improves performance and simplifies the + code by removing the need for the previous mutable variable + "fixed". + + * lisp/minibuffer.el (completion-pcm--merge-completions): + Operate only on text matched by wildcards. (bug#79265) + +2025-08-21 Spencer Baugh <sbaugh@janestreet.com> + + Treat point more consistently in PCM completion + + Properly fix bug#38458, which is fundamentally an issue with + completion-ignore-case, by checking if the completions are + unique ignoring case. When the completions are unique, the + normal code to delete a wildcard naturally causes point to be + moved to the end of the minibuffer, which is the correct + behavior. + + Now that the bug is fixed properly, remove a hack which + previously was used to "fix" it, which made point behave + inconsistently if it was in the middle of the minibuffer versus + at the end of the minibuffer. + + * lisp/minibuffer.el (completion-pcm--merge-completions): + Respect completion-ignore-case when checking for completion + uniqueness. (bug#79265) + (completion-pcm--string->pattern) + (completion-pcm--optimize-pattern): Allow point at the end of + the pattern. + * test/lisp/minibuffer-tests.el (completion-table-test-quoting) + (completion-test--pcm-bug38458, completion-pcm-test-8): Update + tests for more correct behavior. + +2025-08-20 Paul Eggert <eggert@cs.ucla.edu> + + Update comments re GCC bugs 117423 and 119085 + +2025-08-20 Michael Albinus <michael.albinus@gmx.de> + + Change default of tramp-debug-buffer-limit + + * lisp/net/tramp-message.el (tramp-debug-buffer-limit): Change + default to 100MB. Suggested by Francesco Potortì + <pot@potorti.it>. + +2025-08-20 Sean Whitton <spwhitton@spwhitton.name> + + Rename some incoming & outgoing diff commands + + * lisp/vc/vc.el (vc-fileset-diff-incoming) + (vc-fileset-diff-outgoing): Rename to ... + (vc-diff-incoming, vc-diff-outgoing): ... these. + All uses changed. + +2025-08-19 Spencer Baugh <sbaugh@janestreet.com> + + Signal end-of-file with more correct data + + end_of_file_error previously always signaled end-of-file with + load-true-file-name if that was non-nil (and a string). + However, this might be the wrong thing to do; for example, if a + file being loaded calls read on a buffer. + + * src/lread.c (end_of_file_error): <source>: New argument; check + it to determine what data to signal with. (bug#68546) + (read_char_escape, read_char_literal, read_string_literal) + (skip_space_and_comments, read0): Pass source to + end_of_file_error. + +2025-08-19 Philipp Stephani <p.stephani2@gmail.com> + + Clarify that sequence/map functions don't alter their argument + + * lisp/emacs-lisp/seq.el (seq-sort, seq-sort-by, seq-reverse) + (seq-concatenate, seq-into-sequence, seq-into, seq-filter, seq-remove) + (seq-remove-at-position, seq-reduce, seq-find, seq-uniq, seq-mapcat) + (seq-partition, seq-union, seq-intersection, seq-difference) + (seq-group-by, seq-split, seq-keep): + * lisp/emacs-lisp/map.el (map-filter, map-remove, map-merge) + (map-merge-with): Clarify that these functions don't modify their + sequence/map arguments. + +2025-08-18 Philipp Stephani <p.stephani2@gmail.com> + + Catch all non-local exits when running ERT tests. + + See discussion in https://debbugs.gnu.org/cgi/bugreport.cgi?bug=76447. + + * lisp/emacs-lisp/ert.el (ert--run-test-internal): Catch all non-local + exits in 'handler-bind'. + +2025-08-18 Juri Linkov <juri@linkov.net> + + Silence byte-compile warnings when treesit is not available + + * lisp/progmodes/c-ts-mode.el: + * lisp/progmodes/cmake-ts-mode.el: + * lisp/progmodes/csharp-mode.el: + * lisp/progmodes/dockerfile-ts-mode.el: + * lisp/progmodes/elixir-ts-mode.el: + * lisp/progmodes/go-ts-mode.el: + * lisp/progmodes/heex-ts-mode.el: + * lisp/progmodes/java-ts-mode.el: + * lisp/progmodes/js.el: + * lisp/progmodes/json-ts-mode.el: + * lisp/progmodes/lua-ts-mode.el: + * lisp/progmodes/php-ts-mode.el: + * lisp/progmodes/ruby-ts-mode.el: + * lisp/progmodes/rust-ts-mode.el: + * lisp/progmodes/sh-script.el: + * lisp/progmodes/typescript-ts-mode.el: + * lisp/textmodes/css-mode.el: + * lisp/textmodes/markdown-ts-mode.el: + * lisp/textmodes/mhtml-ts-mode.el: + * lisp/textmodes/toml-ts-mode.el: + * lisp/textmodes/yaml-ts-mode.el: + Declare 'treesit-major-mode-remap-alist' and + 'treesit-language-available-p' to silence warnings + that are false alarms. Also improve docstrings. + +2025-08-17 Stefan Monnier <monnier@iro.umontreal.ca> + + Reject invalid error symbols (Bug#76447) + + * src/eval.c (signal_or_quit): Signal an error if 'signal' gets called + with an invalid error symbol. + +2025-08-17 JD Smith <93749+jdtsmith@users.noreply.github.com> + + Adapt tramp to new autoload-macro expand + + Bug #78995. + + * lisp/net/tramp-compat.el (tramp-loaddefs): suppress error on requiring + tramp-loaddef. + * lisp/net/tramp.el (tramp--with-startup): declare autoload-macro + expand, and suppress warnings about this declare form on older versions + of Emacs. + +2025-08-17 Sean Whitton <spwhitton@spwhitton.name> + + VC: New commands for incoming and outgoing fileset diffs + + * lisp/vc/vc.el (vc-fileset-diff-incoming) + (vc-fileset-diff-outgoing): New commands. + (vc-root-diff-incoming): Refactor to call + vc-fileset-diff-incoming. + (vc-root-diff-outgoing): Refactor to call + vc-fileset-diff-outgoing. + * lisp/vc/vc-hooks.el (vc-incoming-prefix-map) + (vc-outgoing-prefix-map): Bind the new commands. + * doc/emacs/maintaining.texi (VC Change Log): + * etc/NEWS: Document the new commands. + +2025-08-17 Sean Whitton <spwhitton@spwhitton.name> + + Delete duplicate bindings of default-directory + + * lisp/vc/vc.el (vc-root-version-diff, vc-diff-mergebase) + (vc-root-diff-incoming, vc-root-diff-outgoing, vc-root-diff): + Delete duplicate bindings of default-directory. + vc--with-backend-in-rootdir already establishes bindings. + +2025-08-17 Sean Whitton <spwhitton@spwhitton.name> + + vc--maybe-read-remote-location: Don't return a list + + * lisp/vc/vc.el (vc--maybe-read-remote-location): Return an atom. + (vc-root-diff-incoming, vc-root-diff-outgoing, vc-log-incoming) + (vc-log-outgoing): Wrap call to 'vc--maybe-read-remote-location' + in a call to 'list'. + +2025-08-17 Michael Albinus <michael.albinus@gmx.de> + + Suppress Tramp session timeout if buffer is modified + + * doc/misc/tramp.texi (Predefined connection information): A session + timeout is suppressed if there is a modified buffer, or a buffer + under auto-revert. + (Traces and Profiles): Tramp messages are written to the *Messages* + buffer when level is less than or equal to 3. + + * lisp/net/tramp-sh.el (tramp-timeout-session): Do not timeout + when buffer is modified, or in auto-revert mode. + + * test/lisp/net/tramp-tests.el (tramp-test48-session-timeout): + Extend test. + +2025-08-16 Sean Whitton <spwhitton@spwhitton.name> + + vc-hg-checkin-patch: Fix on MS-Windows, make 'hg import' async + + * lisp/vc/vc-hg.el (vc-hg--checkin): New function to do the work + of vc-hg-checkin and vc-hg-checkin-patch. + (vc-hg-checkin): Replace body with call to vc-hg--checkin. + (vc-hg-checkin-patch): Likewise. As compared with the old + implementation, this change (i) fixes encoding issues when + checking in patches on MS-Windows; and (ii) when + vc-async-checkin is non-nil, runs 'hg import' asynchronously + instead of running 'hg update' asynchronously (bug#79235). + +2025-08-16 Eli Zaretskii <eliz@gnu.org> + + vc-hg-known-other-working-trees: Fix on MS-Windows + + * lisp/vc/vc-hg.el (vc-hg-known-other-working-trees): Use + expand-file-name to convert paths from .hg/sharedpath files. + +2025-08-16 João Távora <joaotavora@gmail.com> + + Flymake: improve previous fix (bug#78862) + + The previous fix for this bug is an acceptable approach, but + more care must be taken when clearing a flymake--state object's + diagnostics. Refactor this behaviour into a helper. + + * lisp/progmodes/flymake.el (flymake--clear-state): New helper. + (flymake--publish-diagnostics, flymake-start): Use it. + +2025-08-16 Sean Whitton <spwhitton@spwhitton.name> + + vc-test--with-author-identity: Handle Mercurial + + * test/lisp/vc/vc-tests/vc-tests.el (vc-hg-global-switches): + Declare. + (vc-test--with-author-identity): Handle Mercurial. + +2025-08-16 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc-hg.el (vc-hg-checkin): Fix on MS-Windows (bug#79024). + +2025-08-16 Michael Albinus <michael.albinus@gmx.de> + + Merge from origin/emacs-30 + + 964741d40e0 * lisp/net/tramp-sh.el (tramp-get-remote-touch): Simplify. + 6a018a2d7e4 Improve use of "touch" in Tramp + +2025-08-16 Michael Albinus <michael.albinus@gmx.de> + + Merge from origin/emacs-30 + + f8a206937c9 executable-interpret: Handle remote file names + c17168ebed9 ; * admin/make-tarball.txt: Fix typo and add details. + +2025-08-16 Michael Albinus <michael.albinus@gmx.de> + + Merge from origin/emacs-30 + + 636f166cfc8 ; * make-dist: Include ELisp hierarchy diagram in tarball... + +2025-08-16 Michael Albinus <michael.albinus@gmx.de> + + Merge from origin/emacs-30 + + 8960e3af819 Update files for Emacs 30.2 + ebeca61755e * admin/admin.el (set-version): Fix handling of official ... + +2025-08-16 Michael Albinus <michael.albinus@gmx.de> + + Merge from origin/emacs-30 + + 49d64bfb1a4 ; * etc/NEWS: Update for Emacs 30.2. + 4b90b6e7ce9 ; * lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Doc fi... + +2025-08-16 Elías Gabriel Pérez <eg642616@gmail.com> + + whitespace-mode: New style to prettify page delimiters characters. + + This new style for 'whitespace-style' displays the page + delimiter characters "^L" as pretty horizontal lines. (Bug#77544) + + This also add a new minor mode to toggle these visualization. + + * lisp/whitespace.el (whitespace-style): Add page-delimiters + option. + (whitespace-page-delimiter): New face. + (whitespace--page-delimiters-keyword): New variable. + (whitespace-page-delimiters-mode): New minor mode. + (whitespace-style-face-p, whitespace-color-on): Rework for + display the page-delimiters. + +2025-08-16 Spencer Baugh <sbaugh@janestreet.com> + + Add support for updating *Completions* as you type + + Add support for updating the *Completions* buffer as you type, + controlled by a new completion metadata symbol 'eager-update' + and a new defcustom 'completion-eager-update'. + + You can configure a completion category to update *Completions* + as you type by setting 'completion-category-overrides' + appropriately; or set 'completion-eager-update' to t to always + update *Completions* as you type. + + This is similar to the recently added 'completion-eager-display'. + + * lisp/minibuffer.el (completion-eager-update): Add new + defcustom defaulting to 'auto. (Bug#77649) + (completion--eager-update-p, completions--background-update) + (completions--post-command-update): Add. + (completions--after-change): Call + 'completions--post-command-update' via 'post-command-hook'. + (minibuffer-completion-help): Check 'completion-eager-update' + and install 'completions--after-change'. + (completion-help-at-point): Call 'completion--eager-update-p' + if ONLY-IF-EAGER is non-nil. + * etc/NEWS: Announce completion-eager-update. Reword the + announcement of 'completion-eager-display' for consistency. + +2025-08-16 Michael Albinus <michael.albinus@gmx.de> + + * lisp/net/tramp-sh.el (tramp-get-remote-touch): Simplify. + +2025-08-16 Toru TSUNEYOSHI <t_tuneyosi@hotmail.com> + + Improve use of "touch" in Tramp + + * lisp/net/tramp-sh.el (tramp-get-remote-touch): Set connection + property "touch-h". + (tramp-sh-handle-set-file-times): Use it. + +2025-08-16 Manuel Giraud <manuel@ledu-giraud.fr> + + Handle 'lexical-binding' cookie in nnrss output + + * lisp/gnus/nnrss.el (nnrss-save-server-data) + (nnrss-save-group-data): Add a 'lexical-binding' cookie. + * lisp/gnus/nnrss.el (nnrss-read-server-data) + (nnrss-read-group-data): Allow missing 'lexical-binding' cookie. + (Bug#79199) + +2025-08-16 Michael Albinus <michael.albinus@gmx.de> + + Sync with Tramp 2.7.4-pre + + * doc/misc/trampver.texi: + * lisp/net/trampver.el (tramp-version): Adapt Tramp versions. + + * lisp/net/tramp-cmds.el (tramp-cleanup-connection): + Use read syntax #' for `tramp-timeout-session', + + * lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection): + * lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection): + Set "connected" property in time. + + * lisp/net/tramp-sh.el (tramp-timeout-session): + Add ;;;###tramp-autoload cookie. + + * lisp/net/tramp.el (tramp-barf-if-file-missing): Do not raise an + error when not connected. (Bug#78572) + (tramp-file-name-handler): Do not force the backtrace. + (tramp-connectable-p): Check also, whether initial handshake is finished. + (tramp-skeleton-directory-files) + (tramp-skeleton-directory-files-and-attributes) + (tramp-skeleton-set-file-modes-times-uid-gid): Rearrange sending + `file-missing' error. + (tramp-handle-access-file, tramp-handle-unlock-file): + Use `tramp-connectable-p'. + (tramp-skeleton-file-name-all-completions): Filter out "" hits. + (Bug#79173) + + * test/lisp/net/tramp-tests.el (project-mode-line-format) + (project-mode-line): Declare. + (tramp-test48-session-timeout): New test. + (tramp-test49-auto-load, tramp-test49-delay-load) + (tramp-test49-recursive-load, tramp-test49-remote-load-path) + (tramp-test50-without-remote-files, tramp-test51-unload): Rename. + +2025-08-16 Eli Zaretskii <eliz@gnu.org> + + Make sure 'make-process' locks the process to the current thread + + * src/process.c (set_proc_thread): New function. + (Fset_process_thread, create_process): Use it. + +2025-08-16 Spencer Baugh <sbaugh@janestreet.com> + + Zero fd_callback_info when deleting an fd + + .waiting_thread and .thread could be left set to non-NULL values + in a deleted fd_callback_info entry. These would never be + cleared by e.g. clear_waiting_thread_info since that only clears + fd_callback_info entries up to max_desc. Clear fd_callback_info + entirely when deleting an entry. + + * src/process.c (clear_fd_callback_data): Add. + (delete_write_fd, delete_keyboard_wait_descriptor): Call + clear_fd_callback_data. (bug#79201) + (delete_read_fd): Remove duplicated clearing code. + (deactivate_process): Remove duplicate recompute_max_desc. + +2025-08-16 john muhl <jm@pub.pink> + + (diff--font-lock-prettify): Fix fringe width test + + * lisp/vc/diff-mode.el (diff--font-lock-prettify): + Use 'window-fringes' instead of the 'left-fringe' frame parameter + since the former returns an integer on both GUI and TTY frames. + +2025-08-16 Eli Zaretskii <eliz@gnu.org> + + Reject non-nil non-number REPEAT in 'run-with-timer' + + * lisp/emacs-lisp/timer.el (run-at-time, run-with-timer): Reject + non-nil REPEAT if it is not a non-negative number. (Bug#79227) + Doc fixes. + + * test/lisp/emacs-lisp/timer-tests.el (timer-test-repeat-arg): New + test. + +2025-08-15 Matthew Tromp <matthewktromp@gmail.com> + + Delete overlays from Flymake backends that no longer exist + + Fix for bug#78862: previously, when starting eglot, existing flymake + diagnostics in the buffer would persist until flymake was completely + restarted (like by running 'flymake-mode' twice). This change adds + logic to 'flymake-start' to delete all diagnostics and their overlays + from any backend that is no longer in 'flymake-diagnostic-functions'. + * lisp/progmodes/flymake.el (flymake-start): Remove overlays from + backends that no longer exist. + +2025-08-15 Eli Zaretskii <eliz@gnu.org> + + Update description of buffer-in-register + + * doc/lispref/text.texi (Registers): Update register-in-buffer + form. (Bug#79243) + +2025-08-14 Juri Linkov <juri@linkov.net> + + New user option 'treesit-enabled-modes' (bug#79180) + + * lisp/treesit.el (treesit-enabled-modes): New user option. + * src/treesit.c (treesit-major-mode-remap-alist): New variable. + + * lisp/progmodes/c-ts-mode.el: + * lisp/progmodes/csharp-mode.el: + * lisp/progmodes/java-ts-mode.el: + * lisp/progmodes/js.el: + * lisp/progmodes/json-ts-mode.el: + * lisp/progmodes/ruby-ts-mode.el: + * lisp/progmodes/sh-script.el: + * lisp/textmodes/css-mode.el: + * lisp/textmodes/mhtml-ts-mode.el: + * lisp/textmodes/toml-ts-mode.el: + Add ts-mode mapping to 'treesit-major-mode-remap-alist' + for ts-modes that already have the corresponding non-ts mode + association in 'auto-mode-alist'. + + * lisp/progmodes/cmake-ts-mode.el (cmake-ts-mode-maybe): + * lisp/progmodes/dockerfile-ts-mode.el (dockerfile-ts-mode-maybe): + * lisp/progmodes/elixir-ts-mode.el (elixir-ts-mode-maybe): + * lisp/progmodes/go-ts-mode.el (go-ts-mode-maybe) + (go-mod-ts-mode-maybe, go-work-ts-mode-maybe): + * lisp/progmodes/heex-ts-mode.el (heex-ts-mode-maybe): + * lisp/progmodes/lua-ts-mode.el (lua-ts-mode-maybe): + * lisp/progmodes/php-ts-mode.el (php-ts-mode-maybe): + * lisp/progmodes/rust-ts-mode.el (rust-ts-mode-maybe): + * lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode-maybe) + (tsx-ts-mode-maybe): + * lisp/textmodes/markdown-ts-mode.el (markdown-ts-mode-maybe): + * lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode-maybe): + Add a wrapper function to 'auto-mode-alist' + for ts-modes that have no corresponding non-ts mode. + Also add a mapping to 'treesit-major-mode-remap-alist' + for the case when a non-ts mode is installed from an external + source to be able to customize it with 'treesit-enabled-modes'. + +2025-08-14 Zhengyi Fu <i@fuzy.me> (tiny change) + + executable-interpret: Handle remote file names + + * lisp/progmodes/executable.el (executable-interpret): Use + `file-local-name' to get the local file name component from + `buffer-file-name'. (Bug#79233) + +2025-08-14 Elijah Gabe Pérez <eg642616@gmail.com> + + Fix lua-ts-mode-tests.el + + * test/lisp/progmodes/lua-ts-mode-tests.el + (lua-ts-test-auto-close-block-comments): Skip when needed. + +2025-08-14 Sean Whitton <spwhitton@spwhitton.name> + + vc-git-modify-change-comment: Bind c-s-f-w for command arguments too + + * lisp/vc/vc-git.el (vc-git-modify-change-comment): Bind + coding-system-for-write to locale-coding-system around the call + to vc-git-command on MS-Windows. The temporary file name could + contain non-ASCII, e.g. the user's username. + +2025-08-14 Sean Whitton <spwhitton@spwhitton.name> + + vc-buffer-sync-fileset: Reorder some checks for speed (bug#79137) + + * lisp/vc/vc.el (vc-buffer-sync-fileset): Check whether a + buffer's file is in one of our directories before checking + whether it exists on disk. This should mean far fewer system + calls overall (bug#79137). + +2025-08-14 Po Lu <luangruo@yahoo.com> + + Fix generation of defvars defined by easy-mmode and company in loaddefs.el + + * lisp/emacs-lisp/loaddefs-gen.el + (loaddefs-generate--make-autoload): Restore previously existing + conditions for recursing on macroexpansions when processing + easy-mmode and related macros. + +2025-08-14 Sean Whitton <spwhitton@spwhitton.name> + + vc-hg-checkin-patch: Fix several issues + + * lisp/vc/vc-hg.el (vc-hg-checkin-patch): Use + make-nearby-temp-file. Protect the async process with + vc-wait-for-process-before-save. Don't call vc-checkin-hook + here, instead return a (async . #<process>) list so that + vc-finish-logentry does it. + +2025-08-14 Eli Zaretskii <eliz@gnu.org> + + Bump Emacs version to 30.2.50 + + * README: + * configure.ac: + * exec/configure.ac: + * java/AndroidManifest.xml.in (Version-code): + * nt/README.W32: + * msdos/sed2v2.inp: Bump Emacs version to 30.2.50. + + * etc/NEWS: Add headers for Emacs 30.2. + +2025-08-14 Eli Zaretskii <eliz@gnu.org> + + Update files for Emacs 30.2 + + * ChangeLog.5: + * etc/AUTHORS: + * etc/HISTORY: Update for Emacs 30.2. + + * admin/admin.el (set-version): Fix handling of official releases. + +2025-08-14 Eli Zaretskii <eliz@gnu.org> + + * admin/admin.el (set-version): Fix handling of official releases. + +2025-08-13 Michael Albinus <michael.albinus@gmx.de> + + Limit size of Tramp debug buffer + + * doc/misc/tramp.texi (Traces and Profiles): Add + tramp-debug-buffer-limit to index. Describe it. + + * lisp/net/tramp-message.el (tramp-debug-buffer-limit): New defcustom. + (tramp-debug-message): Use it. (Bug#79182) + +2025-08-12 Michael Albinus <michael.albinus@gmx.de> + + Fix file notification problem on Windows. + + * src/inotify.c (inotify_callback): Set event.frame_or_window to Qnil. + + * src/keyboard.c (make_lispy_event): Make a better check for the + HAVE_W32NOTIFY case when creating a Qfile_notify event. + +2025-08-12 Sean Whitton <spwhitton@spwhitton.name> + + vc-test--other-working-trees: Export env vars so Git finds an author + + * test/lisp/vc/vc-tests/vc-tests.el + (vc-test--with-author-identity): New macro, factored out of + vc-test--version-diff. + (vc-test--version-diff, vc-test--other-working-trees): Use it. + +2025-08-12 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc-hg.el (vc-hg-checkin): Pass '-A' to 'hg commit'. + +2025-08-12 Juri Linkov <juri@linkov.net> + + * lisp/tab-bar.el: Revert caching in 'tab-bar-format-align-right'. + + (tab-bar--align-right-cache): Remove variable. + (tab-bar-format-align-right): Remove uses of + 'tab-bar--align-right-cache' (bug#79141). + +2025-08-12 Elías Gabriel Pérez <eg642616@gmail.com> + + tab-line: Allow to hide excluded buffers in the tab line. (Bug#79159) + + * etc/NEWS: Announce changes. + * lisp/tab-line.el (tab-line-tabs-window-buffers-filter-function): + New user option. + (tab-line-tabs-non-excluded): New function. + (tab-line-tabs-window-buffers): Update. + +2025-08-12 Sean Whitton <spwhitton@spwhitton.name> + + vc-buffer-sync-fileset: Optimization when NOT-ESSENTIAL is non-nil + + * lisp/vc/vc.el (vc-buffer-sync-fileset): When NOT-ESSENTIAL is + non-nil, use string-prefix-p instead of file-in-directory-p + (bug#79137). + +2025-08-12 Sean Whitton <spwhitton@spwhitton.name> + + vc-test--other-working-trees: Fix a skip condition + + * test/lisp/vc/vc-tests/vc-tests.el + (vc-test--other-working-trees): For Git, don't try moving the + first working tree unless we have Git>=2.29. + +2025-08-12 Sean Whitton <spwhitton@spwhitton.name> + + vc-do-command: In batch mode, print the output of failed commands + + * lisp/vc/vc-dispatcher.el (vc-do-command): In batch mode, when + the command fails, print its output. + +2025-08-12 Sean Whitton <spwhitton@spwhitton.name> + + vc-test-git07-other-working-trees: Widen scope of skip on Git<=2.17 + + * test/lisp/vc/vc-tests/vc-tests.el + (vc-test--other-working-trees): Delete condition to skip + 'move-working-tree' tests on Git<=2.17. + (vc-test-git07-other-working-trees): Skip this whole test on + Git<=2.17 (discussion in bug#79024). + +2025-08-12 Po Lu <luangruo@yahoo.com> + + Fix build without tree-sitter + + * lisp/textmodes/mhtml-ts-mode.el + (mhtml-ts-mode--range-settings): Don't invoke + `treesit-language-available-p' unless bound. + +2025-08-11 Dr.Sc.KAWAMOTO,Takuji <kawamoto.takuji@gmail.com> (tiny change) + + Fix NS frame position update after resize/move + + Fixes bug#74074, bug#79164. + + * src/nsterm.m ([EmacsView windowDidEndLiveResize:]): + ([EmacsView updateFramePosition]): New functions. + ([EmacsView windowDidMove:]): Move contents of this function into + updateFramePosition and call it. + +2025-08-10 JD Smith <93749+jdtsmith@users.noreply.github.com> + + Do not include interactive args in autoload files + + (Bug#78995) + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--make-autoload): + Do not include `interactive' ARG-DESCRIPTOR in generated autoload forms + for function-defining macros, but only modes. + +2025-08-10 JD Smith <93749+jdtsmith@users.noreply.github.com> + + Implement new autoload macro expansion declare form + + Currently, a hard-coded set of macros is automatically expanded + during generation of autoloads. To allow user macros to request + such expansion, this implements a new declare form + `autoload-macro' (Bug#78995), with supported value `expand'. + For example, macros which wrap `define-minor-mode', can declare + `(autoload-macro expand)' to request that ;;;###autoload-adorned + calls to the macro are expanded during generation, such that an + autoload for the resulting function is created. + + * lisp/emacs-lisp/byte-run.el (byte-run--set-autoload-macro): + Handle autoload-macro declare forms. + (macro-declarations-alist) Add handler for 'autoload-macro + declare forms. + (defmacro, defun): + * lisp/emacs-lisp/cl-generic.el (cl-defgeneric, cl-defun) + (cl-iter-defun, cl-defmacro, cl-defstruct): + * lisp/emacs-lisp/easy-mmode.el + (define-minor-mode, define-globalized-minor-mode, iter-defun): + * lisp/emacs-lisp/inline.el (define-inline): + * lisp/emacs-lisp/pcase.el (pcase-defmacro): + Declare (autoload-macro expand) to request expansion of the + macro during autoload generation. + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--make-autoload): + Handle the `autoload-macro=expand' property for macros. Load + the ;;;###autoload-containing file if an unknown symbol is + encountered in the car of the following form, to give packages a + chance to define their macros and request expansion. Factor + list of special function-defining macros out as a constant + variable: `loaddefs--defining-macros'. + + * doc/lispref/functions.texi (Declare Form): + * doc/lispref/loading.texi (Autoload): Document `autoload-macro'. + +2025-08-10 Juri Linkov <juri@linkov.net> + + * lisp/man.el (man): Use active region for the default value. + + While reading a manual name, provide text from the selected region + as another default value for the second 'M-n' in the minibuffer. + Also replace spaces with dashes in the name. + +2025-08-10 Juri Linkov <juri@linkov.net> + + Allow code outside Isearch delete overlays in 'isearch-opened-overlays' + + * lisp/isearch.el (isearch-open-necessary-overlays) + (isearch-close-unnecessary-overlays): Use 'overlay-buffer' + to check if overlays in 'isearch-opened-overlays' are still + not deleted (bug#79115). + (with-isearch-suspended): Call 'isearch-clean-overlays' + after 'isearch-done'. Otherwise 'isearch-mode' called later + just resets 'isearch-opened-overlays' to nil, causing "overlay leak". + +2025-08-10 Vincenzo Pupillo <v.pupillo@gmail.com> + + 'php-ts-mode' depends on 'mhtml-ts-mode' instead of JS,CSS and HTML + + The direct dependence on 'js-ts-mode', 'css-ts-mode' and + html-ts-mode has now been replaced by 'mhtml-ts-mode'. + Additional benefits are: + 1. Imenu now exposes symbols for all of all languages, + 2. navigation now works correctly for all languages, + 3. outline works for all languages. + + Additional new features are: + 1. indentation of PHP in mixed buffers with HTML now works much + better and allows three different behaviors, an option allows you to + choose the behavior. + 2. a new feature shows where PHP ini files are both locally and + remotely, if the buffer is associated with a remote PHP file. + + * etc/NEWS: Mention the rationale for those changes, the new command, + and the new options. + * admin/tree-sitter/treesit-admin.el (treesit-admin--builtin-modes): + Added 'mhtml-ts-mode'. + (treesit-admin--builtin-features): Added 'mhtml-ts-mode'. + * lisp/textmodes/mhtml-ts-mode.el (mhtml-ts-mode--range-settings): + New variable that store range settings. + (mhtml-ts-mode--treesit-aggregated-outline-predicate): New variable + that stores outline predicates. + (mhtml-ts-mode): Use those two new variables. + * lisp/progmodes/php-ts-mode.el: Update doc string. Removed old + dependecies. + (php-ts-mode--language-source-alist): Updated parsers version. + (php-ts-mode-install-parsers): Removed old dependencies, now relies + on mhtml-ts-mode-install-parsers'. Update doc string. + (php-ts-mode-js-css-indent-offset): Update doc string. + (php-ts-mode-css-fontify-colors): Removed option, now relies on + 'php-ts-mode-css-fontify-colors'. + (php-ts-mode-html-indent-offset): New user option. + (php-ts-mode-html-relative-indent): New user option. + (php-ts-mode-php-default-executable): Assume "php" instead of + "/usr/bin/php" if 'executable-find' fails. + (php-ts-mode-php-config): Fix tag. + (php-ts-mode-find-sibling-rules): New user option with the rules + for finding siblings of a file. + (php-ts-mode-phpdoc-highlight-errors): New user option, if non-nil + highlight unkown PHPDOC nodes. + (php-ts-mode--indent-style-setter): Indentation fix. + (php-ts-mode-indent-style): Indentation fix. + (php-ts-mode-flymake-php): Indentation fix. + (php-ts-mode--executable): Indentation fix. + (php-ts-mode-show-ini): New command that show the locations of PHP + ini files. + (php-ts-mode--get-indent-style): Indentation fix. + (php-ts-mode--set-indent-property): Indentation fix. + (php-ts-mode-set-style): Indentation fix. + (php-ts-mode--get-parser-ranges): Indentation fix. + (php-ts-mode--possibly-braceless-keyword-re): Removed no longer used + constant. + (php-ts-mode--open-statement-group-heuristic): Removed no longer used + function. + (php-ts-mode--else-heuristic): Indentation fix. + (php-ts-mode--first-sibling): Indentation fix. + (php-ts-mode--js-css-tag-bol): Function removed, now using + 'mhtml-ts-mode--js-css-tag-bol'. + (php-ts-mode--parent-html-bol): Removed no longer used + function. + (php-ts-mode--parent-html-heuristic): Now more reliably handles the + mixed indentation of PHP and HTML. The new option + 'php-ts-mode-html-relative-indent' changes the behavior of the + function. When 'php-ts-mode-html-relative-indent' is 't' the new + option 'php-ts-mode-html-indent-offset' controls the offset of PHP + code relative to HTML tags. + (php-ts-mode--array-element-heuristic): Indentation fix. + (php-ts-mode--anchor-prev-sibling): Indentation fix.. + (php-ts-mode--indent-styles): The indentation rules for 'program' and + text_interpolation' are now common to all indentation styles, thanks + to the new version of 'php-ts-mode-arent-html-heuristic'. New rules + for 'namespace_use_clause', 'use_declaration', 'use_list', + 'attribute_group' and 'string_content'. + (php-ts-mode--prettify-symbols-alist): New variable to support + 'prettify-symbols-alist'. + (php-ts-mode--test-visibility-modifier-operation-clause-p): Rename ... + (php-ts-mode--test-visibility-modifier-operation-p): ... to this more + correct name. + (php-ts-mode--test-property-hook-clause-p): Rename ... + (php-ts-mode--test-property-hook-p): ... to this more correct name. + (php-ts-mode--test-relative-name-p): New function to test if + 'relative_name' is supported by the PHP parser. + (php-ts-mode--font-lock-settings): Use the new function for highlight + 'relative_name'. Highlight 'error_suppression_expression'. + Refactoring using the renamed functions. Indentation fix. + (php-ts-mode--custom-html-font-lock-settings): Replace the rules with + 'mhtml-ts-mode--treesit-font-lock-settings'. Fix docs string. + (php-ts-mode--phpdoc-font-lock-settings): Added support for "array" and + "list" array_type. New "phpdoc-error" feature to highlight unknown + nodes via new 'php-ts-mode--phpdoc-fontify-error' function. + (php-ts-mode--colorize-css-value): Removed function no longer used, now + highlighting is handled directly by 'mhtml-ts-mode'. + (php-ts-mode--phpdoc-fontify-error): New function used by + 'php-ts-mode--phpdoc-font-lock-settings'. + (php-ts-mode--parent-object): Indentation fix. + (php-ts-mode--defun-name-separator): Indentation fix. + (php-ts-mode--defun-object-name): Indentation fix. + (php-ts-mode--defun-name): The function now also returns the defun name + of 'mhtml-ts-mode'. + (php-ts-mode--treesit-defun-type-regexp): New regexp for + 'treesit-defun-type-regexp' support. + (php-ts-mode--indent-defun): Indentation fix. + (php-ts-mode--defun-valid-p): Fix indentation + (php-ts-mode--comment-indent-new-line): Indentation fix. + (php-ts-mode--comment-current-plist): New local variable that stores + the state of the PHP comment style. + (php-ts-mode--comment-setup): The function now handles changing, for + different languages, comment styles, using + "php-ts-mode--comment-current-plist" to store and retrieve the comment + style for the PHP language. + (php-ts-mode-comment-setup): Now store the PHP comment style in + 'php-ts-mode--comment-current-plist'. + (php-ts-mode-menu): Indentation fix. + (php-ts-mode): Replace dependency from JS, CSS and HTML width + 'mhtml-ts-mode'. Navigation, Imenu and Outline now support PHP, HTML, + Javascript and CSS. Added support for 'prettify-symbol-mode'. + Added support for 'electric-layout-rules'. + (php-ts-mode-run-php-webserver, php-ts-mode--webserver-read-args) + (php-ts-mode--webserver-read-args, inferior-php-ts-mode, run-php) + (inferior-php-ts-mode-startup, php-ts-mode-inferior--write-history) + (php-ts-mode-send-region): Indentation fixes. + * lisp/treesit.el (treesit-range-rules): Check if treesit is available + before compiling a query. + (treesit-ensure-installed): Check if treesit is available before trying + to ensure if a grammar library is installed. + + (Bug#78994) + +2025-08-10 Sean Whitton <spwhitton@spwhitton.name> + + Fix some 'git worktree' compatibility issues + + * lisp/vc/vc-git.el (vc-git-delete-working-tree): Reimplement to + avoid requiring 'git worktree remove'. + (vc-git-move-working-tree): Use 'git worktree move' if 'git + worktree repair' is not available. Give a more informative + error message if we don't even have that. + * test/lisp/vc/vc-tests/vc-tests.el (vc-git--program-version): + Declare. + (vc-test--other-working-trees): Skip vc-move-working-tree tests + with Git old enough to lack 'git worktree move'. + +2025-08-10 Sean Whitton <spwhitton@spwhitton.name> + + New command vc-working-tree-switch-project (bug#79024) + + * lisp/vc/vc.el (vc-working-tree-switch-project): New command. + * lisp/vc/vc-hooks.el (vc-prefix-map): Bind it to C-x v w s. + * doc/emacs/vc1-xtra.texi (Other Working Trees): + * etc/NEWS: Document it. + +2025-08-10 Sean Whitton <spwhitton@spwhitton.name> + + New project-find-matching-buffer-function for VC-Dir + + * lisp/vc/vc-dir.el (vc-dir-find-matching-buffer): New function. + (vc-dir-mode): Use it as project-find-matching-buffer-function. + +2025-08-09 Dmitry Gutov <dmitry@gutov.dev> + + Allow thread's buffer to be killed, by default + + * src/thread.c (Fmake_thread): Add new argument (bug#76969). + (thread_set_error): New function, extracted from thread-signal. + (Fthread_buffer_disposition): Add getter. + (Fthread_set_buffer_disposition): And setter. + (thread_check_current_buffer): Check the values of threads' + buffer_disposition. + (thread_all_before_buffer_killed): New function. + (init_threads): Set buffer_disposition to nil for the main thread. + (syms_of_threads): Add new symbols and define the error. + + * src/thread.h (thread_state): New field buffer_disposition. + (thread_all_before_buffer_killed): Declare. + + * src/buffer.c (Fkill_buffer): Call thread_check_current_buffer + one more time after all hooks and after that call + thread_all_before_buffer_killed. + + * src/comp.c (ABI_VERSION): Increase the value. + + * test/src/thread-tests.el (thread-buffer-disposition-t) + (thread-buffer-disposition-nil) + (thread-buffer-disposition-silently) + (thread-set-buffer-disposition) + (thread-set-buffer-disposition-main-thread): New tests. + + * doc/lispref/threads.texi (Basic Thread Functions): Document + buffer-disposition in make-thread and its getter and setter. + + * etc/NEWS: Add entry. + +2025-08-09 Mark A. Hershberger <mah@nichework.com> + + Initialize native-tab-width in cases where there is no language mode + + org-src-font-lock-fontify-block creates an uninitialized + native-tab-width variable and then, when there is no language set on a + block, ends up using it. This triggers an error. + +2025-08-09 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + f2d3659cf50 Handle remote file names in cmuscheme.el + d1ab95b175e * lisp/vc/vc.el (vc-register): Fix interactive spec (bug#... + f58b738042e ; windows installer: set x64 registry keys (tiny change) + +2025-08-09 Eli Zaretskii <eliz@gnu.org> + + Revert "`php-ts-mode' depends on `mhtml-ts-mode' instead of JS,CSS and HTML" + + This reverts commit e1fd7b5d89ec7f2df40fa01bf4041c0d1df147b4. + It fails the build without treew-sitter. + +2025-08-09 Vincenzo Pupillo <v.pupillo@gmail.com> + + `php-ts-mode' depends on `mhtml-ts-mode' instead of JS,CSS and HTML + + The direct dependence on js-ts-mode, css-ts-mode and html-ts-mode + has now been replaced by 'mhtml-ts-mode'. + Additional benefits are: + 1. Imenu now exposes symbols for all of all languages, + 2. navigation now works correctly for all languages, + 3. outline works for all languages. + + Additional new features are: + 1. indentation of PHP in mixed buffers with HTML now works much + better and allows three different behaviors, an option allows you to + choose the behavior. + 2. a new feature shows where PHP ini files are both locally and + remotely, if the buffer is associated with a remote PHP file. + + * etc/NEWS: Mention the rationale for those changes, the new command, + and the new options. + * lisp/textmodes/mhtml-ts-mode.el (mhtml-ts-mode--range-settings): New + variable that store range settings. + (mhtml-ts-mode--treesit-aggregated-outline-predicate): New variable + that store outline predicates. + (mhtml-ts-mode): Use those two new variables. + * lisp/progmodes/php-ts-mode.el: Update doc string. Removed old + dependencies. + (php-ts-mode--language-source-alist): Updated parsers version. + (php-ts-mode-install-parsers): Removed old dependencies, now relies + on (mhtml-ts-mode-install-parsers). Update doc string. + (php-ts-mode-js-css-indent-offset): Update doc string. + (php-ts-mode-css-fontify-colors): Removed option, now relies on + 'php-ts-mode-css-fontify-colors'. + (php-ts-mode-html-indent-offset): New user option. + (php-ts-mode-html-relative-indent): New user option. + (php-ts-mode-php-default-executable): Assume \"php\" instead of + \"/usr/bin/php\" if 'executable-find' fails. + (php-ts-mode-php-config): Fix tag. + (php-ts-mode-find-sibling-rules): New user option with the rules for + finding siblings of a file. + (php-ts-mode-phpdoc-highlight-errors): New user option, if non-nil + highlight unkown PHPDOC nodes. + (php-ts-mode--indent-style-setter): Indentation fix. + (php-ts-mode-indent-style): Indentation fix. + (php-ts-mode-flymake-php): Indentation fix. + (php-ts-mode--executable): Indentation fix. + (php-ts-mode-show-ini): New command that show the locations of PHP + ini files. + (php-ts-mode--get-indent-style): Indentation fix. + (php-ts-mode--set-indent-property): Indentation fix. + (php-ts-mode-set-style): Indentation fix. + (php-ts-mode--get-parser-ranges): Indentation fix. + (php-ts-mode--possibly-braceless-keyword-re): Removed no longer + used constant. + (php-ts-mode--open-statement-group-heuristic): Removed no longer + used function. + (php-ts-mode--else-heuristic): Indentation fix. + (php-ts-mode--first-sibling): Indentation fix. + (php-ts-mode--js-css-tag-bol): Function removed, now using + 'mhtml-ts-mode--js-css-tag-bol'. + (php-ts-mode--parent-html-bol): Removed no longer used + function. + (php-ts-mode--parent-html-heuristic): Now more reliably handles + the mixed indentation of PHP and HTML. The new option + 'php-ts-mode-html-relative-indent' changes the behavior of the + function. When 'php-ts-mode-html-relative-indent' is 't' the new + option 'php-ts-mode-html-indent-offset' controls the offset of PHP + code relative to HTML tags. + (php-ts-mode--array-element-heuristic): Indentation fix. + (php-ts-mode--anchor-prev-sibling): Indentation fix.. + (php-ts-mode--indent-styles): The indentation rules for 'program' + and 'text_interpolation' are now common to all indentation styles, + thanks to the new version of 'php-ts-mode-arent-html-heuristic'. + New rules for 'namespace_use_clause', 'use_declaration', + 'use_list', 'attribute_group' and 'string_content'. + (php-ts-mode--prettify-symbols-alist): New variable to support + 'prettify-symbols-alist'. + (php-ts-mode--test-visibility-modifier-operation-clause-p): Rename ... + (php-ts-mode--test-visibility-modifier-operation-p): ... to this more + correct name. + (php-ts-mode--test-property-hook-clause-p): Rename ... + (php-ts-mode--test-property-hook-p): ... to this more correct name. + (php-ts-mode--test-relative-name-p): New function to test if + 'relative_name' is supported by the PHP parser. + (php-ts-mode--font-lock-settings): Use the new function for highlight + 'relative_name'. Highlight 'error_suppression_expression'. + Refactoring using the renamed functions. Indentation fix. + (php-ts-mode--custom-html-font-lock-settings): Replace the rules with + 'mhtml-ts-mode--treesit-font-lock-settings'. Fix docs string. + (php-ts-mode--phpdoc-font-lock-settings): Added support for "array" + and "list" array_type. New "phpdoc-error" feature to highlight + unknown nodes via new 'php-ts-mode--phpdoc-fontify-error' function. + (php-ts-mode--colorize-css-value): Removed function no longer used, + now highlighting is handled directly by 'mhtml-ts-mode'. + (php-ts-mode--phpdoc-fontify-error): New function used by + 'php-ts-mode--phpdoc-font-lock-settings'. + (php-ts-mode--parent-object): Indentation fix. + (php-ts-mode--defun-name-separator): Indentation fix. + (php-ts-mode--defun-object-name): Indentation fix. + (php-ts-mode--defun-name): The function now also returns the defun + name of 'mhtml-ts-mode'. + (php-ts-mode--treesit-defun-type-regexp): New regexp for + 'treesit-defun-type-regexp' support. + (php-ts-mode--indent-defun): Indentation fix. + (php-ts-mode--defun-valid-p): Fix indentation. + (php-ts-mode--comment-indent-new-line): Indentation fix. + (php-ts-mode--comment-current-plist): New local variable that stores + the state of the PHP comment style. + (php-ts-mode--comment-setup): The function now handles changing, for + different languages, comment styles, using + "php-ts-mode--comment-current-plist" to store and retrieve the comment + style for the PHP language. + (php-ts-mode-comment-setup): Now store the PHP comment style in + 'php-ts-mode--comment-current-plist'. + (php-ts-mode-menu): Indentation fix. + (php-ts-mode): Replace dependency from JS, CSS and HTML width + 'mhtml-ts-mode'. Navigation, Imenu and Outline now support PHP, HTML, + Javascript and CSS. Added support for 'prettify-symbol-mode'. + Added support for 'electric-layout-rules'. + (php-ts-mode-run-php-webserver, php-ts-mode--webserver-read-args) + (php-ts-mode--webserver-read-args, inferior-php-ts-mode, run-php) + (inferior-php-ts-mode-startup, php-ts-mode-inferior--write-history) + (php-ts-mode-send-region): Indentation fixes. + + (Bug#78994) + +2025-08-09 Peder O. Klingenberg <peder@klingenberg.no> + + Emulate dynamic binding of 'url-max-redirections' + + * lisp/url/url-http.el (url-http): Make 'url-max-redirections' + buffer-local in request buffers, to make dynamic binding over + 'url-retrieve' work as expected. + + (Bug#79186) + +2025-08-09 Eli Zaretskii <eliz@gnu.org> + + Revert "Stop subprocesses from using inherited or default PAGER" + + This reverts commit 7811a7d38bb7cb303dc66efa02eb95e75a03f39d. + Users set PAGER and don't expect Emacs to override that. See + https://lists.gnu.org/archive/html/emacs-devel/2025-07/msg00309.html. + +2025-08-09 Zach Shaftel <zach@shaf.tel> + + Improve Vprint_variable_mapping + + * src/print.c (print_create_variable_mapping): Fix a typo, + `unreadeable-function' to `unreadable-function'. Add `symbols-bare' + as an override for `print-symbols-bare'. (Bug#79161) + +2025-08-09 Manuel Giraud <manuel@ledu-giraud.fr> + + Variable to control overshoot and backup for TTY cursor motion + + * src/term.c (syms_of_term): New variable. + * src/cm.c (calccost): Control overshooting with new variable. + * etc/NEWS: Document new variable. + * lisp/term/rxvt.el (terminal-init-rxvt): Force no TAB+BS for + rxvt. (Bug#78474) + +2025-08-09 Michael Albinus <michael.albinus@gmx.de> + + Rename variables *-in-progress-p to *-in-progress + + * doc/lispref/backups.texi (Reverting): Fix variable names + revert-buffer-in-progress and auto-revert-buffer-in-progress. + + * etc/NEWS: Fix variable names revert-buffer-in-progress and + auto-revert-buffer-in-progress. + Presentational fixes and improvements. + + * lisp/autorevert.el (auto-revert-buffer-in-progress): Rename. + (auto-revert-handler, auto-revert-buffer): Use renamed variables. + + * lisp/dired-x.el (dired-omit-expunge): + Use `auto-revert-buffer-in-progress'. + + * lisp/files.el (revert-buffer-in-progress): Rename. + (revert-buffer-in-progress-p): Declare obsolete. + (after-find-file, revert-buffer): + * lisp/saveplace.el (save-place-find-file-hook) + (save-place-dired-hook): + * lisp/vc/vc-git.el (vc-git-command, vc-git--out-ok): + * lisp/vc/vc.el (vc-diff-internal): + Use `revert-buffer-in-progress'. + + * lisp/net/tramp-sh.el (tramp-sh-handle-vc-registered): Suppress warning. + +2025-08-09 Elías Gabriel Pérez <eg642616@gmail.com> + + Add multi-character pairs to lua-ts-mode and texinfo-mode + + * etc/NEWS: Add entry for lua-ts-mode changes. + * lisp/progmodes/lua-ts-mode.el + (lua-ts-auto-close-block-comments): New user option. + (lua-ts-mode): Add '--[[ ]]' pairs to 'electric-pair-pairs' only + if 'lua-ts-auto-close-block-comments' is non-nil. + * lisp/textmodes/texinfo.el (texinfo-mode): Add "`` ''" pairs to + 'electric-pair-pairs'. + * test/lisp/progmodes/lua-ts-mode-tests.el + (lua-ts-test-auto-close-block-comments): Add new test. + (Bug#79047) + +2025-08-09 mattiasdrp <mattias@kojin.tech> + + Autoinsert: Allow condition to be a function + + Currently a condition can only be a regexp or a major-mode symbol but + there's no real reason to not allow any predicate as a condition. + * doc/misc/autotype.texi: Document the new condition type in + 'auto-insert-alist'. + * etc/NEWS: Announce the new condition type in 'auto-insert-alist'. + * lisp/autoinsert.el (auto-insert-alist): Add the new condition type to + the variable documentation. + (auto-insert): Change the way the condition is matched to allow for + custom predicates. + * test/lisp/autoinsert-tests.el + (autoinsert-tests-auto-insert-lambda/-nil): Add two tests for + lambdas (nil and t cases) + (autoinsert-tests-auto-insert-predicate/-nil): Add two tests for named + predicates (nil and t cases) (Bug#79178) + +2025-08-09 Sean Whitton <spwhitton@spwhitton.name> + + vc-move-working-tree: Improve updating VC-Dir buffers + + * lisp/vc/vc.el (vc-move-working-tree): Check entries in + vc-dir-buffers for liveness. Don't hardcode "*vc-dir*"; instead + call uniquify-buffer-base-name. Call uniquify-rename-buffer, + not rename-buffer, so that the buffer is not marked unmanaged. + +2025-08-09 Sean Whitton <spwhitton@spwhitton.name> + + define-globalized-minor-mode: Use unique MODE-major-mode (bug#79198) + + * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode) + <MODE-set-explicitly>: Make this an internal variable using '--'. + <MODE-major-mode>: Make this an internal variable using '--'. + Use the name of the global mode not the local mode (bug#79198). + +2025-08-09 Sean Whitton <spwhitton@spwhitton.name> + + VC: Do move new working trees to the beginning of the project list + + * lisp/vc/vc.el (vc-add-working-tree, vc-move-working-tree): + Have project-remember-project move the new working trees to the + front of the list of projects. Suggested by Dmitry Gutov + <dmitry@gutov.dev>. + +2025-08-09 Stefan Monnier <monnier@iro.umontreal.ca> + + (js-json-mode): Set `editorconfig-indent-size-vars` + + * lisp/progmodes/js.el (js-json-mode): Now that we don't inherit + from `js-mode` any more, we can't rely on the heuristic to find + the indentation var, so we need to.set + `editorconfig-indent-size-vars` explicitly. + +2025-08-08 Michael Albinus <michael.albinus@gmx.de> + + Rework autorevert-tests.el + + * lisp/autorevert.el (auto-revert-handler): Rearrange timer handling. + + * test/lisp/autorevert-tests.el (ert-temp-file-prefix): Don't set it. + (auto-revert--test-rootdir, auto-revert--test-monitors): New defvars. + Replace globally `temporary-file-directory' by + `auto-revert--test-rootdir'. + (auto-revert--wait-for-revert): Rewrite. + (auto-revert--test-library, auto-revert--test-monitor) + (auto-revert--skip-unless-proper-library-and-monitor): New defuns. + (with-auto-revert-test): Let-bind `ert-temp-file-prefix'. Call + `file-notify-rm-all-watches'. + (auto-revert-test--write-region, auto-revert-test--write-file): + New defuns. + (auto-revert-testNN-*): Rework. + +2025-08-08 Michael Albinus <michael.albinus@gmx.de> + + Rework filenotify-tests.el + + * test/lisp/filenotify-tests.el (ert-temp-file-suffix): Set it. + (with-file-notify-test): Don't set :suffix. + (file-notify-testNN-*): Rework. + +2025-08-08 Sean Whitton <spwhitton@spwhitton.name> + + VC other working trees: avoid reordering project--list + + * lisp/progmodes/project.el (project--remember-dir) + (project-remember-project): New STABLE argument. + * lisp/vc/vc.el (vc-add-working-tree) + (vc--prompt-other-working-tree, vc-move-working-tree): Use it. + +2025-08-08 Eli Zaretskii <eliz@gnu.org> + + Revert "Autoinsert: Allow condition to be a function" + + This reverts commit 738a7bb4949fdc93b0b637ac4c65423c928f0924. + It caused regressions in autoinsert-tests, and causes + conceptual problems due to its design. (Bug#79178) + +2025-08-08 Michael Albinus <michael.albinus@gmx.de> + + Add auto-revert-buffer-in-progress-p + + * doc/lispref/backups.texi (Reverting): + Add auto-revert-buffer-in-progress-p. + + * etc/NEWS: Mention auto-revert-buffer-in-progress-p. + + * lisp/autorevert.el (auto-revert-buffer-in-progress-p): + New autoloaded variable. + (auto-revert-buffer): Let-bind it. (Bug#79145) + + * lisp/dired-x.el (dired-omit-expunge): Suppress messages when in + auto-revert. + +2025-08-08 Sean Whitton <spwhitton@spwhitton.name> + + vc-move-working-tree: Also update VC-Dir buffers + + * lisp/vc/vc.el (vc-move-working-tree): Also update VC-Dir + buffers to follow the working tree move. + +2025-08-08 Sean Whitton <spwhitton@spwhitton.name> + + vc-buffer-sync-fileset: Bind 'non-essential' (bug#79137) + + * lisp/vc/vc.el (vc-buffer-sync-fileset): + Bind 'non-essential' (bug#79137). + +2025-08-08 Sean Whitton <spwhitton@spwhitton.name> + + Generalize finding project matching files to other major modes + + * lisp/progmodes/project.el + (project-find-matching-buffer-function): New variable. + (project-find-matching-file): Delete. + (dired-current-directory): Declare. + (project-find-matching-file-or-directory): New function. Like + the old 'project-find-matching-file', but also handle Dired + buffers (bug#79126). When matching file/directory does not + exist, try going up in the directory tree until we find + something that does. + (project-find-matching-buffer): New command. + * lisp/vc/vc.el (vc-switch-working-tree): Use it (bug#79126). + * etc/NEWS: Announce new command and new variable. + +2025-08-08 Tassilo Horn <tsdh@gnu.org> + + doc-view: inhibit keybinding message if window is not selected + + * lisp/doc-view.el (doc-view-initiate-display): Only echo key-binding + message when the document buffer is shown in the selected + window (bug#79145). + +2025-08-07 Stefan Monnier <monnier@iro.umontreal.ca> + + (help-function-arglist): Fix bug#79128 + + * lisp/help.el (help-function-arglist): Fix use of `documentation`, + to obey the `function-documentation` property. + + * test/lisp/help-tests.el (help-tests--use-docstring-arglist-79128): + New test. + +2025-08-07 Manuel Giraud <manuel@ledu-giraud.fr> + + Fix some tests on OpenBSD + + * test/lisp/eshell/em-script-tests.el + (em-script-test/batch-file/shebang): "env -S" is not supported. + * test/src/fns-tests.el (fns-tests-random): 'random' is + non-deterministic on OpenBSD. (Bug#79190) + +2025-08-07 mattiasdrp <mattias@kojin.tech> + + Autoinsert: Allow condition to be a function + + Currently a condition can only be a regexp or a major-mode symbol + but there's no real reason to not allow any predicate as a + condition. + * doc/misc/autotype.texi: Document the new condition type in + 'auto-insert-alist'. + * etc/NEWS: Announce the new condition type in 'auto-insert-alist'. + * lisp/autoinsert.el (auto-insert-alist): Add the new condition + type to the variable documentation. + (auto-insert): Change the way the condition is matched to allow for + custom predicates. (Bug#79178) + +2025-08-07 Manuel Giraud <manuel@ledu-giraud.fr> + + Use variables to store marking state + + Bug#78967. + + (calendar-mode): Init new variables with user options. + * lisp/calendar/calendar.el (calendar-generate-window) + (calendar-unmark): + * lisp/calendar/diary-lib.el (diary-mark-entries) + (diary-redraw-calendar): + * lisp/calendar/holidays.el (calendar-mark-holidays): Use new + variables. + * etc/NEWS: Document the change. + +2025-08-07 binarydigitz01 <binarydigitz01@proton.me> (tiny change) + + Do interactive tagging in arc-mode.el (bug#79166). + +2025-08-07 Jeremy Bryant <jb@jeremybryant.net> + + New debugger-trap function to break to GDB + + * src/eval.c: new primitive debugger-trap + * src/.gdbinit: set breakpoint to Fdebugger_trap + * etc/DEBUG: document it. + Remove suggestion to use Fredraw_display. + + This do-nothing primitive gives control to GDB, and for debugging + convenience a breakpoint is set by default in .gdbinit. + +2025-08-07 kobarity <kobarity@gmail.com> + + Fix Python PDB tracking for remote inferior Python + + * lisp/progmodes/python.el (python-shell-local-prefix): New + constant. + (python-shell--convert-file-name-to-send): New function to + add/remove prefix. + (python-shell-send-string, python-shell-send-file): Changed to + use 'python-shell--convert-file-name-to-send'. + (python-pdbtrack-set-tracked-buffer): Changed to add/remove + prefix. + * test/lisp/progmodes/python-tests.el + (python-shell--convert-file-name-to-send-1): New test. + (Bug#79036) + +2025-08-07 Michael Albinus <michael.albinus@gmx.de> + + Fix Tramp completion + + * lisp/net/tramp.el (tramp-skeleton-file-name-all-completions): + Filter out "" hits. (Bug#79173) + +2025-08-06 Michael Albinus <michael.albinus@gmx.de> + + Add set-file-times implementation for Tramp smb method + + * lisp/net/tramp-adb.el (tramp-adb-handle-set-file-times): + Don't use UTC in all cases. + + * lisp/net/tramp-smb.el (tramp-smb-handle-set-file-times): New defun. + (tramp-smb-file-name-handler-alist): Use it. + + * test/lisp/net/tramp-tests.el (tramp-test22-file-times): Adapt test. + +2025-08-06 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc-hg.el (vc-hg-print-log): Revise log-outgoing revset. + +2025-08-06 Mattias Engdegård <mattias.engdegard@gmail.com> + + external-completion: specify a required Emacs version + + * lisp/external-completion.el: Require 26.1 (picked out of thin air). + (external-completion-table): Undo use of the hash-table-contains-p, + recently introduced. + +2025-08-06 Paul Nelson <ultrono@gmail.com> + + Allow numbered buffer selection for project-shell + + * lisp/progmodes/project.el (project-shell, project-eshell): + When a numeric prefix is supplied, the command switches to or + creates a session buffer whose name has that number as a suffix. + For instance, C-2 yields "*name-of-project-shell<2>*". As + before, a plain universal argument C-u creates a new session + with an automatically generated numeric suffix. This change + makes the behavior of the project-shell commands consistent with + how M-x eshell handles numeric prefixes. + * etc/NEWS: Announce the change. (bug#76500) + +2025-08-05 Michael Albinus <michael.albinus@gmx.de> + + Tramp allows now external implementations for functions + + * doc/misc/tramp.texi (Frequently Asked Questions): Mention tramp-hlo. + (New operations): New node. + (Top, Files directories and localnames): Add it to @menu. + + * etc/NEWS: Mention Tramp's feature to add function implementations. + Presentational fixes and improvements. + + * lisp/net/tramp.el (tramp-file-name-for-operation-external): New defvar. + (tramp-file-name-for-operation): Use `memq'. Handle external + operations. Raise `remote-file-error' error in case of. + (tramp-add-external-operation, tramp-remove-external-operation): + New defuns. + + * test/lisp/net/tramp-archive-tests.el (tramp-archive-test50-auto-load) + (tramp-archive-test50-delay-load) + (tramp-archive-test51-without-remote-files): Rename. + + * test/lisp/net/tramp-tests.el (tramp--test-operation) + (tramp--handler-for-test-operation): New defuns. + (tramp-test49-external-backend-function): New test. + (tramp-test50-auto-load, tramp-test50-delay-load) + (tramp-test50-recursive-load, tramp-test50-remote-load-path) + (tramp-test51-without-remote-files, tramp-test52-unload): Rename. + +2025-08-05 Martin Rudalics <rudalics@gmx.at> + + Handle inhibiting implied resizing for frames without initial tool bar + + * src/xfns.c (x_set_tool_bar_lines, x_change_tool_bar_height) + * src/pgtkfns.c (x_change_tool_bar_height) + (pgtk_set_tool_bar_lines): Set f->tool_bar_resized to true so + inhibiting implied resizing works for frames without initial + tool bar too. See the thread + https://lists.gnu.org/archive/html/emacs-devel/2025-08/msg00034.html. + +2025-08-05 Juri Linkov <juri@linkov.net> + + * lisp/tab-line.el: Improve docstrings. + + (tab-line-tab-face-functions, tab-line-tab-modified-p) + (tab-line-tab-face-modified): Explain possible values of BUFFER-P. + +2025-08-05 Dmitry Gutov <dmitry@gutov.dev> + + vc-annotate-warp-revision: Fix going through renames + + * lisp/vc/vc-annotate.el (vc-annotate--file-name-change): + New function (bug#26345). + (vc-annotate-warp-revision): Use it here. + + Co-Authored-By: Jakub Ječmínek <kuba@kubajecminek.cz> + +2025-08-04 Sean Whitton <spwhitton@spwhitton.name> + + vc--prompt-other-working-tree: Remember all the working trees + + * lisp/vc/vc.el (vc--prompt-other-working-tree): Call + 'project-remember-project' on all the known working trees. + +2025-08-04 Sean Whitton <spwhitton@spwhitton.name> + + project-prompter: New PREDICATE and REQUIRE-KNOWN arguments + + * lisp/progmodes/project.el (project-prompter) + (project-prompt-project-dir, project-prompt-project-name): New + PREDICATE and REQUIRE-KNOWN optional arguments. + * lisp/vc/vc.el (project-prompter): Declare. + (vc--prompt-other-working-tree): New function. + (vc-switch-working-tree, vc-delete-working-tree) + (vc-move-working-tree): Use it to prompt for the other working + tree in a way that respects 'project-prompter' (bug#79024). + * etc/NEWS: Announce all three optional arguments. Rework + description of new optional argument to 'project-current'. + +2025-08-04 Mattias Engdegård <mattias.engdegard@gmail.com> + + Fix vc-git worktrees and vc-tests for directories with symlinks + + * lisp/vc/vc-git.el (vc-git-known-other-working-trees): + * test/lisp/vc/vc-tests/vc-tests.el (vc-test--other-working-trees): + Tolerate directories with symlinks in them, such as the standard + temporary dirs on MacOS. 'git worktree list' outputs expanded names. + +2025-08-04 Mattias Engdegård <mattias.engdegard@gmail.com> + + * lisp/vc/vc-git.el (vc-git--worktrees): Don't pass -z to older Git. + + The -z option for 'git worktree list --porcelain' appeared in 2.36. + +2025-08-02 Paul Eggert <eggert@cs.ucla.edu> + + Port better to Linux with 1 MiB pages + + * src/lisp.h: Include <sys-limits.h>. + (MAX_RW_COUNT): Remove, as it is the same thing as sys-limits.h’s + SYS_BUFSIZE_MAX. All uses replaced by SYS_BUFSIZE_MAX. + +2025-08-02 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + + * lib/sys-limits.h: New file. + +2025-08-02 Daniel Mendler <mail@daniel-mendler.de> + + (completing-read-multiple): Set missing buffer-local variables + + * lisp/emacs-lisp/crm.el (completing-read-multiple): Set missing + buffer-local variables `minibuffer--require-match` and + `minibuffer--original-buffer`, which are set by `completing-read` in + the minibuffer setup hook. (bug#79110) + +2025-08-02 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 477335a10ba ; Fix documentation of 'find-file-noselect' + 9e3720bbb11 * doc/misc/gnus.texi (Category Syntax): Update gnus-agent... + 456f44a7b3c ; Improve documentation of change hooks + f20d5e63bc0 ; * lisp/image.el (image-supported-file-p): Doc fix (bug#... + 8ec2ddebdd4 ; Update documentation of GC in ELisp manual + 57a9798c22a Prefer "tls" to "ssl" in documentation + +2025-08-02 Eli Zaretskii <eliz@gnu.org> + + Avoid lexbind warnings in kkc.el + + * lisp/international/kkc.el (kkc-lookup-key): Suppress warnings + about lexical-binding cookies. + (kkc-save-init-file): Write the lexical-binding cookie when saving + the KKC init file. (Bug#79136) + +2025-08-02 James Thomas <jimjoe@gmx.net> + + Add 'other-window-backward' for a default binding (bug#78803) + + This moves in the opposite direction to 'other-window' by + default, and is consistent with its repeat map. + * lisp/window.el (other-window-backward): New function bound to + 'C-x O'. + (ctl-x-map): Update definition. + * doc/emacs/windows.texi (Other Window): Update docs. + * etc/NEWS: Annouce the new command. + +2025-08-02 Jakub Ječmínek <kuba@kubajecminek.cz> + + Improve region deletion handling in python.el + + * lisp/progmodes/python.el (python-indent-dedent-line-backspace): + Delete the text in the region if Transient Mark mode is enabled, + the mark is active, and prefix arg is 1. (Bug#48695) + + * test/lisp/progmodes/python-tests.el + (python-indent-dedent-line-backspace-4): Add new test. + +2025-08-02 Manuel Giraud <manuel@ledu-giraud.fr> + + Fix mode-line string width in diary view + + Bug#78957 + + * lisp/calendar/calendar.el (calendar-in-read-only-buffer): + Select the buffer window because, for example, + `calendar-set-mode-line' needs it. + +2025-08-02 Steven Allen <steven@stebalien.com> + + url: %-encode literal % characters when building query strings + + When building a query string via `url-build-query-string', + %-encode literal % characters appearing in both the keys and + the values. + * lisp/url/url-util.el (url--query-key-value-preserved-chars): + Define a new constant based on `url-query-key-value-allowed-chars' + specifying the characters that should be preserved when %-encoding + query-string keys and values. + (url-build-query-string): Use the new constant (fixes Bug#78984). + + * test/lisp/url/url-util-tests.el (url-util-tests): Add a test. + +2025-08-02 Antero Mejr <mail@antr.me> + + Fix index error when checking edited bug reports + + * lisp/mail/emacsbug.el (report-emacs-bug-check-org): Improve regex + check. (Bug#79080) + +2025-08-02 Daniel Mendler <mail@daniel-mendler.de> + + ibuffer-update-title-and-summary: Fix out of range error + + When `ibuffer-use-header-line' is set to `title' and the buffer + list contains no buffers due to a filter, + `ibuffer-update-title-and-summary' would error with an + "Args out of range: 0, 0" error. + * lisp/ibuffer.el (ibuffer-update-title-and-summary): Check if + buffer is empty to prevent out of range error. (Bug#79152) + +2025-08-01 Jonas Bernoulli <jonas@bernoul.li> + + Update to Transient v0.9.4-8-g6bc543d5 + +2025-07-31 Rudolf Adamkovič <rudolf@adamkovic.org> + + NS: Correct the accessibility role of Emacs windows (bug#77062) + + Make the accessibility role of Emacs windows to be "standard + window" (AXWindow) instead of "text field" (AXTextField). This matches + other applications on NS, as can be verified with any accessibility + inspector. All widely used NS ports, such as Emacs Plus, have this + patch already applied. As for practical impact, this change makes Emacs, + for example, work with tiling window managers, such as Yabai, where many + users report problems with Emacs specifically, and are instructed to + simply avoid the official NS port of GNU Emacs due to this problem. + + * src/nsterm.m: ([EmacsWindow accessibilityAttributeValue:]): Make the + accessibility role of Emacs windows to be "standard window" (AXWindow) + instead of "text field" (AXTextField). + +2025-07-31 Juri Linkov <juri@linkov.net> + + * lisp/tab-line.el (tab-line-cache-key-default): Adapt to new feature. + + Take into account 'tab-line-close-modified-button-show' similarly + to the case when 'tab-line-tab-face-modified' is a member of + 'tab-line-tab-face-functions' (bug#79046). + +2025-07-31 Elías Gabriel Pérez <eg642616@gmail.com> + + tab-line: Add close button for modified tabs (bug#79046) + + * etc/NEWS: Announce changes. + * etc/images/tabs/close-modified.xpm: New image. + * etc/images/tabs/README (Files): Add button icon name to README. + * lisp/tab-line.el (tab-line-close-modified-button-show): New + user option. + (tab-line-close-modified): Define new icon. + (tab-line-close-modified-button): New variable. + (tab-line-tab-modified-p): New function. + (tab-line-tab-name-format-default): Rework. + (tab-line-tab-face-modified): Use 'tab-line-tab-modified-p'. + +2025-07-31 Robert Pluim <rpluim@gmail.com> + + * lisp/emacs-lisp/shortdoc.el (sequence): Add 'seq-doseq'. + +2025-07-31 Paul Eggert <eggert@cs.ucla.edu> + + GCC union bugs to be fixed in GCC 15.2 + + Thanks to Martin Jambor for the GCC fixes; see: + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117423#c27 + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119085#c12 + Also, thanks to Sam James for letting me know. + * configure.ac (emacs_cv_gcc_union_bugs_CFLAGS): + Rename from emacs_cv_gcc_bug_119085_CFLAGS. All uses changed. + Assume the GCC union bugs will be fixed in GCC 15.2. + +2025-07-30 Robert Pluim <rpluim@gmail.com> + + Add support for AUTH=PLAIN to imap.el + + * lisp/net/imap.el (imap-authenticators): Add 'plain' to the + list. + (imap-authenticator-alist): Add 'imap-plain-p' and + 'imap-plain-auth'. + (imap-plain-p): New function, detects AUTH=PLAIN support. + (imap-plain-auth): Perform the AUTH=PLAIN authentication. + + * doc/misc/gnus.texi (Mail Source Specifiers): Add 'plain'. + (Conformity): Add reference to RFC 4616. + + * etc/NEWS: Announce the support. + +2025-07-30 Mattias Engdegård <mattias.engdegard@gmail.com> + + Refactor reader to use readbuf_t in more places + + Simplify the code by using the already existing dynamic string buffer + type. This is a refactoring; performance isn't measurably affected. + + * src/lread.c (grow_read_buffer): Dissolve into... + (readbuf_grow): ...here, simplifying the code. + (add_char_to_buffer): Check for growth before adding char, not after. + (read_integer, read_string_literal): Use readbuf_t. + +2025-07-30 Mattias Engdegård <mattias.engdegard@gmail.com> + + Move keyboard input functions from lread.c to keyboard.c + + These have nothing to do with the Lisp reader at all. + + Suggested by Lynn Winebarger (bug#79035). + + * src/lread.c (read_filtered_event, Fread_char, Fread_event) + (Fread_char_exclusive, Qascii_character): Move... + * src/keyboard.c: ...here. + * test/src/lread-tests.el (test-inhibit-interaction): Move... + * test/src/keyboard-tests.el (keyboard-inhibit-interaction): ...here. + +2025-07-30 Michael Albinus <michael.albinus@gmx.de> + + Fix problem in tramp-smb.el + + * lisp/net/tramp-smb.el (tramp-smb-handle-file-attributes): + Use `directory-file-name'. + + * test/lisp/net/tramp-tests.el (tramp-test18-file-attributes) + (tramp-test19-directory-files-and-attributes): Extend tests. + +2025-07-29 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + +2025-07-29 Paul Eggert <eggert@cs.ucla.edu> + + Disable Gnulib’s non-Gregorian calendars + + Prepare for the next Gnulib merge by disabling the optional + support for non-Gregorian calendars recently added to Gnulib’s + nstrftime module. This would be tricky to integrate with Emacs, + as Emacs has its own (much fancier) calendar system, one that at + least for the Persian calendar sometimes disagrees with Gnulib’s, + and it’s likely not worth the trouble of reconciling the conflicts. + * src/conf_post.h (SUPPORT_NON_GREG_CALENDARS_IN_STRFTIME): + New macro, defined to false. + * admin/merge-gnulib (GNULIB_MODULES): nstrftime → nstrftime-limited. + (AVOIDED_MODULES): Add localcharset. + Near the end, also remove the files lib/calendar-ethiopian.h, + lib/calendar-persian.h, lib/calendar-thai.h, lib/calendars.h. + +2025-07-29 Stefan Monnier <monnier@iro.umontreal.ca> + + (define-globalized-minor-mode): Remove left-over code + + * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode): + Delete the code managing `<MODE>-buffers`, since it's not used any more. + Prefer `%S` over `%S` to print arbitrary sexps. + (define-minor-mode): Make sure we use the same test to distinguish + old-style and new-style. + +2025-07-29 Juri Linkov <juri@linkov.net> + + Minor image-convert file types related changes (bug#79109) + + * lisp/files.el (auto-mode-alist): Add ".avif" to the list of + image file types supported by 'image-convert'. + Remove duplicate entry for ".webp" that was added at the top + in the list of natively supported image types. + + * lisp/image.el (imagemagick-enabled-types): Add AVIF and + WEBP (the latest for the case when native libs are not installed). + + * lisp/image/image-converter.el (image-converter--converters): + Add "-layers merge" to the imagemagick convert command line. + +2025-07-28 Harald Jörg <haj@posteo.de> + + cperl-mode.el: Support syntax of Perl version 5.42 + + * lisp/progmodes/cperl-mode.el (cperl--sub-name-generated-rx): + Simplify captures to account for the :writer attribute. Parsing + is done later. + (cperl-imenu-sub-keywords): Remove attributes which generate subs + (cperl-imenu--create-perl-index): Analyze field declarations for + autogenerated methods + (cperl-init-faces): Add "all" and "any" to the list of functions + (cperl-short-docs): Add short docs for "all" and "any" + + * test/lisp/progmodes/cperl-mode-tests.el + (cperl-test-autogenerated-reader-rx): + Adjust for modified rx form due to ":writer" support + (cperl-test-imenu-index): Add tests for autogenerated writer + accessors (in grammar.pl) + + * test/lisp/progmodes/cperl-mode-resources/grammar.pl: Add code samples + for ":writer" + + * etc/NEWS: Announce that CPerl mode supports Perl 5.42. + +2025-07-28 F. Jason Park <jp@neverwas.me> + + Use function-valued variable for ERC query predicate + + * lisp/erc/erc-notify.el (erc-querypoll-mode, erc-querypoll-enable) + (erc-querypoll-disable): Override `erc-query-table-synced-predicate' + when mode is active. + (erc--queries-current-p): Remove method. + (erc--querypoll-active-p): New function. + * lisp/erc/erc-speedbar.el (erc-speedbar-buttons) + (erc-speedbar-insert-target): Call function-valued variable + `erc--query-table-synced-predicate' instead of its now default value + `erc--queries-current-p' directly. + * lisp/erc/erc.el (erc--query-table-synced-predicate): New variable. + (erc--queries-current-p, erc--query-participant-present-p): Convert + former from method to normal function and rename to latter. Original + was added as part of bug#70928. + +2025-07-28 F. Jason Park <jp@neverwas.me> + + Redo erc-nicks track integration tests as scenarios + + * test/lisp/erc/erc-nicks-tests.el (erc-nicks-tests--track-faces): + Remove unused function. + (erc-nicks-track-faces/prioritize, erc-nicks-track-faces/defer) + (erc-nicks-track-faces/nil, erc-nicks-track-faces/t): Remove tests. + * test/lisp/erc/erc-scenarios-nicks-track.el: New file. + * test/lisp/erc/resources/nicks/track-prioritize.eld: New file. + * test/lisp/erc/resources/nicks/track-t.eld: New file. (Bug#76188) + +2025-07-28 F. Jason Park <jp@neverwas.me> + + Cancel ERC autojoin timer in the server buffer + + * lisp/erc/erc-join.el (erc-autojoin-channels-delayed): Only cancel + `erc--autojoin-timer' in the server buffer in which it's local. After + Emacs 28 brought commit fc66ec33226aeed0b745356363ed952c8ff1f7fd "Prefer + defvar-local in erc", customizing `erc-autojoin-timing' to `ident' led + to ERC emitting redundant JOINs before `erc-autojoin--join' was factored + out. Additionally, don't bother binding options around the call to + `erc-autojoin-channels' to shape its behavior, preferring instead to + call the internal workhorse function directly. Ever since bug#5521 + introduced those options, the logic in `erc-autojoin-channels' has + ignored `erc-autojoin-delay' anyway, so long as `erc-autojoin-timing' + isn't `ident'. This change may break third party advice. + (erc-autojoin-after-ident): Restore code to cancel timer. It was + erroneously deleted in 959fbcf34b5dd04e1b4bf87c0b73afd784a41f7f "favor + network identities in erc-join". + * test/lisp/erc/erc-join-tests.el: Require erc-tests-common atop file so + tests can take advantage of common utilities. + (erc-autojoin-channels--connect): Replace with a function and three + separate tests. + (erc-join-tests--autojoin-channels-connect): New function. + (erc-autojoin-channels/server, erc-autojoin-channels/network) + (erc-autojoin-channels/nomatch): New tests. + (erc-autojoin-channels--delay): Replace with a function and three + separate tests. Remove guard to skip test on Solaris. + (erc-join-tests--autojoin-channels-ident): New function. + (erc-autojoin-channels-delayed/server) + (erc-autojoin-channels-delayed/network) + (erc-autojoin-channels-delayed/nomatch): New tests. + (erc-autojoin-channels--ident): Replace with function and two separate + tests. + (erc-join-tests--autojoin-after-ident): New function. + (erc-autojoin-after-ident/server) + (erc-autojoin-after-ident/network): New tests. + (erc-join-tests--autojoin-add--common) + (erc-join-tests--autojoin-add): Rename former to latter. + (erc-autojoin-add--network) + (erc-autojoin-add--network-extended-syntax) + (erc-autojoin-add--network-id): Adjust arguments to fixture. + (erc-autojoin-add--server): Use common utils. + (erc-join-tests--autojoin-remove--common) + (erc-join-tests--autojoin-remove): Rename former to latter. + (erc-autojoin-remove--network) + (erc-autojoin-remove--network-id): Adjust args for fixture. + (erc-autojoin-remove--server): Use common utils. + * test/lisp/erc/erc-scenarios-join-timing.el: New file. + * test/lisp/erc/resources/erc-scenarios-common.el + (erc-scenarios-common--run-in-term): In subprocess, don't use failure + tally as exit status unless body form succeeds. + * test/lisp/erc/resources/erc-tests-common.el + (erc-tests-common-init-server-proc): Use `make-process' instead of + `start-process'. + (erc-tests-common-make-server-buf): Use `erc-server-current-nick' to + create the `erc-networks--id' as a `erc-networks--id-qualifying' + instance, which is more realistic than a "fixed" variant. + * test/lisp/erc/resources/join/timing/connect-both.eld: New file. + * test/lisp/erc/resources/join/timing/ident-both.eld: New file. + (Bug#79017) + +2025-07-27 Sean Whitton <spwhitton@spwhitton.name> + + * doc/emacs/vc1-xtra.texi (Other Working Trees): Extended example. + +2025-07-27 Sean Whitton <spwhitton@spwhitton.name> + + vc-git-modify-change-comment: Error out for merge commits + + * lisp/vc/vc-git.el (vc-git-modify-change-comment): Don't try to + modify merge commit comments. + +2025-07-27 Sean Whitton <spwhitton@spwhitton.name> + + vc-test--other-working-trees: Stub out 'vc-dir' + + * test/lisp/vc/vc-tests/vc-tests.el + (vc-test--other-working-trees): Stub out 'vc-dir' when adding + the second working tree. + +2025-07-27 Michael Albinus <michael.albinus@gmx.de> + + Tramp: Fix thinko in local process environment + + * lisp/net/tramp-sh.el (tramp-maybe-open-connection): Do not set "TERM", + "PROMPT_COMMAND" and "PS1". + + * lisp/net/tramp.el (with-tramp-local-environment): Do not override + `process-environment'. Set "TERM", "PROMPT_COMMAND", "PS1" and + "INSIDE_EMACS". (Bug#79103) + + * lisp/net/trampver.el (tramp-inside-emacs): Remove duplicate entries. + +2025-07-27 Juri Linkov <juri@linkov.net> + + * lisp/window.el (window--quit-restore-select-window): Use 'select-frame'. + + Replace 'select-frame-set-input-focus' with the + less obtrusive 'select-frame' (bug#79098). + +2025-07-27 Paul Eggert <eggert@cs.ucla.edu> + + Better default PATH on MS-Windows + + * src/emacs.c (default_PATH): Use a more-reasonable default + for MS-Windows and DOS. Problem reported by Eli Zaretskii in: + https://lists.gnu.org/r/emacs-devel/2025-07/msg00384.html + +2025-07-27 Madhu <enometh@net.meer> + + (cl-nsubstitute): Fix regression in commit 8c8ff13e + + lisp/emacs-lisp/cl-seq.el (cl-nsubstitute): restore a variable names that + were incorrectly replaced in commit 8c8ff13e, so nsubstitute on a string + returns a string instead of a vector. + +2025-07-27 Mattias Engdegård <mattias.engdegard@gmail.com> + + * .mailmap: update my entry + +2025-07-27 Sean Whitton <spwhitton@spwhitton.name> + + vc-tests: Fix two problems with other working tree tests + + * test/lisp/vc/vc-tests/vc-tests.el (project, cl-lib): Require. + (vc-test--other-working-trees): Bind project-list-file to a + writeable file name. + (vc-test-hg07-other-working-trees): Use vc-hg-global-switches to + enable the share extension. + +2025-07-27 Baptiste Strazzulla <baptiste.strazzulla@protonmail.com> + + Add a new user option to hide the header of old newsticker feeds + + * lisp/net/newst-plainview.el (newsticker-hide-old-feed-header): + Define that new user option + (newsticker-mode-map): Add the new bindings related to that new + user option. + (newsticker-buffer-update): Hide the old feeds if the new user + option is true. + (newsticker-hide-old-feed-header): Define a function to hide the + old feeds. + (newsticker-show-old-feed-header): Define a function to restore + them. + (newsticker--old-feed-p): Define a function to check if a feed is + old. + (newsticker--buffer-do-insert-text): Set age of feed to old if + applicable. + (newsticker--buffer-set-invisibility): Update the function to + account for the fact that there are two lines (not just one) to + hide feeds. + + * etc/NEWS: Announce the new user option + 'newsticker-hide-old-feed-header' to hide old feeds. (Bug#78305) + +2025-07-27 Po Lu <luangruo@yahoo.com> + + Update Android frame param handlers + + * src/androidfns.c (android_frame_parm_handlers): Add + gui_set_borders_respect_alpha_background for consistency with X. + +2025-07-26 Stefan Monnier <monnier@iro.umontreal.ca> + + bytecomp.el: Rework the message when the macro is not recognized + + The "Macro %s unrecognized, won't work in file" message + happened only for macros defined to `nil`, and the code handling + "unrecognized" code was split with the function part is + `byte-compile-file-form-defmumble` and the macro part in + `byte-compile-file-form-defalias`, so straighten it out + and simplify a bit. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-defmumble): + Don't modify `byte-compile-*-environment` here. + (byte-compile-file-form-defalias): Do it here instead. + Use `macroexp-quote`. Merge the two "unrecognized macro" warnings. + +2025-07-26 Paul Eggert <eggert@cs.ucla.edu> + + Add readlink, realpath startup comments + + This does not change behavior. + * src/emacs.c (follow_if_symlink): New static function, as a + vehicle for commentary explaining the deal with readlink and realpath. + (find_emacs_executable): Use it. + +2025-07-26 Roland Winkler <winkler@gnu.org> + + bibtex.el - improve last change e6c1ec71b72 + + * lisp/textmodes/bibtex.el: Use defvar to silence byte compiler + * lisp/textmodes/bibtex.el (bibtex-generate-url-list-init): + Use setq-local. + +2025-07-26 Paul Nelson <ultrono@gmail.com> + + Add post-save actions for Rmail attachments + + * lisp/mail/rmailmm.el (rmail-mime-save-action): New user + option. + (rmail-mime-save): Use it. + * doc/emacs/rmail.texi (Rmail Display): Document it (bug#78971). + +2025-07-26 Garklein <garklein97@gmail.com> + + Add frame parameter which allows border transparency + + The new 'borders-respect-alpha-background' frame parameter, when + set to 't', will make window dividers and internal borders + respect the 'alpha-background' frame parameter. This allows + transparent gaps between windows. + * doc/lispref/frames.texi (Font and Color Parameters): + Document the change. + * src/frame.c (frame_parm_table, syms_of_frame) + (gui_set_borders_respect_alpha_background): + * src/frame.h (struct frame): Add frame parameter. + * src/androidfns.c (x_create_frame, android_create_tip_frame) + (android_frame_parm_handlers): + * src/haikufns.c (haiku_create_frame, haiku_create_tip_frame) + (haiku_frame_parm_handlers): + * src/nsfns.m (ns_frame_parm_handlers, x_create_frame): + * src/w32fns.c (x_create_frame, w32_create_tip_frame) + (w32_frame_parm_handlers): Add dummy parameters for backends + that don't support opacity. + * src/pgtkfns.c (pgtk_frame_parm_handlers, x_create_frame) + (pgtk_create_tip_frame): + * src/pgtkterm.c (pgtk_draw_window_divider): + * src/xfns.c (x_create_frame, x_create_tip_frame) + (x_frame_parm_handlers) + * src/xterm.c (x_draw_window_divider) + (x_clear_under_internal_border): Implement parameter on backends + that support opacity. + +2025-07-26 Sean Whitton <spwhitton@spwhitton.name> + + vc-do-command: Fix last part of 'full-command' + + * lisp/vc/vc-dispatcher.el (vc-do-command): Don't append " ." to + 'full-command' when FILES is nil because the command we actually + run doesn't have "." as a final argument in that case. + +2025-07-26 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc.el (vc-dir-status-files): Fix filtering on VC status. + +2025-07-26 Alan Third <alan@idiocy.org> + + Fix last commit + + * src/nsterm.m (ns_draw_fringe_bitmap): Rename clearRect to bmpRect + where missed previously. + +2025-07-26 Alan Third <alan@idiocy.org> + + Fix incorrectly nested ns_focus/ns_unfocus calls + + * src/nsterm.m (ns_draw_fringe_bitmap): Move the call to ns_focus out of + the if for overlay_p and rename the rect from clearRect to bmpRect to + make it's purpose clearer. + +2025-07-26 Alan Third <alan@idiocy.org> + + Simplify NS fringe vectors (bug#73563) + + * src/nsterm.m (ns_define_fringe_bitmap): Replace the fringe bitmap + "tracing" method to a true tracing method. This should make the + resulting vector simpler and therefore faster to draw. + +2025-07-26 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + a44e9139c2f loaddefs-generate--rubric: Note about committing ldefs-bo... + e4908623f23 ; Fix documentation of 'other-window' + 5f3cbd62b1c ; * lisp/international/quail.el (quail-insert-kbd-layout)... + 47deb38f214 ; face-font-family-alternatives, fixed-pitch: Comments. + dd29b0ab66d Fix Eshell call to 'string-suffix-p' when checking for tr... + cbfc095ed42 * etc/PROBLEMS: Describe how to work around screen reader... + 8f00d36b63d (gnus)Scoring Tips: New tip regarding header continuation... + +2025-07-26 Michael Albinus <michael.albinus@gmx.de> + + Rework filenotify-tests.el + + * lisp/filenotify.el (file-notify--rm-descriptor): + Use `insert-special-event'. + + * lisp/net/tramp-sh.el (tramp-bundle-read-file-names): Fix docstring. + (tramp-sh-gio-monitor-process-filter): Extend error strings. + + * test/infra/Dockerfile.emba (emacs-base): Install python3. + + * test/lisp/filenotify-tests.el (auto-revert-buffer-list): Declare. + (file-notify--test-rootdir): New defvar. Replace all uses of + `temporary-file-directory' by it. + (file-notify--test-cleanup): Set `auto-revert-buffer-list' to nil. + (file-notify--test-monitor): Check also for `process-live-p'. + Skip test, if the monitor cannot be determined. + (file-notify--deftest-remote): Do not call + `tramp-cleanup-connection', this is done in + `file-notify--test-cleanup' already. + (with-file-notify-test): New defmacro. Use it in (almost) all tests. + (file-notify--test-make-temp-name): Do not create + `file-notify--test-tmpdir'. + (file-notify--test-event-handler): Use `directory-file-name '. + (auto-revert-debug): Set it to nil. + (file-notify-test<nn>-*): Rewrite, using `with-file-notify-test' + and `ert-with-temp-file'. + + * test/lisp/net/tramp-tests.el (tramp-test46-file-notifications): + Tag it :unstable. + +2025-07-26 Alvaro Ramirez <me@xenodium.com> + + Enabled macOS dictation post NSTextInputClient migration in v30 + + * src/nsterm.m (selectedRange): Implement to fix dictation. + * etc/NEWS: Announce regression fix. + * etc/PROBLEMS: Help users recover from rejected permission. + +2025-07-26 Rahguzar <rahguzar@mailbox.org> + + * lisp/url/url-queue.el: Better compatibility with 'url-retrieve' + + (url-queue): New slots to hold request related variables. + (url-queue-retrieve): Capture the request related variables. + (url-queue-start-retrieve): Let bind the request related + variables. (Bug#78928) + + * etc/NEWS: Announce changes. + +2025-07-26 Peder O. Klingenberg <peder@klingenberg.no> + + Emulate more dynamic bindings in request buffers + + Many variables were copied from the dynamic environment to the request + buffer, which allowed them to influence the handling of requests and + responses. But some were not, notably some of the mime-related + variables, and the user-agent and privacy variables. This made them + unreliable when dynamically bound around a call to `url-retrieve'; they + would have the desired effect when reusing an existing connection, but + not when url-http opened a new connection. In the case of reused + connections, the request construction happens in the dynamic scope of + `url-http', but in the case where a fresh connection is needed, request + construction happens outside that dynamic scope. + + This commit adds the remaining variables used in request construction to + the set of buffer local variables mirroring the dynamic values from + url-http, and adds a comment describing the mechanism used and how avoid + the pitfall of inconsistent handling of dynamic bindings. + + * lisp/url/url-http.el (url-http-extensions-header): New internal-ish + variable. + (url-http-create-request): Use the new variable instead of the global + one. + (url-http-idle-sentinel): Debug-log when the connection closes. + (url-http): Set up more buffer-local variants of dynamic variables in + the buffer used for the request, and add comment describing why this + copying is needed. + + (Bug#61916) + +2025-07-26 Baptiste Strazzulla <baptiste.strazzulla@protonmail.com> + + Simplify code in 'newsticker--buffer-do-insert-text' + + * lisp/net/newst-plainview.el (newsticker--buffer-do-insert-text): Use + the already defined 'age' variable. (Bug#78305) + +2025-07-26 Yue Yi <include_yy@qq.com> + + Fix 'sqlite-mode-delete' with NULL field values + + * lisp/sqlite-mode.el (sqlite-mode-delete): Support NULL field + values (bug#79011). + +2025-07-26 Jim Porter <jporterbugs@gmail.com> + + Improve performance when computing the "readable" form of a page in EWW + + The previous version made a lot of string copies, but only needed the + word count of each DOM node. In this version, we just sum up the word + counts in all the existing nodes, which results in a significant + performance improvement (bug#78902). + + * lisp/net/eww.el (eww--string-count-words, eww--dom-count-words): New + functions... + (eww--walk-readability, eww-readable-dom): Use them. + +2025-07-26 Jim Porter <jporterbugs@gmail.com> + + Add new function 'dom-inner-text' + + This replaces 'dom-text' and 'dom-texts', and is both more correct and + more efficient than them. + + * lisp/dom.el (dom-text, dom-texts): Make obsolete in favor of... + (dom-inner-text--1, dom-inner-text): ... these new functions. Update + callers. + + * doc/lispref/text.texi (Document Object Model): Update documentation to + refer to 'dom-inner-text'. + + * etc/NEWS: Announce this change. + +2025-07-25 Mattias Engdegård <mattiase@acm.org> + + Check for end-of-file when reading character escapes (bug#79097) + + * src/lread.c (read_char_escape): Add check. + * test/src/lread-tests.el (lread-char-escape-eof): New test. + +2025-07-25 Sean Whitton <spwhitton@spwhitton.name> + + VC: New support for other working trees + + * lisp/vc/vc-git.el (vc-git--read-start-point): New function, + factored out of vc-git-create-tag. + (vc-git-create-tag): Use it. + (vc-git--worktrees, vc-git-known-other-working-trees) + (vc-git-add-working-tree, vc-git-delete-working-tree) + (vc-git-move-working-tree): + * lisp/vc/vc-hg.el (vc-hg-known-other-working-trees) + (vc-hg-add-working-tree, vc-hg--shared-p) + (vc-hg-delete-working-tree, vc-hg-move-working-tree): New + functions. + * lisp/vc/vc.el: Define API for known-other-working-tree, + add-working-tree, delete-working-tree and move-working-tree + backend functions. + (vc-dir-status-files): New function. + (project-current-directory-override): Declare. + (dired-rename-subdir): Autoload. + (vc-add-working-tree, vc-switch-working-tree) + (vc-delete-working-tree, vc-move-working-tree): New commands. + * lisp/vc/vc-hooks.el (vc-prefix-map): Bind them under C-x v. + + * doc/emacs/vc1-xtra.texi (Other Working Trees): New node. + * etc/NEWS: Announce the new commands. + + * test/lisp/vc/vc-tests/vc-tests.el + (vc-test--other-working-trees): New function. + (vc-test-git07-other-working-trees) + (vc-test-hg07-other-working-trees): New tests. + + * lisp/ldefs-boot.el: Regenerate. + +2025-07-25 Sean Whitton <spwhitton@spwhitton.name> + + vc-test--version-diff: Bind vc-async-checkin + + * test/lisp/vc/vc-tests/vc-tests.el (vc-test--version-diff): + Bind vc-async-checkin to disable async checkins during test. + +2025-07-25 Sean Whitton <spwhitton@spwhitton.name> + + Bind vc-rename-file to C-x v R + + * lisp/vc/vc-hooks.el (vc-prefix-map): Bind vc-rename-file to + C-x v R. + * doc/emacs/files.texi (Copying and Naming): + * doc/emacs/vc1-xtra.texi (VC Delete/Rename, Revision Tags): + * etc/NEWS (bindings): Document the new binding. + +2025-07-25 Paul Eggert <eggert@cs.ucla.edu> + + Streamline init_callproc a bit + + * src/callproc.c (init_callproc): Don’t bother testing for the + existence of ../src/ and NEWS if installation-directory is + non-nil, because in that case we will test for ../etc/NEWS anyway. + Simplify by using AUTO_STR. + +2025-07-25 Paul Eggert <eggert@cs.ucla.edu> + + Refactor to allow nameless auto strings + + * src/lisp.h (AUTO_STR, AUTO_STR_WITH_LEN): New macros. + Long ago this sort of thing would have been a no-no + because we needed to GCPRO the strings. + However, GCPRO went away a decade ago. + +2025-07-25 Paul Eggert <eggert@cs.ucla.edu> + + Diagnose load-path only if interactive + + * lisp/startup.el (command-line): Warn about dubious + user-emacs-directory and load-path only if interactive, as that’s + where warning helps and the warnings just complicate batch usage + (e.g., -Q). + +2025-07-25 Paul Eggert <eggert@cs.ucla.edu> + + PATH defaults now act more like GNU and POSIX + + When PATH is unset or empty, use the system default, + to be consistent with GNU/Linux and with POSIX. + If there is no system default do not default to "." + as that can be dangerous. + * src/callproc.c (init_callproc_1, init_callproc): + Default PATH to the null pointer, not the empty string. + * src/emacs.c (default_PATH): New function. + (find_emacs_executable, decode_env_path): Be consistent with POSIX + and with glibc about what to do when PATH is unset or empty. + +2025-07-25 Paul Eggert <eggert@cs.ucla.edu> + + Treat ‘.../emacs’ like ‘emacs’ in realpath startup + + * src/emacs.c (find_emacs_executable): If the executable name + contains a slash, use the same optimization for symlink resolution + that we already use when the executable name has no slash. + +2025-07-25 Paul Eggert <eggert@cs.ucla.edu> + + Prefer readlink to lstat in find_emacs_executable + + * src/emacs.c (find_emacs_executable): Prefer readlink to lstat + when testing whether a file is a symlink. This avoids EOVERFLOW + issues. + +2025-07-25 Paul Eggert <eggert@cs.ucla.edu> + + Fix minor memory leak in find_emacs_executable + + * src/emacs.c (find_emacs_executable): Free candidate if unused. + +2025-07-24 Robert Pluim <rpluim@gmail.com> + + Use macro to reduce repetition in TLS tests + + * test/lisp/net/network-stream-tests.el (with-tls-params): New + macro, abstracts most of the boiler plate for TLS tests. + (connect-to-tls-ipv4-wait, connect-to-tls-ipv4-nowait) + (connect-to-tls-ipv6-nowait, open-network-stream-tls-wait) + (open-network-stream-tls-nowait, open-network-stream-tls) + (open-network-stream-tls-nocert) + (open-gnutls-stream-new-api-default) + (open-gnutls-stream-new-api-wait) + open-gnutls-stream-old-api-wait) + (open-gnutls-stream-new-api-nowait) + (open-gnutls-stream-old-api-nowait): Use it. + +2025-07-24 Michael Albinus <michael.albinus@gmx.de> + + Disable setting connection-local variables in tramp-smb.el + + * lisp/net/tramp-smb.el: Disable setting connection-local + variables. (Bug#78886) + +2025-07-24 Paul Eggert <eggert@cs.ucla.edu> + + Don’t read before BEG in insert-file-contents + + * src/fileio.c (Finsert_file_contents): Don’t sample bytes before BEG. + Give up optimizing if the file size shrinks to less than BEG. + +2025-07-24 Paul Eggert <eggert@cs.ucla.edu> + + Simplify file end finding in insert-file-contents + + * src/fileio.c (Finsert_file_contents): Don’t give up finding the + file’s end merely because SEEK_END fails. Try a small test read + anyway. This might work in non-POSIX file systems where SEEK_END + is not allowed, and trying is easy and simplifies the code. + +2025-07-23 Paul Eggert <eggert@cs.ucla.edu> + + GCC bug 119085 fixed in GCC 16 + + * configure.ac (emacs_cv_gcc_bug_119085_CFLAGS): + Assume the bug is fixed starting in GCC 16. + +2025-07-23 Juri Linkov <juri@linkov.net> + + * lisp/repeat.el (repeat-mode): Use 'called-interactively-p'. + + This logic is copied from 'define-minor-mode' that displays a message + about mode activation only when called interactively (bug#79081). + +2025-07-23 Michael Albinus <michael.albinus@gmx.de> + + Add consistent environment for local process calls in Tramp + + * lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection): + * lisp/net/tramp-androidsu.el (tramp-androidsu-maybe-open-connection): + * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch): + * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band) + (tramp-maybe-open-connection): + * lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory) + (tramp-smb-handle-file-acl) + (tramp-smb-handle-file-notify-add-watch) + (tramp-smb-handle-set-file-acl, tramp-smb-maybe-open-connection): + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-send-command): + Use `tramp-start-process'. Do not call `tramp-post-process-creation'. + + * lisp/net/tramp.el (with-tramp-local-environment): New defmacro. + (tramp-start-process): New defun. + (tramp-call-process, tramp-call-process-region) + (tramp-process-lines): Use `with-tramp-local-environment'. + +2025-07-23 Gerd Möllmann <gerd.moellmann@gmail.com> + + NS: Fix build with NSTRACE_ENABLED + + * src/nsterm.h (NSTRACE_MSG_NO_DASHES): Use + nstrace_enabled_global. + * src/nsterm.m: ([EmacsView performDragOperation:]): Don't use + an NSString. + +2025-07-23 Jim Porter <jporterbugs@gmail.com> + + Handle Eshell prompts where stickiness properties are 't' + + Previously, this signaled an error, breaking the prompt (bug#79059). + + * lisp/eshell/em-prompt.el (eshell--append-text-property): Don't append + to non-list property values. + + * test/lisp/eshell/em-prompt-tests.el + (em-prompt-test/field-properties/merge-stickiness): Adapt test. + +2025-07-23 Gerd Möllmann <gerd.moellmann@gmail.com> + + NS: Use different window collection behavior for tooltips (bug#73037) + + * src/nsterm.m ([EmacsView updateCollectionBehavior]): + Use NSWindowCollectionBehaviorFullScreenAuxiliary for non-native + tooltips which are not child frames. + +2025-07-22 Michael Albinus <michael.albinus@gmx.de> + + Add function exec-suffixes + + * doc/lispref/processes.texi (Subprocess Creation): + Add function exec-suffixes. + + * etc/NEWS: New function 'exec-suffixes'. + Presentational fixes and improvements. + + * lisp/files-x.el (exec-suffixes): New defun. (Bug#78886) + + * lisp/files.el (executable-find): Use function `exec-suffixes'. + + * lisp/net/tramp-integration.el + (tramp-connection-local-default-system-variables): Add also + `exec-suffixes'. + + * lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection): Use + default values of `path-separator', `null-device' and + `exec-suffixes'. + (tramp-smb-connection-local-default-system-variables): + New defconst. Add it to connection-local profiles. + +2025-07-22 Mattias Engdegård <mattiase@acm.org> + + * lisp/custom.el (defcustom): Remove empty doc string. + + It is no longer needed because (lambda () "hello") has no doc string. + +2025-07-22 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc-git.el (vc-git-diff): Don't pass --textconv. + + This reverts this change: + + Author: Sean Whitton <spwhitton@spwhitton.name> + AuthorDate: Mon Jul 21 09:26:59 2025 +0100 + + * lisp/vc/vc-git.el (vc-git-diff): Pass --textconv (bug#79050). + +2025-07-22 Paul Eggert <eggert@cs.ucla.edu> + + insert-file-contents respect END better + + This fixes some longstanding bugs, along with bugs recently + introduced as part of fixes for Bug#77315. + * src/fileio.c (Finsert_file_contents): Arrange for END_OFFSET + to never be less than BEG_OFFSET, to simplify the code. + Do not go past END_OFFSET when sampling or optimizing reading. + Avoid a few unnecessary lseeks. + +2025-07-22 Paul Eggert <eggert@cs.ucla.edu> + + insert-file-contents shrinking Solaris file fix + + This is related to recent fixes for Bug#77315. + * src/fileio.c (Finsert_file_contents): Defend against + a file shrinking to be smaller than its initial offset. + This can happen only on platforms like Solaris where + the initial offset can be positive. + +2025-07-22 Paul Eggert <eggert@cs.ucla.edu> + + Refactor insert-file-contents overlap check + + * src/fileio.c (Finsert_file_contents): + Simplify and clarify file overlap check. + +2025-07-22 Paul Eggert <eggert@cs.ucla.edu> + + insert-file-contents refactor xlseek + + * src/fileio.c (xlseek): New arg WHENCE. All uses changed. + This generalizes xlseek and should simplify future changes. + +2025-07-22 Paul Eggert <eggert@cs.ucla.edu> + + Say why quit is captured in insert-file-contents + + * src/fileio.c (Finsert_file_contents): Add comment. + +2025-07-22 Paul Eggert <eggert@cs.ucla.edu> + + insert-file-contents read size increase + + This increases the max read size from 0.25 to 1 MiB, which is a + bit better for Emacs in my measurements. The old value was taken + from coreutils, but was for a different purpose. + * src/fileio.c (INSERT_READ_SIZE_MAX): New constant, replacing + IO_BUFSIZE. All uses changed. + (Finsert_file_contents): Do not use a read buffer that is larger + than INSERT_READ_SIZE_MAX. + +2025-07-22 Paul Eggert <eggert@cs.ucla.edu> + + Fix insert-file-contents infloop with unlucky END + + This partially reverts 55f41ca3aa8fe487d10730708a7396137a2c9d18, + which was a partial fix for Bug#77315. + * src/fileio.c (Finsert_file_contents): Go back to accepting + partial reads when doing the optimized way when code conversion is + not needed. This avoids an unlikely bug when END happens to lie + at a buffer boundary, causing an infloop. For consistency, do the + same when doing code conversion (though there’s no bug in then), + as there’s not a real need for emacs_full_read there either. + +2025-07-22 Paul Eggert <eggert@cs.ucla.edu> + + Refactor by coalescing MAX_RW_COUNT definitions + + * src/emacs.c (read_full): + Simplify by assuming MAX_RW_COUNT is defined. + * src/lisp.h (MAX_RW_COUNT): Move here from src/sysdep.c. + * src/pdumper.c (dump_read_all): + Use MAX_RW_COUNT rather than defining our own equivalent. + +2025-07-22 Paul Eggert <eggert@cs.ucla.edu> + + insert-file-contents from seekable non-regular + + * src/fileio.c (Finsert_file_contents): Be more conservative + when reading from seekable non-regular files when END is given. + The code assumed that in this case, reads would succeed or fail + quickly so there was no need to call internal_condition_case_1. + However, in some cases, e.g., /dev/random, it could take a while. + This fixes a glitch introduced in commit + cb4579ed6ba45c81ee7ec627bf197e1def121f24 dated 2022-06-11. + +2025-07-22 Paul Eggert <eggert@cs.ucla.edu> + + insert-file-contents beware buffer relocation + + This fixes a potential (albeit quite unlikely) bug + introduced during recent fixes to Bug#77315. + * src/fileio.c (union read_non_regular.s.inserted): + Bring back this member. + (read_non_regular, Finsert_file_contents): Work in the unlikely + case when internal_condition_case_1 relocates the buffer before + calling read_non_regular. + +2025-07-22 Paul Eggert <eggert@cs.ucla.edu> + + insert-file-contents 1 KiB seek fix + + This improves on recent fixes to Bug#77315. + When sampling the first 1 KiB and last 3 KiB, do not seek before + BEG if given. Instead, sample starting at BEG, to be consistent + with the non-optimized version. + * src/fileio.c (xlseek): Return POS, for convenience. + (Finsert_file_contents): Sample the first 1 KiB correctly when BEG. + In a CURPOS local, keep track of the input file offset, or for + nonseekable files the number of bytes read, while this value is + important. This lets us avoid some unnecessary seeks. Report an + error earlier if the file is not seekable and BEG is nonzero, + to save work and simplify the code. When sampling, discard less + data, as this is simpler and there’s little point to discarding it. + +2025-07-22 Paul Eggert <eggert@cs.ucla.edu> + + insert-file-contents seek refactoring + + * src/fileio.c (xlseek): New function. + (Finsert_file_contents): Use it instead of doing things by hand. + (write_region): Match diagnostic wording to xlseek’s. + +2025-07-22 Paul Eggert <eggert@cs.ucla.edu> + + Fix insert-file-contents optimization glitch + + This improves on recent fixes to Bug#77315. + * src/fileio.c (Finsert_file_contents): When optimizing + do not seek to 0 if the initial file offset is positive, + as that causes the optimized code to behave differently + from the nonoptimized. + +2025-07-22 Paul Eggert <eggert@cs.ucla.edu> + + insert-file-contents SEEK_END optimization + + This improves on recent fixes to Bug#77315. + * src/fileio.c (Finsert_file_contents): + Do not give up on seeking merely because SEEK_END fails. + On some files (/proc/cpuinfo, say) SEEK_END can fail + even though SEEK_SET and SEEK_CUR succeed, and the + code still works in this case. + +2025-07-22 Paul Eggert <eggert@cs.ucla.edu> + + insert-file-contents st_size cleanup + + * src/fileio.c (Finsert_file_contents): Store st_size, + not file_size_hint, into current_buffer->modtime_size, + since modtime_size is compared to a later st_size, not + to the actual file size. Simplify buffer overflow detection + from file size, since this occurred only on regular files. + +2025-07-21 Eli Zaretskii <eliz@gnu.org> + + Improve documentation of 'quit-window' + + * lisp/window.el (quit-window): Mention 'quit-window-kill-buffer'. + (quit-window): Doc fix. + + * doc/lispref/windows.texi (Quitting Windows): + * etc/NEWS: Improve documentation of 'quit-window-kill-buffer'. + +2025-07-21 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc-git.el (vc-git-diff): Pass --textconv (bug#79050). + +2025-07-21 Steven Allen <steven@stebalien.com> + + Add an example for the :authorizable `dbus-call-method' keyword + + This was requested in bug#71969 over a year ago. + + * doc/misc/dbus.texi (Synchronous Methods): Add example for + `dbus-call-method' with authorization. (Bug#79062) + +2025-07-21 Michael Albinus <michael.albinus@gmx.de> + + Handle an error of file-notify-add-watch in autorevert.el + + * lisp/autorevert.el (auto-revert-notify-add-watch): + Disable `auto-revert-use-notify' in the buffer when + `file-notify-add-watch' fails. + +2025-07-20 Jim Porter <jporterbugs@gmail.com> + + Disable track-changes while reloading pages in EWW + + This makes sure 'eww--track-changes' doesn't interfere with the initial + rendering process. Previously, this caused problems like <textareas> + consuming the rest of the page when reloading the document. + + * lisp/net/eww.el (eww--change-tracker-id): New variable. + (eww-display-document): Temporarily unregister our change tracker. + + * test/lisp/net/eww-tests.el (eww-test/tag/textarea/reload): New test. + +2025-07-20 Jim Porter <jporterbugs@gmail.com> + + Fix EWW <textarea> properties when it's on the same line as other text + + * lisp/net/eww.el (eww-tag-textarea): Set 'start' after ensuring + preceding newline. + + * test/lisp/net/eww-tests.el (eww-test/tag/textarea/starts-on-new-line): + New test. + +2025-07-20 Eli Zaretskii <eliz@gnu.org> + + Improve error message for "C-u M-! something &" + + * lisp/simple.el (shell-command): User-friendlier error message + when async shell command is invoked with a prefix argument. + +2025-07-20 Roland Winkler <winkler@gnu.org> + + Define setfunction for bibtex-generate-url-list (bug#78798) + + * lisp/textmodes/bibtex.el + (bibtex-generate-url-list-init): New function. + + * lisp/textmodes/bibtex.el (bibtex-generate-url-list) + (bibtex-font-lock-url-regexp): Use it. + +2025-07-20 Jim Porter <jporterbugs@gmail.com> + + Make sure we always set the ':readable' state when displaying EWW page + + * lisp/net/eww.el (eww-display-html): Always set ':readable'. + * test/lisp/net/eww-tests.el (eww-test/readable/reload-resets-readable): + New test. + +2025-07-19 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/vc: Try and avoid quoting lambdas + + * lisp/vc/pcvs.el (cvs-menu, cvs-minor-mode-map): + * lisp/vc/vc-hg.el (vc-hg--extract-headers): + * lisp/vc/vc-git.el (vc-git-show-stash): Don't quote lambdas. + +2025-07-19 Alvaro Ramirez <me@xenodium.com> + + Fix send-to on non-macOS platforms and macOS crash on "emacs -nw" + + * lisp/send-to.el: Both fixes included. + +2025-07-19 Mattias Engdegård <mattiase@acm.org> + + Speed up unintern, and fix symbol shorthand edge case (bug#79035) + + Don't do a full lookup if the argument is a symbol, and only compute the + hash index once. Fix a bug that occurred when there is another symbol + whose shorthand is equal to the true name of the symbol being removed. + + * src/lread.c (Funintern): Rewrite for speed and correctness. + (oblookup_last_bucket_number, oblookup): Remove now unused variable. + * test/src/lread-tests.el (lread-unintern): New test. + +2025-07-19 Mattias Engdegård <mattiase@acm.org> + + Remove the variable load-convert-to-unibyte + + It has been ineffective since 2002. + Suggested by Lynn Winebarger. + + * src/lread.c (Fload, readevalloop_1, readevalloop, Feval_buffer) + (Feval_region, syms_of_lread): Remove the variable and its propagation. + * etc/NEWS: Announce. + +2025-07-19 Michael Albinus <michael.albinus@gmx.de> + + Update Tramp manual + + * doc/misc/tramp.texi (Frequently Asked Questions): Add new items + for Tramp speed up. + +2025-07-19 Alvaro Ramirez <me@xenodium.com> + + Add "Send to..." context menu item to mouse.el + + * lisp/send-to.el: New package implements sending files/region. + + * lisp/mouse.el (context-menu-send-to): Add "Send to..." context menu. + + * lisp/term/ns-win.el (ns-send-items): Expose native macOS send API. + + * src/nsfns.m (ns-send-items): Implement native macOS sending. + + * etc/NEWS: Announce the new feature. + +2025-07-19 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 3b2bfdfef63 ; Fix last change (bug#79042) + 740138b113a ; Fix last change + e675d5ba64b ; Update doc strings of Dired functions due to 'marked' v... + a05be41af71 ; * lisp/battery.el (battery-bsd-apm): Explain a FIXME (b... + fe3ac1575a0 Fix :box attribute of faces in Leuven themes. + 86e32aed4a3 ; define-globalized-minor-mode: Fix capitalization. + +2025-07-19 Sean Whitton <spwhitton@spwhitton.name> + + Include shorter bindings in diff-mode docstring + + * lisp/vc/diff-mode.el (diff-read-only-map): New keymap, + factored out of code modifying minor-mode-map-alist. + (diff-mode): Include bindings from diff-read-only-map in + docstring (bug#34080). + +2025-07-19 Manuel Giraud <manuel@ledu-giraud.fr> + + Saner defaults for `calendar-read-sexp' (Bug#78964) + + * lisp/calendar/cal-bahai.el (calendar-bahai-read-date): + * lisp/calendar/cal-china.el (calendar-chinese-goto-date): + * lisp/calendar/cal-coptic.el (calendar-coptic-read-date): + * lisp/calendar/cal-french.el (calendar-french-goto-date): + * lisp/calendar/cal-hebrew.el (calendar-hebrew-read-date): + * lisp/calendar/cal-islam.el (calendar-islamic-read-date): + * lisp/calendar/cal-iso.el (calendar-iso-read-date): + * lisp/calendar/cal-julian.el (calendar-julian-goto-date) + (calendar-astro-goto-day-number): + * lisp/calendar/cal-mayan.el (calendar-mayan-read-haab-date) + (calendar-mayan-read-tzolkin-date): + * lisp/calendar/cal-persia.el (calendar-persian-read-date): + * lisp/calendar/diary-lib.el (diary-insert-cyclic-entry): Use + first day as default. + * lisp/calendar/cal-hebrew.el (calendar-hebrew-list-yahrzeits): + Set the default of end-year as start-year plus ten years. + +2025-07-19 git@toki.la <git@toki.la> (tiny change) + + Fix for 'windmove-do-window-select' if other-window is 'no-select + + If the variable 'windmove-create-window' is set to a function + that returns 'no-select', 'windmove-do-window-select' is intended + to ignore the final window selection. However, because + 'other-window' is passed to 'window-minibuffer-p' before checking + if 'other-window' is 'no-select', 'window-minibuffer-p' will + instead throw a type error, and the '(eq other-window 'no-select)' + case will never be reached. This patch moves this case up a line + to avoid this. + * lisp/windmove.el (windmove-do-window-select): Check for + 'no-select' value earlier. (Bug#78997) + +2025-07-19 Jim Porter <jporterbugs@gmail.com> + + Improve wording of messages and documentation for 'eww-readable' + + * lisp/net/eww.el (eww-readable, eww-mode): Improve wording; avoid using + the word "content". + + * doc/misc/eww.texi (Basics): Improve wording. + +2025-07-18 Paul Eggert <eggert@cs.ucla.edu> + + GCC bug 117423 has a fix + + Document the change in dependency. As we still need to work + around GCC bug 119085, there is no functional change in ‘configure’. + * configure.ac (emacs_cv_gcc_bug_119085_CFLAGS): + Rename from emacs_cv_gcc_bug_117423_CFLAGS. All uses changed. + +2025-07-18 Sean Whitton <spwhitton@spwhitton.name> + + VC: Tighten up switching branches + + * lisp/vc/vc.el: Require backend 'create-tag' functions to + prompt for the starting point of the branch. + (vc-retrieve-tag, vc-switch-branch): Accept empty NAME only when + not switching branches: it doesn't make sense to switch to the + current branch. Plain 'C-x v r' can still be used to check out + the latest revisions on the current branch. + +2025-07-17 Stefan Monnier <monnier@iro.umontreal.ca> + + outline.el: Don't silence buffer text modification + + It's important not to hide buffer text modifications from + `after/after-change-functions` since it can break other packages' + assumptions. + + * lisp/outline.el (outline--insert-button): Don't silence + buffer text modification. + (outline--fix-up-all-buttons): Save buffer's modified state instead. + +2025-07-17 Stefan Monnier <monnier@iro.umontreal.ca> + + outline.el: Use jit-lock to maintain the buttons + + * lisp/outline.el (outline-minor-mode): Use jit-lock instead of + `after-change-functions`. + (outline-flag-region): Run `outline--fix-buttons` since jit-lock + won't be triggered. + (outline--fix-up-all-buttons): Make the args mandatory. + (outline--fix-buttons): Rename from `outline--fix-buttons-after-change`. + Fix the END calculation. Return the affected bounds, for jit-lock. + +2025-07-17 Stefan Monnier <monnier@iro.umontreal.ca> + + outline.el: Remove buttons properly, including the " " + + In Xref, enabling+disabling `outline-minor-mode` left two spaces + in front of every heading (a.k.a "group") line. + + * lisp/outline.el (outline--remove-buttons): New function. + (outline-minor-mode, outline--fix-buttons-after-change): Use it. + (outline-after-change-functions): Improve docstring. + +2025-07-17 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/outline.el (outline-minor-mode-cycle-filter): Don't quote lambda + +2025-07-17 Stefan Monnier <monnier@iro.umontreal.ca> + + comp.el: Fix minor corner-case annoyances + + * lisp/emacs-lisp/comp.el (comp--native-compile): Avoid `%s` + on objects that may not have names. + * src/data.c (Ffset): Don't compute trampoline for no-op `fset`. + +2025-07-17 Elías Gabriel Pérez <eg642616@gmail.com> + + Add more ways to exclude buffers in tab-line-mode. (Bug#78988) + + * etc/NEWS: Announce changes. + * lisp/tab-line.el (tab-line-exclude-buffer): New user option. + (tab-line-mode--turn-on): Update conditions. + +2025-07-17 Paul Eggert <eggert@cs.ucla.edu> + + Don’t optimize insert-file-contents for GNU + + * src/fileio.c (Finsert_file_contents): + Remove a microoptimization for GNU/Linux and Android. + +2025-07-16 Paul Eggert <eggert@cs.ucla.edu> + + insert-file-contents small gap bug + + Problem reported by Zhengyi Fu (Bug#79031). + * src/fileio.c (Finsert_file_contents): Do not read more than + requested, even when the gap is so small that we use a local buffer. + +2025-07-16 Paul Eggert <eggert@cs.ucla.edu> + + insert-file-contents likely-end memory objects + + * src/fileio.c (Finsert_file_contents): Treat memory objects like + regular files when inferring likely end. Simplify likely end + computation. + +2025-07-16 Paul Eggert <eggert@cs.ucla.edu> + + Port insert-file-contents dir behavior to Unix + + * src/fileio.c (Finsert_file_contents): Port better to traditional + Unix platforms like Solaris, where in some cases 'read' can + succeed on directories. + +2025-07-16 Paul Eggert <eggert@cs.ucla.edu> + + Avoid syscall in dir-locals--all-files + + * lisp/files.el (dir-locals--all-files): + Omit an unnecessary call to file-directory-p. + +2025-07-16 Paul Eggert <eggert@cs.ucla.edu> + + Avoid some syscalls in locate-dominating-file + + * lisp/files.el (locate-dominating-file): Do not call + file-directory-p each time through a loop ascending the directory + hierarchy, as the file must be a directory after the first loop + iteration. Instead, call file-directory-p just once, before the + loop starts, and do this only if the file name is not already that + of a directory. + +2025-07-16 Sean Whitton <spwhitton@spwhitton.name> + + Merge from origin/emacs-30 + + 24db9b79623 ; * lisp/vc/diff-mode.el (diff-mode): Scare-quote 'normal'. + 756e7e52439 ; * lisp/window.el (window-state-put): Fix a typo (bug#79... + 0fb20adf8e7 ; define-globalized-minor-mode: Fix info node link in doc... + +2025-07-16 Sean Whitton <spwhitton@spwhitton.name> + + view-mode-exit: Respect view-read-only + + * lisp/view.el (view-mode-exit): When view-read-only is non-nil, + don't exit View mode if doing so would leave behind a read-only + buffer not in View mode. + (View-exit): Bind view-read-only to nil to override the above. + +2025-07-16 Sean Whitton <spwhitton@spwhitton.name> + + vc-git-diff: Fix case where REV1 & REV2 are nil and no commits yet + + * lisp/vc/vc-git.el (vc-git--empty-tree): New constant. + (vc-git-diff): When REV1 and REV2 are both nil and there are no + commits yet, diff against the empty tree object (bug#78987). + +2025-07-16 Paul Eggert <eggert@cs.ucla.edu> + + Fix insert-file-contents overlap check + + In commit 61a8ce0280668980a4452b112103c9bc879e1f49 I mistakenly + focused on overlap in the buffer. The code also needs to check + for overlap in the inserted file data. + Problem reported by Gerd Möllmann (Bug#79020). + * src/fileio.c (Finsert_file_contents): Prevent overlap in both + the buffer head and tail, and in the inserted file’s head and tail. + Also, shrink the file’s head if the file shrank to be smaller + than its head. + +2025-07-15 Stefan Monnier <monnier@iro.umontreal.ca> + + Add `redisplay_counter` to catch nested redisplays and abort outer one + + The redisplay code is not re-entrant. To allow running ELisp code + from within redisplay, we have some hacks (e.g. `inhibit-redisplay`) + that try to avoid the resulting breakage. + This commit adds another one of those hacks, which tries + to get closer to the core of the problem, thereby making it "safe" + to override `inhibit-redisplay`, e.g. to debug jit-lock code. + + * src/dispextern.h (redisplay_counter): Declare. + * src/xdisp.c (redisplay_counter): Define. + (redisplay_internal) Increment it. + (dsafe__call): Use it, in case `inhibit-redisplay` is overridden. + * src/eval.c (call_debugger): Use it as well to refine the test + we already had. + +2025-07-15 Michael Albinus <michael.albinus@gmx.de> + + Improve autorevert-tests + + * doc/misc/trampver.texi: + * lisp/net/trampver.el: Change version to "2.8.1-pre". + + * lisp/autorevert.el (auto-revert-mode, auto-revert-tail-mode) + (auto-revert-notify-handler, auto-revert--end-lockout): + Use `auto-revert-buffer'. + (auto-revert-notify-handler): Rearrange setting current buffer. + (auto-revert-handler): Add debug message. Rearrange check. + Cancel lockout timer if running. + + * lisp/net/tramp.el (tramp-barf-if-file-missing) + (with-parsed-tramp-file-name, tramp-skeleton-file-truename): + * lisp/net/tramp-archive.el (with-parsed-tramp-archive-file-name): + * lisp/net/tramp-message.el (tramp-with-demoted-errors): + Fix debug declatation. + + * lisp/net/tramp-sh.el (tramp-sh-gio-monitor-process-filter): Do not + prepend remote prefix. + + * test/lisp/autorevert-tests.el: Unify file notification libraries + "gio-monitor" and "gvfs-monitor-dir" to "gio". + (top): Set some Tramp related variables. + (auto-revert--timeout): Increase value. + (auto-revert--test-enabled-remote) + (auto-revert-test02-auto-revert-deleted-file): Do not check for + EMACS_HYDRA_CI environment variable. + (auto-revert--wait-for-revert): Fix regexp to search for. + (auto-revert--deftest-remote): Fix debug declatation. Do not tag + :unstable. + (with-auto-revert-test): Fix debug declatation. Adapt revert intervals. + (auto-revert-test*): Start with (file-notify-rm-all-watches). Use + `buffer-string' and `string-match-p'. + (auto-revert-test00-auto-revert-mode): Unlock initial lockout. + (auto-revert-test01-auto-revert-several-files): Rearrange + temporary directory and file settings. + (auto-revert-test02-auto-revert-deleted-file): Adapt debug message. + (auto-revert-test03-auto-revert-tail-mode): Use `with-auto-revert-test'. + (auto-revert-test04-auto-revert-mode-dired): + Use `ert-with-temp-directory'. Adapt prefix of tmpfile. + (auto-revert-test04-auto-revert-mode-dired) + (auto-revert-test05-global-notify, auto-revert-test06-write-file): + Wait for proper file modification. + (auto-revert-test--instrument-kill-buffer-hook): Fix debug message. + (auto-revert-test07-auto-revert-several-buffers): Use + `with-auto-revert-test. + + * test/lisp/filenotify-tests.el: Unify file notification libraries + "gio-monitor" and "gvfs-monitor-dir" to "gio". + (file-notify--deftest-remote): Fix debug declatation. Do not skip + for "gio". + (file-notify--test-with-actions): Fix debug declatation. + + * test/lisp/net/tramp-tests.el (filenotify): Require. + (ert-remote-temporary-file-directory) + (tramp-test41-special-characters, tramp-test42-utf8) + (tramp-test45-asynchronous-requests): Do not check for + EMACS_HYDRA_CI environment variable. + (tramp-test46-file-notifications): New test. + +2025-07-15 Eli Zaretskii <eliz@gnu.org> + + Fix shift-translation support of 'scroll-lock-mode' commands + + * lisp/scroll-lock.el (scroll-lock-next-line-always-scroll) + (scroll-lock-next-line, scroll-lock-previous-line) + (scroll-lock-forward-paragraph, scroll-lock-backward-paragraph): + Make them support shift-translation, like the commands remapped to + them do. (Bug#79022) + +2025-07-15 Jonas Bernoulli <jonas@bernoul.li> + + Allow trivially autoloading transient-define-group + + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--make-autoload): + Allow uses of transient-define-group to be autoloaded using just + ";;;autoload". + +2025-07-15 Sean Whitton <spwhitton@spwhitton.name> + + vc-resynch-window: Check whether auto-revert-mode is bound + + * lisp/vc/vc-dispatcher.el (auto-revert-mode): Delete + declaration. + (vc-resynch-window): Check whether auto-revert-mode is bound. + +2025-07-14 Pengji Zhang <me@pengjiz.com> + + Move some RefTeX 'setq's to major mode definition + + Move two 'setq' expressions from the RefTeX label selection loop + to the body of the major mode definition, so to make it easier + to adjust the settings of the buffer via the mode hook. + + * lisp/textmodes/reftex-ref.el (reftex-offer-label-menu): Move + two 'setq' expressions from here... + * lisp/textmodes/reftex-sel.el (reftex-select-label-mode): ...to + here. (bug#77335) + +2025-07-14 Stefan Monnier <monnier@iro.umontreal.ca> + + (cl--class-allparents): Fix bug#78989 + + Give more control over ordering when linearizing the + parent graph and avoid pathological misbehavior (such as + placing `t` in the middle of the linearization instead of the + end) when we can't "do it right". + + * lisp/subr.el (merge-ordered-lists): Degrade more gracefully in case + of inconsistent hierarchies and don't do it silently. + + * lisp/emacs-lisp/cl-preloaded.el (cl--class-allparents): Use the local + ordering to break ties, as in the C3 algorithm. + +2025-07-14 Paul Nelson <ultrono@gmail.com> + + Improve prettification of (La)TeX symbols + + * lisp/textmodes/tex-mode.el (tex--prettify-symbols-alist): Remove + entry for "\\newline", which resulted in an invisible display. + Prettify "\\ " with OPEN BOX instead of BOTTOM SQUARE BRACKET. + (tex--prettify-symbols-compose-p): Skip composition when the + control backslash is itself escaped (bug#78752). + +2025-07-14 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/textmodes/tex-mode.el (tex--prettify-symbols-alist): Use \ + + This is the "standard" way to avoid those indentation problems + without relying on funny numbers. + +2025-07-14 Po Lu <luangruo@yahoo.com> + + Fix the Android port + + * src/fileio.c (emacs_full_read): Retype FD param to `emacs_fd'. + (Fcopy_file): Label newsize MAYBE_UNUSED. + +2025-07-14 Juri Linkov <juri@linkov.net> + + * src/xdisp.c (tab-bar-truncate): New variable (bug#78953). + + (tab_bar_height): Use it. + +2025-07-14 Paul Eggert <eggert@cs.ucla.edu> + + Speed up insert-file-contents reads + + This change makes insert-file-contents-literally 30% faster on my + platform, when inserting xdisp.c. + * src/fileio.c (READ_BUF_SIZE): Remove, replacing with ... + (IO_BUFSIZE): ... this new constant from Coreutils. + All uses of READ_BUF_SIZE changed to either MAX_ALLOCA or + IO_BUFSIZE. + +2025-07-14 Paul Eggert <eggert@cs.ucla.edu> + + Avoid some tiny /proc file reads + + * src/fileio.c (union read_non_regular): + New members buf and bufsize replace inserted and trytry. + (read_non_regular): Adjust to this new, simpler interface. + (Finsert_file_contents): If the gap is smaller than read_buf + and we want to read more than the gap, read into read_buf + first, to avoid lots of tiny reads from /proc files. + +2025-07-14 Paul Eggert <eggert@cs.ucla.edu> + + insert-file-contents file shrinkage in scanback + + * src/fileio.c (emacs_full_read): New function. + (Fcopy_file, Finsert_file_contents): Use it. + (Finsert_file_contents): Check for partial reads when scanning + backwards through the file’s tail, as this indicates the file + shrank while we read it. Also, use emacs_full_read in other + situations where it’s simpler and should be a bit faster. + +2025-07-14 Paul Eggert <eggert@cs.ucla.edu> + + int → ptrdiff_t for read results + + * src/fileio.c (Finsert_file_contents): Use ptrdiff_t, not int, to + store results returned by emacs_fd_read, which return ptrdiff_t. + This doesn’t fix any bugs since the values happen to fit in int, + but is a bit clearer and may simplify future changes. + +2025-07-14 Paul Eggert <eggert@cs.ucla.edu> + + insert-file-contents unexpected end shrinkage + + * src/fileio.c (Finsert_file_contents): If the file unexpectedly + shrinks while reading its tail backwards, give up searching for + the match end. + +2025-07-14 Paul Eggert <eggert@cs.ucla.edu> + + fileio.c comment spelling fix + +2025-07-14 Paul Eggert <eggert@cs.ucla.edu> + + insert-file-contents byte vs char confusion + + * src/fileio.c (Finsert_file_contents): Use del_range_byte, + not del_range_1, since we are passing byte counts, not + character counts. Problem reported by Pip Cet (Bug#77315). + +2025-07-14 Paul Eggert <eggert@cs.ucla.edu> + + Fix insert-file-contents overlap calculation + + * src/fileio.c (Finsert_file_contents): Overlap is impossible, so + omit incorrect overflow adjustments that caused later index + calculations to go off the rails (Bug#77315). Change a ‘ZV_BYTE’ + to ‘same_at_end’ for clarity; they have the same value here. + +2025-07-14 Paul Eggert <eggert@cs.ucla.edu> + + insert-file-contents do not rely on st_size + + This fix was prompted by Bug#77315. + * src/fileio.c (Finsert_file_contents): Do not rely on st_size for + anything other than a hint about the file size. Trust only the + file size as revealed by a read that returns 0. + +2025-07-14 Paul Eggert <eggert@cs.ucla.edu> + + insert-file-contents file size hint improvement + + * src/fileio.c (Finsert_file_contents): When reading yields 0, + update the file size hint to match. This should improve its + accuracy. + +2025-07-14 Paul Eggert <eggert@cs.ucla.edu> + + insert-file-contents file end EOF fixes + + * src/fileio.c (Finsert_file_contents): + When counting bytes at file end, don’t trust lseek to seek + to the end of the file. Instead, read a bit after lseeking, + to make sure we get to the end, give up if we don’t get to EOF. + This works around problems on /proc filesystems + where lseek pretends the file is empty. + Update file_size_hint when reaching EOF. + +2025-07-14 Paul Eggert <eggert@cs.ucla.edu> + + Fix insert-file-contents integer overflows + + * src/fileio.c (Finsert_file_contents): Change ‘total’ from + ptrdiff_t to off_t since it might not fit in ptrdiff_t. + Check for overflow when estimating the insertion size. + +2025-07-14 Paul Eggert <eggert@cs.ucla.edu> + + Remove ineffective overflow check + + * src/fileio.c (Finsert_file_contents): Remove check for overflow. + The overflow is not possible, and the check was incorrectly + written and would not have caught it anyway. + +2025-07-14 Paul Eggert <eggert@cs.ucla.edu> + + insert-file-contents END enforcement + + * src/fileio.c (Finsert_file_contents): When matching text + at buffer start, don’t go past END if specified. + +2025-07-14 Paul Eggert <eggert@cs.ucla.edu> + + insert-file-contents initial offset fix + + * src/fileio.c (Finsert_file_contents): Don’t assume that a + newly-opened file is at offset 0, even if it is a regular file. + This might not be true for files like /dev/stdin. + +2025-07-14 Paul Eggert <eggert@cs.ucla.edu> + + insert-file-contents end offset infinity + + * src/fileio.c (Finsert_file_contents): Simplify end_offset + calculation by defaulting to effectively infinity. + +2025-07-14 Paul Eggert <eggert@cs.ucla.edu> + + Refactor negative file size checking + + * src/fileio.c (Finsert_file_contents): Check for negative file + sizes earlier, as it’s easy, avoids some unnecessary work, and + will simplify later changes. + +2025-07-14 Paul Eggert <eggert@cs.ucla.edu> + + Non-nil orig_filename in insert-file-contents + + * src/fileio.c (Finsert_file_contents): Don’t let orig_filename be + nil, as that might mess up later diagnostics. + +2025-07-14 Paul Eggert <eggert@cs.ucla.edu> + + Improve inserted file coding system finding + + * src/fileio.c (Finsert_file_contents): When inserting a file into + a nonempty buffer, improve the heuristic for determining the + file’s coding system by not trusting lseek+SEEK_END, which is + unreliable in /proc or when the file is mutating. + +2025-07-14 Paul Eggert <eggert@cs.ucla.edu> + + Improve insert-file-contents on non-regular files + + This is part of a fix for Bug#77315, + and improves on the fix for Bug#71258. + * src/fileio.c (Finsert_file_contents): Do not pretend that + directories are regular files. Instead, signal an error when + attempting to read from them in the usual case where the OS + prohibits that; and otherwise read from them. However, when + visiting a directory report an error right away rather than + waiting until later, as this function is documented to not allow + visiting non-regular files. Nest the struct stat into a small + code block, to keep the code simpler and so that the compiler can + see what parts are used and can issue better diagnostics if + uninitialized storage is accessed. Be more skeptical of st_size, + when the file is not regular. + +2025-07-14 Paul Eggert <eggert@cs.ucla.edu> + + Fix (find-file "/dev/null") + + * lisp/files.el (find-file-noselect-1): When the file exists, + propagate any errors signaled by insert-file-contents, + instead of propagating them only when the file is unreadable. + This way, (find-file "/dev/null") gives a sensible diagnostic + "not a regular file" instead of the nonsense + "Maximum buffer size exceeded". + +2025-07-14 Paul Eggert <eggert@cs.ucla.edu> + + Don’t trust st_size when scanning file head+tail + + * src/fileio.c (Finsert_file_contents): Do not look at st_size + when scanning the file’s head and tail for a coding system comment. + Instead, just use read and SEEK_END and don’t worry if the latter fails. + st_size and lseek might not work in a /proc file system. + +2025-07-14 Paul Eggert <eggert@cs.ucla.edu> + + copy-file no longer trusts st_size + + In copy-file, do not trust st_size, since it might change as we run, + or we might be in a /proc system where it is unreliable anyway. + Also, fix some other unlikely copy-file bugs while we’re here. + * src/fileio.c (Fcopy_file): Use O_TRUNC when opening a + destination that already exists. This saves us the trouble + of having to call ftruncate with a possibly-bogus st_size; + the old motivation for using ftruncate is no longer compelling. + Do not assume ptrdiff_t is as wide as ssize_t; although this is + true on all known platforms, it’s easy to not assume it. + Don’t trust st_size. Prefer SSIZE_MAX to TYPE_MAXIMUM (ssize_t). + Always read+write, regardless of whether copy_file_range failed. + +2025-07-14 Paul Eggert <eggert@cs.ucla.edu> + + READ_BUF_SIZE → sizeof read_buf + + * src/fileio.c (Finsert_file_contents): Minor refactoring. + This should help future patches which distinguish read_buf’s size + from other uses of READ_BUF_SIZE which may change. + +2025-07-14 Paul Eggert <eggert@cs.ucla.edu> + + insert-file-contents errno confusion + + * src/fileio.c (read_non_regular): Return negation of + errno on failure, instead of -1. + (Finsert_file_contents): Signal with correct errno when a read fails. + +2025-07-14 Stefan Monnier <monnier@iro.umontreal.ca> + + org-persist.el: Silence fewer warnings and fix found warning + + * lisp/org/org-persist.el: Minor cleanup. + (org-persist-directory, org-persist-remote-files) + (org-persist-default-expiry): Remove redundant `:group` arg. + (org-persist-collection-let): Document lack of hygiene. + Remove `with-no-warnings`. + (org-persist--find-index): Reindent, and simplify initialization of `r`. + (org-persist-associated-files:generic): Move before first use. + +2025-07-13 Paul Eggert <eggert@cs.ucla.edu> + + Work around GCC bug 121030 + + * configure.ac: Disable -Wanalyzer-use-of-uninitialized-value. + +2025-07-13 Alan Mackenzie <acm@muc.de> + + Preserve source position of macro calls in macro expansions + + This allows the byte compiler to give correct positions, those + of the invoking forms, when an error or warning is caused by + the innards of the invoked macros. + + This fixes bug#73725 and bug#73746. + + * lisp/emacs-lisp/macroexp.el (macroexp--posify-form-1) + (macroexp--posify-form): New functions. + (macroexp-preserve-posification): New macro. + (macroexp--compiler-macro, macroexp-macroexpand): Use the new + macro to preserve a calling form's position. + + * lisp/emacs-lisp/byte-opt.el (byte-optimize-form): Use the new + macro to preserve source positions. + + * test/lisp/emacs-lisp/bytecomp-resources/bad-error-position.el + * test/lisp/emacs-lisp/bytecomp-resources/bad-error-position-2.el: + New test files. + * test/lisp/emacs-lisp/bytecomp-tests.el: Two new tests using + the new test files. + +2025-07-13 Michael Albinus <michael.albinus@gmx.de> + + tramp-file-name-with-method can be set connection-local + + * doc/misc/tramp.texi (Ad-hoc multi-hops): + tramp-file-name-with-method can be set connection-local. + + * etc/NEWS: tramp-file-name-with-method can be set connection-local. + Presentational fixes and improvements. + + * lisp/net/tramp-cmds.el (tramp-get-file-name-with-method): New defun. + (with-tramp-file-name-with-method, tramp-file-name-with-sudo): Use it. + (tramp-dired-find-file-with-sudo): Fix docstring. + +2025-07-13 Sean Whitton <spwhitton@spwhitton.name> + + New global minor mode vc-auto-revert-mode + + * lisp/vc/vc-hooks.el (auto-revert-mode): Declare. + (vc-auto-revert-mode): New global minor mode. + (vc-turn-on-auto-revert-mode-for-tracked-files): New function. + * lisp/vc/vc-dispatcher.el (auto-revert-mode) + (auto-revert-buffers): Declare. + (vc-resynch-window): Don't call vc-revert-buffer-internal when + auto-revert-mode will revert the buffer. Call + auto-revert-buffers to ensure that this reversion happens in a + timely manner. + * lisp/vc/vc.el (vc-register): Apply vc-auto-revert-mode to + buffers visiting newly registered files. + * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode): + Improve the generated docstring. + * doc/emacs/vc1-xtra.texi (VC Auto-Reverting): + * etc/NEWS: Document the new minor mode. + +2025-07-13 Sean Whitton <spwhitton@spwhitton.name> + + vc-register: Fix setting backup-inhibited + + * lisp/vc/vc.el (vc-register): Delete unreachable code trying to + use 'buffer-file-name' as one of the file names. Properly set + 'backup-inhibited' in any file-visiting buffers. + +2025-07-13 Drew Adams <drew.adams@oracle.com> + + Allow duplicate menu entries in Imenu + + * lisp/imenu.el (imenu-allow-duplicate-menu-items): New user + option. + (imenu--create-keymap): Allow duplicate imenu items if + 'imenu-allow-duplicate-menu-items' is non-nil. + + * etc/NEWS: Announce the change. + (Bug#78935) + +2025-07-12 Stephen Berman <stephen.berman@gmx.net> + + dired-vc-deduce-fileset: Call vc-backend-for-registration + + * lisp/vc/vc.el (vc-backend-for-registration): + * lisp/dired-aux.el (vc-backend-for-registration): Autoload. + (dired-vc-deduce-fileset): Call vc-backend-for-registration when + vc-responsible-backend returns nil (bug#78987). + +2025-07-12 Pip Cet <pipcet@protonmail.com> + + Avoid crashes when profiling multi-threaded Lisp (bug#76970) + + * src/eval.c (backtrace_p): Check 'current_thread' before + dereferencing it. + +2025-07-12 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 6dd8266bc4a ; * doc/emacs/custom.texi (Init File): Mention "M-x custo... + 723cb4da47a ; Fix indexing in Emacs user manual + +2025-07-12 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + ebb65d41630 ; Fix typos + +2025-07-12 Liu Hui <liuhui1610@gmail.com> + + Add option 'ffap-prefer-remote-file' (bug#78925) + + This option only affects absolute filenames that are found by + ffap-file-at-point in buffers with remote default directory. + + The handling of relative filenames in above buffers remains + unchanged: ffap-file-at-point returns the relative filename, + which can be converted to a remote absolute filename by + subsequent callers (e.g. ffap) using expand-file-name. + + * lisp/ffap.el (ffap-prefer-remote-file): New user option. + (ffap-file-exists-string): Add an optional argument to allow the + check of existence of absolute filename on the remote host. + (ffap-file-at-point): Always find remote files in remote context + if the new option is non-nil. + * test/lisp/ffap-tests.el (ffap-test-remote): Add a test. + * etc/NEWS: Announce the change. + +2025-07-12 Eli Zaretskii <eliz@gnu.org> + + Revert "Add option 'ffap-prefer-remote-file' (bug#78925)" + + This reverts commit ae46edff68e8d5729207ed849df83ecb039e11bb. + I mistakenly installed the wrong version of the patch for + bug#78925. + +2025-07-12 Liu Hui <liuhui1610@gmail.com> + + Add option 'ffap-prefer-remote-file' (bug#78925) + + This option only affects absolute filenames that are found by + ffap-file-at-point in buffers with remote default directory. + + The handling of relative filenames in above buffers remains + unchanged: ffap-file-at-point returns the relative filename, + which can be converted to a remote absolute filename by + subsequent callers (e.g. ffap) using expand-file-name. + + * lisp/ffap.el (ffap-prefer-remote-file): New user option. + (ffap-file-exists-string): Add an optional argument to allow the + check of existence of absolute filename on the remote host. + (ffap-file-at-point): Always find remote files in remote context + if the new option is non-nil. + * test/lisp/ffap-tests.el (ffap-test-remote): Add a test. + * etc/NEWS: Announce the change. + +2025-07-12 Elías Gabriel Pérez <eg642616@gmail.com> + + New command 'mode-line-invisible-mode' + + This new command allows hide the mode line in the current + buffer. (Bug#78881) + + * doc/emacs/display.texi (Optional Mode Line): Document feature. + * etc/NEWS: Announce changes. + * lisp/simple.el (mode-line-invisible--buf-state): New buffer + local variable. + (mode-line-invisible-mode): New minor mode. + +2025-07-12 Xiyue Deng <manphiz@gmail.com> + + Add public interfaces for accessing builtin package info (Bug#78844) + + * lisp/emacs-lisp/package.el (package-builtin-packages) + (package-builtin-package-version): New functions. + * doc/lispref/package.texi: Add a section 'Package Information' with + documentation for the new functions. + * etc/NEWS: Add entry for 'package-versioned-builtin-packages' and + 'package-builtin-package-version'. + +2025-07-11 Mattias Engdegård <mattiase@acm.org> + + * src/fns.c (Flength): Fix char table length off-by-one bug. + +2025-07-11 Sean Whitton <spwhitton@spwhitton.name> + + VC: Fix displaying the async command buffer during async checkins + + * lisp/vc/vc-dispatcher.el (vc--display-async-command-buffer): + New function, factored out of vc-do-async-command. + (vc-do-async-command): Use it. + (vc-finish-logentry): Bind vc--inhibit-async-window when running + the log operation, then call vc--display-async-command-buffer + again ourselves after performing other window changes. + +2025-07-11 Sean Whitton <spwhitton@spwhitton.name> + + Apply vc-use-incoming-outgoing-prefixes to vc-dir-mode-map too + + * lisp/vc/vc-dir.el (vc-use-incoming-outgoing-prefixes): + * lisp/vc/vc-hooks.el: Apply vc-use-incoming-outgoing-prefixes + to the corresponding bindings in vc-dir-mode-map, too. + +2025-07-11 Sean Whitton <spwhitton@spwhitton.name> + + vc-git-find-revision: Pass --filters to git-cat-file + + * lisp/vc/vc-git.el (vc-git-find-revision): Pass --filters to + git-cat-file. Problem reported and fix suggested by Oscar + Fuentes <ofv@wanadoo.es>. + +2025-07-10 Alan Third <alan@idiocy.org> + + Update documentation and NEWS with SVG changes (bug#77841) + + * doc/lispref/display.texi (SVG Images): + * etc/NEWS: Document changes to SVG foreground color handling. + +2025-07-10 Alan Third <alan@idiocy.org> + + Move CSS into the SVG wrapper + + This allows CSS to be used with librsvg < 2.48. + + * src/image.c (svg_load_image): Move CSS construction and include + "color". Also append the CSS passed in by the user rather than + replacing it. + +2025-07-10 Alan Third <alan@idiocy.org> + + Use css to set SVG foreground in docview + + * lisp/doc-view.el (doc-view-insert-image): Use CSS to set the fill + attribute to the desired foreground color. + +2025-07-10 Alan Third <alan@idiocy.org> + + Change foreground color handling for SVG files (bug#77841) + + * etc/images/checkbox-mixed.svg: + * etc/images/checked.svg: + * etc/images/conceal.svg: + * etc/images/down.svg: + * etc/images/gnus/gnus-pointer.svg: + * etc/images/left.svg: + * etc/images/outline-close.svg: + * etc/images/outline-open.svg: + * etc/images/radio-checked.svg: + * etc/images/radio-mixed.svg: + * etc/images/radio.svg: + * etc/images/reveal.svg: + * etc/images/right.svg: + * etc/images/symbols/check-mark_16.svg: + * etc/images/symbols/chevron_down_16.svg: + * etc/images/symbols/chevron_left_16.svg: + * etc/images/symbols/chevron_right_16.svg: + * etc/images/symbols/chevron_up_16.svg: + * etc/images/symbols/cross_16.svg: + * etc/images/symbols/cross_circle_16.svg: + * etc/images/symbols/cross_circle_fill_16.svg: + * etc/images/symbols/dot_large_16.svg: + * etc/images/symbols/dot_medium_16.svg: + * etc/images/symbols/dot_small_16.svg: + * etc/images/symbols/heart_16.svg: + * etc/images/symbols/heart_fill_16.svg: + * etc/images/symbols/heart_half_16.svg: + * etc/images/symbols/menu_16.svg: + * etc/images/symbols/minus_16.svg: + * etc/images/symbols/minus_circle_16.svg: + * etc/images/symbols/minus_circle_fill_16.svg: + * etc/images/symbols/plus_16.svg: + * etc/images/symbols/plus_circle_16.svg: + * etc/images/symbols/plus_circle_fill_16.svg: + * etc/images/symbols/star_16.svg: + * etc/images/symbols/star_fill_16.svg: + * etc/images/symbols/star_half_16.svg: + * etc/images/unchecked.svg: + * etc/images/up.svg: Set 'fill' color to 'currentcolor'. + * etc/images/symbols/README: Add explanation of change to instructions. + * src/image.c: Remove setting of the 'fill' color in the default SVG + stylesheet. + +2025-07-10 Michael Albinus <michael.albinus@gmx.de> + + Fix browse-url-tests-delete-temp-file + + * test/lisp/net/browse-url-tests.el (browse-url-tests-delete-temp-file): + Fix test. + +2025-07-10 Michael Albinus <michael.albinus@gmx.de> + + Fix handling of `browse-url-temp-file-name' + + * lisp/net/browse-url.el (browse-url--temp-file-setup): + Add `browse-url-delete-temp-file' to `write-file-functions'. + (browse-url-of-file, browse-url-delete-temp-file): Fix handling of + `browse-url-temp-file-name'. (Bug#78830) + +2025-07-10 Michael Albinus <michael.albinus@gmx.de> + + * admin/notes/jargon: Add TIL. + +2025-07-10 Mattias Engdegård <mattiase@acm.org> + + Unintern Qget_file_char and Qget_emacs_mule_file_char + + These symbols are used in the reader as special constants and can't be + passed from Lisp (Emacs would crash). + + * src/lread.c (syms_of_lread): Unintern. + (init_source): Use BASE_EQ. + +2025-07-10 Mattias Engdegård <mattiase@acm.org> + + Speed up low-level parts of the reader and refactor + + Inspect the given 'readcharfun' source once, before using it, instead of + for each character read. This moves a bunch of branches away from the + critical path, with separate functions for different source types. + Replace some preprocessor macros with functions. + + * src/lread.c (READCHAR, UNREAD, READCHAR_REPORT_MULTIBYTE) + (FROM_FILE_P): Remove; use corresponding functions instead. + All callers adapted. + (source_t): New struct that takes the place of the `readcharfun` and + `readbyte` arguments in many places. + (init_source) + (source_buffer_get, source_buffer_unget) + (source_marker_get, source_marker_unget) + (source_string_get, source_string_unget) + (source_file_get, source_file_unget) + (source_function_get, source_function_unget) + (from_file_p, unreadbyte_from_file): + New. + (readbyte_from_stdio): Replace `readbyte_from_file`. + (readchar, unreadchar): Rewrite. + (lisp_file_lexical_cookie, readevalloop, read_internal_start): + Create a source_t for use during reading. All signatures and functions + called adapted. + (read_char_escape): Remove check for an error that can no longer occur. + +2025-07-10 Juri Linkov <juri@linkov.net> + + Cache only the last string in 'tab-bar-format-align-right' (bug#78953) + + * lisp/tab-bar.el (tab-bar--align-right-cache): + Rename from 'tab-bar--align-right-hash'. + (tab-bar-format-align-right): Use it to store + the string in the car, and the width in the cdr. + +2025-07-10 Yuan Fu <casouri@gmail.com> + + Eldoc: Run eldoc-display-functions with original buffer (bug#78530) + + Also bump eldoc version so Eglot can require the new version + later. + + * lisp/emacs-lisp/eldoc.el (eldoc--invoke-strategy): Run the + hook with the original buffer as the current buffer. This way + we're certain that the buffer-local value of + 'eldoc-display-functions' is used. + (eldoc-display-functions): Update docstring. + +2025-07-09 Andrea Corallo <acorallo@gnu.org> + + Nativecomp don't materialize non-materializable objects (bug#78606) + + The native compiler should not try to generate in rendered code + immediate floats produced by the constrain on the '=' operator. + + * test/src/comp-tests.el (comp-test-78606-1): Add test. + * test/src/comp-resources/comp-test-funcs.el (comp-test-78606-1-f): New + function. + * src/comp.c (emit_mvar_rval): Check if an immediate is materializable. + * lisp/emacs-lisp/comp.el (comp-ctxt): Add 'non-materializable-objs-h' + slot. + (comp--fwprop-insn): Update call. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-=): Add parameter. + +2025-07-09 Pip Cet <pipcet@protonmail.com> + + Call eieio--class-* accessors only on eieio classes (bug#78786) + + * lisp/emacs-lisp/eieio-core.el (eieio-oref, eieio-oref-default): + (eieio-oset, eieio-oset-default): Don't look for class slots except in + eieio classes. + * test/lisp/emacs-lisp/eieio-tests/eieio-tests.el + (eieio-test-defstruct-slot-value): New test. + +2025-07-09 Pip Cet <pipcet@protonmail.com> + + Fix crashes when "emacsclient -nw" frames are suspended (bug#78980) + + * src/frame.c (frame_redisplay_p): Start loop with 'f', not its parent + frame. Simplify return expression. + +2025-07-09 Sean Whitton <spwhitton@spwhitton.name> + + print_error_message: Handle user-error to the echo area specially + + * src/print.c (print_error_message): For a user-error that is to + be printed to the echo area, use message3 in order to preserve + fontification. + +2025-07-09 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc.el (vc-find-revision-no-save): Call read-only-mode. + +2025-07-09 Stephen Berman <stephen.berman@gmx.net> + + Amend last change to 'kill-this-buffer' + + * lisp/menu-bar.el (kill-this-buffer): Take using window tool bar + into account (bug#78809). + +2025-07-09 Martin Rudalics <rudalics@gmx.at> + + Handle invalid frame_or_window slots in tty input events (Bug#78966) + + * src/frame.c (make_terminal_frame): Initialize terminal's + top_frame slot if it has not been set up yet (Bug#78966). + * src/keyboard.c (kbd_buffer_get_event): Do not assume that the + event's frame_or_window slot always produces a valid frame + (Bug#78966). + (tty_read_avail_input): Try to make sure that the input event we + create has a valid frame_or_window slot (Bug#78966). Add assertion + to that purpose. + +2025-07-09 Juri Linkov <juri@linkov.net> + + Handle multiple mouse events in display-buffer-override-next-command + + * lisp/window.el (display-buffer-override-next-command): + Use 'mouse-event-p' to wait for more following mouse events. + + * lisp/frame.el (other-frame-prefix): + * lisp/tab-bar.el (other-tab-prefix): + * lisp/windmove.el (windmove-display-in-direction): + * lisp/window.el (other-window-prefix, same-window-prefix): + Update the docstring to explain the behavior in regard + to multiple consecutive mouse events (bug#78945). + +2025-07-09 Yuan Fu <casouri@gmail.com> + + Ditch the async range update in tree-sitter (bug#78402) + + Right now in treesit-outline-search -> treesit-navigate-thing, a + freshly created tree-sitter node becomes outdated within the + function. I'm not sure _exactly_ how it happend, but it might + look like this: we first get a node from, say, html parser, then + get another node from, say, liquid parser. Creating the node + from liquid parser causes a reparse which updated the range of + the html parser, which rendered the html node outdated. + + There're several problems with the current design, let's start + with the most obvious one: we add + treesit--font-lock-mark-ranges-to-fontify as a notifier of the + primar parser in treesit-major-mode-setup. Now, if a ts major + mode inherits another major mode, treesit-major-mode-setup will + be called twice, once in the parent mode and once in the child + node, and two parsers will have the notifier. But + treesit--font-lock-mark-ranges-to-fontify is designed to run + only once. + + I believe this bug, together with some mysterious async + execution order, led to the problems we saw in the bug report. + My solution is to just make everything synchronous. + + So I added treesit-parser-changed-regions, and modified + treesit--font-lock-mark-ranges-to-fontify to use it. Now we + don't need to add the notifier to the primary parser anymore. + + I also applied the tree-sitter-outline change we discussed in + the bug report. (Change to treesit-outline-search, and remove + treesit--after-change.) + + * lisp/treesit.el: + (treesit--font-lock-mark-ranges-to-fontify): Remove the unused + PARSER arg. + (treesit--pre-redisplay): Make use of + treesit-parser-changed-regions. + (treesit-outline-search): Call treesit--pre-redisplay in the + beginning. + (treesit--after-change): Remove function. + (treesit-major-mode-setup): Don't add notifier to primary parser. + +2025-07-09 Yuan Fu <casouri@gmail.com> + + Add a synchronous way to get parser change ranges (bug#78402) + + This commit only adds the new function, the fix for the bug is + in the next commit. + + * doc/lispref/parsing.texi (Using Parser): Add docs. + * lisp/treesit.el (treesit): Add shortdoc. + * src/treesit.c (treesit_get_affected_ranges): New function + extracted from treesit_call_after_change_functions. + (treesit_call_after_change_functions): Extract out. + (treesit_ensure_parsed): Return affected regions. + (Ftreesit_parser_changed_regions): New function that returns the + affected regions. + +2025-07-09 Juri Linkov <juri@linkov.net> + + Cache 'string-pixel-width' in 'tab-bar-format-align-right' (bug#78953) + + * lisp/tab-bar.el (tab-bar--align-right-hash): New internal variable. + (tab-bar-format-align-right): Use memoization for 'string-pixel-width'. + +2025-07-09 Juri Linkov <juri@linkov.net> + + Fix tab-bar-format-align-right to not call tab-bar-format-global twice + + * lisp/tab-bar.el (tab-bar-format-align-right): Add optional arg 'rest' + to handle it specially in 'tab-bar-format-list'. Use the value from 'rest' + instead of calling format functions twice by 'tab-bar-format-list'. + (tab-bar-format-list): When 'format-list' contains the item + 'tab-bar-format-align-right', collect the rest of formatted items + and call 'tab-bar-format-align-right' explicitly with the collected + list (bug#78953). + +2025-07-09 Jim Porter <jporterbugs@gmail.com> + + Add NEWS entry for abbreviating Git revisions in 'vc-annotate' + + * etc/NEWS: Document new cases where 'vc-annotate' abbreviates Git + revisions (bug#78900). + +2025-07-07 Mattias Engdegård <mattiase@acm.org> + + Cheaper char counting when reading symbols + + * src/lread.c (read0): Strength reduction. + +2025-07-07 Mattias Engdegård <mattiase@acm.org> + + Refactor buffering code in the Lisp reader + + Abstract the buffering in the reader with a struct and plain functions + instead of rather unhygienic preprocessor macros. + + * src/lread.c (READ_AND_BUFFER, INVALID_SYNTAX_WITH_BUFFER): + Removed, replaced with... + (readbuf_t, readbuf_grow, add_char_to_buffer, read_and_buffer) + (invalid_syntax_with_buffer): ...these new functions and struct. + (read0): Use new code instead of old preprocessor macros. + +2025-07-07 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc.el (with-vc-properties): Fix macro variable capture. + +2025-07-07 Sean Whitton <spwhitton@spwhitton.name> + + Resolve FIXME regarding running vc-checkin-hook + + Running vc-checkin-hook needs to be delayed in the case of an + async checkin. As a quick fix we had been relying on the + backend checkin functions to run the hook in the async case. + This restores handling running the hook in generic code even for + the async case. + + * lisp/vc/vc.el (vc-checkin): Always pass vc-checkin-hook to + vc-start-logentry. Return the result of calling the backend + 'checkin-patch' or 'checkin' function to vc-finish-logentry. + * lisp/vc/vc-dispatcher.el (vc-finish-logentry): If the log + operation returns a cons of the form (async . #<process ...>), + use vc-exec-after to delay vc-resynch-buffer and hooks until the + async process completes. Approach suggested by Dmitry Gutov. + * lisp/vc/vc-git.el (vc-git-checkin): + * lisp/vc/vc-hg.el (vc-hg-checkin): For an async checkin, return + a cons (async . #<process ...>) containing the async checkin + process. No longer run vc-checkin-hook. + + * lisp/vc/vc.el (with-vc-properties): Return the result of + evaluating FORM. + * lisp/vc/vc-dispatcher.el (vc-exec-after): Change to PROC's + buffer before calling vc-set-mode-line-busy-indicator. + +2025-07-07 Mattias Engdegård <mattiase@acm.org> + + Read non-ASCII chars from unibyte string sources as raw bytes + + Previously, latin-1 was incorrectly assumed (bug#70988). + + * src/lread.c (readchar): Convert to raw byte. + * test/src/lread-tests.el (lread-unibyte-string-source): New test. + +2025-07-07 Mattias Engdegård <mattiase@acm.org> + + Print non-ASCII chars in unibyte symbols as raw bytes + + Previously, latin-1 was incorrectly assumed (bug#70988). + + * src/print.c (print_object): Call the correct function. + * test/src/print-tests.el (print-unibyte-symbols): New test. + +2025-07-07 Mattias Engdegård <mattiase@acm.org> + + Read characters from functions as multibyte + + Previously, latin-1 was incorrectly assumed (bug#70988). + + * src/lread.c (readchar): Set multibyte flag. + * test/src/lread-tests.el (lread-function-source): New test. + +2025-07-07 Mattias Engdegård <mattiase@acm.org> + + Turn compiler macro defalias messages into warnings + + * lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-defalias): + Turn messages into warnings to make them more visible to the user and + provide a source location (bug#78792). + +2025-07-07 Jim Porter <jporterbugs@gmail.com> + + Use short revisions by default when navigating to revisions + + * lisp/vc/vc-annotate.el (vc-annotate-revision-previous-to-line) + (vc-annotate-show-diff-revision-at-line-internal) + (vc-annotate-warp-revision): Let-bind 'vc-use-short-revision' + around calls to 'previous-revision' and 'next-revision'. + + * lisp/vc/vc-git.el (vc-git-previous-revision, vc-git-next-revision): + Handle 'vc-use-short-revision' option (bug#78900). + +2025-07-07 Jim Porter <jporterbugs@gmail.com> + + Show "readable" status in the EWW mode line + + * lisp/net/eww.el (eww-display-html): Check whether a readable form of + the document exists; if not, don't set ':readable' to t. + (eww-readable): Check whether a readable form of the document exists; if + not, warn the user and don't add to history. + (eww-readable-dom): Return nil if no readable form exists. + (eww-mode): Check the ':readable' property of 'eww-data' to show + "readable" state in the mode line. + + * test/lisp/net/eww-tests.el + (eww-test/readable/default-readable/non-readable-page): New test + (bug#78958). + +2025-07-07 Stefan Monnier <monnier@iro.umontreal.ca> + + (Ftranspose_regions): Fix bug#76124 + + * src/editfns.c (Ftranspose_regions): Be careful that ELisp code could + move the gap from under our feet. + + * test/src/editfns-tests.el (editfns-tests--bug76124): New test. + +2025-07-06 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/mpc.el (mpc-describe-song): Don't quote lambdas + +2025-07-06 Sean Whitton <spwhitton@spwhitton.name> + + Log Edit: Don't auto-fill within the headers + + * lisp/vc/log-edit.el (log-edit-do-auto-fill): New function. + (log-edit-mode): Set normal-auto-fill-function to it. + +2025-07-06 Sean Whitton <spwhitton@spwhitton.name> + + vc-checkin: Check whether the fileset or patches have changed + + * lisp/vc/vc-dispatcher.el (vc-finish-logentry): Delay popping + to vc-parent-buffer until after calling the log operation. + That way if the log operation exits early, the current buffer + remains *vc-log*. + (vc-dir-marked-files, dired-get-marked-files): Declare. + (vc-dispatcher--explicit-marks-p): New function. + * lisp/vc/vc.el (vc-checkin): Check the user isn't likely to be + surprised by what is included in the checkin. Specifically, + check whether the fileset or patches implied by vc-parent-buffer + are unchanged. + * doc/emacs/maintaining.texi (VC With A Merging VCS): Explain + how the fileset or patch string is fixed once *vc-log* pops up. + +2025-07-06 Michael Albinus <michael.albinus@gmx.de> + + Adapt filenotify-tests.el for Emba + + * test/infra/gitlab-ci.yml (.filenotify-gio-template): Enable also + for scheduled jobs. + + * test/lisp/filenotify-tests.el (file-notify--test-cleanup): + Fix docstring. + (file-notify--deftest-remote): Use `file-notify--test-cleanup'. + (file-notify-test03-events, file-notify-test05-file-validity) + (file-notify-test06-dir-validity) + (file-notify-test07-many-events) + (file-notify-test09-watched-file-in-watched-dir): Adapt tests. + (file-notify-test03-events-remote) + (file-notify-test04-autorevert-remote) + (file-notify-test07-many-events-remote) + (file-notify-test09-watched-file-in-watched-dir-remote): Do not + tag as :unstable. + +2025-07-06 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/help-mode.el (help-mode-context-menu): Don't quote lambda + +2025-07-05 Michael Albinus <michael.albinus@gmx.de> + + Add file notification handler for Tramp's "smb" method. + + * etc/NEWS: Mention new file notification handler for Tramp "smb". + + * lisp/filenotify.el (file-notify--expand-file-name): Fix the + remote case. + (file-notify-callback): Extend for "smb-notify". + (file-notify--call-handler): Fix debug message. + + * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch): + * lisp/net/tramp-sh.el (tramp-sh-gio-monitor-process-filter): + Use connection property "file-monitor". + + * lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist): + Use `tramp-smb-handle-file-notify-add-watch'. + (tramp-smb-handle-delete-directory): Do not error if there is a + pending deletion of a directory under file-watch. + (tramp-smb-handle-file-notify-add-watch) + (tramp-smb-notify-process-filter): New defuns. + (tramp-smb-send-command): New optional argument NOOUTPUT. + (tramp-smb-wait-for-output): Improve debug message. + + * lisp/net/tramp.el (tramp-directory-watched): New defun. + (tramp-accept-process-output, tramp-wait-for-regexp): + Improve debug message. + + * test/lisp/filenotify-tests.el (top): Filter also for + "smb-notify". Set some other Tramp related variables. + (file-notify--test-wait-for-events) + (file-notify--test-with-actions-check) + (file-notify--test-with-actions): Add debug message. + (file-notify--test-cleanup, file-notify--deftest-remote): + Keep Tramp debugs buffer. + (file-notify--test-monitor): Check for "smb-notify". + (file-notify--deftest-remote): Call `file-notify-rm-all-watches'. + (file-notify--test-make-temp-name): Use a better name for parent + directory. + (file-notify--test-event-handler): Use `string-match-p'. + (file-notify--test-with-actions): Check also for the `stopped' + event as limit. + (file-notify-test03-events, file-notify-test04-autorevert) + (file-notify-test05-file-validity) + (file-notify-test07-many-events, file-notify-test08-backup) + (file-notify-test09-watched-file-in-watched-dir): Adapt tests for + "smb-notify". + (file-notify-test12-unmount): Skip for "smb-notify". + +2025-07-05 Stefan Monnier <monnier@iro.umontreal.ca> + + (eieio--validate-slot-value): Don't break on struct objects + + Nowadays `eieio-oset` applies to more than just EIEIO objects. + The old code tended to work OK but only because `eieio--class-slots` + is usually compiled/inlined without checks. + + * lisp/emacs-lisp/eieio-core.el (eieio--validate-slot-value): + Don't assume CLASS is an EIEIO class. + +2025-07-05 Mattias Engdegård <mattiase@acm.org> + + Make elint obsolete (bug#78685) + + It never was very useful to begin with, produces lots of false positives, + and the byte-compiler has long eclipsed it in warning quality. + + * lisp/emacs-lisp/elint.el: Move this file... + * lisp/obsolete/elint.el: ...here, and declare obsolete. + (elint-file, elint-directory, elint-current-buffer, elint-defun): + Declare obsolete. + (elint--file): Split from elint-file to avoid warning. + * lisp/progmodes/elisp-mode.el (emacs-lisp-mode-menu): + Remove elint menu entries. + * etc/NEWS: Announce + +2025-07-05 Eli Zaretskii <eliz@gnu.org> + + Revert "New command 'mode-line-invisible-mode'" + + This reverts commit 7e56ffd51bc5a00919f6a6af99fe9d329331a126. + It caused failure to bootstrap. (Bug#78881) + +2025-07-05 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 3f7787c9794 ; * lisp/replace.el (query-replace-help): Fix help text (... + b10596a6303 ; * lisp/emacs-lisp/warnings.el (warning-display-at-botto... + 060f964906b Handle ts_node_type return NULL (bug#78938) + 5bdacbe460a Improve documentation of 'warning-display-at-bottom' + 30dae2ad239 Handle the case when ts_node_type returns NULL (bug#78938) + 985ad1da76d ; * lisp/emacs-lisp/bytecomp.el (compilation-safety): Doc... + de18407f513 ; * doc/lispref/functions.texi (Mapping Functions): Fix w... + +2025-07-05 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + e51ff3ee664 ; * doc/lispref/threads.texi (Condition Variables): Fix w... + +2025-07-05 Spencer Baugh <sbaugh@janestreet.com> + + Fix ffap-in-project to check file existence + + * lisp/ffap.el (ffap-in-project): Check file existence before + returning non-nil. (bug#78929) + +2025-07-05 Roi Martin <jroi.martin@gmail.com> + + Update NEWS with info about `fill-region-as-paragraph-function' + + * etc/NEWS: Add an entry for `fill-region-as-paragraph-function'. + Document that `fill-region-as-paragraph-semlf' is a valid + `fill-region-as-paragraph-function' value. (Bug#78949) + +2025-07-05 Sean Whitton <spwhitton@spwhitton.name> + + Don't call vc-buffer-sync-fileset when committing a patch + + * lisp/vc/vc-dispatcher.el (vc-finish-logentry): Move call to + vc-buffer-sync-fileset from here ... + * lisp/vc/vc.el (vc-checkin): ... to here, and conditionalize so + as not to call when committing a patch. Also fix comment. + +2025-07-05 Elías Gabriel Pérez <eg642616@gmail.com> + + New command 'mode-line-invisible-mode' + + This new command allows hide the mode line in the current + buffer. (Bug#78881) + + * doc/emacs/display.texi (Optional Mode Line): Document feature. + * etc/NEWS: Announce changes. + * lisp/bindings.el (mode-line-invisible--buf-state): New buffer + local variable. + (mode-line-invisible-mode): New minor mode. + +2025-07-05 Eli Zaretskii <eliz@gnu.org> + + Fix 'ediff-before-setup-hook' + + * lisp/vc/ediff-util.el + (ediff-clone-buffer-for-region-comparison): Wrap body in + 'save-window-excursion', to make sure original window + configuration is restored after quitting 'ediff-regions-linewise'. + Suggested by Aaron Zeng <azeng@janestreet.com>. (Bug#78897) + +2025-07-05 Antero Mejr <mail@antr.me> + + Check for text about Org-mode when submitting emacs bugs + + * lisp/mail/emacsbug.el (report-emacs-bug-hook): Add regex check for + references to Org, and warn user if matches are found. (Bug#78823) + +2025-07-04 Arash Esbati <arash@gnu.org> + + Consider constant TeX master/main file + + * lisp/international/latexenc.el + (latexenc-find-file-coding-system): Search for "Local Variables" + as a comment. + Consider the case where `TeX-master' or `tex-main-file' is + globally set to a string as well. (AUCTeX bug#78841) + +2025-07-04 Sean Whitton <spwhitton@spwhitton.name> + + vc-find-revision-no-save: Finish entering read-only-mode + + * lisp/vc/vc.el (vc-find-revision-no-save): After setting + buffer-read-only to non-nil, also run read-only-mode-hook, + and if view-read-only is non-nil, call view-mode-enter. + +2025-07-04 Sean Whitton <spwhitton@spwhitton.name> + + VC: New incoming & outgoing diff commands (bug#62940) + + * lisp/vc/vc-hooks.el (vc-incoming-prefix-map) + (vc-outgoing-prefix-map): New keymaps. + (vc-use-incoming-outgoing-prefixes): New user option. + * lisp/vc/vc.el (vc-root-diff-incoming, vc-root-diff-outgoing): + New commands (bug#62940). + * doc/emacs/maintaining.texi (VC Change Log): + * etc/NEWS: Document the new commands and option. + +2025-07-04 Sean Whitton <spwhitton@spwhitton.name> + + New history variable for VC remote locations + + * lisp/vc/vc.el (vc-remote-location-history): New variable. + (vc--maybe-read-remote-location): Use it. + +2025-07-04 Steven Allen <steven@stebalien.com> + + Retain the <base> tag when making a page in EWW document readable + + The base tag is necessary to correctly resolve relative links. + + * lisp/net/eww.el (eww-readable-dom): Retain the base tag in addition to + the title/link tags. (Bug#78948) + * test/lisp/net/eww-tests.el (eww-test--wordy-page): Add a base tag. + (eww-test/readable/default-readable): Test that the base tag is retained. + +2025-07-03 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/dired.el (dired-mode-immediate-menu): Don't quote `lambda` + + lisp/dired-x.el (dired-omit-lines): Don't quote `lambda` + +2025-07-03 Sean Whitton <spwhitton@spwhitton.name> + + Factor out some common code from VC incoming/outgoing functions + + * lisp/vc/vc.el (vc--maybe-read-remote-location) + (vc--incoming-revision): New functions, factored out. + (vc-log-incoming, vc-default-log-incoming, vc-log-outgoing) + (vc-default-log-outgoing): Use them. + +2025-07-03 Sean Whitton <spwhitton@spwhitton.name> + + VC: Make incoming-revision backend function responsible for fetching + + * lisp/vc/vc-hg.el (vc-hg-incoming-revision): Pull the incoming + revision if we don't have it. + (vc-hg-mergebase): Don't invoke 'hg pull'. + * lisp/vc/vc.el: Document that the incoming-revision backend + function, for distributed VCS, should fetch the incoming + revision into local storage. + +2025-07-03 Juri Linkov <juri@linkov.net> + + Don't ignore mouse release event in display-buffer-override-next-command + + * lisp/window.el (display-buffer-override-next-command): + Don't exit on mouse down event, thus waiting for the incoming + mouse up event (bug#78945). + +2025-07-03 Eli Zaretskii <eliz@gnu.org> + + Avoid segfaults due to C-g when a thread does GC + + * src/keyboard.c (handle_interrupt): Don't forcibly switch threads + if a non-main thread was in GC when the signal handler was called. + +2025-07-02 Dmitry Gutov <dmitry@gutov.dev> + + project--read-project-buffer: Re-apply category 'buffer' to completion + + * lisp/progmodes/project.el + (project--completion-table-with-category): New function. + (project--file-completion-table): Extract from here. + (project--read-project-buffer): Use it (bug#78931). + +2025-07-02 Dmitry Gutov <dmitry@gutov.dev> + + uniquify-get-unique-names: Return a list with propertized strings + + * lisp/uniquify.el (uniquify-get-unique-names): Return a list of + strings, and add text property 'uniquify-orig-buffer' to each, + pointing at the corresponding buffers (bug#77312). + + * lisp/progmodes/project.el (project--read-project-buffer): + Look up that property's values here and build the alist. + +2025-07-02 Jim Porter <jporterbugs@gmail.com> + + Ensure <style> and <template> HTML tags are never "readable" in EWW + + This helps fix EWW readable mode on some web pages that use these tags, + like the FSF blog. + + * lisp/net/eww.el (eww--walk-readability): Check for <style> and + <template> tags. + +2025-07-01 Stefan Monnier <monnier@iro.umontreal.ca> + + cus-edit.el: Don't quote lambdas and improve macro declaration + + * lisp/cus-edit.el (custom-reset-extended-menu): Don't quote lambdas. + (custom-dirlocals-with-buffer): Add indent and debug info. + +2025-07-01 Stefan Monnier <monnier@iro.umontreal.ca> + + (load-path-filter): Loading can happen in the middle of completion + + * lisp/startup.el (load-path-filter-cache-directory-files): + Don't get confused by the context's `completion-regexp-list`. + +2025-07-01 Philip Kaludercic <philipk@posteo.net> + + Expand DIR arg on `package-vc-install-from-checkout' + + Expand the directory name passed to the + 'package-vc-install-from-checkout' function so that paths like + "/path/to/pkg/./" are converted to "/path/to/pkg/". This + ensures that the package name defaults to "pkg" instead of ".". + * lisp/emacs-lisp/package-vc.el + (package-vc-install-from-checkout): Expand the provided + directory name. (Bug#78855) + + Co-developed-by: Roi Martin <jroi.martin@gmail.com> + +2025-07-01 Jonas Bernoulli <jonas@bernoul.li> + + Update to Transient v0.9.3-8-gecd64f17 + +2025-07-01 Sean Whitton <spwhitton@spwhitton.name> + + VC-Hg: Use generic log-incoming & log-outgoing + + * lisp/vc/vc-hg.el (vc-hg-print-log): Implement string LIMIT for + this backend. Use a DAG range when 'vc-log-view-type' is + 'log-outgoing'. Document differences between -rN:M and -rN::M. + (vc-hg-log-view-mode): Treat 'log-incoming' and 'log-outgoing' + values for 'vc-log-view-type' as short logs too. + (vc-hg-log-incoming, vc-hg-log-outgoing): Delete. + +2025-07-01 Sean Whitton <spwhitton@spwhitton.name> + + vc-hg-mergebase: Try a pull if first attempt fails + + * lisp/vc/vc-hg.el (vc-hg-mergebase): If the first attempt + fails, execute a pull, then try again. + (vc-hg-incoming-revision): Use 'hg identify' not 'hg incoming'. + +2025-07-01 Stefan Monnier <monnier@iro.umontreal.ca> + + Revert "admin/gitmerge.el (gitmerge-resolve): Use `replace-region-contents`" + + This reverts commit 17d976e22e9b0ba10dcbe1655a93bc4d165d7097 + because the change is not worth the risk. + +2025-07-01 Thomas Fitzsimmons <fitzsim@fitzsim.org> + + EUDC: Fix checkdoc errors + + * lisp/net/eudc.el (eudc--plist-member) + (eudc-format-inline-expansion-result): Fix checkdoc errors. + +2025-07-01 Stefan Monnier <monnier@iro.umontreal.ca> + + expand.el: Simplify by always using a list in `expand-list` + + The old code set `expand-list` to a vector of "marks" but also + supported it being set by third party code to a list. + The code to build and use the vector was a internally using + a list, so we cut the middle man and just always use a list so + it doesn't matter whether we set it or a third party code did. + + * lisp/expand.el (expand-add-abbrevs): Use `mapc` instead of recursion. + (expand-add-abbrev): Add dummy `rest` arg so we can `apply` it blindly + in `expand-add-abbrevs`. + (expand-abbrev-hook): `expand-list` is never set to a vector any more. + (expand-do-expansion): Set `expand-list` to a list rather than a vector. + (expand-abbrev-from-expand): Use `abbrev-symbol`. + (expand-build-list, expand-build-marks): Delete functions, not used + any more. + +2025-06-30 Roi Martin <jroi.martin@gmail.com> + + Update `fill-region-as-paragraph-semlf' to follow fill.el protocols + + Update the `fill-region-as-paragraph-semlf' function to follow the + `fill-region-as-paragraph-function' protocol. This allows us to + reimplement the `fill-paragraph-semlf' function using `fill-paragraph' + and `fill-region-as-paragraph-function'. + * lisp/textmodes/fill.el (fill-region-as-paragraph-semlf): Make this + function compatible with `fill-region-as-paragraph-function'. Avoid + narrowing. + (fill-paragraph-semlf): Reimplement using `fill-paragraph' and + `fill-region-as-paragraph-function'. + * test/lisp/textmodes/fill-tests.el (fill-test-semlf-fill-region): Add + test. + (fill-test-fill-paragraph-semlf-fill-paragraph-function): Remove test. + (fill-test-fill-paragraph-semlf, fill-test-semlf) + (fill-test-fill-paragraph-semlf-justify, fill-test-semlf-justify) + (fill-test-fill-paragraph-semlf-sentence-end-double-space) + (fill-test-semlf-sentence-end-double-space) + (fill-test-fill-paragraph-semlf-fill-column, fill-test-semlf-fill-column) + (fill-test-fill-paragraph-semlf-punctuation-marks) + (fill-test-semlf-punctuation-marks, fill-test-fill-paragraph-semlf-twice) + (fill-test-semlf-twice, fill-test-fill-paragraph-semlf-fill-prefix) + (fill-test-semlf-fill-prefix) + (fill-test-fill-paragraph-semlf-indented-block) + (fill-test-semlf-indented-block, fill-test-fill-paragraph-semlf-revert) + (fill-test-semlf-revert, fill-test-fill-paragraph-semlf-emacs-lisp-mode) + (fill-test-semlf-emacs-lisp-mode, fill-test-fill-paragraph-semlf-c-mode) + (fill-test-semlf-c-mode, fill-test-fill-paragraph-semlf-org-mode) + (fill-test-semlf-org-mode, fill-test-fill-paragraph-semlf-markdown-mode) + (fill-test-semlf-markdown-mode): User shorter function names consistent + with erts file names. + * test/lisp/textmodes/fill-resources/semlf-fill-region.erts: Add test + data. + * test/lisp/textmodes/fill-resources/semlf-fill-paragraph-function.erts: + Delete file. + * test/lisp/textmodes/fill-resources/semlf-emacs-lisp-mode.erts: Remove + newlines around indented block. + * doc/lispref/text.texi (Filling): Highlight that + `fill-region-as-paragraph-function' changes the behavior of + `fill-paragraph'. + +2025-06-30 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/autoinsert.el (auto-insert-alist): Don't quote `lambda` + + admin/gitmerge.el (gitmerge-resolve): Use `replace-region-contents` + +2025-06-29 Juri Linkov <juri@linkov.net> + + Better fix for ignoring 'tab-bar-lines' in daemon's initial frame + + * lisp/tab-bar.el (tab-bar--update-tab-bar-lines): + Revert '(not (daemonp))' to update 'default-frame-alist' + even in daemon mode (bug#78896). + + * lisp/frame.el (frame-notice-user-settings): For daemon's + initial frame don't modify the frame parameter 'tab-bar-lines'. + +2025-06-29 Juri Linkov <juri@linkov.net> + + Display SVG images inline in Gnus + + * lisp/gnus/mm-decode.el (mm-inline-media-tests): Add "image/svg+xml". + +2025-06-29 Sean Whitton <spwhitton@spwhitton.name> + + VC: Fix several START-REVISION versus LIMIT issues + + * lisp/vc/vc-git.el (vc-git-print-log): When LIMIT and + START-REVISION are both supplied, use START-REVISION as the + newest commit, and LIMIT as a base (problem was introduced in + the commit adding 'vc-diff-mergebase' and 'vc-log-mergebase'). + * lisp/vc/vc.el (vc-default-log-incoming) + (vc-default-log-outgoing): Fix order of START-REVISION and LIMIT + arguments passed to 'print-log' backend function. + (vc-log-mergebase): Fix order of START-REVISION and LIMIT + arguments passed to 'vc-print-log-internal'. + +2025-06-29 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + +2025-06-29 Michael Albinus <michael.albinus@gmx.de> + + Adapt Tramp versions + + * doc/misc/trampver.texi: + * lisp/net/trampver.el (tramp-version): Adapt Tramp versions. + +2025-06-29 Roi Martin <jroi.martin@gmail.com> + + Add variable `fill-region-as-paragraph-function' + + Add the variable `fill-region-as-paragraph-function' to provide + a way to override how functions like `fill-region' fill text. + * doc/lispref/text.texi (Filling): Document + `fill-region-as-paragraph-function' variable. + * doc/emacs/text.texi (Fill Commands): Reference + `fill-region-as-paragraph-function' variable. + * lisp/textmodes/fill.el (fill-region-as-paragraph-function): + Add variable. + (fill-region-as-paragraph): Convert into + `fill-region-as-paragraph-function' wrapper. + (fill-region-as-paragraph-default): Rename old + `fill-region-as-paragraph' function. + (fill-region-as-paragraph-semlf): Update calls to + `fill-region-as-paragraph-default'. + (fill-region): Add reference to `fill-region-as-paragraph-function' + in doc string. + * test/lisp/textmodes/fill-tests.el (fill-test-fill-region): Add + test case for the `fill-region' function. + * test/lisp/textmodes/fill-resources/fill-region.erts: Add test + data. (Bug#78816) + +2025-06-29 Zach Shaftel <zach@shaf.tel> + + Add new gv place definitions + + * lisp/emacs-lisp/gv.el (char-table-extra-slot, char-table-parent) + (default-toplevel-value, marker-insertion-type, process-plist) + (process-query-on-exit-flag, process-thread, lookup-key) + (window-prev-buffers, window-next-buffers, window-new-normal, font-get) + (charset-plist, get-charset-property): Add gv-setters. + (terminal-parameter): Fix the return value. (Bug#78291) + +2025-06-28 Po Lu <luangruo@yahoo.com> + + Properly invalidate XRender surfaces when only EmacsFrame is resized + + * src/xterm.c (handle_one_xevent): Drop XRender surfaces when + the frame widget is resized, rather than when the toplevel is. + (bug#77988) + +2025-06-28 Po Lu <luangruo@yahoo.com> + + Fix the DJGPP port + + * msdos/sedlibmk.inp (NEXT_AS_FIRST_DIRECTIVE_STDCKDINT_H) + (NEXT_STDCKDINT_H): Define to presumably unused values. + +2025-06-28 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 6299eb0fe54 bug#78901: [PATCH] js-ts-mode: Fix auto-mode-alist regexp + 982938363ad Merge branch 'emacs-30' of git.sv.gnu.org:/srv/git/emacs ... + e68ad70af6d Fix 'insert-directory' in Turkish language-environment + f805f513732 Fix job control in remote shell + 039ad15373d ; * doc/emacs/package.texi (Package Statuses): Clarify "n... + +2025-06-28 Pip Cet <pipcet@protonmail.com> + + Avoid extra output in Vprin1_to_string_buffer (bug#78842) + + print_error_message can throw after producing some output, so use + unwind-protect to ensure prin1-to-string-buffer is cleared. + + * src/print.c (erase_prin1_to_string_buffer): New. + (Ferror_message_string): Use it to catch errors thrown in + 'print_error_message'. + * test/src/print-tests.el (error-message-string-circular): Expand + test. + +2025-06-28 Manuel Giraud <manuel@ledu-giraud.fr> + + Avoid flicker when marking diary entries (bug#78861) + + * lisp/calendar/calendar.el (calendar-generate-window): Remove + historical and not really understood `sit-for' calls. + +2025-06-28 Protesilaos Stavrou <info@protesilaos.com> + + Define dedicated faces for the package.el mode line + + * lisp/emacs-lisp/package.el + (package-menu--set-mode-line-format): Apply the faces. + (package-mode-line-total, package-mode-line-installed) + (package-mode-line-to-upgrade, package-mode-line-new): Define + the faces. (Bug#78867) + +2025-06-28 Rahguzar <rahguzar@mailbox.org> + + * lisp/pcmpl-rpm.el: Generate completions for dnf5 + + (pcmpl-rpm-dnf-cache-file): Remove now unused variable. + (pcmpl-rpm--dnf-packages): Use dnf repoquery. + (pcomplete/dnf): Adjust regexps to allow for help format of + dnf5. New regexps works for both dnf4 and dnf5. Add + aliases for better subcommand completion. Better support + for dnf repoquery command. (Bug#78661) + +2025-06-28 Maxim Cournoyer <maxim@guixotic.coop> + + bug#78845: [PATCH 2/2] doc: Document desktop notifications for Gnus + + * doc/misc/gnus.texi (Notifications): Add section. + +2025-06-28 Sean Whitton <spwhitton@spwhitton.name> + + vc-dir-update: Update 'backend' VC properties + + * lisp/vc/vc-dir.el (vc-dir-update): Update 'backend' VC file + properties from ENTRIES. This resolves some issues relating to + cache invalidation. + * lisp/vc/vc-hooks.el (vc-backend): Improve docstring. + +2025-06-28 Maxim Cournoyer <maxim@guixotic.coop> + + bug#78845: [PATCH 1/2] doc: Update Texinfo menus. + + Generated from Emacs via M-x texinfo-all-menus-update, and dropping + changes made due to limitations of the tool. + +2025-06-28 Eli Zaretskii <eliz@gnu.org> + + Revert "function-put: signal error with non-symbol" + + This reverts commit a4ec9ca12969018cdf15b8cc713b3ba054326f99. + It caused unnecessary errors, see bug#78593. + +2025-06-28 Eli Zaretskii <eliz@gnu.org> + + Fix setting viper-d-com in viper + + * lisp/emulation/viper-cmd.el (viper-put-back, viper-Put-back): + Move setting the marker to after the call to + 'viper-set-destructive-command'. Suggested by Michael Scott + <scott@cs.rochester.edu>. (Bug#78220) + +2025-06-28 Elías Gabriel Pérez <eg642616@gmail.com> + + Add tool bar icons to package menu. (Bug#78601) + + * etc/images/package-menu/README: + * etc/images/package-menu/delete.xpm: + * etc/images/package-menu/execute.xpm: + * etc/images/package-menu/info.xpm: + * etc/images/package-menu/install.xpm: + * etc/images/package-menu/unmark.xpm: + * etc/images/package-menu/upgrade.xpm: + * etc/images/package-menu/url.xpm: + * etc/images/package-menu/delete.pbm: + * etc/images/package-menu/execute.pbm: + * etc/images/package-menu/info.pbm: + * etc/images/package-menu/install.pbm: + * etc/images/package-menu/unmark.pbm: + * etc/images/package-menu/upgrade.pbm: + * etc/images/package-menu/url.pbm: New files. + * lisp/emacs-lisp/package.el (package-menu--tool-bar-map): New + variable. + (package-menu-mode): Set tool bar. + * lisp/term/pgtk-win.el (x-gtk-stock-map): + * lisp/term/x-win.el (x-gtk-stock-map): Add new icons to alist. + +2025-06-28 Paul Eggert <eggert@cs.ucla.edu> + + Port varargs macros better to C99 + + C99 prohibits passing zero args to macro’s ‘...’. + * lib-src/seccomp-filter.c (RULE0): New macro, which is like RULE + except with zero args. All zero-arg uses of RULE changed to RULE0. + * src/comp.c (compile_function, Fcomp__init_ctxt, syms_of_comp): + Change ‘CALLN (Fmake_hash_table)’ to ‘Fmake_hash_table (0, NULL)’, + since CALLN requires at least two args in C99. + +2025-06-28 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + +2025-06-28 Stefan Monnier <monnier@iro.umontreal.ca> + + (peg-parse): Fix bug#78884 + + * lisp/progmodes/peg.el (peg-parse): Be more careful when + testing if a symbol is the name of an existing rule. Improve docstring. + + test/lisp/progmodes/peg-tests.el (peg-tests--peg-parse): New test. + +2025-06-28 Stefan Monnier <monnier@iro.umontreal.ca> + + (Finsert_file_contents): Refine commit d07af40d8826 + + * src/fileio.c (Finsert_file_contents): Inhibit ask-supersession + only if we're VISITing in a non-narrowed buffer (bug#78866). + + * test/src/fileio-tests.el (ert--tests-dir): New var. + (fileio-tests--insert-file-contents-supersession): New test. + +2025-06-28 Stefan Monnier <monnier@iro.umontreal.ca> + + cus-start.el: Reliably distinguish preload from nonpreload + + `dump-mode` can be nil even if we're about to dump (this is + done in the Android build), so don't rely on it to distinguish + if `cus-start` is loaded from `loadup.el` vs loaded during + a "normal run". + + * lisp/loadup.el (cus-start): Bind `cus-start--preload`. + * lisp/cus-start.el: <top-level>: Test it rather than `dump-mode`. + +2025-06-27 Sean Whitton <spwhitton@spwhitton.name> + + vc-annotate: Fix ever-lengthening buffer names + + * lisp/vc/vc-annotate.el (vc-annotate): Rewrite code to generate + the buffer name so that when switching from annotating one + revision to annotating another, we don't embed the old name of + the vc-annotate buffer directly into its new one (bug#78890). + +2025-06-27 Juri Linkov <juri@linkov.net> + + * lisp/tab-bar.el: Ignore daemon's initial frame (bug#78896). + + (tab-bar--update-tab-bar-lines): Don't set the frame parameter + 'tab-bar-lines' in daemon's initial frame because it messes up the + frames when 'format-mode-line' called from 'tab-bar-format-global' + on daemon's initial frame forces focus switch to daemon's initial + frame. Also don't set 'default-frame-alist' in daemon mode because + 'frame-notice-user-settings' copies the frame parameter 'tab-bar-lines' + from 'default-frame-alist' to daemon's initial frame. Here updating + 'default-frame-alist' is not much needed anyway since the frame + parameter 'tab-bar-lines' for new frames is set in 'make_terminal_frame' + and 'x-create-frame'. 'default-frame-alist' might be need only + to handle non-default 'tab-bar-show', but this can be handled by + 'toggle-frame-tab-bar' called from 'server-after-make-frame-hook'. + (toggle-frame-tab-bar): Document a useful case of calling it + from 'server-after-make-frame-hook'. + +2025-06-27 Sean Whitton <spwhitton@spwhitton.name> + + 'C-u C-x .' clears the fill prefix + + * lisp/textmodes/fill.el (set-fill-prefix): When called + interactively with a prefix argument, clear the fill prefix, + just like how 'C-u C-x C-n' clears the goal column. + * doc/emacs/text.texi (Fill Prefix): + * etc/NEWS: Document the change. + +2025-06-27 Sean Whitton <spwhitton@spwhitton.name> + + New user option vc-dir-save-some-buffers-on-revert + + * lisp/vc/vc-dir.el (vc-dir-save-some-buffers-on-revert): + New user option. + (vc-dir-refresh): Use it. + * etc/NEWS: Document it. + +2025-06-26 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/vc/smerge-mode.el (smerge--refine-highlight-change): Fix misalignment + +2025-06-26 Eli Zaretskii <eliz@gnu.org> + + Fix *Help* text when a command is bound to a single key + + * lisp/help-fns.el (help-fns--key-bindings): Don't insert + redundant period. (Bug#78905) + +2025-06-26 Jim Porter <jporterbugs@gmail.com> + + When making a readable page in EWW, include the <title> and similar tags + + * lisp/net/eww.el (eww--walk-readability, eww-readable-dom): New + functions. + (eww-display-html): Call 'eww-readable-dom'. + (eww-readable): Call 'eww-readable-dom'. Don't copy over 'eww-data' + properties that our new readable page can handle on its own. + (eww-score-readability): Rewrite in terms of 'eww--walk-readability'. + Make obsolete. + (eww-highest-readability): Make obsolete. + + * test/lisp/net/eww-tests.el (eww-test--lots-of-words) + (eww-test--wordy-page): New variables... + (eww-test/readable/toggle-display): ... use them. + (eww-test/readable/default-readable): Make sure that the readable page + includes the <title> and <link> tags (bug#77299). + +2025-06-25 James Cherti <contact@jamescherti.com> (tiny change) + + Fix yaml-ts-mode comment-start-skip to improve commenting/uncommenting + + * lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode): Fix 'comment-start-skip' + value to resolve an issue when commenting/uncommenting using the + 'comment-or-uncomment-region' function. The previous 'comment-start-skip' + value left some "-" uncommented after commenting and uncommenting + multiple YAML indented blocks (bug#78892). + +2025-06-25 Juri Linkov <juri@linkov.net> + + Add alternative "ruby-lsp" to eglot-server-programs. + + * lisp/progmodes/eglot.el (eglot-server-programs): + Add "ruby-lsp" to eglot-alternatives for ruby-mode and ruby-ts-mode. + https://shopify.github.io/ruby-lsp/editors.html#emacs-eglot + +2025-06-25 Juri Linkov <juri@linkov.net> + + Improve treesit settings for python-ts-mode (bug#73404). + + * lisp/progmodes/python.el (python--thing-settings): + For the 'sexp' thing use all nodes except top-level + grouping nodes, comments and parens. Add the 'list' thing. + (python-ts-mode): Use setq-local for treesit-thing-settings. + Modify 'forward-sexp-function' and 'treesit-sexp-thing' + after calling 'treesit-major-mode-setup'. + +2025-06-25 Juri Linkov <juri@linkov.net> + + Fix usage of 'treesit-defun-type-regexp' in treesit-tests. + + * test/src/treesit-tests.el (treesit--ert-test-defun-navigation): + Replace 'treesit-defun-type-regexp' with + '(or treesit-defun-type-regexp 'defun)' that fixes the tests + for ts-modes that set up the 'defun' thing instead of + 'treesit-defun-type-regexp'. + +2025-06-25 Po Lu <luangruo@yahoo.com> + + Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/emacs + +2025-06-25 Po Lu <luangruo@yahoo.com> + + Attempt to fix initialization of startup variables on Android + + * lisp/cus-start.el (standard): Revert last change if (featurep + 'android), as Android systems perform dumping during the + initialization of the first user session. + +2025-06-25 Sean Whitton <spwhitton@spwhitton.name> + + Improve discoverability of using dumb-emacs-ansi terminal type + + * doc/emacs/misc.texi (Interactive Shell, Shell Options): + * lisp/comint.el (comint-terminfo-terminal): Mention setting + comint-terminfo-terminal to "dumb-emacs-ansi" when the system's + terminfo database contains a definition for that terminal type. + +2025-06-25 Elías Gabriel Pérez <eg642616@gmail.com> + + Allow automatically delete non-existent projects. (Bug#77566) + + * etc/NEWS: Announce changes. + * lisp/progmodes/project.el (project-prune-zombie-projects): New + user option. + (project-prune-zombies-default): New function. + (project-forget-zombie-projects): Rework. + (project--ensure-read-project-list, project-prompt-project-dir) + (project-prompt-project-name): Call + 'project-forget-zombie-projects' but inhibit its message. + +2025-06-24 Stefan Monnier <monnier@iro.umontreal.ca> + + cus-start.el: Fix bug#78637 + + * lisp/cus-start.el <toplevel>: Test `dump-mode` rather than + `after-init-time` for `custom-delayed-init-variables`. + +2025-06-24 Sean Whitton <spwhitton@spwhitton.name> + + Load site-start.el before early-init.el + + * lisp/startup.el (command-line): Load site-start.el before + early-init.el. + (site-run-file): + * doc/lispref/os.texi (Startup Summary, Init File): + * etc/NEWS: Document the change. + +2025-06-23 Andrea Corallo <acorallo@gnu.org> + + * Make native comp use lexbinding for sync compilations (bug#78818) + + * lisp/emacs-lisp/comp.el (comp--final): Use lexical-binding in the temp file. + +2025-06-23 Michael Albinus <michael.albinus@gmx.de> + + Fix Tramp scripts + + * lisp/net/tramp-sh.el (tramp-shell-file-name-all-completions) + (tramp-bundle-read-file-names): Fix scripts. + +2025-06-23 Alan Mackenzie <acm@muc.de> + + CC Mode: Remove workarounds for missing "\_<", "\_>" in XEmacs + + Also start using `symbols' as the PAREN argument to regexp-opt. + + lisp/progmodes/cc-defs.el (c-make-keywords-re): Simplify, + remove the redundant `appendable' value of the ADORN parameter, + use the `symbols' value of the PAREN argument to regexp. + (c-emacs-features): Test that "\_<" and "\_>" work in regexps + before allowing CC Mode to start. + + lisp/progmodes/cc-engine.el (c-looking-at-decl-block): When + GOTO-START is set, leave point at the _last_ Java annotation, + if any. Clarify this in the doc string. + (c-guess-basic-syntax CASE 5G): Replace a not needed t + GOTO-START argument to c-looking-at-decl-block with nil. + + lisp/progmodes/cc-langs.el (c-make-mode-syntax-table): Make the + syntax of ?@ in Java Mode symbol for processing annotations. + (c-opt-identifier-concat-key, c-opt-identifier-prefix-key) + (c-opt-after-id-concat-key, c-identifier-key) + (c-cpp-message-directives-re, c-cpp-include-key, c-pack-key) + (c-brace-stack-thing-key, c-brace-stack-no-semi-key): Replace + the `appendable' value of the ADORN argument to + c-make-keywords-re with t. + (c-annotation-re): New lang const and lang var. + (c-keywords-obarray): Replace an explicit (apply 'nconc (mapcar + ... )) with c--mapcan, now that the obscure bug with mapcan in + Emacs has been resolved. + + lisp/progmodes/cc-align.el (c-lineup-gnu-DEFUN-intro-cont) + (c-lineup-java-throws, c-snug-do-while) + lisp/progmodes/cc-awk.el (c-awk-pre-exp-alphanum-kwd-re) + (c-awk-after-if-for-while-condition-p) + (c-awk-after-function-decl-param-list) + (c-awk-after-continue-token) + (c-awk-after-rbrace-or-statement-semicolon) + (awk-font-lock-keywords) + lisp/progmodes/cc-cmds.el (c-defun-name-1) + lisp/progmodes/cc-engine.el (c-beginning-of-statement-1) + (c-forward-<>-arglist, c-forward-label, c-skip-conditional) + (c-looking-at-c++-lambda-expression, c-add-stmt-syntax) + (c-guess-basic-syntax CASE 11, CASE 12, CASE 13, CASE 15) + (CASE 5C.3, CASE 5D.4, CASE 7D) + lisp/progmodes/cc-fonts.el (c-cpp-matchers) + (c-basic-matchers-before, c-font-lock-declarations) + (c-font-lock-c++-modules, c-simple-decl-matchers) + (c-complex-decl-matchers, c-basic-matchers-after) + lisp/progmodes/cc-langs.el (c-paragraph-start) + (c-stmt-block-only-keywords-regexp) + (c-type-decl-prefix-keywords-key, c-type-decl-prefix-key) + (c-type-decl-suffix-key, c-known-type-key) + (c-enum-clause-introduction-re) + lisp/progmodes/cc-menus.el (cc-imenu-c++-generic-expression) + lisp/progmodes/cc-vars.el (c-make-noise-macro-regexps) + (c-make-macro-with-semi-re): Replace explicit "\<" and "\>" + with "\_<" and "\_>". Replace explicit specification of + non-'_' character after word end with "\_>". Replace + concatenation of "\<" and "\>" with regexps with (regexp-opt + ... 'symbols). Use (regexp-opt ... 'symbols) in general. + +2025-06-23 Stephen Berman <stephen.berman@gmx.net> + + Optionally suppress recentf open file messages (bug#78666) + + * etc/NEWS: Announce new user option. + + * lisp/recentf.el (recentf-suppress-open-file-help): New defcustom. + (recentf-dialog-goto-first): Use it; otherwise, make calling + 'widget-move' suppress message only for interactive recentf use. + (recentf-forward, recentf-backward): New commands, wrappers around + 'widget-{forward, backward}' using 'recentf-suppress-open-file-help'. + (recentf-dialog): Use them in locally remapped key bindings. + + * lisp/wid-edit.el (widget-forward, widget-backward): Add optional + argument to suppress :help-echo message and pass it to 'widget-move'. + +2025-06-23 Peter Oliver <git@mavit.org.uk> + + Link to Tree-sitter parser sources from compatibility report + + * admin/tree-sitter/treesit-admin.el + (treesit-admin--generate-compatibility-report): Add a link to the source + URL (bug#78848). + +2025-06-23 Peter Oliver <git@mavit.org.uk> + + Show also tagged versions on Tree-sitter compatibility report + + * admin/tree-sitter/compat-template.html: Accommodate two tables. + * admin/tree-sitter/treesit-admin.el + (treesit-admin--find-latest-compatible-revision): Pass through new arg + REVISION-TYPE. + (treesit-admin--last-compatible-grammar-for-modes): Optionally iterate + over tagged rather than all commits. + (treesit-admin--generate-compatibility-report): Generate a second table, + showing only tagged commits (bug#78848). + +2025-06-23 Peter Oliver <git@mavit.org.uk> + + New function treesit--language-git-version-tags + + * lisp/treesit.el (treesit--language-git-version-tags): New function to + list version tags for a Tree-sitter parser Git repository (bug#78848). + +2025-06-23 Stefan Monnier <monnier@iro.umontreal.ca> + + (smerge-refine-shadow-cursor): New variable and face (bug#78806) + + * lisp/vc/smerge-mode.el (smerge-refine-shadow-cursor): New variable + and face. + (smerge-refine-regions): Add `cursor-sensor-functions` property + to the covering overlays. + (smerge--refine-at-right-margin-p, smerge--refine-shadow-cursor): + New functions. + (smerge--refine-other-pos): New function, extracted from + `smerge-refine-exchange-point`. + (smerge-refine-exchange-point): Use it. + (smerge--refine-highlight-change): Add thin + highlighted space for insertion/deletion positions. + + * lisp/emacs-lisp/cursor-sensor.el (cursor-sensor--detect): + Run functions for `moved` events. Demote errors. + (cursor-sensor-mode): Adjust docstring accordingly. + + * doc/lispref/text.texi (Special Properties) <cursor-sensor-functions>: + Mention the new `moved` direction. + +2025-06-22 Jim Porter <jporterbugs@gmail.com> + + When navigating to anchor targets in EWW, retain 'eww-data' properties + + Previously, navigating to an in-page anchor target would clear + 'eww-data', removing many important properties like the original source + and the DOM. Among other things, this prevented enabling/disabling + readable mode. + + * lisp/net/eww.el (eww-follow-link): Copy previous 'eww-data'. + +2025-06-22 Michael Albinus <michael.albinus@gmx.de> + + Tramp: Cache also `file-executable-p' in `file-name-all-completions' + + * lisp/net/tramp-archive.el (tramp-archive-autoload-file-name-regexp): + Fix comment. + + * lisp/net/tramp-sh.el (tramp-perl-file-name-all-completions): + Cache also `file-executable-p'. Suggested by <mail@knazarov.com>. + (tramp-shell-file-name-all-completions): New script. + (tramp-bundle-read-file-names): Fix for special characters. Cache + also `file-executable-p'. + (tramp-sh-handle-file-name-all-completions): Unify different cases. + + * lisp/net/tramp.el (with-tramp-suspended-timers, without-remote-files): + Fix debug spec. + +2025-06-22 Eli Zaretskii <eliz@gnu.org> + + Fix 'c-ts-mode' indentation when the style is defined as a function + + * lisp/progmodes/c-ts-mode.el (c-ts-mode, c++-ts-mode): Handle the + case where 'c-ts-mode-indent-style' is a function. (Bug#78814) + +2025-06-22 Elías Gabriel Pérez <eg642616@gmail.com> + + Pretiffy package-menu (Bug#78794) + + Add package-menu mode-line which displays information about: + total number of packages installed, total number of packages + from all the packages archive, total number of packages to + upgrade and total number of new packages available. + Highlight packages marked for installation or deletion. + * lisp/emacs-lisp/package.el (package-menu-mode): Add package-menu + mode-line format to 'mode-line-misc-info'. + (package-mark-install-line, package-mark-delete-line): New faces. + (package-menu--overlay-line, package-menu--remove-overlay) + (package-menu--set-mode-line-format): New functions. + (package-menu-mark-delete, package-menu-mark-install) + (package-menu-mark-unmark, package-menu-backup-unmark) + (package-menu-mark-obsolete-for-deletion): Tweak for set/unset the + overlays. + (package-menu-mode-line-format, package-menu-mode-line-info): New + buffer-local variables. + (list-packages): Add 'package-menu--set-mode-line-format' to + 'package--post-download-archives-hook'. + + * etc/NEWS: Announce changes. + +2025-06-21 Michael Albinus <michael.albinus@gmx.de> + + * test/infra/gitlab-ci.yml (test-eglot): Fix EMACS_EXTRAOPT. + +2025-06-21 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + a2bfce5d2a7 ; Fix customization and doc strings in pp.el + +2025-06-21 Manuel Giraud <manuel@ledu-giraud.fr> + + Avoid rebuilding a static alist inside a loop + + * lisp/calendar/diary-lib.el (diary-mark-entries-1): Build + months-alist outside of the loop. (Bug#78779) + +2025-06-21 Elías Gabriel Pérez <eg642616@gmail.com> + + Support strings for electric pairs (bug#78053) + + This add support for insert string pairs in 'electric-pairs-mode'. + * lisp/elec-pair.el (electric-pair-pairs) + (electric-pair-text-pairs): Add new defcustom types. + (electric-pair-syntax-info) + (electric-pair-post-self-insert-function): Add support for + strings. + + * etc/NEWS: Announce changes. + + * test/lisp/electric-tests.el: Add new tests. + +2025-06-21 Eli Zaretskii <eliz@gnu.org> + + Fix setting custom 'c++-ts-mode' indent style + + * lisp/progmodes/c-ts-mode.el (c-ts-mode-set-style): Fix a typo. + (Bug#78814) + +2025-06-21 Eli Zaretskii <eliz@gnu.org> + + Avoid segfault when profiling Lisp programs with threads + + * src/eval.c (backtrace_top): Don't segfault if current_thread is + NULL. (Bug#76970) + +2025-06-21 Zach Shaftel <zach@shaf.tel> + + Fix byte-compilation of defalias with a constant macro cons pair + + * lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-defalias): + Quote the function name in '(macro . function-name), since we eval + it later. + * test/lisp/emacs-lisp/bytecomp-tests.el + (test-eager-load-macro-expand-defalias): New test. + (Bug#78792) + +2025-06-21 Jostein Kjønigsen <jostein@kjonigsen.net> + + python-ts-mode: Improve fontification + + python--treesit-settings: Fontification based on selectors & code-conventions + + - Constructor: Fontified as type, not function-call. + - Typed default parameters + - Fontify kwargs in function calls as property-use. Differentiate from + variable-use (passed in arguments) + +2025-06-21 Manuel Giraud <manuel@ledu-giraud.fr> + + Fix bold or underline of underscores (bug#78839) + + * lisp/man.el (Man-fontify-manpage): Fix the "_\b_" case. + +2025-06-21 Eli Zaretskii <eliz@gnu.org> + + Fix 'split-string' when TRIM is used + + * lisp/subr.el (split-string): Support the case where STRING + begins with a match for SEPARATORS, and a match for SEPARATORS + also matches TRIM. Doc fix. (Bug#78690) + + * test/lisp/subr-tests.el (subr-test-split-string): New test. + +2025-06-21 Stefan Monnier <monnier@iro.umontreal.ca> + + (peg--merge-error) <guard>: Add missing method + + Also clarify that the package requires at least Emacs-25. + + * lisp/progmodes/peg.el (peg--merge-error) <guard>: Add missing method. + +2025-06-20 Juri Linkov <juri@linkov.net> + + Use keyword :commit with full hashes for treesit-language-source-alist. + + * lisp/treesit.el (treesit-language-source-alist): + Document the format that uses keywords. + (treesit--install-language-grammar-1): Remove args + 'revision', 'source-dir', 'cc', 'c++', 'commit'. + Use 'args' to process the keywords, and use the remaining + list as the previous list of arguments. + (treesit--install-language-grammar-1): Let-bind + 'treesit--install-language-grammar-full-clone' and + 'treesit--install-language-grammar-blobless' to t + when 'commit' is non-nil (bug#78542). + + * lisp/progmodes/c-ts-mode.el: + * lisp/progmodes/cmake-ts-mode.el: + * lisp/progmodes/csharp-mode.el: + * lisp/progmodes/dockerfile-ts-mode.el: + * lisp/progmodes/elixir-ts-mode.el: + * lisp/progmodes/go-ts-mode.el: + * lisp/progmodes/heex-ts-mode.el: + * lisp/progmodes/java-ts-mode.el: + * lisp/progmodes/js.el: + * lisp/progmodes/json-ts-mode.el: + * lisp/progmodes/php-ts-mode.el: + * lisp/progmodes/python.el: + * lisp/progmodes/ruby-ts-mode.el: + * lisp/progmodes/rust-ts-mode.el: + * lisp/progmodes/sh-script.el: + * lisp/progmodes/typescript-ts-mode.el: + * lisp/textmodes/css-mode.el: + * lisp/textmodes/html-ts-mode.el: + * lisp/textmodes/markdown-ts-mode.el: + * lisp/textmodes/toml-ts-mode.el: + * lisp/textmodes/yaml-ts-mode.el: + Use the keyword :commit with full hashes instead of tags + in 'treesit-language-source-alist'. + + * lisp/treesit-x.el (define-treesit-generic-mode): + Simplify the keyword :copy-queries. + (gitattributes-generic-ts-mode, liquid-generic-ts-mode): + Add keywords :commit and :copy-queries to :source. + + * admin/tree-sitter/treesit-admin.el + (treesit-admin--unversioned-treesit-language-source-alist): + Handle :revision and :commit as well. + (treesit-admin--find-latest-compatible-revision): + Process the keywords in the recipe. + +2025-06-20 Michael Albinus <michael.albinus@gmx.de> + + Improve eglot tests on emba + + * test/infra/gitlab-ci.yml (test-eglot): Use packages company and + yasnippet. + + * test/lisp/progmodes/eglot-tests.el (eglot--call-with-timeout): + Skip on emba in case of timeout. (Bug#78730) + +2025-06-20 Pip Cet <pipcet@protonmail.com> + + Revert "Avoid excessively large backtraces in ert-tests (bug#71988)" + + This reverts commit 0264ab11181b1d49d8f07186599396d503f24d1f. + +2025-06-20 Robert Pluim <rpluim@gmail.com> + + Make tls tests use random port + + * test/lisp/net/network-stream-tests.el (server-process-filter): + Remove 'message' call. + (make-tls-server): Try random ports until we find one that's + unused and use it. Adjust all callers. + +2025-06-20 Robert Pluim <rpluim@gmail.com> + + Fix echo-server-with-dns for really broken systems + + *test/lisp/net/network-stream-tests.el + (network-test--resolve-system-name): Check to see if we get any + address result at all (looking at you macOS). + +2025-06-20 Robert Pluim <rpluim@gmail.com> + + Fix echo-server-with-dns test + + This test wasn't being run because the check for DNS was + inverted. + + * test/lisp/net/network-stream-tests.el (echo-server-with-dns): + Use 'skip-when' instead of 'ert-skip'. + +2025-06-20 Pip Cet <pipcet@protonmail.com> + + Avoid excessively large backtraces in ert-tests (bug#71988) + + * test/lisp/emacs-lisp/ert-tests.el (ert-test-run-tests-batch-expensive): + Temporarily make `cl-print-object' not print out vectors while running + the test. + +2025-06-20 Martin Rudalics <rudalics@gmx.at> + + Have 'split-window' forget previous window height (Bug#78835) + + * lisp/window.el (split-window): When WINDOW has a + 'quit-restore' parameter that specifies a previous height to + restore, remove that when splitting vertically. It does more + harm than good now (Bug#78835). + +2025-06-20 Pip Cet <pipcet@protonmail.com> + + Make cl-random behave consistently for unusual arguments (bug#75105) + + The old behavior was for (cl-random -1.0e+INF) to return NaN in about + one in eight million calls, and -1.0e+INF otherwise. Other unusual + arguments were handled inconsistently as well. + + * lisp/emacs-lisp/cl-extra.el (cl-random): Handle positive finite + arguments consistently, error for nonpositive or infinite arguments. + * test/lisp/emacs-lisp/cl-extra-tests.el (cl-extra-test-random): New + test. + +2025-06-19 Peter Oliver <git@mavit.org.uk> + + Eliminate redundant variable treesit-admin--builtin-language-sources + + Nowadays, each mode populates treesit-language-source-alist when the + mode is required; we do not need to duplicate the information. + + * admin/tree-sitter/treesit-admin.el + (treesit-admin--builtin-language-sources) + (treesit-admin-verify-major-mode-queries) + (treesit-admin--generate-compatibility-report): Eliminate variable + treesit-admin--builtin-language-sources. + (treesit-admin--generate-compatibility-report): bash-ts-mode is “clever” + and switches back to sh-mode if it thinks the current buffer does not + contain a Bash script (bug#78747). + (treesit-admin--builtin-modes): Add missing modes. + (treesit-admin--builtin-features): New variable, telling us which + features to require to populate treesit-language-source-alist. + (treesit-admin--populated-treesit-language-source-alist): New function, + to add everything we know to treesit-language-source-alist. + (treesit-admin--unversioned-treesit-language-source-alist): Return a + copy of treesit-language-source-alist with the version requirements + removed. + * test/infra/Dockerfile.emba: Make use of + treesit-admin--populated-treesit-language-source-alist (bug#78748). + +2025-06-19 Juri Linkov <juri@linkov.net> + + Fix repeat-echo-message-string for keys with hints (bug#78797). + + * lisp/repeat.el (repeat-echo-message-string): For one character + use it to format hints. For multi-key sequence first print it, + then use the last character to format hints in parenthesis. + + * test/lisp/repeat-tests.el (repeat-tests-another-repeat-map): Add hints. + (repeat-tests-hints): Add test. + +2025-06-19 shipmints <shipmints@gmail.com> + + * admin/MAINTAINERS: Added myself as the vtable.el maintainer. + +2025-06-18 Michael Albinus <michael.albinus@gmx.de> + + Show test name in ERT progress bar + + * lisp/emacs-lisp/ert.el + (ert--results-progress-bar-button-help-echo): New defun. + (ert--results-progress-bar-button): Use it. + +2025-06-18 shipmints <shipmints@gmail.com> + + Make savehist timer actually repeat + + * lisp/savehist.el (savehist--manage-timer): Correct the + arguments to 'run-with-timer'. Suggestion from Stéphane Marks + <shipmints@gmail.com>. (Bug#78820) + +2025-06-18 Pip Cet <pipcet@protonmail.com> + + Remove eieio's ...-list-p predicate (bug#78782) + + There seem to be no remaining callers of this function, which has not + been working for a while. + + * lisp/emacs-lisp/eieio-core.el (eieio-backward-compatibility): Don't + mention "-list-p" predicate. + (eieio-defclass-autoload): Don't autoload predicate. + (eieio-defclass-internal): Remove code to generate list-p predicate. + +2025-06-18 Yuan Fu <casouri@gmail.com> + + Use treesit-thing-settings in python-ts-mode + + * lisp/progmodes/python.el (python--thing-settings): New variable. + (python-ts-mode): Setup treesit-thing-settings. + +2025-06-18 Yuan Fu <casouri@gmail.com> + + Remove obsolete tree-sitter type-regexp vars + + * lisp/treesit.el (treesit-text-type-regexp): + (treesit-sexp-type-regexp): + (treesit-sentence-type-regexp): Remove variables. + +2025-06-18 Paul Eggert <eggert@cs.ucla.edu> + + process-attributes uses CLOCK_BOOTTIME for uptime + + * src/sysdep.c (get_host_uptime) [GNU_LINUX || CYGWIN || __ANDROID__]: + New function, replacing get_host_boot_time. + Use CLOCK_BOOTTIME instead of inspecting /proc/stat. + All callers changed. This should be an even better way to fix Bug#63496. + +2025-06-17 Paul Eggert <eggert@cs.ucla.edu> + + process-attributes uses /proc/stat for boot time + + With a Linux kernel, use /proc/stat rather than get_boot_time + to get boot time, since when Emacs is running in a container + we want the underlying host boot time, not the container boot time. + This should be a better way to fix Bug#63496. + * src/sysdep.c: Do not include boot-time.h. + (get_host_boot_time) [GNU_LINUX || CYGWIN || __ANDROID__]: + New function. + (system_process_attributes) [GNU_LINUX || CYGWIN || __ANDROID__]: + Use it instead of get_boot_time. + +2025-06-17 Mattias Engdegård <mattiase@acm.org> + + Fix function arity check for noncompiled callees (bug#78685) + + This fixes a regression from Emacs 29, and is the second attempt after + the later reverted 8b0f5b0597. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-fdefinition): + Make it work for functions that aren't compiled. + * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--f): + (bytecomp-tests--warn-arity-noncompiled-callee): Add test. + +2025-06-17 Mattias Engdegård <mattiase@acm.org> + + * doc/lispref/functions.texi (Closures): Rewrite outdated text. + +2025-06-17 Stephen Berman <stephen.berman@gmx.net> + + Fix regression in 'kill-this-buffer' (bug#78809) + + This restores the ability to use 'kill-this-buffer' when a + keyboard event pops up the Global Menu. Instead of raising an + error if the command was not called by a mouse event, an error is + now raised if it was not called from a menu or a tool bar. + + * lisp/menu-bar.el (kill-this-buffer): Remove optional EVENT from + argument list and "e" code from interactive spec. Adjust doc + string. Use 'last-command-event' to determine if command was + called from a menu or a tool bar. Use 'event--posn-at-point' in + test for frame. + + * lisp/net/eudc-hotlist.el (eudc-hotlist-quit-edit): + * lisp/net/eudc.el (eudc-display-records, eudc-query-form): + * lisp/vc/pcvs.el (cvs-mode-map): Replace uses of + 'kill-this-buffer' by 'kill-current-buffer'. + +2025-06-17 Eli Zaretskii <eliz@gnu.org> + + Prevent redisplay slowdown with non-zero vscroll + + * src/xdisp.c (try_scrolling): Don't loop when the + partially-visible cursor line is at the top of the window. This + looping are pointless, and just makes redisplay slow for no reason. + (Bug#78766) + +2025-06-17 Andrea Corallo <acorallo@gnu.org> + + Make nativecomp don't error when encountering undeclared types (bug#6573) + + * test/src/comp-resources/comp-test-funcs.el (comp-test-76573-1-f): New + function. + * lisp/emacs-lisp/comp-cstr.el (comp-supertypes): Don't error if 'type' + is unknown. + +2025-06-16 Stefan Monnier <monnier@iro.umontreal.ca> + + register.el: Fix use of `cl-find-class` + + `declare-function` doesn't cut it because the function can get + called without having loaded `cl-extra` beforehand. + Use `cl--find-class` instead, since that one gets inlined. + + * lisp/register.el: Require `cl-macs`. + (register--get-method-type): Use `cl--find-class`. + (cl-find-class): Don't declare. + +2025-06-16 James Thomas <jimjoe@gmx.net> + + Add repeat map for tab-bar-history (bug#78804) + + Add repeat map similar to that of winner-mode (to which + tab-bar-history is an alternative). + + * lisp/tab-bar.el (tab-bar-history-repeat-map): Make the change. + +2025-06-16 Paul Eggert <eggert@cs.ucla.edu> + + process-attributes now uses get_boot_time + + I noticed this issue while looking into Bug#63496. + GNU Emacs does not infer the boot time consistently on GNU/Linux + and similar platforms: android_notifications_notify_1 and + get_boot_sec use Gnulib’s boot-time module, but process-attributes + has idiosyncratic code that evidently predates that module. + The idiosyncratic code returns an unstable etime, which is a minor bug. + Simplify process-attributes by just using Gnulib. + This returns a stable etime. + It may also fix Bug#63496; if not, we can fix Gnulib later. + * src/sysdep.c: Include <boot-time.h>. + (get_up_time) [GNU_LINUX || CYGWIN || __ANDROID__]: Remove. + (system_process_attributes) [GNU_LINUX || CYGWIN || __ANDROID__]: + Use get_boot_time instead of get_up_time. + +2025-06-15 Mattias Engdegård <mattiase@acm.org> + + * src/bytecode.c (exec_byte_code): Remove superfluous condition + + Bytecode should never be able to set anything to Qunbound because that + value is not accessible from Lisp. Found by Pip Cet. + +2025-06-15 Mattias Engdegård <mattiase@acm.org> + + * src/fns.c (mapcar1): Less lax type checking + + Previously, mapcar etc would crash or return nonsense when passed a + record. Found by Pip Cet. + +2025-06-14 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + df3fb94f091 Insert missing step to make use of directory tracking OSC... + 1bed2949583 * lisp/keymap.el (keymap-set): Refer to 'key-description'... + 941158fc133 Support new tree-sitter grammar filename format (bug#78754) + 888f846d377 Fix crash when evaluating "(signal nil 5)" (bug#78738) + 51b9e92ab8e Merge branch 'emacs-30' of git.savannah.gnu.org:/srv/git/... + c0a913ea4f3 ; * doc/lispref/modes.texi (Font Lock Basics): Remove old... + 37de076017a Adapt emba integration (don't merge) + +2025-06-14 Steven Allen <steven@stebalien.com> + + Improve documentation of the internal Lisp_Process->status field + + Contrary to the existing documentation here, the value of this + field cannot be the symbols open or closed. Furthermore, this + field is never set to "stop" for network connections. + * src/process.h (Lisp_Process): Improve/fix documentation of the + 'status' field. (Bug#78784) + +2025-06-14 Zach Shaftel <zach@shaf.tel> + + Fix segfault in profiler-cpu-log and profiler-memory-log (bug#78763) + + * src/profiler.c (export_log): Check if a log has been allocated first, + and return nil if it hasn't. + (Fprofiler_cpu_log, Fprofiler_memory_log): Doc fix. + * test/src/profiler-tests.el (profiler-tests-cpu-profiler) + (profiler-tests-memory-profiler): New tests. + +2025-06-14 Steven Allen <steven@stebalien.com> + + mailcap: Treat .ics files as text/calendar + + This ensures iCalendar attachments are always displayed correctly + (via `gnus-icalendar-mm-inline'), even when they have an incorrect + MIME type (looking at you Google Calendar). + * lisp/net/mailcap.el (mailcap-mime-extensions): Add a mapping from ".ics" + to "text/calendar". (Bug#78764) + +2025-06-14 Jacob S. Gordon <jacob.as.gordon@gmail.com> + + world-clock: Add user option to control order of entries + + * lisp/time.el (world-clock-sort-order): Add user option. + (world-clock--sort-entries): Add auxiliary sorting function. + (world-clock-display): Sort entries based on the new user option. + (Bug#78678) + +2025-06-14 Jacob S. Gordon <jacob.as.gordon@gmail.com> + + calc: Allow strings with character codes above Latin-1 + + The current behavior of the functions 'calc-display-strings', + 'strings', and 'bstrings' is to skip any vector containing + integers outside the Latin-1 range (0x00-0xFF). We introduce a + custom variable 'calc-string-maximum-character' to replace this + hard-coded maximum, and to allow vectors containing higher + character codes to be displayed as strings. The default value + of 0xFF preserves the existing behavior. + + * lisp/calc/calc.el (calc-string-maximum-character): Add custom + variable 'calc-string-maximum-character'. + * lisp/calc/calccomp.el (math-vector-is-string): Replace hard-coded + maximum with 'calc-string-maximum-character', and the 'natnump' + assertion with 'characterp'. The latter guards against the + maximum being larger than '(max-char)', but not on invalid types of + the maximum such as strings. + + * test/lisp/calc/calc-tests.el (calc-math-vector-is-string): Add + tests for 'math-vector-is-string' using different values of + 'calc-string-maximum-character'. + + * doc/misc/calc.texi (Quick Calculator, Strings, Customizing Calc): + Add variable definition for 'calc-string-maximum-character' and + reference thereof when discussing 'calc-display-strings'. + Generalize a comment about string display and availability of 8-bit + fonts. + (Bug#78528) + +2025-06-14 Roi Martin <jroi.martin@gmail.com> + + Add semantic linefeed support for paragraph filling + + * lisp/textmodes/fill.el (fill-region-as-paragraph-semlf): Add function + to fill a region using semantic linefeeds as if it were a single + paragraph. + (fill-paragraph-semlf): Add function to fill paragraph using semantic + linefeeds. + * test/lisp/textmodes/fill-tests.el + (fill-test-fill-region-as-paragraph-semlf) + (fill-test-fill-paragraph-semlf) + (fill-test-fill-paragraph-semlf-fill-paragraph-function) + (fill-test-fill-paragraph-semlf-justify) + (fill-test-fill-paragraph-semlf-sentence-end-double-space) + (fill-test-fill-paragraph-semlf-fill-column) + (fill-test-fill-paragraph-semlf-punctuation-marks) + (fill-test-fill-paragraph-semlf-twice) + (fill-test-fill-paragraph-semlf-fill-prefix) + (fill-test-fill-paragraph-semlf-indented-block) + (fill-test-fill-paragraph-semlf-revert) + (fill-test-fill-paragraph-semlf-emacs-lisp-mode) + (fill-test-fill-paragraph-semlf-c-mode) + (fill-test-fill-paragraph-semlf-org-mode) + (fill-test-fill-paragraph-semlf-markdown-mode): Add tests. + * test/lisp/textmodes/fill-resources/semlf-c-mode.erts: + * test/lisp/textmodes/fill-resources/semlf-emacs-lisp-mode.erts: + * test/lisp/textmodes/fill-resources/semlf-fill-column.erts: + * test/lisp/textmodes/fill-resources/semlf-fill-paragraph-function.erts: + * test/lisp/textmodes/fill-resources/semlf-fill-prefix.erts: + * test/lisp/textmodes/fill-resources/semlf-fill-region-as-paragraph.erts: + * test/lisp/textmodes/fill-resources/semlf-indented-block.erts: + * test/lisp/textmodes/fill-resources/semlf-justify.erts: + * test/lisp/textmodes/fill-resources/semlf-markdown-mode.erts: + * test/lisp/textmodes/fill-resources/semlf-org-mode.erts: + * test/lisp/textmodes/fill-resources/semlf-punctuation-marks.erts: + * test/lisp/textmodes/fill-resources/semlf-revert.erts: + * test/lisp/textmodes/fill-resources/semlf-sentence-end-double-space.erts: + * test/lisp/textmodes/fill-resources/semlf-twice.erts: + * test/lisp/textmodes/fill-resources/semlf.erts: Add test data. (Bug#78561) + +2025-06-14 Philip Kaludercic <philipk@posteo.net> + + * doc/misc/rcirc.texi: Rephrase recent addition + + https://lists.gnu.org/archive/html/emacs-devel/2025-06/msg00184.html + +2025-06-14 Eli Zaretskii <eliz@gnu.org> + + Support 'C-g C-g C-g' "urgent quit" feature on MS-Windows + + * src/w32fns.c (post_character_message): Support triple-C-g. + (Bug#78737) + +2025-06-13 Dmitry Gutov <dmitry@gutov.dev> + + New user option: vc-allow-async-diff + + Centralize the control for whether 'vc-diff' is asynchronous + across the backends, while also allowing 'vc-BACKEND-diff' to be + called asynchronously when needed. Previously in bug#21969. + + * lisp/vc/vc.el (vc-allow-async-diff): New user option. + + * lisp/vc/vc.el (vc-version-diff, vc-diff, vc-diff-mergebase) + (vc-root-diff): Obey it. + + * lisp/vc/log-view.el (log-view-diff-common): Same. + + * lisp/vc/vc-annotate.el + (vc-annotate-show-diff-revision-at-line-internal): Same. + + * lisp/vc/vc-git.el (vc-git-diff): Follow the ASYNC argument. + + * lisp/vc/vc-hg.el (vc-hg-diff): Same. + + * lisp/vc/vc-rcs.el (vc-rcs-diff): Same. + +2025-06-12 Juri Linkov <juri@linkov.net> + + Add 'treesit-sexp-thing' to use instead of 'treesit-sexp-type-regexp'. + + * lisp/treesit.el (treesit-sexp-thing): New variable to use + instead of 'treesit-sexp-type-regexp'. + (treesit-sexp-thing-down-list): Rename from 'treesit-sexp-type-down-list'. + (treesit-sexp-thing-up-list): Rename from 'treesit-sexp-type-up-list'. + (treesit-forward-sexp, treesit--forward-list-with-default) + (treesit-down-list, treesit-up-list): Update references to the + above variables. + (treesit-cycle-sexp-thing): Rename from 'treesit-cycle-sexp-type'. + + * lisp/progmodes/elixir-ts-mode.el (elixir-ts-mode): Update same variables. + + * lisp/progmodes/heex-ts-mode.el (heex-ts-mode): Set these variables + instead of calling the function that sets them. + + * lisp/progmodes/python.el (python-ts-mode): Check if variables + 'treesit-sentence-type-regexp' and 'treesit-sexp-type-regexp' are bound. + + https://lists.gnu.org/archive/html/emacs-devel/2025-06/msg00182.html + +2025-06-12 Sean Whitton <spwhitton@spwhitton.name> + + vc-finish-logentry: Fix syncing buffers: include whole fileset + + * lisp/vc/vc-dispatcher.el (log-edit-vc-backend) + (vc-buffer-sync-fileset): Declare. + (vc-finish-logentry): Call vc-buffer-sync-fileset instead of + just vc-buffer-sync. + +2025-06-12 Sean Whitton <spwhitton@spwhitton.name> + + log-edit-diff-fileset: Pass NOT-ESSENTIAL non-nil to vc-diff + + * lisp/vc/log-edit.el (log-edit-diff-fileset): Pass + NOT-ESSENTIAL non-nil to vc-diff. + +2025-06-12 Sean Whitton <spwhitton@spwhitton.name> + + Replace vc-async-checkin-backends with a backend properties function + + * lisp/vc/vc-git.el (vc-git-async-checkins): + * lisp/vc/vc-hg.el (vc-hg-async-checkins): + * lisp/vc/vc.el (vc-default-async-checkins): New functions. + (vc-checkin): Use them. + (vc-async-checkin-backends): Delete. + +2025-06-12 Stephane Zermatten <szermatt@gmx.net> + + Handle OSC sequences in term (bug#78263) + + Handlers can be registered to term-osc-handler, which by defaults, + supports OSC 0, 2, 7 and 8, using handlers defined in ansi-osc. + Unknown OSC sequences are ignored. + + * lisp/term.el (term-emulate-terminal): Handle OSC sequences. + (term-osc-handler): New configuration variable. + (term-control-seq-regexp): Extended regexp. + (term--osc-max-bytes): New private constant. + * lisp/ansi-osc.el (ansi-osc-handler): Handle OSC 0 like OSC 2. + * test/lisp/term-tests.el (term-ignore-osc, term-handle-osc) + (term-call-ansi-osc-handlers): New tests. + +2025-06-12 Paul Nelson <ultrono@gmail.com> + + Add simpler binds for calendar month/year navigation + + * lisp/calendar/calendar.el (calendar-mode-map): Add keybindings + '{' and '}' for month navigation, '[' and ']' for year + navigation (bug#78753). + * doc/emacs/calendar.texi (Calendar Unit Motion): Document + them. + +2025-06-11 Michael Albinus <michael.albinus@gmx.de> + + Make file-notify--call-handler more robust + + * lisp/filenotify.el (file-notify--call-handler): Make it more + robust. (Bug#78712) + +2025-06-11 Robert Pluim <rpluim@gmail.com> + + Normalize URL path correctly for http + + * lisp/url/url-http.el (url-http-create-request): Prepend "/" if + it's missing from the filename. (Bug#78640) + +2025-06-11 Alan Mackenzie <acm@muc.de> + + Amend CC Mode so that the test suite in XEmacs runs error free + + * lisp/progmodes/cc-awk.el (awk-font-lock-keywords): + Reformulate this using backquote and ,@. Only include the + entry for _" in Emacs. + + * lisp/progmodes/cc-defs.el (c--mapcan, c--set-difference) + c--intersection, c--macroexpand-all, c--delete-duplicates): No + longer use the existence of cl-lib.el as the criterion for + what to expand to. + (c-min-property-position): Use c-next-single-property-change + rather than next-single-property-change. This now works in + XEmacs. + + * lisp/progmodes/cc-engine.el + (c-invalidate-sws-region-after-del) + (c-invalidate-sws-region-after-ins, c-forward-sws) + (c-backward-sws, c-find-decl-spots): Replace + next/previous-single-property-change by + c-next/previous-single-property-change to ensure functionality + in XEmacs. + (c-forward-sws, c-backward-sws): Handle NO-BREAKING-SPACE as + whitespace. This corrects the error in hardspace.c in the test + suite. + + * lisp/progmodes/cc-fonts.el (c-font-lock-ml-strings): Refactor + some nested `if's into a cond form. Don't fontify multiline + string delimiters in XEmacs, in keeping with its string + conventions. + + * lisp/progmodes/cc-langs.el (c-populate-syntax-table): Set the + syntax of NO-BREAKING-SPACE to whitespace rather than + punctuation. + + * lisp/progmodes/cc-mode.el (c-before-change): Use + c-previous-single-property-change rather than + previous-single-property-change to ensure functionality in + XEmacs. + +2025-06-11 Sean Whitton <spwhitton@spwhitton.name> + + vc-next-action: Leave files unregistered if user aborts the checkin + + * lisp/vc/vc.el (vc-only-files-state-and-model): + Don't call vc-register. + (vc-checkin): New REGISTER parameter. + Call vc-register when it's non-nil. + (vc-next-action): Pass new REGISTER parameter to vc-checkin. + +2025-06-11 Juri Linkov <juri@linkov.net> + + * test/lisp/repeat-tests.el: Add a command for global continue. + + (repeat-tests-call-g): New command (bug#78742). + Put 'repeat-continue' with t on this symbol. + (repeat-tests-global-map): Bind it to 'C-M-g'. + (repeat-tests-continue-another): Add 'C-M-g' that should continue. + +2025-06-11 Paul Nelson <ultrono@gmail.com> + + Improve repeat-continue property handling + + * lisp/repeat.el (repeat-get-map-sym): Support 'repeat-continue' + property value of t to continue any active repeat map (suggested + by Karthik Chikmagalur <karthikchikmagalur@gmail.com>). + Simplify logic so that repeat-continue does not interfere with + repeat-map activation. + (repeat-check-map): Allow commands with 'repeat-continue' + property value of t to continue without checking the key. + (repeat-mode): Update and tweak docstring. + * lisp/bind-key.el (bind-keys-form): Update handling of + ':continue-only' keyword: only add keymap to 'repeat-continue' + if current value is a list. + (bind-keys): Update documentation, mirroring bind-keys-form. + * lisp/keymap.el (defvar-keymap): Update handling of ':continue' + keyword: only add keymap to 'repeat-continue' if current value + is a list. + * test/lisp/repeat-tests.el (repeat-tests-continue) + (repeat-tests-continue-another): Enable previously commented + tests that now work correctly. + * etc/NEWS: Update announcement of 'repeat-continue' (bug#78742). + +2025-06-11 Jim Porter <jporterbugs@gmail.com> + + Clean up text properties in 'visual-wrap-prefix-mode' + + Before refontifying a region, remove any text properties we care about + so that we don't end up with stray properties. Additionally, make sure + to remove all the properties when deactivating the mode. + + * lisp/emacs-lisp/subr-x.el (add-remove--display-text-property): New + function, extracted from... + (add-display-text-property): ... here. + (remove-display-text-property): New function. + + * lisp/visual-wrap.el (visual-wrap--remove-properties): New function... + (visual-wrap-prefix-function, visual-wrap-prefix-mode): ... call it. + + * test/lisp/emacs-lisp/subr-x-tests.el + (subr-x-test-remove-display-text-property): New test. + + * test/lisp/visual-wrap-tests.el + (visual-wrap-tests/wrap-prefix-stickiness, visual-wrap-tests/cleanup): + New tests. + + * doc/lispref/display.texi (Display Property): Document + 'remove-display-text-property'. + + * etc/NEWS: Announce 'remove-display-text-property' (bug#76018). + +2025-06-11 Jim Porter <jporterbugs@gmail.com> + + Improve documentation for display property functions + + Specifically, use the term "display specification" more consistently to + distinguish from "display property", which is the full value of the + 'display' text property. + + * src/xdisp.c (find_display_property): Rename PROP to SPEC. + (Fget_display_property): Rename PROP to SPEC and improve docstring. + + * lisp/emacs-lisp/subr-x.el (add-display-text-property): Rename PROP to + SPEC and improve docstring. + + * doc/lispref/display.texi (Display Property): Reword documentation to + more-consistently refer to display specifications. + +2025-06-11 Jim Porter <jporterbugs@gmail.com> + + Don't delete in-place when replacing a display property + + When calling 'add-display-text-property' on a region of text that + already contains PROP, we first delete the old display specification + from the region. If the region's 'display' property is a list of + display specifications, we need to avoid destructively modifying the + list; other regions of text could be using the same list object. (For a + 'display' property that's a vector or a single display spec, this + doesn't matter since we first make a new list in the code.) + + In addition, be more careful when working with a display property like + ((margin ...) ...). This is a single display specification, not a list + of display specs. + + * lisp/emacs-lisp/subr-x.el (add-display-text-property): Don't delete + in-place for list values. Handle (margin ...) display specification + type correctly. + + * test/lisp/emacs-lisp/subr-x-tests.el + (subr-x-test-add-display-text-property): Update test. + +2025-06-11 Protesilaos Stavrou <info@protesilaos.com> + + Update modus-themes to their version 4.8.0 + + * doc/misc/modus-themes.org (Preview theme colors):(Get a single color from the palette with ~modus-themes-get-color-value~): + (DIY Do not extend the region background, Note on SHR fonts): Fix some typos. + (Full support for packages or face groups): Include tmr in the + list of supported packages. + (Acknowledgements): Mention more people who have contributed to + the project in some capacity. + + * etc/themes/modus-operandi-deuteranopia-theme.el: + * etc/themes/modus-operandi-theme.el: + * etc/themes/modus-operandi-tinted-theme.el: + * etc/themes/modus-operandi-tritanopia-theme.el: + * etc/themes/modus-vivendi-deuteranopia-theme.el: + * etc/themes/modus-vivendi-theme.el: + * etc/themes/modus-vivendi-tinted-theme.el: + * etc/themes/modus-vivendi-tritanopia-theme.el: Make small changes to the palette of each theme. + + * etc/themes/modus-themes.el + (modus-themes-after-load-theme-hook): Reword the doc string + (modus-themes--rotate, modus-themes--rotate-p) + (modus-themes--next-in-rotation, modus-themes-rotate): Make + rotation optionally move in the opposite direction. + (modus-themes-faces): Tweak some faces. + + Release notes: <https://protesilaos.com/codelog/2025-06-11-emacs-modus-themes-4-8-0/>. + +2025-06-11 Po Lu <luangruo@yahoo.com> + + * configure.ac: Detect Android API 36. + +2025-06-11 Po Lu <luangruo@yahoo.com> + + Port to Android API 36 + + * java/AndroidManifest.xml.in: Update targetSdkVersion to 36. + + * java/INSTALL: Document revised compilation dependencies. + + * java/org/gnu/emacs/EmacsActivity.java (interceptBackGesture): + New function. + (onCreate): Invoke the same to register back gesture callbacks + on Android 16 or better. + + * java/org/gnu/emacs/EmacsWindow.java (onBackInvoked): New + function. + + * src/keyboard.c (lispy_function_keys): Amend with new symbols + introduced in Android API 36. + +2025-06-10 Pip Cet <pipcet@protonmail.com> + + Print a message when failing to recover a file + + * lisp/files.el (recover-session-finish): Call 'message' rather than + evaluating a string and a variable without using the result. + +2025-06-10 Juri Linkov <juri@linkov.net> + + * test/lisp/repeat-tests.el: Add a command to continue but not activate. + + (repeat-tests-call-e): New command. + (repeat-tests-global-map): Bind it to 'C-M-e'. + (repeat-tests-another-repeat-map, repeat-tests-repeat-map): + Add 'repeat-tests-call-e' to :continue. + (repeat-tests-continue, repeat-tests-continue-another): + Add 'C-M-e' that should continue but not activate. + +2025-06-10 Yuan Fu <casouri@gmail.com> + + Add tree-sitter version of prog-fill-reindent-defun (bug#78703) + + Add a tree-sitter version of prog-fill-reindent-defun that + indents the defun that encloses point, rather than the sibling + defun after point when there is one. + + * lisp/progmodes/prog-mode.el: + (prog-fill-reindent-defun): Turns into a wrapper function. + (prog-fill-reindent-defun-function): New variable. + (prog-fill-reindent-defun-default): Old prog-fill-reindent-defun + becomes this function. + * lisp/treesit.el (treesit-fill-reindent-defun): New function. + (treesit-major-mode-setup): Setup + prog-fill-reindent-defun-function. + +2025-06-10 Yuan Fu <casouri@gmail.com> + + Extract out prog--text-at-point-p from prog-fill-reindent-defun + + * lisp/progmodes/prog-mode.el (prog--text-at-point-p): New function. + (prog-fill-reindent-defun): Use new function. + +2025-06-10 Yuan Fu <casouri@gmail.com> + + Add new tactic to treesit-navigate-thing (bug#78703) + + * doc/emacs/programs.texi (Moving by Defuns): + * doc/lispref/parsing.texi (User-defined Things): Describe the + new tactic. + * lisp/treesit.el (treesit-navigate-thing): Add new tactic. + +2025-06-09 Philip Kaludercic <philipk@posteo.net> + + Support checking auth-source for NickServ password for rcirc + + * doc/misc/rcirc.texi: Mention new feature. + * etc/NEWS: Mention new feature. + * lisp/net/rcirc.el (rcirc-authinfo): Update type and documentation. + (rcirc-authenticate): Handle a special type to indicate that the + password is stored via auth-source. + +2025-06-09 Sean Whitton <spwhitton@spwhitton.name> + + Prompt just once when deleting multiple files with C-x v v + + * lisp/vc/vc.el (vc-delete-file): Accept lists of files in + addition to single files. + (vc-next-action): Call vc-delete-file once for all the files. + +2025-06-09 Philip Kaludercic <philipk@posteo.net> + + Require CertFP files for rcirc to exist + + * lisp/net/rcirc.el (rcirc-authinfo): Adjust the types for the + key and certificate file from 'string' to 'file'. + +2025-06-09 Mattias Engdegård <mattiase@acm.org> + + Revert "Fix function arity check for noncompiled callees (bug#78685)" + + This reverts commit 8b0f5b05976a99e82e54d6c602d47a8668ccd9d5. + + This change wasn't quite right; the solution requires greater care. + +2025-06-09 Juri Linkov <juri@linkov.net> + + * lisp/progmodes/c-ts-mode.el (c-ts-mode-menu): Add 'bound-and-true-p'. + + Use 'bound-and-true-p' for the case when 'subword-mode' is not loaded. + +2025-06-08 Michael Albinus <michael.albinus@gmx.de> + + More language server on emba + + * test/infra/Dockerfile.emba (emacs-eglot): Install also + typescript-language-server and vscode-json-languageserver. + +2025-06-08 Michael Albinus <michael.albinus@gmx.de> + + Improve emba integration + + * admin/notes/emba: Mention generated compatibility-report.html. + + * test/infra/Dockerfile.emba (emacs-base): Install man-db. + (emacs-inotify): Don't install clangd. + (emacs-eglot): Derive from debian:trixie. Install rust-analyzer. + + * test/infra/gitlab-ci.yml (.job-template): Make actions in + after_script more robust. + +2025-06-08 Sean Whitton <spwhitton@spwhitton.name> + + vc-next-action: On mixed state sets, treat missing files as removed + + * lisp/vc/vc.el (vc-only-files-state-and-model, vc-next-action): + Add the 'missing' state to the set of compatible states for + mixed state actions. This means you can commit removals of + files without first moving them to the 'removed' state. + +2025-06-08 Sean Whitton <spwhitton@spwhitton.name> + + vc-next-action: Offer to delete missing files + + * lisp/vc/vc.el (vc-next-action): Call vc-delete-file on a set + of missing files, to move them to the 'removed' state, instead + of just erroring out. + +2025-06-08 Eli Zaretskii <eliz@gnu.org> + + Fix 'ffap-string-at-point' under 'ffap-file-name-with-spaces' + + * lisp/ffap.el (ffap-file-name-with-spaces): Doc fix. + (ffap-string-at-point): Don't reject '~foo/' and 'd:/bar' file + names when 'ffap-file-name-with-spaces' is non-nil. + + * test/lisp/ffap-tests.el (ffap-test-with-spaces): Add tests, and + fix expected results to not strip Windows drive letters. + +2025-06-07 Eli Zaretskii <eliz@gnu.org> + + Fix 'save-some-buffers' when file name has embedded '%' + + * lisp/emacs-lisp/map-ynp.el (map-y-or-n-p): Don't assume the + prompt will never include the '%' character. (Bug#78715) + +2025-06-07 Sean Whitton <spwhitton@spwhitton.name> + + vc-git: Properly track unstaged deletions + + * lisp/vc/vc-git.el (vc-git--git-status-to-vc-state) + (vc-git-after-dir-status-stage): Return/set 'missing' VC state, + not 'removed' state, for unstaged deletions. + (vc-git-dir-status-goto-stage): Add 'ls-files-missing' stage. + +2025-06-07 Sean Whitton <spwhitton@spwhitton.name> + + Inline sole call to vc-git--state-code + + * lisp/vc/vc-git.el (vc-git--state-code): Delete. + (vc-git-after-dir-status-stage): Inline it here. + +2025-06-07 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + e4ba279b014 ; * doc/emacs/misc.texi (Network Security): Fix typo. + 8fdb2d19b49 ; * lisp/treesit.el (treesit-beginning-of-defun): Doc fix... + +2025-06-07 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + cd57a05542b ; * etc/PROBLEMS: Improve the item about 'C-S-u' in PGTK ... + +2025-06-07 Elías Gabriel Pérez <eg642616@gmail.com> + + Add option for not highlight parens inside comments or strings + + * lisp/paren.el (show-paren-not-in-comments-or-strings): + New user option. (Bug#78396) + (show-paren-function): Enclose code in 'catch' function. + * etc/NEWS: Announce changes. + * doc/emacs/programs.texi (Matching): Document new option. + +2025-06-07 JD Smith <jdtsmith@gmail.com> + + Fix vertical-motion when an image is at EOL under word-wrap + + * src/xdisp.c (move_it_in_display_line_to): Fix return value under + word-wrap when a screen line ends with an image that "just fits". + (Bug#67604) + +2025-06-07 shipmints <shipmints@gmail.com> + + Add optional inherit argument to 'face-all-attributes' (bug#77945) + + * lisp/faces.el (face-all-attributes): Add 'inherit' argument + and pass to 'face-attribute'. + +2025-06-07 Eli Zaretskii <eliz@gnu.org> + + Avoid whitespace-mode breaking standard-display-unicode-special-glyphs + + * lisp/whitespace.el (whitespace-display-char-on): Copy from + 'standard-display-table' if 'buffer-display-table' is nil. This + avoids overwriting display-table customizations by features that + modify 'standard-display-table' for global effects. (Bug#78522) + +2025-06-07 Eli Zaretskii <eliz@gnu.org> + + Teach checkdoc about (:this that) in cl-defun + + * lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine): + Support more complex keyword args. (Bug#78543) + +2025-06-07 Eli Zaretskii <eliz@gnu.org> + + Fix semantic-utest-ia tests + + * test/lisp/cedet/semantic-utest-ia.el (semantic-ia-utest): Clean + up better, to avoid affecting the next test. + +2025-06-07 Lin Sun <sunlin7@hotmail.com> + + * lisp/cedet/semantic.el: Turn off semantic-mode in all buffers (bug#76815), + +2025-06-06 Sean Whitton <spwhitton@spwhitton.name> + + New revert-files VC backend function for faster mass reverts + + * lisp/vc/vc-git.el (vc-git-revert-files): + * lisp/vc/vc-hg.el (vc-hg-revert-files): + * lisp/vc/vc.el (vc-revert-files): New functions. + (vc-revert-files): Incorporate vc-revert's calls to message here + so that the messages are displayed more consistently. + (vc-next-action, vc-default-checkin-patch, vc-revert): Use + vc-revert-files instead of vc-revert-file. + +2025-06-06 Sean Whitton <spwhitton@spwhitton.name> + + Fix apparent thinko in vc-next-action + + * lisp/vc/vc.el (vc-next-action): Pass an argument to + buffer-modified-p because the loop does not set the current + buffer before calling that function. + +2025-06-06 Sean Whitton <spwhitton@spwhitton.name> + + VC: Deprecate log-incoming and log-outgoing backend functions + + * lisp/vc/vc-git.el (vc-git-incoming-revision): + Inline vc-git--fetch-incoming. + (vc-git--fetch-incoming, vc-git-log-incoming) + (vc-git-log-outgoing): Delete. + * lisp/vc/vc-hg.el (vc-hg-mergebase): + * lisp/vc/vc.el (vc-default-log-incoming) + (vc-default-log-outgoing): New functions. + * lisp/vc/vc.el: + * etc/NEWS: Document the deprecation. + +2025-06-06 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc.el: Update specification of print-log backend function. + +2025-06-06 Dmitry Gutov <dmitry@gutov.dev> + + project-switch-to-buffer: Don't disambiguate too much + + * lisp/progmodes/project.el (project--read-project-buffer): + Use the new function from 'uniquify' to generate buffer names that + are just unique to the current project, not globally (bug#77312). + +2025-06-06 Spencer Baugh <sbaugh@janestreet.com> + + Add uniquify-get-unique-names (bug#77312) + + This new function provides an interface to uniquify.el which doesn't + change the actual names of the buffers. This is useful for any commands + which deal with a subset of all buffers; for example, project.el. + + * lisp/uniquify.el (uniquify-rationalize--generic): Add. + (uniquify-rationalize, uniquify-rationalize-a-list) + (uniquify-rationalize-conflicting-sublist): Explicitly pass + RENAME-BUFFER-FN and GET-BUFFER-FN. + (uniquify--stateless-curname, uniquify-get-unique-names): Add. + +2025-06-05 Mattias Engdegård <mattiase@acm.org> + + Fix function arity check for noncompiled callees (bug#78685) + + This is a regression from Emacs 29. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-fdefinition): + Make it work for functions that aren't compiled. + * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--f): + (bytecomp-tests--warn-arity-noncompiled-callee): Add test. + +2025-06-05 Michael Albinus <michael.albinus@gmx.de> + + Fix Tramp connection property + + * lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection): + * lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection): + Set "connected" property in time. + +2025-06-05 Kazuhiro Ito <kzhr@d1.dion.ne.jp> + + * lisp/subr.el (play-sound): Update docstring (bug#78694). + +2025-06-05 Sean Whitton <spwhitton@spwhitton.name> + + Delay running vc-checkin-hook for an async checkin + + * lisp/vc/vc-git.el (vc-git-checkin): + * lisp/vc/vc-hg.el (vc-hg-checkin, vc-hg-checkin-patch): Run + vc-checkin-hook using vc-run-delayed. + * lisp/vc/vc.el (vc-checkin): Don't pass vc-checkin-hook to + vc-start-logentry when doing an async checkin. That runs the + hook too early. + +2025-06-05 Eli Zaretskii <eliz@gnu.org> + + Improve documentation of treesit "thing" + + * src/treesit.c (syms_of_treesit): + * lisp/treesit.el (treesit-cycle-sexp-type): + (treesit-thing-at, treesit-thing-at-point): Doc fixes. + + * doc/lispref/parsing.texi (User-defined Things): Improve + documentation of treesit "thing" and related functions; add + cross-references and indexing. + +2025-06-05 Stefan Monnier <monnier@iro.umontreal.ca> + + (cl-deftype): Silence spurious warnings in `xcb-types.el` + + * lisp/emacs-lisp/cl-macs.el (cl-deftype): Don't warn if the predicate + doesn't use its argument, e.g. when the type is equivalent to `t`. + +2025-06-04 Stefan Monnier <monnier@iro.umontreal.ca> + + (outline--hidden-headings-paths): Fix slow saves (bug#78665) + + * lisp/outline.el: Prefer #' to quote function names. + (outline--end-of-previous): New function, extracted from + `outline-end-of-subtree`. + (outline-end-of-subtree): Use it. + (outline--hidden-headings-paths): Distinguish headings where just the + entry is hidden from those where a whole subtree is hidden (bug#78673). + (outline--hidden-headings-restore-paths): Adjust accordingly and don't + delegate to functions like `outline-hide-subtree` so as to avoid + an O(N²) behavior. + +2025-06-04 Juri Linkov <juri@linkov.net> + + * lisp/tab-line.el: Use 'tab-line-event-start' in remaining functions. + + (tab-line-switch-to-prev-tab, tab-line-switch-to-next-tab): + Use 'tab-line-event-start' instead of 'event-start' + like in all other functions. + +2025-06-04 Jonas Bernoulli <jonas@bernoul.li> + + Update to Transient v0.9.1-7-gd7d2c1c2 + +2025-06-04 Sean Whitton <spwhitton@spwhitton.name> + + Factor out vc--with-backend-in-rootdir + + * lisp/vc/vc.el (vc--with-backend-in-rootdir): New macro. + (vc-root-version-diff, vc-diff-mergebase, vc-root-diff) + (vc-print-root-log, vc-log-mergebase): Use it. + (vc-log-incoming, vc-log-outgoing): Use it here too in order to + prompt for a directory if current buffer is not VCS-controlled. + +2025-06-04 Jostein Kjønigsen <jostein@kjonigsen.net> + + Better command subst fontification in bash-ts-mode (bug#78567) + + * lisp/progmodes/sh-script.el (sh-mode--treesit-settings): + fontify command-substition command only. Don't include + enclosing brackets. + +2025-06-04 Juri Linkov <juri@linkov.net> + + * lisp/tab-line.el: Remove unnecessary checks for nil event. + + (tab-line-hscroll-right, tab-line-hscroll-left) + (tab-line-switch-to-prev-tab, tab-line-switch-to-next-tab) + (tab-line-close-tab, tab-line-close-other-tabs): + Remove '(consp event)' to use the window returned by + '(posn-window (tab-line-event-start event))' even in case + when 'event' is nil. + +2025-06-03 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/progmodes/sh-script.el (sh-popup-occur-buffer): Remove unused var + +2025-06-03 Thierry Volpiatto <thievol@posteo.net> + + (lisp-imenu-generic-expression): Add `oclosure-define` + + * lisp/emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression): + Add `oclosure-define` alongside the other type definition forms. + +2025-06-03 Juri Linkov <juri@linkov.net> + + * lisp/tab-line.el: Use 'consp' on mouse events instead of 'listp'. + + (tab-line-hscroll-right, tab-line-hscroll-left, tab-line-new-tab) + (tab-line-switch-to-prev-tab, tab-line-switch-to-next-tab) + (tab-line-close-tab, tab-line-close-other-tabs): + Replace '(listp event)' with '(consp event)' that allows + calling the functions non-interactively with nil event arguments. + +2025-06-03 Juri Linkov <juri@linkov.net> + + Restore c-ts-common-comment-setup in js-ts-mode and typescript-ts-mode. + + * lisp/progmodes/js.el (js-ts-mode): + * lisp/progmodes/typescript-ts-mode.el (typescript-ts-base-mode): + Add 'c-ts-common-comment-setup' back removed in 8bccccedb65a + since it does more than setting comment variables (bug#78680). + +2025-06-03 Michael Albinus <michael.albinus@gmx.de> + + Add ansible password prompts to `comint-password-prompt-regexp' + + * lisp/comint.el (comint-password-prompt-regexp): + * test/lisp/comint-tests.el (comint-testsuite-password-strings): + Add ansible password prompts. (Bug#78442) + +2025-06-02 Alan Third <alan@idiocy.org> + + Fix NS port screen geometry report (bug#76051) + + * src/nsfns.m (Fns_display_monitor_attributes_list): Fix the arithmetic + to calculate the origin of the visible frame. + +2025-06-02 shipmints <shipmints@gmail.com> + + Fix ns_make_monitor_attribute_list (bug#76691) + + This is the NS implementation for 'display-monitor-attributes-list'. + Change implementation from IORegistry to direct introspection + of NSScreen. + + * src/nsfns.m (ns_make_monitor_attribute_list): Use localizedName + selector on NSScreen. For anonymous displays, synthesize names + of the form ("%dx%d@%d,%d" width height x y). + (ns_get_name_from_ioreg) (ns_screen_name): Removed. + +2025-06-02 Michael Albinus <michael.albinus@gmx.de> + + Tramp: Do not raise an error when not connected (Bug#78572) + + * lisp/net/tramp-cmds.el (tramp-cleanup-connection): + Use read syntax #' for `tramp-timeout-session', + + * lisp/net/tramp.el (tramp-barf-if-file-missing): Do not raise an error + when not connected. (Bug#78572) + (tramp-file-name-handler): Do not force the backtrace. + (tramp-connectable-p): Check also, whether initial handshake is finished. + (tramp-skeleton-directory-files) + (tramp-skeleton-directory-files-and-attributes) + (tramp-skeleton-set-file-modes-times-uid-gid): Rearrange sending + `file-missing' error. + (tramp-handle-access-file, tramp-handle-unlock-file): + Use `tramp-connectable-p'. + + * test/lisp/net/tramp-tests.el (project-mode-line-format) + (project-mode-line): Declare. + (tramp-test48-session-timeout): New test. + (tramp-test49-auto-load, tramp-test49-delay-load) + (tramp-test49-recursive-load, tramp-test49-remote-load-path) + (tramp-test50-without-remote-files, tramp-test51-unload): Rename. + +2025-06-02 Collin Funk <collin.funk1@gmail.com> + + Pacify Clang's -Wformat-signedness. + + * configure.ac: Enable -Wno-format-signedness if Clang is being used. + +2025-06-02 Yuan Fu <casouri@gmail.com> + + Fix typescript-ts-mode tenary indentation (bug#77901) + + Fixes indentation for nested ternary expressions: + + const a = cond1 ? 1 : + cond2 ? 2 : + cond3 ? 3 : + cond 4: 5; + + instead of + + const a = cond1 ? 1 : + cond2 ? 2 : + cond3 ? 3 : + cond 4: 5; + + * lisp/progmodes/typescript-ts-mode.el: + (typescript-ts--standalone-parent-p): New function. + (typescript-ts-mode): + (tsx-ts-mode): Use new function. + +2025-06-01 Jostein Kjønigsen <jostein@kjonigsen.net> + + Fontificatiomn improvements for typescrip-ts-mode.el (bug#78594) + + - Fontify type-names for static function calls directly on types. + - Special-case "document" and "console" and constants/builtins. + - Fontify variable-use in string-interpolation expressions. + - Fontify variable-use in function-calls. + - Fontify variable-use in member-access expressions. + - Fontify variable-use in JSX-expressions. + - Fontify variable-use when using explicit nullability override. + + * lisp/progmodes/typescript-ts-mode.el: + (tsx-ts-mode--font-lock-compatibility-bb1f97b): + (typescript-ts-mode--font-lock-settings): Improve font-lock settings. + +2025-06-01 Thierry Volpiatto <thievol@posteo.net> + + bovine/el.el: Tell CEDET how to parse `oclosure-define` + + * lisp/cedet/semantic/bovine/el.el (oclosure-define): Add parser. + +2025-06-01 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc-bzr.el (vc-bzr-incoming-revision): New function. + +2025-06-01 Stephen Gildea <stepheng+git-config-global@gildea.com> + + time-stamp-tests: Hygienic macros + + * test/lisp/time-stamp-tests.el (with-time-stamp-test-time, + time-stamp-should-warn, formatz-should-equal): Use cl-with-gensyms. + +2025-06-01 Sean Whitton <spwhitton@spwhitton.name> + + New incoming-revision VC backend action + + * lisp/vc/vc.el: New incoming-revision backend action (bug#62940). + * lisp/vc/vc-git.el (vc-git--fetch-incoming): New function, + factored out of vc-git-log-incoming. + (vc-git-log-incoming): Use it. + (vc-git-incoming-revision): + * lisp/vc/vc-hg.el (vc-hg-incoming-revision): New functions. + +2025-05-31 Stefan Monnier <monnier@iro.umontreal.ca> + + (load-path-filter-cache-directory-files): Filter only for `must-suffix` + + Most loads set the `must-suffix` (e.g. `require and + `autoload-do-load`), but some don't (e.g. `load-library`). + This results in two separate entries in + `load-path-filter--cache` with two hash-tables. The entry for + `must-suffix=nil` is larger and much less often used than the + other, so just skip filtering when `must-suffix=nil`. + Reduces the memory size of the cache from ~1MB to ~400kB in my + test case. + + * lisp/startup.el (load-path-filter-cache-directory-files): + Don't use a filtering cache when `must-suffix` is nil. + +2025-05-31 Matthew Tromp <matthewktromp@gmail.com> (tiny change) + + Add additional keybindings for flymake diagnostics modes + + This adds keybindings for C-o and C-m, and changes the bindings + for n and m, in `flymake-diagnostics-buffer-mode' and + `flymake-project-diagnostics-mode' buffers. + + Previously, `flymake-project-diagnostics-mode' did not use the + keybindings for `flymake-diagnostics-buffer-mode'. RET and SPC + were never bound in `flymake-project-diagnostics-mode' buffers. + This seems to have been an oversight: since the filename and + message are buttons which call `flymake-goto-diagnostic', + pressing RET still brought users to the diagnostic at point + most of the time. This change adds a + `flymake-project-diagnostics-mode-map' which inherits from + `flymake-diagnostics-buffer-mode-map'. + + C-o and C-m now show and jump to the diagnostic currently at point, + similar to how `compilation-mode' works. + + n and p now show the diagnostic newly under point after moving up or + down a line, which is also intended to make behavior more similar to + `compilation-mode'. + + In order that other next-error buffers do not interfere with + navigation in the diagnostics buffers, this change introduces and + uses new functions, `next-error-this-buffer-no-select' and + `previous-error-this-buffer-no-select'. If we instead used + `next-error-no-select' and `previous-error-no-select', then a user + who runs `flymake-show-diagnostics-buffer', then e.g. `compile', + then returns to the diagnostics buffer and presses 'n', would be + navigated to the next error in the compilation buffer. + + * lisp/progmodes/flymake.el (flymake-diagnostics-buffer-mode-map): Add + bindings. + (flymake-project-diagnostics-mode-map): Inherit bindings from + `flymake-diagnostics-buffer-mode' + * lisp/simple.el (next-error-this-buffer-no-select): + (previous-error-this-buffer-no-select): Add new commands. + (Bug#78619) + +2025-05-31 Michael Albinus <michael.albinus@gmx.de> + + Fix Tramp bug#78508 + + * lisp/net/tramp-container.el (tramp-methods) <docker, dockercp, podman> + <podmancp, apptainer, nspawn>: + * lisp/net/tramp-sh.el (tramp-methods) <scp, scpx, rsync> + <ssh, sshx, sudo>: + * lisp/net/tramp-sshfs.el (tramp-methods) <sshfs>: Set TERM environment. + (Bug#78508) + + * lisp/net/tramp-sh.el (tramp-find-executable): Handle superlong PATH. + (tramp-set-remote-path): Simplify command. + (tramp-timeout-session): Add ;;;###tramp-autoload cookie. + + * lisp/net/tramp-smb.el (tramp-smb-errors): Add string. + (tramp-smb-winexe-program): Adapt docstring. + (tramp-smb-handle-copy-directory, tramp-smb-handle-file-acl) + (tramp-smb-handle-set-file-acl, tramp-smb-maybe-open-connection): + Simplify argument handling. + (tramp-smb-handle-process-file): Flush " process-exit-status" property. + (tramp-smb-call-winexe): Set $winsize.Width to 102 only. + + * lisp/net/tramp.el (tramp-process-sentinel): Adapt docstring. + Set " process-exit-status" property. + + * test/lisp/net/tramp-tests.el (tramp--test-enabled): + Make it more robust. + (tramp-test18-file-attributes) + (tramp-test26-interactive-file-name-completion) + (tramp-test26-file-name-completion-boundaries) + (tramp-test35-remote-path): Adapt tests. + +2025-05-31 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 9dc6c21b414 ; * lisp/subr.el (setq-local): Doc fix (bug#78644). + 1bb88a86cb3 Revert "; * lisp/subr.el (setq-local): Doc fix (bug#78644)." + cb9556d669c ; * lisp/subr.el (setq-local): Doc fix (bug#78644). + 8881dca81c9 ; * doc/lispref/searching.texi (Char Classes): Add speedu... + 4507b6a9c75 Fix bug in 'todo-jump-to-category' (bug#78608) + +2025-05-31 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 1d2ae31b8bc typescript-ts-mode: Improve function body indentation (bu... + 421ecbcf6b4 ; * CONTRIBUTE: Explain the line-width preferences. + +2025-05-31 Matthias Meulien <orontee@gmail.com> + + ansi-osc.el: Use marker (bug#78184) + + * lisp/ansi-osc.el (ansi-osc-apply-on-region) + (ansi-osc-filter-region): Use marker to properly handle + unfinished escape sequence. + + * test/lisp/ansi-osc-tests.el (ansi-osc-tests--strings) + (ansi-osc-tests-apply-region-no-handlers) + (ansi-osc-tests-apply-region-no-handlers-multiple-calls) + (ansi-osc-tests-filter-region) + (ansi-osc-tests-filter-region-with-multiple-calls): Cover + bug#78184. + +2025-05-31 Eli Zaretskii <eliz@gnu.org> + + Remove unused user options in sh-script.el + + * lisp/progmodes/sh-script.el (sh-indent-comment) + (sh-first-lines-indent, sh-indent-for-else): Remove variables that + are no longer obeyed. + (sh-var-list): Likewise. (Bug#78592) + +2025-05-31 Sean Whitton <spwhitton@spwhitton.name> + + Restore & obsolete vc-finish-logentry-hook + + * lisp/vc/vc-dispatcher.el (vc-finish-logentry-hook): Declare, + document and mark obsolete. + (vc-finish-logentry): Call vc-finish-logentry-hook again. + +2025-05-31 Jim Porter <jporterbugs@gmail.com> + + Add more "safe" display specs to 'visual-wrap-prefix-mode' + + * lisp/visual-wrap.el (visual-wrap--safe-display-specs): Add + 'space-width' and 'min-width'. + (visual-wrap--display-property-safe-p): Use 'member' instead of 'memq' + to more-closely match the behavior of other code that works with display + properties. + +2025-05-30 Sean Whitton <spwhitton@spwhitton.name> + + vc-finish-logentry: Don't run vc-finish-logentry-hook + + * lisp/vc/vc-dispatcher.el (vc-finish-logentry): Don't run + undocumented, undeclared 'vc-finish-logentry-hook'. There is + already 'vc-log-after-operation-hook'; it is not clear we need + both. + +2025-05-30 Sean Whitton <spwhitton@spwhitton.name> + + Gather variable binding tests in data-tests.el + + * test/lisp/emacs-lisp/lisp-tests.el (c-e-x, c-e-l): + Move to data-tests.el. + (core-elisp-tests-2-window-configurations): Rename ... + (core-elisp-tests-1-window-configurations): ... to this. + (core-elisp-tests-3-backquote): Rename ... + (core-elisp-tests-2-backquote): ... to this. + (core-elisp-tests-1-defvar-in-let) + (core-elisp-tests-4-toplevel-values): Move and rename ... + * test/src/data-tests.el (binding-test-defvar-in-let) + (binding-test-toplevel-values): ... to these. + (c-e-x, c-e-l): Moved from data-tests.el. + +2025-05-30 Michael Albinus <michael.albinus@gmx.de> + + Fix bug in `tramp-find-executable' + + * lisp/net/tramp-sh.el (tramp-find-executable): Use "command -v", + preserving non-standard PATH search. Bug#78633) + +2025-05-29 Dmitry Gutov <dmitry@gutov.dev> + + project-remember-project: Support calling it interactively + + * lisp/progmodes/project.el (project-remember-project): + Support interactive invocation (bug#78099) and react with + appropriate messages when called so, depending on the blacklist. + +2025-05-29 Juri Linkov <juri@linkov.net> + + Use 'outline-heading-end-regexp' consistently. + + * lisp/outline.el (outline-font-lock-keywords): + For non-nil 'outline-search-function' also search for + 'outline-heading-end-regexp' afterwards like there is + 'outline-heading-end-regexp' at the end of the regexp counterpart. + (outline-minor-mode-highlight-buffer): Use 'outline-heading-end-regexp' + like in 'outline-font-lock-keywords' instead of "$". + For non-nil 'outline-search-function' also use + 'outline-heading-end-regexp' the same way. + + * lisp/help.el (describe-bindings): Remove unnecessary + buffer-local 'outline-heading-end-regexp'. + +2025-05-29 Sean Whitton <spwhitton@spwhitton.name> + + New user option vc-dir-hide-up-to-date-on-revert + + * lisp/vc/vc-dir.el (vc-dir-hide-up-to-date-on-revert): + New defcustom. + (vc-dir-revert-buffer-function): Use it. + * etc/NEWS: Document it. + +2025-05-29 Sean Whitton <spwhitton@spwhitton.name> + + Factor out vc-async-checkin-backends + + This allows third party backends to indicate they support async + checkins. + + * lisp/vc/vc.el (vc-async-checkin-backends): New variable. + (vc-checkin): Use it. + +2025-05-29 Martin Rudalics <rudalics@gmx.at> + + Have 'delete-frame' delete initial daemon frame only if FORCE is non-nil + + * src/frame.c (delete_frame): Delete initial daemon frame only + if FORCE is non-nil (Bug#78583). + (Fdelete_frame): Rewrite doc-string to mention that it can + delete an initial daemon frame if and only if FORCE is non-nil. + * etc/NEWS: + * doc/lispref/frames.texi (Deleting Frames): Mention that + 'delete-frame' can delete an initial daemon frame if and only if + FORCE is non-nil. + +2025-05-28 Pip Cet <pipcet@protonmail.com> + + Fix unsafe SDATA usage in print.c (bug#78590) + + * src/print.c (print_string_1): Renamed from 'print_string', with an + extra argument to disable nonascii escaping. + (print_string): New function. + (print_object): Use 'print_string_1', not 'strout'. + +2025-05-28 Juri Linkov <juri@linkov.net> + + * lisp/isearch.el (search-within-boundaries): Optimize (bug#78520). + + For non-subregexp case, search for the first match and continue + from its position. This avoids unnecessary scan for all text properties + until the first match. When nothing is found, skip the entire body. + +2025-05-28 Gerd Möllmann <gerd.moellmann@gmail.com> + + Do child frame shortcut only on Cocoa (bug#78616) + + * src/nsterm.m ([EmacsWindow constrainFrameRect:toScreen:]): + Return early for child frames only on Cocoa. + +2025-05-27 Juri Linkov <juri@linkov.net> + + * lisp/tab-line.el: Make tab closing commands work without mouse. + + (tab-line--current-tab): New function. + (tab-line-close-tab, tab-line-close-other-tabs): Use it + when the 'event' arg doesn't originate from mouse. + Suggested by pinmacs <pinmacs@cas.cat>. + +2025-05-27 Eli Zaretskii <eliz@gnu.org> + + Fix exact matching of Ada tags by 'M-.' + + * lisp/progmodes/etags.el (tag-exact-match-p): Support Ada tags + that have "/x" qualifiers appended to them. (Bug#78489) + +2025-05-27 Martin Rudalics <rudalics@gmx.at> + + Have 'delete-other-frames' only delete frames on same terminal (Bug#78583) + + * lisp/frame.el (delete-other-frames): Only delete frames on + same terminal as FRAME's (Bug#78583). + +2025-05-27 Michael Albinus <michael.albinus@gmx.de> + + * test/infra/gitlab-ci.yml (.job-template): Fix config.log name. + +2025-05-26 Jim Porter <jporterbugs@gmail.com> + + Don't add visual-wrap-prefix properties to unsafe multi-line display specs + + This makes sure we don't interfere with other display specs, e.g. for + images displayed in 'image-mode' (bug#73600). + + * lisp/visual-wrap.el (visual-wrap--safe-display-specs): New variable. + (visual-wrap--display-property-safe-p): New function. + (visual-wrap--apply-to-line): Use 'pos-eol'; we don't want to respect + field boundaries here. + (visual-wrap-prefix-function): Check for unsafe display properties at + the end of the line and skip past them if present. + + * test/lisp/visual-wrap-tests.el: New test file. + +2025-05-26 Eli Zaretskii <eliz@gnu.org> + + Fix DST time calculations on MS-Windows + + * src/w32.c (w32_fix_tzset): New function. + * src/timefns.c (emacs_localtime_rz, tzlookup): + * src/w32.c (sys_localtime): Call 'w32_fix_tzset'. + (Bug#11281) + +2025-05-26 Xiyue Deng <manphiz@gmail.com> + + Make xoauth2 auth fail when a smtp server replies 334 (Bug#78366) + + * lisp/mail/smtpmail.el (smtpmail-try-auth-method): Throw error 535 + when receiving a "334 server challenge" reply. + +2025-05-25 Juri Linkov <juri@linkov.net> + + * lisp/tab-line.el (tab-line-close-other-tabs): New command. + + (tab-line-tab-context-menu): Bind 'tab-line-close-other-tabs' + to the menu item "Close other tabs". + Suggested by pinmacs <pinmacs@cas.cat>. + +2025-05-25 Michael Albinus <michael.albinus@gmx.de> + + Adapt Emba files + + * test/infra/Dockerfile.emba: + * test/infra/gitlab-ci.yml: Add me as maintainer. Format. + + * test/infra/Makefile.in (tree-sitter-files): Format. + +2025-05-24 Eli Zaretskii <eliz@gnu.org> + + Fix detection of Dired with files whose name ends in a colon + + * lisp/dired.el (dired-build-subdir-alist): Use a more general + regexp to detect file entries whose names end in a colon, when + various non-default 'ls' switches are used. (Bug#78493) + +2025-05-24 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + df9636f8927 ; * doc/misc/use-package.texi (Hooks): Fix typo (bug#77609). + 36afdd2f6f9 Fix documentation of use-package's ':hook' keyword + d0c90bc9bfe * test/infra/gitlab-ci.yml (.job-template): Make it more ... + b8f24cbdbb0 ; * lisp/emacs-lisp/find-func.el (find-function): Doc fix. + e0c6f3e7656 Fix todo-mode item insertion bug (bug#78506) + 328b316764f Add support for Pyrefly LSP for Python + +2025-05-24 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 661fa578d51 Adapt Tramp version in customize-package-emacs-version-alist + 0045a56d558 ; * ChangeLog.5: Delete entry for minor change. + 1136aed6dc5 ; Update ChangeLog and AUTHORS for Emacs 30.2 + +2025-05-24 Roi Martin <jroi.martin@gmail.com> + + Add baseline pass/fail tests for `ert-test-erts-file' + + * test/lisp/emacs-lisp/ert-tests.el (ert-test-erts-pass) + (ert-test-erts-fail): Add tests to verify that the + `ert-test-erts-file' function can detect both passing a failing + test cases. + * test/lisp/emacs-lisp/ert-resources/erts-fail.erts: + * test/lisp/emacs-lisp/ert-resources/erts-pass.erts: + Add test data. (Bug#78552) + +2025-05-24 Lin Sun <sunlin7@hotmail.com> + + Speed up loading modules + + * src/lread.c (get-load-suffixes): Don't try loading modules with + suffixes from 'jka-compr-load-suffixes', since loading of + compressed shared libraries is not supported (so attempt to look + for them is just waste of cycles). (Bug#78416.) + +2025-05-24 Spencer Baugh <sbaugh@janestreet.com> + + Add load-path-filter-function and use it to optimize loading + + When there are many directories on load-path, the part of load which + searches load-path can become very slow. By filtering load-path up + front to only contain directories which are likely to contain the + searched-for file, load becomes much faster. + + This can be set in early-init.el for maximum effect. + + * lisp/startup.el (load-path-filter--cache) + (load-path-filter-cache-directory-files): Add. + * src/lread.c (Fload): Call load-path-filter-function. + (syms_of_lread): Add load-path-filter-function. + +2025-05-23 Michael Albinus <michael.albinus@gmx.de> + + * test/infra/Dockerfile.emba (emacs-tree-sitter): Cosmetic change. + +2025-05-23 Vincent Belaïche <vincent.belaiche@sourceforge.net> + + Minor fix. + + * lisp/ses.el (ses--align): fix /Unused lexical variable 'half'/ warning. + +2025-05-23 Vincent Belaïche <vincent.belaiche@sourceforge.net> + + More SES printer functions. + + * lisp/ses.el (ses-standard-printer-functions): add 'ses-left' & + 'ses-left-span' to the list. + (ses--align): New helper function, takes most of the code + previously in 'ses-center' + (ses-center): Use 'ses--align'. + (ses--span): New helper function, takes most of the code + previously in 'ses-center-span. + (ses-center-span): Use 'ses--span'.' + (ses-left): New function. + (ses-left-span): New function. + +2025-05-22 Stefan Monnier <monnier@iro.umontreal.ca> + + (perform-replace): Make it work with F-keys in TTYs (bug#78113) + + * lisp/replace.el (perform-replace): Use `read-key`. + * test/lisp/replace-tests.el (replace-tests-with-undo): Adjust accordingly. + +2025-05-22 Mattias Engdegård <mattiase@acm.org> + + Check diagnostic types in compile-tests + + * test/lisp/progmodes/compile-tests.el + (compile-tests--test-regexps-data, compile--test-error-line) + (compile-test-functions): Check the types (error, warning or info) for + most patterns. Use names instead of numbers in the reference. + +2025-05-22 Vincenzo Pupillo <v.pupillo@gmail.com> + + Support Rust compiler messages in compile mode (bug#70794). + + * etc/compilation.txt: Add examples of Rust compiler error, warning and + note messages. + * lisp/progmodes/compile.el + (compilation-error-regexp-alist-alist): Add Rust regexps for error, + warning and note messages. + * test/lisp/progmodes/compile-tests.el + (compile-tests--test-regexps-data): Add new test cases. + (compile-test-error-regexps): Increase expected errors. + +2025-05-22 Yuan Fu <casouri@gmail.com> + + Eglot: always call ElDoc callbacks in correct buffer (bug#78530) + + Some minor modes adds their own eldoc display function to + 'eldoc-display-functions' hook buffer-locally. So when eldoc + uses 'eldoc-display-functions' to display docs, it should use + the buffer-local value of the hook. + + But that's not always the case. In 'eldoc--invoke-strategy', the + code that runs 'eldoc-display-functions' hook is wrapped in a + callback function that eventually gets passed to each + documentation function in 'eldoc-documentation-functions'. So + now it's the documentation functions' responsibility to call the + eldoc callback in the original buffer. + + All the eglot documentation functions indeed do that, using + 'eglot--when-buffer-window' to switch to the original buffer + when calling the eldoc callback. But + 'eglot-code-action-suggestion' is the exception, the callback is + called outside of the 'eglot--when-buffer-window' form. + + This patch fixes that. + + This bug was originally reported on eldoc-box [1]. The user + found that eldoc-box's display function are rarely called, even + though the minor mode is turned on. This patch fixes the issue. + + [1] https://github.com/casouri/eldoc-box/issues/126#issuecomment-2896611278 + + * lisp/progmodes/eglot.el (eglot-code-action-suggestion): Move + the funcall form into the eglot--when-buffer-window form. + +2025-05-21 Lin Sun <sunlin7@hotmail.com> + + * lisp/emacs-lisp/find-func.el: Fix Eager macro-expansion failure + + Bug#78446 + +2025-05-21 Paul Eggert <eggert@cs.ucla.edu> + + Work around GCC bug 117423 + + Problem reported by Oliver Reiter and Pip Cet (Emacs bug#78473). + It looks like GCC tree-sra is trouble in general with how Emacs + uses unions, so disable tree-sra until the GCC bug is fixed. + * configure.ac (C_SWITCH_MACHINE): Also work around GCC bug 117423. + +2025-05-21 Juri Linkov <juri@linkov.net> + + * lisp/treesit.el: New variables for 'down-list' and 'up-list'. + + (treesit-sexp-type-down-list, treesit-sexp-type-up-list): + New buffer-local variables. + (treesit-down-list): Use 'treesit-sexp-type-down-list'. + (treesit-up-list): Use 'treesit-sexp-type-up-list'. + + * lisp/progmodes/elixir-ts-mode.el (elixir-ts-mode): + Set 'treesit-sexp-type-down-list' and + 'treesit-sexp-type-up-list' to 'list'. + +2025-05-20 Juri Linkov <juri@linkov.net> + + * lisp/tab-line.el (tab-line-move-tab-forward): New command. + + (tab-line-move-tab-backward): New command. + (tab-line-mode-map): Bind 'C-x M-<left>' to + 'tab-line-move-tab-backward' and 'C-x M-<right>' to + 'tab-line-move-tab-forward'. + (tab-line-switch-repeat-map): Bind 'M-<left>' to + 'tab-line-move-tab-backward' and 'M-<right>' to + 'tab-line-move-tab-forward'. + Suggested by pinmacs <pinmacs@cas.cat>. + +2025-05-19 Elijah Gabe Pérez <eg642616@gmail.com> + + lisp/progmodes/hideshow.el (hs--get-ellipsis): Simplify + + Mostly using `truncate-string-ellipsis`. + +2025-05-19 Spencer Baugh <sbaugh@janestreet.com> + + Fix 'completion-ignore-case' with 'completion--file-name-table' + + 509cbe1c35b3d "Improve env var handling in read-file-name" + caused 'try-completion' and 'all-completion' operations with + 'completion--file-name-table' to no longer update the case of + text which was already present in the input string. That is, + completions would be returned ignoring case, but the completions + would have letter-casing which matched the input string rather + than matching the actual file names. + This was caused by unnecessarily replacing text in the returned + file name completions with text from the input string ORIG, + which in turn was caused by the desire to preserve text from + ORIG even after 'substitute-in-file-name' changed it. Fix this + by detecting when ORIG was not substantially changed by + 'substitute-in-file-name'; in that case, the returned file name + completions also don't need substantial changes. + * lisp/minibuffer.el (completion--file-name-table): Use text + from the completions, not the input string. (Bug#78323) + * test/lisp/minibuffer-tests.el (completion-table-test-quoting): + Test with 'completion-ignore-case' as well. + +2025-05-19 Martin Rudalics <rudalics@gmx.at> + + Fix thinko in 'fit-frame-to-buffer-1' (Bug#78418) + + * lisp/window.el (fit-frame-to-buffer-1): Don't add extra line + when character sizes evenly divide decorations sizes + (Bug#78418). + +2025-05-18 Stefan Monnier <monnier@iro.umontreal.ca> + + eww.el: Misc changes + + * lisp/net/eww.el (eww--parse-html-region): Don't decode when it's a no-op. + (eww-display-raw): Simplify. + (eww-mode): Prefer #' to quote function names. + (eww-switch-to-buffer): Use `completion-table-with-metadata` instead of + `completion-extra-properties`. Don't prompt the user when there's only + one choice. + (eww-buffer-list): Use `eww--buffer-p`. + +2025-05-18 Stefan Monnier <monnier@iro.umontreal.ca> + + eww.el: Use `track-changes` + + * lisp/net/eww.el: Require `track-changes`. + (eww-display-document): Don't `inhibit-modification-hooks` any more. + Use `track-changes-register` *at the end* instead. + (eww-mode): Don't use `after-change-functions` any more. + (eww--track-changes): New function. + (eww--process-text-input): Rename from `eww-process-text-input`. + Try and be more careful: don't presume `point` is near + the modification. Check for a form both at BEG and at END. + Don't rely on `:start/:end` pointing to the right places. + Use `:length` instead and shrink the field back to its original length + when possible. + (eww-size-text-inputs): Set `:length` rather than `:start/:end`. + +2025-05-18 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/net/eww.el: Remove redundant `:group` arguments + +2025-05-18 Michael Albinus <michael.albinus@gmx.de> + + Generate tree-sitter compatibility report on emba + + * test/infra/Dockerfile.emba (emacs-tree-sitter): Generate + compatibility report. + + * test/infra/gitlab-ci.yml (.job-template): Modify artifacts preparation. + (build-tree-sitter): Add artifact. + +2025-05-18 Sean Whitton <spwhitton@spwhitton.name> + + Factor out vc-git--with-apply-temp-to-staging + + * lisp/vc/vc-git.el (vc-git--with-apply-temp-to-staging): New macro. + (vc-git-checkin): Use it. + +2025-05-18 Stephen Berman <stephen.berman@gmx.net> + + Amend Electric Pair mode documentation + + * doc/emacs/programs.texi (Matching): Restore to the documentation + of Electric Pair mode the description of the use of a prefix + argument, which was overwritten by merging changes from the + emacs-30 branch, and clarify the usage. + +2025-05-18 Eli Zaretskii <eliz@gnu.org> + + Improve reporting of language-grammar library ABI version mismatch + + * lisp/treesit.el (treesit-ready-p): More accurate wording of + message when grammar library fails to load. + + * src/treesit.c (treesit_load_language): Improve message when + reporting library ABI version mismatch. Suggested by Soham + Gumaste <sohamg2@gmail.com>. + +2025-05-18 Stefan Monnier <monnier@iro.umontreal.ca> + + editorconfig.el: Fix bug#78097 + + When there is no `.editorconfig` variable, the + `file-name-directory` call can signal an error, but that can + happen only if `editorconfig-get-local-variables-functions` + added entries "out of thin air". So just skip running that hook + to avoid this corner case. + + * lisp/editorconfig.el (editorconfig--get-dir-local-variables): + Don't run `editorconfig-get-local-variables-functions` when we found no + EditorConfig settings. + +2025-05-18 Po Lu <luangruo@yahoo.com> + + Prevent double frees in closing fonts provided by the Haiku font driver + + * src/haikufont.c (haikufont_close): Clear INFO->metrics, + glyphs, be_font after they are released and do not attempt to + access them if NULL. (bug#77478) + +2025-05-17 Stefan Monnier <monnier@iro.umontreal.ca> + + (eww-switch-to-buffer): Don't let-bind `completion-extra-properties` + + * lisp/net/eww.el (eww--buffer-p): New function. + (eww-switch-to-buffer): Use it. And set `completion-extra-properties` + buffer-locally rather than let-binding it. + +2025-05-17 Eli Zaretskii <eliz@gnu.org> + + Support 'dired-hide-details-mode' in find-lisp.el + + * lisp/find-lisp.el (find-lisp-find-dired-insert-file): Call + 'dired-insert-set-properties' to support 'dired-hide-details-mode' + in the resulting Dired display. (Bug#78455) + +2025-05-17 Mattias Engdegård <mattiase@acm.org> + + * doc/lispref/searching.texi (Rx Notation): Fix example (bug#76731) + + The example purporting to match C comments was wrong. + Reported by Yue Yi, whose proposed remedy is used here. + +2025-05-17 Mattias Engdegård <mattiase@acm.org> + + * src/lread.c (read0): Don't allow radix 0 or 1. + + This was just a silly mistake introduced in Emacs 29. Found by Pip Cet. + +2025-05-17 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 299d3a44012 Fix saving abbrevs by 'abbrev-edit-save-buffer' + 399d05332ed ; Remove confusing text from ELisp manual + feecb1fbc60 ; * doc/emacs/cmdargs.texi (General Variables): More accu... + 18e1aabbeaa ; Improve documentation of the -L command-line option + c80fbe3f235 typescript-ts-mode: align ternary-chain branches (bug#78187) + 16bfbc6fe31 ; Tramp test fixes + f0ac271da38 ; Time Stamps doc: Clearer customize recipe + 49c06df224a ; * doc/lispref/variables.texi (Default Value): Update. + cbea5997c07 ; * lisp/mh-e/mh-e.el: Commentary: link to The MH-E Manual + 0bf956235e3 Improve Tramp test + eaf01d034c0 * lisp/autorevert.el (auto-revert-remote-files): Adapt do... + e32bb816adb ; Improve documentation of ls-lisp.el + 2d5f2434706 ; * lisp/emacs-lisp/comp.el (native-compile-prune-cache):... + bb735331650 Improve Electric Pair mode documentation (bug#78021) + +2025-05-17 Elías Gabriel Pérez <eg642616@gmail.com> + + Prettify and improve hideshow (bug#78234) + + Buttonize the ellipsis and optionally display in the ellipsis + the total number of hidden lines. + * lisp/progmodes/hideshow.el (hs-display-lines-hidden): New + user option. + (hs-ellipsis): New face. + (hs-make-overlay): Tweak. + (hs--get-ellipsis): New function. + * doc/emacs/programs.texi (Hideshow): Update documentation. + * etc/NEWS: Announce changes. + +2025-05-17 Manuel Giraud <manuel@ledu-giraud.fr> + + Fix `eww-switch-to-buffer' when resorting to `eww' + + * lisp/net/eww.el (eww-switch-to-buffer): Do not bind + `completion-extra-properties' before calling `eww'. + (bug#78372) + +2025-05-17 Richard Lawrence <rwl@recursewithless.net> + + Fix DTSTART date when exporting `diary-float' + + Instead of using current date as DTSTART and then excluding it + when it doesn't match the `diary-float' rule, just use the first + date which matches the rule in `icalendar-recurring-start-year'. + * lisp/calendar/icalendar.el (icalendar--convert-float-to-ical): + Compute the correct date. + * test/lisp/calendar/icalendar-tests.el: Add a test for the + reported test case. (Bug#78085) + +2025-05-17 Elías Gabriel Pérez <eg642616@gmail.com> + + New pulse functions for pulse faces and new file for ring bell fns + + These new pulse functions allow pulse any defined face briefly. + The new file contains functions intended to be used in + `ring-bell-function' as alternatives to `visible-bell'. + * lisp/pulse.el (pulse-face-duration): New user option. + (pulse-flash-face): New function. + * lisp/ring-bell-fns.el (flash-face-attributes) + (flash-face-faces): New user options. + (flash-face-bell-function, flash-echo-area-bell-function): + New functions. (bug#77715) + + * etc/NEWS: Announce changes + +2025-05-17 Eli Zaretskii <eliz@gnu.org> + + Allow nil as valid value for 'url-cookie-save-interval' + + * lisp/url/url-cookie.el (url-cookie-save-interval): Fix doc + string and :type. (Bug#78303) + +2025-05-16 Juri Linkov <juri@linkov.net> + + * lisp/treesit.el (treesit-simple-imenu): Restore the previous behavior. + + Use 'treesit-parser-list' again to not depend on the cursor's position + (bug#78456). + +2025-05-15 Dmitry Gutov <dmitry@gutov.dev> + + vc-git-checkin: Fix calling 'git apply --cached' remotely + + * lisp/vc/vc-git.el (vc-git-checkin) + (vc-git--stash-staged-changes): Fix calling 'git apply --cached' + remotely (bug#78405). + +2025-05-15 Sean Whitton <spwhitton@spwhitton.name> + + default_toplevel_binding, local_toplevel_binding: Loop upwards + + * src/eval.c (default_toplevel_binding, local_toplevel_binding): + Loop upwards, not downwards, given that we want the earliest + relevant binding present in the stack. + +2025-05-15 Sean Whitton <spwhitton@spwhitton.name> + + New top-level buffer-local value functions + + * src/eval.c (local_toplevel_binding) + (Fbuffer_local_toplevel_value, Fset_buffer_local_toplevel_value) + (syms_of_eval): New functions. + * doc/lispref/variables.texi (Default Value): + * lisp/subr.el (setq-local): + * etc/NEWS: Document them. + * test/lisp/emacs-lisp/lisp-tests.el + (core-elisp-tests-4-toplevel-values): New test. + * lisp/progmodes/xref.el (xref--show-xref-buffer) + (xref-show-definitions-buffer-at-bottom): + * lisp/vc/vc-dispatcher.el (vc-setup-buffer): + Use set-buffer-local-toplevel-value. + +2025-05-14 Manuel Giraud <manuel@ledu-giraud.fr> + + Scroll with mouse wheel in calendar (bug#78298) + + * lisp/calendar/calendar.el (calendar-mode-map): Add scrolling + with mouse wheel. + * etc/NEWS: Announce the change. + +2025-05-14 Stefan Monnier <monnier@iro.umontreal.ca> + + cl-extra-tests.el: Follow convention + + * test/lisp/emacs-lisp/cl-extra-tests.el (multiples-of) + (unsigned-byte): Stick to the tradition of accepting nil. + +2025-05-14 Juri Linkov <juri@linkov.net> + + Use JSX comments on jsx treesit nodes in js-ts-mode and tsx-ts-mode + + * lisp/progmodes/js.el (js--treesit-comment-jsx): New internal variable. + (js--treesit-comment-setup): New function. + (js-ts-mode): Set buffer-local 'comment-setup-function' to + 'js--treesit-comment-setup'. + + * lisp/progmodes/typescript-ts-mode.el (typescript-ts-base-mode): + Set buffer-local 'comment-setup-function' to 'js--treesit-comment-setup'. + +2025-05-14 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/emacs-lisp/cl-preloaded.el (cl--define-derived-type): Fix corner case + +2025-05-14 David Ponce <da_vid@orange.fr> + + lisp/emacs-lisp/cl-macs.el (cl--define-derived-type): Fix thinko + +2025-05-13 Eli Zaretskii <eliz@gnu.org> + + Fix description of a remapped command's bindings + + * lisp/help-fns.el (help-fns--key-bindings): Qualify the + description of any menu-bar bindings by remapping. (Bug#78391) + +2025-05-13 Eli Zaretskii <eliz@gnu.org> + + Eglot: Fix parsing file:// URIs on MS-Windows + + * lisp/progmodes/eglot.el (eglot-uri-to-path): Remove the leading + slash in MS-Windows file names only if they begin with a slash. + This adjusts the function to the recent fix for bug#76982 in + 'url-generic-parse-url', which previously would produce file names + that begin with an extra slash. (Bug#78392) + +2025-05-13 Alan Mackenzie <acm@muc.de> + + CC Mode: Fix cc-fonts.el errors for XEmacs. + + * lisp/progmodes/cc-fonts.el (c-font-lock-cpp-messages): Use + c-put-font-lock-face rather than c-put-font-lock-string-face + since we don't have the double quote marks here that the latter + function corrects for. + (c-complex-decl-matchers): Replace cl-delete-duplicates with + the macro c--delete-duplicates. + +2025-05-13 Michael Albinus <michael.albinus@gmx.de> + + * test/README: Tests in *-tests/ directories are also performed. + +2025-05-12 Stefan Monnier <monnier@iro.umontreal.ca> + + help.el: Don't abuse `inhibit-modification-hooks` + + * lisp/help.el (substitute-command-keys): + Set `inhibit-modification-hooks` locally so it doesn't affect + downstream function. + (help--window-setup): Don't let-bind `inhibit-modification-hooks`. + It was introduced accidentally in commit cd87a5c7a18e. + +2025-05-12 Stefan Monnier <monnier@iro.umontreal.ca> + + (hash-table-contains-p): Don't allocate memory (bug#78162) + + * lisp/subr.el (static-when): Remove spurious extra `progn` and improve + warning message's location info. + (hash-table-contains-p): Don't allocate memory (bug#78162). + Suggested by Daniel Mendler <mail@daniel-mendler.de>. + +2025-05-12 Stefan Monnier <monnier@iro.umontreal.ca> + + comint.el: Cosmetic changes + + * lisp/comint.el: Prefer #' to quote function names. + (comint-mode): Turn some of the `make-local-variable`s to `setq-local` + or `defval-local`. + (comint-osc-hyperlink): Delete bogus alias. + (comint-replace-by-expanded-history-before-point): Use `looking-at-p`. + (comint-history-isearch-wrap): Share a bit more code. + +2025-05-12 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/comint.el (comint-delchar-or-maybe-eof): Obey global C-d binding + + Fixes bug#78262. + +2025-05-12 Juri Linkov <juri@linkov.net> + + * lisp/treesit.el (treesit--parser-overlay-offset): New variable. + + (treesit-parsers-at): Use it (bug#77906). + (treesit-forward-sexp, treesit--forward-list-with-default) + (treesit-up-list): Let-bind 'treesit--parser-overlay-offset'. + +2025-05-12 Stefan Monnier <monnier@iro.umontreal.ca> + + simple.el (delete-trailing-whitespace-mode): New minor mode (bug#78264) + + Partly motivated by bug#78097. + + * lisp/simple.el (delete-trailing-whitespace-if-possible): New function. + (delete-trailing-whitespace-mode): New minor mode. + + * lisp/editorconfig.el (editorconfig-trim-whitespaces-mode): + Change default to `delete-trailing-whitespace-mode`. + (editorconfig--get-trailing-ws): Simplify accordingly. + (editorconfig--add-hook-safe-p): Delete function. Don't touch + `safe-local-eval-function` any more. + +2025-05-12 Jens Schmidt <jschmidt4gnu@vodafonemail.de> + + Require key and cert when searching for client cert + + * lisp/net/network-stream.el (network-stream-certificate): + Require :key and :cert when searching auth sources for a client + certificate. (Bug#78189) + +2025-05-12 Michael Albinus <michael.albinus@gmx.de> + + Improve handling of tests in *-tests subdirs + + * test/Makefile.in (subdir_template): Add rules for *-tests subdirs. + + * test/infra/Makefile.in: Remove special handling of eieio, faceup + and so-long. Add recipes for *-tests subdirs. Filter out rules + for *-tests subdirs. + + * test/infra/test-jobs.yml: Regenerate. + +2025-05-12 Eli Zaretskii <eliz@gnu.org> + + Fix filelock-tests on MS-Windows + + * test/src/filelock-tests.el (filelock-tests-file-locked-p-spoiled) + (filelock-tests-unlock-spoiled) + (filelock-tests-kill-buffer-spoiled): Don't special-case + MS-Windows, as it was evidently fixed to signal the same error as + Posix systems. + +2025-05-12 Sean Whitton <spwhitton@spwhitton.name> + Stefan Monnier <monnier@iro.umontreal.ca> + + diff-mode-shared-map: Don't inherit from special-mode-map + + * lisp/vc/diff-mode.el (diff-mode-shared-map): No longer inherit + from special-mode-map. + (diff-mode-map): Tidy up list of unbindings now that we no + longer need to override any bindings from special-mode-map. + (minor-mode-map-alist): <diff-mode-read-only>: Ensure that the + minor mode keymap continues to inherit from special-mode-map by + calling make-composed-keymap here. + +2025-05-11 Eli Zaretskii <eliz@gnu.org> + + Avoid unnecessary calls to GetFileAttributes on MS-Windows + + * src/w32.c (access_attrs): New function, refactored from + 'faccessat'. + (faccessat): Call 'access_attrs' early to determine whether the + file doesn't exist, and if so, avoid calling 'chase_symlinks'. + Also avoid calling 'chase_symlinks' if it is known that the file + cannot be a symlink, given its attributes. (Bug#78341) + +2025-05-11 Eli Zaretskii <eliz@gnu.org> + + Add test for file time-stamp granularity on MS-Windows + + * test/src/fileio-tests.el + (fileio-tests-w32-time-stamp-granularity): New test. + +2025-05-11 Eli Zaretskii <eliz@gnu.org> + + Support sub-second file time-stamps on MS-Windows + + * nt/inc/sys/stat.h (struct stat): New members for nsec part of + file times. + + * lib-src/ntlib.c (convert_time): + * src/w32.c (convert_time): Accept an additional argument + TIME_NSEC and set it to the sub-second part of time. All callers + changed. + +2025-05-11 João Távora <joaotavora@gmail.com> + + Tweak .clangd to work with gcc-compiled Emacs (bug#78367) + + A Gcc configuration of Emacs emits -fstrict-flex-arrays but + clangd doesn't understand that. This causes spurious errors of + "unknown flag" that prevent analysis. So tweak .clangd to the + nearest clang equivalent (which is very similar). + + * .clangd (CompileFlags): Remove -fstrict-flex-arrays, add + -fstrict-flex-arrays=3. + +2025-05-11 João Távora <joaotavora@gmail.com> + + Eglot: fix call hierarchy navigation again (bug#78367, bug#78250) + + * lisp/progmodes/eglot.el (eglot--hierarchy-label): Fix again. + +2025-05-11 Sean Whitton <spwhitton@spwhitton.name> + + diff-mode-map: Unhide some additional M-<foo> + + * lisp/vc/diff-mode.el (diff-mode-map): Don't inherit M-?, + M-SPC, M-DEL and M-S-SPC bindings through from special-mode-map. + +2025-05-11 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/emacs-lisp/cl-macs.el (cl--define-derived-type): Fix partial bootstrap + +2025-05-10 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/net/browse-url.el (browse-url-interactive-arg): Fix bug#78026 + + Don't burp when run from a timer where (this-command-keys) will + usually return an empty vector. + +2025-05-10 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 0d493864cee Fix indentation of XML comments + 1a2c29b5317 Improve Tramp's make-process handling for Solaris + a7dffc2ea38 Document 'time-stamp-time-zone' in Emacs Manual + 0b4eb525b69 Make treesit--simple-indent-eval more permissive (bug#78065) + ed7b55f6bf1 Adapt Tramp tests + b172a1478c1 ; * doc/lispref/tips.texi (Library Headers): Fix wording ... + 81629b2b2ba ; * lisp/gnus/mail-source.el (mail-sources): Fix a typo (... + +2025-05-10 Jostein Kjønigsen <jostein@kjonigsen.net> + + sh-script.el: Improve consistency in variable-use fontification. + + sh-mode--treesit-settings: Ensure all variable use is treated the + same way. + Before this patch the following commands would all be treated differently: + + echo "${var}" + echo "$var" + echo ${var} + echo $var + + Now they are treated the same. + * lisp/progmodes/sh-script.el (sh-mode--treesit-settings): Tweak + rules. (Bug#78167) + +2025-05-10 Manuel Giraud <manuel@ledu-giraud.fr> + + Fall back `eww-switch-to-buffer' to `eww' + + * lisp/net/eww.el (eww-switch-to-buffer): When no EWW buffers + exist, call `eww' instead. + (eww-list-buffers): Do not pop to *eww buffers* when there is no + EWW buffers. (Bug#77967) + +2025-05-09 Vincent Belaïche <vincent.belaiche@biosency.com> + + ix bugs when a SES buffer has named cells, and another don't. + + * lisp/ses.el (ses-list-named-cells): Give a message when the list is empty. + (ses--unbind-cell-name): Do not throw error in a SES buffer w/o + any named cell for gethash from 'ses--named-cell-hashmap' being + 'nil'. + +2025-05-09 Sean Whitton <spwhitton@spwhitton.name> + + Create new test/lisp/vc/vc-tests/ for vc.el tests + + * test/lisp/vc/vc-tests.el: Move ... + * test/lisp/vc/vc-tests/vc-tests.el: ... to here. + * test/lisp/vc/vc-misc-tests.el: Move ... + * test/lisp/vc/vc-tests/vc-test-misc.el: ... to here. + +2025-05-09 Sean Whitton <spwhitton@spwhitton.name> + + New vc-async-checkin user option + + * lisp/vc/vc.el (vc-async-checkin): New option. + (vc-checkin): Don't use with-vc-properties on or display + messages around asynchronous checkins. + * lisp/vc/vc-git.el (vc-git-checkin): + * lisp/vc/vc-hg.el (vc-hg-checkin, vc-hg-checkin-patch): Perform + an async checkin operation when vc-async-checkin is non-nil. + * doc/emacs/vc1-xtra.texi (General VC Options): + * etc/NEWS: Document the new option. + + * lisp/vc/vc-dispatcher.el (vc-wait-for-process-before-save): + New function. + (vc-set-async-update): If the current buffer visits a file, call + vc-refresh-state. + * lisp/vc/vc-hg.el (vc-wait-for-process-before-save): Autoload. + (vc-hg--async-command, vc-hg--async-buffer, vc-hg--command-1): + New utilities, partially factored out of vc-hg-command. + (vc-hg-merge-branch): Use vc-hg--async-command, thereby newly + respecting vc-hg-global-switches. + +2025-05-09 Sean Whitton <spwhitton@spwhitton.name> + + vc-exec-after: New PROC argument + + * lisp/vc/vc-dispatcher.el (vc-exec-after): New PROC argument. + * lisp/vc/vc-hg.el (vc-exec-after): Update declaration. + +2025-05-09 Martin Rudalics <rudalics@gmx.at> + + Fix infinite looping in 'next-frame' and associates (Bug#77985) + + * src/frame.c (next_frame): Rewrite to avoid infinite looping if + FRAME itself does not qualify as candidate frame (Bug#77985). + (Fnext_frame, Fprevious_frame): Adjust do-strings. + * lisp/frame.el (other-frame): Adjust doc-string. + (frame-list-1): New function. + (make-frame-names-alist): Rewrite using 'frame-list-1' instead + of 'next-frame' (Bug#77985). + (delete-other-frames): Rewrite using 'frame-list' instead of + 'next-frame'. + * doc/lispref/frames.texi (Finding All Frames): Minor + clarifications for 'frame-list' and 'next-frame'. + +2025-05-09 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + +2025-05-08 João Távora <joaotavora@gmail.com> + + Eglot: fix navigation in eglot-hierarchy-mode (bug#78250) + + * lisp/progmodes/eglot.el (eglot--hierarchy-label): Take PARENT-URI. Rework. + (eglot--hierarchy-2): Rework. + +2025-05-08 João Távora <joaotavora@gmail.com> + + Flymake: tweak 'fancy' eol diagnostic display + + When calculating the face for boxdraw chars, protect against + diagnostics with an empty first line. Also don't inherit from + :default, which seems to mess up the background color when using + hl-line-mode. + + * lisp/progmodes/flymake.el (flymake--eol-draw-fancy): Tweak + +2025-05-08 Stefan Monnier <monnier@iro.umontreal.ca> + + cl-types: Improve error messages + + * lisp/emacs-lisp/cl-extra.el (cl--derived-type-generalizers): + Check that the type is valid and fully defined. + + * lisp/emacs-lisp/cl-lib.el (cl-generic-generalizers) <derived-type>: + Don't delegate to another method just because the type is invalid. + + * lisp/emacs-lisp/cl-preloaded.el (cl--define-derived-type): + Minor simplification, and improvement to an error message. + +2025-05-08 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/bs.el (bs--goto-current-buffer): Fix thinko in last commit + +2025-05-08 Manuel Giraud <manuel@ledu-giraud.fr> + + Recenter for the calendar (bug#78205) + + * lisp/calendar/cal-move.el (calendar-recenter-last-op): New + variable to track last recenter operation. + (calendar-recenter): New command to recenter the calendar. + * lisp/calendar/calendar.el (calendar-mode-map): Keybinding for + this command. + * doc/emacs/calendar.texi (Scroll Calendar): Document this + command. + * etc/NEWS: Announce this command. + +2025-05-08 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + + The following changes were made by hand, + so that admin/merge-gnulib could succeed + instead of failing because the diff didn’t match. + * admin/gnulib-patches/lib/getloadavg.c.diff: + Remove, as it is no longer needed now that recent + Gnulib has been merged. + * admin/merge-gnulib (GNULIB_TOOL_FLAGS): + Remove the --local-dir="$src"admin/gnulib-patches option, + as it is no longer needed either. + +2025-05-08 Stefan Monnier <monnier@iro.umontreal.ca> + + cl-lib.el (cl-generic-generalizers): Fix partial bootstrap + + * lisp/emacs-lisp/cl-lib.el (cl-generic-generalizers): Tweak the + bootstrap hack to avoid a problem when dumping `bootstrap-emacs` when + `cl-lib.el` has already been compiled. + + * lisp/emacs-lisp/cl-macs.el (list): Move out of `static-if` test. + +2025-05-08 Stefan Monnier <monnier@iro.umontreal.ca> + + (cl-deftype): Precompute the predicate function + + Always define a `cl-deftype-satisfies` predicate (if possible), so + we only need `cl-typep` to "interpret" a type specifier when we use + a compound type but never for the atomic types (e.g. never + in `cl-types-of`). + + * lisp/emacs-lisp/cl-macs.el (cl-typep): Test `cl-deftype-satisfies` first. + Don't handle `real` here any more. + (base-char, character, command, keyword, natnum, real): Define with + `c-deftype`. + (cl-deftype): Precompute the predicate for the atomic derived type, + if applicable. + + * lisp/emacs-lisp/cl-preloaded.el (cl--define-derived-type): + Add argument for the precomputed predicate function. + + * lisp/emacs-lisp/cl-extra.el (cl-types-of): Use `cl-deftype-satisfies` + instead of `cl-type-p`. + +2025-05-07 James Cherti <contact@jamescherti.com> (tiny change) + + Mark !%:.^~, as punctuation rather than symbol constituents + + In Bash, the characters !%:.^~, are not valid in variable names. In sh, + they are not permitted in either function or variable names. Treating + them as punctuation is convenient, as they are rarely used in function + names and never in variable names. Even among commands, their usage is + uncommon. The only character among these that is commonly seen in + command names is '.', although it is rarely used in function names. + + Marking these characters as punctuation, rather than symbol + constituents, enhances the accuracy of symbol detection. + + * lisp/progmodes/sh-script.el: Mark !%:.^~, as punctuation in the + sh-mode-syntax-table syntax table. + +2025-05-07 Stefan Monnier <monnier@iro.umontreal.ca> + + Merge branch 'cl-types' + +2025-05-07 Eli Zaretskii <eliz@gnu.org> + + Improve support of UTF-8 encoded file names in ZIP archives + + * lisp/arc-mode.el (archive-zip-summarize): Support the 0x7075 + UPath Unicode Path Extra Field extension of ZIP format. + (Bug#78290) + +2025-05-07 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/register.el (register-read-with-preview-traditional): Use PRED + +2025-05-07 Stefan Monnier <monnier@iro.umontreal.ca> + + (cl-deftype): Don't set `cl-deftype-handler` directly + + In order to make it easier to change that in the future, let + `cl--define-derived-type` take care of storing the derived + type's function into `cl-deftype-handler`. + + * lisp/emacs-lisp/cl-preloaded.el (cl--define-derived-type): + Change calling convention. Set `cl-deftype-handler`. + * lisp/emacs-lisp/cl-macs.el (cl-deftype): Don't set `cl-deftype-handler`, + instead pass the function to `cl--define-derived-type`. + +2025-05-07 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/emacs-lisp/cl-types.el: Delete file + +2025-05-07 Stefan Monnier <monnier@iro.umontreal.ca> + + cl-types: The big renaming to "derived types" + + `cl-defstruct` also defines a type and is also in CL, so + "cl-type" is not precise enough to talk about those types + defined with `cl-deftype`. Use the term "derived type" to be + more clear, as is done in the HyperSpec. + + * doc/misc/cl.texi (Derived types): Move `cl-deftype` to this + new subsection. Document the use of derived types as method specializers. + + * lisp/emacs-lisp/cl-extra.el (cl--types-of-memo): Rename from + `cl--type-unique`. + (cl--derived-type-dispatch-list): Rename from `cl--type-dispatch-list`. + (cl--derived-type-generalizer): Rename from `cl--type-generalizer`. + (cl--derived-type-generalizers): Rename from `cl--type-generalizers`. + + * lisp/emacs-lisp/cl-lib.el (cl-generic-generalizers) <derived-types>: + Rename from <cl-types-of>. Catch but don't hide errors when a derived + type cannot be used as an atomic type specifier. + + * lisp/emacs-lisp/cl-preloaded.el (cl--derived-type-list): Rename from + `cl--type-list`. + (cl-derived-type-class): Rename from `cl-type-class`. + (cl--derived-type-class-make): Rename from `cl--type-class-make`. + (cl--define-derived-type): Rename from `cl--type-deftype`. + +2025-05-07 David Ponce <da_vid@orange.fr> + + (cl-types-of): Fix two plain bugs + + * lisp/emacs-lisp/cl-extra.el (cl-types-of): Fix error handling. + Don't mutate `found` since it's stored as key in the hash-table. + +2025-05-07 Juri Linkov <juri@linkov.net> + + Update the default value of 'diff-outline-regexp'. + + * lisp/vc/diff-mode.el (diff-outline-regexp): Change the default value + to match the diff command name in recursive diff. Move after + 'diff-hunk-header-re' variable definition used in the new value. + (diff-setup-buffer-type): Change setq of 'diff-outline-regexp' + to buffer-local (bug#78269). + +2025-05-07 Juri Linkov <juri@linkov.net> + + Don't ignore errors in diff-syntax-fontify-hunk. + + * lisp/nxml/nxml-mode.el (nxml-extend-region): + Protect against error "Invalid search bound (wrong side of point)". + + * lisp/vc/diff-mode.el (diff-syntax-fontify-hunk): + Use 'with-demoted-errors' instead of 'ignore-errors'. + +2025-05-07 Stefan Monnier <monnier@iro.umontreal.ca> + + (cl-generic-generalizers): Fix typo in last change + +2025-05-07 Stefan Monnier <monnier@iro.umontreal.ca> + + (cl-generic-generalizers): Skip types that need arguments + + * lisp/emacs-lisp/cl-lib.el (cl-generic-generalizers) "cl-types-of": + make sure the atomic derived type is valid. + +2025-05-06 Po Lu <luangruo@yahoo.com> + + Fix compilation on Android 35 and on Termux + + * configure.ac (gl_cv_onwards_func_tzalloc): Define to "future + OS version" on Android API 35 and later. + Detect posix_spawn* by means of gl_CHECK_FUNCS_ANDROID. + + * src/conf_post.h (tzalloc, tzfree): Define to non-conflicting + names on Android 35 and later. + +2025-05-06 Elijah Gabe Pérez <eg642616@gmail.com> + João Távora <joaotavora@gmail.com> + + Eglot: bind mouse-1 to margin and mode-line code actions + + * lisp/progmodes/eglot.el (eglot-mode-line-action-suggestion): + advertise mouse-1. + (eglot-diagnostics-map): Bind left-margin mouse-1 + (eglot-code-action-suggestion): Advertise mouse 1. Simplify. + +2025-05-06 Stefan Monnier <monnier@iro.umontreal.ca> + + cl-types: Integrate into CL-Lib + + * lisp/emacs-lisp/cl-extra.el (cl--type-unique, cl-types-of) + (cl--type-dispatch-list, cl--type-generalizer): Move to `cl-extra.el`. + (cl--type-generalizers): New function extracted from "cl-types-of" + method of `cl-generic-generalizers`. + + * lisp/emacs-lisp/cl-lib.el (cl-generic-generalizers): New method to + dispatch on derived types. Use `cl--type-generalizers`. + + * lisp/emacs-lisp/cl-macs.el (cl-deftype): Move from `cl-types.el` + and rename from `cl-deftype2`. + (extended-char): Tweak definition to fix bootstrapping issues. + + * lisp/emacs-lisp/cl-preloaded.el (cl--type-list, cl-type-class) + (cl--type-deftype): Move from `cl-types.el`. + + * lisp/emacs-lisp/oclosure.el (oclosure): Don't abuse `cl-deftype` to + register the predicate function. + + * test/lisp/emacs-lisp/cl-extra-tests.el: Move tests from + `cl-type-tests.el`. + +2025-05-05 Stefan Monnier <monnier@iro.umontreal.ca> + + cl-types: Simplify a bit further + + Mostly, get rid of `cl--type-flag` and rely only on the presence/absence + of the type on `cl--types-list` to "flag" erroring-types. + Also, don't try and catch errors during dispatch. + + * lisp/emacs-lisp/cl-types.el (cl--type-dispatch-list): Move to the + relevant section. + (cl--type-parents): Inline into sole caller. + (cl--type-deftype): Add `arglist` argument. + Don't signal an error if the type already existed but wasn't in + `cl--type-list` since that's normal and we can fix it. + Don't touch `cl--type-flag` any more. + Don't add to `cl--type-list` if it can't be used without arguments. + (cl-deftype2): Adjust call accordingly. + (cl--type-error): Inline into sole caller. + (cl-types-of): Be more careful to preserve ordering of types + before passing them to `merge-ordered-lists`. + Add `types` argument for use by dispatch. + Don't bother skipping the `root-type` since that's a built-in type, + so it should never happen anyway. + Don't catch errors if called from dispatch. + Don't bother with `cl--type-flag`. + (cl--type-generalizer): Use new arg of `cl-types-of` instead of + let-binding `cl--type-list`, in case `cl-types-of` ends up (auto)loading + a file or some such thing which needs to use/modify `cl--type-list`. + (cl--type-undefine): Move to end of file. + + * test/lisp/emacs-lisp/cl-types-tests.el (cl-types-test): Remove DAG + test since we don't detect such errors any more. + Relax ordering test when the order is not guaranteed + by parent-relationships. + +2025-05-05 Stefan Monnier <monnier@iro.umontreal.ca> + + (comment-setup-function): Make it usable with `add-function` + + * lisp/newcomment.el (comment-setup-function): Give it a non-nil default. + (comment-normalize-vars): Call it unconditionally. + +2025-05-05 Juri Linkov <juri@linkov.net> + + New variable 'comment-setup-function' for multi-language modes. + + * lisp/newcomment.el (comment-setup-function): New variable. + (comment-normalize-vars): Call non-nil 'comment-setup-function'. + + * lisp/textmodes/mhtml-ts-mode.el + (mhtml-ts-mode--comment-current-lang): New internal variable. + (mhtml-ts-mode--comment-setup): New function. + (mhtml-ts-mode): Set 'comment-setup-function' to + 'mhtml-ts-mode--comment-setup' instead of using + 'c-ts-common-comment-setup' only for JavaScript. + + https://lists.gnu.org/archive/html/emacs-devel/2025-05/msg00025.html + +2025-05-05 Juri Linkov <juri@linkov.net> + + * lisp/vc/diff-mode.el (diff-syntax-fontify-hunk): Add 'ignore-errors'. + +2025-05-05 Juri Linkov <juri@linkov.net> + + * lisp/outline.el (outline-minor-mode-highlight-buffer): Adjust match data. + + After a successful call to 'outline-search-function' + set the end of the match data to the end of the line + that is equivalent to adding ".*" in the regexp. + This accompanies the recent change in 'outline-font-lock-keywords'. + +2025-05-05 David Ponce <da_vid@orange.fr> + + cl-types.el: Speed up deftype and dispatch + + * lisp/emacs-lisp/cl-types.el (cl--type-list): Doc string. + (cl--type-dispatch-list): New variable. + (cl--type-parents): Make it a plain defun. + (cl--type-children, cl--type-dag): Remove. + (cl--type-undefine): Remove duplicate test for `cl--type-p'. Use + `cl--class-children'. Clear `cl--type-flag' instead of + `cl--type-error'. Also remove type from the dispatch list. + (cl--type-deftype): Doc string. Remove useless safeguard of + data on error. Fix some error messages. Clear `cl--type-flag' + when a type is (re)defined. Just push new types on + `cl--type-list'. + (cl--type-error): Set `cl--type-flag' to the symbol `error' and + remove type in error from the dispatch list. + (cl-types-of): Doc string. Remove useless check for + `cl-type-class-p'. Skip types which we are sure will not match. + Simplify creation of the DAG. + (cl--type-generalizer): In the tagcode-function, check only types + that can be dispatched. + (cl-generic-generalizers): Populate the dispatch list. + +2025-05-05 Jostein Kjønigsen <jostein@kjonigsen.net> + + Fix test-regressions in python-ts-mode + + * lisp/progmodes/python.el (python--treesit-settings): Use more + specific selectors for constants. + + * test/lisp/progmodes/python-tests.el + (python-ts-mode-nested-types-face-1) + (python-ts-mode-union-types-face-1) + (python-ts-mode-union-types-face-2): None is now a constant. + +2025-05-05 Stefan Monnier <monnier@iro.umontreal.ca> + + whitespace.el: Collaborate better with `combine-after-change-calls` + + * lisp/whitespace.el: Remove redundant `:group` arguments. + Prefer #' to quote function names. + (whitespace-buffer-changed): Delete function. + (whitespace-color-on): Don't touch `before-change-functions`. + (whitespace--update-bob-eob): Set `whitespace-buffer-changed` here, instead. + (whitespace-post-command-hook): Apply De Morgan. + (whitespace--empty-at-bob-matcher, whitespace-post-command-hook) + (whitespace--update-bob-eob): Use `point-min` and `point-max`. + +2025-05-05 Po Lu <luangruo@yahoo.com> + + Synchronize Android and Haiku terminal frontends with X + + * src/androidterm.c (handle_one_android_event): + + * src/haikuterm.c (haiku_read_socket): Port recent changes to + handle_one_xevent. + +2025-05-04 Juri Linkov <juri@linkov.net> + + Avoid duplication in defining tree-sitter grammar sources. + + * lisp/progmodes/php-ts-mode.el: Require 'html-ts-mode'. + (php-ts-mode--language-source-alist): Remove duplicate source info + for html, css, javascript, jsdoc. + (php-ts-mode-install-parsers): Install pre-defined grammars. + (php-ts-mode): Move 'require' to the top. + + * lisp/textmodes/mhtml-ts-mode.el + (mhtml-ts-mode--language-source-alist): Remove variable + since 'treesit-language-source-alist' is pre-filled by + requiring 'html-ts-mode', 'css-mode', 'js'. + (mhtml-ts-mode-install-parsers): Install pre-defined grammars. + + * test/infra/Dockerfile.emba: Remove 'mhtml-ts-mode' + that doesn't define own grammars. + +2025-05-04 Juri Linkov <juri@linkov.net> + + * lisp/textmodes/markdown-ts-mode.el: Improve. + + (markdown-ts-list-marker): Inherit from 'shadow' like in non-ts mode. + (markdown-ts-block-quote): Inherit from 'italic' like in non-ts mode. + (markdown-ts--treesit-settings): Use 'shadow' for parens in + 'markdown-inline' only under 'inline_link' and 'image'. + Use @markdown-ts-block-quote for 'block_quote'. + Override with 'append' for links. + (markdown-ts--range-settings): Use global html parser for 'html_tag' + since its ranges are interconnected. + (markdown-ts-setup): Create the 'html' parser. + +2025-05-04 João Távora <joaotavora@gmail.com> + + Eglot: allow other keys in window/logMessage (bug#77948) + + * lisp/progmodes/eglot.el (eglot-handle-notification window/logMessage): Fix. + +2025-05-04 Gerd Möllmann <gerd.moellmann@gmail.com> + + Fix support of 'mouse-highlight' on X (bug#78218) + + * src/xterm.c (handle_one_xevent): Fix comparison with tool-bar + and tab-bar window. + +2025-05-04 Yuan Fu <casouri@gmail.com> + + Add line-column tracking for tree-sitter + + Add line-column tracking for tree-sitter parsers. Copied from + comments in treesit.c: + + Technically we had to send tree-sitter the line and column + position of each edit. But in practice we just send it dummy + values, because tree-sitter doesn't use it for parsing and + mostly just carries the line and column positions around and + return it when e.g. reporting node positions[1]. This has + been working fine until we encountered grammars that actually + utilizes the line and column information for + parsing (Haskell)[2]. + + [1] https://github.com/tree-sitter/tree-sitter/issues/445 + [2] https://github.com/tree-sitter/tree-sitter/issues/4001 + + So now we have to keep track of line and column positions and + pass valid values to tree-sitter. (It adds quite some + complexity, but only linearly; one can ignore all the linecol + stuff when trying to understand treesit code and then come + back to it later.) Eli convinced me to disable tracking by + default, and only enable it for languages that needs it. So + the buffer starts out not tracking linecol. And when a + parser is created, if the language is in + treesit-languages-require-line-column-tracking, we enable + tracking in the buffer, and enable tracking for the parser. + To simplify things, once a buffer starts tracking linecol, it + never disables tracking, even if parsers that need tracking + are all deleted; and for parsers, tracking is determined at + creation time, if it starts out tracking/non-tracking, it + stays that way, regardless of later changes to + treesit-languages-require-line-column-tracking. + + To make calculating line/column positons fast, we store + linecol caches for begv, point, and zv in the + buffer (buf->ts_linecol_cache_xxx); and in the parser object, + we store linecol cache for visible beg/end of that parser. + + In buffer editing functions, we need the linecol for + start/old_end/new_end, those can be calculated by scanning + newlines (treesit_linecol_of_pos) from the buffer point + cache, which should be always near the point. And we usually + set the calculated linecol of new_end back to the buffer + point cache. + + We also need to calculate linecol for the visible_beg/end for + each parser, and linecol for the buffer's begv/zv, these + positions are usually far from point, so we have caches for + all of them (in either the parser object or the buffer). + These positions are far from point, so it's inefficient to + scan newlines from point to there to get up-to-date linecol + for them; but in the same time, because they're far and + outside the changed region, we can calculate their change in + line and column number by simply counting how much newlines + are added/removed in the changed + region (compute_new_linecol_by_change). + + * doc/lispref/parsing.texi (Using Parser): Mention line-column + tracking in manual. + * etc/NEWS: Add news. + * lisp/treesit.el: + (treesit-languages-need-line-column-tracking): New variable. + * src/buffer.c: Include treesit.h (for TREESIT_EMPTY_LINECOL). + (Fget_buffer_create): + (Fmake_indirect_buffer): Initialize new buffer fields. + (Fbuffer_swap_text): Add new buffer fields. + * src/buffer.h (ts_linecol): New struct. + (buffer): New buffer fields. + (BUF_TS_LINECOL_BEGV): + (BUF_TS_LINECOL_POINT): + (BUF_TS_LINECOL_ZV): + (SET_BUF_TS_LINECOL_BEGV): + (SET_BUF_TS_LINECOL_POINT): + (SET_BUF_TS_LINECOL_ZV): New inline functions. + * src/casefiddle.c (casify_region): Record linecol info. + * src/editfns.c (Fsubst_char_in_region): + (Ftranslate_region_internal): + (Ftranspose_regions): Record linecol info. + * src/insdel.c (insert_1_both): + (insert_from_string_1): + (insert_from_gap_1): + (insert_from_buffer): + (replace_range): + (del_range_2): Record linecol info. + * src/treesit.c (TREESIT_BOB_LINECOL): + (TREESIT_EMPTY_LINECOL): + (TREESIT_TS_POINT_1_0): New constants. + (treesit_debug_print_linecol): + (treesit_buf_tracks_linecol_p): + (restore_restriction_and_selective_display): + (treesit_count_lines): + (treesit_debug_validate_linecol): + (treesit_linecol_of_pos): + (treesit_make_ts_point): + (Ftreesit_tracking_line_column_p): + (Ftreesit_parser_tracking_line_column_p): New functions. + (treesit_tree_edit_1): Accept real TSPoint and pass to + tree-sitter. + (compute_new_linecol_by_change): New function. + (treesit_record_change_1): Rename from treesit_record_change, + handle linecol if tracking is enabled. + (treesit_linecol_maybe): New function. + (treesit_record_change): New wrapper around + treesit_record_change_1 that handles some boilerplate and sets + buffer state. + (treesit_sync_visible_region): Handle linecol if tracking is + enabled. + (make_treesit_parser): Setup parser's linecol cache if tracking + is enabled. + (Ftreesit_parser_create): Enable tracking if the parser's + language requires it. + (Ftreesit__linecol_at): + (Ftreesit__linecol_cache_set): + (Ftreesit__linecol_cache): New functions for debugging and + testing. + (syms_of_treesit): New variable + Vtreesit_languages_require_line_column_tracking. + * src/treesit.h (Lisp_TS_Parser): New fields. + (TREESIT_BOB_LINECOL): + (TREESIT_EMPTY_LINECOL): New constants. + * test/src/treesit-tests.el (treesit-linecol-basic): + (treesit-linecol-search-back-across-newline): + (treesit-linecol-col-same-line): + (treesit-linecol-enable-disable): New tests. + * src/lisp.h: Declare display_count_lines. + * src/xdisp.c (display_count_lines): Remove static keyword. + +2025-05-04 Gerd Möllmann <gerd.moellmann@gmail.com> + + Fix support of 'mouse-highlight' on NS (bug#78218) + + * src/nsterm.m: ([EmacsView keyDown:]): Add missing '!' in + if-condition. Check tab_bar_window as other window systems do. + +2025-05-03 Philip Kaludercic <philipk@posteo.net> + + Preserve directory structure of local packages + + * lisp/emacs-lisp/package.el (package-unpack): Re-create the + directory structure of the source directory and copy the files + in the right place. + (package-dir-info): Try to find package info in files closer to + the specified package source root. + + (Bug#78017) + +2025-05-03 Eli Zaretskii <eliz@gnu.org> + + Avoid warnings about 'lexical-binding' in 'eval-buffer' + + * src/lread.c (Feval_buffer): Don't emit a lexbind warning if the + buffer already has a local value of 'lexical-binding'. Doc fix. + (Bug#77883) + +2025-05-03 Michael Albinus <michael.albinus@gmx.de> + + Merge from origin/emacs-30 + + 28a276efe87 Fix quoted local file name parts in Tramp + + # Conflicts: + # lisp/net/tramp.el + +2025-05-03 Eli Zaretskii <eliz@gnu.org> + + Fix support of 'mouse-highlight' on MS-Windows console + + * src/w32inevt.c (w32_console_read_socket): Support numerical + value of 'mouse-highlight'. (Bug#78218) + +2025-05-03 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 1f998d11a58 ; * doc/misc/ert.texi (erts files): Improve indexing. + 52183c9596c ; * lisp/battery.el (battery-status-function): Doc fix. + dc3e79a80ee ; * etc/DEBUG: Grammar fix. + 7d02ffe87b4 ; * lisp/international/mule.el (define-coding-system): Do... + +2025-05-03 Matthew Tromp <matthewktromp@gmail.com> (tiny change) + + Add `next-error' support for flymake diagnostics buffers + + This adds `next-error' support for flymake diagnostics buffers. + Buffers created with `flymake-show-buffer-diagnostics' and + `flymake-show-project-diagnostics' are now next-error enabled, + and `next-error' and `previous-error' will navigate through + their listed diagnostics. + * lisp/progmodes/flymake.el (flymake-current-diagnostic-line) + (flymake--diagnostics-next-error): Add. + (flymake-show-diagnostic, flymake-show-buffer-diagnostics) + (flymake-show-project-diagnostics): Set next-error-last-buffer. + (flymake--tabulated-setup): Set next-error-function. + (Bug#77809) + +2025-05-03 Roi Martin <jroi.martin@gmail.com> + + Fix 'Skip' behavior in erts files (bug#76839) + + * lisp/emacs-lisp/ert.el (ert-test--erts-test): Fix 'Skip' + behavior in erts files, so only the test case where it is + specified is skipped. + * test/lisp/emacs-lisp/ert-tests.el (ert-test-erts-skip-one) + (ert-test-erts-skip-last): Add test cases. + +2025-05-03 Sean Whitton <spwhitton@spwhitton.name> + + Improve native--compile-skip-on-battery-p + + * lisp/emacs-lisp/comp-run.el + (native--compile-skip-on-battery-p): Look at %L, %b and %B + format characters. Add commentary. + +2025-05-02 Stefan Monnier <monnier@iro.umontreal.ca> + + (decode_coding): Avoid nested *-change-functions (bug#78042) + + * src/coding.c (decode_coding): Avoid nested *-change-functions (bug#78042). + + * test/src/editfns-tests.el (sanity-check-change-functions-before) + (sanity-check-change-functions-after): Record notifications in + `sanity-check-change-functions-op`. + (sanity-check-change-functions-with-op): Don't rely on + `sanity-check-change-functions-op` always holding only the `op`. + (sanity-check-change-functions-errors): Include the sequence of + notifications in the error info. + (editfns-tests--before/after-change-functions): Add tests for (bug#78042). + +2025-05-02 Spencer Baugh <sbaugh@janestreet.com> + + Fix completion boundaries for TRAMP file names + + Previously, we assumed (roughly) that substitute-in-file-name + always returns a suffix of the original string. But + substitute-in-file-name on "/ssh:user@host:/~/" returns + "/ssh:user@host:~/", preserving the TRAMP magic prefix. Weaken + the assertion in completion--sifn-boundaries to allow this; the + new assertion is more clear about the property we care about, + anyway. + + * lisp/minibuffer.el (completion--sifn-boundaries): Weaken + assertion slightly. + + * test/lisp/net/tramp-tests.el (tramp--test-emacs31-p) + (tramp--split-on-boundary) + (tramp-test51-file-name-completion-boundaries): Add. + +2025-05-02 Sean Whitton <spwhitton@spwhitton.name> + + Move documentation of this-command buffer display condition entry + + * doc/lispref/buffers.texi (Buffer List): Document this-command + buffer display condition entry. + * doc/lispref/windows.texi (Choosing Window): Give an example of + using this-command buffer display condition entry in + display-buffer-alist. + (Buffer Display Action Alists): + * lisp/window.el (display-buffer): Delete documentation of + this-command buffer display condition entry from these locations + because it is not a buffer display action alist entry. + * lisp/subr.el (buffer-match-p): Update cross reference. + +2025-05-02 Sean Whitton <spwhitton@spwhitton.name> + + New user option native-comp-async-on-battery-power + + * lisp/emacs-lisp/comp-run.el + (native-comp-async-on-battery-power): New option. + (battery-status-function): Declare. + (native--compile-skip-on-battery-p): New function. + (comp--run-async-workers): Call it. + * etc/NEWS: Announce the new option. + +2025-05-01 Juri Linkov <juri@linkov.net> + + Embed html, yaml and toml in markdown-ts-mode. + + * lisp/textmodes/markdown-ts-mode.el (markdown-ts--treesit-settings): + Use @italic on the whole 'block_quote'. + (markdown-ts-outline-predicate): New function. + (markdown-ts--range-settings): Embed 'yaml' in host 'markdown', + embed 'toml' in host 'markdown', embed 'html' in host 'markdown-inline', + and use local 'html_block'. + (markdown-ts-setup): Append html/yaml/toml to treesit-font-lock-settings + and treesit-font-lock-feature-list when their grammars are ready. + (markdown-ts-mode): Set comment-start/comment-end. + Set treesit-outline-predicate to 'markdown-ts-outline-predicate'. + + * lisp/textmodes/toml-ts-mode.el + (toml-ts-mode--font-lock-feature-list): New variable. + (toml-ts-mode): Use it. + + * lisp/textmodes/yaml-ts-mode.el + (yaml-ts-mode--font-lock-feature-list): New variable. + (yaml-ts-mode): Use it. + (yaml-ts-mode--outline-nodes): New variable. + (yaml-ts-mode--outline-predicate): Use it. + + * lisp/treesit-x.el (liquid-generic-ts-mode): + Use 'treesit-ready-p' on optional 'yaml' grammar. + Merge 'yaml-ts-mode--font-lock-feature-list'. + +2025-05-01 Juri Linkov <juri@linkov.net> + + Improve elixir-ts--thing-settings. + + * lisp/progmodes/elixir-ts-mode.el (elixir-ts--thing-settings): + Add extra grouping "keywords" to named sexp nodes. + Add "," to anonymous sexp nodes. Use bos/eos. + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode): + Use bos/eos for anonymous sexp nodes for better disambiguation. + + * test/lisp/progmodes/heex-ts-mode-tests.el + (heex-ts-mode-test-indentation): Skip the test when 'elixir' is + missing since 'heex-ts-mode' depends on the 'elixir' grammar. + +2025-05-01 Juri Linkov <juri@linkov.net> + + Avoid adding duplicate items to 'treesit-language-source-alist'. + + * lisp/textmodes/mhtml-ts-mode.el: + * lisp/progmodes/php-ts-mode.el: + Use 'add-to-list' on items in language-source-alist + that should check for duplicate items. + + * test/infra/Dockerfile.emba: Move multi-language mhtml-ts-mode and + php-ts-mode to the end to give their dependent grammars a lower priority. + + * test/lisp/progmodes/js-tests.el (js-ts-mode-test-indentation): + Skip the test when 'jsdoc' is missing since 'js-ts-mode' depends + on the 'jsdoc' grammar. + +2025-05-01 Stefan Monnier <monnier@iro.umontreal.ca> + + register.el (register--jumpable-p): Fix bug#78186 + + While `register--get-method-type` worked fine for `register-val-insert` + it always returns nil for `register-val-jump-to` because it presumed the + method took a single argument. Make it work for multi-arg generic functions. + + * lisp/register.el (register--get-method-type): Add `other-args-type` arg. + (register--jumpable-p): Use it. + +2025-05-01 Alan Mackenzie <acm@muc.de> + + Implement C23 features: + + Improve the handling of #error and #warning in C and C++ Modes. + + * lisp/progmodes/cc-engine.el (c-looking-at-c++-attribute) + (c-enclosing-c++-attribute, c-forward-sws, c-backward-sws): + Handle attributes in C as they have been handled in C++. + (c-forward-align-clause-throw-if-invalid): New macro. + (c-forward-type): Handle alignas, alignof, and _BitInt, putting + a catch block around most of the function to catch invalid uses + of these new keywords. + (c-in-id-arglist): New function. + (c-forward-decl-or-cast-1): Recognize a "maybe" type identifier + as a type in arglists when there is no parameter identifier + associated with it. + + * lisp/progmodes/cc-fonts.el (c-font-lock-cpp-messages): New + function. + (c-cpp-matchers): Move the handling of "invalid" comment + delimiters outside of the block handling CPP directives. + Remove the inline handling of #error and #warning, using the + new function c-font-lock-cpp-messages instead. + (c-get-fontification-context): Handle alignof, alignas, + _BitInt. + (c-font-lock-declarations): Adapt fontification of K&R + parameters to the C23 nameless parameter scheme. + + * lisp/progmodes/cc-langs.el (c-has-quoted-numbers) + (c-stmt-boundary-skip-chars) + (c-recognize-post-brace-list-type-p, c-modifier-kwds) + (c-constant-kwds): Handle C the same as the existing C++ + handling. + (c-cpp-message-directives-re, noncontinued-line-end) + (c-cpp-messages-re, c-cpp-message-match-no): New + c-lang-consts/vars. + (c-cpp-include-directives): New directive embed. + (c-cpp-expr-directives): New directives elifdef, elifndef. + (c-primitive-type-kwds): New types, _Decimal*, bool, char*_t, + nullptr_t. + (c-typeof-kwds): New keyword typeof_unqual. + (c-type-with-paren-kwds, c-type-with-paren-key): New + c-lang-const/vars. + (c-type-modifier-with-parens-kwds) + (c-type-modifier-with-parens-key, c-type-internal-paren-kwds) + (c-type-internal-paren-key): New c-lang-const/vars. + (c-type-modifier-prefix-kwds, c-type-start-kwds): Amend with + the above new c-lang-consts. + (c-no-type-with-equals-kwds, c-no-type-with-equals-key): New + c-lang-const/vars. + (c-modifier-kwds): Add constexpr, auto, and thread_local to the + C value. + (c-paren-nontype-kwds): Add static_assert to the C value. + (c-constant-kwds): Add nullptr to the C value. + (c-regular-keywords-regexp): Include c-type-with-paren-kwds. + (c-recognize-nameless-type-decls): New c-lang-const/var. + + * lisp/progmodes/cc-mode.el (c-leave-cc-mode-mode): Also clear + c-digit-separator properties. + +2025-05-01 Sean Whitton <spwhitton@spwhitton.name> + + New this-command buffer display action alist entry + + * lisp/subr.el (buffer-match-p): New this-command cons cell + condition to implement new this-command buffer display action + alist entry (bug#78082). + * lisp/window.el (display-buffer): + * doc/lispref/windows.texi (Buffer Display Action Alists): + * etc/NEWS: Document the new buffer display action alist entry. + +2025-05-01 Michael Albinus <michael.albinus@gmx.de> + + Improve treesitter tests on emba + + * test/infra/Dockerfile.emba (emacs-tree-sitter): Print language + versions. + + * test/infra/gitlab-ci.yml (.job-template): Pass ${http_proxy}, + ${https_proxy} and ${no_proxy} to the docker call. + (.tree-sitter-template): Add some dependencies. + +2025-05-01 Jostein Kjønigsen <jostein@kjonigsen.net> + + Fix compilation-mode matches for csharp-mode (bug#78128) + + * lisp/progmodes/csharp-mode.el: + (csharp-compilation-re-dotnet-error): + (csharp-compilation-re-dotnet-warning): Ignore leading whitespace. + +2025-05-01 Jostein Kjønigsen <jostein@kjonigsen.net> + + Improve python-ts-mode fontification (bug#78129) + + Fontification based on selectors & code-conventions: + + - Lambda parameters: variable declarations + - For in statements: variable declarations + - Import statements: variable declerations + - Constants: All upper case alphanumerical identifiers + - Types: CamelCase alphanumerical identifiers + - Enums: Enum-values as constants. + + * lisp/progmodes/python.el: + (python--treesit-settings): Improve queries. + +2025-05-01 Jostein Kjønigsen <jostein@kjonigsen.net> + + Improve csharp-ts-mode fontification (bug#78130) + + Improves: + - fontification of generic types with namespace-prefixes + - function-call parameters + - variable use in string interpolation + - implicitly typed parameters in lambda-expressions + - index-expressions + - variables used in return-statements + - variables used in binary expressions + + * lisp/progmodes/csharp-mode.el: + (csharp-ts-mode--font-lock-settings): Improve queries. + +2025-05-01 Spencer Baugh <sbaugh@janestreet.com> + + Replace cl-remove-if with seq-remove in minibuffer.el + + * lisp/minibuffer.el (completion--file-name-table): Replace + cl-remove-if with seq-remove. (bug#78149) + +2025-04-30 João Távora <joaotavora@gmail.com> + + Eglot: tweak previous change (clear Flymake 'Wait' state) + + When we don't have anything to give to Flymake, we still want to + signal we're alive so the mode-line doesn't show a confusing + 'Wait'. + + * lisp/progmodes/eglot.el (eglot--report-to-flymake): Clear 'Wait' + state. + +2025-04-30 Philip Kaludercic <philipk@posteo.net> + + Allow selecting what to copy when installing a local package + + * lisp/emacs-lisp/package.el (package-unpack, package-dir-info): + Check the marked files if in a Dired buffer, and otherwise + fallback on the previous behaviour or if there was no selection. + (package-install-from-buffer): Document the feature. + * etc/NEWS: Mention the change. + + (Bug#78017) + +2025-04-30 Philip Kaludercic <philipk@posteo.net> + + Improve detection of VC package revisions + + * lisp/emacs-lisp/package-vc.el (package-vc-commit): If the + package specification lists a :lisp-dir, use that to search for + Lisp files. + +2025-04-30 Philip Kaludercic <philipk@posteo.net> + + Avoid using symbolic links when installing local VC packages + + * lisp/emacs-lisp/package-vc.el (package-vc--main-file): Use + `expand-file-name' to support :lisp-dir entries outside of the + elpa directory. + (package-vc--unpack-1): Same as above. + (package-vc-install-from-checkout): Instead of creating a + symlink to the requested directory, create an empty directory + and use autoload indirections, analogously to checkouts with + Lisp code in a subdirectory. + + (Bug#78017) + +2025-04-30 Philip Kaludercic <philipk@posteo.net> + + Do a deep-copy when installing a package from a local package + + * lisp/emacs-lisp/package.el (package-unpack, package-dir-info): + Call 'directory-files-recursively' with appropriate arguments. + + (Bug#78017) + +2025-04-30 Alan Mackenzie <acm@muc.de> + + Fix typo in bug#19867 correction (CC Mode indentation bugs) + + * lisp/progmodes/cc-align.el (c-lineup-item-after-paren-at-boi): + Replace an erroneous skip-syntax-backward with + skip-chars-backward. + +2025-04-30 Juri Linkov <juri@linkov.net> + + Fix the match data in elisp-outline-search. + + * lisp/progmodes/elisp-mode.el (elisp-outline-search): + Add 'save-match-data' since 'syntax-ppss' garbles the match data. + +2025-04-30 Juri Linkov <juri@linkov.net> + + * test/infra/Dockerfile.emba: Avoid duplication of tree-sitter data. + + Require ts-mode files in order to add their tree-sitter grammar sources + to 'treesit-language-source-alist'. + +2025-04-30 Juri Linkov <juri@linkov.net> + + Add python tree-sitter grammar data to 'treesit-language-source-alist'. + + * lisp/progmodes/python.el (python-ts-mode): + Use 'treesit-ensure-installed' when it's fboundp. + +2025-04-30 Stefan Monnier <monnier@iro.umontreal.ca> + + Merge branch 'cleanup-register-preview' + +2025-04-30 Stefan Monnier <monnier@iro.umontreal.ca> + + (register-type, register--type): Delete functions + + Automatically figure out which regval can be used for insertion + and jump based on the presence of a matching method. + + * lisp/register.el (register-type, register--type): Delete functions. + (register--get-method-type, register--jumpable-p) + (register--insertable-p): New functions. + (jump-to-register, insert-register): Use them. + * lisp/frameset.el (register--type): Delete method. + +2025-04-30 Stefan Monnier <monnier@iro.umontreal.ca> + + (register-preview-1): Delete function + + * lisp/register.el (register-preview): Add `pred` arg. + (register-preview-1): Delete function. + (register-read-with-preview-fancy): Use `register-preview` instead. + +2025-04-30 Stefan Monnier <monnier@iro.umontreal.ca> + + (register-command-info): Delete function + + * lisp/register.el (register-command-info): Delete function. + (register-read-with-preview-fancy): Don't use it any more. + (jump-to-register, increment-register, view-register) + (insert-register, append-to-register, prepend-to-register): + Pass a `pred` arg instead. + +2025-04-30 Stefan Monnier <monnier@iro.umontreal.ca> + + (register-type): Change arg to be the "regval" + + * lisp/register.el (register-type): Change arg to be the "regval". + (register-read-with-preview-fancy): Adjust call accordingly + +2025-04-30 Stefan Monnier <monnier@iro.umontreal.ca> + + (register-read-with-preview): Add optional `pred` arg + + * lisp/register.el (register--read-with-preview-function): + Improve docstring.. + (register--type) <(eql nil)>: New method. + (register-of-type-alist, register-preview-1) + (register--preview-get-defaults): Replace `types` arg with `pred` arg. + (register-read-with-preview, register-read-with-preview-traditional): + Add `pred` arg. + (register-read-with-preview-fancy): Add `pred` arg. + Use it instead of the `types` info returned by `register-command-info`, + when provided. + +2025-04-30 Stefan Monnier <monnier@iro.umontreal.ca> + + (register-preview-info): Delete struct type + + * lisp/register.el (register-preview-info): Delete struct type. + (register-command-info): Return a list of types, instead. + (register-read-with-preview-fancy): Adjust accordingly. + +2025-04-30 Stefan Monnier <monnier@iro.umontreal.ca> + + (register-preview-info): Delete slot `act` + + * lisp/register.el (register-preview-info): Delete slot `act`. + (register-command-info): Delete arg `:act`. + (register--preview-get-defaults): Rename from + `register--preview-get-defaults` and rewrite with, different args. + (register-read-with-preview-fancy): Use it instead of `act`. + +2025-04-30 Stefan Monnier <monnier@iro.umontreal.ca> + + (register-preview-info): Delete slot `smatch` + + Use the `types` slot to carry that info instead. + + Replace the list of types `(all)` with `(t)` since `t` is the + usual name of the "supertype of all types". + Use the type `null` to represent the fact that empty registers + can be used. Allow an empty list of types to stand for + `(t null)`, i.e. any register even empty ones. + + * lisp/register.el (register-preview-info): Delete slot `smatch`. + (register-command-info): Delete arg `:smatch`. Adjust `:types` instead. + Fix the `copy-rectangle-to-register` case, which disallowed using + an empty register. + (register-of-type-alist): Adjust handling of `types` accordingly. + (register-preview-1): Simplify. + (register-read-with-preview-fancy): Use types instead of `smatch`. + Use it also in place of `act`. + +2025-04-30 Stefan Monnier <monnier@iro.umontreal.ca> + + (register-preview-info): Delete `msg` slot + + * lisp/register.el (register-preview-info): Remove `msg` slot. + (register-command-info): Delete `:msg` args. + (register-read-with-preview-fancy): Compute `msg` from the `prompt`. + +2025-04-30 Stefan Monnier <monnier@iro.umontreal.ca> + + (register-preview-info): Delete `noconfirm` slot + + * lisp/register.el (register-preview-info): Remove `noconfirm` slot. + (register-command-info): Delete `:noconfirm` args. + (register-read-with-preview-fancy): Hardcode the `noconfirm` setting + because it was always exactly the same anyway. + +2025-04-30 Stefan Monnier <monnier@iro.umontreal.ca> + + (register-preview-function): Use a single default again + + * lisp/register.el (register-preview-function): Revert to Emacs<30 value. + (register-use-preview, register-preview, register-preview-1): + Don't touch it. + (register-preview-default): Merge it with `register-preview-default-1`. + (register--preview-function): Delete function. + +2025-04-30 Stefan Monnier <monnier@iro.umontreal.ca> + + (register-read-with-preview-fancy): Fix handling of control chars + + The code assumed that the string returned by `register-preview-function` + has the register name as the first char. This was an + incompatible change which broke packages that set this var, + such as `calculator.el` and others. + Remove this assumption by recording the register names in the + preview buffer on a new `register--name` text property. + While at it, fix a few other problems where control chars were + not pretty printed. + + * lisp/register.el (register-preview-1): Remember the raw + register name in the `register--name` text property. + (register-preview-forward-line): Use the + `register--name` text property. + (register--find-preview): New function. + (register-read-with-preview-fancy): Use it. + If the last command inserted more than one char, only keep the first of + the new chars. + Make sure control chars are pretty printed in the minibuffer. + including minibuffer messages. + +2025-04-30 Stefan Monnier <monnier@iro.umontreal.ca> + + register.el: Fix some inconsistencies in the code + + * lisp/frameset.el (register-val-jump-to): Fix `:cleanup-frames`. + The code did not obey its documented behavior and matched + against the wrong symbols. + + * lisp/register.el (register-command-info) <append-to-register>, + <prepend-to-register>: Remove `number` from the `:types` argument + since those operations fail on numbers. + +2025-04-30 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/register.el: Minor cosmetics + + Remove redundant `:group` arguments. + Prefer #' to quote function names. + Fix some markup on symbol names in docstrings. + +2025-04-30 Werner Lemberg <wl@gnu.org> + + Improve support for Avestan, Old Turkic, and Chakma + + * lisp/international/fontset.el (script-representative-chars, + setup-default-fontset): Add support for Avestan, Old Turkic, and Chakma. + +2025-04-30 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + cc5b1a01a2c ; * doc/misc/efaq-w32.texi (Location of init file): Fix a... + 6c2aaedfceb Fix compilation errors in emacsclient.c with MinGW GCC 15 + d56e5ba97ee ; * etc/DEBUG: Add link to GCC bug #78685. + 80cbd1e31cc ; Fix key notation in Introduction to Emacs Lisp + 1224e5fd961 ; * lisp/files.el (revert-buffer-restore-functions): Doc ... + 79e7eeb3296 ; Improve documentation of 'format-time-string' + 2838b64fc8b ; * lisp/textmodes/text-mode.el (text-mode-variant): Fix ... + 9adb05422ea ; Improve obsolescence of 'text-mode-variant' + 4858d818488 ; * lisp/files.el (revert-buffer-restore-functions): Doc ... + 2a8e223b8d7 ; Mention early-init file in Emacs FAQ for Windows + 14c707b42d9 ; Isearch: Fix key bindings in docstrings + +2025-04-30 Sean Whitton <spwhitton@spwhitton.name> + + cperl-mode-map: Don't bind C-j + + * lisp/progmodes/cperl-mode.el (cperl-mode-map): Don't bind C-j. + The default global mode bindings will DTRT depending on whether + or not electric-indent-mode is on. + +2025-04-30 Robert Pluim <rpluim@gmail.com> + + Fix custom type of 'flymake-show-diagnostics-at-end-of-line' + + * + lisp/progmodes/flymake.el (flymake-show-diagnostics-at-end-of-line): + Add 'fancy' value to custom type. + + * etc/NEWS: "variable" -> "user option". + + (Bug#78148) + +2025-04-29 Stefan Monnier <monnier@iro.umontreal.ca> + + register.el: Remove bogus deftypes and fix associated methods + + * lisp/register.el (frame-register, kmacro-register): Remove bogus deftypes. + (register--type) <oclosure>: Fix kmacro method and generalize it to + any OClosure. + (register--type) <frameset-register>: Fix method and move it to ... + * lisp/frameset.el (register--type) <frameset-register>: ... here, + where `frameset-register` is defined. + +2025-04-29 Juri Linkov <juri@linkov.net> + + Use 'file-equal-p' in 'multi-isearch-read-files' (bug#77678). + + * lisp/misearch.el (multi-isearch-read-files): Replace 'string-equal' + with 'file-equal-p' that should handle abbreviated file names as well. + +2025-04-29 Juri Linkov <juri@linkov.net> + + Ignore parens in strings for outline headings in emacs-lisp-mode. + + * lisp/outline.el (outline-font-lock-keywords): For non-nil + outline-search-function return a lambda that calls the function, + then sets the match data to the end of the line that is equivalent + to adding ".*" in the regexp. Then search functions don't need to + match ".*" themselves. + + * lisp/progmodes/elisp-mode.el (elisp-outline-search): + New function to skip leading parens in strings when searching + for outline headings. + (emacs-lisp-mode): Set buffer-local 'outline-search-function' to + 'elisp-outline-search'. + https://lists.gnu.org/archive/html/emacs-devel/2025-04/msg00934.html + +2025-04-29 Juri Linkov <juri@linkov.net> + + Fix invalid search bound in 'search-within-boundaries'. + + * lisp/isearch.el (search-within-boundaries): Don't go over BOUND. + + * test/lisp/isearch-tests.el (isearch--test-search-within-boundaries): + Test with the BOUND arg as well (bug#78116). + +2025-04-29 Juri Linkov <juri@linkov.net> + + Respect point when changing direction after isearch scrolling. + + * lisp/isearch.el (isearch-repeat): Don't go to isearch-other-end + on changing direction after scrolling (bug#78074). + +2025-04-29 David Ponce <da_vid@orange.fr> + + (cl-types-of): Speed up by caching more of its work + + * lisp/emacs-lisp/cl-types.el (cl--type-parents): Make it a proper function. + (cl--type-children): Use `cl--class-children` and make it a `defsubst`. + (cl--type-dag): η-reduce and make it a `defsubst`. + (cl--type-undefine): Also reset `cl--type-error`. + (cl--type-deftype): Modify `cl--type-list` atomically so we never need + to restore it upon error. Don't test bogus parent here. + (cl-deftype2): Test bogus parent here instead. Also, better preserve + the declarations for the lambda. + (cl-types-of): Do less uncached work. + +2025-04-29 João Távora <joaotavora@gmail.com> + + Flymake: promptly delete eol overlay if source overlay changed + + In the vast majority of cases, changing the source overlay + invalidates the content of the end-of-line overlay, so best to + delete it asap. + + * lisp/progmodes/flymake.el (flymake--delete-overlay): Use + 'flymake--eol-ov' + (flymake--highlight-line): Use some overlay modification hooks. + +2025-04-29 João Távora <joaotavora@gmail.com> + + Eglot: improve diagnostic-reporting performance + + After a change in the buffer has occured, it is often the case + that Flymake is quicker to ask for diagnostics than the server + is to supply them to us. If we're still stuck with old outdated + diagnostics, don't forward them to Flymake, even if it eagerly + asks us for them. + + * etc/EGLOT-NEWS (Changes in upcoming Eglot): Announce changes. + + * lisp/progmodes/eglot.el + (eglot--diagnostics): Rework. + (eglot--report-to-flymake): Also take version. + (eglot-handle-notification textDocument/publishDiagnostics) + (eglot--managed-mode) + (eglot-flymake-backend): Tweak call to eglot--report-to-flymake. + +2025-04-29 Yuan Fu <casouri@gmail.com> + + Update tree-sitter subroutine in Fsubst_char_in_region + + Some explanation: Fsubst_char_in_region used to have a branch, + one branch path calls replace_range, one branch path modifies + the buffer directly. replace_range already calls + treesit_record_change within it, so we needed to make sure we + only call treesit_record_change in the other branch path. + + After I added the call to treesit_record_change, some changes + are made to Fsubst_char_in_region, and the branch was removed. + So no wonder Stefan had the confusion and wrote the FIXME note. + + Now that the branch is gone, we can indeed call + treesit_record_change in the end like signal_after_change. + + * src/editfns.c (Fsubst_char_in_region): Move to end. + +2025-04-29 Po Lu <luangruo@yahoo.com> + + * lisp/progmodes/grep.el (grep-hello-file): Fix another typo. + + * lisp/progmodes/grep.el (grep-hello-file): Fix typos. + +2025-04-29 Sean Whitton <spwhitton@spwhitton.name> + + New log-edit-maybe-show-diff option for log-edit-hook + + * lisp/vc/log-edit.el (log-edit-maybe-show-diff): New function. + (log-edit-hook): Add it as an option. + (log-edit-diff-function): + * etc/NEWS: Document it. + +2025-04-29 Sean Whitton <spwhitton@spwhitton.name> + + log-edit-diff-function leaves the diff-mode buffer's window selected + + This reverts the following two changesets: + + Author: Sean Whitton <spwhitton@spwhitton.name> + AuthorDate: Tue Oct 29 09:40:02 2024 +0800 + + Fix window selection after log-edit-show-diff + + Author: Sean Whitton <spwhitton@spwhitton.name> + AuthorDate: Tue Apr 8 20:36:42 2025 +0800 + + Fix window selection after log-edit-show-diff, again + + This also replaces the following changeset: + + Author: Sean Whitton <spwhitton@spwhitton.name> + AuthorDate: Tue Oct 29 12:52:20 2024 +0800 + + * lisp/vc/log-edit.el (log-edit-diff-function): Document. + + * lisp/vc/log-edit.el (log-edit-diff-function): Document that + the function *should* leave the window selected when it returns. + (log-edit-diff-fileset): + * lisp/vc/vc.el (vc-modify-change-comment): + Don't use save-selected-window (bug#77946). + (vc-diff-patch-string): + Call pop-to-buffer, not display-buffer (bug#77946). + +2025-04-29 Po Lu <luangruo@yahoo.com> + + Port Grep argument autodetection to Android + + * lisp/progmodes/grep.el (grep-hello-file): On Android, copy + sample text to a real directory. + +2025-04-28 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/emacs-lisp/cl-types.el: New file + + * test/lisp/emacs-lisp/cl-types-tests.el: Also, new file. + +2025-04-28 Spencer Baugh <sbaugh@janestreet.com> + + Improve env var handling in read-file-name + + Fix various bugs, including bug#77718, by rewriting the way file + name completion handles environment variable expansion. Instead + of using completion-table-with-quoting to manipulate the string + being completed on, simply make the completion table itself + understand substitute-in-file-name. + + Tests are updated: partial-completion now preserves unexpanded + environment variables. However, partial-completion no longer + works across environment variables containing delimiters; that's + an acceptable sacrifice. + + * lisp/minibuffer.el (completion--sifn-boundaries): Add. + (completion--file-name-table): Rewrite to use + substitute-in-file-name explicitly. (bug#77718) + * test/lisp/minibuffer-tests.el (completion-table-test-quoting): + Update. + +2025-04-28 Spencer Baugh <sbaugh@janestreet.com> + + Don't escape "." in `prin1' when followed by a letter + + Among other users, let-alist widely uses symbols which start with a ".". + Make those symbols print more nicely by tweaking the escaping rules in + print_object to not escape a leading "." followed by a letter. This is + a conservative change to avoid constraining future lexer changes. + + This is a followup to 637dde4aba921435f78d0de769ad74c4f3230aa6, which + removed some unnecessary escaping of "." and "?" when printing symbols + in prin1. (Actually, if we always escaped "?" (which was the case + before 637dde4aba92) then "." only ever needs to be escaped when + string_to_number returns non-nil. So 637dde4aba92 could have just + dropped the escaping of "." with no other changes, if it didn't also + remove escaping of "?") + + * src/print.c (print_object): Don't escape "." as the first + character in a symbol if followed by a letter. (bug#77656). + * test/src/print-tests.el (test-dots): Update for new behavior. + +2025-04-28 Stefan Monnier <monnier@iro.umontreal.ca> + + (Custom-dirlocals-mode): Let `define-derived-mode` do its job + + * lisp/cus-edit.el (Custom-dirlocals-mode-map): Rename from + `custom-dirlocals-map`. + (Custom-dirlocals-menu): Adjust accordingly. + (Custom-dirlocals-mode): Let `define-derived-mode` do its job. + Use `run-mode-hooks`. + +2025-04-28 Sebastián Monía <sebastian@sebasmonia.com> + + url-parse.el: correct code for Windows paths (bug#76982) + + * lisp/url/url-parse.el (url-recreate-url): Handle empty filenames + without errors. + + * test/lisp/url/url-parse-tests.el + (url-generic-parse-url/ms-windows-file-uri-hanlding): Add one + more test for the scenario above. + +2025-04-28 Tim Landscheidt <tim@tim-landscheidt.de> + + Fix ruby lint output regexps + + * doc/misc/flymake.texi (An annotated example backend): + Fix regexp. + + * lisp/progmodes/ruby-mode.el (ruby-flymake-simple) + (ruby-flymake-rubocop): Fix regexp + (https://lists.gnu.org/archive/html/emacs-devel/2025-04/msg00851.html). + +2025-04-27 Dmitry Gutov <dmitry@gutov.dev> + + * doc/emacs/maintaining.texi (VC-Aware Project Backend): + + * doc/emacs/maintaining.texi (VC-Aware Project Backend): + New node (bug#77974). + (Projects): Use "backend" instead of "back-end". + +2025-04-27 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + aa1b55d5210 Fix the Android build + +2025-04-27 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + b5967dda32d ; * doc/misc/ert.texi (Introduction): Be more Lisp-specific. + be4819bd578 Include additional version metadata during Windows install + +2025-04-27 João Távora <joaotavora@gmail.com> + + Flymake: Experimental 'fancy' flymake-show-diagnostics-at-end-of-line + + * doc/misc/flymake.texi (Customizable variables): Describe new + flymake-show-diagnostics-at-end-of-line. + + * etc/NEWS: Mention 'flymake-show-diagnostics-at-end-of-line'. + + * lisp/progmodes/flymake.el + (flymake-show-diagnostics-at-end-of-line): Update docstring. + + * lisp/progmodes/flymake.el (flymake--eol-overlay-summary): + Rework. Move to separate section. + (flymake--update-eol-overlays): Rework. Use 'display'. Move to + separate section. + (flymake--eol-draw-fancy-1, flymake--eol-draw-fancy): New helpers. + (flymake-end-of-line-diagnostics-face): Remove box. + +2025-04-27 Michael Shields <shields@msrl.com> + + Fix use-package :custom-face to set face-defface-spec (bug#77928) + + By default, `face-set-spec' sets the override face spec, so face + attributes are combined with defaults rather than replacing them. + This was a behavior change that was an apparently unintended + consequence of commit 6b344a9. + + Also set the `face-modified' property, which causes Customize to + flag the face as changed outside Customize. + + * doc/misc/use-package.texi (Faces): Document the behavior. + * lisp/use-package/use-package-core.el (use-package-handler/:custom-face): + (use-package): Improve docstring to reflect implementation. + * test/lisp/use-package/use-package-tests.el + (use-package-test/:custom-face-1): (use-package-test/:custom-face-2): + (use-package-test/:custom-face-3): (use-package-test/:custom-face-4): + Add tests. + +2025-04-27 Adam Sjøgren <asjo@koldfront.dk> + + Improve documentation of 'insert-kbd-macro' + + * lisp/macros.el (insert-kbd-macro): Update documentation + of what happens when no macro name is supplied. + + * doc/emacs/kmacro.texi (Save Keyboard Macro): Document + saving 'last-kbd-macro'. (Bug#77317) + +2025-04-27 Sean Whitton <spwhitton@spwhitton.name> + + Mark vc-dav.el as obsolete (bug#77626) + + * lisp/vc/vc-dav.el: Move from here ... + * lisp/obsolete/vc-dav.el: ... to here (bug#77626). + Add Obsolete-since header. + * etc/NEWS: Announce the obsoletion. + +2025-04-27 Sean Whitton <spwhitton@spwhitton.name> + + Improve syncing VC buffers before generating diffs + + * lisp/vc/vc.el (vc-maybe-buffer-sync): Delete. Correct + handling of indirect buffers is now implicitly achieved by + vc-buffer-sync-fileset. + (vc-buffer-sync-fileset): Make NOT-ESSENTIAL argument optional, + new MISSING-IN-DIRS optional argument. Rewrite to handle + directories named in the fileset, not only files. + (vc-ediff): Replace call to vc-maybe-buffer-sync with a call to + vc-buffer-sync-fileset. + (vc-root-diff): Similarly replace call to vc-maybe-buffer-sync. + This means the user is prompted to save additional buffers, that + they likely want to save before generating the diffs. + * test/lisp/vc/vc-misc-tests.el: New file. + +2025-04-27 Sean Whitton <spwhitton@spwhitton.name> + + vc-diff: Delete redundant call to vc-maybe-buffer-sync + + This call is redundant with the subsequent call to + vc-buffer-sync-fileset. I believe this call to + vc-maybe-buffer-sync was reintroduced by accident -- the + changeset adding the call to vc-buffer-sync-fileset deleted a + call to vc-sync-fileset in the same place. + + * lisp/vc/vc.el (vc-diff): Delete redundant call to + vc-maybe-buffer-sync. + * lisp/files.el (find-buffer-visiting): Note in docstring that + this function only ever returns base buffers. + +2025-04-27 Sean Whitton <spwhitton@spwhitton.name> + + Rename vc-buffer-sync's argument to NOT-ESSENTIAL + + * lisp/vc/vc-dispatcher.el (vc-buffer-sync): + * lisp/vc/vc.el (vc-maybe-buffer-sync, vc-diff) + (vc-buffer-sync-fileset, vc-ediff, vc-root-diff): + Rename argument from NOT-URGENT to NOT-ESSENTIAL. + +2025-04-26 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 1f520db97bd * doc/emacs/files.texi (Time Stamp Customization): Typo. + d824b66c242 ; * doc/emacs/search.texi (Isearch Yank): Improve flow. + 62b284f9153 ; * etc/DEBUG: Say that debugging code compiled w/ -Og ca... + 49ea1f64c77 ; Improve documentation of 'modifier-bar-mode' + a975232c0fd ; * doc/emacs/programs.texi (Matching): Fix wording (bug#... + 29142dab316 ; * doc/misc/efaq-w32.texi (MinGW-w64): Fix punctuation (... + 4cd4a801d86 ; * java/res/README: Note origin of emacs_wrench.png. + +2025-04-26 Eli Zaretskii <eliz@gnu.org> + + Fix 'kill-ring-deindent-mode' + + * lisp/indent-aux.el + (kill-ring-deindent-buffer-substring-function): Fix deindenting + for modes which set 'indent-tab-mode' to nil. (Bug#77981) + +2025-04-26 Eli Zaretskii <eliz@gnu.org> + + Avoid signaling errors in 'cursor-face-highlight-mode' + + * lisp/simple.el (redisplay--update-cursor-face-highlight): Don't + go beyond the accessible portion of the buffer. (Bug#77747) + +2025-04-26 Manuel Giraud <manuel@ledu-giraud.fr> + + Reuse calendar temporary faces + + * lisp/calendar/calendar.el (calendar-make-temp-face): Reuse + temporary face produced by calendar. (Bug#78036) + +2025-04-26 Eli Zaretskii <eliz@gnu.org> + + Fix thai-pattachote input method + + * lisp/leim/quail/thai.el (thai-pattachote): Add missing + characters instead of duplicate ones. Suggested by Robert + Nikander <robert.nikander@icloud.com>. (Bug#77998) + +2025-04-26 Jostein Kjønigsen <jostein@kjonigsen.net> + + csharp-mode.el: Improve fontification of string-interpolation exprs + + * lisp/progmodes/csharp-mode.el + (csharp-ts-mode--font-lock-settings): Remove too wide selector, + causing non-string content to be fonitified as strings. Add + additional eselectors to highlight variables inside + interpolation-expressions too. (Bug#78008) + +2025-04-26 Paul Nelson <ultrono@gmail.com> + + Add "forward history" support for some debuggers + + * lisp/progmodes/gud.el (gud-query-cmdline): Add an optional + default-list parameter to allow passing a list of "forward + history" suggestions to the minibuffer. + (perldb, pdb, guiler): Use buffer file name to suggest a default + debugging command via "forward history". + + * doc/emacs/building.texi (Starting GUD): Document the new + feature. + + (Bug#77989) + +2025-04-26 Paul Nelson <ultrono@gmail.com> + + Don't consider "Grep finished" lines as matches for file names + + * lisp/progmodes/grep.el + (grep-compilation-transform-finished-rules): New variable + containing rules to prevent "Grep finished" lines from being + misinterpreted as matches for file names. + (grep-mode): Add these rules to + 'compilation-transform-file-match-alist' (bug#77732). + +2025-04-26 Sean Whitton <spwhitton@spwhitton.name> + + log-edit-insert-message-template: Reorder headers + + * lisp/vc/log-edit.el (log-edit-insert-message-template): Put + Author before Summary when both are to be inserted. + +2025-04-26 Liu Hui <liuhui1610@gmail.com> + + Fix filename completion in Python shell (bug#77853) + + 'comint-filename-completion' may complete the filename at + wrong locations. Users who want proper filename completion + should use specialized completion backends (e.g. Jedi). + * lisp/progmodes/python.el (inferior-python-mode): Remove + 'comint-filename-completion' in 'comint-dynamic-complete-functions'. + +2025-04-26 Spencer Baugh <sbaugh@janestreet.com> + + Improve help-fns-edit-variable for Lisp editing + + Before d50c82f3e98e ("Simplify + 'help-enable-variable-value-editing' using 'string-edit'"), + 'help-fns-edit-variable' would open a buffer in 'emacs-lisp-mode' + and would not allow exiting that buffer with an invalid Lisp + expression. Restore that functionality by enhancing 'string-edit' + to allow choosing a major mode and allow passing a function to + validate the buffer contents before returning. + * lisp/help-fns.el (help-fns-edit-variable): Call 'string-edit', + passing 'emacs-lisp-mode' and 'read'. + * lisp/textmodes/string-edit.el (string-edit--read): Add. + (string-edit): Add :major-mode and :read arguments and avoid + passive voice. + (read-string-from-buffer): Avoid passive voice in docs. + (string-edit-mode-map, string-edit-minor-mode-map) + (string-edit-mode, string-edit-minor-mode): Move 'string-edit' + keybindings to a minor mode. + (string-edit-done): Call 'string-edit--read' before exiting. + (Bug#77834) + +2025-04-26 Pengji Zhang <me@pengjiz.com> + + Make lighter for collapsed minor modes customizable (bug#77361) + + * lisp/bindings.el (mode-line-collapse-minor-modes-to): New + option for the collapsed lighter of minor modes. + (mode-line-collapse-minor-modes): Mention that the collapsed + lighter can be customized. + (mode-line--minor-modes): Use the new option. + +2025-04-26 Daniel Semyonov <daniel@dsemy.com> + + nnfeed: Pass through list request failure reports + + * lisp/gnus/nnfeed.el (nnfeed-request-list): Report the same + message reported by the inheriting backend on failure. + (Bug#74857) + +2025-04-26 Randy Taylor <dev@rjt.dev> + + Fix 'yaml-ts-mode' filling of comments (Bug#77095) + + * lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode--fill-paragraph): + Handle comment filling differently than block_scalars. + (yaml-ts-mode): Set 'comment-start-skip'. + +2025-04-26 kobarity <kobarity@gmail.com> + + Add cache to Python block navigation functions + + * lisp/progmodes/python.el (python-nav-cache) + (python-nav-cache-tick): New variables. + (python-nav-cache-get, python-nav-cache-set) + (python-nav-with-cache): New functions. + (python-nav-beginning-of-block, python-nav-end-of-block): New + wrapper functions. + (python-nav--beginning-of-block): Renamed from + 'python-nav-beginning-of-block'. + (python-nav--end-of-block): Renamed from + 'python-nav-end-of-block'. (Bug#77620) + +2025-04-26 kobarity <kobarity@gmail.com> + + Performance optimization of 'python-info-statement-ends-block-p' + + * lisp/progmodes/python.el (python-info-statement-ends-block-p): + Add a comparison of the indentation of the next statement with + the indentation of the current statement. (Bug#77620) + +2025-04-26 kobarity <kobarity@gmail.com> + + Fix Python block end predicates (bug#77941) + + * lisp/progmodes/python.el (python-info-statement-ends-block-p) + (python-info-end-of-block-p): Add consideration of comments. + * test/lisp/progmodes/python-tests.el + (python-info-statement-ends-block-p-3) + (python-info-end-of-block-p-3): New tests. + +2025-04-26 Jonas Bernoulli <jonas@bernoul.li> + + mode-line-modes-delimiters: New option + +2025-04-26 Michael Albinus <michael.albinus@gmx.de> + + * etc/NEWS: Presentational fixes and improvements. + +2025-04-26 Yuan Fu <casouri@gmail.com> + + Add multivar indent style in typescript-ts-mode (bug#77803) + + * lisp/progmodes/typescript-ts-mode.el: + (typescript-ts-mode-multivar-indent-style): New option. + (typescript-ts-mode--indent-rules): Support both styles. + +2025-04-25 Roi Martin <jroi.martin@gmail.com> + + * Fix missing lexical-binding cookie warning on async compilation (bug#77918) + + * lisp/emacs-lisp/comp-run.el (comp--run-async-workers): Fix missing + lexical-binding cookie warning on async compilation. + +2025-04-25 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/auth-source.el (authinfo--keywords): Avoid obsolete font-lock face vars + +2025-04-25 Sean Whitton <spwhitton@spwhitton.name> + + comment-indent: Handle BOL already within a multiline comment + + * lisp/newcomment.el (comment-indent): Newly handle the case + that BOL is already within a multiline comment (bug#78003). + Thanks to Stefan Monnier for review and reworking the control + flow. + +2025-04-24 Jens Schmidt <jschmidt4gnu@vodafonemail.de> + + Detect more types of split zip archives + + * lisp/arc-mode.el (archive-find-type): Detect more types of + split zip archives. + * test/lisp/arc-mode-tests.el (arc-mode-test-make-file) + (arc-mode-test-make-archive): Factor out functions from ... + (arc-mode-test-zip-ensure-ext): ... this test. + (define-arc-mode-test-on-type): Add macro to test function + `archive-find-type' and use the macro to test detection of + various archive types. (Bug 77898) + +2025-04-24 Eli Zaretskii <eliz@gnu.org> + + Allow to disable 'lexical-binding' + + * lisp/progmodes/elisp-mode.el (elisp-enable-lexical-binding): + Optionally, allow to disable 'lexical-binding'. + +2025-04-24 Elías Gabriel Pérez <eg642616@gmail.com> + + Create major mode for `customize-dirlocals` (bug#77228) + + * lisp/cus-edit.el (Custom-dirlocals-mode): New major mode. + (custom-dirlocals-with-buffer): Move settings to + `Custom-dirlocals-mode'. + +2025-04-23 Juri Linkov <juri@linkov.net> + + Add the keyword ':copy-queries' to 'treesit-language-source-alist'. + + * lisp/treesit-x.el (define-treesit-generic-mode): Add keyword + ':copy-queries t' to the end of 'source'. + + * lisp/treesit.el (treesit-language-source-alist): + Document the keyword ':copy-queries'. + (treesit--install-language-grammar-1): Add &rest args. + Process the keyword args. Call 'treesit--copy-queries' + when :copy-queries is non-nil. + (treesit--copy-queries): Add arg 'source-dir'. Copy queries + from source-dir as well. Copy only the file "highlights.scm". + +2025-04-23 Cecilio Pardo <cpardo@imayhem.com> + + w32: change the way text is measured when using DirectWrite + + Now the glyph outline is inspected directly to get its real size, + as the direct measuring functions give generic values for some + fonts. + * src/w32dwrite.c (data structures): Added data structures from + header files that are not present in the 32bit MinGW build + environment. + (text_extents_internal): Call GetGlyphRunOutline to get exact + glyph vertical bounds. Add new parameter to make this optional + if case that information is not required. + (w32_dwrite_text_extents, w32_initialize_direct_write) + (w32_dwrite_draw): New parameter for 'text_extents_internal'. + (Bug#77171) + +2025-04-23 João Távora <joaotavora@gmail.com> + + Eglot: require bug-fixed Flymake 1.4.1 (bug#77856) + + * lisp/progmodes/eglot.el (Package-Requires) Require Flymake 1.4.1. + +2025-04-23 João Távora <joaotavora@gmail.com> + + Flymake: more concise flymake--tabulated-list-format-base + + * lisp/progmodes/flymake.el (flymake--tabulated-list-format-base): Tweak + +2025-04-23 João Távora <joaotavora@gmail.com> + + Flymake: fix flymake-make-diagnostic for numeric code (bug#77856) + + * lisp/progmodes/flymake.el (flymake-make-diagnostic): Tighten up + type requirements. + (Version): Bump to 1.4.1 + +2025-04-23 Juri Linkov <juri@linkov.net> + + * lisp/desktop.el: Fix the recent cleanup. + + (desktop-read): Use 'file-name-directory' on the file name + returned by 'locate-file'. + +2025-04-22 Juri Linkov <juri@linkov.net> + + Replace some 'treesit-query-compile' with 'treesit-query-valid-p'. + + * admin/tree-sitter/treesit-admin.el + (treesit-admin--verify-major-mode-queries) + (treesit-admin--validate-mode-lang): + * lisp/progmodes/csharp-mode.el + (csharp-ts-mode--test-this-expression) + (csharp-ts-mode--test-interpolated-string-text) + (csharp-ts-mode--test-string-content) + (csharp-ts-mode--test-type-constraint) + (csharp-ts-mode--test-type-of-expression) + (csharp-ts-mode--test-typeof-expression) + (csharp-ts-mode--test-name-equals) + (csharp-ts-mode--test-if-directive) + (csharp-ts-mode--test-method-declaration-type-field): + * lisp/progmodes/php-ts-mode.el + (php-ts-mode--test-namespace-name-as-prefix-p) + (php-ts-mode--test-namespace-aliasing-clause-p) + (php-ts-mode--test-namespace-use-group-clause-p) + (php-ts-mode--test-visibility-modifier-operation-clause-p) + (php-ts-mode--test-property-hook-clause-p): + * lisp/progmodes/typescript-ts-mode.el + (tsx-ts-mode--font-lock-compatibility-bb1f97b): + Use the newer equivalent 'treesit-query-valid-p' + instead of 'treesit-query-compile' with 'ignore-errors'. + +2025-04-22 Juri Linkov <juri@linkov.net> + + * lisp/treesit.el (treesit-show-paren-data--categorize): Add docstring. + + (bug#77906) + +2025-04-22 Juri Linkov <juri@linkov.net> + + * lisp/treesit-x.el: Quote :parent in define-treesit-generic-mode. + + (define-treesit-generic-mode): Support quoted symbol for parent. + (liquid-generic-ts-mode): Quote :parent like quoted all other properties. + +2025-04-22 Juri Linkov <juri@linkov.net> + + * lisp/treesit-x.el: Use 'treesit-ensure-installed'. + + (define-treesit-generic-mode): Append new item + to 'treesit-language-source-alist' instead of prepending. + (treesit-generic-mode-setup): Remove 'source' arg. + Use 'treesit-ensure-installed'. + (liquid-generic-ts-mode): Use 'treesit-ensure-installed'. + (alpinejs-generic-ts-setup): Run setup hook. + (treesit-generic-mode-font-lock-map): Add more mappings. + +2025-04-22 Juri Linkov <juri@linkov.net> + + Fix all issues for the case when tree-sitter is disabled. + + * lisp/treesit.el (treesit-declare-unavailable-functions): + Declare 'treesit-language-abi-version' and 'treesit-library-abi-version'. + + * lisp/progmodes/elixir-ts-mode.el (elixir-ts--range-rules): + * lisp/progmodes/heex-ts-mode.el (heex-ts--range-rules): + * lisp/progmodes/rust-ts-mode.el (treesit-language-source-alist): + Guard with 'treesit-available-p'. + +2025-04-22 Stefan Monnier <monnier@iro.umontreal.ca> + + desktop.el: Janitorial cleanup + + * lisp/desktop.el: Remove redundant `:group` arguments. + Prefer #' to quote function names. + (desktop-var-serdes-funs): Improve docstring markup. + (desktop-clear, desktop-create-buffer): Use lexical-binding. + (desktop--v2s): Avoid (ab)use of ,@ which doesn't splice a list. + (desktop-outvar): Strength-reduce `eval` => `symbol-value`. + (desktop-create-buffer): Don't assume point-min==1. + (desktop-buffer): Belatedly mark as obsolete. + (desktop-read): Use `locate-file`. + +2025-04-22 Po Lu <luangruo@yahoo.com> + + * src/androidfns.c (Fx_display_grayscale_p): Fix value on color displays. + +2025-04-22 Sean Whitton <spwhitton@spwhitton.name> + + Delete unused block-comment-start and block-comment-end + + * lisp/newcomment.el (block-comment-start) + (block-comment-end): Delete. + (comment-indent): + * lisp/cedet/semantic/doc.el + (semantic-doc-snarf-comment-for-tag): + Remove use of the now-deleted variables. + +2025-04-22 Sean Whitton <spwhitton@spwhitton.name> + + Revert addition of electric-block-comment-mode & follow-up commits + + As presently under discussion in bug#77823, the intended new + functionality is not really about comments at all. + Remove it for now to allow us to redesign from a clean slate, + and to deal with the regression reported in bug#77823. + + This reverts the following three changesets: + + Author: Elías Gabriel Pérez <eg642616@gmail.com> + AuthorDate: Mon Mar 17 12:56:52 2025 -0600 + + New minor mode: `electric-block-comment-mode' + + Author: Elías Gabriel Pérez <eg642616@gmail.com> + AuthorDate: Mon Mar 31 17:58:16 2025 -0600 + + Add block-comment-start and block-comment-end to supported modes + + Author: Elías Gabriel Pérez <eg642616@gmail.com> + AuthorDate: Sun Apr 13 12:26:08 2025 -0600 + + Add block-comment variables to cc-mode + +2025-04-22 Gerd Möllmann <gerd.moellmann@gmail.com> + + Realloc less often in adjust_glyph_matrix (bug#77961) + + * src/dispnew.c (adjust_glyph_matrix): Only xnrealloc when the + glyph matrix got wider or taller. + +2025-04-22 Juri Linkov <juri@linkov.net> + + Fix tree-sitter ABI version incompatibility in rust-ts-mode + + * lisp/progmodes/rust-ts-mode.el (treesit-language-source-alist): + For ABI version 15 add the recommended version "v0.24.0". + +2025-04-22 Michael Albinus <michael.albinus@gmx.de> + + Make `man' more portable + + * lisp/man.el (Man-init-defvars): Use [:cntrl:]. Character ranges + with octal numbers aren't portable enough. (Bug#77944) + +2025-04-21 Stefan Monnier <monnier@iro.umontreal.ca> + + (text-clone--maintain): Don't modify the buf from the after-change hook + + * lisp/subr.el (text-clone--pending-overlays): New var. + (text-clone--maintain-overlays): New function, extracted from + `text-clone--maintain`. + (text-clone--maintain): Use it. + +2025-04-21 Po Lu <luangruo@yahoo.com> + + Render lib/getloadavg.c patches more permanent + + * admin/gnulib-patches/lib/getloadavg.c.diff: New file. + + * admin/merge-gnulib (GNULIB_TOOL_FLAGS): Set --local-dir to + admin/gnulib-patches. + + * lib/gnulib.mk.in: Update from Gnulib. + +2025-04-20 João Távora <joaotavora@gmail.com> + + Eglot: use richer diagnostic-making capability of Flymake 1.4.0 + + * lisp/progmodes/eglot.el (Package-Requires): Require Flymake + 1.4.0. + (eglot-handle-notification): Tweak. + +2025-04-20 João Távora <joaotavora@gmail.com> + + Flymake: bump package version to 1.4.0 + + * lisp/progmodes/flymake.el (Version): Bump to 1.4.0. + + * etc/NEWS: Add entries for recent Flymake improvements. + +2025-04-20 João Távora <joaotavora@gmail.com> + + Flymake: rework, simplify and address problems of recent change (bug#75841) + + Various problems were addressed: + + - Unbreak Flymake for Emacs 26.3. Due to use of some Elisp constructs, + the change completely broke compatibility to Emacs < 29.1. That + violated Flymake's status as a :core package as highlighted in its + description, which has implications for packages depending on it (such + as Eglot); + + - No new two commands are needed (they weren't documented in the manual + anyway). The new functionality was integrated in the existing + flymake-show-buffer-diagnostics; + + - Some helper functions aren't needed at all (they weren't marked + internal anyway); + + - The new hook called only when a particular function is called + non-interactively in a particular way is not useful. A case for the + usefulness (if any) of this hook must be made separately. Such a hook + should be documented in the manual; + + - Added missing recentering after revealing diagnostic in buffer; + + - The menu entry "List all problems" was never intended to direct the + user the user to any particular problem at point; + + - The useful new functionality is called out in the manual and NEWS. + + * lisp/progmodes/flymake.el (flymake--indicator-overlay-spec): + Use flymake-show-buffer-diagnostics-at-mouse. + (flymake-mode-map): Recover old definition. + (flymake-after-show-buffer-diagnostics-hook): Remove hook. + (flymake-show-buffer-diagnostics): Rework. + (flymake-show-diagnostic, flymake-goto-diagnostic): Rework + docstring. + (flymake-show-buffer-diagnostics-at-event-position) + (flymake-show-buffer-diagnostics-at-event-line): Delete undocumented commands. + (flymake-diagnostics-at-mouse-event) + (flymake-pulse-momentary-highlight-region): Delete non-helpful + helper. + + * doc/misc/flymake.texi (listing diagnostics): Mention new + functionality. + +2025-04-20 João Távora <joaotavora@gmail.com> + + Flymake: address some compatibility problems with older Emacsen + + Can't use with-supressed-warnings, introduced in Emacs 27.1. Also can't + use multi-arg setq-local, probably introduced around the same time. + + This commit by itself still doesn't allow Flymake to be loaded in Emacs + < 29. That fix will come in a later commit. + + * lisp/progmodes/flymake.el (flymake--mode-line-counter-map): + Use with-no-warnings. + + * lisp/progmodes/flymake.el (flymake--resize-margins): Use setq, + setq-local not needed. + +2025-04-20 João Távora <joaotavora@gmail.com> + + Flymake: dynamically resize and layout diagnostic listings + + Since 'origin' and 'code' are new separate optional attributes of each + diagnostic, it becomes important to not waste space in these listings + when these are absent. When a specific column isn't used by any line, + omit it. Also spare just enough horizontal space to hold the largest + element in each column. + + * lisp/progmodes/flymake.el + (flymake--tabulated-setup): New helper. + (flymake-diagnostics-buffer-mode) + (flymake-project-diagnostics-mode): Use flymake--setup-tabulated-listing. + (flymake--fit-diagnostics-window): New helper. + (flymake--tabulated-list-format-base): Rename from + flymake--diagnostics-base-tabulated-list-format. + (flymake--tabulated-setup-1): Rename and rework from + flymake--tabulated-entries-1. + (flymake--diagnostics-buffer-entries): Remove. + (flymake-diagnostics-buffer-mode) + (flymake-project-diagnostics-mode): Simplify. + (flymake--project-diagnostics-entries): Remove. + +2025-04-20 João Távora <joaotavora@gmail.com> + + Flymake: new flymake-diagnostic-format-alist (bug#77439, bug#77480) + + * lisp/progmodes/flymake.el (flymake-diagnostic-text): Overhaul. + (flymake-diagnostic-format-alist): New defcustom. + (flymake--diagnostic-format): New util. + (flymake--eol-overlay-summary) + (flymake--highlight-line) + (flymake-eldoc-function): Use flymake--diagnostic-format. + (flymake--tabulated-diagnostic-origin): New helper. + (flymake--tabulated-entries-1): Use flymake--tabulated-diagnostic-origin. + (flymake--diagnostics-base-tabulated-list-format): "Backend" -> "Origin" + + * doc/misc/flymake.texi (Customizable variable): Mention new variable. + +2025-04-20 João Távora <joaotavora@gmail.com> + + Flymake: more powerful flymake-make-diagnostic and rework manual + + Flymake backends may now explicitly specify an origin and a code for a + diagnostic in addition to the textual description. This change lays + groundwork for richer diagnostic listings and user options for + summarizing diagnostics, addressing bug#77439 and bug#77480. + + * doc/misc/flymake.texi (Flymake API): Rename from "Extending + Flymake". Rework. + (Inspecting diagnostics): New section. + + * lisp/progmodes/flymake.el (flymake--diag): Add origin, code and + message. Remove text. + (flymake-make-diagnostic): Support new origin, code and message. + (flymake-diagnostic-text): Rework. + +2025-04-20 Juri Linkov <juri@linkov.net> + + * lisp/treesit.el (treesit-show-paren-data--categorize): Fix off-by-one error. + + (bug#77906) + +2025-04-20 Juri Linkov <juri@linkov.net> + + * lisp/treesit.el (treesit-cycle-sexp-type): Add optional arg 'interactive'. + + Display the message only for interactive usage. + +2025-04-20 Juri Linkov <juri@linkov.net> + + Fix indentation test failure for elixir-ts--indent-rules + + * lisp/progmodes/elixir-ts-mode.el (elixir-ts--indent-rules): + Add query for Elixir embedded in Heex (bug#76788). + + * lisp/progmodes/heex-ts-mode.el (heex-ts-mode): Append + treesit-simple-indent-rules to elixir-ts--indent-rules. + +2025-04-20 Michael Albinus <michael.albinus@gmx.de> + + Fix emerge.el for remote files + + * lisp/vc/emerge.el (emerge-make-diff-list) + (emerge-make-diff3-list): Set proper `default-directory' in order + to support remote files. (Bug#6850, Bug#74352) + + * test/lisp/vc/emerge-tests.el: New file. + +2025-04-20 Stefan Monnier <monnier@iro.umontreal.ca> + + (savehist-minibuffer-hook): Exclude uninterned history vars + + * lisp/savehist.el (savehist--reload): Don't bother merging the value + of vars that were not changed. + (savehist-minibuffer-hook): Exclude uninterned history vars. + +2025-04-20 Po Lu <luangruo@yahoo.com> + + Temporary fix for compilation on Android API levels <= 13 + + * lib/getloadavg.c (getloadavg): Don't use sysinfo on Android + API levels <= 13. This will be resolved in Gnulib shortly, with + any luck. + +2025-04-20 Vincenzo Pupillo <v.pupillo@gmail.com> + + Fix indentation of "{" on a new line of a function declaration + + * lisp/progmodes/js.el (js--treesit-switch-body-helper): New + anchor helper function for the switch_body. + (js--treesit-member-chained-expression-helper): New anchor + helper function for chained calls in member_expression. + (js--treesit-arrow-function-helper): New anchor helper + function for arrow_function. + (js--treesit-indent-rules): Fix rule for the indentation of + "{" when of a new line of a function declaration. (Bug#76704) + Fix the indentation of the parent of arrow_function, member_expression, + switch_body, ternary_expression and sequence_expression. + +2025-04-20 Paul Eggert <eggert@cs.ucla.edu> + + Omit trailing white space in one line + + * oldXMenu/Recomp.c: Omit trailing spaces in C source code line. + This was the only such line found by this command: + grep '[ ]$' $(git ls-files | grep '\.[chmy]$') + +2025-04-20 Paul Eggert <eggert@cs.ucla.edu> + + Use -Wtrailing-whitespace when warning + + * configure.ac: When enabling GCC warnings, enable GCC 15’s new + -Wtrailing-whitespace option if available, as that’s the Emacs style. + +2025-04-20 Paul Eggert <eggert@cs.ucla.edu> + + Pacify GCC 15 -Wunterminated-string-initialization + + * src/fns.c (hexbuf_digest): + * src/json.c (json_out_string): + Add ATTRIBUTE_NONSTRING to character arrays that are not strings. + +2025-04-20 Paul Eggert <eggert@cs.ucla.edu> + + Pacify GCC 15 -Wanalyzer-null-dereference + + * src/emacs.c (find_emacs_executable): Add an eassume. + This pacifies -Wanalyzer-null-dereference with gcc (GCC) 15.0.1 + 20250329 (Red Hat 15.0.1-0). + +2025-04-20 Paul Eggert <eggert@cs.ucla.edu> + + Avoid name clashes with static GnuTLS + + Work around a bug in GnuTLS 3.7.11 and earlier: when built + statically, its mistakenly exports symbols hash_lookup and + hash_string, which collide with Emacs symbols of the same name, + preventing temacs from linking statically. Problem reported by + Greg A. Woods (Bug#77476). + + Because GnuTLS never uses hash_lookup or hash_string this issue + ordinarily doesn’t seem to prevent temacs from linking to GnuTLS + on GNU/Linux, as it’s linked dynamically and the dynamic linker + never needs to resolve references to either symbol. However, I + suppose a clash or bug could occur even with dynamic linking if + Emacs later loads a module that uses either symbol. + + Although GnuTLS should be fixed, Emacs should link statically to + current and older GnuTLS versions in the meantime, and it should + avoid potential problems with dynamic linking. Renaming the two + clashing names is an easy way to do this. For consistency with + the new name for hash_lookup, also rename hash_lookup_with_hash + and hash_lookup_get_hash. + + * src/fns.c (hash_find_with_hash): Rename from hash_lookup_with_hash. + (hash_find): Rename from hash_lookup. + (hash_find_get_hash): Rename from hash_lookup_get_hash. + (hash_char_array): Rename from hash_string. + All uses changed. + +2025-04-20 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + +2025-04-20 Paul Eggert <eggert@cs.ucla.edu> + + Don’t use Gnulib’s locale-h module + + * admin/merge-gnulib (AVOIDED_MODULES): + Add locale-h, as Emacs should’t need this Gnulib module. + This change is needed for when we next run admin/merge-gnulib, + as some Gnulib dependencies changed recently. + +2025-04-20 Paul Eggert <eggert@cs.ucla.edu> + + Pacify "statement not reached" in value_cmp + + Problem found by Oracle Developer Studio 12.6. + * src/fns.c (value_cmp): Omit unnecessary goto. + +2025-04-20 Paul Eggert <eggert@cs.ucla.edu> + + Fix libsrc assumption in src/Makefile.in + + * src/Makefile.in (ETAGS): Don’t assume $(libsrc) = ../lib-src. + +2025-04-20 Sean Whitton <spwhitton@spwhitton.name> + + vc-user-edit-command: Add trailing space to initial input + + * lisp/vc/vc-dispatcher.el (vc-user-edit-command): Add trailing + space to initial input to ease adding additional flags. + +2025-04-19 Werner Fink <werner@suse.de> + + Fix seccomp-filter for newer Linux kernels + + * lib-src/seccomp-filter.c (MAP_DROPPABLE): Define if undefined. + (main): Use MAP_DROPPABLE flag. Allow `tcgetattr' call of glibc + on physical terminal devices. (Bug#77232) + +2025-04-19 Kazuhiro Ito <kzhr@d1.dion.ne.jp> + + Fix 'rfc6068-parse-mailto-url' with 'inhibit-eol-conversion' + + * lisp/mail/rfc6068.el (rfc6068-parse-mailto-url): Fix EOL type to + CRLF and never inhibit EOL conversion in decoding. (Bug#77776) + +2025-04-19 shipmints <shipmints@gmail.com> + + Strip text properties on recentf entries, when saved (bug#77140) + + Text properties are added by common completion frameworks, and + serve no purpose when stored in 'recentf-save-file', waste + space, and slow loading the file. + + * lisp/recentf.el (recentf-dump-variable): Process string values + through 'substring-no-properties'. + +2025-04-19 Peter Oliver <git@mavit.org.uk> + + Provide Open Age Ratings Service metadata + + * etc/emacs.metainfo.xml: Add a <content_rating/> section. + (Bug#77492), this and the preceding 2 commits. + +2025-04-19 Peter Oliver <git@mavit.org.uk> + + Tweak AppStream metadata to satisfy `appstream-util validate' + + * etc/emacs.metainfo.xml: `appstream-util validate' suggests that + screenshot height and width attributes should match the actual size of + the image, and that captions be no longer than 50 chars and do not end + in `.'. Follow those rules. + +2025-04-19 Peter Oliver <git@mavit.org.uk> + + Add AppStream metadata about supported and recommended hardware + + * etc/emacs.metainfo.xml: Note that Emacs is best with a keyboard, but + other forms of input are possible. Also note that Emacs can access the + Internet. A modestly sized display is sufficient. + +2025-04-19 Stefan Kangas <stefankangas@gmail.com> + + xterm.c: Move GTK3-specific variables into narrower scopes + + Avoid declaring GTK3-specific variables in larger-than-necessary scopes, + especially under #ifdefs. Instead, declare them where used. This improves + readability and reduces #ifdef clutter without changing behavior. + + * src/xterm.c: [HAVE_GTK3] (x_update_opaque_region): + (XTframe_up_to_date, x_new_focus_frame, handle_one_xevent) + (x_ignore_errors_for_next_request, x_stop_ignoring_errors): Clean up + variable declarations. + +2025-04-19 Michael Albinus <michael.albinus@gmx.de> + + Merge from origin/emacs-30 + + 2a45f0bceba * lisp/progmodes/heex-ts-mode.el (heex-ts): Fix :group name. + 9750333dde9 Fix typescript-ts-mode indentation (bug#77803) + +2025-04-19 Eli Zaretskii <eliz@gnu.org> + + Rename 'treesit-auto-install' to 'treesit-auto-install-grammar' + + * etc/NEWS: + * lisp/treesit.el (treesit-auto-install-grammar): Rename from + 'treesit-auto-install'; all users changed. Doc fix. + (treesit-ensure-installed): Doc fix. + +2025-04-19 Yuan Fu <casouri@gmail.com> + + Merge from savannah/emacs-30 + + ef8bfe90b72 Handle offset in treesit--update-ranges-local (bug#77848) + + # Conflicts: + # lisp/treesit.el + +2025-04-19 Yuan Fu <casouri@gmail.com> + + Merge from savannah/emacs-30 + + 01d4eb3dd42 ; Improve doc string of 'insert-char' + 93ad8407ed8 * admin/notes/emba: Fix docker build instruction. + b901290ae7f * doc/lispref/text.texi (Margins): Grammar fix. + 16855c89dde Merge branch 'emacs-30' of git.savannah.gnu.org:/srv/git/... + 8792d3431b1 Backport: Fix tree-sitter tests on Emba + + # Conflicts: + # test/infra/Dockerfile.emba + +2025-04-19 Yuan Fu <casouri@gmail.com> + + Merge from savannah/emacs-30 + + 2b535a9c771 ; Improve documentation of some functions in files-x.el + 45cf832ac75 Fix deleting the first line of calc trail + +2025-04-19 Yuan Fu <casouri@gmail.com> + + Merge from savannah/emacs-30 + + 17418125353 lisp/help.el (help-form-show): Improve last change (bug#7... + +2025-04-18 Juri Linkov <juri@linkov.net> + + Fix parens inside links in markdown-ts--treesit-settings. + + * lisp/textmodes/markdown-ts-mode.el (markdown-ts--treesit-settings): + Override paren delimiter inside inline link. + https://lists.gnu.org/archive/html/emacs-devel/2025-04/msg00655.html + +2025-04-18 Juri Linkov <juri@linkov.net> + + Embed elixir in heex as well as elixir->heex->elixir (bug#76788). + + * lisp/progmodes/elixir-ts-mode.el (elixir-ts--range-rules): + Rename to a shorter name from 'elixir-ts--treesit-range-rules'. + (elixir-ts--font-lock-feature-list, elixir-ts--thing-settings) + (elixir-ts--range-rules): New variables with default values + extracted from 'elixir-ts-mode'. + (elixir-ts-mode): Use 'elixir-ts--font-lock-feature-list', + 'elixir-ts--thing-settings', 'elixir-ts--range-rules' + and 'heex-ts--range-rules'. + Use 'treesit-merge-font-lock-feature-list' to merge + 'heex-ts--font-lock-feature-list'. + + * lisp/progmodes/heex-ts-mode.el + (heex-ts--font-lock-feature-list, heex-ts--range-rules): + New variables. + (heex-ts-mode): Use 'heex-ts--font-lock-feature-list', + 'heex-ts--range-rules'. Merge 'elixir-ts--font-lock-settings', + 'elixir-ts--font-lock-feature-list', 'elixir-ts--thing-settings' + for embedding elixir in heex. Enable the 'sexp' navigation + by default with 'treesit-cycle-sexp-type'. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode): Append + 'treesit-range-rules' to possibly already existing list in + 'treesit-range-settings'. + + * lisp/treesit.el (treesit-language-at-point-default): + Optimize to use 'when-let*'. + +2025-04-18 Juri Linkov <juri@linkov.net> + + Lock tree-sitter language grammars to verified versions. + + * admin/notes/tree-sitter/build-module/build.sh: + Update org for toml/yaml. + + * admin/tree-sitter/treesit-admin.el + (treesit-admin--builtin-language-sources): + Add verified versions. + + * lisp/progmodes/c-ts-mode.el: + Append language source to treesit-language-source-alist. + (c-ts-mode, c++-ts-mode): Use treesit-ensure-installed. + + * lisp/progmodes/cmake-ts-mode.el: + Append language source to treesit-language-source-alist. + (cmake-ts-mode): Use treesit-ensure-installed. + + * lisp/progmodes/csharp-mode.el: + Append language source to treesit-language-source-alist. + (csharp-ts-mode): Use treesit-ensure-installed. + + * lisp/progmodes/dockerfile-ts-mode.el: + Append language source to treesit-language-source-alist. + (dockerfile-ts-mode): Use treesit-ensure-installed. + + * lisp/progmodes/elixir-ts-mode.el: + Append language source to treesit-language-source-alist. + (elixir-ts-mode): Use treesit-ensure-installed. + + * lisp/progmodes/go-ts-mode.el: + Append language source to treesit-language-source-alist. + (go-ts-mode, go-mod-ts-mode, go-work-ts-mode): + Use treesit-ensure-installed. + + * lisp/progmodes/heex-ts-mode.el: + Append language source to treesit-language-source-alist. + (heex-ts-mode): Use treesit-ensure-installed. + + * lisp/progmodes/java-ts-mode.el: + Append language source to treesit-language-source-alist. + (java-ts-mode): Use treesit-ensure-installed. + + * lisp/progmodes/js.el: + Append language source to treesit-language-source-alist. + (js-ts-mode): Use treesit-ensure-installed. + + * lisp/progmodes/json-ts-mode.el: + Append language source to treesit-language-source-alist. + (json-ts-mode): Use treesit-ensure-installed. + + * lisp/progmodes/lua-ts-mode.el: + Append language source to treesit-language-source-alist. + (lua-ts-mode): Use treesit-ensure-installed. + + * lisp/progmodes/php-ts-mode.el + (php-ts-mode--language-source-alist): + Update versions from comments in ts-modes. + Append to treesit-language-source-alist. + (php-ts-mode-install-parsers): + Use treesit-language-source-alist directly. + (php-ts-mode): Use treesit-ensure-installed. + + * lisp/progmodes/ruby-ts-mode.el: + Append language source to treesit-language-source-alist. + (ruby-ts-mode): Use treesit-ensure-installed. + + * lisp/progmodes/rust-ts-mode.el: + Append language source to treesit-language-source-alist. + (rust-ts-mode): Use treesit-ensure-installed. + + * lisp/progmodes/sh-script.el: + Append language source to treesit-language-source-alist. + (bash-ts-mode): Use treesit-ensure-installed. + + * lisp/progmodes/typescript-ts-mode.el: + Append language source to treesit-language-source-alist. + (typescript-ts-mode, tsx-ts-mode): Use treesit-ensure-installed. + + * lisp/textmodes/css-mode.el: + Append language source to treesit-language-source-alist. + (css-ts-mode): Use treesit-ensure-installed. + + * lisp/textmodes/html-ts-mode.el: + Append language source to treesit-language-source-alist. + (html-ts-mode): Use treesit-ensure-installed. + + * lisp/textmodes/markdown-ts-mode.el: + Append language source to treesit-language-source-alist. + (markdown-ts-mode): Use treesit-ensure-installed. + + * lisp/textmodes/mhtml-ts-mode.el + (mhtml-ts-mode--language-source-alist): + Append to treesit-language-source-alist. + (mhtml-ts-mode-install-parsers): + Use treesit-language-source-alist directly. + (mhtml-ts-mode): Use treesit-ensure-installed. + + * lisp/textmodes/toml-ts-mode.el: + Append language source to treesit-language-source-alist. + (toml-ts-mode): Use treesit-ensure-installed. + + * lisp/textmodes/yaml-ts-mode.el: + Append language source to treesit-language-source-alist. + (yaml-ts-mode): Use treesit-ensure-installed. + + * test/infra/Dockerfile.emba: Add verified versions + to treesit-language-source-alist. + +2025-04-18 Juri Linkov <juri@linkov.net> + + * lisp/treesit.el (treesit-auto-install): New defcustom. + + (treesit-ensure-installed): New function. + +2025-04-18 Robert Pluim <rpluim@gmail.com> + + Match mail headers case-insensitively when encoding + + * lisp/mail/rfc2047.el (rfc2047-encode-message-header): Bind + 'case-fold-search' to t when looking up the encoding method, + otherwise a header spelled "CC" is encoded using the wrong + method. (Bug#77866) + +2025-04-18 Stefan Monnier <monnier@iro.umontreal.ca> + + (tab-bar-tests-quit-restore-window): Try and clarify the skip + + * test/lisp/tab-bar-tests.el (tab-bar-tests-quit-restore-window): + Rewrite the `skip-unless` based on the code's history because + I found the current code quite confusing. + +2025-04-18 Sean Whitton <spwhitton@spwhitton.name> + + Bind new window layout commands under C-x w + + * lisp/window.el (rotate-windows-repeat-map) + (window-layout-rotate-repeat-map, window-layout-flip-repeat-map): + New keymaps. + (window-prefix-map): Bind new window layout commands. + * etc/NEWS: Rewrite entry for the new commands. + +2025-04-18 Yuan Fu <casouri@gmail.com> + + Add guard in treesit-language-at-point-default (bug#77870) + + * lisp/treesit.el (treesit-language-at-point-default): Return + nil if there's no parser in the buffer. + (treesit-parsers-at): Add docstring for parser order. + +2025-04-18 Yuan Fu <casouri@gmail.com> + + Add missing OFFSET arg to treesit--update-ranges-local (bug#77848) + + * lisp/treesit.el (treesit--update-ranges-local): + (treesit--update-range-1): Add missing OFFSET arg. + +2025-04-18 Yuan Fu <casouri@gmail.com> + + Make sure prog-fill-reindent-defun work for strings too + + My previous commit foolishly excluded strings from the + condition, now add them back. + + * lisp/progmodes/prog-mode.el (prog-fill-reindent-defun): + Include strings. + +2025-04-17 Stefan Kangas <stefankangas@gmail.com> + + pgtk: Make x-display-grayscale-p return Qt + + We already unconditionally claim that `xw-display-color-p`, which, + according to the docstring of this function, implies that we handle + grayscale too. + + * src/pgtkfns.c (Fx_display_grayscale_p): Return Qt unconditionally. + +2025-04-17 Stefan Kangas <stefankangas@gmail.com> + + * src/pgtkfns.c (Fx_gtk_launch_uri): Improve docstring. + +2025-04-17 Juri Linkov <juri@linkov.net> + + Don't switch to another frame if window is not on the selected frame. + + * lisp/window.el (window--quit-restore-select-window): + Add optional arg 'frame'. Don't switch to another frame + if window is not on the selected frame (bug#71386). + (quit-restore-window): Provide the 'frame' arg + to 'window--quit-restore-select-window' calls. + Patch by martin rudalics <rudalics@gmx.at>. + + * test/lisp/tab-bar-tests.el (tab-bar-tests-quit-restore-window): + No need to reselect the frame after 'quit-window'. + +2025-04-17 Juri Linkov <juri@linkov.net> + + Adapt tab-bar-tests-quit-restore-window for emba. + + * test/lisp/tab-bar-tests.el (tab-bar-tests-quit-restore-window): + Skip unless system-type is 'gnu/linux' and "TERM" is non-nil + that is nil on emba. + +2025-04-17 Juri Linkov <juri@linkov.net> + + * lisp/treesit.el (treesit-parsers-at): Fix for 'with-host' arg. + + Don't add the primary parser or the first of treesit-parser-list + when non-nil 'with-host' is provided since there is no host + for the primary parser (bug#76788). + +2025-04-17 kobarity <kobarity@gmail.com> + + Disable echo back instead of setting tty to raw in Inferior Python + + * lisp/progmodes/python.el (python-shell-setup-code): Change the + Python setup code. (Bug#76943) + +2025-04-17 Protesilaos Stavrou <info@protesilaos.com> + + Update modus-themes to their 4.7.0 version + + * doc/misc/modus-themes.org: Update the manual to document how + 'modus-themes-list-colors' has changed. Make other minor changes. + * etc/themes/modus-operandi-deuteranopia-theme.el: + * etc/themes/modus-operandi-theme.el: + * etc/themes/modus-operandi-tinted-theme.el: + * etc/themes/modus-operandi-tritanopia-theme.el: + * etc/themes/modus-vivendi-deuteranopia-theme.el: + * etc/themes/modus-vivendi-theme.el: + * etc/themes/modus-vivendi-tinted-theme.el: + * etc/themes/modus-vivendi-tritanopia-theme.el: Make stylistic refinements. + * etc/themes/modus-themes.el: Make refinements to supported + faces, add support for more faces, and the like. + + Release notes: <https://protesilaos.com/codelog/2025-04-17-emacs-modus-themes-4-7-0/>. + +2025-04-17 Juri Linkov <juri@linkov.net> + + Use the first parser from 'treesit-parser-list' to fix tests. + + * lisp/treesit.el (treesit-parsers-at): Add treesit-primary-parser + only when it's non-nil. When the result list is still empty, + add the first parser from 'treesit-parser-list'. + https://lists.gnu.org/archive/html/emacs-devel/2025-04/msg00627.html + + * test/src/treesit-tests.el (treesit-node-supplemental) + (treesit-node-at, treesit-node-check) + (treesit-search-subtree-forward-1) + (treesit-search-subtree-backward-1): Wrap test body in 'with-temp-buffer'. + +2025-04-17 Eli Zaretskii <eliz@gnu.org> + + Don't override 'revert-buffer-function' globally in 'eww-buffers-mode' + + * lisp/net/eww.el (eww-buffers-mode): Set 'revert-buffer-function' + buffer-locally. (Bug#77854) + +2025-04-17 Stefan Kangas <stefankangas@gmail.com> + + Delete duplicate docstrings in PGTK build + + * src/pgtkfns.c (Fx_export_frames, Fx_create_frame) + (Fx_server_max_request_size, Fx_display_screens, Fx_display_mm_height) + (Fx_display_mm_width, Fx_display_backing_store, Fx_display_visual_class) + (Fx_display_save_under, Fx_open_connection, Fx_close_connection) + (Fx_display_list, Fxw_color_defined_p, Fxw_color_values) + (Fxw_display_color_p, Fx_display_grayscale_p, Fx_display_pixel_width) + (Fx_display_pixel_height, Fx_display_planes, Fx_display_color_cells) + (Fx_show_tip, Fx_hide_tip, Fx_file_dialog, Fx_select_font): Replace + duplicate docstrings with "SKIP" marker. See the comment in doc.c. + * src/xfns.c (Fx_server_max_request_size, Fx_display_screens) + (Fx_display_backing_store, Fx_display_visual_class, Fx_file_dialog): + Update docstrings with details about the PGTK build. + +2025-04-17 Yuan Fu <casouri@gmail.com> + + Remove treesit.el dependency from prog-mode.el + + prog-mode.el doens't need treesit.el dependency. And it + shouldn't depend on it. In principle, treesit.el should + integrate into various parts of Emacs through standard hooks and + variables. + + * lisp/progmodes/prog-mode.el: + (prog-fill-reindent-defun): Remove treesit.el functions. Use + generic functions to check whether the current line has + comments, and make the test more comprehensive. + +2025-04-17 Yuan Fu <casouri@gmail.com> + + Fix c-ts-common--fill-paragraph for non-rust modes (bug#77727) + + * lisp/progmodes/c-ts-common.el: + (c-ts-common--comment-regexp): Add // and /* to regexp for Rust. + (c-ts-common--line-comment-p): Extract out into new function, + add a check that the parent node is a comment node. + (c-ts-common--fill-paragraph): Extract some code out. + +2025-04-17 Stefan Monnier <monnier@iro.umontreal.ca> + + (eieio-backward-compatibility): Set to `warn` (bug#77612) + + * lisp/emacs-lisp/eieio-base.el (make-instance) <eieio-named>: + Really skip backward compatibility when `eieio-backward-compatibility` + is nil and emit message if it's `warn`. + (eieio-persistent-make-instance): Warn when an obsolete name is used. + + * lisp/emacs-lisp/eieio-core.el (eieio-backward-compatibility): + Change default to `warn`. + (eieio-defclass-internal): Warn when the *-list-p function is called + (eieio--slot-name-index): Warn when a initarg is used to access a slot. + + * lisp/emacs-lisp/eieio.el (defclass): Warn when a class-slot is + accessed via the obsolete method. + (make-instance, clone) <eieio-default-superclass>: Really skip backward + compatibility when `eieio-backward-compatibility` is nil and emit + message if it's `warn`. + +2025-04-17 Po Lu <luangruo@yahoo.com> + + Prevent unrelocated symbols with position from being dumped + + * src/pdumper.c (dump_builtin_symbol_p): Test BARE_SYMBOL_P + \(object) rather than SYMBOLP to avoid depending on the value of + symbols_with_pos_enabled or depositing non-relocated references + to vectorlikes in the dump file. Clarify commentary. + +2025-04-17 F. Jason Park <jp@neverwas.me> + + Don't round-trip auto-reconnect probe in ERC + + * lisp/erc/erc-backend.el (erc-server--reconnect-opened) + (erc--server-reconnect-opened): Rename former to latter. Restore + original buffer-local value of session connector for Emacs 29 and below. + (erc--server-reconnect-timeout-check) + (erc--server-reconnect-timeout-scale-function): Change from buffer-local + to normal variables, which they should have been originally. + (erc--recon-probe-reschedule): Ensure `erc-server-reconnect-timeout' is + always non-nil to avoid seeing format specifier in admin message. Use + current buffer when `proc' argument is nil. Perform cleanup when `proc' + and `erc-server-process' differ. + (erc-server-delayed-check-reconnect-reuse-process-p): New variable. + (erc--recon-probe-sentinel): Run `erc--server-reconnect-opened' + immediately because sending a speculative PING doesn't work on all + servers and proxies, most crucially on ZNC, which replies with an error + only after an extended timeout. + (erc--recon-probe-filter): Remove unused function. + (erc--recon-probe-check) Rework to not use fixed periodic timer, change + second parameter to a Lisp time object. + (erc-server-delayed-check-reconnect): Use realistic name when reusing + process so that the session's process isn't "*erc-connectivity-check*". + Set filter to `ignore'. Always run `erc--recon-probe-sentinel' when + status is `open' or something other than `connect', but don't bother + spawning a `erc--recon-probe-check' task as well because any problems + creating the process should already be known. Handle quits during + connect functions that perform blocking I/O, such as + `socks-open-network-stream'. + (erc-schedule-reconnect): Don't bother setting filter to nil. + * test/lisp/erc/erc-scenarios-base-auto-recon.el + (erc-scenarios-base-auto-recon-unavailable) + (erc-scenarios-base-auto-recon-check/no-reuse): Rename former to latter. + (erc-scenarios-base-auto-recon-no-proto) + (erc-scenarios-base-auto-recon-check/reuse): Rename former to latter and + rewrite not to expect a PING. + * test/lisp/erc/resources/erc-d/erc-d.el (erc-d--forget-process): New + function. + (erc-d--process-sentinel): Stop serving when all dialogs have been + exhausted. (Bug#62044) + +2025-04-17 João Távora <joaotavora@gmail.com> + + Eglot: be aware of LSP version of contextual diagnostics + + In certain situations, Eglot has to report to the server parts + of the diagnostics that it itself sent us. The server may use + this as context to compute code actions, for example. Eglot + selects diagnostics by asking Flymake, looking for the ones that + contain Eglot-specific cookies. + + But when doing so, it is important to also be aware of the LSP + document version these each of these diagnostics pertain to, + since if a diagonstic in the buffer pertains to an older version + of the LSP document (because Flymake fired or the server hasn't + pushed a new set), that diagnostics 'eglot-lsp-data' cookie is + invalid and possibly harmful. + + An example is when a diagnostic extends all the way to the end + of the buffer. If we attempt to fix by shortening the buffer, + an Eldoc-started code actions request may be sent to the server + considering the soon-to-be-deleted Flymake diagnostic as + context. But that diagnostic's 'eglot-lsp-data' cookie is no + longer valid and when processing that context we try to go past + point-max and burp an annoying error. + + Best to check the version of the diagnostic (if we have it) and + ignore the ones that don't match the document version. + + * lisp/progmodes/eglot.el (eglot--versioned-identifier): Move up. + (eglot--flymake-diagnostics, eglot--diag-to-lsp-diag): New helpers. + (eglot-handle-notification): Record LSP doc version in diagnostics. + (eglot--code-action-bounds) + (eglot--code-action-params): Use eglot--flymake-diagnostics. + +2025-04-16 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/savehist.el (savehist--reload): Don't accidentally set nil + + Reported by Michael Heerdegen <michael_heerdegen@web.de>. + +2025-04-16 Juri Linkov <juri@linkov.net> + + * lisp/textmodes/markdown-ts-mode.el: More ts-modes for code blocks. + + (markdown-ts--code-block-language-map): Add more aliases. + (markdown-ts-code-block-source-mode-map): Add more mappings + for existing core ts-modes. + (markdown-ts--convert-code-block-language): + Check 'lang-string' with 'symbolp'. Check 'mode' with 'fboundp'. + +2025-04-16 Juri Linkov <juri@linkov.net> + + Change the default navigation sexp-type in 'elixir-ts-mode'. + + * lisp/progmodes/elixir-ts-mode.el (elixir-ts-mode): + Call 'treesit-cycle-sexp-type' at the end to enable navigation across + nodes defined by the tree-sitter thing 'sexp' by default (bug#76788). + +2025-04-16 Juri Linkov <juri@linkov.net> + + New hook 'outline-after-change-functions' (bug#77256). + + * lisp/outline.el (outline-after-change-functions): New variable. + (outline--fix-buttons-after-change): + Run hook 'outline-after-change-functions'. + + * lisp/treesit.el (treesit--after-change): Improve docstring. + (treesit-major-mode-setup): Simplify to just add + 'treesit--after-change' to 'outline-after-change-functions' hook. + + * lisp/progmodes/rust-ts-mode.el (rust-ts-mode): Add explicit + 'treesit-outline-predicate' that is like + 'treesit-simple-imenu-settings', but also adds "trait_item". + +2025-04-16 Juri Linkov <juri@linkov.net> + + Add 'treesit-language-at-point-default' (bug#77256). + + * lisp/treesit.el (treesit-language-at-point-function): + Change the default value from nil to 'treesit-language-at-point-default'. + (treesit-language-at): Funcall 'treesit-language-at-point-function' + unconditionally. + (treesit-language-at-point-default): New function with body from + 'treesit-language-at'. + (treesit-node-at): Simplify by replacing duplicate code + with the call to 'treesit-parsers-at'. + +2025-04-16 Stefan Monnier <monnier@iro.umontreal.ca> + + (Freplace_region_contents): Treat point as insert-before marker + + Experience suggests that it's more often useful to keep point + at the end of the replacement than it is to keep point at the + beginning of the replacement. + This also aligns the behavior of `replace-region-contents` with + that of `insert`. + + * src/insdel.c (replace_range): Treat PT like an insert-before marker. + * src/editfns.c (Freplace_region_contents): Adjust docstring accordingly. + +2025-04-16 Juri Linkov <juri@linkov.net> + + * test/lisp/tab-bar-tests.el (tab-bar-tests-quit-restore-window): Fix. + + Select the created frame because 'quit-window' unexpectedly + selects the original frame (https://debbugs.gnu.org/71386#262). + Add a comment about the `message' call bound to the original frame. + https://lists.gnu.org/archive/html/emacs-devel/2025-04/msg00546.html + +2025-04-16 Yuan Fu <casouri@gmail.com> + + Expand markdown-ts-mode and add code block support for javascript + + - Define new faces and use them in place of font-lock faces + - Add more fontification, add a new feature for headings. + - Remove fontification for code blocks, so embedeed parser can + fontify them + - Add experimental code block support for javascript by using + tree-sitter setup from js-ts-mode. + - Correctly setup markdown_inline with range settings. + + * lisp/textmodes/markdown-ts-mode.el: + (markdown-ts--code-block-language-map): + (markdown-ts-code-block-source-mode-map): New variables. + (markdown-ts-faces): New group. + (markdown-ts-delimiter): + (markdown-ts-heading-1): + (markdown-ts-setext-heading): + (markdown-ts-heading-2): + (markdown-ts-heading-3): + (markdown-ts-heading-4): + (markdown-ts-heading-5): + (markdown-ts-heading-6): + (markdown-ts-list-marker): + (markdown-ts-block-quote): + (markdown-ts-language-keyword): New faces. + (markdown-ts--treesit-settings): + (markdown-ts--configured-languages): New variables. + (markdown-ts--harvest-treesit-configs): + (markdown-ts--add-config-for-mode): + (markdown-ts--convert-code-block-language): New functions. + (markdown-ts--range-settings): New variable. + (markdown-ts-setup): Setup range configuration. + (markdown-ts-mode): Add heading feature. + +2025-04-15 Jared Finder <jared@finder.org> + + Show drag cursor on all window lines (mode, tab, header) + + * lisp/ruler-mode.el (ruler-mode-map): Remove down-mouse-1 + binding that conflicts with dragging header line. + * src/xdisp.c (note_mode_line_or_margin_highlight): Renamed + to... + (note_line_or_margin_highlight): ...new name since it applies to + any window line (mode, tab, header). Set drag cursor for window + top lines. + (note_mouse_highlight): Update call to new name (bug#76084). + +2025-04-15 Jens Schmidt <jschmidt4gnu@vodafonemail.de> + + Better handle errors after sync man invocations + + * lisp/man.el (Man-start-calling): Declare as debuggable. + (Man-getpage-in-background): Call `Man-bgproc-sentinel' with a + cons (BUFFER . EXIT-STATUS) as PROCESS argument for synchronous calls. + (Man-bgproc-sentinel): Use that information to handle those more + similarly to asynchronous calls. Do not employ window selection hacks + for synchronous calls. (Bug#77755) + +2025-04-15 Juri Linkov <juri@linkov.net> + + * lisp/treesit.el (treesit-up-list): Signal an error. + + Signal 'scan-error' when called noninteractively (bug#77744). + +2025-04-15 Stephen Berman <stephen.berman@gmx.net> + + Optionally add new empty file to Dired subdirectory + + Suggested by Kasper Gałkowski <kpg@posteo.net> (bug#77668) + + * etc/NEWS: Announce new Dired user option. + + * lisp/dired-aux.el (dired-create-empty-file-in-current-directory): + New user option. + (dired-create-empty-file): Use it. Update and clarify doc string. + +2025-04-15 Elías Gabriel Pérez <eg642616@gmail.com> + + Add block-comment variables to cc-mode. + + * lisp/progmodes/cc-cmds.el (c-indent-new-comment-line): + Add block-comment-start and block-comment-end + * lisp/progmodes/cc-mode.el (c-basic-common-init): + Declare block-comment-start and block-comment-end buffer-local. + * lisp/emacs-lisp/lisp-mode.el (lisp-mode-variables): Move + block-comment variables ... + (lisp-mode): ... to here. (Bug#77424) + +2025-04-15 Michael Albinus <michael.albinus@gmx.de> + + Fix tree-sitter tests on Emba + + * test/infra/Dockerfile.emba: Use tree-sitter-rust v0.23.3 in + order to match ABI version of libtree-sitter0. + +2025-04-15 Po Lu <luangruo@yahoo.com> + + Unconditionally define MIPS_NABI on mips64el + + * exec/configure.ac (MIPS_NABI): Always define to 1 on + mips64el-*-linux*. + +2025-04-15 Visuwesh <visuweshm@gmail.com> + + Don't warn about lexbind cookies when loading calc settings + + * lisp/calc/calc-mode.el (calc-settings-file-name): + * lisp/calc/calc.el (calc-mode): Bind 'warning-inhibit-types' to + avoid lexbind cookie missing warning. + +2025-04-15 Po Lu <luangruo@yahoo.com> + + * exec/loader-mips64el.s (rest_of_exec): Deal with assembler bugs. + + * exec/configure.ac (exec_CHECK_MIPS_NABI): Test __LP64__ also. + +2025-04-15 Po Lu <luangruo@yahoo.com> + + Port recent Android changes to mips64el + + * exec/config-mips.m4.in (DADDI2, DADDI3): Disable at-clobbering + by assembler macros expressly. + + * exec/loader-mips64el.s: Adapt from loader-mipsel.s. + + * exec/configure.ac (exec_cv_as_daddi): Properly escape reg + names. + + * exec/exec.c (struct exec_jump_command, exec_0): Don't define + or set `fpu_mode' if __LP64__. + + * exec/exec.h (struct exec_tracee): New field `callno'. + + * exec/trace.c (process_system_call): Always record the current + system call number in TRACEE lest it should be required once it + has been overwritten upon the syscall's completion. + (seccomp_system_call): Likewise. + (after_fork): Clear `tracee->callno'. + +2025-04-15 Po Lu <luangruo@yahoo.com> + + Address typos in MIPS executable loader + + * exec/loader-mipsel.s (rest_of_exec): Delete redundant nop. + (skip_environ): Correct stack space test. Don't jump into + the label for the sp preserving case's delay slot. + +2025-04-15 Po Lu <luangruo@yahoo.com> + + Avoid performance regressions in unoptimized builds + + * src/alloc.c (lisp_malloc): Declare val register. + +2025-04-14 Stefan Kangas <stefankangas@gmail.com> + + Remove unused XMALLOC_BLOCK_INPUT_CHECK debug facility + + The compile-time option XMALLOC_BLOCK_INPUT_CHECK was added in + 2012 (commit 4d7e6e51dd4acecff) to allow blocking input during + malloc-family calls, in case any issues arose from related + changes in Emacs 24.3. However, it has not been referenced on + emacs-devel or the bug tracker in over a decade. + + It is clear that we do not need it, as our signal handlers do not + allocate memory. Removing it simplifies the allocation function + wrappers and eliminates dead debug code. + + Ref: https://debbugs.gnu.org/12450 + + * src/alloc.c [XMALLOC_BLOCK_INPUT_CHECK] + (malloc_block_input, malloc_unblock_input): Delete functions. + (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): Delete macros. Update + all callers. + +2025-04-14 Po Lu <luangruo@yahoo.com> + + Port recent changes to mipsel systems + + * exec/exec.c (exec_0): Don't disable AT_EXECFN substitution on + MIPS systems. + + * exec/loader-aarch64.s (skip_environ): Correct typo in + commentary. + + * exec/loader-mips64el.s: Add a disclaimer that this file is + currently inoperable. + + * exec/loader-mipsel.s (__start): Move environment and argument + vectors and produce and replace AT_EXECFN. Clear stack before + proceeding to circumvent an oversight in glibc. + +2025-04-14 Eli Zaretskii <eliz@gnu.org> + + Support file:// URIs and readonly DB in 'sqlite-open' + + * src/sqlite.c (Fsqlite_open): Two new optional arguments, + READONLY and DISABLE-URI. Doc fix. + + * etc/NEWS: + * doc/lispref/text.texi (Database): Document the new optional + arguments to 'sqlite-open'. (Bug#65274) + +2025-04-14 Po Lu <luangruo@yahoo.com> + + Fix typos in executable loaders + + * exec/loader-aarch64.s (skip_environ, cleanup): Minor thinkos. + + * exec/loader-x86_64.s (skip_environ): Insert missing label. + +2025-04-14 Dmitry Gutov <dmitry@gutov.dev> + + Fix help-customize in describe-symbol buffers + + * lisp/help-fns.el (describe-symbol): + Protect help-mode--current-data from being modified inside the + help-setup-xref call (bug#77510). + +2025-04-13 Stefan Monnier <monnier@iro.umontreal.ca> + + (cl-generic-define-method): Try and fix bug#77464 + + * lisp/emacs-lisp/cl-generic.el (cl-generic-define-method): Don't set + the function to `dummy`, even temporarily. + +2025-04-13 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/gnus/gnus-start.el (gnus-dribble-eval-file): Ignore lexbind warning + +2025-04-13 Stefan Monnier <monnier@iro.umontreal.ca> + + (calc-save-modes): Add a `lexical-binding` cookie + + * lisp/calc/calc-mode.el (calc-save-modes): Add a `lexical-binding` + cookie when it is safe. Use `pcase-dolist` and `pp`. + +2025-04-13 Eli Zaretskii <eliz@gnu.org> + + Fix warning messages about lexbind cookie in subdirs.el + + * lisp/files.el (internal--get-default-lexical-binding): Don't log + a warning message when lexbind warning is disabled, and + 'display-warning' is unavailable or signals an error. + +2025-04-13 Po Lu <luangruo@yahoo.com> + + Replace AT_EXECFN in auxiliary vectors of programs executed on Android + + * exec/exec.c (insert_args, exec_0): On non-MIPS systems, copy + NAME and its length to the loader area. State that MIPS support + is not yet available (though it will be pending the availability + of a functioning emulator). + + * exec/loader-aarch64.s (_start): + + * exec/loader-armeabi.s (_start): + + * exec/loader-x86.s (_start): + + * exec/loader-x86_64.s (_start): Displace auxv, environ, and + argv to create sufficient space for the provided file name, and + copy the file name there. Replace AT_EXECFN to refer to this + space. + +2025-04-13 Elías Gabriel Pérez <eg642616@gmail.com> + + Add variable for control docstring length in elisp eldoc functions + + * etc/NEWS: Announce new variable. + * lisp/progmodes/elisp-mode.el (elisp-eldoc-docstring-length-limit): + New user option. + (elisp-eldoc-funcall-with-docstring): Add "Undocumented" as + docstring if the function has no docstring. + (elisp-eldoc-var-docstring-with-value): Use + `elisp-eldoc-docstring-length-limit'. (Bug#77628) + +2025-04-13 Sebastián Monía <sebastian@sebasmonia.com> + + Special treatment for file:// URIs on Windows + + * lisp/url/url-parse.el (url-generic-parse-url): Remove prefix / + when a file URI's filename starts with a single letter followed + by a colon and a slash or backslash. + (url-recreate-url): Mirror the change applied when parsing, so + the URL is recreated properly on MS-Windows. + * test/lisp/url/url-parse-tests.el + (url-generic-parse-url/ms-windows-file-uri-hanlding): New test. + (Bug#76982) + +2025-04-13 Pengji Zhang <me@pengjiz.com> + + New user option to hide minor mode lighters (bug#77361) + + * lisp/bindings.el (mode-line-collapse-minor-modes): New user + option. + (mode-line-minor-modes): New variable to hold mode line + constructs for minor modes. + (mode-line--make-lighter-menu): New helper function to generate + the menu for hidden minor modes. + (mode-line--minor-modes): New helper function to computer mode + line constructs for minor mode lighters. + (mode-line-modes): Use the new variable 'mode-line-minor-modes', + and adjust the order of elements so the indicator for hidden + minor modes is shown towards the end. + + * doc/lispref/modes.texi (Mode Line Basics): Move the paragraph + for 'mode-line-compact' from here... + * doc/emacs/display.texi (Optional Mode Line): ...to here, and + document the new user option. + * etc/NEWS: Annouce the new user option. + +2025-04-13 Jens Schmidt <jschmidt4gnu@vodafonemail.de> + + Use a pristine copy of argv to restart Emacs + + argv as left after main has proccessed the command-line can differ + both in order and contents of the original command-line arguments, + which can lead to surprising results when restarting emacs on the + cooked argv through `kill-emacs'. + + Starting from that observation, consistenly use variables + 'initial_cmdline' on Windows, 'initial_argc', 'initial_argv' on + non-Windows, and 'initial_argv0' in all ports. + + * src/lisp.h: Declare 'initial_argv0', limit declaration of + 'initial_argv' and 'initial_argc' to non-Windows ports. + * src/emacs.c: Likewise, but for the definitions. + (init_cmdargs): Move initialization of 'initial_argv' and + 'initial_argc' ... + (copy_args) [!WINDOWSNT]: ... to this new function ... + (main): ... and call that in 'main', also initializing + 'initial_argv0' before the command-line processing. + * src/emacs.c (Fkill_emacs): + * src/pgtkterm.c (pgtk_term_init): + * src/sysdep.c (emacs_perror): + * src/xterm.c (x_term_init): Use 'initial_argv0' where only that + is required. (Bug#77389) + +2025-04-13 Asher Copeland <ashercopeland@gmail.com> (tiny change) + + Fix 'backward-delete-char-untabify' + + * lisp/simple.el (backward-delete-char-untabify): Fix + behavior when there's an active region. (Bug#75042) + +2025-04-13 Elías Gabriel Pérez <eg642616@gmail.com> + + Add block-comment-start and block-comment-end to supported modes + + * lisp/emacs-lisp/lisp-mode.el (lisp-mode-variables): + Add block-comment-start and block-comment-end from here... + * lisp/newcomment.el (block-comment-start, block-comment-end):... + * lisp/nxml/nxml-mode.el (nxml-mode):... + * lisp/progmodes/c-ts-common.el (c-ts-common-comment-setup):... + * lisp/progmodes/go-ts-mode.el (go-work-ts-mode):... + * lisp/progmodes/js.el (js--mode-setup):... + * lisp/progmodes/json-ts-mode.el (json-ts-mode):... + * lisp/progmodes/lua-ts-mode.el (lua-ts-mode):... + * lisp/progmodes/opascal.el (opascal-mode):... + * lisp/progmodes/pascal.el (pascal-mode):... + * lisp/progmodes/typescript-ts-mode.el (tsx-ts-mode):... + * lisp/textmodes/css-mode.el (css-base-mode, scss-mode):... + * lisp/textmodes/sgml-mode.el (sgml-mode): ... to here. + (Bug#77424) + +2025-04-13 Stephane Zermatten <szermatt@gmx.net> (tiny change) + + Fix term.el bug with very short multibyte character chunk + + Before this change, a chunk containing only a part + of a multibyte character would be discarded and + displayed undecoded on the terminal. + * lisp/term.el (term-emulate-terminal): Fix handling chunks + with part of a multibyte character. (Bug#77410) + + * test/lisp/term-tests.el (term-decode-partial) + (term-undecodable-input): Fix and enhance tests. + +2025-04-13 Eli Zaretskii <eliz@gnu.org> + + Disable clearing echo-area when 'inhibit-message' is non-nil + + * src/xdisp.c (clear_message): Don't clear echo-area if + 'inhibit-message' is non-nil. + + * etc/NEWS: + * doc/lispref/display.texi (Displaying Messages): Document the + above change. (Bug#77257) + +2025-04-13 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/subr.el (setq-local): Make local after evaluating the new value + + In case the evaluation needs to look at the variable's value, + make sure we make it buffer-local afterwards. + +2025-04-13 Stefan Monnier <monnier@iro.umontreal.ca> + + (replace-buffer-contents): Mark as obsolete, again. + + * lisp/subr.el (replace-buffer-contents): Mark as obsolete, again. + * src/editfns.c (Freplace_region_contents): Add interactive form. + +2025-04-13 Stefan Monnier <monnier@iro.umontreal.ca> + + savehist.el: Unbreak tests + + * lisp/savehist.el (savehist-loaded): Fix typo. + (savehist--reload): Add compatibility with test case. + +2025-04-13 Stefan Monnier <monnier@iro.umontreal.ca> + + savehist.el: Handle concurrent access to `savehist-file` + + * lisp/savehist.el (savehist--manage-timer): Minor simplification. + (savehist-coding-system): Use `utf-8-emacs-unix` so it works even if + some history entries contain chars that aren't in Unicode. + (savehist-loaded): Mark it obsolete. + (savehist--file-sync-modtime): New var to replace it. + (savehist--file-modtime, savehist--merge): New functions. + (savehist--reload): New function, extracted from `savehist-mode`. + Make it merge the old history and the newly loaded one. + Remember the time of sync in `savehist--file-sync-modtime`. + (savehist-mode): Use it. + (savehist-save): Use it as well, and set `savehist--file-sync-modtime`. + (savehist--last-autosave): New var. + (savehist-autosave): Use it to skip saves when not enough time has passed. + +2025-04-12 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + d3c39fb522d Fix display of keys in 'help-form' buffers (bug#77118) + 6509cc20a9e Improve documentation of 'user-emacs-directory' + 3f060597306 Update remarks on name prefixes in coding conventions + e966ff9759a ; * doc/emacs/files.texi (Image Mode): Fix a typo (bug#77... + 378bea99b1a ; Fix doc strings of a few Dired commands + 30fb2ac07a7 ; * CONTRIBUTE: Clarify single-line commit should end wit... + 417d14a95ee ; * admin/MAINTAINERS: Complete the handover of VC + bb756b195a7 ; Fix typo in Tramp + +2025-04-12 Visuwesh <visuweshm@gmail.com> + + Limit fontification of "customize" in setopt suggestion + + * lisp/help-fns.el (help-fns--customize-variable): Limit the + fontification to newly inserted text to avoid spurious + fontification of other instances of the word "customize." + +2025-04-12 Spencer Baugh <sbaugh@janestreet.com> + + flymake: fall back to margins on text terminals + + Previously, flymake-indicator-type defaulted to either fringes + or margins. But fringes should be used on graphical frames, and + margins on TTY frames. So default to fringes instead, and + simply fall back to margins automatically on text frames. + + * lisp/progmodes/flymake.el (flymake-indicator-type): Set to + fringes. (bug#77313) + (flymake-mode): Fallback to margins if there's no fringes. + * doc/misc/flymake.texi (Customizable variables): Mention + fallback behavior. + * etc/NEWS: Announce fallback behavior. + +2025-04-12 Sean Whitton <spwhitton@spwhitton.name> + + vc-do-async-command: Ellipse later lines in multiline arguments + + * lisp/emacs-lisp/cl-print.el (cl-print-expand-ellipsis): Bind + inhibit-read-only to t. + * lisp/vc/vc-dispatcher.el (require): Require cl-print at + compile time. + (vc-do-async-command): When printing command arguments that + contain multiple lines, use cl-prin1 with cl-print-string-length + bound in order to ellipse lines other than the first. + Switch the outer quotation marks to single quotation marks. + +2025-04-11 Juri Linkov <juri@linkov.net> + + Rename treesit-toggle-sexp-type to treesit-cycle-sexp-type. + + * lisp/treesit.el (treesit-cycle-sexp-type): + Rename from 'treesit-toggle-sexp-type'. Fix docstring. + https://lists.gnu.org/archive/html/emacs-devel/2025-04/msg00291.html + +2025-04-11 Sean Whitton <spwhitton@spwhitton.name> + + New buffer-local vc-buffer-overriding-fileset and vc-buffer-revision + + * lisp/vc/vc.el (vc-buffer-overriding-fileset) + (vc-buffer-revision): New variables (bug#77529). + (vc-find-revision-save, vc-find-revision-no-save): Set them. + (vc-deduce-fileset): Respect vc-buffer-overriding-fileset. + (vc-print-log): Use vc-buffer-revision as a default working + revision. + + * lisp/vc/vc-annotate.el (vc-annotate-parent-file) + (vc-annotate-parent-rev): Delete. + (vc-annotate): Respect vc-buffer-overriding-fileset and + vc-buffer-revision. This makes 'C-x v g' work from buffers + generated by 'C-x v ~' (bug#5424). + Set the two variables in the newly prepared buffer. + (vc-annotate-working-revision) + (vc-annotate-extract-revision-at-line) + (vc-annotate-revision-at-line, vc-annotate-warp-revision) + (vc-annotate-goto-line): + * lisp/vc/vc-svn.el (vc-svn-annotate-current-time): Use + vc-buffer-overriding-fileset instead of vc-annotate-parent-file, + vc-buffer-revision instead of vc-annotate-parent-rev. + (vc-annotate-parent-rev): Delete declaration. + + * etc/NEWS: Announce the new variables. + +2025-04-10 Stefan Monnier <monnier@iro.umontreal.ca> + + Add `lexical-binding` cookie to generated files + + Side-companion to commits bb0f84bc0bf7 and 50947fd51202. + While in there, couldn't resist adding a few minor cleanups + I had lying around. + + * lisp/savehist.el (savehist-save): Add `lexical-binding:t` cookie. + + * lisp/url/url-cookie.el: Remove redundant `:group` arguments. + (url-cookie-write-file): Add `lexical-binding:t` cookie. + + * lisp/abbrev.el: Prefer #' to quote function names. + (write-abbrev-file): Add a `lexical-binding:t` cookie. + (unexpand-abbrev): Use `replace-region-contents` and 3-args `<=`. + (define-abbrev-table): Use `defvar-1`. + + * lisp/filesets.el (filesets-menu-cache-file-save-maybe): + Add `lexical-binding:t` cookie. + (filesets-ingroup-patterns): Don't quote lambdas. + (filesets-spawn-external-viewer): Remove redundant "" arg to `mapconcat`. + + * lisp/recentf.el: Prefer #' to quote function names. + (recentf-save-file-header): Add `lexical-binding:t` cookie and change + mode to match the actual content. + +2025-04-10 Juri Linkov <juri@linkov.net> + + Fix treesit-forward-sexp/list navigation in the middle of a node. + + * lisp/treesit.el (treesit--forward-list-with-default): + Check the thing 'sexp-default' (bug#76791). + + * lisp/progmodes/elixir-ts-mode.el (elixir-ts-mode): + * lisp/progmodes/go-ts-mode.el (go-ts-mode): + * lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode): + * lisp/progmodes/sh-script.el (bash-ts-mode): + Add the thing 'sexp-default' to 'treesit-thing-settings'. + +2025-04-10 Juri Linkov <juri@linkov.net> + + Rename treesit-toggle-sexp-mode to treesit-toggle-sexp-type. + + * lisp/treesit.el (treesit-toggle-sexp-type): + Rename from 'treesit-toggle-sexp-mode'. Fix docstring. + https://lists.gnu.org/archive/html/emacs-devel/2025-04/msg00273.html + +2025-04-10 Eli Zaretskii <eliz@gnu.org> + + Fix one more case of unnecessary lexbind warnings + + * lisp/filesets.el (filesets-menu-cache-file-load): Bind + 'warning-inhibit-types' to avoid warning about missing lexbind + cookie when loading the file. + +2025-04-10 Eli Zaretskii <eliz@gnu.org> + + Avoid warnings about lexbind cookies where they aren't needed + + * lisp/emacs-lisp/warnings.el (warning-inhibit-types): New variable. + (display-warning): If TYPE matches 'warning-inhibit-types', don't + display the warning, even if it's emitted during startup. + * lisp/startup.el (normal-top-level): + * lisp/savehist.el (savehist-mode): + * lisp/url/url-cookie.el (url-cookie-parse-file): + * lisp/recentf.el (recentf-load-list): + * lisp/abbrev.el (read-abbrev-file): Bind 'warning-inhibit-types' + to avoid warning about missing lexbind cookie when loading files + that Emacs itself generates. + +2025-04-10 Po Lu <luangruo@yahoo.com> + + Respond to display configuration updates on Android + + * java/org/gnu/emacs/EmacsNative.java + (sendConfigurationChanged): Declare function. + + * java/org/gnu/emacs/EmacsSdk7FontDriver.java (Sdk7FontEntity) + (Sdk7FontObject): Do not access `metrics' field deleted from + `EmacsService'. + + * java/org/gnu/emacs/EmacsService.java (EmacsService) + <metrics, resources>: Delete fields. + <dpiX, dpiY, dpiScaled>: New fields. + (onCreate): Adjust accordingly. Record current display metrics + for subsequent comparison. + (onConfigurationChanged): New function. + + * lisp/dynamic-setting.el (font-setting-change-default-font): + Enable on systems where font-get-system-font is not defined if + invoked with SET-FONT nil. + + * src/android.c (sendConfigurationChanged): New function. + + * src/androidgui.h (ANDROID_CONFIGURATION_CHANGED): New enumerator. + (struct android_configuration_changed): New structure. + (union android_event): Add `config' member. + + * src/androidterm.c (handle_one_android_event): Handle + ANDROID_CONFIGURATION_CHANGED events. + (syms_of_androidterm): Define Qfont_render, and + Qdynamic_setting. Provide the latter. + +2025-04-09 Juri Linkov <juri@linkov.net> + + New command 'treesit-toggle-sexp-mode' (bug#76676). + + * lisp/treesit.el (treesit-forward-sexp): Don't use + 'treesit-sexp-type-regexp' reserved for list commands + to override their default 'list' thing. + (treesit-down-list, treesit-up-list): Use + 'treesit-sexp-type-regexp' instead of 'list' + when it's non-nil. + (treesit-toggle-sexp-mode): New command. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--thing-settings): + Improve 'sexp' thing settings to exclude the top-level + "translation_unit" that just moves to EOF and also "comment". + + * lisp/progmodes/elixir-ts-mode.el (elixir-ts--sexp-regexp): Remove. + (elixir-ts--forward-sexp): Remove to use the default 'sexp' navigation. + (elixir-ts--with-parens-0-p, elixir-ts--with-parens-1-p): + New internal functions. + (elixir-ts-mode): Add 'treesit-thing-settings' + instead of 'forward-sexp-function' (bug#76788). + + * lisp/progmodes/heex-ts-mode.el (heex-ts--sexp-regexp): Remove. + (heex-ts--forward-sexp): Remove to use the default 'sexp' navigation. + (heex-ts--thing-settings): New variable. + (heex-ts-mode): Use 'heex-ts--thing-settings' + instead of 'forward-sexp-function'. + + * lisp/progmodes/java-ts-mode.el (java-ts-mode): + Improve 'sexp' thing to use settings like in c-ts-mode. + + * lisp/progmodes/php-ts-mode.el (php-ts-mode): + Improve 'sexp' thing settings to exclude the top-level + "program" that just moves to EOF and also "comment". + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode): + Improve 'sexp' thing to use settings like in c-ts-mode. + + * lisp/textmodes/css-mode.el (css--treesit-thing-settings): + Add 'sexp' thing. Add "string_value" to 'text' thing. + + * lisp/textmodes/html-ts-mode.el (html-ts-mode--treesit-things-settings): + Improve 'sexp' thing to use settings like in c-ts-mode. + Add "doctype" to the 'list' thing. + +2025-04-09 Juri Linkov <juri@linkov.net> + + Improve 'treesit-outline-search'. + + * lisp/treesit.el (treesit-outline-search): Remove + temporary arg 'recursive'. Use iteration to visit + more ranges until the next outline heading is found. + + * lisp/progmodes/php-ts-mode.el (php-ts-mode): + Set 'treesit-outline-predicate' explicitly. + +2025-04-09 Juri Linkov <juri@linkov.net> + + * lisp/subr.el (defvar-local): Change 'indent' to 'defun' (bug#77256). + +2025-04-09 Sean Whitton <spwhitton@spwhitton.name> + + Rename some of the new window layout commands + + * lisp/window-x.el (rotate-window-layout-counterclockwise): + Rename to window-layout-rotate-anticlockwise. + (rotate-window-layout-clockwise): + Rename to window-layout-rotate-clockwise. + (flip-window-layout-horizontally): + Rename to window-layout-flip-leftright. + (flip-window-layout-vertically): + Rename to window-layout-flip-topdown. + (transpose-window-layout): Rename to window-layout-transpose. + + * doc/lispref/windows.texi (Changing Window Layouts): + * etc/NEWS: + * lisp/ldefs-boot.el (rotate-window-layout-counterclockwise) + (rotate-window-layout-clockwise, flip-window-layout-horizontally) + (flip-window-layout-vertically, transpose-window-layout): + Update for the renames. + +2025-04-09 Sean Whitton <spwhitton@spwhitton.name> + + VC-Dir: Offer to register files before checking in + + * lisp/vc/vc.el (vc-only-files-state-and-model): Rewrite + checking that all files are in compatible VC states. In + particular, consistently return 'edited' when all files are + either added, removed or edited, instead of allowing the return + value to depend on the order of the files in VC-Dir, and offer + to registered unregistered files if doing so would allow the + operation to proceed. + (vc-compatible-state): Delete. + (vc-next-action): Replace call to vc-compatible-state. + Document, in this command's docstring, the new feature + implemented in vc-only-files-state-and-model. + * etc/NEWS: Announce the new feature. + +2025-04-08 João Távora <joaotavora@gmail.com> + + Eglot: announce support for diagnostic version checks (bug#77588) + + * lisp/progmodes/eglot.el (eglot-client-capabilities): Mention versionSupport. + +2025-04-08 Spencer Baugh <sbaugh@janestreet.com> + + Use relative names where possible in package-quickstart.el + + package-quickstart.el hardcodes many absolute file names, which + makes it break if user-emacs-directory moves, or in other + situations. To be slightly more robust to this, use relative + file names to packages that are located in the same directory as + package-quickstart.el. + + * lisp/emacs-lisp/package.el (package--quickstart-dir, + package--quickstart-rel): Add. + (package-quickstart-refresh): Use package--quickstart-rel on + file names. (bug#77468) + +2025-04-08 Spencer Baugh <sbaugh@janestreet.com> + + Preserve an explicit * in pcm-try-completion + + An explicitly typed * has different semantics from automatically + inserted PCM wildcards, so it should be preserved on try-completion. We + already do this in some cases, but now we do it more. + + This is especially significant for filename completion: removing an + explicit * can take us from + + ~/src/emacs/trunk/*/minibuf + + to + + ~/src/emacs/trunk//minibuf + + The explicit double slash is interpreted by the file name completion + table to mean "start completing from the root directory", so deleting + the * here substantially changes semantics. + + * lisp/minibuffer.el (completion-pcm--merge-completions): Don't drop + important wildcards. (bug#74420) + * test/lisp/minibuffer-tests.el (completion-pcm-test-7): Add tests. + +2025-04-08 Juri Linkov <juri@linkov.net> + + * lisp/treesit.el (treesit--after-change): New function. + + (treesit-major-mode-setup): Set 'outline-minor-mode-hook' + to add 'treesit--after-change' with 'treesit-update-ranges' + to 'after-change-functions' (bug#77256). + +2025-04-08 Juri Linkov <juri@linkov.net> + + New function treesit-parsers-at for treesit-language-at (bug#77256). + + * doc/lispref/parsing.texi (Multiple Languages): The variable + 'treesit-language-at-point-function' is now optional for + multi-language major modes. Add description of 'treesit-parsers-at'. + + * lisp/treesit.el (treesit-language-at-point-function): + Change the the docstring to remove the dissuasion against + deriving the language from parser ranges. + (treesit-language-at): Use the first parser from + 'treesit-parsers-at' as the default return value when + 'treesit-language-at-point-function' is nil. Adapt the docstring. + (treesit-node-at): Use 'treesit-parsers-at'. + (treesit-parsers-at): New function. + (treesit-local-parsers-at): Use 'treesit-parsers-at' + with the most part of the body moved to it. + (treesit-local-parsers-on): Replace the overlay property + 'treesit-parser' with 'treesit-parser-local-p' in the docstring. + (treesit-up-list, treesit-simple-imenu, treesit-outline-level): + Use 'treesit-parsers-at'. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode): Don't set + 'treesit-language-at-point-function'. + + * lisp/progmodes/elixir-ts-mode.el (elixir-ts--treesit-language-at-point): + Remove. + (elixir-ts-mode): Don't set 'treesit-language-at-point-function'. + + * lisp/progmodes/js.el (js--treesit-language-at-point): Remove. + (js-ts-mode): Don't set 'treesit-language-at-point-function'. + + * lisp/progmodes/php-ts-mode.el (php-ts-mode--html-language-at-point) + (php-ts-mode--language-at-point): Remove. + (php-ts-mode): Don't set 'treesit-language-at-point-function'. + + * lisp/textmodes/mhtml-ts-mode.el (mhtml-ts-mode--language-at-point): + Remove. + (mhtml-ts-mode): Don't set 'treesit-language-at-point-function'. + Use 'treesit-language-at' for mode-line lighter. + +2025-04-08 Stefan Monnier <monnier@iro.umontreal.ca> + + (internal--get-default-lexical-binding): Be more failsafe + + * lisp/files.el (internal--get-default-lexical-binding): Try and + avoid signaling an error. Make it easier to suppress the + warning for a specific file. + +2025-04-08 Eli Zaretskii <eliz@gnu.org> + + Fix prettify-symbols-mode with composition rules + + * lisp/progmodes/prog-mode.el + (prettify-symbols--composition-displayable-p): Fix a thinko. + Patch by Visuwesh <visuweshm@gmail.com>. (Bug#77627) + +2025-04-08 Sean Whitton <spwhitton@spwhitton.name> + + Fix window selection after log-edit-show-diff, again + + In October I installed a change to vc-diff-patch-string and + labelled it as "Fix window selection after log-edit-show-diff" + but that change only fixed the problem within + log-view-modify-change-comment. This change should fix window + selection after C-c C-d in ordinary checkins. + + * lisp/vc/log-edit.el (log-edit-diff-fileset): Use + save-selected-window in order to respect the documented + requirement that values of log-edit-diff-function leave the Log + Edit buffer's window selected when they return. + +2025-04-08 João Távora <joaotavora@gmail.com> + + Eglot: check textDocument/publishDiagnostics version (bug#77588) + + * lisp/progmodes/eglot.el (eglot--versioned-identifier): Move up. + (eglot-handle-notification textDocument/publishDiagnostics): Check + eglot--versioned-identifier + +2025-04-08 Sean Whitton <spwhitton@spwhitton.name> + + Factor out vc-only-files-state-and-model + + * lisp/dired-aux.el (vc-compatible-state): Delete declaration. + (vc-only-files-state-and-model): Declare. + (dired-vc-deduce-fileset): Factor out vc-only-files-state-and-model. + * lisp/vc/vc-dir.el (require): Require cl-lib at load time, too. + (vc-only-files-state-and-model): Declare. + (vc-dir-deduce-fileset): Factor out vc-only-files-state-and-model. + * lisp/vc/vc.el (vc-only-files-state-and-model): New function, + factored out of dired-vc-deduce-fileset and vc-dir-deduce-fileset. + +2025-04-08 Sean Whitton <spwhitton@spwhitton.name> + + Update descriptions of VC's capabilities for Git and Mercurial + + * doc/emacs/maintaining.texi (Version Control Systems): Update + descriptions of VC's capabilities for Git and Mercurial. + +2025-04-08 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/files.el (internal--get-default-lexical-binding): Buttonize the M-x + + lisp/files.el (internal--get-default-lexical-binding): Handle nested loads + +2025-04-08 Po Lu <luangruo@yahoo.com> + + Replace some calls to `intern' with DEFSYMs + + * src/filelock.c (lock_file, unlock_file_handle_error): Call + constant symbols rather than interning them all the time. + (syms_of_filelock): New symbols Qask_user_about_lock, + Quserlock__handle_unlock_error, and + Quserlock__ask_user_about_supersession_threat. + +2025-04-08 Stefan Monnier <monnier@iro.umontreal.ca> + + (Fload, Feval_buffer): Emit a warning when lexbind is unset (bug#74145) + + This emits a warning at run-time rather than at compile time. + + * src/lread.c (get_lexical_binding): New function. + (Fload, Feval_buffer): Use it. + (syms_of_lread): New var `internal--get-default-lexical-binding-function`. + * lisp/files.el: Set it. + (internal--get-default-lexical-binding): New function. + +2025-04-07 Stefan Monnier <monnier@iro.umontreal.ca> + + eieio: Improve some obsolecence warnings and fix #<CLASS CLASS-XX> names + + * lisp/emacs-lisp/eieio.el (eieio--constructor-macro): Improve message. + (eieio-object-name-string): Avoid repeated class name in the output of + `eieio-object-name`. + (make-instance, clone): Improve message. + + * lisp/emacs-lisp/eieio-core.el (eieio-defclass-autoload): Use the same + obsolescence warning as elsewhere. + +2025-04-07 Stefan Monnier <monnier@iro.umontreal.ca> + + (Freplace_region_contents): Fix point preservation (bug#77607) + + * src/editfns.c (Freplace_region_contents): Save excursion around + temporary restriction (bug#77607) and remove + `record_unwind_protect_excursion` made redundant by commit 40d8650d5177. + +2025-04-07 Stefan Monnier <monnier@iro.umontreal.ca> + + Merge branch 'cedet-object-name' + +2025-04-07 Stefan Monnier <monnier@iro.umontreal.ca> + + test/eieio: Silence warnings about slots and obsolete name arg + + * test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el + (eieio-test-method-order-list-3, eieio-test-method-order-list-6) + (eieio-test-method-order-list-7, eieio-test-method-order-list-8): + Delete obsolete name argument to constructors. + (eieio-test-method-order-list-4): Make sure backward compatibility is + active when testing the obsolete name arg. + + * test/lisp/jsonrpc-tests.el (jsonrpc--call-with-emacsrpc-fixture): + Delete obsolete name argument to constructor. + + * test/lisp/emacs-lisp/eieio-tests/eieio-tests.el (derived-value): + Silence unknown slot warning. + +2025-04-07 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/emacs-lisp/eieio-custom.el: Require `eieio-base` to silence warning + +2025-04-07 Stefan Monnier <monnier@iro.umontreal.ca> + + eieio: Emit compilation warnings a bit more thoroughly + + We used to warn about unknown slots only in `oref`: add the same check + for `oset` and `slot-boundp`. + Similarly, we warned about obsolete name args only when calling the + constructors: add the same check to `make-instance`. + + * lisp/emacs-lisp/eieio-core.el (eieio--check-slot-name): New function + extracted from the compiler-macro of `eieio-oref`. + (eieio-oref, eieio-oset): Use it. + * lisp/emacs-lisp/eieio.el (slot-boundp): Use it. + (eieio--constructor-macro): Add category to warning. + (make-instance): Add compiler-macro to warn about obsolete name. + +2025-04-07 Stefan Monnier <monnier@iro.umontreal.ca> + + (srecode-macro-help): Use `cl--class-docstring` + + * lisp/cedet/srecode/srt-mode.el (srecode-macro-help): Don't + rely on `variable-documentation`. + +2025-04-07 Stefan Monnier <monnier@iro.umontreal.ca> + + cedet: Prefer `slot-value` over `eieio-object-name-string` + + * lisp/cedet/srecode/mode.el (srecode-minor-mode-templates-menu): + * lisp/cedet/srecode/insert.el (srecode-insert-subtemplate): + * lisp/cedet/srecode/compile.el (srecode-dump): Prefer `slot-value` + over `eieio-object-name-string` since we know it's an + `eieio-named` object. + +2025-04-07 Stefan Monnier <monnier@iro.umontreal.ca> + + cedet: Don't abuse initargs for slot names + + * lisp/cedet/ede/base.el (ede-normalize-file/directory): + * lisp/cedet/ede/emacs.el (initialize-instance): + * lisp/cedet/ede/generic.el (initialize-instance): + * lisp/cedet/ede/linux.el (initialize-instance, project-rescan): + * lisp/cedet/srecode/map.el (srecode-map-update-map): + * lisp/cedet/srecode/srt-mode.el (srecode-parse-this-macro): + * lisp/cedet/ede/simple.el (ede-simple-load): + Use slot names rather than initargs with oref/oset/slot-value/... + +2025-04-07 Stefan Monnier <monnier@iro.umontreal.ca> + + cedet: Delete obsolete object name arg to EIEIO constructors + + For classes that don't inherit from `eieio-named`, this argument + is ignored anyway. + + * lisp/auth-source-pass.el (auth-source-pass-backend): Delete obsolete + object-name argument to `auth-source-backend` constructor. + + * lisp/cedet/ede/config.el (ede-config-get-configuration): Delete obsolete + object-name argument to ede-config constructor. + + * lisp/cedet/ede/cpp-root.el (ede-find-target): Delete obsolete + object-name argument to `ede-cpp-root-target` constructor. + + * lisp/cedet/ede/locate.el (ede-enable-locate-on-project): Delete obsolete + object-name argument to ede-locate constructor. + + * lisp/cedet/ede/project-am.el (project-am-load-makefile): Delete obsolete + object-name argument to `project-am-makefile` constructor. + + * lisp/cedet/semantic/complete.el (semantic-complete-read-tag-buffer-deep) + (semantic-complete-read-tag-local-members) + (semantic-complete-read-tag-project, semantic-complete-read-tag-analyzer): + Delete obsolete object-name argument to + `semantic-collector-buffer-deep`, + `semantic-collector-local-members`, + `semantic-collector-project-brutish`, and + `semantic-collector-analyze-completions` constructors. + + * lisp/cedet/semantic/db-ebrowse.el (semanticdb-create-database): + Delete obsolete object-name argument to + `semanticdb-project-database-ebrowse` constructor. + + * lisp/cedet/semantic/db-file.el (semanticdb-create-database): Delete + obsolete object-name argument to + `semanticdb-project-database-file` constructor. + + * lisp/cedet/semantic/db-typecache.el (semanticdb-get-typecache): + Delete obsolete object-name argument to `semanticdb-typecache` constructor. + + * lisp/cedet/semantic/db.el (semanticdb-get-table-index) + (semanticdb-create-table): + Delete obsolete object-name argument to + `semanticdb-default-find-index-class`, new-table-class, and + desired-class constructors. + + * lisp/cedet/semantic/bovine/c.el (semantic-analyze-tag-references): + * lisp/cedet/semantic/analyze/refs.el + (semantic-analyze-tag-references-default): Delete obsolete + object-name argument to `semantic-analyze-references` constructor. + + * lisp/cedet/srecode/compile.el (srecode-compile-templates): + Delete obsolete object-name argument to `srecode-compile-state` and + `srecode-dictionary-compound-variable` constructors. + + * lisp/cedet/srecode/cpp.el (srecode-semantic-apply-tag-to-dict) + (srecode-c-apply-templates): Delete obsolete object-name argument to + `srecode-semantic-tag` constructors. + + * lisp/cedet/srecode/dictionary.el (srecode-dictionary-add-entries) + (srecode-compound-toString): Delete obsolete object-name argument to + `srecode-dictionary-compound-variable` and `srecode-field` constructors. + + * lisp/cedet/srecode/insert.el (srecode-insert-method-field): + Delete obsolete object-name argument to `srecode-field-value` constructor. + + * lisp/cedet/srecode/semantic.el (srecode-semantic-handle-:tag) + (srecode-semantic-insert-tag, srecode-semantic-apply-tag-to-dict-default): + Delete obsolete object-name argument to `srecode-semantic-tag` constructors. + + * lisp/cedet/srecode/table.el (srecode-mode-table-new): Delete + obsolete object-name argument to `srecode-template-table` constructor. + +2025-04-07 Stefan Monnier <monnier@iro.umontreal.ca> + + cedet: Pass object name via explicit `:object-name` arg + + * lisp/cedet/srecode/insert.el (srecode-parse-input): + * lisp/cedet/srecode/compile.el (srecode-compile-one-template-tag) + (srecode-compile-inserter): Pass object name via explicit + `:object-name` arg to `srecode-template`, + `srecode-template-inserter-variable`, and children of `srecode-template`. + + * lisp/cedet/semantic/mru-bookmark.el (semantic-mrub-push): + Pass object name via explicit `:object-name` arg to `semantic-bookmark`. + +2025-04-07 Sean Whitton <spwhitton@spwhitton.name> + + Add bindings for vc-git-stash-delete-at-point, vc-git-stash-delete + + * lisp/vc/vc-git.el (vc-git-stash-map): Bind "D" to + vc-git-stash-delete-at-point. + (vc-dir-git-mode-map): Bind "z d" to vc-git-stash-delete. + * etc/NEWS: Announce the new bindings. + +2025-04-07 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/vc-git.el (vc-git-checkin): Actually pass down TO-STASH. + +2025-04-07 Sean Whitton <spwhitton@spwhitton.name> + + vc-git-checkin: Don't relativize names of temporary files + + * lisp/vc/vc-git.el (vc-git-checkin) + (vc-git--stash-staged-changes): Don't relativize names of + temporary files passed to 'git apply --cached'. More generally, + these are not files managed by the underlying VCS, so they + shouldn't go in the FILE-OR-LIST argument to vc-git-command. + +2025-04-06 João Távora <joaotavora@gmail.com> + + Icomplete: rename some internal helper functions (bug#77546) + + The naming convention for internal functions is + + <package-name>--foo + + not + + <package-name-subfunctionality>--foo + + * lisp/icomplete.el (icomplete--adjust-lines-for-column): Rename + from icomplete-vertical--adjust-lines-for-column. + (icomplete--ensure-visible-lines-inside-buffer): Rename from + icomplete-vertical--ensure-visible-lines-inside-buffer. + (icomplete--add-indicator-to-selected): Rename from + icomplete-vertical--add-indicator-to-selected. + (icomplete--render-vertical): Use new internal function names. + +2025-04-06 João Távora <joaotavora@gmail.com> + + Icomplete: check flag before rendering vertical indicators + + (Bug#77546) + + * lisp/icomplete.el (icomplete-vertical--add-indicator-to-selected): Rework. + (icomplete--render-vertical): Fix bug. + +2025-04-06 Sean Whitton <spwhitton@spwhitton.name> + + Teach VC-Dir to automatically add and remove marks on other lines + + * lisp/vc/vc-dir.el (vc-dir-allow-mass-mark-changes): New option. + (vc-dir-parent-marked-p): Replace with ... + (vc-dir--parent): ... this. + (vc-dir-children-marked-p): Replace with ... + (vc-dir--children): ... this. + (vc-dir-mark-file): Unmark subitems before marking a directory. + Offer to unmark a directory before marking a subitem. + (vc-dir-unmark-file): For an implicitly marked item, offer to + unmark it by marking everything else that's implicitly marked. + For an unmarked directory with marked subitems, offer to unmark + them all. + * etc/NEWS: Document the changes. + +2025-04-06 Sean Whitton <spwhitton@spwhitton.name> + + Fix dired-vc-next-action generating inconsistent marks + + * lisp/vc/vc-dir.el (vc-dir-mark-files): Document that + directories passed to this function must have trailing slashes. + Don't mark both a directory and also items under it (bug#76769). + * lisp/dired-aux.el (dired-vc-next-action): Update docstring. + +2025-04-06 Sean Whitton <spwhitton@spwhitton.name> + + vc-dir-mark-file: Consistently don't allow marking a subdirectory + + * lisp/vc/vc-dir.el (vc-dir-mark-file): Don't allow marking a + subdirectory if its parent is already marked. This fixes an + inconsistency whereby if a subdirectory was already marked then + its parent could not be marked, but not vice-versa (bug #76769). + +2025-04-06 Alan Mackenzie <acm@muc.de> + + macroexp--expand-all: Don't call function-get on non-symbols + + * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Don't call + function-get on non-symbols (bug#77550). + +2025-04-05 shipmints <shipmints@gmail.com> + + Add tab-bar test for "effectively dedicated window" (bug#71386) + + * test/lisp/tab-bar-tests.el (tab-bar-tests-quit-restore-window): + New test for 'delete-frame' for effectively-dedicated windows. + +2025-04-05 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 99d70ce6c26 Fix Tramp problem with loooongish file names + +2025-04-05 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + ae7f65f3f9c Fix obsolete documentation of desktop library + fd5f817882a Improve Tramp's initial warnings + 1e865a2f288 Explain, how to suppress Tramp warnings + a0962074743 printed manuals: xrefs in and out of "Preparing Patches" + 3f9ac99fc7e Fix Tramp's file-attributes cache + +2025-04-05 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 38fec86281e ; Improve the documentation of 'slice' display spec (bug#... + 3f05b455f7e ; * src/editfns.c (Fmessage): Mention 'inhibit-message' (... + +2025-04-05 James Thomas <jimjoe@gmx.net> + + * lisp/gnus/nnfeed.el (nnfeed--write-server): Use default print settings. + + Bug#77113 + +2025-04-05 Eli Zaretskii <eliz@gnu.org> + + Teach 'current-column' to account for images + + * src/indent.c (check_display_width): Handle 'image' and 'slice' + display specs, instead of using the width of the underlying text. + Accept 2 additional arguments: WINDOW and SCAN_BYTE. (Bug#76107) + +2025-04-05 Billy Lei <LeiYiXia29@outlook.com> + + Add input method for languages based on Burmese + + This adds 4 new input methods: + . Burmese + . Burmese Visual + . Shan + . Mon + * lisp/leim/quail/burmese.el: New file. (Bug#77026) + +2025-04-05 Pengji Zhang <me@pengjiz.com> + + Fix mouse highlighting for compact mode lines (bug#77336) + + When 'mode-line-compact' is non-nil, the mode line string is + displayed as a whole. That confuses the computation of ranges + of mouse highlighting on the mode line because all the glyphs + have the same Lisp object source. As such, in this commit we + instead split the mode line string by sources, and display those + elements one by one, so the boundaries of each element could be + correctly detected for the purpose of mouse highlighting. + + * src/xdisp.c (display_mode_line): Display mode line elements + one by one when 'mode-line-compact' is non-nil. + (display_mode_element): Record source element number of the + stored string via a text property. + (Fformat_mode_line): Initialize 'mode_line_elt_no' to 0. + (syms_of_xdisp): New symbol for the text property. + +2025-04-05 Paul Nelson <ultrono@gmail.com> + + Restrict symbol prettification to displayable glyphs + + * lisp/international/mule.el (char-displayable-on-frame-p): New + function used to determine whether a character can be + meaningfully displayed on a given frame. + * doc/lispref/display.texi (Fontsets): Document it. + * lisp/progmodes/prog-mode.el + (prettify-symbols--composition-displayable-p): New function used + to restrict to displayable prettification symbols. This + prevents issues with missing characters appearing as boxes. + (prettify-symbols--make-keywords): Use it. (Bug#77381) + +2025-04-05 Paul Nelson <ultrono@gmail.com> + + Extend prettify-symbols-alist in TeX mode + + * lisp/textmodes/tex-mode.el (tex--prettify-symbols-alist): Add + further math symbols, quotes and fractions. (Bug#77381) + +2025-04-05 Elías Gabriel Pérez <eg642616@gmail.com> + + Optionally display function docstring in eldoc + + Allow display (optionally) function docstring in eldoc. (Bug#77124) + * etc/NEWS: Document changes. + * lisp/progmodes/elisp-mode.el + (elisp-eldoc-funcall-with-docstring-length): New user option. + (elisp-eldoc-funcall-with-docstring): New function. + +2025-04-05 Visuwesh <visuweshm@gmail.com> + + Improve formatting of 'setopt' suggestion in *Help* buffer + + * lisp/help-fns.el (help--recommend-setopt): Remove function, + and... + (help-fns--customize-variable): ... move the relevant code here + to keep related code in the same place. Change the formatting + to also include the :set function if it is set to a named + function. (Bug#77173) + +2025-04-05 Stefan Monnier <monnier@iro.umontreal.ca> + + perl-mode.el: Avoid obsolete font-lock face vars + + * lisp/progmodes/perl-mode.el (perl-mode-abbrev-table): Merge defvar + into the definition. + (perl-font-lock-keywords-1, perl-font-lock-keywords-2): Avoid obsolete + font-lock face vars. + +2025-04-05 Po Lu <luangruo@yahoo.com> + + Disable desktop-restore-frames by default on Android + + * lisp/desktop.el (desktop-restore-frames): Default to nil when + \(featurep 'android). + + * doc/emacs/misc.texi (Saving Emacs Sessions): Adjust to match. + +2025-04-05 Paul D. Nelson <ultrono@gmail.com> + + ediff-current-file: New optional startup-hooks arg + + * lisp/vc/ediff.el (ediff-current-file): Add optional + startup-hooks argument, so that the user can write wrapper + commands with more finely customized behavior (bug#77323). + +2025-04-04 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/emacs-lisp/warnings.el (display-warning): Don't quote lambda + +2025-04-04 Stefan Monnier <monnier@iro.umontreal.ca> + + (defclass): Don't duplicate the compiler macro + + * lisp/emacs-lisp/eieio.el (eieio--constructor-macro): New function. + (defclass): Use it. + +2025-04-04 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/calc/calc-keypd.el (calc-keypad-vector-menu): Don't quote lambda + +2025-04-04 Stefan Monnier <monnier@iro.umontreal.ca> + + Handle `TeX-master` holding a buffer + + Cleanup initialization of the syntax tables, while we're at it. + + * lisp/textmodes/reftex.el (reftex-syntax-table) + (reftex-syntax-table-for-bib): Move initialization into the declaration. + (reftex--prepare-syntax-tables): Delete function. + (reftex-mode): Delete call to it. + (reftex-TeX-master-file): Handle the case where `TeX-master` holds + a buffer (e.g. because of `reftex-find-duplicate-labels`). + Consolidate the two cases where we prompt the user. + +2025-04-04 Paul Nelson <ultrono@gmail.com> + + Add RefTeX support for non-file buffers + + * lisp/textmodes/reftex.el (reftex--get-buffer-identifier) + (reftex--get-directory, reftex--abbreviate-name) + (reftex--get-basename, reftex--get-truename): New helper + functions that handle both files and buffer objects. + (reftex--remove-buffer-from-master-index): New helper function. + (reftex-tie-multifile-symbols): Support non-file buffers, using + the above. + (reftex-TeX-master-file): Return current buffer when no file. + (reftex-access-scan-info): Remove check requiring file buffers. + (reftex-access-parse-file, reftex-check-parse-consistency): Skip + for non-file buffers. + (reftex-select-external-document): Use new helper function. + (reftex-locate-file): Return buffer objects directly. + (reftex-get-file-buffer-force): Handle buffer objects and + special 'buffer:' strings. + * lisp/textmodes/reftex-global.el (reftex-create-tags-file): Add + error handling for non-file buffers. Leave TAGS unsupported in + non-file buffers. + (reftex-find-duplicate-labels) + (reftex-isearch-switch-to-next-file): Use new helper functions + that handle both files and buffer objects. + (reftex-isearch-switch-to-next-file): Use equal rather than + string= to compare strings/buffers. + * lisp/textmodes/reftex-index.el (reftex-display-index) + (reftex-index-change-entry): Use new helper functions. + (reftex-index-visit-phrases-buffer): Add error handling for + non-file buffers. Leave phrases unsupported in non-file + buffers. + * lisp/textmodes/reftex-parse.el (reftex-do-parse) + (reftex-parse-from-file): Add support for non-file buffers. + (reftex-all-document-files, reftex-where-am-I) + (reftex-notice-new): Use new helper functions. + * lisp/textmodes/reftex-ref.el (reftex-label-info-update): + Support non-file buffers. + (reftex-label-info, reftex-replace-prefix-escapes, reftex-label) + (reftex-replace-prefix-escapes, reftex-offer-label-menu): Use + new helper functions. + * lisp/textmodes/reftex-sel.el (reftex-insert-docstruct): Use + new helper function. + * lisp/textmodes/reftex-toc.el (reftex-toc) + (reftex-recenter-toc-when-idle): Support non-file buffers. + * lisp/textmodes/reftex-cite.el (reftex-bib-or-thebib) + (reftex-get-bibfile-list): Use new helper functions. + * lisp/textmodes/reftex-global.el + (reftex-save-all-document-buffers, reftex-ensure-write-access): + Ignore non-file buffers. + * lisp/textmodes/reftex-parse.el (reftex-all-document-files): + For non-file objects, do not apply relative path transformation. + * test/lisp/textmodes/reftex-tests.el + (reftex-all-used-citation-keys-buffer) + (reftex-renumber-simple-labels-buffer): New tests for operations + on non-file buffers. + + RefTeX historically assumed that the buffers it operates on + visit files. To handle non-file buffers: + + Modify reftex-TeX-master-file so that it returns the buffer + object itself (as suggested by Stefan Monnier). Modify each + caller to handle buffer objects, aided by some helper functions + added to reftex.el. Replace 'string=' by 'equal' in places. + + Use buffer-base-buffer, where appropriate, to handle indirect + buffers (file and non-file). + + TAGS files and phrases buffers remain unsupported for non-file + buffers. + +2025-04-04 Martin Rudalics <rudalics@gmx.at> + + Don't propertize prompt in 'minibuffer--regexp-propertize' (Bug#77497) + + * lisp/minibuffer.el (minibuffer--regexp-propertize): Skip prompt + when propertizing user input (Bug#77497). + +2025-04-04 Paul Nelson <ultrono@gmail.com> + + Add repeat-map for Python indentation commands + + * lisp/progmodes/python.el (python-indent-repeat-map): New + keymap for repeating Python indentation commands when using + 'repeat-mode' (bug#77417). + +2025-04-04 Visuwesh <visuweshm@gmail.com> + + Fix C-x p p for remote directories with no Tramp connection + + * lisp/progmodes/project.el (project-switch-project): Allow + Tramp to establish a new connection for remote directories. + (Bug#77425) + +2025-04-03 Stephen Gildea <stepheng+emacs@gildea.com> + + * doc/emacs/custom.texi (File Variables): Reorganize + + Reorganize the section on file-local variables to tighten the paragraphs + describing each syntax: line one and local variables section. + +2025-04-03 Juri Linkov <juri@linkov.net> + + * lisp/window.el (window-deletable-p): Improve tab handling. + + Use frame parameter 'tab-bar-lines' instead of 'tab-bar-mode'. + Remove 'window-dedicated-p' (bug#71386). Doc fix. + Add 'frame' arg to 'window-list-1' (bug#59862). + +2025-04-03 Sean Whitton <spwhitton@spwhitton.name> + + vc-setup-buffer: Fix leaving wrong default-directory + + * lisp/vc/vc-dispatcher.el (vc-setup-buffer): Use run-with-timer + to ensure the buffer-local value gets set (bug#77306). + +2025-04-03 Laurent Stacul <laurent.stacul@gmail.com> (tiny change) + + Fix etags for Ruby module definitions with :: + + Problem: In Ruby we can define a nested module/class the safe + way (in the sense, if the parent module does not exist, it will + define it: + + module M + module N + end + end + + If M already exists, we can also write: + + module M::N; end + + With the later notation, the tag generated by etags will be M::N. + When browsing the code, using xref-find-definitions when the point + is on N, will not be able to find the definition of N because the + implicit tag name is M::N. + + This is the same problem with nested classes or even some rare + allowed definitions like explicitely defining a module/class from + the global namespace: + + class ::A; end + + Solution: We need to give an explicit tag name. To achieve this, + on module/class definition we truncate the name to the last found + column. + * lib-src/etags.c (Ruby_functions): Support "::" in module + definitions. + * test/manual/etags/README: Update instructions. + * test/manual/etags/ruby-src/test1.ru: Add identifiers with "::". + * test/manual/etags/CTAGS.good: + * test/manual/etags/CTAGS.good_crlf: + * test/manual/etags/CTAGS.good_update: + * test/manual/etags/ETAGS.good_1: + * test/manual/etags/ETAGS.good_2: + * test/manual/etags/ETAGS.good_3: + * test/manual/etags/ETAGS.good_4: + * test/manual/etags/ETAGS.good_5: + * test/manual/etags/ETAGS.good_6: + * test/manual/etags/ETAGS.good_7: Adapt expected results to the + change. (Bug#77421) + +2025-04-02 Paul Eggert <eggert@cs.ucla.edu> + + Pacify gcc -Wclobbered in Freplace_region_contents + + * src/editfns.c (Freplace_region_contents): Redo slightly to + pacify gcc -Wclobbered, by hoisting the eassume out of SCHARS and + into the caller later, where it’ll do more good anyway. + +2025-04-02 Stefan Monnier <monnier@iro.umontreal.ca> + + cl-macs.el: Fix minor merge snafu (bug#77348) + + * lisp/emacs-lisp/cl-macs.el (cl-flet, cl-labels): Recover the changes + made in commit 476426168106 and accidentally undone by a later merge of + commit 63adf9dcf53a. + +2025-04-02 Eli Zaretskii <eliz@gnu.org> + + Fix display of wide characters in display margins on TTY frames + + * src/xdisp.c (display_line): Remove incomplete glyph sequence of + the last multi-column character, if not all of its glyphs fit in + the marginal area. (Bug#77452) + +2025-04-02 Eli Zaretskii <eliz@gnu.org> + + More thorough fix for image slices on mode/header-line + + * src/xdisp.c (note_mode_line_or_margin_highlight): Remove + correction of DX and DY due to image slices, as this is now done + in 'mode_line_string'. + * src/dispnew.c (mode_line_string): Make DX and DY account for + image slices. (Bug#77429) + +2025-04-02 Mauro Aranda <maurooaranda@gmail.com> + + Fix widget relationship in customize-themes + + * lisp/cus-theme.el (customize-themes): The theme button should + be a sibling of the checkbox widget, not a child. (Bug#77096) + +2025-04-01 Stefan Monnier <monnier@iro.umontreal.ca> + + (custom--standard-value-p): New function + + * lisp/cus-edit.el (custom-variable-state) + (custom-variable-mark-to-reset-standard): Use `custom--standard-value-p`. + + * lisp/custom.el (custom--standard-value-p): New function. + (customize-mark-to-save, custom-push-theme, enable-theme): Use it. + + * lisp/help-fns.el (describe-variable): Use `custom--standard-value`. + Extracted from `customize-mark-to-save` by with `ignore-errors` + replaced by `with-demoted-errors`. + +2025-04-01 Elías Gabriel Pérez <eg642616@gmail.com> + + Add 'project-customize-dirlocals' + + * etc/NEWS: Add command entry. + * lisp/menu-bar.el (menu-bar-project-menu): Add command entry to + project menu. + * lisp/progmodes/project.el (project-customize-dirlocals): + New command. (Bug#77229) + +2025-04-01 Stefan Kangas <stefankangas@gmail.com> + + function-put: signal error with non-symbol + + * lisp/subr.el (function-get): Signal an error if given a non-symbol + for consistency with 'get'. + * test/lisp/subr-tests.el (subr-butlast): Test for the above. + +2025-04-01 Juri Linkov <juri@linkov.net> + + New treesit generic mode 'liquid-generic-ts-mode' (bug#77255) + + * lisp/treesit.el (treesit-replace-font-lock-feature-settings): + Check the query language in addition to checking the feature. + (treesit-font-lock-fontify-region): Use treesit-font-lock-setting-* + accessors. + + * lisp/treesit-x.el (treesit-generic-mode-setup): Append new + font-lock rules to an existing treesit-font-lock-settings + possibly inherited from the parent. + (treesit-generic-mode-setup): Use treesit-merge-font-lock-feature-list + to merge with an existing feature list inherited from the parent. + (liquid-generic-ts-mode): New treesit generic mode. + (alpinejs-generic-ts-setup): New treesit generic setup. + +2025-04-01 Mauro Aranda <maurooaranda@gmail.com> + + Move a vc option to a preloaded file + + Since vc-resolve-conflicts is referenced in backend files, which only + require vc at runtime, move it to vc-hooks to avoid a void + variable error. (Bug#3860) + + * lisp/vc/vc.el (vc-resolve-conflicts): Move from here... + * lisp/vc/vc-hooks.el (vc-resolve-conflicts): ...to here. + +2025-04-01 Eli Zaretskii <eliz@gnu.org> + + Fix :map property on sliced images on mode line and header line + + * src/xdisp.c (note_mode_line_or_margin_highlight): Fix coordinates + for image slices wrt ':map' keyword when the image is on the mode + line or header line. (Bug#77429) + +2025-04-01 Vincenzo Pupillo <v.pupillo@gmail.com> + + Added a check to see if the 'speedbar-buffer' is still alive + + Fix suggested by Rudi Schlatte <rudi@constantly.at>. + * lisp/speedbar.el (speedbar-frame-or-window): Added an additional check + to see if 'speedbar-buffer' is still alive (bug#77405). + +2025-04-01 Ikumi Keita <ikumi@ikumi.que.jp> + + Suppress error in non-file buffer + + * lisp/textmodes/reftex.el (reftex--suppress-nonfile-error): New + variable. + (reftex-TeX-master-file): Don't signal error in non-file buffer. + (AUCTeX bug#76615) + +2025-03-31 Lin Jian <me@linj.tech> (tiny change) + + Fix pkg description file name when pkg name has numbers (Bug#77143) + + * lisp/subr.el (package--description-file): Match end of string and add + `snapshot` among the possible version names. + +2025-03-31 Earl Hyatt <okamsn@protonmail.com> + + Fix typo in test of read-only cl-defstruct slot. + + * test/lisp/emacs-lisp/cl-macs-tests.el (mystruct) + (cl-lib-struct-accessors): Use ":read-only" instead of ":readonly". + + * test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-struct-accessors): + Test using `setf' on read-only accessor to make sure the correct keyword + is used. + +2025-03-31 Earl Hyatt <okamsn@protonmail.com> + + Add cl-with-accessors + + * lisp/emacs-lisp/cl-macs.el (cl-with-accessors): New macro. + * doc/misc/cl.texi (Structures): Mention the new macro. + * test/lisp/emacs-lisp/cl-macs-tests.el (cl-lib-struct-with-accessors): + New Test. + * etc/NEWS (New macro 'cl-with-accessors'.): Mention the macro. + + This macro is useful when making repeated use of a structures accessor + functions, such as reading from a slot and then writing to a slot. It + is similar to 'with-slots' from EIEIO, but uses accessor functions + instead of slot names. + +2025-03-31 Juri Linkov <juri@linkov.net> + + Improve logic of tab handling when quitting windows (bug#71386) + + * lisp/window.el (window-deletable-p): Add tab logic that returns + the symbol 'tab' for a set of predefined conditions. + (window--delete): Call 'tab-bar-close-tab' when 'window-deletable-p' + returns the symbol 'tab'. + (quit-restore-window): Remove tab logic and merge it with frame logic. + + * test/lisp/tab-bar-tests.el (tab-bar-tests-close-other-tabs-default) + (tab-bar-tests-close-other-tabs-with-arg): Clean up tabs afterwards. + (tab-bar-tests-quit-restore-window): New test. + +2025-03-31 Stefan Monnier <monnier@iro.umontreal.ca> + + (insert-kbd-macro): Polish + + * lisp/macros.el (insert-kbd-macro): Straighten control flow, use `pp` + and `keymap-global-set`. + +2025-03-31 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/macros.el (insert-kbd-macro): Fix anonymous case (bug#77317) + +2025-03-31 Stefan Monnier <monnier@iro.umontreal.ca> + + japan-util.el: Cosmetic changes + + * lisp/language/japan-util.el (<toplevel>): Use `pcase-dolist` and `when`. + (japanese-string-conversion): Use `point-min`. + +2025-03-31 Eli Zaretskii <eliz@gnu.org> + + Fix replace-region in japan-util.el + + * lisp/language/japan-util.el (japanese-replace-region): Allow + STRING to be a character in addition to a string. Un-obsolete + it. + (japanese-katakana-region, japanese-hiragana-region) + (japanese-hankaku-region, japanese-zenkaku-region): Call + 'japanese-replace-region' instead of 'replace-region-contents'. + (Bug#77397) + +2025-03-30 Michael Albinus <michael.albinus@gmx.de> + + Merge from origin/emacs-30 + + e6b4c0bcebf lisp/emacs-lisp/cl-macs.el (cl-labels): Fix docstring (bu... + 7a976d1aaf7 Fix minor issues in documentation of `use-package' + 99ff59bd66c PHP should be in the PATH, either locally or remotely. (b... + 26873d5028e Avoid warning when loading 'go-ts-mode' + a702f29a00b ; Fix package-version values + a1fbc51dc71 ; * lisp/which-key.el (which-key-idle-delay): Fix package... + + # Conflicts: + # lisp/progmodes/php-ts-mode.el + # lisp/which-key.el + +2025-03-30 Pip Cet <pipcet@protonmail.com> + + Respect narrowed buffers when parsing JSON (bug#77325) + + * src/json.c (Fjson_insert): Simplify 'memcpy' argument. + (Fjson_parse_buffer): Only read to ZV, not all the way to Z. + * test/src/json-tests.el (with-all-gap-positions-in-temp-buffer): + New macro. + (json-parse-buffer/restricted): New test. + +2025-03-30 Eli Zaretskii <eliz@gnu.org> + + Fix display of overlay arrow immediately after invisible text + + * src/xdisp.c (overlay_arrow_at_row): Allow the overlay arrow's + marker position to be anywhere between the row's start and end + charpos. This keeps the overlay arrow on display even when the + preceding text is invisible. (Bug#54843) + +2025-03-30 Yuan Fu <casouri@gmail.com> + + Tighten the criteria for a defun in typescript-ts-mode (bug#77369) + + * lisp/progmodes/typescript-ts-mode.el: + (typescript-ts-mode--defun-predicate): New function. + (typescript-ts-base-mode): Use new predicate. + +2025-03-30 Stefan Monnier <monnier@iro.umontreal.ca> + + src/insdel.c (replace_range): Remove comment + + It should have been removed in commit b16afa45bb6a. + +2025-03-30 Po Lu <luangruo@yahoo.com> + + Don't obsolete the _command_ replace-buffer-contents + + * lisp/subr.el (replace-buffer-contents): Don't obsolete + function. Its purpose is to serve as a command and such + obsoletion was unnecessary to begin with. + +2025-03-29 Stephen Gildea <stepheng+emacs@gildea.com> + + time-stamp source commentary: point to manual section + + * lisp/time-stamp.el: Add an Info link in the commentary, + now that the manual has more to say. + * doc/emacs/files.texi (Time Stamps for One File): Expand one + consistent example. + +2025-03-29 Stefan Monnier <monnier@iro.umontreal.ca> + + Org: Use new `replace-region-contents` + + * lisp/org/org-compat.el (org-replace-buffer-contents): Delete function. + (org-replace-region-contents): New function. + * lisp/org/org-src.el (org-edit-src-save, org-edit-src-exit): Use it. + +2025-03-29 Stefan Monnier <monnier@iro.umontreal.ca> + + Use `replace-region-contents` to replace insert+delete + + * lisp/minibuffer.el (completion--replace): + * lisp/emacs-lisp/cl-lib.el (cl--set-buffer-substring): + * lisp/subr.el (replace-string-in-region): + Use `replace-region-contents` instead of insert+delete. + + * lisp/help-fns.el (help-fns--signature): + Use `replace-region-contents` instead of `cl--set-buffer-substring`. + + * lisp/language/japan-util.el (japanese-replace-region): + Rewrite using `replace-region-contents` and mark obsolete. + (japanese-katakana-region, japanese-hankaku-region): + Use `replace-region-contents` instead. + + * lisp/progmodes/flymake-proc.el (flymake-proc--replace-region): + Rewrite using `replace-region-contents` and mark obsolete. + (flymake-proc--check-patch-master-file-buffer): + Use `replace-region-contents` instead. + +2025-03-29 Stefan Monnier <monnier@iro.umontreal.ca> + + Replace uses of `replace-buffer-contents` + + * lisp/vc/vc.el (vc-diff-restore-buffer): + * lisp/progmodes/python.el (python--do-isort): + * lisp/progmodes/eglot.el (eglot--apply-text-edits): + * lisp/files.el (revert-buffer-insert-file-contents-delicately): + * lisp/json.el (json-pretty-print): Use `replace-region-contents`. + +2025-03-29 Stefan Monnier <monnier@iro.umontreal.ca> + + src/insdel.c (adjust_markers_for_replace): Fix insertion case + + test/src/editfns-tests.el (editfns-tests--insert-via-replace): New test + +2025-03-29 Stefan Monnier <monnier@iro.umontreal.ca> + + (replace-region-contents): Improve and promote (bug#76313) + + Swap the role of `replace-region-contents` and `replace-buffer-contents`, + so `replace-region-contents` is the main function, implemented in C, + and `replace-buffer-contents` is a mere wrapper (marked as obsolete). + Also remove the need to rely on narrowing and on describing the + new text as a function. + Finally, allow MAX-SECS==0 to require a cheap replacement, and + add an INHERIT argument. + + * src/editfns.c: Include `coding.h`. + (Freplace_region_contents): Rename from `Freplace_buffer_contents`. + Change calling convention to that of `replace-region-contents`. + Add more options for the SOURCE argument. Add INHERIT argument. + Skip the costly algorithm if MAX-SECS is 0. + * src/insdel.c (replace_range): Allow NEW to be a buffer. + + * lisp/subr.el (replace-buffer-contents): New implementation. + * lisp/emacs-lisp/subr-x.el (replace-region-contents): Delete. + + * doc/lispref/text.texi (Replacing): Document new API for + `replace-region-contents`. Remove documentation of + `replace-buffer-contents`. + + * test/src/editfns-tests.el (replace-buffer-contents-1) + (replace-buffer-contents-2, replace-buffer-contents-bug31837): + Use `replace-region-contents`. + (editfns--replace-region): Delete. + (editfns-tests--replace-region): Use `replace-region-contents`. + Adds tests for new types of SOURCE args. + +2025-03-29 Rahul Martim Juliato <rahul.juliato@gmail.com> + + Enhance 'icomplete-vertical-mode' customization options. + + * lisp/icomplete.el (icomplete-vertical-in-buffer-adjust-list): + Align in-buffer completion to the original cursor column. + (icomplete-vertical-render-prefix-indicator): Add a prefix + indicator to completion candidates when enabled. + (icomplete-vertical-selected-prefix-indicator): Specify the + prefix string for the selected candidate. + (icomplete-vertical-unselected-prefix-indicator): Specify the + prefix string for unselected candidates. + (icomplete-vertical-selected-prefix-indicator-face): Control + the appearance of the selected candidate prefix. + (icomplete-vertical-unselected-prefix-indicator-face): Control + the appearance of unselected candidate prefixes. + (Bug#75794) + + * etc/NEWS: Document the new user options and faces. + +2025-03-29 Stefan Kangas <stefankangas@gmail.com> + + Use 'hash-table-contains-p' in a few places + + This replaces open coded versions of the common idiom + (not (eq (gethash key table 'missing) 'missing)) + with + (hash-table-contains-p key table) + in files where we can rely on features in Emacs 31. + + * lisp/emacs-lisp/map.el (map-contains-key): + * lisp/external-completion.el (external-completion-table): + * lisp/mh-e/mh-utils.el (mh-sub-folders) + (mh-remove-from-sub-folders-cache): + * lisp/net/ange-ftp.el (ange-ftp-hash-entry-exists-p): + * lisp/password-cache.el (password-in-cache-p, password-cache-add): + * lisp/pcmpl-x.el (pcmpl-x-tlmgr-action-options): + * lisp/xdg.el (xdg-mime-apps): Use 'hash-table-contains-p'. + +2025-03-29 Stefan Kangas <stefankangas@gmail.com> + + New function 'hash-table-contains-p' + + This function tests whether a given key is present in a hash table. + Emacs Lisp has long lacked a standard way to do this, leading users to + write one of: + + (not (eq (gethash key table 'missing) 'missing)) + or + (gethash key table) + + This idiom is error-prone (when 'missing' or 'nil' are valid values), + and it obscures intent. The new function avoids such pitfalls, + improves readability, and makes the intent explicit: + + (hash-table-contains-p key table) + + The name 'hash-table-contains-p' exists in other Lisp dialects (e.g., + SRFI-125), and follows the precedent of 'seq-contains-p'. Other + alternatives considered include `hash-table-has-key-p` and + `hash-table-key-exists-p`, but none were clearly better. + + This was previously discussed in 2018, and all comments were positive, + but the proposed patch (implementing it in C) was never pushed: + https://lists.gnu.org/r/emacs-devel/2018-02/msg00424.html + + * lisp/subr.el (hash-table-contains-p): New function. + * lisp/emacs-lisp/shortdoc.el (hash-table): + * doc/lispref/hash.texi (Other Hash): Document the new function. + * test/lisp/subr-tests.el (hash-table-contains-p): New test. + +2025-03-29 Stefan Kangas <stefankangas@gmail.com> + + Remove redundant constant nil argument to gethash + + * lisp/cedet/ede/files.el (ede--directory-project-from-hash): + * lisp/emacs-lisp/edebug.el (edebug-unwrap*): + * lisp/emacs-lisp/testcover.el (testcover--copy-object1): + * lisp/net/zeroconf.el (zeroconf-get-service, zeroconf-resolve-service) + (zeroconf-register-service-browser, zeroconf-service-browser-handler) + (zeroconf-register-service-resolver): + * lisp/url/url-history.el (url-have-visited-url): Remove redundant + constant nil argument to gethash. + +2025-03-29 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 9a07d64f5c7 ; Minor update in ack.texi + b3881ac443f ; Improve type specifier documentation + 6a3e2b88d26 ; Improve documentation of "function types" + +2025-03-29 shipmints <shipmints@gmail.com> + + 'uniquify' user option setters and automatic buffer refresh (bug#77157) + + Use 'customize', 'setopt', or 'uniquify--set-option' instead of + 'setq' to benefit. + + * lisp/uniquify.el (uniquify--buffer-refresh): New function. + (uniquify--set-option): New function. + (uniquify-buffer-name-style): Add :initialize and :set forms. + (uniquify-ignore-buffers-re): Add :initialize and :set forms. + (uniquify-min-dir-content): Add :initialize and :set forms. + (uniquify-separator): Add :initialize and :set forms. + (uniquify-strip-common-suffix): Add :initialize and :set forms. + (uniquify-dirname-transform): Add :initialize and :set forms. + +2025-03-29 Vincenzo Pupillo <v.pupillo@gmail.com> + + Fix compiler warnings in mhtml-ts-mode.el (bug#77017). + + * lisp/textmodes/mhtml-ts-mode.el: + Added variable and function declarations to prevent compiler + warnings. + (mhtml-ts-mode): Require 'html-ts-mode' after checking that + the html parser is available. + +2025-03-29 Elías Gabriel Pérez <eg642616@gmail.com> + + New minor mode: `electric-block-comment-mode' + + This minor lets you automatically closing block comments after + typing `block-comment-start'. Thus, typing "/*" in c-mode and + its derivatives automatically inserts "*/". (Bug#77081) + + * etc/NEWS: Add minor-mode item. + * lisp/electric.el + (electric-block-comment-post-self-insert-function): New function. + (electric-block-comment-mode): New minor mode definition. + +2025-03-29 Daniel Mendler <mail@daniel-mendler.de> + + New Eldoc function `eldoc-show-help-at-pt' + + Show `help-at-pt' string via Eldoc as an alternative to the + `help-at-pt-display-when-idle' timer. The help-at-pt timer + competes with Eldoc for the echo area, such that the two + mechanisms do not work well together. Therefore when using + Eldoc, the setting `eldoc-help-at-pt' may be preferable. + * lisp/emacs-lisp/eldoc.el (eldoc-help-at-pt): New customization option. + (eldoc-show-help-at-pt): New Eldoc function. + (eldoc-documentation-functions): Register the new function. + * lisp/help-at-pt.el (help-at-pt-display-when-idle): Mention + `eldoc-help-at-pt' in the docstring. + * doc/emacs/help.texi: Document `eldoc-help-at-pt'. + * etc/NEWS: Announce the change. (Bug#77169) + +2025-03-29 Jens Schmidt <jschmidt4gnu@vodafonemail.de> + + Improve message handling on server stop + + * lisp/server.el (server-stop): Use a clearer signal message if there is + an existing, external Emacs server. + (server-start): Use a different warning if one attempts to only + stop (and not restart) an external server. + (server-unload-function): Silently stop the server if unloading its + library. (Bug#76870) + +2025-03-29 Andrés Ramírez <rrandresf@gmail.com> (tiny change) + + Add a key binding to Semantic's complete.el + + * lisp/cedet/semantic/complete.el (semantic-complete-key-map): Add + a binding for 'switch-to-completions'. (Bug#77227) + +2025-03-29 Konstantin Kharlamov <Hi-Angel@yandex.ru> + + Add major mode for highlighting npmrc files (Bug#77138) + + * etc/NEWS: mention the new mode. + * lisp/textmodes/conf-mode.el (conf-npmrc-mode-syntax-table): New + variable. + * lisp/textmodes/conf-mode.el (conf-npmrc-mode): New major mode + derived from conf-mode for highlighting .npmrc files. + * lisp/files.el (auto-mode-alist): Associate the new mode with .npmrc + files. + +2025-03-29 Po Lu <luangruo@yahoo.com> + + Do not redundantly dump constant forwarding objects + + * src/pdumper.c (dump_fwd_int, dump_fwd_bool, dump_fwd_obj): Do + not redundantly dump constant forwarding descriptors; restrict + to dumping the objects being forwarded to. + (dump_fwd_buffer_obj): Copy from the dump file into bss rather + than load buffer forwarding descriptors from the dump file + itself. + (dump_fwd_kboard_obj): Delete function. + (dump_fwd): Don't return offset of dumped objects. + (dump_blv): Adjust correspondingly. + (dump_pre_dump_symbol): Improve documentation. Record offset of + forwarding objects in relation to `emacs_basis' rather than the + dump file. + (dump_symbol): Restore forwarding descriptors to their original + values as static variables in Emacs. This reduces the size of + dump files by an insignificant 2kb but facilitates certain kinds + of watchpoints on platforms where ASLR cannot be disabled, e.g., + Android. + +2025-03-28 Michael Albinus <michael.albinus@gmx.de> + + tramp-tests cleanup + + * test/lisp/net/tramp-tests.el (tramp-test26-file-name-completion) + (tramp-test26-interactive-file-name-completion): Adapt tests. + +2025-03-28 Gerd Möllmann <gerd.moellmann@gmail.com> + + Remove a use of a PUA Unicode character (bug#77328) + + * lisp/progmodes/eglot.el (eglot-code-action-indicator): Use + U+1F4A1 ELECTRIC LIGHT BULB instead of a PUA character. + +2025-03-28 Po Lu <luangruo@yahoo.com> + + Miscellaneous corrections + + * src/buffer.h (BUF_PTR_BYTE_POS): Fix comment. + + * src/profiler.c (add_sample): Use BASE_EQ. + +2025-03-27 Stephen Gildea <stepheng+emacs@gildea.com> + + MH-E: set default-directory to HOME on entry + + * lisp/mh-e/mh-e.el (mh-default-directory, mh-set-default-directory): + New variable (defaults to "~/"), new function to use it. + * lisp/mh-e/mh-folder.el (mh-rmail, mh-nmail): Call + mh-set-default-directory on entry to MH-E (closes: bug#77263). + +2025-03-27 Daniel Colascione <dancol@dancol.org> + + Help find-function find methods defined inside macros + + * doc/lispref/functions.texi (Finding Definitions): Document the + expanded definition-finding extension mechanism. + * etc/NEWS: Briefly describe the new feature. + * lisp/emacs-lisp/cl-generic.el + (cl--generic-find-defgeneric-regexp): Use defconst now that we + no longer have purespace. + (cl--generic-search-method-make-form-matcher): New function. + * lisp/emacs-lisp/find-func.el (find-function-regexp-alist) + (find-function-search-for-symbol): Parse out the new + factory function. + (find-function--search-by-expanding-macros): Try using it when + searching for definitions by expanding macros. + +2025-03-27 Jimmy Aguilar Mena <kratsbinovish@gmail.com> + + Add jump action to margin indicators in flymake + + (flymake--indicator-overlay-spec): Receive type instead of prepossessed + indicator. + (flymake--resize-margins): Update reference call to + flymake--indicator-overlay-spec. + (flymake-show-buffer-diagnostics-at-event-line): + (flymake-diagnostics-at-mouse-event): + (flymake-show-buffer-diagnostics-at-event-position): New functions. + (flymake-after-show-buffer-diagnostics-hook): New custom with actions + when jumping to an error line. + (flymake-pulse-momentary-highlight-region): + (flymake-show-buffer-diagnostics): Receive new optional argument with + current diagnostic information. Add code to jump and execute the new hook + after jumping (bug#75841). + +2025-03-27 Michael Albinus <michael.albinus@gmx.de> + + Handle better changed default-directory in shell-command + + * lisp/simple.el (shell-command): Kill buffer-local values of + `shell-file-name' and `shell-command-switch', there could be left + connection-local values. (Bug#76888) + +2025-03-27 Cecilio Pardo <cpardo@imayhem.com> + + w32: fail gracefully when using invalid glyphs on DWrite + + * src/w32dwrite.c (text_extents_internal): Return false instead + of crashing with bad glyph indexes. (Bug#77196) + +2025-03-27 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/help-fns.el (help-fns--signature): Pretty print type + +2025-03-27 Yue Yi <include_yy@qq.com> + + peg.texi: Fix bug#76555 even a bit more + + * doc/lispref/peg.texi (Parsing Expression Grammars): + Fix other part of the grammar of `define-peg-ruleset` example. + +2025-03-27 Yue Yi <include_yy@qq.com> + + peg.texi: Fix bug#76555 even a bit more + + * doc/lispref/peg.texi (Parsing Expression Grammars): + Fix grammar of `define-peg-ruleset` example. + +2025-03-27 Stefan Monnier <monnier@iro.umontreal.ca> + + PEG: Fix bug#76555 + + * doc/lispref/peg.texi (Parsing Expression Grammars): + Fix `define-peg-ruleset` example. + + * lisp/progmodes/peg.el (define-peg-rule): Fix indent rule. + +2025-03-27 Alan Mackenzie <acm@muc.de> + + C++ Mode: Fix some indentation bugs. FIxes bug#19867 + + 1. Fix closing paren aligning with trailing comment on line + with matching open paren. + 2. Fix indentation of first identifier inside a comma separated + list aligning with the type rather than the subsequent + identifiers. + 3. Fix lambda expressions inside a brace list aligning like a + single statement. + + * lisp/progmodes/cc-align.el (c-lineup-arglist): Take into + account any preceding comments when lining up the arguments in + the arglist. + (c-lineup-arglist-intro-after-paren): Handle comments properly, + and don't line up the closing parenthesis with a trailing + comment on the first line. + (c-lineup-item-after-paren-at-boi): Also allow a paren to count + as being at BOI when it is preceded only by open parens on that + line. + (c-lineup-runin-statements, c-lineup-ObjC-method-call): Hanle + comments better. + + * lisp/progmodes/cc-engine.el (c-forward-comments) Introduce an + optional limit parameter. Use this limit in calls from + cc-align.el and cc-mode.el. + (c-just-after-func-arglist-p): Handle the presence of a + protection keyword such as "public". + (c-at-bracelist-p): Renamed from c-inside-bracelist-p, after + dropping the accept-in-paren parameter, having removed its + functionality. + (c-looking-at-statement-block-1): New function, based on the + old c-looking-at-statement-block. Enhanced to handle C++ + lambda expressions, and to return the symbol `maybe' when the + contents of a brace delimited block fail to determine whether + it is a statement block. + (c-looking-at-statement-block): Enhanced to examine the context + of a brace delimited block when the contents are ambiguous. + (c-looking-at-c++-lambda-expression): Check the character after + point is a < before calling c-forward-<>-arglist. + (c-add-stmt-syntax): Make the context more accurate by calling + c-looking-at-statement-block. + (c-guess-basic-syntax, CASE 5D.5): Replace the syntactic symbol + topmost-intro-cont with the new symbol class-field-cont, + additionally determining the position of the enclosing brace as + an extra anchor point. + (c-guess-basic-syntax, CASE 5V): New case for an identifier + following a type inside class braces. + (c-guess-basic-syntax, CASE 9): Use + c-looking-at-statement-block to detect a brace list more + accurately. + + * lisp/progmodes/cc-fonts.el (c-get-fontification-context): + Rename the call to c-inside-bracelist-p to c-at-bracelist-p. + + * lisp/progmodes/cc-langs.el (c-protection-kwds): Add an entry + for java-mode. + (c-stmt-block-only-keywords-regexp): Prevent this regexp also + matching a character preceding the keyword. + + * lisp/progmodes/cc-mode.el (c-before-change-include-<>) + (c-after-change-include-<>): Use the new limit argument to + c-forward-comments. + + * lisp/progmodes/cc-styles.el (c-style-alist, "gnu" and "java" + styles): Change the offset for arglist-close to + c-lineup-arglist-close-under-paren. + + * lisp/progmodes/cc-vars.el (c-offsets-alist): Introduce the + new syntactic symbol class-field-cont, giving it default + offset +. + + * doc/misc/cc-mode.texi (Syntactic Symbols, Class Symbols): + Document the new syntactic symbol class-field-cont. + +2025-03-27 Juri Linkov <juri@linkov.net> + + * lisp/treesit-x.el: Remove unnecessary treesit-generic-mode. + + (treesit-generic-mode-list): Remove variable. + (define-treesit-generic-mode): Remove docstring text about hook + that is already added by 'define-derived-mode'. + (treesit-generic-mode): Remove command. + +2025-03-27 Gerd Möllmann <gerd.moellmann@gmail.com> + + Don't write to bottom-right cell on ttys with AutoWrap (bug#77233) + + * src/term.c (tty_write_glyphs): Handle case of writing only one + character in the last column. + +2025-03-26 Stefan Kangas <stefankangas@gmail.com> + + Signal user-error in info--ensure-not-in-directory-node + + * lisp/info.el (info--ensure-not-in-directory-node): Change from 'error' + to 'user-error' to reduce 'debug-on-error' frustration. + +2025-03-26 Eli Zaretskii <eliz@gnu.org> + + Fix vertical cursor motion with wide images and line numbers + + * src/xdisp.c (produce_image_glyph): When cropping an image that + exceeds the window's right edge, account for the screen estate + taken by line-number display. (Bug#77217) + +2025-03-26 Martin Rudalics <rudalics@gmx.at> + + Further amendments of child frame handling and documentation + + * src/frame.c (frame_subsumes_p): New static function + (delete_frame): On ttys refuse to delete a frame that could be + used as surrogate minibuffer frame by surviving frames. + (store_frame_param): Make sure 'minibuffer' parameter does not + reference a deleted window. If on a tty it references a live + window, make sure its frame has the same root frame as the frame + where the parameter shall be installed. Also on ttys make sure + that storing the 'parent-frame' parameter does not assign a + surrogate minibuffer frame a different root frame than that of + any of its client frames. Further on ttys assert that making a + child a new root frame gives it the dimensions of the terminal. + (Fmouse_position_in_root_frame): Don't use XFRAME before + it's clear that FRAME is a frame. + * doc/lispref/elisp.texi (Top): Add menu for Child Frames section. + * doc/lispref/frames.texi (Buffer Parameters): Mention that + value 'child-frame' is not special for 'minibuffer' parameter on + text terminals. + (Visibility of Frames): Fix description of 'iconify-frame'. + (Raising and Lowering): 'minibuffer-auto-raise' is an option. + (Child Frames): Major rewrite using subsections. Explain new + and deviant features on text terminals - menu bar access, + reparenting, deleting, visibility and minibuffer-only child + frames. + * etc/NEWS: Remove remark that child frames cannot be + arbitrarily reparented on ttys. + +2025-03-26 Philipp Stephani <p.stephani2@gmail.com> + + Use numeric time zone suffix in ERT explainer. + + This is more robust since the time zone name is system-dependent. + + * lisp/emacs-lisp/ert.el (ert--explain-time-equal-p): Use numeric time + zone suffix. + + * test/lisp/emacs-lisp/ert-tests.el (ert-test-explain-time-equal-p): + Adapt test. + +2025-03-25 Michael Albinus <michael.albinus@gmx.de> + + * test/lisp/gnus/message-tests.el (message-default-buffer-type): New test. + +2025-03-25 Stefan Monnier <monnier@iro.umontreal.ca> + + backtrace.el: Remove redundant `put` and `:group` + + * lisp/emacs-lisp/backtrace.el: Remove redundant `:group` args. + Prefer # to quote function arguments. + (backtrace-mode): Remove redundant `put`. + +2025-03-25 Stefan Monnier <monnier@iro.umontreal.ca> + + bs.el: Janitorial work; most importantly use `special-mode` + + * lisp/bs.el: Prefer # to quote function arguments. + (bs-mode-font-lock-keywords): Use backquote; quote face names; and use + a list of faces instead of two applications at the same spot. + (bs-sort-buffer-interns-are-last, bs-config--files-and-scratch) + (bs-configurations, bs--intern-show-never): Fix ^$-vs-\`\' confusion. + (bs-mode-map): Remove bindings made redundant by inheritance. + (bs--redisplay): Use `line-number-at-pos`. + (bs--goto-current-buffer): Use `regexp-opt`. + (bs-mode): Inherit from `special-mode`. + (bs--current-buffer, bs--up): Use `point-min`. + (bs--create-header-line): Remove redundant arg. + +2025-03-25 Stefan Monnier <monnier@iro.umontreal.ca> + + bookmark.el: Cosmetic changes + + * lisp/bookmark.el: Prefer # to quote function arguments. + (bookmark-watch-bookmark-file): Remove redundant `:group`. + (bookmark-bmenu-mode): Let `define-derived-mode` take care of + `mode-class` property. + +2025-03-25 Juri Linkov <juri@linkov.net> + + * lisp/treesit-x.el: New file. + + * lisp/treesit.el (treesit--copy-queries): New function. + (treesit--install-language-grammar-1): Use it. + + https://lists.gnu.org/archive/html/emacs-devel/2025-03/msg01312.html + +2025-03-25 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/gnus/mm-encode.el (mm-default-buffer-type): Obey the mode hierarchy + +2025-03-25 Michael Albinus <michael.albinus@gmx.de> + + * lisp/gnus/mm-encode.el (mm-default-buffer-type): Check `major-mode'. + +2025-03-25 Philipp Stephani <p.stephani2@gmail.com> + + Rename 'buffer-too-small' to 'memory-buffer-too-small'. + + This clarifies that the error isn't talking about an editing buffer. + + * src/emacs-module.c (module_memory_buffer_too_small): Rename from + 'module_buffer_too_small'. + (module_copy_string_contents, module_extract_big_integer): Adapt + callers. + (syms_of_module): Rename symbol 'buffer-too-small' to + 'memory-buffer-too-small'. + +2025-03-25 Michael Albinus <michael.albinus@gmx.de> + + Use better attachment defaults for *diff* buffers + + * lisp/gnus/mm-encode.el (mm-default-buffer-type): New defun. + + * lisp/gnus/mml.el (mml-attach-buffer): Use it. + +2025-03-25 Michael Albinus <michael.albinus@gmx.de> + + * test/infra/Dockerfile.emba (emacs-tree-sitter): Add gowork grammar. + +2025-03-25 James Cherti <contact@jamescherti.com> (tiny change) + + outline-move-subtree-down/up: Fix for non-nil outline-blank-line + + * lisp/outline.el (outline-move-subtree-down): + Include blank line when outline-blank-line is t + (bug#77238). + +2025-03-25 Stefan Monnier <monnier@iro.umontreal.ca> + + (built-in-class--make): Take list of types rather than classes + + Consolidate the conversion from types to classes into + `built-in-class--make` instead of duplicating it in ever caller. + + * lisp/emacs-lisp/cl-preloaded.el (built-in-class--make): Take list of + types rather than classes. + (cl--define-built-in-type): Simplify accordingly. + +2025-03-25 Po Lu <luangruo@yahoo.com> + + Fix the DJGPP build + + * msdos/emacs.djl (.bss): Guarantee that lread.o is 8-byte + aligned. + + * msdos/sed2v2.inp (ALIGNOF_INT, ALIGNOF_LONG) + (ALIGNOF_LONG_LONG): Correct typos. + + * src/term.c (tty_free_frame_resources): Synchronize with + non-DOS variant. + +2025-03-25 Philipp Stephani <p.stephani2@gmail.com> + + Mimic behavior of 'aref' when signalling out-of-range errors. + + The convention used by 'aref' and friends is that for + 'args-out-of-range', the error data is a list (SEQ INDEX). Use the same + convention for the vector-related module functions. + + * src/emacs-module.c (check_vec_index): Use vector and index as error + data. + +2025-03-25 Philipp Stephani <p.stephani2@gmail.com> + + Don't use 'args-out-of-range' error for too-small buffers. + + 'args-out-of-range' means that some index argument isn't valid for a + given sequence/range, which isn't the case here. Instead, define a new + error symbol to mean "user-supplied buffer is too small." Since we + never specified nor tested which error symbol was signalled in this + case, changing it shouldn't cause severe breakages. + + * src/emacs-module.c (module_buffer_too_small): New helper function. + (module_copy_string_contents, module_extract_big_integer): Use it. + (syms_of_module): Define 'buffer-too-small' error symbol. + +2025-03-24 Philipp Stephani <p.stephani2@gmail.com> + + Add an ERT explainer for 'time-equal-p'. + + * lisp/emacs-lisp/ert.el (ert--explain-time-equal-p): New explainer + function. + + * test/lisp/emacs-lisp/ert-tests.el (ert-test-explain-time-equal-p): New + test. + +2025-03-24 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/loadup.el (max-lisp-eval-depth): Bump up a bit + + This is to accommodate the deep backquoted thingy in `cus-start.el`. + +2025-03-24 Stefan Monnier <monnier@iro.umontreal.ca> + + Expose some lambdas currently hidden in quoted data + + * lisp/language/chinese.el ("Chinese-GB", "Chinese-BIG5") + ("Chinese-CNS", "Chinese-EUC-TW", "Chinese-GBK"): + * lisp/isearch.el (isearch-menu-bar-map): + * lisp/international/mule-cmds.el (language-info-custom-alist): + * lisp/font-lock.el (cpp-font-lock-keywords): + * lisp/cus-start.el (<toplevel>): Expose lambda-expressions to the compiler. + +2025-03-24 Stefan Monnier <monnier@iro.umontreal.ca> + + (byte-compile-maybe-guarded): Make its code edebuggable + + * lisp/emacs-lisp/bytecomp.el (byte-compile--reify-function): Hoist + subexpression out of `if`. + (byte-compile-variadic-numeric, byte-compile--cond-vars) + (byte-compile--cond-switch-prefix, byte-compile-file-form-defalias): + Obey `lexical-binding` when evaluating the code we're compiling. + (byte-compile--maybe-guarded): New function, extracted from + `byte-compile-maybe-guarded`. + (byte-compile-maybe-guarded): Use it so we can edebug the code. + +2025-03-24 Stefan Monnier <monnier@iro.umontreal.ca> + + (buffer-local-set-state): Optimize away unused data + + * lisp/subr.el (buffer-local-set-state--get): Simplify by making it + take only the vars rather than the pairs. + (buffer-local-set-state): Adjust accordingly so we don't needlessly keep + part of the source code in the compiled code. + +2025-03-24 Stefan Kangas <stefankangas@gmail.com> + + New test for function-get + + * test/lisp/subr-tests.el (subr-tests-function-get): New test. + +2025-03-24 Sean Whitton <spwhitton@spwhitton.name> + + Merge from origin/emacs-30 + + 0c32f7521b1 ; * admin/notes/spelling: More precisely qualify saying j... + bc51fabc108 Add a choice to 'dired-movement-style' to restore the pre... + 10d534023a9 ; Fix some markup in doc/lispref/commands.texi. + c2c287b3252 Improve docstring of should-error + +2025-03-24 Sean Whitton <spwhitton@spwhitton.name> + + Merge from origin/emacs-30 + + 84abd43f42f * lisp/treesit.el (treesit-indent-region): Handle markers... + +2025-03-24 Sean Whitton <spwhitton@spwhitton.name> + + log-edit: Don't add rear-nonsticky to font-lock-extra-managed-props + + * lisp/vc/log-edit.el (log-edit-mode): Don't add rear-nonsticky + to font-lock-extra-managed-props (bug#77197). Investigated by + Paul D. Nelson <ultrano@gmail.com>. Fix due to Stefan Monnier. + +2025-03-23 Stefan Kangas <stefankangas@gmail.com> + + Add basic and low-level tests for hash tables + + * test/src/fns-tests.el (test-hash-table) + (test-hash-table-wrong-keywords, test-remhash, test-clrhash) + (test-hash-table-p, test-hash-table-count, test-maphash) + (test-copy-hash-table): New tests. + +2025-03-23 Stefan Kangas <stefankangas@gmail.com> + + Improve docstring of cl-defstruct accessors + + * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Improve generated + docstring by not leaking the internal CL-X argument name, preferring X + instead. Set property 'document-generalized-variable', used below. + * lisp/help-fns.el (help-fns--generalized-variable): When function has + non-nil property 'document-generalized-variable', document it as a + generalized variable. + +2025-03-23 Andrea Corallo <acorallo@gnu.org> + + Fix a nativecomp type propagation bug (bug#74771) + + * lisp/emacs-lisp/comp.el (comp--add-cond-cstrs): Don't emit negated + cstr. + * test/src/comp-tests.el (comp-tests-type-spec-tests): Add a test. + +2025-03-23 Stefan Kangas <stefankangas@gmail.com> + + checkdoc: Delete redundant check for wide docstrings + + With Emacs 28.1, wide docstrings are now flagged by the byte-compiler. + The logic in the byte-compiler for catching these issues is complex + and continuously evolving, particularly to avoid incorrectly flagging + `substitute-command-keys` substitutions. Unfortunately, the checkdoc + implementation incorrectly flags correct docstrings as overly wide. + + Rather than duplicating the byte-compiler logic in checkdoc, which + would introduce unnecessary maintenance overhead, we acknowledge that + this check is now redundant and remove it. Users utilizing the + byte-compiler, whether manually or through `flymake`, will continue to + be warned about this issue. + + * lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine): + Remove check for overly wide docstrings; duplicates byte-compiler + logic. + +2025-03-23 Po Lu <luangruo@yahoo.com> + + Patch bug#77128 + + * src/pgtkterm.c (pgtk_flash): Destroy `cr_surface_visible_bell' + if still present. (bug#77128) + +2025-03-23 Stefan Kangas <stefankangas@gmail.com> + + Improve documentation of cl-defstruct + + * doc/misc/cl.texi (Structures): Organize more logically, slightly + expand, and add more examples. + +2025-03-23 Eli Zaretskii <eliz@gnu.org> + + Avoid rare crashes due to "C-g C-g" on TTY frames + + * src/term.c (tty_send_additional_strings): Don't use SBYTES, as + this function could be called in the middle of GC. (Bug#77205) + +2025-03-23 Eli Zaretskii <eliz@gnu.org> + + Avoid rare segfaults in 'check_matrix_pointers' + + * src/dispnew.c (check_window_matrix_pointers): No-op if the + window's frame not ready yet. (Bug#77200) + +2025-03-23 Stephen Gildea <stepheng+emacs@gildea.com> + + Consistent wording in top-level headers in NEWS.19 + + * etc/NEWS.19: Put the word "Emacs" in front of each version number. + This change lets 'help-fns--first-release' parse the headers, which + produces more accurate "probably introduced at" versions from + 'describe-function' and 'describe-variable'. + +2025-03-22 Stefan Kangas <stefankangas@gmail.com> + + Reduce code duplication in ns_set_appearance + + * src/nsterm.h (ns_set_appearance_1): Declare. + * src/nsterm.m (ns_set_appearance_1): Break out new function... + (ns_set_appearance): ...here. + * src/nsfns.m (Fx_create_frame): Use above new function. + +2025-03-22 shipmints <shipmints@gmail.com> + + Ensure .dir-locals-2.el behavior as documented (bug#75890) + + * lisp/files.el + (dir-locals--all-files): New &optional 'base-el-only' argument. + (dir-locals--base-file): New function. + (dir-locals-find-file): 'locate-dominating-file' only for the base + .dir-locals.el. + + * test/lisp/files-tests.el + (files-test-dir-locals-2-solo): New test. + * test/lisp/files-resources/dir-locals-2-solo: New test support. + (files-test-dir-locals-2-paired): New test. + * test/lisp/files-resources/dir-locals-and-2: New test support. + +2025-03-22 Eli Zaretskii <eliz@gnu.org> + + Avoid rare segfaults due to crazy creation of new child frames + + * src/dispnew.c (combine_updates, combine_updates_for_frame): Skip + frames and child frames that were not yet completely made. + (Bug#77046) + +2025-03-22 Sora Takai <SoraTakai@protonmail.com> (tiny change) + + Make isearch lazy-highlights non-sticky at both ends (bug#77121) + +2025-03-22 Paul Eggert <eggert@cs.ucla.edu> + + Remove ctags program + + Remove our old ctags and suggest Universal Ctags instead. + This fixes a FIXME in lib-src/Makefile.in and speeds up compilation + quite a bit on my older CPU when I compile with --enable-gcc-warnings. + It also lessens installation and runtime footprint. (Bug#76322) + * .gitignore: Remove lib-src/ctags. + * admin/authors.el (authors-renamed-files-alist): Remove ctags.1. + * admin/check-man-pages: ctags.1 is no longer a special case. + * admin/quick-install-emacs (PUBLIC_LIBSRC_BINARIES): Remove ctags. + * cross/Makefile.in (LIBSRC_BINARIES): Remove lib-src/ctags. + * doc/man/ctags.1, lib-src/ctags.c: Remove. + * java/Makefile.in (CROSS_LIBSRC_BINS): Remove ctags. + * lib-src/Makefile.in (INSTALLABLES): Remove ctags${EXEEXT}. + (ctags${EXEEXT}): Remove. + * lib-src/etags.c (CTAGS): Remove. All uses replaced by ... + (ctags): ... this new static var. + (STDIN): Remove macro. All uses replaced by new STDIN_OPTION constant. + (CTAGS_OPTION, STDIN_OPTION): New contants. + (longopts): New --ctags option. + (ctags_default_C_help): New constant, + to override default_C_help at runtime. + (default_C_help): Now always the etags version. + (C_LANG_NAMES_INDEX): New macro. + (print_language_names): Do not assume etags. + (PROGRAM_NAME): Remove. All uses removed. + (print_help): Document --ctags if PRINT_UNDOCUMENTED_OPTIONS_HELP. + (main): Support new --ctags option, and support all [ce]tags options. + * test/manual/etags/Makefile (CTAGS_PROG): + Now etags --ctags, since there is no longer a ctags. + +2025-03-22 Eli Zaretskii <eliz@gnu.org> + + Fix usage of string data pointers in xfaces.c + + * src/xfaces.c (tty_defined_color): Don't use SSDATA pointers + across calls to Lisp. (Bug#77046) + +2025-03-22 Sean Whitton <spwhitton@spwhitton.name> + + Merge from origin/emacs-30 + + 1364bbc6a5c ; * admin/notes/spelling: Grammar fix + dc80a8f0509 ; Add index entry "code completion" to user manual + 0d9b14ed057 ; * doc/emacs/programs.texi (Program Modes): Add info abo... + f224475f578 ; admin/notes/spelling: Notes on abbreviation of "Emacs L... + 86c354dd0d8 Fix OSX build without pdumper + 2d12754ee20 ; Add indexing for Eglot in user manual + a30b9b640b4 ; Change some instances of cl to cl-lib in docs + b681d62436f ; Improve introduction to use-package manual + f1acefd86f8 ; Add cross-references to push and pop docstrings + +2025-03-22 shipmints <shipmints@gmail.com> + + 'window-state-normalize-buffer-name' option for `uniquify' buffers + + If 'window-state-normalize-buffer-name' is non-nil, 'window-state-get' + will normalize stored buffer names, making them easier to restore for + users that use 'uniquify' buffer naming. + * doc/lispref/windows.texi (Window Configurations): Document + 'window-state-normalize-buffer-name'. + * lisp/window.el (window-state-normalize-buffer-name): New defvar. + (window--state-normalize-buffer-name): New function. + (window--state-get-1): Call 'window--state-normalize-buffer-name' + rather than 'buffer-name'. + * etc/NEWS: Announce 'window-state-normalize-buffer-name'. + (Bug#76980) + +2025-03-22 James Cherti <contact@jamescherti.com> (tiny change) + + ElDoc: Add more commands using 'eldoc-add-command-completions' + + Add more commands to 'eldoc-add-command-completions' to fix + disappearing ElDoc help in the minibuffer for the following + cases: + - All modes: Added "comment-indent-new-line". + - All modes: Added "delete-char" for handling when the user presses delete. + - Python mode: Added "python-indent-dedent-line-backspace" for handling + when the user presses backspace. + * lisp/emacs-lisp/eldoc.el (eldoc-remove-command-completions): + * lisp/progmodes/python.el (python-base-mode): Add more commands + to 'eldoc-add-command-completions'. + +2025-03-22 Stefan Kangas <stefankangas@gmail.com> + + Delete now unused constants in nsterm.h + + * src/nsterm.h (NS_DUMPGLYPH_NORMAL, NS_DUMPGLYPH_CURSOR) + (NS_DUMPGLYPH_FOREGROUND, NS_DUMPGLYPH_MOUSEFACE): Delete now unused + constants. + +2025-03-22 Eli Zaretskii <eliz@gnu.org> + + Improve 'C-u C-x =' for ligatures of ASCII characters + + * lisp/composite.el (composition-find-pos-glyph): New function. + * lisp/descr-text.el (describe-char): Use it to get the font glyph + code of "trivial" compositions. + (describe-char-display): Accept an additional optional argument + and use it as the font glyph code for the character. + +2025-03-22 Michael Albinus <michael.albinus@gmx.de> + + Tramp: Improve handling of cyclic symlinks + + * lisp/net/tramp-sh.el (tramp-sh-handle-file-ownership-preserved-p): + Add FIXME. + + * lisp/net/tramp.el (tramp-skeleton-file-exists-p) + (tramp-handle-file-directory-p): Protect against cyclic symlinks. + + * test/lisp/net/tramp-tests.el (tramp-test18-file-attributes) + (tramp-test21-file-links): Adapt tests. + +2025-03-22 Martin Rudalics <rudalics@gmx.at> + + Fix and document frame parameters for text terminals and child frames + + * src/frame.c (Fmake_frame_invisible): In doc-string describe + effect on text terminals. Set FRAME correctly when called with + nil value. Make frame invisible before calling mru_rooted_frame + or next_frame. + (Ficonify_frame): Make it work for child frames on text + terminals + (Fmodify_frame_parameters): Make value 'icon' for 'visibility' + work for child frames. + * src/dispnew.c (frame_ancestors_visible_p): New function. + (frames_with_root): If VISIBLE_ONLY is non-nil, return only + frames whose ancestors are all visible to avoid that redisplay + draws visibly orphaned child frames. + * doc/lispref/frames.texi (Frames): Move descriptions of top + frame and 'tty-top-frame' here. + (Frame Layout): Mention that on text terminals the outer border + can be emulated by setting the 'undecorated' frame parameter. + (Frame Position, Frame Parameters, Window Frame Parameters) + (Position Parameters, Size Parameters): Rewrite sections dealing + with the handling of frame parameters in text terminals. + (Layout Parameters): Move description of 'undecorated' parameter + here. Clarify semantics of 'menu-bar-lines' parameter. + (Frame Interaction Parameters): Move description of 'visibility' + parameter here. Mention which parameters are not implemented on + text terminals. + (Mouse Dragging Parameters): Describe how these work on text + terminals. + (Visibility of Frames): Rewrite section. + (Raising and Lowering): Describe for text terminals. + (Child Frames): Fix description of 'iconify-child-frame' option. + +2025-03-22 Stefan Kangas <stefankangas@gmail.com> + + Make 'eieio-version' obsolete + + EIEIO used to be developed externally as part of CEDET, but that is no + longer the case. It now has the same version as Emacs itself. + https://sourceforge.net/p/cedet/git/ci/8aa920380f8178ed2514f06f13c403d80db16752/ + + * lisp/emacs-lisp/eieio.el: Change "Version" header to "Old-Version". + (eieio-version): Make both the variable and the function obsolete in + favor of 'emacs-version'. + +2025-03-22 Daniel Colascione <dancol@dancol.org> + + xref: error -> user-error: reduce debug-on-error annoyance + + * lisp/progmodes/xref.el (xref--next-error-function): Use user-error + instead of error. + +2025-03-22 Daniel Colascione <dancol@dancol.org> + + Adapt ediff to nonstandard layouts + + Make ediff cope with having some of its windows (especially the control + window) not shown by a custom ediff-window-setup-function. + Modernize relevant adjacent code. After this change, one can write a + custom ediff-window-setup-function that doesn't show the control window. + + * doc/misc/ediff.texi (Notes on Heavy-duty Customization): Refine + language to explain that the window setup function doesn't have to show + all windows. + * lisp/vc/ediff-util.el (ediff-select-control-window-on-setup): + New variable. + (ediff-setup, ediff-recenter, ediff-recenter-one-window) + (ediff-recenter-ancestor, ediff-toggle-read-only) + (ediff-operate-on-windows, ediff-jump-to-difference-at-point) + (ediff-default-suspend-function) + (ediff-clone-buffer-for-region-comparison) + (ediff-clone-buffer-for-window-comparison): Modernize control flow; + select only windows that exist. + * lisp/vc/ediff-wind.el (ediff-with-live-window): New convenience macro. + (ediff-window-setup-function): Explain relaxed contract. + +2025-03-21 Spencer Baugh <sbaugh@catern.com> + + minibuffer.el: Fix warnings and coding style in last change + + * lisp/minibuffer.el: Cut lines to fit into 80 columns. + (completion--insert-strings): Simplify `if` to `or`. + (completion--insert-horizontal, completion--insert-one-column): + Fix warning about used var starting with `_`. Avoid `apply-partially`. + +2025-03-21 Spencer Baugh <sbaugh@catern.com> + + Lazily highlight and insert candidates in *Completions* + + From profiling, the main bottleneck in completion over large + completion sets is display-completion-list, when there are many + available candidates. For example, in my large monorepo, when + completing over the 589196 files or the 73897 branches, even + with the candidates narrowed down by typing some prefix to + complete, TAB (when it shows *Completions*) or ? is slow, mostly + in display-completion-list. + + However, rendering all the completion candidates is unnecessary if + the *Completions* window is never scrolled to see those candiates. By + eagerly inserting only some candidates and lazily highlighting and + inserting the remaining candidates only when necessary, performance is + much improved. + + * lisp/minibuffer.el (completion--insert-strings): Insert + completions lazily. (bug#74561) + (completions--lazy-insert-button): Add. + (completion--insert-horizontal, completion--insert-one-column): + Throw a continuation when enough lines of completions are + inserted. + (completion--insert-vertical): Add ignored lines argument. + (minibuffer-completion-help): Set completion-lazy-hilit. + (with-minibuffer-completions-window): Call + completion--lazy-insert-strings. + (with-minibuffer-completions-window): + * lisp/simple.el (completion-setup-function): Preserve + buffer-locals required for lazy completion insertion. + (switch-to-completions): Call completion--lazy-insert-strings. + * etc/NEWS: Announce. + +2025-03-21 Eli Zaretskii <eliz@gnu.org> + + Avoid infinite loop with images under 'display-line-numbers-mode' + + * src/xdisp.c (move_it_in_display_line_to, display_line): When + considering the first glyph on a glyph row, take into + consideration the glyphs produced for line-number display. + (Bug#77065) + +2025-03-20 Eli Zaretskii <eliz@gnu.org> + + Leave buffer with input-method help unmodified + + * lisp/international/quail.el (quail-help): Leave "*Help*" + unmodified. (Bug#77139) + +2025-03-20 Stefan Kangas <stefankangas@gmail.com> + + Make compilation-filter-hook into a defcustom + + * lisp/progmodes/compile.el (compilation-filter-hook): Make variable + into a defcustom. + +2025-03-20 Elías Gabriel Pérez <eg642616@gmail.com> + + Allow specifying in which major modes to enable 'global-hl-line-mode' + + * lisp/hl-line.el (global-hl-line-modes): New user option. + (global-hl-line-highlight): Obey the new variable. (Bug#77022) + + * etc/NEWS: Document new variable. + +2025-03-20 David Ponce <da_vid@orange.fr> + + Fix `string-pixel-width' with alternate text properties + + Fix possible wrong result of `string-pixel-width' with alternate + and default properties. Create new regression tests. + * lisp/emacs-lisp/subr-x.el (string-pixel-width): Like for + `face-remapping-alist', use in work buffer the value of + `char-property-alias-alist' and `default-text-properties' + local to the passed buffer, to correctly compute pixel width. + (Bug#77042) + + * test/lisp/misc-tests.el: Add tests for `string-pixel-width'. + +2025-03-20 Vincenzo Pupillo <v.pupillo@gmail.com> + + MariaDB and Mysql handle escaped aphostrophes in the same way + + * lisp/progmodes/sql.el (sql-mode): MariaDB and Mysql both + handle escaped apostrophes in the same way. (Bug#77088) + +2025-03-20 Eli Zaretskii <eliz@gnu.org> + + Improve 'gui-get-selection' on MS-Windows + + * lisp/term/w32-win.el (w32--get-selection): Allow UTF8_STRING and + TEXT data types as well, since w32select.c handles that correctly. + +2025-03-20 Stefan Kangas <stefankangas@gmail.com> + + Recenter calendar-chinese-year-cache on 2028 + + * lisp/calendar/cal-china.el (calendar-chinese-year-cache): Recenter + on 2028. + +2025-03-19 Stefan Monnier <monnier@iro.umontreal.ca> + + indent.erts (Code): Don't modify the global state + + * test/lisp/progmodes/java-ts-mode-resources/indent.erts (Code): + Use `setq-local` and correspondingly move the remaining + assignment after activating the major mode. + +2025-03-19 Juri Linkov <juri@linkov.net> + + * lisp/files.el (save-some-buffers-action-alist): Fix 'view-mode'. + + Use 'view-mode-enter' instead of 'view-buffer' to ignore the 'special' + mode-class that prevents some modes from binding 'q' to 'exit-action' + that should call 'exit-recursive-edit' (bug#76745). + +2025-03-19 shipmints <shipmints@gmail.com> + + Promote bookmark-handler prop 'bookmark-inhibit to list (bug#65039) + + * lisp/bookmark.el (bookmark-insert): + * lisp/shell.el (#'shell-bookmark-jump): The bookmark-handler + property 'bookmark-inhibit is now a list. + +2025-03-19 Martin Rudalics <rudalics@gmx.at> + + On tty frames restrict number of menu bar lines (Bug#77015) + + * src/frame.c (set_menu_bar_lines): Make sure tty frames get + only 0 or 1 menu bar line (Bug#77015). + +2025-03-18 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/emacs-lisp/smie.el (smie-config-show-indent): Tweak message + +2025-03-18 Martin Rudalics <rudalics@gmx.at> + + Ensure redisplay after re-parenting a tty child frame (Bug#77079) + + * src/frame.c (store_frame_param): When re-parenting a tty child + frame, mark it's old and new root frames as garbaged so redisplay + will reflect the change immediately (Bug#77079). + +2025-03-18 Po Lu <luangruo@yahoo.com> + + Fix generation of mouse position lists on the tool and tab bars + + * src/keyboard.c (make_lispy_tty_position): Return whether an + internal border was hit. + (make_lispy_position): Only skip standard window and frame + detection process if so, as there are other scenarios where POSN + is nil but WINDOW_OR_FRAME is none the less expected to be + provided by the conditionals skipped. + +2025-03-17 Stefan Kangas <stefankangas@gmail.com> + + Use 'help-key' function in more places + + * lisp/dired-aux.el (dired-query): + * lisp/emacs-lisp/helper.el (Helper-help-map): + * lisp/emacs-lisp/map-ynp.el (map-y-or-n-p): Use 'help-key'. + * lisp/net/tramp-cmds.el (tramp-rename-files): + * lisp/which-key.el (which-key--next-page-hint): Prefer 'help-key' + when available. + * lisp/help.el (help-key): Simplify. + * etc/symbol-releases.eld: Add 'help-key'. + +2025-03-17 Mauro Aranda <maurooaranda@gmail.com> + + Make marking conflicted files as resolved upon saving opt-out + + This fixes Bug#3860. + + * lisp/vc/vc.el (vc-resolve-conflicts): New user option. + * lisp/vc/vc-bzr.el (vc-bzr-resolve-conflicts): New user option. + (vc-bzr-find-file-hook): Use it. + * lisp/vc/vc-hg.el (vc-hg-resolve-conflicts): New user option. + (vc-hg-find-file-hook): Use it. + * lisp/vc/vc-svn.el (vc-svn-resolve-conflicts): New user option. + (vc-svn-find-file-hook): Use it. + * lisp/vc/vc-git.el (vc-git-resolve-conflicts): Support + 'default' as an option. Adjust docstring and version. + (vc-git-find-file-hook): Respect vc-resolve-conflicts. + * etc/NEWS: Announce the new options. + +2025-03-17 Martin Rudalics <rudalics@gmx.at> + + Implement dragging and resizing of tty child frames + + * lisp/faces.el (face-spec-recalc): Don't set + scroll-bar-foreground and scroll-bar-background parameters on + ttys. + * lisp/mouse.el (mouse-drag-frame-resize) + (mouse-drag-frame-move): On ttys call + 'mouse-position-in-root-frame' to get position of child frame to + resize or drag. + * lisp/xt-mouse.el (xterm-mouse-event): Handle events on + child frame decorations as if they happened on the internal border + to find out whether a user wants to drag or resize a child frame. + * src/frame.c (frame_internal_border_part): Define for ttys too. + (Fmouse_position_in_root_frame): New function. + * src/frame.h (internal_border_part): Define for ttys too. + * src/keyboard.c (internal_border_parts): Define for ttys too. + (frame_border_side): New enum. + (make_lispy_position): Handle events on tty child frames. + (Fposn_at_x_y): Accept -1 for Y so we can handle a position on + the top decoration of a tty child frame. + * src/term.c (tty_frame_at): Handle case where X and Y denote a + position on a tty child frame's decoration. + * src/window.c (Fwindow_at): Handle case where X and Y denote a + position on the decoration of a tty child frame which we pretend + as belonging to that child frame (and not to its root). + +2025-03-17 Martin Rudalics <rudalics@gmx.at> + + Implement surrogate menu bars for tty child frames + + * lisp/menu-bar.el (popup-menu): When asked to pop up MENU from + a tty child frame try to use menu of its root frame. + (menu-bar-open): When FRAME is a child frame and + 'tty-menu-open-use-tmm' is nil, navigate menu bar of its root + frame. + * src/keymap.c (Fcurrent_active_maps): Accept live window as + POSITION argument and use its buffer as current when processing + the key sequence. Needed for tty child frames so the root + frame's menu bar can be updated according to the selected + window's buffer when navigating the menu bar from keyboard. + * src/xdisp.c (prepare_menu_bars): If the selected window's + frame is a tty child frame without menu bar, that frame's root + frame has a menu bar and 'tty-menu-open-use-tmm' is nil, prepare + to update the menu bar of the root frame as surrogate. + (update_menu_bar): New argument W denoting the window that + should be considered as selected. For a tty child frame using F + as surrogate menu bar frame this specifies the child frame's + selected window and its buffer shall be used for updating the + menu bar of the root frame instead of the buffer of the root + frame's selected window. + (redisplay_window): Instead of setting redisplay_menu_p flag + always call display_menu_bar right away. This facilitates to + call display_menu_bar for a tty child frame with its root + frame as surrogate menu bar frame. + (display_tty_menu_item): If the selected frame is a tty child + frame, overwrite its root frame's glyph matrix (and not that of + the child frame) when displaying a menu item. + (Qtty_menu_open_use_tmm): Define symbol. + +2025-03-17 Yuan Fu <casouri@gmail.com> + + Add some keywords to java-ts-mode--keywords (bug#75154) + + * lisp/progmodes/java-ts-mode.el: + (java-ts-mode--keywords): Add keywords, remove @interface. + +2025-03-17 Yuan Fu <casouri@gmail.com> + + Move around java-ts-mode font-lock rules (bug#75154) + + * lisp/progmodes/java-ts-mode.el: + (java-ts-mode--font-lock-settings): Move constant feature down + so it overrides expression and definition. + +2025-03-17 Yuan Fu <casouri@gmail.com> + + Use c-ts-common baseline rule in java-ts-mode (bug#75154) + + Use it for function parameters. + + * lisp/progmodes/java-ts-mode.el: + (java-ts-mode--standalone-predicate): New function. + (java-ts-mode--indent-rules): Comment out rules for function + parameters and statements, and add + c-ts-common-baseline-indent-rule as fallback. + (java-ts-mode): Setup. + (java-ts-mode--first-line-on-multi-line-string): Mark BOL as + unused. + * test/lisp/progmodes/java-ts-mode-resources/indent.erts: + New test. + +2025-03-17 Yuan Fu <casouri@gmail.com> + + Add indentation for multi-line string in java-ts-mode (bug#75154) + + * lisp/progmodes/java-ts-mode.el: + (java-ts-mode--first-line-on-multi-line-string): New function. + (java-ts-mode--indent-rules): Add rules. + +2025-03-17 Yuan Fu <casouri@gmail.com> + + Add java-ts-mode-method-chaining-indent-offset (bug#75154) + + Default method chaining to indent 8 spaces. + + * lisp/progmodes/java-ts-mode.el: + (java-ts-mode-method-chaining-indent-offset): New custom option. + (java-ts-mode--indent-rules): Use + java-ts-mode-method-chaining-indent-offset. + +2025-03-16 Gerd Möllmann <gerd.moellmann@gmail.com> + + Make sure to initialize glyph::frame to NULL (bug#77039) + + * src/dispnew.c (adjust_glyph_matrix): Clear glyph memory when + enlarging window-system window glyph matrices. + +2025-03-16 Jens Schmidt <jschmidt4gnu@vodafonemail.de> + + Correctly unload variable aliases. + + * src/eval.c (Finternal_delete_indirect_variable): Add function. + * lisp/loadhist.el (loadhist-unload-element): Use it for variable + aliases. + * test/src/eval-tests.el (eval-tests--internal-delete-indirect-variable): + Test function `internal-delete-indirect-variable'. + * test/lisp/loadhist-tests.el (loadhist-test-unload-feature-alias): + * test/lisp/loadhist-resources/loadhist--alias.el: Test unloading of + features that define variable aliases. (Bug#76748) + +2025-03-16 Michael Albinus <michael.albinus@gmx.de> + + Tramp: Handle symlinks to non-existing targets better + + * lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file): + Don't use the truename. + + * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file): Refactor. Handle + symlinks. (Bug#76678) + + * lisp/net/tramp-smb.el (tramp-smb-errors): Add string. + (tramp-smb-handle-copy-file, tramp-smb-handle-rename-file): + Refactor. + + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-do-copy-or-rename-file): + Don't use the truename. Handle symlinks. + + * lisp/net/tramp.el (tramp-barf-if-file-missing): Accept also symlinks. + (tramp-skeleton-file-exists-p): Handle non-existing symlink targets. + (tramp-skeleton-set-file-modes-times-uid-gid): Fix typo. + + * test/lisp/net/tramp-tests.el (vc-handled-backends): + Suppress only if noninteractive. + (tramp-test11-copy-file, tramp-test12-rename-file) + (tramp-test18-file-attributes, tramp-test21-file-links) + (tramp--test-check-files): Adapt tests. + +2025-03-16 Stefan Kangas <stefankangas@gmail.com> + + Don't recommend legacy keymap functions in docstrings + + * lisp/comint.el (comint-prompt-read-only): + * lisp/ielm.el (ielm-prompt-read-only): + * lisp/international/ogonek.el (ogonek-informacja, ogonek-information): + * lisp/mouse-copy.el (mouse-drag-secondary-pasting): + * lisp/mouse-drag.el (mouse-drag-throw, mouse-drag-drag): Don't + recommend using legacy keymap functions. + +2025-03-16 Stefan Kangas <stefankangas@gmail.com> + + Use substitute-quotes for checkdoc errors + + * lisp/emacs-lisp/checkdoc.el (checkdoc-create-error): Use + substitute-quotes. + +2025-03-16 Stefan Kangas <stefankangas@gmail.com> + + Use defvar-keymap for some trivial keymaps + + * lisp/bindings.el (mode-line-window-dedicated-keymap) + (mode-line-buffer-identification-keymap): + * lisp/emulation/cua-rect.el (cua--overlay-keymap, cua--overlay-key): + * lisp/mh-e/mh-mime.el (mh-mime-security-button-map): + * lisp/mh-e/mh-utils.el (mh-hidden-header-keymap): + * lisp/net/eudc-bob.el (eudc-bob-generic-keymap, eudc-bob-image-keymap) + (eudc-bob-sound-keymap, eudc-bob-url-keymap, eudc-bob-mail-keymap): + * lisp/progmodes/etags-regen.el (etags-regen-mode-map): + * lisp/progmodes/octave.el (octave-help-mode-map): + * lisp/replace.el (multi-query-replace-map): + * lisp/simple.el (process-menu-mode-map, messages-buffer-mode-map): + * lisp/startup.el (splash-screen-keymap): + * lisp/tab-bar.el (tab-bar-mode-map): + * lisp/textmodes/ispell.el (ispell-minor-keymap): + * lisp/textmodes/tex-mode.el (latex-mode-map, plain-tex-mode-map): + * lisp/tree-widget.el (tree-widget-button-keymap): + * lisp/vc/vc-hooks.el (vc-mode-line-map): Use defvar-keymap. + +2025-03-16 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 2d5cf228186 Fix clipboard object handle leak on Android 3.1 to 11.0 + b6b4a080a3a Only disable 'completion-preview-active-mode' when it is on + +2025-03-16 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + dcf3916e558 ; Doc fix for legacy keymap functions + 227db70db98 ; * doc/misc/ede.texi (Top): Improve introduction. + +2025-03-16 Eli Zaretskii <eliz@gnu.org> + + Avoid rare segfaults in 'combine_updates_for_frame' + + * src/xdisp.c (redisplay_internal): Don't add to 'tty_root_frames' + frames that are not yet completely made. (Bug#77046) + +2025-03-16 Sean Whitton <spwhitton@spwhitton.name> + + New project-save-some-buffers command + + * lisp/progmodes/project.el (project-save-some-buffers): New command. + (project-prefix-map): Bind it to C-x p C-x s. + * etc/NEWS: Announce the new command and binding. + +2025-03-16 Sean Whitton <spwhitton@spwhitton.name> + + vc-revert: Offer to save modified buffers (bug#55310) + + * lisp/vc/vc.el (vc-revert): Offer to save modified buffers that + otherwise prevent proceeding with the revert (bug#55310). + +2025-03-15 Jonas Bernoulli <jonas@bernoul.li> + + Update to Transient v0.8.6-7-g64cb8404 + +2025-03-15 Juri Linkov <juri@linkov.net> + + Add the treesit 'list' thing to csharp/go/php/rust-ts-mode (bug#73404) + + * lisp/progmodes/csharp-mode.el (csharp-ts-mode): Add the + 'list' and 'sentence' things to 'treesit-thing-settings'. + Set 'treesit-outline-predicate'. + + * lisp/progmodes/go-ts-mode.el (go-ts-mode): + Add 'treesit-thing-settings' with the 'list' and 'sentence' things. + + * lisp/progmodes/php-ts-mode.el (php-ts-mode): + Add the 'list' thing to 'treesit-thing-settings'. + + * lisp/progmodes/rust-ts-mode.el (rust-ts-mode): + Add 'treesit-thing-settings' with the 'list' thing. + +2025-03-15 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 1a8fbf69e33 Fix 'whitespace-mode' in CJK locales + 01c03043e6e ; Improve documentation of 'gui-get-selection' use on X + +2025-03-15 Eli Zaretskii <eliz@gnu.org> + + Improve conversion between half-width and full-width characters + + * lisp/textmodes/text-mode.el (text-mode--get-fullwidth-table): + Add conversion of SPC to IDEOGRAPHIC SPACE. (Bug#71822) + +2025-03-15 Michael Albinus <michael.albinus@gmx.de> + + * lisp/bindings.el (tramp-revert-buffer-with-sudo): Declare. + +2025-03-15 Vincenzo Pupillo <vincenzo.pupillo@unimi.it> + + Add a new command `speedbar-window'. + + Speedbar now can be opened in a window instead of a separate frame. The + frame remains the default. + + * doc/emacs/frames.texi: Mention Speedbar window mode. + * doc/misc/speedbar.texi: Document 'speedbar-window'. + * lisp/speedbar.el + (speedbar-prefer-window): New user option. If t, the command `speedbar' + open the speedbar in a window. + (speedbar-window-dedicated-window): New user option. If t the window is + dedicated. + (speedbar-window-side): New user option. The side of 'speedbar-window', + defaults to left. + (speedbar-window-default-width): New user option. The default size of + the 'speedbar-window'. + (speedbar-window-max-width): New user option. Limits the width of the + 'speedbar-window'. The user can resize the window as desired, but this + option will be the width of the window when restored. + (speedbar--buffer-name): New variable, the buffer name used for both + 'speedbar-frame-mode' and 'speedbar-window-mode'. + (speedbar--window): New variable, the window displaying 'speedbar-window'. + (speedbar--window-width): New variable, store the current width of + 'speedbar-window'. + (speedbar-easymenu-definition-trailer): Now it is a function that + returns a different trailer for 'speedbar-frame' and 'speedbar-window'. + (speedbar): Now it is a function that calls 'speedbar-frame-mode', the + default or 'speedbar-window-mode' based on the value of + 'speedbar-prefer-window'. + (speedbar-frame-mode): Before opening a frame, close 'speedbar-window' + if it is open. + (speedbar-frame-or-window): New function, returns 'frame', 'window' + or nil if speedbar is not open. + (speedbar-window): New alias for 'speedbar-window-mode'. + (speedbar-window-mode): Enable of disable 'speedbar-window'. + (speedbar-window--window-live-p): New function, return non-nil if the + 'speedbar-window' is live. + (speedbar-window--buffer-live-p): New function, return non-nil if the + 'speedbar-buffer' is live. + (speedbar-window--live-p): New function, return t if 'speedbar-window' + is open. + (speedbar-window-current-window): New function, return t if the selected + window is speedbar-window. + (speedbar-window--close): New function, close the 'speedbar-window'. + (speedbar-window--width): New function, return the current width of + 'speedbar-window'. + (speedbar-width): New function, return the 'speedbar' of + 'speedbar-frame-mode' of 'speedbar-frame-mode'. + (speedbar-set-mode-line-format): Use the new 'speedbar-width' function. + (speedbar-directory-buttons): Use the new 'speedbar-width' function. + (speedbar--speedbar-live-p): New function, returns t if + 'speedbar-frame-mode' or 'speedbar-window-mode' are open. + (speedbar-timer-fn): Now handle 'speedbar-frame-mode' and + 'speedbar-window-mode'. + +2025-03-15 Gerd Möllmann <gerd.moellmann@gmail.com> + + Fix mouse-posn-property + + * doc/lispref/commands.texi (Click Events): Mention menu-bar. + * lisp/mouse.el (mouse-event-areas-with-no-buffer-positions): + New defvar including all areas mentioned in the Lisp reference. + (mouse-posn-property): Use it. + +2025-03-15 Stefan Kangas <stefankangas@gmail.com> + + Delete pre-Emacs 20 documentation from term.el + + * lisp/term.el: Delete comment titled "Converting process modes to use + term mode". This comment from 1994 is only of historical interest. + +2025-03-15 Stefan Kangas <stefankangas@gmail.com> + + Recommend using 'keymap-set' in Commentaries + + * lisp/calendar/timeclock.el, lisp/comint.el, lisp/ehelp.el: + * lisp/gnus/gnus-bookmark.el, lisp/gnus/smiley.el, lisp/ido.el: + * lisp/isearchb.el, lisp/mail/mailabbrev.el, lisp/net/ange-ftp.el: + * lisp/net/goto-addr.el, lisp/play/fortune.el, lisp/saveplace.el: + * lisp/shell.el, lisp/term.el, lisp/textmodes/makeinfo.el: + * lisp/textmodes/refer.el, lisp/textmodes/remember.el: + * lisp/textmodes/table.el, lisp/woman.el: Recommend using + 'keymap-set' instead of 'define-key' in Commentaries. + +2025-03-15 Stefan Kangas <stefankangas@gmail.com> + + Recommend using 'keymap-global-set' in Commentaries + + * lisp/bs.el, lisp/calculator.el, lisp/cedet/data-debug.el: + * lisp/help-at-pt.el, lisp/hilit-chg.el, lisp/mail/mspools.el: + * lisp/mh-e/mh-e.el, lisp/mouse-copy.el, lisp/mouse-drag.el: + * lisp/net/browse-url.el, lisp/net/webjump.el, lisp/printing.el: + * lisp/progmodes/cfengine.el, lisp/progmodes/ebnf2ps.el: + * lisp/ps-print.el, lisp/repeat.el, lisp/term/wyse50.el: + * lisp/term/x-win.el, lisp/vcursor.el, lisp/woman.el: + Recommend using 'keymap-global-set' instead of 'global-set-key'. + +2025-03-15 Stefan Kangas <stefankangas@gmail.com> + + Use defvar-keymap in which-func.el + + * lisp/progmodes/which-func.el (which-func-keymap): Use defvar-keymap. + (which-func-maxout): Change :type to natnum. + (which-func-format): Use substitute-command-keys. + +2025-03-15 Stefan Kangas <stefankangas@gmail.com> + + Add :set attribute to winner-dont-bind-my-keys + + * lisp/winner.el (winner--set-dont-bind-my-keys): New function. + (winner-dont-bind-my-keys): Allow setting with setopt. + (winner-mode-map): Use defvar-keymap. + * test/lisp/winner-tests.el: New file. + +2025-03-15 Stefan Kangas <stefankangas@gmail.com> + + Use defvar-keymap for command-history-mode-map + + * lisp/chistory.el (command-history-mode-map): Use defvar-keymap. + +2025-03-15 Stefan Kangas <stefankangas@gmail.com> + + Move pulse.el from lisp/cedet/ to lisp/ + + * lisp/cedet/pulse.el: Move from here... + * lisp/pulse.el: ...to here. This library is no longer relevant only + to CEDET. It is used by other built-in libraries, GNU ELPA packages, + and very likely third-party libraries too. + +2025-03-15 Dmitry Gutov <dmitry@gutov.dev> + + dired-copy-filename-as-kill: Support project-relative names + + * lisp/dired.el (dired-copy-filename-as-kill): Support new value + of ARG, to mean file name relative to project root (bug#76792). + + * doc/emacs/dired.texi (Misc Dired Features): Mention it. + + * etc/NEWS: Same. + +2025-03-15 Tomas Nordin <tomasn@posteo.net> + + Teach diff-apply-hunk to handle hunks with empty context + + * lisp/vc/diff-mode.el (diff-find-source-location): + Consider the case when there is no diff context above or below + edited lines. (bug#72556) + + * test/lisp/vc/diff-mode-tests.el: Add tests for undoing hunks + from diffs with addtions only in the beginning or end of the + source file. + +2025-03-14 Stefan Kangas <stefankangas@gmail.com> + + Make turn-on-flyspell/turn-off-flyspell obsolete + + * lisp/textmodes/flyspell.el (turn-on-flyspell): Make into obsolete + function alias for 'flyspell-mode'. + (turn-off-flyspell): Declare obsolete. + (text-mode-hook): Don't redundantly set :options here. + * lisp/textmodes/text-mode.el (text-mode-hook): Prefer 'flyspell-mode' + to 'turn-on-flyspell' in :options. (Bug#76535) + +2025-03-14 Michael Albinus <michael.albinus@gmx.de> + + Improve tramp-*-with-sudo commands + + * doc/emacs/dired.texi (Dired Visiting): + Add tramp-dired-find-file-with-sudo. + + * doc/emacs/files.texi (Reverting): + Add tramp-revert-buffer-with-sudo. + + * doc/misc/tramp.texi (Ad-hoc multi-hops): Extend wrt + `tramp-*-with-sudo' commands. + + * etc/NEWS: Add tramp-dired-find-file-with-sudo. + Fix typos. + + * lisp/bindings.el (ctl-x-x-map): + * lisp/dired.el (dired-mode-map): Add "@" binding. (Bug#76974) + + * lisp/net/tramp-cmds.el (dired-get-file-for-visit): Declare. + (with-tramp-file-name-with-method): New macro. + (tramp-revert-buffer-with-sudo): Autoload. Preserve position. + Use `with-tramp-file-name-with-method'. + (tramp-dired-find-file-with-sudo): New command. + +2025-03-14 Yue Yi <include_yy@qq.com> + + Increase FD_SETSIZE on Windows to support more subprocesses + + Earlier versions of Emacs were limited to at most 32 subprocesses or + network connections on Windows due to the 64-object limit imposed by + WaitForMultipleObjects. To overcome this, a simple waiting thread + pool is implemented, allowing Emacs to efficiently wait on up to + 2048 objects. + + Each thread in the pool can wait on up to 63 objects, and a total of + 32 threads are used, together with the main thread, to expand the + waiting capability. This enables Emacs to support approximately 1024 + subprocesses, which is comparable to the 'pty' method on GNU/Linux + when using the default FD_SETSIZE of 1024. + + To minimize overhead, the threads remain active instead of being + frequently created and destroyed, reducing unnecessary system + resource consumption. Idle threads can be terminated after a + period of inactivity to free up memory. + + * src/w32.h (FD_SETSIZE): Change from 64 to 2048. + * src/w32.c (term_ntproc): Call 'free_wait_pool' to free waiting + threads. + * src/w32proc.c (WFO_ABANDONED, WFO_TIMEOUT, WFO_FAILED) + (WFO_MAX_WAIT): New macros. + (wait_objects_context, wait_objects_pool, wait_objects_info): + New structures for managing the thread pool. + (wait_objects_pool, wait_objects_info): New static variables for + managing the thread pool. + (wait_objects_thread, start_wait_objects, stop_wait_objects) + (end_wait_and_return, shrink_wait_pool, free_wait_pool): + New functions for waiting and managing the thread pool. + (wait_for_objects, msg_wait_for_objects): New functions as + replacements for WaitForMultipleObjects and + MsgWaitForMultipleObjects. + (wait_pid): Use 'wait_for_objects' and new macros. + (sys_select): Make some variables static to avoid stack + allocation. Use 'wait_for_objects', 'msg_wait_for_objects', and + the new macros. + +2025-03-14 Eli Zaretskii <eliz@gnu.org> + + Fix a recent change in isearch.el + + * lisp/isearch.el (isearch-yank-x-selection): Ignore errors + signaled by 'gui-get-primary-selection', to better emulate what + 'gui-get-selection' was doing. In particular, + 'gui-get-primary-selection' can signal an error on MS-Windows. + +2025-03-14 Po Lu <luangruo@yahoo.com> + + Enable yanking non-Latin-1 primary selections in I-Search + + * lisp/isearch.el (isearch-yank-x-selection): Call + `gui-get-primary-selection', which accounts for non-Latin-1 + encodings. + +2025-03-14 Ulrich Müller <ulm@gentoo.org> + + New configure option --with-systemduserunitdir + + * configure.ac (systemduserunitdir): New variable and option. + * Makefile.in (systemduserunitdir): New, set by configure. + (install-etc, uninstall): Don't install emacs.service when + systemduserunitdir is unspecified. + * etc/NEWS: Announce the new configure option. (Bug#76924) + +2025-03-14 Yuan Fu <casouri@gmail.com> + + Merge from origin/emacs-30 + + defc55bb6f9 Fix treesit-parser-create behavior regarding indirect buf... + 20ac26e6751 ; Fix with-delayed-message docstring metavars. + 04034cd9ce7 Fix 'dired-movement-style' in Dired when subdirs are shown + f8443dffc1f ; * lisp/register.el (register-use-preview): Doc fix (bug... + f729828bcfb ; Add texinfo reference to GNU Coding Standards. + a6abb88fdcc ; * lisp/files.el (executable-find): Doc fix. + + # Conflicts: + # src/treesit.c + +2025-03-13 Eli Zaretskii <eliz@gnu.org> + + Fix aborts and text corruption in 'replace-buffer-contents' + + * src/insdel.c (replace_range): Fix a thinko. Fix commentary. + (Bug#76997) + +2025-03-13 Juri Linkov <juri@linkov.net> + + Handle narrowed buffers in treesit-forward-sentence (bug#76679) + + * lisp/treesit.el (treesit-forward-sentence): When no more + sentences are found, move to the end of the buffer or to + the range boundary at the 'treesit-parser' overlay's end. + +2025-03-13 Juri Linkov <juri@linkov.net> + + Support more embedded ranges in treesit-up-list and treesit-outline-level + + * lisp/treesit.el (treesit-up-list, treesit-outline-level): + Add a loop to handle all nested parsers. + +2025-03-13 Juri Linkov <juri@linkov.net> + + * lisp/textmodes/css-mode.el (css-ts-mode--outline-predicate): Improve. + + Set separate value that differs from 'css--treesit-simple-imenu-settings' + by adding new node "at_rule". + +2025-03-13 Mauro Aranda <maurooaranda@gmail.com> + + Fix error when trying to recommend setopt + + * lisp/help-fns.el (help--recommend-setopt): Don't assume that + variable-documentation stores only strings. (Bug#76994) + +2025-03-13 Eli Zaretskii <eliz@gnu.org> + + Allow control of indicating empty rectangular selections + + * lisp/rect.el (rectangle-indicate-zero-width-rectangle): New user + option. + (rectangle--highlight-for-redisplay): Use it to decide whether to + indicate empty rectangles on display. (Bug#16403) + + * etc/NEWS: Announce the feature. + +2025-03-13 Matthias Meulien <orontee@gmail.com> + + Turn 'remember-mode' into a minor mode + + * lisp/textmodes/remember.el (remember-initial-major-mode): + Major mode for remember buffer. + (remember-data-files-regex): Regular expression to filter files. + (remember-append-in-data-directory): Handler to append data to + files. + (remember-mode): Change to a minor mode. + (remember-prefix-map): New. (Bug#75543) + +2025-03-13 Mauro Aranda <maurooaranda@gmail.com> + + Recognize graphic as a type when customizing a face + + * lisp/cus-edit.el (custom-display): Add checkbox for graphic. + (Bug#76975) + +2025-03-13 john muhl <jm@pub.pink> + + Simplify and improve indent rules in 'lua-ts-mode' + + * lisp/progmodes/lua-ts-mode.el (c-ts-common): Require it. + (lua-ts-mode): Set 'c-ts-common' variables. + (lua-ts--simple-indent-rules): Replace custom indent rules for + tables, arguments and parameters with + 'c-ts-common-baseline-indent-rule'. + Improve consistency of indentation for IIFEs and nested functions. + (lua-ts--variable-declaration-continuation) + (lua-ts--variable-declaration-continuation-anchor): Reformat. + (lua-ts--comment-first-sibling-matcher) + (lua-ts--first-child-matcher, lua-ts--first-real-sibling-anchor) + (lua-ts--function-definition-p, lua-ts--g-g-g-parent) + (lua-ts--g-g-parent, lua-ts--nested-function-argument-matcher) + (lua-ts--nested-function-block-include-matcher) + (lua-ts--nested-function-block-matcher) + (lua-ts--nested-function-end-argument-matcher) + (lua-ts--nested-function-end-matcher) + (lua-ts--nested-function-last-function-matcher) + (lua-ts--top-level-function-call-matcher): Remove. + * test/lisp/progmodes/lua-ts-mode-resources/indent.erts: + Update tests. (Bug#76986) + +2025-03-13 Stefan Kangas <stefankangas@gmail.com> + + Fix loading follow.el + + * lisp/follow.el (follow-mode-prefix-key): Avoid changing + follow-mode-map before it is defined. (Bug#76977) + * test/lisp/follow-tests.el: New file. + +2025-03-13 Daniel Mendler <mail@daniel-mendler.de> + + window-tool-bar: Use `static-if' from Compat 30 + + * lisp/window-tool-bar.el (window-tool-bar--static-if): Remove macro. + (window-tool-bar--ignored-event-types): Use `static-if' from Compat + instead. (Bug#76858) + +2025-03-12 Michael Albinus <michael.albinus@gmx.de> + + Tramp: Don't offer non-existing containers in completion + + * doc/misc/tramp.texi (File name completion): + Explain "completion-use-cache" property. + + * lisp/net/tramp-cache.el (tramp-get-method-parameter): Declare. + (tramp-get-hash-table): Mark connection properties. + (tramp-dump-connection-properties): Remove empty lists. + (tramp-parse-connection-properties): Take connection property + "completion-use-cache" into account. (Bug#76950) + + * lisp/net/tramp-container.el (tramp-methods) <docker, dockercp, podman> + <podmancp, kubernetes, toolbox, distrobox, flatpak, apptainer, nspawn>: + Add `tramp-completion-use-cache' argument. + +2025-03-12 Stephen Gildea <stepheng+emacs@gildea.com> + + time-stamp: optimize resource use + + * lisp/time-stamp.el (time-stamp-string-preprocess): Replace + n-squared string 'concat' with linear list 'push'. + +2025-03-12 Stephen Gildea <stepheng+emacs@gildea.com> + + time-stamp: refactor for readability + + * lisp/time-stamp.el (time-stamp-string-preprocess): Move all of the + big 'while' loop to the end of the function, to better expose its + structure of iterating over the format string. + +2025-03-12 Po Lu <luangruo@yahoo.com> + + Don't warn about Xft >= 2.3.6 + + * configure.ac: Don't warn about Xft >= 2.3.6. Clarify warning + message printed on old releases. + +2025-03-12 Sean Whitton <spwhitton@spwhitton.name> + + find-function-mode-lower-precedence: Also remove the global bindings + + * lisp/emacs-lisp/find-func.el (find-function-mode): When + find-function-mode-lower-precedence is non-nil, apply the + bindings in such a way that we can also remove them when the + mode is deactivated. Approach due to Stefan Monnier. + +2025-03-12 Sean Whitton <spwhitton@spwhitton.name> + + Merge from origin/emacs-30 + + 20291046053 Correct some outdated docs for hack-local-variables + +2025-03-12 Sean Whitton <spwhitton@spwhitton.name> + + Merge from origin/emacs-30 + + 894b0e3a2fe ; Adapt comment in tramp.el + cc87717fa07 Add keyword placeholder to tramp.el + 7d0d61d8549 Rewrite ERT manual introduction + b2f124f2a88 ; cperl-mode.el: Don't misinterpret exec_fcn as keyword exec + 59d1aac49df Document return values of the various read-* functions + +2025-03-12 Sean Whitton <spwhitton@spwhitton.name> + + Fix capitalization ELisp -> Elisp + + * configure.ac (libgccjit_not_found_err) + (libgccjit_dev_not_found_err): + * doc/emacs/buffers.texi (List Buffers): + * doc/lispref/elisp.texi (Tree-sitter C API): + * doc/lispref/functions.texi (What Is a Function): + * doc/lispref/parsing.texi (Parsing Program Source) + (Tree-sitter C API): + * doc/misc/gnus.texi (The Gnus Registry): + * etc/DEBUG: + * etc/NEWS: + * etc/NEWS.25: + * etc/NEWS.26: + * etc/NEWS.28: + * etc/NEWS.30: + * etc/TODO: + * lib-src/emacsclient.c (print_help_and_exit): + * lisp/auth-source.el (auth-source-search): + * lisp/cedet/semantic/bovine/el.el (emacs-lisp-mode): + * lisp/cedet/semantic/wisent/comp.el + (wisent-automaton-lisp-form): + * lisp/cedet/srecode/el.el (srecode-semantic-apply-tag-to-dict): + * lisp/editorconfig.el + (editorconfig-get-local-variables-functions): + * lisp/emacs-lisp/bindat.el (bindat-type): + * lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand): + * lisp/emacs-lisp/cconv.el (cconv-make-interpreted-closure): + * lisp/emacs-lisp/cl-macs.el (cl--labels-convert): + * lisp/emacs-lisp/lisp-mode.el (lisp-fdefs) + (lisp-fill-paragraphs-as-doc-string): + * lisp/emacs-lisp/macroexp.el (macroexp--fgrep): + * lisp/emacs-lisp/oclosure.el (cconv--interactive-helper): + * lisp/emacs-lisp/re-builder.el: + * lisp/erc/erc-button.el (erc-emacswiki-lisp-url): + * lisp/help-fns.el + (help-fns--describe-function-or-command-prompt): + * lisp/menu-bar.el (menu-bar-search-documentation-menu): + * lisp/net/tramp-message.el (tramp-debug-font-lock-keywords): + * lisp/org/org-capture.el (org-capture): + * lisp/org/org.el (org-category, org-todo): + * lisp/org/ox.el (org-export-async-start): + * lisp/progmodes/elisp-mode.el (emacs-lisp-mode): + * lisp/progmodes/peg.el (peg-translate-exp): + * lisp/progmodes/ruby-ts-mode.el: + * lisp/woman.el (woman-mode, woman-parse-numeric-arg): + * src/chartab.c (map_char_table_for_charset): + * src/fns.c (extract_data_from_object): + * src/frame.c (do_switch_frame): + * src/keyboard.c (make_lispy_event): + * test/lisp/emacs-lisp/cl-macs-tests.el (cl-&key-arguments): + * test/lisp/emacs-lisp/shortdoc-tests.el + (shortdoc-help-fns-examples-function-test): + * test/manual/etags/c-src/emacs/src/keyboard.c + (make_lispy_event): Fix capitalization ELisp -> Elisp. + +2025-03-12 F. Jason Park <jp@neverwas.me> + + Add erc-compat adapter for xml-escape-string + + * lisp/erc/erc-compat.el (erc-compat--xml-escape-string): New macro to + call `xml-escape-string' sans the NO-ERROR argument on Emacs 27. + * lisp/erc/erc-desktop-notifications.el (erc-notifications-notify): Use + compat macro. + +2025-03-12 F. Jason Park <jp@neverwas.me> + + Suppress log module when inserting date stamps in ERC + + * lisp/erc/erc-log.el (erc-truncate-buffer-on-save): Use + `make-obsolete-variable' because `erc-truncate-buffer-on-save' is an + option, not a function. Already mentioned in etc/ERC-NEWS. + (erc-logging-enabled): Return nil if `log' appears in the `erc--skip' + msg prop. + * lisp/erc/erc-stamp.el (erc-stamp--defer-date-insertion-on-post-modify): + Add `log' to `erc--skip' msg prop. This tells the log module to defer + advancing the `erc-last-saved-position' marker until after stamps have + been inserted, thus ensuring they're included in logs when + `erc-log-write-after-insert' is non-nil. + * test/lisp/erc/erc-scenarios-log.el + (erc-scenarios-log--save-buffer-in-logs/truncate-on-save): Suppress + warning for `erc-truncate-buffer-on-save'. + (erc-scenarios-log--write-after-insert): New test. (Bug#76875) + +2025-03-12 Stefan Kangas <stefankangas@gmail.com> + + lisp/emacs-lisp/track-changes.el: Make GNU ELPA release + +2025-03-12 Stefan Kangas <stefankangas@gmail.com> + + Unbreak track-changes in Emacs 24 + + * lisp/emacs-lisp/track-changes.el (track-changes--after): Don't use + 'incf', added in Emacs 31; this :core package supports Emacs 24. + +2025-03-11 Stefan Kangas <stefankangas@gmail.com> + + Automatically document when setopt is needed + + * lisp/help-fns.el (help--recommend-setopt): New function to + automatically document the need to use `setopt` to set the values of + any defcustoms with a `:set` property. + (help-fns-describe-variable-functions): Add above new function to + hook. + + * lisp/follow.el (follow-mode-prefix-key): + * lisp/minibuffer.el (minibuffer-regexp-prompts): + * lisp/register.el (register-use-preview): + * lisp/savehist.el (savehist-autosave-interval): + * lisp/saveplace.el (save-place-autosave-interval): + * lisp/tab-bar.el (tab-bar-define-keys): + * lisp/textmodes/text-mode.el (text-mode-ispell-word-completion): + Delete now redundant text from docstrings. + +2025-03-11 Stefan Kangas <stefankangas@gmail.com> + + Delete XEmacs compatibility kludge from follow.el + + * lisp/follow.el (follow-select-if-end-visible): Remove XEmacs + compatibility kludge. + +2025-03-11 Stefan Kangas <stefankangas@gmail.com> + + New user option follow-mode-prefix-key + + * lisp/follow.el (Commentary): Document modern keymap functions. + (follow-mode-prefix): Make obsolete in favor of... + (follow-mode-prefix-key): ...this new user option. Allow changing the + prefix using `setopt`. + (follow-mode-submap): New variable. + (follow-mode-map): Define using defvar-keymap. + +2025-03-11 Stefan Monnier <monnier@iro.umontreal.ca> + + (Freplace_buffer_contents): Preserve markers more carefully + + Use `replace_range` rather than `delete+insert`. + + * src/insdel.c (replace_range): Allow NEW to specify a chunk + of buffer text. + * src/editfns.c (Freplace_buffer_contents): Use it. + * test/src/editfns-tests.el (replace-buffer-contents-1): Remove + incorrect check which happened to succeed because point was not + preserved carefully enough. Make the replacement text share a bit + more content to make the test a bit more strict. + (editfns-tests--replace-region): Doesn't fail any more. + +2025-03-11 Stefan Kangas <stefankangas@gmail.com> + + Use defvar-keymap for outline-mode-prefix-map + + * lisp/outline.el (outline-mode-prefix-map): Use defvar-keymap. + +2025-03-11 Stefan Kangas <stefankangas@gmail.com> + + Remove variable aliases obsolete since Emacs 23.2 + + * lisp/dired.el (dired-advertised-find-file): + * lisp/simple.el (advertised-undo): + * lisp/wid-edit.el (advertised-widget-backward): Remove variable + aliases obsolete since Emacs 23.2. They are replaced by + ':advertised-binding' properties. + * lisp/arc-mode.el (archive-mode-map): + * lisp/dired.el (dired-mode-map): + * lisp/obsolete/landmark.el (landmark-mode-map): + * lisp/play/decipher.el (decipher-mode-map): + * lisp/play/gomoku.el (gomoku-mode-map): + * lisp/proced.el (proced-mode-map): Don't bind above removed commands. + +2025-03-11 Stefan Kangas <stefankangas@gmail.com> + + Don't recommend legacy keymap functions in documentation + + * doc/emacs/mule.texi (Input Methods): + * doc/lispintro/emacs-lisp-intro.texi (Miscellaneous): + * doc/lispref/text.texi (Clickable Text): + * doc/misc/calc.texi (Defining Functions, Defining Simple Commands) + (Customizing Calc): + * doc/misc/efaq.texi (Matching parentheses, Modifying pull-down menus) + (Deleting menus and menu options, Binding keys to commands) + (Invalid prefix characters) + (Terminal setup code works after Emacs has begun) + (Backspace invokes help, Swapping keys, No Escape key) + (Binding combinations of modifiers and function keys) + (Replying to the sender of a message): + * doc/misc/eudc.texi (Installation, Emacs-only Configuration) + (External Configuration): + * doc/misc/gnus.texi (Group Parameters, Misc Group Stuff) + (Summary Buffer, Generic Marking Commands, RSS) + (nnmairix tips and tricks, Oort Gnus): + * doc/misc/ido.texi (Customization): + * doc/misc/mairix-el.texi (Using): + * doc/misc/mh-e.texi (HTML, Miscellaneous Commands and Options) + (Folders, Composing): + * doc/misc/octave-mode.texi (Running Octave from Within Emacs): + * doc/misc/reftex.texi (Citations Outside LaTeX): + * doc/misc/remember.texi (Quick Start): + * doc/misc/sem-user.texi (Smart Jump): + * doc/misc/viper.texi (Key Bindings, Vi Macros): + * doc/misc/widget.texi (Defining New Widgets): + * doc/misc/woman.texi (Word at point): Recommend 'keymap-set', + 'keymap-global-set', 'keymap-global-unset', 'keymap-local-set', and + 'key-translate', instead of their legacy equivalents. (Bug#55647) + +2025-03-11 Michael Heerdegen <michael_heerdegen@web.de> + + Fix overlay-start and overlay-end gv setters + + This fixes Bug#76730. + + * lisp/emacs-lisp/gv.el (overlay-start, overlay-end): + Avoid computing the set value twice. + +2025-03-11 Juri Linkov <juri@linkov.net> + + Adapt treesit-outline-search to the recent improvements (bug#76398) + + * lisp/treesit.el (treesit-closest-parser-boundary): + Remove temporary function. + (treesit-outline-search): Use 'previous/next-single-char-property-change' + with 'treesit-parser' property to find the closest parser boundary. + (treesit-outline-level): Get the 'treesit-host-parser' overlay + and find the parent parser node with 'treesit-node-at'. + +2025-03-11 Thierry Volpiatto <thievol@posteo.net> + + New user variable `exchange-point-and-mark-highlight-region` + + When set to nil, this modifies `exchange-point-and-mark' so that it doesn't + activate mark when it is not already active. + + * etc/NEWS: Introduce new variable + exchange-point-and-mark-highlight-region. + + * lisp/simple.el + (exchange-point-and-mark-highlight-region): New. + (exchange-point-and-mark): Use it. + +2025-03-11 Sean Whitton <spwhitton@spwhitton.name> + + diff-apply-buffer: Operate on region, add prefix argument + + * lisp/vc/diff-mode.el (diff-apply-buffer): Interactively, + operate on an active region. Reverse-apply hunks with a prefix + argument, like C-u C-c C-a already does. + +2025-03-11 Yuan Fu <casouri@gmail.com> + + Fix c-ts-common-baseline-indent-rule for lists (bug#76908) + + * lisp/progmodes/c-ts-common.el: + (c-ts-common-baseline-indent-rule): Use the first non-comment + sibling rather than first sibling. + +2025-03-11 Yuan Fu <casouri@gmail.com> + + Make sure treesit-local-parsers-on works when BEG = END (bug#76398) + + (Unrelated to the topic of the bug, but mentioned in the thread.) + + * lisp/treesit.el (treesit-local-parsers-on): Use overlays-at + when BEG = END. + +2025-03-11 Yuan Fu <casouri@gmail.com> + + Handle deleted parser in treesit-explore-mode (bug#76398) + + (Unrelated to the topic of the bug, but mentioned in the + thread.) + + * lisp/treesit.el (treesit--explorer-refresh-1): New function. + (treesit--explorer-refresh): Handle 'treesit-parser-deleted' + error. + +2025-03-11 Yuan Fu <casouri@gmail.com> + + Add overlays for non-local tree-sitter parsers too + + * lisp/treesit.el (treesit-local-parsers-at): + (treesit-local-parsers-on): Exclude non-local parsers. + (treesit--cleanup-local-range-overlays): Don't delete non-local + parsers (because those are managed by the major mode). + (treesit--update-ranges-non-local): Apply overlay for each ranges. + (treesit--update-ranges-local): Ignore + overlays with non-local parsers, and set + 'treesit-parser-local-p' property to t. + (treesit--update-range-1): Additionally pass modified-tick to + treesit--update-ranges-non-local. + (treesit-major-mode-setup): Don't delete non-local parsers. + +2025-03-11 Yuan Fu <casouri@gmail.com> + + Remove parent-node field from tree-sitter parsers + + * src/treesit.c (make_treesit_parser): Remove field. + (Ftreesit_parser_parent_node): + (Ftreesit_parser_set_parent_node): Remove + * src/treesit.h (Lisp_TS_Parser): Remove field. + +2025-03-11 Stefan Kangas <stefankangas@gmail.com> + + Bump python.el package version to 0.30 + + * lisp/progmodes/python.el: Bump package version to 0.30. + +2025-03-11 Stefan Kangas <stefankangas@gmail.com> + + Make python.el compatible with Emacs 29.1 + + * lisp/progmodes/python.el (python--treesit-fontify-string): Don't + call treesit--compute-font-lock-level unless it is + fboundp. (Bug#76873) + +2025-03-11 Stefan Kangas <stefankangas@gmail.com> + + Prefer defvar-keymap in some additional Gnus libraries + + * lisp/gnus/gnus-sum.el (gnus-dead-summary-mode-map): + * lisp/gnus/gnus.el (gnus-article-mode-map) + (gnus-summary-mode-map, gnus-group-mode-map): + * lisp/gnus/mm-decode.el (mm-viewer-completion-map): Prefer + defvar-keymap. + * lisp/gnus/gnus.el (gnus-suppress-keymap): Declare obsolete. + +2025-03-10 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/emacs-lisp/track-changes.el: Make GNU ELPA release + +2025-03-10 Martin Rudalics <rudalics@gmx.at> + + Fix setting dedicatedness of WINDOW in 'window--display-buffer' (Bug#76911) + + * lisp/window.el (window--display-buffer): Consult WINDOW's + 'window-side' parameter in order to find out whether it is a + side window (Bug#76911). + +2025-03-10 Mauro Aranda <maurooaranda@gmail.com> + + Fix Package name for cond-star + + * lisp/emacs-lisp/cond-star.el: Fix name. (Bug#76861) + +2025-03-10 Sean Whitton <spwhitton@spwhitton.name> + + vc-setup-buffer: Don't set current buffer as parent (bug#59457) + + * lisp/vc/vc-dispatcher.el (vc-setup-buffer): Don't set the + current buffer as parent (bug#59457). + +2025-03-10 Sean Whitton <spwhitton@spwhitton.name> + + vc-setup-buffer: Kill local file-local-variables-alist too + + * lisp/vc/vc-dispatcher.el (vc-setup-buffer): Kill + file-local-variables-alist variable, too (bug#44698). + * lisp/vc/vc.el (vc-log-internal-common): Don't call + kill-all-local-variables here, that's vc-setup-buffer's job. + +2025-03-10 Martin Rudalics <rudalics@gmx.at> + + Fix handling of frame position values + + * src/frame.c (tty_child_pos_param): Handle additional position + values. New SIZE argument. + (tty_child_frame_rect): Process size before position. + (Fmake_terminal_frame): Do not store calculated size/position + values in parameters to avoid that a negative absolute position + is later interpreted as position relative to bottom/right edge + of parent. + (Fmodify_frame_parameters): For tty child frames process size + before position values so the latter can take a new size into + account. + * src/frame.h: Adjust declaration of tty_child_pos_param. + * src/gtkutil.c (xg_set_geometry): Handle negative frame + position specifications. + * src/msdos.c (IT_set_frame_parameters): For tty child frames + process size before position parameters. + * src/xfns.c (x_window): In the non-GTK toolkit variant leave + negative position values unchanged - the toolkit should know how + to handle them. Process child frame position parameters + separately. In the non-toolkit variant process child frame + parameters separately. + +2025-03-10 Po Lu <luangruo@yahoo.com> + + Reenable mmap-based dump allocation on wide int configurations + + * src/pdumper.c (VM_SUPPORTED): Don't define to 0 when + !USE_LSB_TAG if WIDE_EMACS_INT. + +2025-03-10 Po Lu <luangruo@yahoo.com> + + Fix bug#76805 + + * src/xterm.c (x_fast_mouse_position): Clear the mouse_moved + flag whether or not mouse motion is reported, to avoid repeated + polling for mouse movement. (bug#76806) + +2025-03-10 Po Lu <luangruo@yahoo.com> + + Don't claim that xftfont is being considered for deletion + + * configure.ac: Don't claim that Xft is being considered for + deletion or that recent releases are buggy, or imply that + HarfBuzz support is exclusive to Cairo. + +2025-03-10 Stefan Monnier <monnier@iro.umontreal.ca> + + (makefile-dependency-regex): Fix bug#76759 + + * lisp/progmodes/make-mode.el (makefile-dependency-regex): + Decompose the regexp to be more understandable, and then change + it so the target part can't accidentally match a TAB. + + * test/lisp/progmodes/make-mode-tests.el (make-mode-tests--bug17400): + New test. + +2025-03-09 Mauro Aranda <maurooaranda@gmail.com> + + Provide better completion for customizing frame parameters + + * lisp/frame.el (frame--special-parameters): New const. + (frame--complete-parameter-value): New function. + (initial-frame-alist, minibuffer-frame-alist): Use them in + :type. (Bug#39143) + * lisp/cus-start.el (default-frame-alist): Use them here as well. + * src/frame.c (frame_parms): Add comment to try to keep + frame--special-parameters updated. + +2025-03-09 Stefan Kangas <stefankangas@gmail.com> + + Make second arg to defvar-local optional + + This change allows declaring a variable both special + and buffer-local like so: + + (defvar-local foo) + + * lisp/subr.el (defvar-local): Make second argument optional. + * test/lisp/subr-tests.el (subr-test-defvar-local): New test. + * doc/lispref/variables.texi (Creating Buffer-Local): Document above change. + * etc/NEWS: + + * lisp/mb-depth.el (minibuffer-depth-overlay): + * lisp/minibuf-eldef.el (minibuf-eldef-initial-input) + (minibuf-eldef-initial-buffer-length) + (minibuf-eldef-showing-default-in-prompt, minibuf-eldef-overlay): + * lisp/misc.el (list-dynamic-libraries--loaded-only-p): + * lisp/simple.el (minibuffer-history-isearch-message-overlay): Use + above new one-argument form of 'defvar-local'. + +2025-03-09 Stefan Kangas <stefankangas@gmail.com> + + Use lisp-data-mode in recentf-save-file + + * lisp/recentf.el (recentf-save-file-header): Add cookie to use + lisp-data-mode in recentf-save-file. + +2025-03-09 Stefan Kangas <stefankangas@gmail.com> + + Use .eld for some relevant cache and data files + + * lisp/bookmark.el (bookmark-default-file): + * lisp/net/nsm.el (nsm-settings-file): + * lisp/progmodes/project.el (project-list-file): + * lisp/saveplace.el (save-place-file): Rename files to have the file + suffix ".eld". This change is backwards-compatible. + +2025-03-09 Stefan Kangas <stefankangas@gmail.com> + + Make locate-user-emacs-file accept a list too + + This can be used to migrate to a new name, while also keeping + backwards-compatible support for an old name. + + * lisp/files.el (locate-user-emacs-file): Accept a list as the + NEW-NAME argument. + * test/lisp/files-tests.el (files-test-locate-user-emacs-file): New + test for the above. + +2025-03-09 Stefan Kangas <stefankangas@gmail.com> + + Add test for 'locate-user-emacs-file' + + * test/lisp/files-tests.el + (files-test-locate-user-emacs-file): New test. + +2025-03-09 Po Lu <luangruo@yahoo.com> + + Re-port to 32-bit systems without alignment primitives + + * configure.ac (ALIGNOF_INT, ALIGNOF_LONG, ALIGNOF_LONG_LONG): + New variables. + (emacs_cv_alignas_unavailable): Define if alignas and structure + alignment primitives are unavailable. In such an environment, + the MSB tagging scheme must be enabled, as must the GNU malloc. + + * msdos/sed2v2.inp: Adjust correspondingly. + + * src/alloc.c (union emacs_align_type): Remove types which + contain flexible array members. The address of a field + subsequent to an aggregate with flexible array members cannot + validly be taken. + (mark_memory) [!USE_LSB_TAG && !WIDE_EMACS_INT]: Strip type bits + before scanning memory. + + * src/emacs.c (main): + + * src/eval.c (Fautoload_do_load): + + * src/fns.c (Frequire): Rename a number of illogically named + fields. + + * src/lisp.h (ALIGNOF_EMACS_INT): Define to the natural + alignment of EMACS_INT. + (IDEAL_GCALIGNMENT): New macro. + (USE_LSB_TAG): Disable if no alignment specifiers are available, + WIDE_EMACS_INT is undefined, and the natural alignment of + EMACS_INT falls short of LSB tagging's requirements. + (gflags): Rename illogically named fields and don't define them + as bitfields, which runs afoul of certain compiler issues. + (will_dump_p, will_bootstrap_p, will_dump_with_pdumper_p) + (dumped_with_pdumper_p): Adjust accordingly. + + * src/pdumper.c (VM_SUPPORTED): Define to 0 when !USE_LSB_TAG. + It is better to read dump files into the heap by hand than to be + supplied with an address that is not representable. + (_dump_object_start_pseudovector): Rename to + dump_object_start_pseudovector, to avoid encroaching on reserved + names. + (START_DUMP_PVEC): Adjust correspondingly. + (dump_mmap_contiguous_vm): Preserve errno around failure + cleanup. + (dump_bitset_bit_set_p): Work around certain compiler issues. + (pdumper_load) [!USE_LSB_TAG]: Reject dump file allocations + that are not representable as Lisp_Objects. + + Tested on i386-unknown-solaris2.10, sparc-sun-solaris2.10. + +2025-03-09 Sean Whitton <spwhitton@spwhitton.name> + + Restore find-function-mode-map (bug#76700) + + * lisp/emacs-lisp/find-func.el + (find-function-mode-lower-precedence): New option. + (find-function-mode-map): Restore. + (find-function-mode): Don't unconditionally bind keys into the + global map. Instead respond to the new user option (bug#76700). + * etc/NEWS: Mention the new option in existing entry. + +2025-03-09 Mauro Aranda <maurooaranda@gmail.com> + + Allow changing theme settings without reloading it + + * lisp/custom.el (custom--should-apply-setting): Return non-nil + for an enabled theme. Provide docstring. This allows for users + to reevaluate a custom-theme-set-* function and see the settings + applied right away. (Bug#76685) + (custom--inhibit-theme-enable): Adapt docstring. + + * etc/NEWS: Announce the new behavior. + +2025-03-09 Michael Albinus <michael.albinus@gmx.de> + + * admin/notes/jargon: Add AFK and OOO. + +2025-03-09 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 35c7837c661 Fix TAGS regeneration with Universal Ctags + +2025-03-09 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + af8017b23f6 Explicitly document read-string return value + cf03c2b6093 Improve docstrings of python.el import management + 01bcc6961a6 ; Improve doc strings of Speedbar + bd9c76ab175 Avoid warnings about 'image-scaling-factor' in builds --w... + +2025-03-09 Gerd Möllmann <gerd.moellmann@gmail.com> + + Fix drawing to the bottom-right corner of terminals + + * src/term.c (tty_write_glyphs_1): Renamed from tty_write_glyphs. Don't + check if writing the bottom-right corner. + (tty_write_glyphs): New function handling case of writing to the + bottom-right corner, and otherwise calling tty_write_glyphs_1. + +2025-03-09 Mauro Aranda <maurooaranda@gmail.com> + + Guard against user saving ediff-meta-diff-buffer + + * lisp/vc/ediff-mult.el (ediff-collect-custom-diffs): If the + diff buffer is visiting a file, create a new buffer. (Bug#3348) + + * test/lisp/vc/ediff-mult-tests.el: New test file. + +2025-03-09 Gerd Möllmann <gerd.moellmann@gmail.com> + + macOS: Don't constrainFrameRect for child frames + + * src/nsterm.m ([EmacsWindow constrainFrameRect:toScreen:]): Don't do + anything for child frames. + +2025-03-09 Rudolf Adamkovič <rudolf@adamkovic.org> + + Make sure Comint minibuffer password prompts end with space + + * lisp/comint.el (comint-watch-for-password-prompt): Add a trailing + space character to the minibuffer password prompt, if it does not + contain one already, per the minibuffer UI conventions. + + Bug#76604 + +2025-03-09 Elías Gabriel Pérez <eg642616@gmail.com> + + Highlight fill-column-indicator when current line is too long + + * lisp/display-fill-column-indicator.el + (display-fill-column-indicator-warning): New user option. + (display-fill-column-indicator-warning-face): New face. + (display-fill-column-indicator-mode): Add post-command-hook + if `display-fill-column-indicator-warning' is ON. (Bug#76494) + +2025-03-09 Mauro Aranda <maurooaranda@gmail.com> + + Action button when point is just after it + + * lisp/cus-edit.el (Custom-newline): If no button at point, + check for a button before point. (Bug#72341) + +2025-03-09 Christoph Badura <bad@bsd.de> + + VC: New hook to strip CVS template lines when committing + + Add a hook function to strip all lines beginning with "CVS:" from the + commit message as CVS does. Do this only if 'log-edit-vc-backend' is + 'CVS'. (Bug#72341) + + * lisp/vc/log-edit.el + (log-edit-done-strip-cvs-lines): New command. + (log-edit-done-hook): Add it as an option. + + * test/lisp/vc/log-edit-tests.el + (log-edit-done-strip-cvs-lines-helper): New function. + (log-edit-done-strip-cvs-lines-cvs) + (log-edit-done-strip-cvs-lines-non-cvs) + (log-edit-done-strip-cvs-lines-only-cvs-colon-blank) + (log-edit-done-strip-cvs-lines-only-cvs-colon): New test cases. + + * etc/NEWS: Mention log-edit-done-strip-cvs-lines. + +2025-03-09 Po Lu <luangruo@yahoo.com> + + Avoid reserved names in sfnt.c + + * src/sfnt.c (_MIN, _MAX): Rename to INS_MIN and INS_MAX. + (sfnt_interpret_run): Adjust accordingly. + +2025-03-08 john muhl <jm@pub.pink> + + Use TS to support 'hs-minor-mode' in 'lua-ts-mode' + + * lisp/progmodes/lua-ts-mode.el (lua-ts-mode): Add list type to + 'treesit-thing-settings'. + * lisp/progmodes/hideshow.el (hs-special-modes-alist): + Remove regular expression based implementation. + * test/lisp/progmodes/lua-ts-mode-resources/hide-show.lua: New file. + * test/lisp/progmodes/lua-ts-mode-tests.el (lua-ts-test-hideshow): + Add test. (Bug#76693) + +2025-03-08 Michael Heerdegen <michael_heerdegen@web.de> + + Correct (debug body) edebug specs + + This fixes Bug#69865. + + * lisp/org/ob-exp.el (org-babel-exp--at-source): + * test/lisp/dired-tests.el (dired-test-with-temp-dirs): + * test/lisp/emacs-lisp/package-tests.el (with-fake-help-buffer): + Fix broken edebug specs (debug body) -> (debug (body)). + +2025-03-08 Kévin Le Gouguec <kevin.legouguec@gmail.com> + + Prevent button.el from clearing help-echo strings + + In order to fix one of the issues discussed in bug#61413, i.e. + 'buttonize' clobbering the help-echo property set by + 'icon-string'. + + This is a reasonable interpretation of the button.el + docstrings - "if HELP-ECHO, use that as the `help-echo' + property"; conversely, if not HELP-ECHO, then do not do + anything, preserving existing values for that property. + + * lisp/button.el (button--properties): Only add a help-echo + property if HELP-ECHO is non-nil. Add an additional property + for bookkeeping. + (unbuttonize-region): Check for that bookkeeping property + before clearing help-echo. + * test/lisp/button-tests.el (button--preserve-help-echo): + Validate these changes. + +2025-03-08 Daniel Colascione <dancol@dancol.org> + + Make windmove repetition more robust + + Munge this-command when we hit a movement barrier so we override only on + the very next command instead of at the end of a sequence of movement + commands that didn't encounter a barrier. + + * (windmove-do-window-select): Use last-command to remember that we hit + a barrier. + +2025-03-08 Daniel Colascione <dancol@dancol.org> + + Fix documentation for windmove commands + + * lisp/windmove.el (windmove-left, windmove-up, windmove-right) + (windmove-down): Mention correct variable names and align descriptions. + +2025-03-08 Po Lu <luangruo@yahoo.com> + + Don't lose drag-and-drop data intended for XTerm-like programs + + * src/xselect.c (x_own_selection): If special values exist for + drag-and-drop to unsupported programs, retain them till the + selection is cleared. + +2025-03-08 Eli Zaretskii <eliz@gnu.org> + + Fix crash in daemon when "C-x C-c" while a client frame shows tooltip + + * src/frame.c (delete_frame): Ignore tooltip frames when looking + for other frames on the same terminal. (Bug#76842) + +2025-03-08 Sean Whitton <spwhitton@spwhitton.name> + + vc-log-internal-common: Kill all local variables + + * lisp/vc/vc.el (vc-log-internal-common): Kill all local + variables, even permanent-local ones (bug#44698). + +2025-03-08 Daniel Colascione <dancol@dancol.org> + + Let repeated windmove override motion restrictions interactively + + * lisp/windmove.el (windmove-allow-all-windows): document feature + (windmove-allow-repeated-command-override): new option + (windmove-do-window-select, windmove-left, windmove-up, windmove-right) + (windmove-down): pass interactive + * etc/NEWS: mention feature + +2025-03-08 Daniel Colascione <dancol@dancol.org> + + Add static-when, static-unless like static-if + + * lisp/subr.el (static-when, static-unless): define + * doc/lispref/control.texi (Conditional Compilation): document + * etc/NEWS: mention + +2025-03-08 João Távora <joaotavora@gmail.com> + + Eglot: the margin code action indicator is interactive + + * doc/misc/eglot.texi (Customization Variables): Fix. + +2025-03-08 João Távora <joaotavora@gmail.com> + + Revert "Eglot: tests must work on 26.3" + + This reverts commit 331492a148588991af5ce9a24a2020b3d380e03f. + + My bad: gensym wasn't the problem, it's available from 26.1. Incf + was the problem, in the main program file. + + * test/lisp/progmodes/eglot-tests.el (eglot--with-timeout): Back to gensym + +2025-03-08 João Távora <joaotavora@gmail.com> + + Eglot: unbreak from Emacs 26.3 (two-arg setq-local) + + * lisp/progmodes/eglot.el (eglot--hierarchy-1): Use two-arg setq-local + +2025-03-08 João Távora <joaotavora@gmail.com> + + Eglot: tests must work on 26.3 + + ;; IMPORTANT: Since Eglot is a :core ELPA package, these tests are + ;; supposed to run on Emacsen down to 26.3. Do not use bleeding-edge + ;; functionality not compatible with that Emacs version. + + * test/lisp/progmodes/eglot-tests.el (eglot--call-with-timeout): + Back to cl-gensym. + +2025-03-08 Stefan Kangas <stefankangas@gmail.com> + + Expand word list in admin/notes/jargon + + * admin/notes/jargon: Add some more acronyms, remove some rare ones, + add section headers "Acronyms" and "Glossary", add entries under + "Glossary", sort, fix formatting, realign. + +2025-03-08 Stefan Kangas <stefankangas@gmail.com> + + Support :maintainers in plural in <foo>-pkg.el + + For some reason, MELPA emits the keyword :maintainers, despite it + being unsupported and thus leads to the "Maintainer" field being empty + in all released Emacs versions. That said, it seems like a good idea + to support the plural form, to be consistent with :authors. + + * lisp/emacs-lisp/package.el (describe-package-1): Support + :maintainers in plural, in addition to :maintainer, to be consistent + with :authors. + +2025-03-08 Daniel Colascione <dancol@dancol.org> + + Stop term-erase-in-line disturbing markers + + * lisp/term.el (term-erase-in-line): do nothing if there's nothing to + do; insert new newlines before deleting old ones. + +2025-03-07 dimagid <dimagidve@gmail.com> + + Add admin/notes/jargon used in emacs-devel + + * admin/notes/jargon: New file. + Ref: https://lists.gnu.org/r/emacs-devel/2025-02/msg00950.html + +2025-03-07 Gerd Möllmann <gerd.moellmann@gmail.com> + + Fix tty underline capability check (bug#75024) + + * src/dispextern.h (TTY_CAP_UNDERLINE_STYLED): Fix. Also make this an + enum. + +2025-03-07 Daniel Colascione <dancol@dancol.org> + + Revert "Stop moving markers during erase-in-line" + + This reverts commit 6f19715937bbeaec5fb80ee9dad0d14b7712a989. + +2025-03-07 Daniel Colascione <dancol@dancol.org> + + Stop moving markers during erase-in-line + + We shouldn't move a line marker just because we cleared a line next to + it. clear-in-line is defined not to affect line structure. + + * lisp/term.el (term-erase-in-line): use insert-before-markers + +2025-03-07 Daniel Colascione <dancol@dancol.org> + + Make erase-in-line conform to ANSI spec in term + + When handling \e[<N>K escape sequences, we're supposed to erase both to + the left _and_ to the right of the cursor when N is two. + + * lisp/term.el (term-erase-in-line): make condition check more correct + +2025-03-07 Stefan Kangas <stefankangas@gmail.com> + + Add type check to package-upgrade + + * lisp/emacs-lisp/package.el (package-upgrade): Add type check. + +2025-03-07 Basil L. Contovounesios <basil@contovou.net> + + Clean up ert-font-lock error messages + + * lisp/emacs-lisp/ert-font-lock.el: Remove redundant requires. + (ert-font-lock--parse-macro-args): First return value 'doc' being + nil already indicates omission of a docstring, so remove redundant + second return value doc-p. All users updated. Fix error + messages (bug#76372). + (ert-font-lock--check-faces): Simplify with ensure-list. + +2025-03-07 Tomas Nordin <tomasn@posteo.net> + + view-search: Start search from beginning or end of line + + * lisp/view.el (view-search): Go to beginning-of-line or end-of-line + instead of previous or next line before the search. (Bug#76167) + +2025-03-07 Stefan Kangas <stefankangas@gmail.com> + + Fix using log-edit-mode with git-commit-mode + + * lisp/vc/log-edit.el (log-edit-font-lock-keywords): Avoid incorrect + fontification when used with the third-party git-commit-mode (part of + Magit). + +2025-03-07 Stefan Kangas <stefankangas@gmail.com> + + Use substitute-command-keys in gnus-score-insert-help + + * lisp/gnus/gnus-score.el (gnus-score-insert-help): Use + substitute-command-keys. Clean up the code a bit. + +2025-03-07 Stefan Monnier <monnier@iro.umontreal.ca> + + (python-base-mode-map): Use it! + + Rather than use `copy-keymap` between `python-mode-map` and + `python-ts-mode-map`, move the shared bindings to `python-base-mode-map`. + + * lisp/progmodes/python.el (python-base-mode-map): Define it explicitly. + Move all the bindings of `python-mode-map` to it. + (python-mode-map, python-ts-mode-map): Inherit from it. + +2025-03-07 Stefan Monnier <monnier@iro.umontreal.ca> + + * src/eval.c (signal_or_quit): Reduce scope of `debugger_called` + +2025-03-06 Stefan Monnier <monnier@iro.umontreal.ca> + + (debug--early): Avoid re-entering the debugger for the same error + + Fixes bug#76787. + + * lisp/emacs-lisp/debug.el (debugger--last-error): Move ... + * lisp/emacs-lisp/debug-early.el (debugger--last-error): ... here. + (debug--early): Use it. + +2025-03-06 Philip Kaludercic <philipk@posteo.net> + + Prepare cond-start for addition to GNU ELPA + +2025-03-06 shipmints <shipmints@gmail.com> + + mouse-face properties on tab-bar tab captions (bug#76394) + + * etc/NEWS: Announce 'tab-bar' 'mouse-face' support. + + * src/xdisp.c (note_tab_bar_highlight): Handle mouse-face property. + + * lisp/tab-bar.el + (tab-bar-tab-highlight): New face. + (tab-bar-tab-name-format-mouse-face): New function adds the 'mouse-face' + 'tab-bar-tab-highlight' to the tab name. + (tab-bar-tab-name-format-functions): Add + 'tab-bar-tab-name-format-mouse-face'. + +2025-03-06 Juri Linkov <juri@linkov.net> + + Improve treesit settings for js/typescript/ruby-ts-mode (bug#73404) + + * lisp/progmodes/js.el (js--treesit-list-nodes): + * lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode--list-nodes): + Replace leaf "string" with "template_string" and "template_substitution" + that can contain more nodes. + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode): + Add the 'sentence' thing to treesit-thing-settings. + +2025-03-06 Stefan Monnier <monnier@iro.umontreal.ca> + + (debug): Don't `kill-emacs` upon exit when in batch mode + + AFAICT this is a left over code from many years ago before + the `debug` special case was added to `condition-case` and + at a time where exiting from `debug` did not proceed to handle + remaining handlers. + + In the usual case where we indeed want to kill Emacs, + `signal_or_quit` does it for us. + + * lisp/emacs-lisp/debug.el (debug): Don't `kill-emacs` upon exit + when in batch mode (bug#76786) + +2025-03-06 Stefan Monnier <monnier@iro.umontreal.ca> + + (replace_range): Delete argument `markers` + + * src/lisp.h (replace_range): + * src/insdel.c (replace_range): Delete argument `markers`, always true. + * src/editfns.c (Ftranslate_region_internal): + * src/cmds.c (internal_self_insert): + * src/search.c (Freplace_match): Adjust callers accordingly. + +2025-03-06 Eli Zaretskii <eliz@gnu.org> + + Fix images on the mode line under 'mode-line-compact' + + * src/xdisp.c (display_mode_line): When 'mode-line-compact' + is in effect, don't remove spaces that have a 'display' + property on them. (Bug#76761) + +2025-03-06 Kazuhiro Ito <kzhr@d1.dion.ne.jp> + + Avoid defining unneeded variables on Cygw32 + + lisp/term/w32-win.el contained definitions of variables which + were not used on Cygw32. It is now to split into two files, + common part and Windows native build specific part. The latter + is a new file, lisp/term/w32-nt.el. + * src/image.c (Qlibpng_version, Qlibgif_version) + (Qlibjpeg_version): Don't define on Cygw32 build. + * src/treesit.c (Qtree_sitter__library_abi): Ditto. + + * lisp/term/w32-win.el (dynamic-library-alist, libpng-version) + (libgif-version, libjpeg-version, libgnutls-version) + (tree-sitter--library-abi, gui-backend-set-selection) + (gui-backend-get-selection, gui-backend-selection-owner-p) + (gui-selection-exists-p): Moved to lisp/term/w32-nt.el. + * lisp/term/w32-nt.el: New file, separated Windows native build + specific part from lisp/term/w32-win.el. + * lisp/loadup.el: Load term/w32-nt.el on Windows native build. + (Bug#75926) + +2025-03-06 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 9065423e709 ; Improve documentation of 2 symbol-related functions + +2025-03-06 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 93ac2cb742f Fix some widgets in customize-dirlocals + 42a4c847e28 Fix register-use-preview behavior with never value + +2025-03-06 Eli Zaretskii <eliz@gnu.org> + + Fix etags tests due to Copyright years update + + * test/manual/etags/CTAGS.good + * test/manual/etags/CTAGS.good_crlf + * test/manual/etags/CTAGS.good_update + * test/manual/etags/ETAGS.good_1 + * test/manual/etags/ETAGS.good_2 + * test/manual/etags/ETAGS.good_3 + * test/manual/etags/ETAGS.good_4 + * test/manual/etags/ETAGS.good_5 + * test/manual/etags/ETAGS.good_6 + * test/manual/etags/ETAGS.good_7: Update. (Bug#76744) + +2025-03-06 shipmints <shipmints@gmail.com> + + Add shell-mode bookmark support for local and remote shells (bug#65039) + + * doc/emacs/misc.texi (Shell): Add "Shell Bookmarks" menu item. + (Shell Mode): Fix typo. + (Shell Bookmarks): New node. + + * etc/NEWS: Announce shell-mode bookmark capability. + + * lisp/bookmark.el: + (bookmark-insert): Refuse to insert bookmarks whose handlers have the + property 'bookmark-inhibit eq 'insert. + + * lisp/shell.el + (shell-mode): Set bookmark-make-record-function. + (shell-bookmark-name-function): New defcustom. + (shell-bookmark-name-from-default-directory): New defun. + (shell-bookmark-name-from-buffer-name): New defun. + (shell-bookmark-defaults-function): New defvar. + (shell-bookmark-defaults): New defun. + (shell-bookmark-make-record): New defun. + (shell-bookmark-jump-non-essential): New defvar. + (shell-bookmark-jump): New defun with properties: 'bookmark-handler-type + "Shell", 'bookmark-inhibit 'insert. + +2025-03-06 Eli Zaretskii <eliz@gnu.org> + + Fix redisplay of tab bar when its text properties change + + * src/xdisp.c (update_tab_bar): Use 'equal-including-properties' + to compare previous with the current tab-bar items. (Bug#76760) + +2025-03-06 Visuwesh <visuweshm@gmail.com> + + Add new user option to exclude projects from being remembered + + * lisp/progmodes/project.el (project-list-exclude): Add new user + option to exclude projects from being remembered. + (project-remember-project): Consider the user option above. + (project-switch-project): Use 'project-remember-project' instead. + * doc/emacs/maintaining.texi (Managing Projects): Mention the new user option. + * etc/NEWS: Announce the change. (Bug#76587) + +2025-03-05 Stefan Kangas <stefankangas@gmail.com> + + Rewrite cl--parsing-keywords using backtick + + * lisp/emacs-lisp/cl-seq.el (cl--parsing-keywords): Rewrite using + backtick. + +2025-03-05 Stefan Kangas <stefankangas@gmail.com> + + Remove more redundant 'cl-' prefixes + + * lisp/emacs-lisp/cl-seq.el (cl-substitute-if, cl-substitute-if-not) + (cl-count, cl-sort): Remove more redundant 'cl-' prefixes from + arguments and let-bound variables. + +2025-03-05 Stefan Kangas <stefankangas@gmail.com> + + New user option checkdoc-arguments-missing-flag + + * lisp/emacs-lisp/checkdoc.el + (checkdoc-arguments-missing-flag): New user option. + (checkdoc-this-string-valid-engine): Use above new option. + (checkdoc--argument-missing-flag): Make into obsolete variable alias for + above new option. + +2025-03-05 Stefan Kangas <stefankangas@gmail.com> + + Add more tests for cl-seq.el + + * test/lisp/emacs-lisp/cl-seq-tests.el (cl--oddp-safe) + (cl-subst-if-test, cl-subst-if-not-test, cl-nsubst-test) + (cl-nsubst-if-test, cl-nsubst-if-not-test, cl-sublis-test) + (cl-nsublis-test, cl-tree-equal-test): New tests. + +2025-03-05 Stefan Monnier <monnier@iro.umontreal.ca> + + (pp-fill): Fix bug#76715 + + * lisp/emacs-lisp/pp.el (pp-fill): Don't break before `.` within symbols. + * test/lisp/emacs-lisp/pp-tests.el (pp-tests--bug76715): New test. + +2025-03-05 Juri Linkov <juri@linkov.net> + + Improve treesit settings for java-ts-mode (bug#73404, bug#76493) + + * lisp/progmodes/java-ts-mode.el (java-ts-mode): + Add the 'list' thing to 'treesit-thing-settings'. + Set 'treesit-outline-predicate'. + +2025-03-05 Juri Linkov <juri@linkov.net> + + Improve treesit settings for typescript/tsx-ts-mode (bug#73404) + + * lisp/progmodes/typescript-ts-mode.el + (typescript-ts-mode--font-lock-settings): Add @font-lock-type-face + for 'internal_module' with 'identifier'. + (typescript-ts-mode--defun-type-regexp): New variable with + "internal_module" and "interface_declaration". + (typescript-ts-mode--defun-name): New function that uses + 'js--treesit-defun-name' and adds "internal_module" and + "interface_declaration". + (typescript-ts-mode--simple-imenu-settings): New variable + like in 'js-ts-mode' with "Namespace" and "Interface" sections. + (typescript-ts-mode--outline-predicate): New variable. + (typescript-ts-base-mode): Set treesit-defun-type-regexp to + typescript-ts-mode--defun-type-regexp, treesit-defun-name-function + to typescript-ts-mode--defun-name, treesit-simple-imenu-settings + to typescript-ts-mode--simple-imenu-settings, + treesit-outline-predicate to typescript-ts-mode--outline-predicate. + Use js--regexp-opt-symbol for treesit-thing-settings. + (tsx-ts-mode): For 'sentence' thing use the same nodes as + js--treesit-sentence-nodes. Use js--regexp-opt-symbol for + treesit-thing-settings. + + * lisp/progmodes/js.el (js--treesit-sentence-nodes): Add + "jsx_opening_element" and "jsx_closing_element" like in html. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--outline-predicate): Add + outline headings for C++ "namespace_definition" and "class_specifier". + +2025-03-05 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 121371a7064 Move java/incrementing-version-code to AndroidManifest.xm... + 8099dc6e3ae Provide an Android version code derived from the Emacs ve... + 59fcb2aa1b2 ; * lisp/register.el (register-use-preview): Doc fix (bug... + 0383937a701 ; Improve documentation of 'shortdoc' + +2025-03-05 Po Lu <luangruo@yahoo.com> + + Permit executing programs with >1024 args on Android + + * src/android.c (MAXARGS): Delete enumerator. + (android_rewrite_spawn_argv): Don't mandate a maximum number of + arguments. + +2025-03-05 Stefan Kangas <stefankangas@gmail.com> + + Make byte-compile-cond-use-jump-table obsolete + + This user option was introduced in 2017, with the rationale: + + "This is a workaround for when `byte-compile-cond-jump-table' + accidentally generates wrong code (hasn't happened so far in my + tests), and should be removed once we're sure there are no issues + with it." https://lists.gnu.org/r/emacs-devel/2017-02/msg00223.html + + There hasn't been any bugs in this area within the last 6 years, and the + few we did see before that were quickly resolved. Let's declare this + variable obsolete now, while keeping its behavior when set to nil. We + can always revert the obsoletion if it turns out to be needed after all. + + * lisp/emacs-lisp/bytecomp.el + (byte-compile-cond-use-jump-table): Declare obsolete. + +2025-03-05 Stefan Kangas <stefankangas@gmail.com> + + Clean up 'cl-' prefixes for local variables + + The 'cl-' prefixes used for let-bound variables and argument names is a + holdover from the dynbind days. They are no longer necessary, and make + the code hard to read. This was partially cleaned up in the past; let's + finish the job now. + + * lisp/emacs-lisp/cl-extra.el (cl--mapcar-many, cl-map, cl-maplist) + (cl-mapc, cl-mapl, cl-mapcan, cl-mapcon, cl-some, cl-every, cl-notany) + (cl-notevery, cl--map-keymap-recursively, cl--map-intervals) + (cl--map-overlays): + * lisp/emacs-lisp/cl-lib.el (cl-mapcar, cl-adjoin, cl-subst) + (cl--do-subst): + * lisp/emacs-lisp/cl-macs.el (cl--parse-loop-clause): + * lisp/emacs-lisp/cl-seq.el (cl-reduce, cl-fill, cl-replace, cl-remove) + (cl-remove-if, cl-remove-if-not, cl-delete, cl-delete-if) + (cl-delete-if-not, cl-remove-duplicates, cl-delete-duplicates) + (cl--delete-duplicates, cl-substitute, cl-substitute-if) + (cl-substitute-if-not, cl-nsubstitute, cl-nsubstitute-if) + (cl-nsubstitute-if-not, cl-find, cl-find-if, cl-find-if-not) + (cl-position, cl--position, cl-position-if, cl-position-if-not) + (cl-count, cl-count-if, cl-count-if-not, cl-mismatch, cl-search) + (cl-sort, cl-stable-sort, cl-merge, cl-member, cl-member-if) + (cl-member-if-not, cl--adjoin, cl-assoc, cl-assoc-if, cl-assoc-if-not) + (cl-rassoc, cl-rassoc-if, cl-rassoc-if-not, cl-union, cl-nunion) + (cl-intersection, cl-nintersection, cl-set-difference) + (cl-nset-difference, cl-set-exclusive-or, cl-nset-exclusive-or) + (cl-subsetp, cl-subst-if, cl-subst-if-not, cl-nsubst, cl-nsubst-if) + (cl-nsubst-if-not, cl-sublis, cl--sublis-rec, cl-nsublis) + (cl--nsublis-rec, cl-tree-equal, cl--tree-equal-rec): Clean up 'cl-' + prefixes for let-bound variables and arguments. + +2025-03-04 Stefan Kangas <stefankangas@gmail.com> + + Avoid rare warning when byte-compiling cl-loaddefs.el + + * lisp/emacs-lisp/cl-extra.el: Add autoloaded declare-function to avoid + rare byte-compilation warning. + Problem reported by Eli Zaretskii <eliz@gnu.org>. + +2025-03-04 Philipp Stephani <p.stephani2@gmail.com> + + Make Emacs buildable with -std=c11. + + With -std=c11, GCC doesn't recognize 'asm' as a keyword, see + https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html and + https://gcc.gnu.org/onlinedocs/gcc/Alternate-Keywords.html. Use __asm__ + instead. + + * src/lisp.h (flush_stack_call_func): Use __asm__ instead of asm. + +2025-03-04 Daniel Colascione <dancol@dancol.org> + + Add ns-click-through option to control activation click handling + + * src/nsterm.m (acceptsFirstMouse): + Use ns_click_through variable instead of always returning YES. + (syms_of_nsterm): Define ns-click-through variable. + + * lisp/cus-start.el: Add customization definition for ns-click-through. + + * etc/NEWS: Document the new option. + +2025-03-04 Eli Zaretskii <eliz@gnu.org> + + Fix 'etc/DOC' for a few functions/variables + + * src/term.c (Ftty_frame_at): + * src/menu.c (syms_of_menu) <x-popup-menu-function>: + * src/dispnew.c (Fredisplay): Fix "doc:". The extra blank was + preventing 'make-docfile' from recognizing the functions and + variables and extracting their documentation to 'etc/DOC'. + (Bug#76722) + +2025-03-04 Ben Simms <ben@bensimms.moe> + + Support colored stipples on Cocoa NS (Bug#73384) + + On Cocoa builds of NS Emacs, stipples are now rendered + using masked CGImages instead of patterned NSColors so that + stipples now render with color. + * src/nsimage.m ([EmacsImage stippleMask:]): Use a CGImageMask to + store the stipple mask when building for Cocoa. + * src/nsterm.m (ns_maybe_dumpglyphs_background): Perform a masked + fill to draw stipples when building for Cocoa. + (ns_draw_stretch_glyph_string): Perform a masked fill to draw + stipples when building for Cocoa. + +2025-03-04 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 1b80bc67aad ; * doc/emacs/android.texi (Android Software): Minor mark... + dcfbf7d1863 ; * etc/PROBLEMS: Document the same problem here. + b09bbf22afd Document requirements respecting XDG MIME databases on An... + 365a91622e0 ; (completion-preview--try-table): Propagate extra proper... + + # Conflicts: + # lisp/completion-preview.el + +2025-03-04 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 7dcf9b71e6f ; Don't document package-x.el + a5fd518d524 ; Document spurious warnings on macOS 15 + 625ed68aeaa Fix the use of xref-window-local-history together with Xr... + 80917727676 completing-read-multiple: Fix support for ":" as separator + 38cc36a3753 ; Improve docstring of cl-check-type + +2025-03-04 Paul Eggert <eggert@cs.ucla.edu> + + Revert “Avoid some union buffered_input_event uses” + + Revert my commit 29a9fd4f4ba17822eca0f00c2037da3868bd874e + and the following commit 1ec0889e7b786d79351cee3ed4964d82295f059f. + This fixes a bug where ‘emacs -nw’ would sometimes freeze when Emacs is + configured with ‘--with-pgtk --enable-link-time-optimization + --disable-gc-mark-trace’ on GNU/Linux x86-64 (Bug#76729). + As it is not yet clear whether this freeze is due to an Emacs bug that + I introduced, or due to GCC bug 117423 + <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117423>, + play it safe for now and revert to the previous state. + +2025-03-04 Sean Whitton <spwhitton@spwhitton.name> + + Fix unwanted revert file prompt after repeated vc-ediff (bug#11605) + + * lisp/vc/ediff-vers.el (vc-find-revision-no-save): Declare. + (ediff-vc-internal, ediff-vc-merge-internal): Bind + vc-find-revision-no-save instead of calling + ediff-delete-version-file (bug#11605). + (ediff-delete-version-file): Delete. + +2025-03-04 Stefan Monnier <monnier@iro.umontreal.ca> + + (advice--make-nadvice-docstring): Rename + + * lisp/emacs-lisp/nadvice.el (advice--make-nadvice-docstring): Rename + from `nadvice--make-docstring`, to stick to the `advice-` namespace. + Update all callers. + +2025-03-04 Stefan Kangas <stefankangas@gmail.com> + + Update Makefile and docs for new Spanish refcards + + * etc/refcards/Makefile (PDF_SPANISH, PS_SPANISH): New variables. + (PDF_TARGETS): Use above new variables. + (spanish, spanish-ps): New targets for Spanish translation. (Bug#76300) + * admin/release-process: + * etc/refcards/README: Document new Spanish translation. + +2025-03-04 Elías Gabriel Pérez <eg642616@gmail.com> + + Add Spanish translation for survival.tex + + * etc/refcards/es-survival.tex: New file. (Bug#76300) + +2025-03-04 Elías Gabriel Pérez <eg642616@gmail.com> + + Add Spanish translation for refcard.tex + + * etc/refcards/es-refcard.tex: New file. (Bug#76300) + +2025-03-04 Elías Gabriel Pérez <eg642616@gmail.com> + + Add Spanish translation for dired-ref.tex + + * etc/refcards/es-dired-ref.tex: New file. (Bug#76300) + +2025-03-04 Po Lu <luangruo@yahoo.com> + + Render Android hourglass cursor mechanics more consistent with X + + * src/androidterm.c (android_show_hourglass): Always define the + hourglass cursor, but... + (android_hide_hourglass): ... restore the invisible cursor + subsequently, if need be. + (android_toggle_visible_pointer): Do not hide the current cursor + if it is an hourglass. + +2025-03-04 Po Lu <luangruo@yahoo.com> + + Circumvent another styling issue in Android 15 QPR1 + + * java/org/gnu/emacs/EmacsView.java (popupMenu): On Android 15 + and later, reload the default theme before displaying popup + menus. + +2025-03-04 Matthew Bauer <mjbauer95@gmail.com> + + Replace anonymous lambda timers with named functions + + * lisp/emacs-lisp/eldoc.el (eldoc--update, eldoc-schedule-timer): + * lisp/jit-lock.el (jit-lock-context--update) + (jit-lock--antiblink-update): New functions broken out from... + * lisp/emacs-lisp/eldoc.el (eldoc-schedule-timer): + * lisp/jit-lock.el (jit-lock-mode, jit-lock--antiblink-post-command): + ...here. Use them as values for timers, to give them readable names + in 'M-x list-timers'. (Bug#71354) + +2025-03-04 Stefan Kangas <stefankangas@gmail.com> + + Don't accept strings in package-(install|upgrade) + + * lisp/emacs-lisp/package.el (package-install): Revert recent change to + accept string PKG argument. + (package-upgrade): No longer accept string NAME argument. (Bug#72160) + +2025-03-03 Eli Zaretskii <eliz@gnu.org> + + Avoid crashes on MS-Windows on repeated client connections + + * src/w32uniscribe.c (uniscribe_close): Zero out dwrite cache. + Suggested by Richard Copley <rcopley@gmail.com>. (Bug#76121) + +2025-03-03 Eli Zaretskii <eliz@gnu.org> + + Fix MS-Windows build broken by buffered_input_event changes + + * src/keyboard.c (kbd_buffer_store_selection_event_hold): + * src/keyboard.h (kbd_buffer_store_selection_event_hold): Declare + and define only for (HAVE_X11 || HAVE_PGTK). + +2025-03-03 Juri Linkov <juri@linkov.net> + + Improve treesit settings for js-ts-mode (bug#73404) + + * lisp/progmodes/js.el (js--treesit-font-lock-settings): + Add 'class' alongside 'class_declaration'. + (js--treesit-defun-name): Add "variable_declaration" + alongside "lexical_declaration". + (js--treesit-valid-imenu-entry): Add "variable_declaration" + and provide the predicate to 'treesit-node-top-level'. + (js--treesit-sentence-nodes): Add "jsx_attribute" like in html-ts-mode + instead of jsx elements matched in 'js--treesit-list-nodes'. + (js--treesit-list-nodes): Add "jsx_element" and "jsx_self_closing_element" + instead of "_jsx_string". + (js--treesit-simple-imenu-settings): Move "method_definition" to separate + section "Method" from the "Class" section. Add "variable_declaration" + to the "Variable" section. + (js-ts-mode--outline-predicate): New variable. + (js--treesit-defun-type-regexp): Add bos/eos. + (js--treesit-jsdoc-comment-regexp): Add bos/eos. + (js-ts-mode): Set treesit-outline-predicate to + 'js-ts-mode--outline-predicate'. + + * lisp/textmodes/mhtml-ts-mode.el (mhtml-ts-mode--html-defun-name): + Remove unused function. + (mhtml-ts-mode): Use 'js-ts-mode--outline-predicate' in + 'treesit-aggregated-outline-predicate'. + + * lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode--outline-predicate): + Use 'treesit-node-top-level' instead of 'treesit-parent-until'. + +2025-03-03 Stefan Kangas <stefankangas@gmail.com> + + Fix fontification outside hunks in Git patches + + * lisp/vc/diff-mode.el (diff-font-lock-keywords): Don't fontify lines in + Git patches starting with + or - as added/removed, if they are either + before the first hunk, or in the email signature. (Bug#75884) + (diff-buffer-type): Move definition up. + (diff--indicator-added-re, diff--indicator-removed-re): New variables. + (diff--git-preamble-end, diff--git-footer-start) + (diff--indicator-matcher-helper, diff--indicator-added-matcher) + (diff--indicator-removed-matcher): New functions. + * test/lisp/vc/diff-mode-tests.el (diff-mode-test-git-patch) + (diff-mode-test-git-patch/before-first-hunk) + (diff-mode-test-git-patch/signature): New tests. + * test/lisp/vc/diff-mode-resources/git.patch: New file. + +2025-03-03 Stefan Kangas <stefankangas@gmail.com> + + Improve argument type error in load-theme + + * lisp/custom.el (load-theme): Improve error message when passing in a + non-symbol THEME argument. + +2025-03-03 Paul Eggert <eggert@cs.ucla.edu> + + Avoid some union buffered_input_event uses + + Simplify by using separate local vars for struct input_event and + struct selection_input_event, rather than a single local var that + is the union of the two. This makes the code easier to follow by + the human reader, and should help avoid GCC bug 117423 + <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117423> and + therefore work around Emacs bug 76559 <https://bugs.gnu.org/76559>. + * src/androidterm.c (handle_one_android_event): + * src/gtkutil.c (xg_widget_key_press_event_cb): + * src/pgtkterm.c (evq_flush): + * src/xterm.c (handle_one_xevent): Use struct input_event and + kbd_buffer_store_event_hold, or struct selection_input_event and + kbd_buffer_store_selection_event_hold, rather than union + buffered_input_event and union buffered_input_event. + * src/keyboard.c (beware_long_paste, maybe_quit_while_no_input): + New functions, broken out from kbd_buffer_store_buffered_event. + (kbd_buffer_store_event_hold): Define here, with a simplified + version of the body of the old kbd_buffer_store_buffered_event, + rather than defining in keyboard.h. Specialize to struct + input_event. + (kbd_buffer_store_selection_event_hold): New function; it is + a simplified version of the old kbd_buffer_store_buffered_event, + specialized to struct selection_input_event. + (is_ignored_event_kind): Accept enum event_kind instead of + union buffered_input_event. All callers changed. + * src/keyboard.h (kbd_buffer_store_event_hold): + Remove definition, as keyboard.c now defines it. + * src/pgtkterm.c (evq_grow_if_needed): New function. + (evq_enqueue, evq_selection_enqueue): Two functions now, + not one. Args are now struct input_event const * or + struct selection_input_event const *, not + union buffered_input_event *. All callers changed. + This lets us simplify the callers so that they need + not use the union. + +2025-03-03 Po Lu <luangruo@yahoo.com> + + Fix styling issues on Android 15 QPR1 + + * java/org/gnu/emacs/EmacsView.java (EmacsView): Guarantee that + frame views are created with the correct theme. + + * java/res/values-v20/style.xml (EmacsStyle): + + * java/res/values-v29/style.xml (EmacsStyle): Disable a swiping + gesture enabled on certain Android systems. + + * java/res/values-v35/style.xml: Rename from `styles'.xml. + +2025-03-03 Mattias Engdegård <mattiase@acm.org> + + * lisp/wid-edit.el (widget-get): Make faster. + +2025-03-03 Mattias Engdegård <mattiase@acm.org> + + Strengthen widget-get/put tests + + * test/lisp/wid-edit-tests.el + (widget-test-editable-field-widget-get/put): Test on inherited properties. + +2025-03-03 Yuan Fu <casouri@gmail.com> + + Don't process function range settings in treesit--update-range-1 + + This fixes a bug where we call treesit-query-language on a + function, which happens before the QUERY in a range setting can + be either a function or a query, but we call it with + treesit-query-language before knowing whether it's a query or + function. + + * lisp/treesit.el: + (treesit--update-range-1): Skip function range settings. + (treesit-update-ranges): Handle function range settings here. + +2025-03-02 Paul Eggert <eggert@cs.ucla.edu> + + Pacify GCC in pgtkselect malloc alignment + + This is a better fix for Bug#76414. + * src/pgtkselect.c (pgtk_nalloc): New function. + (pgtk_get_window_property, lisp_data_to_selection_data): Use it. + +2025-03-02 João Távora <joaotavora@gmail.com> + + Eglot: fix invocation of neocmakelsp + + * lisp/progmodes/eglot.el (eglot-server-programs): Fix invocation + of neocmakelsp + +2025-03-02 Felician Nemeth <felician.nemeth@gmail.com> + João Távora <joaotavora@gmail.com> + + Eglot: implement additionalPropertiesSupport for showMessage + + This feature was introduced in LSP v3.16. + + https://microsoft.github.io/language-server-protocol/specifications/lsp/3.18/specification/#window_showMessageRequest + + * lisp/progmodes/eglot.el (eglot-client-capabilities): Set + window/showMessage/messageActionItem/additionalPropertiesSupport to t. + (eglot-handle-request window/showMessageRequest): Return the whole + selected MessageActionItem, not just its title. + +2025-03-02 Daniel Colascione <dancol@dancol.org> + + Add auto-margin enable/disable to term + + * test/lisp/term-tests.el (term-line-wrap-no-auto-margins): add test + + * lisp/term.el (term-auto-margins): new variable + (term-mode): documentation + (term-termcap-format): mention auto-margins flag + (term-emulate-terminal): support it + (term-reset-terminal): reset it + (term-handle-ansi-escape): notice it + + * etc/e/eterm-color.ti: add auto margin capability + + * etc/e/README: fix build documentation + + * etc/NEWS: mention auto-margins + +2025-03-02 Juri Linkov <juri@linkov.net> + + Adapt recent css-ts-mode changes to mhtml-ts-mode + + * lisp/textmodes/css-mode.el (css--treesit-thing-settings): + (css-ts-mode--outline-predicate): New variables. + (css-ts-mode): Set treesit-outline-predicate. + + * lisp/textmodes/mhtml-ts-mode.el (mhtml-ts-mode--treesit-thing-settings): + Use css--treesit-thing-settings and css--treesit-defun-type-regexp. + (mhtml-ts-mode): Use 'css-ts-mode--outline-predicate' for + 'treesit-aggregated-outline-predicate'. + +2025-03-02 Juri Linkov <juri@linkov.net> + + Improve treesit settings for css-ts-mode (bug#73404) + + * lisp/textmodes/css-mode.el (css--treesit-settings): Add + "@supports" and '(at_keyword)' to 'keyword', 'keyframe_block' to + 'selector', 'keyframes_name' to 'query'. + (css--treesit-defun-name): Support "keyframe_block", + "keyframes_statement" and "supports_statement" as well. + (css--treesit-simple-imenu-settings): Add "keyframes_statement", + "keyframe_block", "supports_statement". + (css--treesit-defun-type-regexp): Add "keyframe_block". + (css-ts-mode): Add 'treesit-thing-settings'. + +2025-03-02 Stefan Kangas <stefankangas@gmail.com> + + Bump python.el package version to 0.29 + + * lisp/progmodes/python.el: Bump package version to 0.29. + +2025-03-02 Stefan Kangas <stefankangas@gmail.com> + + Bump python.el requirement to Emacs 29.1 + + * lisp/progmodes/python.el: Require Emacs 26.3, flymake 1.0 and + project 0.1. (Bug#75526) + +2025-03-02 Stefan Kangas <stefankangas@gmail.com> + + Don't warn when calling hl-lock-mode from init file + + This was a compatibility kluge introduced in Emacs 22.1, twenty years + ago. It's fair to assume that any former Emacs 21 user have seen this + warning already, and will have updated their init file. So remove it. + + * lisp/hi-lock.el (hi-lock-mode): Don't warn when calling plain + hi-lock-mode from init file. + (hi-lock-archaic-interface-message-used) + (hi-lock-archaic-interface-deduce): Remove associated variables. + +2025-03-02 Eli Zaretskii <eliz@gnu.org> + + New commands to convert ASCII to fullwidth characters and back + + * lisp/textmodes/text-mode.el (text-mode--fullwidth-table): New + variable. + (text-mode--get-fullwidth-table): New internal function. + (fullwidth-region, halfwidth-region, fullwidth-word) + (halfwidth-word): New commands. (Bug#71822) + + * etc/NEWS: Announce new commands. + +2025-03-02 Po Lu <luangruo@yahoo.com> + + Specifically report attempts to exit Emacs during test execution + + * test/infra/android/test-driver.el (ats-in-eval): Fix typo in + doc string. + (ats-eval-as-printed, ats-eval-serial, ats-eval-do-decode): + Render buffer-local. + (ats-executing-form): New variable. + (ats-process-filter): Bind the same around `eval'. + (ats-kill-emacs-function): New function; register it to execute + when Emacs exits. + +2025-03-02 Stefan Kangas <stefankangas@gmail.com> + + Fix a vc test for Breezy by setting $HOME + + * test/lisp/vc/vc-tests.el (vc--fix-home-for-bzr): New macro. + (vc-test--create-repo, vc-test--register, vc-test--working-revision) + (vc-test--checkout-model, vc-test--rename-file) + (vc-test--version-diff): Fix test for Breezy by setting HOME to a + temporary directory. (Bug#70195) + +2025-03-02 Po Lu <luangruo@yahoo.com> + + Don't byte compile early-init.el + + * test/infra/android/early-init.el (frame-initialize): Remove + redundant debugging printouts. + +2025-03-02 Po Lu <luangruo@yahoo.com> + + Exclude files under `infra' from automatic testing + + * test/Makefile.in (ELFILES): Exclude files within `infra'. + Reported by Stefan Kangas <skangas@gmail.com>. + +2025-03-02 Po Lu <luangruo@yahoo.com> + + Run Android tests in the initial frame + + * test/infra/android/early-init.el: New file. + + * test/infra/android/test-controller.el (ats-connect): Upload + `early-init.el' to the staging directory and configure that + directory as the Emacs instance's initialization directory. + (ats-run-test): Always append to the test buffer. Execute tests + within terminal-frame. + (ats-run-all-tests): Gracefully respond to errors. + (ats-cmd-error): New function. + (ats-execute-tests-batch): Accept a number of command line + arguments. + +2025-03-02 Po Lu <luangruo@yahoo.com> + + Enable kmacro-call-macro to function in some circumstances + + * lisp/kmacro.el (kmacro-call-macro): Enable to function when + the selected frame's terminal is different from that most + recently consulted by the event loop. + +2025-03-02 Stefan Kangas <stefankangas@gmail.com> + + Mark echistory.el as obsolete + + * lisp/obsolete/echistory.el: Add Obsolete-since header. + * etc/TODO: Delete echistory. + * etc/NEWS: Announce above obsoletion. (Bug#76506) + +2025-03-02 Stefan Kangas <stefankangas@gmail.com> + + Move echistory.el to lisp/obsolete + + * lisp/echistory.el: Move from here... + * lisp/obsolete/echistory.el: ...to here. (Bug#76506) + +2025-03-02 Stefan Kangas <stefankangas@gmail.com> + + Document apply-partially as inefficient + + * doc/lispref/functions.texi (Calling Functions): Document that it is + less inefficient than a regular 'lambda'. + * lisp/subr.el (apply-partially): Adjust documentation like above and + remove compiler macro. + Ref: https://lists.gnu.org/r/emacs-devel/2025-03/msg00024.html + +2025-03-02 Stefan Kangas <stefankangas@gmail.com> + + Bump python.el requirement to Emacs 26.3 + + * lisp/progmodes/python.el: Require Emacs 26.3, flymake 1.0 and + project 0.1. (Bug#75526) + +2025-03-02 Pranshu Sharma <pranshu@bauherren.ovh> + + Pass buffer as object in gnus-highlight-selected-tree + + * lisp/gnus/gnus-salt.el (gnus-highlight-selected-tree): Correctly + pass buffer object instead of string. (Bug#75557) + +2025-03-02 Stefan Kangas <stefankangas@gmail.com> + + Make package-install accept a string as well + + * lisp/emacs-lisp/package.el (package-install): Allow passing a string + instead of a symbol. (Bug#72160) + (package-upgrade): Improve docstring. + + * test/lisp/emacs-lisp/package-tests.el + (package-test-install-single-from-archive/string-type): New test. + +2025-03-02 Stefan Kangas <stefankangas@gmail.com> + + Improve use-package error message on wrong type + + * lisp/use-package/use-package-core.el (use-package): Improve error + message when passed the wrong type. (Bug#72160) + +2025-03-02 David Ponce <da_vid@orange.fr> + + Simplify and speed up widget-get implementation + + * lisp/wid-edit.el (widget-get): Simplify and speed up. + Ref: https://lists.gnu.org/r/emacs-devel/2025-03/msg00010.html + +2025-03-02 David Ponce <da_vid@orange.fr> + + Correctly return passed value from widget-put + + * lisp/wid-edit.el (widget-get-indirect): Return passed value to stay + consistent with old C implementation. (Bug#76664) + +2025-03-01 Pip Cet <pipcet@protonmail.com> + + Improve instructions for running with -fsanitize=address (bug#76393) + + * etc/DEBUG (ASAN_OPTIONS): Add 'detect_stack_use_after_return=0' + requirement. Remove obsolete unexec commentary. + +2025-03-01 Daniel Colascione <dancol@dancol.org> + + Make Emacs respond to NS activation clicks + + * src/nsterm.m (acceptsFirstMouse): Opt into receiving mouse events that + activate the window. (bug#76629) + +2025-03-01 Eli Zaretskii <eliz@gnu.org> + + Provide tool-tip display delays on TTY frames + + * lisp/tooltip.el (tooltip-show, tooltip-hide) + (tooltip-show-help): Support delayed tool-tip display on TTY + frames as well. (Bug#76653) + + * etc/NEWS: Announce the behavior change. + +2025-03-01 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 0460177451d ; * lisp/progmodes/java-ts-mode.el (treesit-node-end): De... + 8481170eb29 Fix 'M-q' in 'makefile-mode' + 44a770b8713 ; Improve documentation of 'rmail-movemail-program' + + # Conflicts: + # lisp/progmodes/java-ts-mode.el + +2025-03-01 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + b531bbf73ef Fix go-ts-mode const_spec highlighting (Bug#76330) + bd1d6761f4c ; Document what happens when 'display' and 'invisible' pr... + 526eeedf889 keymaps.texi: Move "Changing Key Bindings" section up + 7ec6531c7bd keymaps.texi: Move "Key Sequences" section down + 8b804011275 Improve process-get/process-put docstrings + 73c646b7771 Merge branch 'emacs-30' of git.sv.gnu.org:/srv/git/emacs ... + 0af5c574998 Fix recent change in diff-no-select + c8cec840d79 Prevent rare freeze on Android 4.2 through 4.4 + +2025-03-01 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 5247da2e3cd * lisp/proced.el (proced-<): Check, that NUM1 and NUM2 ar... + +2025-03-01 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 6f5c322f597 Recommend secure-hash in md5 docstring + 1352b184f3f Improve docstring of add-hook and remove-hook + +2025-03-01 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 62b3d3136fa Fix fns-tests-collate-strings failure with musl + 840c6824589 ; (completion-preview-complete): Fix bug#76606 + fa42626a6a8 ; Fix indentation in cl.texi example + 7ff806da496 ; Fix my last commit + +2025-03-01 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + f88dc0f2f9d ; Fix documentation of 'buffer-text-pixel-size' + 734986349fd ; Minor Android documentation improvements + a90da899034 ; Fix up emacs-lisp-mode docstring + 58c7acb5554 ; Fix completion-fail-discreetly docstring typo. + 02c830ba22b Fix ert-font-lock macro signatures + 0c6b8643aec Fix a typo in 'window_text_pixel_size' + 8a8c25eaccd ; Add Rudolf Schlatte to authors.el + 94c0ea39a5a * doc/misc/efaq.texi (New in Emacs 30): Fix typo. (Bug#7... + 0be5f9115ec ; * etc/images/README (Files): Add an entry for last-page... + 63adf9dcf53 ; Reflow some cl-lib docstrings + 99253f79703 ; * etc/TODO: New section "Make it easier to contribute". + + # Conflicts: + # lisp/emacs-lisp/cl-macs.el + +2025-03-01 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 563b6f94511 Constant highlighting no longer captures Java annotations + e15dcb2db5c Improve wording of lsh docstring + 0cc651acddb ; * admin/check-doc-strings: Add note for future developm... + 3c9b1c3cd18 Don't document deleted xwidget functions + 9e9b78dda94 ; Improve lsh and ash documented argument names + +2025-03-01 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + e9c9ed1f468 Minor refactoring in admin/admin.el + a8b1726487b ; * admin/make-tarball.txt: Copy edits. + +2025-03-01 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 8ac894e2246 Release Emacs 30.1 + bcba098505e ; * ChangeLog.4: Update. + +2025-03-01 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 2dbf7d0b1b2 Use character position for ranges in treesit_sync_visible... + +2025-03-01 Tassilo Horn <tsdh@gnu.org> + + doc-view: Fix error during revert in editing mode + + When in editing mode in a doc-view buffer and then reverting (which can + happen automatically when editing OpenDocument contents), we errored in + the advide function doc-view--revert-buffer because the local + doc-view--buffer-file-name has been killed when switching to the editing + mode. + + Also restore doc-view-minor-mode after reverting during being in the + editing mode. + + * lisp/doc-view.el (doc-view--revert-buffer): Check that + 'doc-view--buffer-file-name' is non-nil. + (doc-view-minor-mode): Add re-enabling function to + 'revert-buffer-restore-functions'. + +2025-03-01 Trevor Murphy <trevor.m.murphy@gmail.com> + + Ignore dedicated windows in 'display-buffer-reuse-mode-window' + + Ignore the dedicated windows unless the dedicated window is + already displaying the buffer-to-be-displayed. In that case, + the window may be reused, according to the setting of + 'inhibit-same-window'. + * lisp/window.el (display-buffer-reuse-mode-window): Check + 'window-dedicated-p' before pushing the candidate window onto + the stack. (Bug#76216) + +2025-03-01 Eli Zaretskii <eliz@gnu.org> + + Save IELM input history on "C-c C-c" + + * lisp/ielm.el (ielm--write-history-on-interrupt): New function. + (inferior-emacs-lisp-mode): Install it as buffer-local value of + the 'interrupt-process-functions' hook. (Bug#76585) + + * etc/NEWS: Announce the behavior change. + +2025-03-01 Eli Zaretskii <eliz@gnu.org> + + Add a portable test for ffap parsing path-style directory lists + + * test/lisp/ffap-tests.el (ffap-test-path-unix): Renamed from + 'ffap-test-path'. + (ffap-test-path-portable): New test, which should work on all + systems. + +2025-03-01 Łukasz Stelmach <stlman@poczta.fm> + + Fix handling of delta values with negative month field + + * lisp/calendar/time-date.el (decoded-time-add): If the new + variable is less then zero, the year needs to be decremented + by quotient of new and 12 increased by one. + * test/lisp/calendar/time-date-tests.el (test-decoded-add): + Add applicable test cases. (Bug#68969) + +2025-03-01 Stefan Kangas <stefankangas@gmail.com> + + grep: Signal error if unable to access directory + + * lisp/progmodes/grep.el (lgrep, rgrep): grep: Signal error if unable to + access directory, instead of just trying to use default-directory, + because that level of DWIMishness is confusing. (Bug#71078) + +2025-03-01 Stefan Kangas <stefankangas@gmail.com> + + Make '(setf (process-get ...) VAL)' return VAL + + * lisp/emacs-lisp/gv.el (process-get): Return only the last value + when set as a generalized variable. (Bug#76643) + +2025-02-28 Stefan Monnier <monnier@iro.umontreal.ca> + + * test/src/editfns-tests.el (editfns--replace-region): New test + + This test fails, sadly, because `replace-buffer-contents` is not + careful enough to something like `replace_range`. + +2025-02-28 Stefan Monnier <monnier@iro.umontreal.ca> + + (internal--c-header-file-path): Move to ffap.el + + This function is used so rarely that it's really best not to + preload it. + + * lisp/ffap.el (ffap-url-regexp): Precompute. + (ffap-c-path): Use `ffap--c-path`. + (ffap--gcc-is-clang-p, ffap--c-path): Move and rename from subr.el's + * lisp/subr.el (internal--gcc-is-clang-p) + (internal--c-header-file-path): Move to ffap.el and rename. + + * lisp/man.el (Man-header-file-path): Default to a new value that + delegates to ffap. + (Man-header-file-path): Obey that new value. + + * lisp/emacs-lisp/ert-x.el (ert-gcc-is-clang-p): Use `ffap--gcc-is-clang-p`. + + * test/lisp/ffap-tests.el (ffap-tests--c-path) + (ffap-tests--c-path/gcc-mocked, ffap-tests--c-path/clang-mocked): + Move and rename from `subr-tests.el`. + * test/lisp/subr-tests.el (subr-tests-internal--c-header-file-path) + (subr-tests-internal--c-header-file-path/gcc-mocked) + (subr-tests-internal--c-header-file-path/clang-mocked): + Move to `ffap-tests.el` and rename. + +2025-02-28 Eshel Yaron <me@eshelyaron.com> + + (completion-preview-sort-function): Refine ':type'. + + * lisp/completion-preview.el + (completion-preview-sort-function): Add some specific sort + functions as available choices for this user option. + + Suggested by Robert Pluim <rpluim@gmail.com>. + +2025-02-28 Stefan Kangas <stefankangas@gmail.com> + + Add compiler macro to apply-partially + + * lisp/subr.el (apply-partially): Add compiler macro. + +2025-02-28 Stefan Kangas <stefankangas@gmail.com> + + Lift widget functions from C to Lisp + + In the mid-1990s, these functions were moved from Lisp to C to + "improve performance". However, Moore's Law, and perhaps other + improvements too, has made this rationale irrelevant. + + On this machine, with --native-compilation=no, I observed only a + slight ~4% performance difference. For example, displaying a buffer + full of widgets (e.g., 'M-x customize RET browse-url RET') takes 4ms + here, meaning the performance gap is under 0.1ms. Even on less + powerful machines, this difference would remain imperceptible. Given + this, let's lift these functions back to to Lisp, which offers the + usual benefits. + + We already have solid test coverage, but let's add a more focused test + for 'widget-get' and 'widget-put' to be thorough. + + * lisp/wid-edit.el (widget-put, widget-get, widget-apply): Move to + Lisp from... + * src/fns.c (Fwidget_put, Fwidget_get, Fwidget_apply): ...here. + (syms_of_fns): Remove defsubrs for the above functions. + * test/lisp/wid-edit-tests.el + (widget-test-editable-field-widget-get/put): New test. + +2025-02-28 Eli Zaretskii <eliz@gnu.org> + + Fix the values and documentation of 'printable-chars' table + + * src/character.c (syms_of_character) <printable-chars>: Doc fix. + + * lisp/international/characters.el (printable-chars): Fix values + for non-ASCII characters. + + * doc/lispref/nonascii.texi (Character Properties): Add + cross-reference for what is a printable character. + * doc/lispref/display.texi (Usual Display): + * doc/lispref/searching.texi (Char Classes): Add indexing. + (Bug#76611) + +2025-02-28 Po Lu <luangruo@yahoo.com> + + Adapt process-tests to Android + + * src/android.c (android_init_thread_events) + (android_run_select_thread): Guarantee that the select thread is + initialized before returning. + + * test/src/process-tests.el + (process-tests/fd-setsize-no-crash/make-process) + (process-tests/fd-setsize-no-crash/make-pipe-process) + (process-tests/fd-setsize-no-crash/make-network-process) + (process-tests/fd-setsize-no-crash/make-serial-process): Skip on + Android. + +2025-02-28 Eli Zaretskii <eliz@gnu.org> + + Fix 'internal--c-header-file-path' + + * lisp/subr.el (internal--c-header-file-path): Fix for MS-Windows: + don't prepend the (usually non-existent) "/usr/include", and run + each directory through 'expand-file-name' to remove the many ".." + elements and mirror any backslashes. Invoke "clang" if "gcc" is + not available or is actually clang. + + * test/lisp/subr-tests.el + (subr-tests-internal--c-header-file-path): Fix for MS-Windows: + test the path by looking for stdio.h, and expand all directory + names to compare to expected results. + +2025-02-28 Po Lu <luangruo@yahoo.com> + + Fully support Lisp threads on Android + + * src/android.c (struct android_thread_event_queue): New + structure. Move global pselect arguments, mutexes, and + semaphores, and pipes here. + (struct android_event_queue) <select_mutex, select_thread>: + Remove to the above-named struct. + (android_init_thread_events, android_finalize_thread_events) + (android_get_poll_thread): New functions. + (android_run_select_thread): Accept a set of mutexes and + thread-local data as the first argument, and operate with them + rather than globals. + (android_handle_sigusr1): Rename to + `android_handle_poll_signal'. Set thread-specific cancellation + indicator. + (android_init_events): Properly abort after a fatal condition. + Enable interruptible polling on Android 5.1 and later, not 4.2. + (android_select): Never check for queries here, but in + thread_select, if threads are enabled. Adapt to per-thread + polling threads and only enable interruptible polling on Android + 5.1 and later. + (android_before_select): New function. + + * src/android.h (android_before_select): New declaration. + + * src/thread.c (thread_select): Call `android_before_select' + before the global lock is released. + +2025-02-28 Eshel Yaron <me@eshelyaron.com> + + Make 'completion-preview-sort-function' a defcustom + + * lisp/completion-preview.el + (completion-preview-sort-function): Define and document it + as a user option. + * etc/NEWS: Announce. + +2025-02-28 Michael Albinus <michael.albinus@gmx.de> + + * lisp/net/tramp.el (tramp-mode): Set to nil on MS-DOS. + +2025-02-28 Stefan Kangas <stefankangas@gmail.com> + + Remove Emacs 23 compat code from ox-publish.el + + * lisp/org/ox-publish.el (org-publish-timestamp-filename): Remove + Emacs 23 compat code. + +2025-02-28 Stefan Kangas <stefankangas@gmail.com> + + Don't use incf/decf in eldoc.el + + * lisp/emacs-lisp/eldoc.el (eldoc--invoke-strategy): Don't use incf or + decf. This is a :core package and supports Emacs 26.3. (Bug#76604) + +2025-02-28 Stefan Kangas <stefankangas@gmail.com> + + Add test for apply-partially + + * test/lisp/subr-tests.el (subr-test-apply-partially): New test. + +2025-02-28 Yuan Fu <casouri@gmail.com> + + Support alternative range function for tree-sitter range settings + + Some embedded parser needs to exclude child nodes from the + range, like markdown-inline. So I added this keyword that + allows users to customize the range for the embedded parser. + This can also be potentially useful for markdown comments in + rust, for example, because we want to exclude the comment + starters (//) from the embedded markdown parser. + + * lisp/treesit.el (treesit-query-range): + (treesit-query-range-by-language): Add new parameter RANGE-FN. + (treesit-range-settings): Add new field RANGE-FN. + (treesit-range-rules): Add new keyword RANGE-FN. + (treesit-range-fn-exclude-children): New function. + (treesit--update-ranges-non-local): + (treesit--update-ranges-local): + (treesit--update-range-1): Support the RANGE-FN field. + +2025-02-28 Yuan Fu <casouri@gmail.com> + + Make treesit-node-at take advantage of the embed-level property + + * lisp/treesit.el (treesit-node-at): Select the local parser + with the highest embed-level. + +2025-02-28 Yuan Fu <casouri@gmail.com> + + Rework range facility in treesit.el to support arbitrary nesting + + Make use of the newly added embed-level parser property, we now + iterativeLy create/update embedded parsers at each embed level, + allowing arbitrary levels of nesting. + + At the beginning, we start with the primary parser. We query it + with each range settings, gets some ranges and their + corresponding language. Then we create the first level of + embedded parsers using the ranges and language we got. This is + one iteration. For the next iteration/level, we start with the + embedded parsers we create/updated in the previous + iteration/level, and query each of them with each of the range + settings, creating/updating the next level of embedded parsers. + And we keep doing this until we don't get more matches from the + queries. + + We now also support the :embed keyword in 'treesit-range-rules' + to be a function that returns a language. This allows major + modes like markdown and org mode to support code blocks of which + the language isn't known ahead of time. + + * lisp/treesit.el (treesit-primary-parser): Move to front. + (treesit-query-range-by-language): New function. + (treesit-range-rules): Allow :embed to be a function, update docstring. + (treesit-local-parsers-on): Update docstring. + (treesit--parser-at-level): + (treesit--update-ranges-non-local): New functions. + (treesit--update-ranges-local): Use the new logic, support + :embed being a function. + (treesit--update-range-1): New function, has the meat of + original treesit-update-ranges. + (treesit-update-ranges): Implements the iteration logic using + treesit--update-range-1 to do the actual work. + +2025-02-28 Yuan Fu <casouri@gmail.com> + + Enable treesit-query-capture to return grouped captures + + This is needed for creating embedded parsers for embedded code + blocks of which language cannot be known ahead of time. E.g., + markdown and org mode's code block. + + * src/treesit.c (Ftreesit_query_capture): Add parameter GROUPED. + +2025-02-28 Yuan Fu <casouri@gmail.com> + + Add tree-sitter-parser-embed-level and parent-node + + Add parser properties embed-level and parent-node. They'll be + help us implement arbitrarily nested embeded parser, and + navigation across embedded and host parsers, respectively. + + * src/treesit.c: + (Ftreesit_parser_embed_level): + (Ftreesit_parser_set_embed_level): + (Ftreesit_parser_parent_node): + (Ftreesit_parser_set_parent_node): New functions. + +2025-02-28 Philipp Stephani <p.stephani2@gmail.com> + + Don't overwrite non-local exit symbol and data (Bug#65796). + + The previous approach would incorrectly invalidate the returned module + values if another non-local exit occurred while dealing with a non-local + exit. See Bug#65796. Instead, allocate the values from the usual + environment storage, and return statically-allocated objects if that + fails. + + * src/emacs-module.c (struct emacs_env_private): Turn non-local exit + symbol and data into normal Lisp objects. + (initialize_environment): Initialize them. + (mark_module_environment): Prevent them from being garbage-collected. + (module_signal_or_throw, module_non_local_exit_signal_1) + (module_non_local_exit_throw_1): Adapt uses. + (value_to_lisp): No longer scan for them with module assertions enabled. + (module_out_of_memory_signal, module_out_of_memory_data): New + statically-allocated module values to return in case of allocation + failure. + (syms_of_module): Initialize them. + (module_non_local_exit_get): Allocate module values normally. If that + fails, return statically-allocated values. + + * doc/lispref/internals.texi (Module Nonlocal): Document new behavior. + +2025-02-27 Visuwesh <visuweshm@gmail.com> + + Recommend 'tab-bar-history-mode' over 'winner-mode' + + * lisp/winner.el (winner-mode): + * lisp/tab-bar.el (tab-bar-mode): Update the docstring to + suggest 'tab-bar-history-mode' instead of 'winner-mode' when + using 'tab-bar-mode' instead. (Bug#76439) + +2025-02-27 Vincenzo Pupillo <v.pupillo@gmail.com> + + Fix CSS indentation, added support for CSS 'color_value'. + + * lisp/textmodes/mhtml-ts-mode.el + (mhtml-ts-mode--colorize-css-value): Added 'color_value' node, refactoring. + (mhtml-ts-mode--treesit-font-lock-settings): Added 'color_value' node. + (mhtml-ts-mode--treesit-indent-rules): Removed the old comment and + fixed the CSS indentation rule (bug#76597). + +2025-02-27 Paul Nelson <ultrono@gmail.com> + + Document :continue-only in use-package Info manual + + * doc/misc/use-package.texi (Binding to repeat-maps): Document + :continue-only (bug#74140). + +2025-02-27 Juri Linkov <juri@linkov.net> + + Improve 'treesit-outline-search' + + * lisp/treesit.el (treesit-outline-search): Add optional arg + 'recursive' to avoid infinite recursion when it gets stuck. + + * lisp/textmodes/markdown-ts-mode.el (markdown-ts-mode): + Set buffer-local 'treesit-outline-predicate' to "section". + +2025-02-27 Stephen Berman <stephen.berman@gmx.net> + + Prevent a todo-mode test from running with 'make check' + + * test/lisp/calendar/todo-mode-tests.el + (todo-test-add-and-delete-file): Tag this test as unstable, since + it has been reported to fail unreproducibly (bug#58473) or + reproducibly only on the ZFS filesystem (bug#76381) and the causes + are still unknown. + +2025-02-27 Stephen Berman <stephen.berman@gmx.net> + + Prevent a todo-mode test from running with 'make check' + + * test/lisp/calendar/todo-mode-tests.el + (todo-test-add-and-delete-file): Tag this test as unstable, since + it has been reported to fail unreproducibly (bug#58473) or + reproducibly only on the ZFS filesystem (bug#76381) and the causes + are still unknown. + +2025-02-27 Stephen Berman <stephen.berman@gmx.net> + + Prevent a todo-mode test from running with 'make check' + + * test/lisp/calendar/todo-mode-tests.el + (todo-test-add-and-delete-file): Tag this test as unstable, since + it has been reported to fail unreproducibly (bug#58473) or + reproducibly only on the ZFS filesystem (bug#76381) and the causes + are still unknown. + +2025-02-27 Po Lu <luangruo@yahoo.com> + + Fix drag-and-drop treatment of reused tooltip frames + + * src/androidfns.c (Fx_show_tip): Set `tip_window' to that of + any reused tooltip frame. + + * src/haikufns.c (unwind_create_frame): Return whether the frame + was destroyed, as on X. + (unwind_create_tip_frame, haiku_create_frame, Fx_show_tip): + Synchronize with X. + (do_unwind_create_frame): New function. + (tip_window): Remove unused variable. + + * src/nsfns.m (tip_window, unwind_create_tip_frame): Remove + unused variable `tip_window'. + + * src/pgtkfns.c (pgtk_create_tip_frame): Rename to + pgtk_create_tip_frame. + (Fx_show_tip): Adjust accordingly. Set `tip_window' to that of + any reused tooltip frame. + + * src/w32fns.c (Fx_show_tip): + + * src/xfns.c (Fx_show_tip): Set `tip_window' to that of any + reused tooltip frame. + +2025-02-27 Paul Nelson <ultrono@gmail.com> + + Add :continue-only directive to bind-keys and use-package + + * lisp/bind-key.el (bind-keys-form): Add :continue-only binding. + Fix indentation. + + * lisp/use-package/use-package-bind-key.el + (use-package-normalize-binder): Add check for :continue-only. + + * test/lisp/repeat-tests.el (repeat-tests-bind-keys): + Enable (and correct) test for :continue-only (bug#74140). + +2025-02-27 Gerd Möllmann <gerd.moellmann@gmail.com> + + * src/dispnew.c (rect_intersect): Fix a typo (bug#76592) + +2025-02-26 Eshel Yaron <me@eshelyaron.com> + + Add 'help-echo' hint to completion preview + + * lisp/completion-preview.el + (completion-preview--propertize-for-mouse): New function. + * lisp/completion-preview.el (completion-preview--update) + (completion-preview--show) + (completion-preview-partial-insert) + (completion-preview-complete) + (completion-preview-next-candidate): Use it to propertize + completion preview text with mouse-related properties, + including a new 'help-echo' hint. + +2025-02-26 Eshel Yaron <me@eshelyaron.com> + + Simplify 'completion-preview-active-mode' command tagging + + * lisp/completion-preview.el (completion-preview-insert) + (completion-preview-insert-word) + (completion-preview-insert-sexp) + (completion-preview-complete) + (completion-preview-prev-candidate) + (completion-preview-next-candidate): Use 'interactive' to + associate command with 'completion-preview-active-mode' + instead of using a bespoke 'completion-predicate' property. + (completion-preview-active-p): Declare obsolete. + +2025-02-26 Stefan Monnier <monnier@iro.umontreal.ca> + + (define-ibuffer-op): Minor tweak to Shipmints's patch + + * lisp/ibuf-macs.el (define-ibuffer-op): Evaluate `(active-)opstring` + args when defining the operation rather than every time the operation + is used. Move the `:autoload-end` marker back to the level of `progn`. + +2025-02-26 shipmints <shipmints@gmail.com> + + Improve 'define-ibuffer-op' macro (bug#76222) + + * lisp/ibuf-macs.el (define-ibuffer-op): + Change defun to defalias and place it before the macro-local lets. + * lisp/ibuffer.el: + (ibuffer-do-toggle-lock): Remove declare-function. + (ibuffer-do-toggle-read-only): Remove declare-function. + (ibuffer-do-save): Remove declare-function. + (ibuffer-do-delete): Remove declare-function. + (ibuffer-do-toggle-modified): Remove declare-function. + (ibuffer-do-kill-on-deletion-marks): Remove declare-function. + +2025-02-26 Po Lu <luangruo@yahoo.com> + + Port Eshell tests to Android + + * test/infra/android/test-controller.el (ats-run-test): Run + tests in a temp buffer. + + * test/lisp/eshell/em-alias-tests.el (ert, em-alias) + (eshell-tests-helpers): + + * test/lisp/eshell/em-basic-tests.el (em-basic) + (eshell-tests-helpers): + + * test/lisp/eshell/em-cmpl-tests.el (em-unix) + (eshell-tests-helpers): + + * test/lisp/eshell/em-dirs-tests.el (em-dirs) + (eshell-tests-helpers): + + * test/lisp/eshell/em-extpipe-tests.el (ert-x) + (eshell-tests-helpers): + + * test/lisp/eshell/em-glob-tests.el (ert, eshell-tests-helpers): + + * test/lisp/eshell/em-hist-tests.el (eshell) + (eshell-tests-helpers): + + * test/lisp/eshell/em-pred-tests.el (em-pred) + (eshell-tests-helpers): + + * test/lisp/eshell/em-prompt-tests.el (em-prompt) + (eshell-tests-helpers): + + * test/lisp/eshell/em-script-tests.el (em-script) + (eshell-tests-helpers): + + * test/lisp/eshell/em-unix-tests.el (ert-x) + (eshell-tests-helpers): + + * test/lisp/eshell/esh-arg-tests.el (eshell) + (eshell-tests-helpers): + + * test/lisp/eshell/esh-cmd-tests.el (eshell) + (eshell-tests-helpers): + + * test/lisp/eshell/esh-ext-tests.el (eshell) + (eshell-tests-helpers): + + * test/lisp/eshell/esh-io-tests.el (eshell) + (eshell-tests-helpers): + + * test/lisp/eshell/esh-mode-tests.el (em-prompt) + (eshell-tests-helpers): + + * test/lisp/eshell/esh-proc-tests.el (em-prompt) + (eshell-tests-helpers): + + * test/lisp/eshell/esh-util-tests.el (esh-util) + (eshell-tests-helpers): + + * test/lisp/eshell/esh-var-tests.el (eshell) + (eshell-tests-helpers): + + * test/lisp/eshell/eshell-tests.el (esh-mode) + (eshell-tests-helpers): Load `eshell-tests-helpers' from the + resource directory. + + * test/lisp/eshell/resources/eshell-tests-helpers.el: Move from + `test/lisp/eshell'. + +2025-02-26 Mauro Aranda <maurooaranda@gmail.com> + + Avoid display bugs after editable-field widgets + + * lisp/wid-edit.el (widget-specify-button): Don't add an + invisible space before the button to avoid bugs that surface + with the widget-field face. The Widget library is not + the one that puts a :box attribute for the button face, and we + can't control what library users put after editable-field + widgets. + + (widget-specify-field): Rather, add the invisible space here, + after the newline. That way, we protect whatever comes after + the editable-field widget. (Bug#51550) + +2025-02-26 Stefan Kangas <stefankangas@gmail.com> + + Revert "Correctly fill generated ChangeLog entries" + + This reverts commit 7fe90ca77d0c21165cb9d98d5c42d6b6c6275ef3. + +2025-02-26 Stefan Kangas <stefankangas@gmail.com> + + Make define-global-minor-mode alias obsolete + + * lisp/emacs-lisp/easy-mmode.el (define-global-minor-mode): Make alias + for old name obsolete, just in time for its 20th anniversary. + * test/lisp/emacs-lisp/lisp-mode-tests.el (test-font-lock-keywords): + * lisp/progmodes/subword.el (global-subword-mode) + (global-superword-mode): Don't use above obsolete name. + * lisp/emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression) + (lisp-fdefs): Remove syntax highlighting for obsolete name. + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--make-autoload): + Add comment mentioning the obsolete status of above alias. + * doc/lispref/loading.texi (Autoload): Don't document obsolete name. + +2025-02-26 Stefan Kangas <stefankangas@gmail.com> + + Don't enable minor modes in diff-add-log-current-defuns + + * lisp/vc/diff-mode.el (diff-add-log-current-defuns): Don't run mode + hooks when enabling major mode hooks. That fails if, for example, + paredit-mode is on emacs-lisp-mode-hook and it signaled due to + unbalanced parens. + +2025-02-26 Po Lu <luangruo@yahoo.com> + + Adapt a number of regression tests to Android + + * test/infra/android/test-controller.el (ats-run-test): Strip + text properties from value string. Inhibit text conversion. + + * test/lisp/emacs-lisp/find-func-tests.el + (find-func-tests--locate-symbols): + + * test/lisp/emacs-lisp/rmc-tests.el + (test-rmc--add-key-description) + (test-rmc--add-key-description/with-attributes) + (test-rmc--add-key-description/non-graphical-display) + (test-read-multiple-choice, test-read-multiple-choice-help): + Skip on Android in some wise or another. + +2025-02-26 Po Lu <luangruo@yahoo.com> + + Enable auto-revert-tests to pass on Android + + * lisp/emacs-lisp/ert-x.el + (ert-remote-temporary-file-directory): Define to null-device on + Android. + + * test/lisp/autorevert-tests.el + (auto-revert-test02-auto-revert-deleted-file): Provide for + situations where the watch descriptor is recreated by the + polling timer after a file notification is received. + +2025-02-26 Po Lu <luangruo@yahoo.com> + + Guarantee delivery of inotify special events + + * src/inotify.c (inotifyevent_to_event): Always match events + that are not encompassed by IN_ALL_EVENTS and which the + documentation implies are always delivered to callbacks. + + * test/src/inotify-tests.el (inotify-file-watch-stop-delivery): + New test. + +2025-02-26 Stefan Kangas <stefankangas@gmail.com> + + Correctly fill generated ChangeLog entries + + This fixes both 'C-c C-v' in VC and 'magit-generate-changelog'. + + * lisp/vc/add-log.el (change-log-insert-entries): Correctly fill + generated ChangeLog entries. + +2025-02-26 Stefan Kangas <stefankangas@gmail.com> + + Prefer incf to cl-incf in remaining files + + * admin/syncdoc-type-hierarchy.el (syncdoc-make-type-table): + * admin/unidata/unidata-gen.el (unidata-gen-table-word-list): + * lisp/arc-mode.el (archive--summarize-descs): + * lisp/auth-source.el (auth-source-forget+): + * lisp/battery.el (battery-linux-proc-acpi, battery-linux-sysfs): + * lisp/calendar/parse-time.el (parse-time-tokenize): + * lisp/calendar/time-date.el (decoded-time-add) + (decoded-time--alter-month, decoded-time--alter-day): + * lisp/cedet/semantic/ede-grammar.el (project-compile-target): + * lisp/dired.el (dired-insert-set-properties): + * lisp/edmacro.el (edmacro-format-keys): + * lisp/epa-file.el (epa-file--replace-text): + * lisp/eshell/esh-cmd.el (eshell-for-iterate): + * lisp/eshell/esh-io.el (eshell-create-handles) + (eshell-duplicate-handles, eshell-protect-handles) + (eshell-copy-output-handle, eshell-buffered-print): + * lisp/font-lock.el (font-lock-fontify-keywords-region): + * lisp/help-fns.el: + * lisp/ibuf-ext.el (ibuffer-generate-filter-groups) + (ibuffer-insert-filter-group-before): + * lisp/ibuffer.el (ibuffer-confirm-operation-on, ibuffer-map-lines): + * lisp/image/image-dired-external.el (image-dired-thumb-queue-run): + * lisp/image/image-dired.el (image-dired-display-thumbs) + (image-dired-line-up): + * lisp/imenu.el (imenu--split): + * lisp/info-xref.el (info-xref-check-node, info-xref-check-all-custom): + * lisp/international/quail.el (quail-insert-decode-map): + * lisp/international/rfc1843.el (rfc1843-decode): + * lisp/mail/ietf-drums-date.el (ietf-drums-date--tokenize-string): + * lisp/mail/ietf-drums.el (ietf-drums-token-to-list): + * lisp/mail/rfc2047.el (rfc2047-qp-or-base64): + * lisp/mail/rfc2231.el (rfc2231-encode-string): + * lisp/mail/yenc.el (yenc-decode-region): + * lisp/mh-e/mh-e.el (mh-xargs): + * lisp/mh-e/mh-folder.el (mh-recenter): + * lisp/mh-e/mh-mime.el (mh-mime-part-index): + * lisp/mh-e/mh-search.el (mh-search): + * lisp/mh-e/mh-thread.el (mh-thread-current-indentation-level): + * lisp/mh-e/mh-utils.el (mh-sub-folders-parse): + * lisp/minibuffer.el (minibuffer--sort-by-position) + (completion-pcm--pattern-point-idx): + * lisp/mpc.el (mpc-cmd-find, mpc-cmd-move, mpc-select-extend) + (mpc-songs-refresh, mpc-songpointer-score) + (mpc-songpointer-refresh-hairy): + * lisp/msb.el (msb--mode-menu-cond, msb--most-recently-used-menu) + (msb--split-menus-2, msb--make-keymap-menu): + * lisp/net/pop3.el (pop3-send-streaming-command): + * lisp/net/puny.el + (puny-encode-complex, puny-decode-string-internal): + * lisp/net/shr-color.el (shr-color-hue-to-rgb): + * lisp/net/soap-client.el (soap-encode-xs-complex-type) + (soap-decode-xs-complex-type, soap-resolve-references-for-operation) + (soap-wsdl-resolve-references): + * lisp/play/5x5.el (5x5-made-move, 5x5-down, 5x5-right): + * lisp/play/decipher.el (key, decipher-mode-syntax-table) + (decipher-add-undo, decipher-complete-alphabet, decipher--analyze) + (decipher--digram-counts, decipher--digram-total): + * lisp/play/hanoi.el (hanoi-move-ring): + * lisp/play/snake.el (snake-reset-game, snake-update-game): + * lisp/profiler.el (profiler-calltree-depth, profiler-calltree-build-1) + (profiler-calltree-build-unified) + (profiler-calltree-compute-percentages): + * lisp/registry.el (registry-reindex): + * lisp/simple.el (completion-list-candidate-at-point): + * lisp/strokes.el (strokes-xpm-to-compressed-string): + * lisp/term.el (term-emulate-terminal, term--handle-colors-list): + * lisp/treesit.el (treesit-node-index, treesit-indent-region): + * lisp/url/url-cookie.el (url-cookie-parse-file-netscape): + * lisp/url/url-dav.el (url-dav-file-name-completion): + * lisp/url/url-queue.el (url-queue-setup-runners) + (url-queue-run-queue): + * lisp/wdired.el (wdired-finish-edit): + * lisp/wid-edit.el (widget-move): + * lisp/window-tool-bar.el (window-tool-bar-string): + * lisp/winner.el (winner-undo): + * lisp/xwidget.el (xwidget-webkit-isearch-forward) + (xwidget-webkit-isearch-backward): Prefer incf to cl-incf. + +2025-02-26 Stefan Kangas <stefankangas@gmail.com> + + Prefer incf to cl-incf in vc/*.el + + * lisp/vc/diff-mode.el (diff-count-matches): + (diff-fixup-modifs, diff-add-log-current-defuns): + * lisp/vc/vc-hg.el (vc-hg--glob-to-pcre): + * lisp/vc/vc-hooks.el (vc-insert-file): + * lisp/vc/vc.el (vc-print-log-setup-buttons, vc-prepare-patch): + Prefer incf to cl-incf. + +2025-02-25 Pip Cet <pipcet@protonmail.com> + + Handle multibyte mode line spec chars (bug#76517) + + * src/xdisp.c (display_mode_element): Make 'c' an 'int'. Use + 'string_char_and_length' to fetch the character from a multibyte + string, not 'SREF'. + +2025-02-25 Robert Pluim <rpluim@gmail.com> + + Improve 'send-mail-function' defcustom. + + * lisp/mail/sendmail.el (send-mail-function): Provide better + :doc for the available values. + +2025-02-25 Po Lu <luangruo@yahoo.com> + + Respect temporary-file-directory in Android test controller + + * test/infra/android/test-controller.el (ats-exec-script): + Respect temporary-file-directory. + +2025-02-25 Michael Albinus <michael.albinus@gmx.de> + + Fix bug in Tramp argument computing + + * lisp/net/tramp-sh.el (tramp-ssh-or-plink-options): Return always + a string. (Bug#76553) + +2025-02-25 Po Lu <luangruo@yahoo.com> + + Implement commands for executing all tests on connected Android devices + + * test/infra/android/test-controller.el (ats-upload-test): + Correct minor encoding error. Transfer solitary files without + creating a tar archive, and handle `resources' directories. + (ats-list-tests-locally, ats-list-tests): Don't list files in + `resources' directories. Insert test header locally, and + redisplay after insertion. + (ats-run-all-tests): New function. + +2025-02-25 Robert Pluim <rpluim@gmail.com> + + Remove unneded cl-extra require + + * lisp/international/emoji.el: Remove cl-extra require. + +2025-02-25 Robert Pluim <rpluim@gmail.com> + + Remove wallpaper.el runtime dependency on cl-lib/cl-macs. + + * lisp/image/wallpaper.el: Don't require "cl-macs" + unconditionally, instead require "cl-lib", only when compiling. + +2025-02-25 Po Lu <luangruo@yahoo.com> + + Fix a number of ERT tests for execution on Android + + * test/lib-src/emacsclient-tests.el (emacsclient-test-emacs): + + * test/lisp/server-tests.el (server-tests/emacsclient): Don't + assume emacsclient is installed as emacsclient. + +2025-02-25 shipmints <shipmints@gmail.com> + + Add tramp-cleanup-bufferless-connections (bug#76417) + + * doc/misc/tramp.texi (Cleanup remote connections): Add + 'tramp-cleanup-bufferless-connections'. + + * etc/NEWS: Announce 'tramp-cleanup-bufferless-connections'. + + * lisp/net/tramp-cmds.el: + (tramp-list-remote-buffer-connections): New function. + (tramp-cleanup-bufferless-connections): New command. + (tramp-list-remote-buffers): Account for 'buffer-file-name'. + +2025-02-25 Michael Albinus <michael.albinus@gmx.de> + + * doc/misc/ert.texi (Helpers for Buffers): Fix wrong name. + +2025-02-25 Michael Albinus <michael.albinus@gmx.de> + + Fix tramp-find-executable + + * lisp/net/tramp-sh.el (tramp-find-executable): Use "command -pv", + it isbetter supported in different shells. (Bug#76521) + +2025-02-25 Gerd Möllmann <gerd.moellmann@gmail.com> + + Improve menu-bar-item-at-x + + * lisp/menu-bar.el (menu-bar-item-at-x): Handle case of duplicate keys + in the menu-bar definition. + +2025-02-25 Stefan Kangas <stefankangas@gmail.com> + + Prefer incf to cl-incf in progmodes/*.el + + * lisp/progmodes/bug-reference.el (bug-reference--overlay-bounds): + * lisp/progmodes/c-ts-common.el (c-ts-common-statement-offset): + * lisp/progmodes/compile.el (compilation--note-type): + * lisp/progmodes/ebrowse.el (ebrowse-files-table) + (ebrowse-fill-member-table, ebrowse-find-pattern) + (ebrowse-draw-member-short-fn, ebrowse-gather-statistics): + * lisp/progmodes/elixir-ts-mode.el + (elixir-ts--electric-pair-string-delimiter): + * lisp/progmodes/gdb-mi.el (gdb-thread-list-handler-custom): + * lisp/progmodes/grep.el (grep-filter): + * lisp/progmodes/hideif.el (hif-backward-comment, hif-__COUNTER__) + (hif-token-concatenation, hif-find-define): + * lisp/progmodes/js.el (js--pstate-is-toplevel-defun) + (js-beginning-of-defun, js-end-of-defun, js--pitems-to-imenu) + (js--imenu-to-flat, js-ts--syntax-propertize): + * lisp/progmodes/tcl.el (tcl--syntax-of-quote): + * lisp/progmodes/typescript-ts-mode.el + (tsx-ts--syntax-propertize-captures): Prefer incf to cl-incf. + +2025-02-25 Stefan Kangas <stefankangas@gmail.com> + + Make cl-gensym obsolete in favor of built-in gensym + + * lisp/emacs-lisp/cl-macs.el (cl-gensym): Declare function + obsolete in favor of gensym, added in Emacs 26.1. The only reason + for its existence is that it allows an integer argument, but + that's not really useful, so it's better to remove this complexity. + Ref: https://lists.gnu.org/r/emacs-devel/2017-09/msg00313.html + * doc/misc/cl.texi (Symbols, Creating Symbols, Efficiency Concerns) + (Obsolete Setf Customization): Don't document above obsolete function. + * lisp/emacs-lisp/cl-macs.el (cl--parse-loop-clause): + * lisp/emacs-lisp/edebug.el (edebug-make-form-wrapper): + * lisp/obsolete/cl.el (cl--function-convert, lexical-let): + * lisp/obsolete/thumbs.el (thumbs-temp-file): + * lisp/progmodes/eglot.el (eglot--lambda) + (eglot--when-live-buffer, eglot--when-buffer-window) + (eglot--collecting-xrefs, eglot--glob-parse): + * lisp/progmodes/flymake.el (flymake--run-backend): + * test/lisp/emacs-lisp/package-tests.el (with-package-test): + * test/lisp/progmodes/eglot-tests.el (eglot--guessing-contact): + * test/lisp/progmodes/elisp-mode-tests.el + (elisp-shorthand-read-buffer, elisp-shorthand-read-from-string): Prefer + plain gensym to cl-gensym in files that can depend on Emacs 26.1. + * lisp/jsonrpc.el (jsonrpc-lambda, jsonrpc-request): Prefer gensym to + cl-gensym only when defined, as this file supports Emacs 25.1 + * test/lisp/emacs-lisp/cl-macs-tests.el (cl-lib-test-gensym): Simplify + test as 'should' no longer uses cl-gensym. + +2025-02-25 Stefan Kangas <stefankangas@gmail.com> + + Use cl-with-gensyms in a few more cases + + * doc/misc/cl.texi (Macro Bindings): + * lisp/emacs-lisp/comp.el (comp--with-sp): + * lisp/emacs-lisp/subr-x.el (with-buffer-unmodified-if-unchanged): + * lisp/eshell/em-extpipe.el (eshell-extpipe--or-with-catch): + * lisp/international/mule-cmds.el (with-locale-environment): + * lisp/kmacro.el (kmacro-menu--marks-exist-p): + * test/lisp/emacs-lisp/cl-extra-tests.el (cl-lib-test-remprop): + * test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-deduplicate): + * test/lisp/emacs-lisp/ert-tests.el (ert-test-special-operator-p): + * test/lisp/kmacro-tests.el (kmacro-tests-should-insert) + (kmacro-tests-should-match-message): + * test/lisp/replace-tests.el (replace-tests-with-undo): Use + cl-with-gensyms instead of bare gensym call. + +2025-02-24 João Távora <joaotavora@gmail.com> + + Eglot: add out-of-box support for neocmakelsp + + * lisp/progmodes/eglot.el (eglot-server-programs): Add + neocmakelsp. + +2025-02-24 João Távora <joaotavora@gmail.com> + + Eglot: use eglot-advertise-cancellation in more situations + + The async requests frequently issued by ElDoc are a significant + source of request pile-up on the server side (for some servers). + + With this change, Eglot will issue additional LSP + $/cancelRequest notifications for in-flight requests of certain + kinds in the pre-command hook. + + This required a small change to the 'jsonrpc-async-request' + entrypoint. + + This feature is experimental. + + * lisp/jsonrpc.el (jsonrpc-async-request): No longer returns nil. + + * lisp/progmodes/eglot.el (eglot--inflight-async-requests): New variable. + (eglot--cancel-inflight-async-requests): New function. + (eglot--async-request): New function. + (eglot--pre-command-hook): Call eglot--cancel-inflight-async-requests. + (eglot-signature-eldoc-function, eglot-hover-eldoc-function) + (eglot-highlight-eldoc-function, eglot-code-action-suggestion): + Use eglot--async-request. + +2025-02-24 Mauro Aranda <maurooaranda@gmail.com> + + Fix bad fontification of inactive widgets + + * lisp/wid-edit.el (widget-specify-inactive): When a widget is + already inactive, still move the overlay to the desired + positions. Improve docstring. (Bug#69941) + + * doc/misc/widget.texi (default): Document the need to call the + :deactivate function when modifying an inactive widget. + + * test/lisp/wid-edit-tests.el + (widget-test-modification-of-inactive-widget): New test + +2025-02-24 Stefan Kangas <stefankangas@gmail.com> + + Add Obsolete-since header to hashcash.el + + * lisp/obsolete/hashcash.el: Add Obsolete-since header. (Bug#76195) + +2025-02-24 Stefan Kangas <stefankangas@gmail.com> + + Move hashcash.el to lisp/obsolete + + * lisp/mail/hashcash.el: Move from here... + * lisp/obsolete/hashcash.el: ...to here. (Bug#76195) + +2025-02-24 Stefan Kangas <stefankangas@gmail.com> + + Drop hashcash support from Gnus and Message mode + + * lisp/gnus/gnus.el (gnus-install-group-spam-parameters): Remove + 'spam-use-hashcash' option. + * lisp/gnus/message.el (message-generate-hashcash): Mark as + obsolete, default to nil unconditionally. + (message-send-mail, message-setup-1, message-resend): Don't + generate hashcash headers. + * lisp/gnus/spam.el (hashcash): Don't require. + (spam-use-hashcash): + (spam-check-hashcash): Mark as obsolete. + (spam-install-hooks): Don't install 'spam-use-hashcash' hook. + * doc/misc/message.texi (Mail Headers): Don't document above + obsoleted variable 'message-generate-hashcash'. + * doc/misc/gnus.texi (Hashcash): Delete section. + (Anti-spam Hashcash Payments): Delete subsection. + (Extending the Spam package): Don't mention Hashcash. (Bug#76195) + +2025-02-24 Stefan Kangas <stefankangas@gmail.com> + + Make cl-declare obsolete + + * lisp/emacs-lisp/cl-macs.el (cl-declare): Make obsolete. + * doc/misc/cl.texi (Declarations): Don't document above obsolete + macro. (Bug#63288) + +2025-02-24 Stefan Kangas <stefankangas@gmail.com> + + Move buffer related functions from ert-x.el to ert.el + + * lisp/emacs-lisp/ert-x.el (ert--text-button) + (ert--format-test-buffer-name, ert--test-buffers) + (ert--test-buffer-button, ert--test-buffer-button-action) + (ert--call-with-test-buffer, ert-with-test-buffer) + (ert-with-buffer-selected, ert-kill-all-test-buffers) + (ert-call-with-buffer-renamed, ert-buffer-string-reindented): Move + from here... + * lisp/emacs-lisp/ert.el (ert--text-button) + (ert--format-test-buffer-name, ert--test-buffers) + (ert--test-buffer-button, ert--test-buffer-button-action) + (ert--call-with-test-buffer, ert-with-test-buffer) + (ert-kill-all-test-buffers, ert-with-buffer-selected) + (ert-call-with-buffer-renamed, ert-with-buffer-renamed): ...to + here. + * doc/misc/ert.texi (Helpers for Buffers): Break out new section... + (Helper Functions): ...from here. + * lisp/emacs-lisp/ert-x.el (ert-with-test-buffer-selected): Move + obsolete definition to the end of the file. + + * test/lisp/emacs-lisp/ert-x-tests.el + (ert--hash-table-to-alist, ert-test-test-buffers) + (ert-test-with-buffer-selected/current) + (ert-test-with-buffer-selected/selected) + (ert-test-with-buffer-selected/nil-buffer) + (ert-test-with-buffer-selected/modification-hooks) + (ert-test-with-buffer-selected/read-only) + (ert-test-with-buffer-selected/return-value) + (ert-test-with-test-buffer-selected/modification-hooks) + (ert-test-with-test-buffer-selected/read-only) + (ert-test-with-test-buffer-selected/return-value) + (ert-test-with-test-buffer-selected/buffer-name): Move tests from + here... + * test/lisp/emacs-lisp/ert-tests.el + (ert--hash-table-to-alist, ert-test-test-buffers) + (ert-test-with-buffer-selected/current) + (ert-test-with-buffer-selected/selected) + (ert-test-with-buffer-selected/nil-buffer) + (ert-test-with-buffer-selected/modification-hooks) + (ert-test-with-buffer-selected/read-only) + (ert-test-with-buffer-selected/return-value) + (ert-test-with-test-buffer-selected/selected) + (ert-test-with-test-buffer-selected/modification-hooks) + (ert-test-with-test-buffer-selected/read-only) + (ert-test-with-test-buffer-selected/return-value) + (ert-test-with-test-buffer-selected/buffer-name): ...to here. + * test/lisp/progmodes/hideshow-tests.el (ert-x): + * test/lisp/simple-tests.el (ert-x): + * test/lisp/whitespace-tests.el (ert-x): Don't require. + +2025-02-24 Stefan Kangas <stefankangas@gmail.com> + + Support selecting buffer in ert-with-test-buffer + + * lisp/emacs-lisp/ert-x.el (ert-with-test-buffer): Add new keyword + argument :selected to make the buffer current and selected. + (ert-with-test-buffer-selected): Make obsolete and redefine in + terms of ert-with-test-buffer. + + * doc/misc/ert.texi (Helper Functions): Document above new + :selected keyword argument, and remove documentation of + ert-with-test-buffer-selected. + + * test/lisp/emacs-lisp/ert-x-tests.el + (ert-test-with-test-buffer-selected/selected) + (ert-test-with-test-buffer-selected/modification-hooks) + (ert-test-with-test-buffer-selected/read-only) + (ert-test-with-test-buffer-selected/return-value) + (ert-test-with-test-buffer-selected/buffer-name): + * test/lisp/progmodes/hideshow-tests.el + (hideshow-tests-with-temp-buffer-selected): + * test/lisp/simple-tests.el (kill-whole-line-invisible) + (kill-whole-line-read-only, kill-whole-line-after-other-kill) + (kill-whole-line-buffer-boundaries) + (kill-whole-line-line-boundaries): + * test/lisp/whitespace-tests.el + (whitespace-tests--with-test-buffer, whitespace-tests--global): Use + ert-with-test-buffer instead of ert-with-test-buffer-selected. + +2025-02-24 Stefan Kangas <stefankangas@gmail.com> + + Use cl-with-gensyms in with-sqlite-transaction + + * lisp/sqlite.el (cl-lib): Require at compile-time. + (with-sqlite-transaction): Use cl-with-gensyms. + +2025-02-24 Stefan Kangas <stefankangas@gmail.com> + + Prefer incf to cl-incf in textmodes/*.el + + * lisp/textmodes/css-mode.el (css--rgb-color): + * lisp/textmodes/reftex-dcr.el (reftex-view-regexp-match): + * lisp/textmodes/reftex-global.el (reftex-find-duplicate-labels) + (reftex-renumber-simple-labels, reftex-translate): + * lisp/textmodes/reftex-index.el (reftex-index-select-tag) + (reftex-index-phrases-info, reftex-query-index-phrase): + * lisp/textmodes/reftex-parse.el (reftex-where-am-I) + (reftex-what-macro, reftex-nth-arg, reftex-section-number): + * lisp/textmodes/reftex-ref.el (reftex-uniquify-label): + * lisp/textmodes/reftex-sel.el (reftex-insert-docstruct): + * lisp/textmodes/reftex.el (reftex-next-multifile-index) + (reftex-compile-variables, reftex-parse-args) + (reftex-select-external-document): + * lisp/textmodes/rst.el (rst-display-hdr-hierarchy) + (rst-toc-insert-children, rst-apply-indented-blocks) + (rst-enumerate-region, rst-convert-bullets-to-enumeration): + * lisp/textmodes/tex-mode.el (tex-count-words): Prefer incf to cl-incf. + +2025-02-24 Robert Pluim <rpluim@gmail.com> + + * lisp/msb.el (msb-mode-map): Use 'defvar-keymap'. + +2025-02-24 Juri Linkov <juri@linkov.net> + + Better support for nil enable-local-variables in vc-find-revision-no-save + + * lisp/vc/diff-mode.el (diff-syntax-fontify-props): + * lisp/vc/vc.el (vc-find-revision-no-save): + Use enable-local-variables as is only when it's one of these values: + :safe, :all, or nil. Otherwise, for all remaining values that query, + use :safe. Also use non-nil 'find-file' arg of 'normal-mode'. + https://lists.gnu.org/archive/html/emacs-devel/2025-02/msg00897.html + +2025-02-24 Robert Pluim <rpluim@gmail.com> + + Use 'password-colon-equivalents' when matching "Re" variants + + * lisp/mail/mail-utils.el (mail--wrap-re-regexp): Use + 'password-colon-equivalents'. + +2025-02-24 Rudi Schlatte <rudi@constantly.at> + + Add ".jj" to vc-directory-exclusion-list + + * lisp/vc/vc-hooks.el (vc-directory-exclusion-list): Add ".jj", a + directory used by the jujutsu version control system. (Bug#76524) + +2025-02-24 Martin Rudalics <rudalics@gmx.at> + + Optionally have 'display-buffer' reuse windows of indirect buffers + + * lisp/window.el (window-indirect-buffer-p): New function. + (get-buffer-window-list): New argument INDIRECT. + (display-buffer-reuse-window): New alist entry 'reuse-indirect' + to reuse a window indirectly related to the BUFFER argument. + * doc/lispref/windows.texi (Buffers and Windows): Describe new + function 'window-indirect-buffer-p' and new argument INDIRECT of + 'get-buffer-window-list'. + (Buffer Display Action Functions): Describe new action alist + entry 'reuse-indirect'. + * etc/NEWS: Announce new argument for 'get-buffer-window-list' and + new 'display-buffer' action alist entry 'reuse-indirect'. + +2025-02-24 Martin Rudalics <rudalics@gmx.at> + + Clarify semantics of 'frame-inhibit-implied-resize' + + * src/frame.c (frame_inhibit_implied_resize): + * doc/lispref/frames.texi (Implied Frame Resizing): Clarify + semantics of 'frame-inhibit-implied-resize'. + +2025-02-24 Yuan Fu <casouri@gmail.com> + + Fix typescript-ts-mode indentation tests (bug#71998) + + * test/lisp/progmodes/typescript-ts-mode-resources/indent.erts: + (JSX indentation): Add quote and remove semi-colon, so the code + is valid. + +2025-02-24 Gerd Möllmann <gerd.moellmann@gmail.com> + + Handle case of not knowing a frame when mouse moved + + * lisp/xt-mouse.el (xterm-mouse--handle-mouse-movement): Don't call + display--update-for-mouse-movement if we don't have a frame. + +2025-02-23 Stefan Kangas <stefankangas@gmail.com> + + Use cl-with-gensyms in ert-with-message-capture + + * lisp/emacs-lisp/ert-x.el (ert-with-message-capture): Use + cl-with-gensyms. + +2025-02-23 Stefan Kangas <stefankangas@gmail.com> + + Prefer incf to cl-incf in gnus/*.el + + * lisp/gnus/gnus-agent.el (gnus-agent-load-local) + (gnus-agent-expire-group-1, gnus-agent-update-files-total-fetched-for): + * lisp/gnus/gnus-art.el (gnus-article-header-rank): + * lisp/gnus/gnus-async.el (gnus-async-wait-for-article): + * lisp/gnus/gnus-cache.el (gnus-cache-update-file-total-fetched-for): + * lisp/gnus/gnus-registry.el (gnus-registry-import-eld): + * lisp/gnus/gnus-salt.el (gnus-pick-line-number, gnus-tree-minimize) + (gnus-generate-vertical-tree): + * lisp/gnus/gnus-spec.el (gnus-correct-substring): + * lisp/gnus/gnus-start.el (gnus-ask-server-for-new-groups, gnus-method-rank): + * lisp/gnus/gnus-sum.el (gnus-data-update-list) + (gnus-summary-number-of-articles-in-thread, gnus-build-sparse-threads) + (gnus-summary-prepare-threads, gnus-invisible-cut-children) + (gnus-summary-limit-children, gnus-expunge-thread) + (gnus-summary-refer-references, gnus-summary-update-mark) + (gnus-summary-hide-all-threads, gnus-summary-save-parts-1): + * lisp/gnus/gnus-topic.el (gnus-topic-articles-in-topic) + (gnus-topic-prepare-topic, gnus-topic-display-missing-topic) + (gnus-topic-update-topic-line): + * lisp/gnus/gnus-uu.el (gnus-uu-post-encoded): + * lisp/gnus/gnus-win.el (gnus-configure-frame): + * lisp/gnus/mail-source.el (mail-source-fetch-directory) + (mail-source-fetch-maildir, mail-source-fetch-imap): + * lisp/gnus/message.el (message-remove-header) + (message-remove-first-header, message-make-caesar-translation-table): + * lisp/gnus/mm-encode.el (mm-qp-or-base64): + * lisp/gnus/mml.el (mml-compute-boundary, mml-compute-boundary-1): + * lisp/gnus/nnatom.el (nnatom--read-links): + * lisp/gnus/nnbabyl.el (nnbabyl-retrieve-headers): + * lisp/gnus/nndoc.el (nndoc-oe-dbx-dissection, nndoc-dissect-buffer) + (nndoc-dissect-mime-parts-sub): + * lisp/gnus/nneething.el (nneething-retrieve-headers): + * lisp/gnus/nnheader.el (nnheader-generate-fake-message-id) + (nnheader-insert-head, nnheader-translate-file-chars): + * lisp/gnus/nnimap.el (nnimap-find-wanted-parts-1) + (nnimap-retrieve-group-data-early, nnimap-send-command): + * lisp/gnus/nnmail.el (nnmail-process-babyl-mail-format) + (nnmail-process-unix-mail-format, nnmail-process-mmdf-mail-format) + (nnmail-get-new-mail-1): + * lisp/gnus/nnmaildir.el (nnmaildir--scan): + * lisp/gnus/nnrss.el (nnrss-check-group): + * lisp/gnus/nnselect.el (nnselect-request-thread): + * lisp/gnus/nnspool.el (nnspool-retrieve-headers): + * lisp/gnus/nntp.el (nntp-retrieve-headers) + (nntp-finish-retrieve-group-infos, nntp-retrieve-groups) + (nntp-retrieve-articles, nntp-retrieve-headers-with-xover): + * lisp/gnus/nnvirtual.el (nnvirtual-create-mapping): + * lisp/gnus/nnweb.el (nnweb-google-parse-1, nnweb-google-create-mapping) + (nnweb-gmane-create-mapping): + * lisp/gnus/spam.el (spam-resolve-registrations-routine): Prefer incf to + cl-incf. + +2025-02-23 Stefan Monnier <monnier@iro.umontreal.ca> + + (Ftranspose_regions): Fix text-properties for len1==len2 + + When `len1_byte == len2_byte`, the code presumed that len1==len2 + as well in its handling of text-properties. Fix that case. + While at it, try and reduce code duplication by hoisting common + code out of `if`s, and throw away the optimization for `len_mid == 0` + which only saved 3 trivial function calls. + + * src/editfns.c (Ftranspose_regions): Shuffle the code a bit. + + * test/src/editfns-tests.el (editfns-tests--transpose-equal-but-not): + New test. + +2025-02-23 Stefan Kangas <stefankangas@gmail.com> + + Mark cdl.el as obsolete + + * lisp/obsolete/cdl.el: Add Obsolete-since header. It is fully + replaceable by shell-command and shell-command-on-region. + +2025-02-23 Stefan Kangas <stefankangas@gmail.com> + + Move cdl.el to obsolete/cdl.el + + * lisp/cdl.el: Move from here... + * lisp/obsolete/cdl.el: ...to here. + +2025-02-23 Manuel Giraud <manuel@ledu-giraud.fr> + + Fix DocView's text conversion on tty Emacs + + * lisp/doc-view.el (doc-view-open-text): Defaults to first page + should `doc-view-current-page' return nil. (Bug#72305) + +2025-02-23 Joseph Turner <joseph@breatheoutbreathe.in> + + Upgrade out-of-date VC package dependencies + + * lisp/emacs-lisp/package-vc.el (package-vc-install-dependencies): Pass + the specified package version when checking if a package is installed. + + (Bug#73781) + +2025-02-23 Martin Rudalics <rudalics@gmx.at> + + Optionally inhibit implied resizing while frame is made (Bug#76275) + + * src/frame.c (frame_inhibit_resize): Handle new value 'force' + for 'frame-inhibit-implied-resize' (Bug#76275). + (frame_inhibit_implied_resize): New value 'force' to inhibit + implied resizing while a new frame is made. + * lisp/cus-start.el (frame-inhibit-implied-resize): Make new + value 'force' customizable. + * doc/lispref/frames.texi (Implied Frame Resizing): Describe new + value 'force' of 'frame-inhibit-implied-resize'. + * etc/NEWS: Announce new value 'force' of + 'frame-inhibit-implied-resize'. + +2025-02-23 Michael Albinus <michael.albinus@gmx.de> + + Tramp: Improve doc of ad-hoc multi-hop file names + + * doc/misc/tramp.texi (Ad-hoc multi-hops, Frequently Asked Questions): + Improve description how ad-hoc multi-hop file names can be made + persistent. (Bug#65039, Bug#76457) + +2025-02-23 Gerd Möllmann <gerd.moellmann@gmail.com> + + Enforce redisplay when deleting a child frame (bug#76406) + + * src/term.c (tty_free_frame_resources): When deleting a child mark its + root frame to garbaged. + * src/dispnew.c (prepare_desired_root_row): Add a check for GLYPH_DEBUG. + +2025-02-23 Martin Rudalics <rudalics@gmx.at> + + Implement new user option 'quit-window-kill-buffer' (Bug#76248) + + * lisp/window.el (quit-window-kill-buffer): New option. + (quit-window): Handle it. + * doc/lispref/windows.texi (Quitting Windows): Describe new + option 'quit-window-kill-buffer'. + * etc/NEWS: Announce new option 'quit-window-kill-buffer'. + +2025-02-23 Paul Eggert <eggert@cs.ucla.edu> + + Revert “Pacify GCC in pgtkselect malloc alignment” + + Problem reported by the wurfkreuz (Bug#76414). + * src/pgtkselect.c: Revert my commit + ff65cc9944dc0b37986d512ee8b9817c6913db36 dated Sun Jan 26 22:15:49 + 2025 -0800 for now. I may come up with a better commit later. + +2025-02-23 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 9c1d13c89a9 ; * admin/authors.el (authors-aliases): Add Vladimir Niki... + 443df12eddc ; * INSTALL.REPO: Minor copyedits. + 76b938fc1d2 ; Don't fail image tests if jpeg is supported via imagema... + f8ff9592be9 ; Skip autorevert test when notify support is missing + 230ecb1e273 ; Skip shr-test/zoom-image test if png or libxml support ... + cc51bd56987 ; Skip image type test if support is missing + +2025-02-23 Michael Heerdegen <michael_heerdegen@web.de> + + Fix diary not displaying some entries in european style + + * lisp/calendar/calendar.el (diary-european-date-forms): Correctly + recognize times using a dot as separator. (Bug#53702) + +2025-02-23 Stefan Kangas <stefankangas@gmail.com> + + Mark kermit.el as obsolete + + While Kermit is still developed, this Emacs support library is + essentially unchanged since it was added to Emacs, which seems to have + been in 1988. It is also based on the old pre-Emacs 20 shell mode, so + it's not clear if it even works, and much less if it is relevant with + Kermit from this century. + + There is also this modern alternative, from 1994, which seems far + more complete: https://www.kermitproject.org/archive.html#emacs + + The bug tracker has stayed silent, so if anyone is still using it, they + will have to report a bug and ask us to unobsolete it. + + * lisp/obsolete/kermit.el: Add Obsolete-since header. Add link to + alternative library at kermitproject.org. + +2025-02-23 Stefan Kangas <stefankangas@gmail.com> + + Move kermit.el to obsolete/kermit.el + + * lisp/kermit.el: Move from here... + * lisp/obsolete/kermit.el: ...to here. + +2025-02-23 Stefan Kangas <stefankangas@gmail.com> + + Prefer ert-with-temp-directory in tests + + * test/lisp/dired-aux-tests.el (dired-test-bug30624): + * test/lisp/emacs-lisp/track-changes-tests.el + (track-changes-tests--random): + * test/src/buffer-tests.el (test-buffer-chars-modified-ticks): + * test/src/fileio-tests.el (fileio-tests--symlink-failure) + (fileio-tests--insert-file-interrupt) + (fileio-tests--circular-after-insert-file-functions): Prefer + ert-with-temp-directory to using make-temp-file directly. + +2025-02-23 Thuna <thuna.cing@gmail.com> + + Fix print-tests + + * test/src/print-tests.el (terpri): Erase the buffer *terpri-test* + before individual runs. (Bug#72334) + (print-circle): Allow circular references with number greater than 9. + +2025-02-23 Mauro Aranda <maurooaranda@gmail.com> + + Fix comparison of current values for the key-sequence :type + + * lisp/cus-edit.el (custom-variable-modified-p): Round-trip + the option value before comparing it against the widget's value. + This mostly fixes comparison against the obsolete key-sequence + widget, but could fix other corner cases, when the widget + accepts different types as values. (Bug#76156) + + * test/lisp/cus-edit-tests.el (cus-edit-test-bug76156) + (cus-edit-test-bug76156-2): New test options. + (cus-edit-test-unedited-option): New test. + +2025-02-23 Jostein Kjønigsen <jostein@kjonigsen.net> + + Improve fontification of docker-files + + Add support for fontifying the following grammar-elements: + - image-declarations (image-name, image-tag & image alias) + - strings in more general terms + - string-expansion statements + - treat path-values as strings + - identifiers names for ENV and ARG statements + - argument values for ENV and ARG statements + * lisp/progmodes/dockerfile-ts-mode.el (dockerfile-ts-mode) + (dockerfile-ts-mode--font-lock-settings): Improve fontification. + (Bug#76481) + +2025-02-22 Stefan Kangas <stefankangas@gmail.com> + + Prefer incf to cl-incf in emacs-lisp/*.el + + * lisp/emacs-lisp/backtrace.el (backtrace--print-func-and-args): + * lisp/emacs-lisp/bindat.el (bindat--type): + * lisp/emacs-lisp/bytecomp.el (byte-recompile-directory): + * lisp/emacs-lisp/chart.el (chart-file-count): + * lisp/emacs-lisp/cl-extra.el (cl-parse-integer, cl--print-table): + * lisp/emacs-lisp/cl-generic.el (cl--defmethod-doc-pos): + * lisp/emacs-lisp/cl-indent.el (common-lisp-loop-part-indentation) + (common-lisp-indent-function-1, lisp-indent-defmethod): + * lisp/emacs-lisp/cl-lib.el (cl--set-substring): + * lisp/emacs-lisp/cl-macs.el (cl--parse-loop-clause): + * lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): + * lisp/emacs-lisp/cl-print.el (cl-print--cons-tail) + (cl-print--vector-contents, cl-print--struct-contents) + (cl-print--string-props): + * lisp/emacs-lisp/cl-seq.el (cl-substitute): + * lisp/emacs-lisp/comp-cstr.el (comp--range-union) + (comp--range-intersection): + * lisp/emacs-lisp/comp.el (comp-vec-append, comp--gen-counter) + (comp--op-case, comp--limplify-lap-inst, comp--limplify-block) + (comp--limplify-function, comp--maybe-add-vmvar, comp--fwprop*): + * lisp/emacs-lisp/edebug.el (edebug--called-interactively-skip): + * lisp/emacs-lisp/eldoc.el (eldoc--invoke-strategy): + * lisp/emacs-lisp/elp.el (elp--make-wrapper): + * lisp/emacs-lisp/ert-x.el (ert-kill-all-test-buffers): + * lisp/emacs-lisp/ert.el (ert--stats-set-test-and-result) + (ert-write-junit-test-summary-report): + * lisp/emacs-lisp/memory-report.el (memory-report--symbol-plist) + (memory-report--object-size-1): + * lisp/emacs-lisp/oclosure.el (oclosure--index-table) + (oclosure--define-functions): + * lisp/emacs-lisp/package.el (package-menu--perform-transaction): + * lisp/emacs-lisp/smie.el (smie-set-prec2tab, smie-prec2->grammar) + (smie-config--guess, smie-config--guess-1): + * lisp/emacs-lisp/syntax.el (syntax-propertize-rules) + (syntax-ppss--update-stats): + * lisp/emacs-lisp/track-changes.el (track-changes--after): Prefer incf + to cl-incf. + +2025-02-22 Stefan Kangas <stefankangas@gmail.com> + + Prefer incf to cl-incf in tests + + * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-reify-function): + * test/lisp/emacs-lisp/cl-extra-tests.el (cl-getf): + * test/lisp/emacs-lisp/cl-macs-tests.el + (cl-macs-loop-for-as-arith-order-side-effects) + (cl-macs-loop-for-as-equals-then, cl-macs-loop-do, cl-macs-loop-finally) + (cl-macs-loop-in-ref, cl-macs-loop-being-elements-of-ref) + (cl-macs-test--symbol-macrolet, cl-the): + * test/lisp/emacs-lisp/cl-seq-tests.el (cl-lib-test-remove) + (cl-lib-test-remove-if-not): + * test/lisp/emacs-lisp/edebug-resources/edebug-test-code.el + (edebug-test-code-range): + * test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-deduplicate): + * test/lisp/emacs-lisp/generator-tests.el (cps-while-incf): + (cps-test-iter-cleanup-once-only): + * test/lisp/emacs-lisp/hierarchy-tests.el + (hierarchy-labelfn-button-if-does-not-button-unless-condition) + (hierarchy-labelfn-button-if-does-button-when-condition): + * test/lisp/emacs-lisp/let-alist-tests.el (let-alist-evaluate-once): + * test/lisp/emacs-lisp/lisp-mode-tests.el + (indent-sexp, lisp-indent-region): + * test/lisp/emacs-lisp/map-tests.el (test-map-elt-gv) + (test-setf-map-with-function): + * test/lisp/emacs-lisp/multisession-tests.el (multi-test-sqlite-simple) + (multi-test-sqlite-busy, multi-test-files-simple) + (multi-test-files-busy): + * test/lisp/emacs-lisp/oclosure-tests.el + (oclosure-test, oclosure-test-mutate): + * test/lisp/emacs-lisp/track-changes-tests.el + (track-changes-tests--random): + * test/lisp/files-tests.el (files-tests--with-buffer-offer-save): + * test/lisp/net/shr-tests.el (shr-test/zoom-image): + * test/lisp/replace-tests.el (replace-tests-with-undo): + * test/src/buffer-tests.el (test-overlay-randomly): + * test/src/data-tests.el (test-bool-vector-bv-from-hex-string): + * test/src/fns-tests.el (fns-tests-sort): + * test/src/json-tests.el (json-insert/signal, json-insert/throw): + * test/src/minibuf-tests.el (minibuf-tests--strings-to-symbol-alist) + (minibuf-tests--strings-to-string-alist) + (minibuf-tests--strings-to-string-hashtable) + (minibuf-tests--strings-to-symbol-hashtable): + * test/src/process-tests.el (make-process/file-handler/found): Prefer + incf to cl-incf. + +2025-02-22 Stefan Kangas <stefankangas@gmail.com> + + Prefer decf to cl-decf + + * lisp/auth-source-pass.el (auth-source-pass--find-match-many): + * lisp/calendar/time-date.el (decoded-time-add) + (decoded-time--alter-month, decoded-time--alter-day): + * lisp/dired.el (dired--move-to-next-line): + * lisp/dom.el (dom-pp): + * lisp/emacs-lisp/cl-macs.el (cl--transform-lambda): + * lisp/emacs-lisp/cl-print.el (cl-print-to-string-with-limit): + * lisp/emacs-lisp/cl-seq.el (cl-fill, cl-replace, cl-substitute): + * lisp/emacs-lisp/comp-cstr.el (comp--range-union) + (comp--range-intersection): + * lisp/emacs-lisp/comp.el (comp-vec-prepend, comp--emit-narg-prologue): + * lisp/emacs-lisp/edebug.el (edebug--strip-instrumentation): + * lisp/emacs-lisp/eldoc.el (eldoc--invoke-strategy): + * lisp/emacs-lisp/pp.el (pp--format-definition): + * lisp/emacs-lisp/smie.el (smie-config--guess-1): + * lisp/eshell/esh-io.el (eshell-close-handle, eshell-set-output-handle): + * lisp/gnus/gnus-async.el (gnus-async-prefetch-article): + * lisp/gnus/gnus-group.el (gnus-group-mark-group) + (gnus-group-yank-group): + * lisp/gnus/gnus-salt.el (gnus-tree-forward-line): + * lisp/gnus/gnus-score.el (gnus-decay-scores): + * lisp/gnus/gnus-srvr.el (gnus-browse-toggle-subscription-at-point): + * lisp/gnus/gnus-sum.el (gnus-build-sparse-threads, gnus-parent-headers) + (gnus-update-marks, gnus-summary-work-articles) + (gnus-summary-refer-parent-article, gnus-summary-next-thread) + (gnus-read-header, gnus-summary-insert-new-articles): + * lisp/gnus/gnus-topic.el (gnus-topic-forward-topic): + * lisp/gnus/gnus.el (gnus-short-group-name): + * lisp/gnus/message.el (message-remove-first-header) + (message-shorten-references, message-insert-screenshot): + * lisp/gnus/mm-url.el (mm-url-insert): + * lisp/gnus/nnselect.el (nnselect-push-info): + * lisp/ibuffer.el (ibuffer-backward-line, ibuffer-forward-line) + (ibuffer-map-lines): + * lisp/icomplete.el (icomplete--render-vertical): + * lisp/image/image-dired-external.el (image-dired-create-thumb-1): + * lisp/image/image-dired.el (image-dired-delete-char): + * lisp/mail/ietf-drums-date.el (ietf-drums-date--tokenize-string): + * lisp/mh-e/mh-utils.el (mh-sub-folders-parse): + * lisp/minibuffer.el (minibuffer-completion-help): + * lisp/mpc.el (mpc-cmd-move, mpc-songpointer-refresh-hairy): + * lisp/net/eww.el (eww-process-text-input): + * lisp/net/pop3.el (pop3-wait-for-messages, pop3-uidl-stat) + (pop3-uidl-dele): + * lisp/net/shr-color.el (shr-color-hue-to-rgb): + * lisp/play/5x5.el (5x5-up, 5x5-left): + * lisp/play/decipher.el (decipher-read-alphabet, decipher--digram-total) + (decipher-analyze-buffer): + * lisp/play/hanoi.el (hanoi-insert-ring, hanoi-move-ring): + * lisp/profiler.el (profiler-format-number) + (profiler-calltree-build-unified): + * lisp/progmodes/antlr-mode.el (antlr-next-rule, antlr-indent-line): + * lisp/progmodes/c-ts-common.el (c-ts-common-statement-offset): + * lisp/progmodes/ebrowse.el + (ebrowse-cyclic-display-next/previous-member-list): + * lisp/progmodes/hideif.el (hif-backward-comment): + * lisp/progmodes/js.el (js-beginning-of-defun, js-end-of-defun) + (js-ts--syntax-propertize): + * lisp/progmodes/typescript-ts-mode.el + (tsx-ts--syntax-propertize-captures): + * lisp/rect.el (rectangle--*-char): + * lisp/term.el (term-emulate-terminal): + * lisp/textmodes/reftex-cite.el (reftex-do-citation): + * lisp/textmodes/reftex-index.el (reftex-index-next-phrase): + * lisp/textmodes/reftex-parse.el (reftex-init-section-numbers): + * lisp/textmodes/reftex-sel.el (reftex-select-unmark): + * lisp/textmodes/reftex.el (reftex-silence-toc-markers): + * lisp/treesit.el (treesit-navigate-thing): + * lisp/vc/diff-mode.el (diff-sanity-check-context-hunk-half, + (diff-sanity-check-hunk): + * lisp/vc/pcvs-util.el (cvs-first): + * lisp/vc/smerge-mode.el (smerge-get-current): + * lisp/vc/vc-hg.el (vc-hg--glob-to-pcre): + * test/lisp/net/socks-tests.el + (socks-tests-perform-hello-world-http-request): + * test/src/buffer-tests.el (test-overlay-randomly): Prefer decf to + cl-defc in all code where we can. + +2025-02-22 Stefan Kangas <stefankangas@gmail.com> + + New macros incf and decf + + * lisp/emacs-lisp/cl-lib.el (cl-incf, cl-decf): Move macros from here... + * lisp/emacs-lisp/gv.el (incf, decf): ...to here. Make old names into + aliases, documented as deprecated. + * lisp/obsolete/cl.el: Don't alias incf and decf. + + * test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-test-incf) + (cl-lib-test-decf): Move tests from here... + * test/lisp/emacs-lisp/gv-tests.el (gv-incf, gv-decf): ...to here. + + * doc/lispref/numbers.texi (Arithmetic Operations): + * lisp/emacs-lisp/shortdoc.el (number): Document incf and decf. + + * doc/lispref/variables.texi (Multisession Variables): + * doc/misc/cl.texi (Organization, Modify Macros, Modify Macros) + (Modify Macros, Macro Bindings, For Clauses, Property Lists) + (Structures, Efficiency Concerns, Obsolete Setf Customization): Delete + cl-incf and cl-decf documentation, moving any relevant parts to lispref. + Delete some parts that seem to primarily regard implementation details + that do not warrant inclusion in lispref. Update all examples to use + incf/decf. + +2025-02-22 Mauro Aranda <maurooaranda@gmail.com> + + Fix last commit to wid-edit.el + + * lisp/wid-edit.el (widget-editable-list-entry-create): Don't + use save-excursion when indenting. Previously, it was needed + because we inserted the :entry-format string, but we don't do + that anymore. (Bug#53606) + + https://lists.gnu.org/archive/html/emacs-devel/2025-02/msg00958.html + +2025-02-22 Stefan Monnier <monnier@iro.umontreal.ca> + + (help--append-keystrokes-help): Fix bug#76341 + + * lisp/help.el (help--append-keystrokes-help): Silence the help message + when there is no help key. + +2025-02-22 Juri Linkov <juri@linkov.net> + + * lisp/treesit.el (treesit-up-list, treesit-outline-level): Improve. + + Try to get the parent parser host node that contains the + embedded parser and continue the search from it (bug#76398). + +2025-02-22 Stefan Kangas <stefankangas@gmail.com> + + Delete self-evident explanation from cl.texi + + * doc/misc/cl.texi (Setf Extensions): Delete self-evident + explanation. + +2025-02-22 Eli Zaretskii <eliz@gnu.org> + + Make 'text-property-default-nonsticky' buffer-local when set + + * src/textprop.c (syms_of_textprop) + <text-property-default-nonsticky>: Make buffer-local when set. + (Bug#76445) + + * etc/symbol-releases.eld: Add text-property-default-nonsticky. + + * etc/NEWS: + * doc/lispref/text.texi (Sticky Properties): Document the change. + +2025-02-22 Stefan Kangas <stefankangas@gmail.com> + + Expand tests for cl-incf and cl-decf + + * test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-test-incf) + (cl-lib-test-decf): Expand tests. + +2025-02-22 Philip Kaludercic <philipk@posteo.net> + + Fix bug where VC packages were missing summaries + + * lisp/emacs-lisp/package-vc.el + (package-vc--generate-description-file): Run the heuristic to + determine the package summary if the current description is just + the default package summary. (Bug#76065) + +2025-02-22 Lockywolf <for_emacs-recentf-patch_2023-12-21@lockywolf.net> + + recentf.el: Add verbosity option + + * lisp/recentf.el (recentf-show-messages): New defcustom to + control verbosity. + (recentf-save-list): Use that to control verbosity. (Bug#67946) + +2025-02-22 Michael Albinus <michael.albinus@gmx.de> + + * lisp/net/tramp-sh.el (tramp-find-executable): Fix check. + +2025-02-22 shipmints <shipmints@gmail.com> + + define-ibuffer-op opstring active-opstring functions (bug#76222) + + * lisp/ibuf-macs.el: (define-ibuffer-op): 'opstring' and + 'active-opstring' can now be strings or functions. + + * etc/NEWS: Announce the change. + +2025-02-22 shipmints <shipmints@gmail.com> + + Inhibit "Wrote" message in saveplace.el when non-interactive + + * lisp/saveplace.el (save-place-alist-to-file): Tell 'write-region' + to be quiet when called non-interactively. This is in harmony with + 'savehist-save'. (Bug#76267) + +2025-02-22 Visuwesh <visuweshm@gmail.com> + + Make yank-media auto select the best mime type + + * lisp/yank-media.el (yank-media-preferred-types): Add new + variable that holds the list of mime types in order of their + preference. + (yank-media-autoselect-function): Add new variable and function + to choose the most preferred media type. + (yank-media): Make 'yank-media' choose the most preferred mime + type by default. + * doc/emacs/killing.texi (Clipboard): + * doc/lispref/frames.texi (Yanking Media): Document the new + behaviour, and the new variables. + * etc/NEWS: Announce the change. (Bug#75116) + +2025-02-22 Mauro Aranda <maurooaranda@gmail.com> + + Speed up widget creation (Bug#53606) + + * lisp/wid-edit.el (widget-default-create, widget-checklist-add-item) + (widget-radio-add-item, widget-editable-list-entry-create): Don't + insert format escapes into the buffer, only to delete them after. + This avoids calls to delete-char and makes widget creation about 3 + times faster. + +2025-02-22 Stefan Kangas <stefankangas@gmail.com> + + * admin/check-doc-strings: Reduce false positives. + +2025-02-22 F. Jason Park <jp@neverwas.me> + + Use .pem extension for client certs in ERC docs + + * doc/misc/erc.texi (Connecting): Change file-name extensions to .pem in + all examples, and explain that the key and the cert can be combined into + one file. + (SASL): Use .pem extension for certs. + * lisp/erc/erc.el (erc--warn-once-before-connect): Revise doc. + (erc-tls): Use .pem extension for certs. (Bug#76278) + +2025-02-22 F. Jason Park <jp@neverwas.me> + + Don't kill window buffer in erc--split-line + + * lisp/erc/erc-backend.el (erc--split-line): Restore original window + buffer before killing temp buffer. (Bug#76404) + +2025-02-21 Stefan Kangas <stefankangas@gmail.com> + + Delete note on Emacs 19 modes from comint.el + + * lisp/comint.el: Delete note on how to convert pre-Emacs 20 modes to + use comint.el. Emacs 20 was released in 1997, so it's safe to assume + that any relevant code has been updated in the last three decades. + +2025-02-21 Jostein Kjønigsen <jostein@kjonigsen.net> + + Fix identation in csharp-mode.el + + * lisp/progmodes/csharp-mode.el (csharp-ts-mode--indent-rules): Fix + indentation for using statements and multiline lambdas. (Bug#75883) + Patch based on bug report by Dino Chiesa <dpchiesa@hotmail.com>. + +2025-02-21 Stefan Kangas <stefankangas@gmail.com> + + New user option checkdoc-allow-quoting-nil-and-t + + * lisp/emacs-lisp/checkdoc.el (checkdoc-allow-quoting-nil-and-t): + New user option that allows turning off the warning for having nil + and t in quotes. + (checkdoc-this-string-valid-engine): Use above new option. + +2025-02-21 Stefan Kangas <stefankangas@gmail.com> + + Prefer defvar-keymap in admin/gitmerge.el + + * admin/gitmerge.el (gitmerge-mode-map): Prefer defvar-keymap. + +2025-02-21 Stefan Kangas <stefankangas@gmail.com> + + Prefer defvar-keymap in auth-source.el + + * lisp/auth-source.el (read-passwd-map): Prefer defvar-keymap. + +2025-02-21 Michael Albinus <michael.albinus@gmx.de> + + Use a persistent directory as default directory in diff + + * lisp/vc/diff.el (diff-no-select): Use `temporary-file-directory' + as default directory. Set default file permissions temporarily to + #o600. (Bug#69606) + +2025-02-21 Juri Linkov <juri@linkov.net> + + New variable 'treesit-aggregated-outline-predicate' (bug#76398) + + * doc/lispref/modes.texi (Outline Minor Mode): + Add 'treesit-aggregated-outline-predicate'. + + * lisp/treesit.el (treesit-aggregated-outline-predicate): + New buffer-local variable. + (treesit-outline--at-point): + Use 'treesit-aggregated-outline-predicate'. + (treesit-closest-parser-boundary): New function. + (treesit-outline-search): Use 'treesit-aggregated-outline-predicate' + and 'treesit-closest-parser-boundary'. + (treesit-outline-level): Use 'treesit-aggregated-outline-predicate'. + (treesit-major-mode-setup): Add 'treesit-aggregated-outline-predicate'. + + * lisp/textmodes/html-ts-mode.el (html-ts-mode--outline-predicate): + Improve. + + * lisp/textmodes/mhtml-ts-mode.el (mhtml-ts-mode): + Set 'treesit-aggregated-outline-predicate'. + +2025-02-21 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 25ba2536091 Fix reported Haiku build error in emacs-30.1-rc1 + 92e96a11752 ; Delete troff markers from ChangeLog files + +2025-02-21 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 3515ff95bce Update files for Emacs 30.1 + 375c3622e2d ; Fix typo introduced in "* ChangeLog.4: Reformat down to... + +2025-02-21 Po Lu <luangruo@yahoo.com> + + * configure.ac (BOBJECTLIST_OWNERSHIP_IS_TEMPLATE_PARAMETER): Correct test. + +2025-02-20 Philip Kaludercic <philipk@posteo.net> + + Have 'submit-emacs-patch' insert maintainers into X-Debbugs-Cc + + * lisp/mail/emacsbug.el (submit-emacs-patch): Go through all files + mentioned in the diff and check for maintainers. + (submit-emacs-patch-excluded-maintainers): Add constant. (Bug#69646) + +2025-02-20 Mattias Engdegård <mattiase@acm.org> + + * lisp/subr.el (oddp, evenp): Pure. % faster than logand. + + * src/fns.c (Fmapconcat): Faster fast-path condition + +2025-02-20 Juri Linkov <juri@linkov.net> + + Remove duplicate information from some completing-read-multiple prompts + + * lisp/info.el (info-finder): + * lisp/emacs-lisp/package.el (package-isolate) + (package-menu-filter-by-archive, package-menu-filter-by-keyword): + Remove mentions of comma separator from the prompts + since now 'completing-read-multiple' shows this information + by the default format (bug#76028). + +2025-02-20 Po Lu <luangruo@yahoo.com> + + Fix signal when first enabling Custom-mode on non-GUI builds + + * lisp/cus-edit.el (Custom-mode): Define tool-bar-map if not + bound and elaborate why this must be arranged. + +2025-02-20 Po Lu <luangruo@yahoo.com> + + Fix set-time-zone-rule on DJGPP + + * lisp/loadup.el ("tooltip"): Load even on MS-DOS. + + * src/timefns.c (tzvalbuf): Don't define on MS-DOS. + (emacs_getenv_TZ, emacs_setenv_TZ) [MSDOS]: Call getenv and + putenv rather than overwrite existing environment storage to + update DJGPP's environment modification counter. + +2025-02-20 Po Lu <luangruo@yahoo.com> + + Port to modern GCC and pdumper on MS-DOS + + * config.bat (mvOk): Protoize. + (djgppOk): Include sys/version.h for _DJGPP_MINOR. + + * lisp/loadup.el: If system-type is ms-dos, dump bootstrap-emacs + as b-emacs.dmp. + + * msdos/INSTALL: Document new versions of tools that have been + verified successfully to compile Emacs. + + * msdos/emacs.djl: New linker script that arranges to link + symbols in `.subrs' in a contiguous part of data, as the DJGPP + runtime appears to treat any non-data and non-text section as + allocatable. + + * msdos/mainmake.v2 (install): Install emacs.dmp alongside + emacs.exe. + + * msdos/sed1v2.inp (CFLAGS): Define to -O2 -g3. + (LDFLAGS): Provide the said linker script. + (HAVE_PDUMPER): Define to yes. + (UNEXEC_OBJ, PAXCTL_dumped, PAXCTL_notdumped): Delete. + (DUMPING): Set to pdumper. + (MAKE_PDUMPER_FINGERPRINT): Don't erase this variable. + Don't stubify or set minstack. Remove native-comp specific + directives. Don't remove temacs prior to copying and replace + `pdmp' extension with DOS-conformant `dmp'. + + * msdos/sed2v2.inp (HAVE_UNEXEC): Remove definition. + (HAVE_PDUMPER): Define to 1. + + * msdos/sed6.inp (top_srcdir): Define appropriately. + + * msdos/sedlibmk.inp (HAVE_BLKCNT_T): Define to 1. + + * src/emacs.c (load_pdump) [MSDOS]: Use `dmp' suffix. + + * src/pdumper.c (Fdump_emacs_portable) [MSDOS]: Replace ".pdmp" + suffixes with ".dmp". + +2025-02-19 Stefan Kangas <stefankangas@gmail.com> + + Prefer defvar-keymap in conf-mode.el + + * lisp/textmodes/conf-mode.el (conf-mode-map): Prefer defvar-keymap. + +2025-02-19 Michael Albinus <michael.albinus@gmx.de> + + Simplify Tramp's find-executable + + * lisp/net/tramp-cache.el (with-tramp-saved-connection-property): + Fix typo. + + * lisp/net/tramp-compat.el: Add TODO. + + * lisp/net/tramp-sh.el (tramp-find-executable): Simplify, using + "type -P ...". + (tramp-set-remote-path): Better handling of superlong $PATH. + (tramp-get-remote-path): Adapt/use connection properties. + + * test/lisp/net/tramp-tests.el (tramp--test-enabled) + (tramp-test03-file-name-host-rules): Don't wrap + `tramp-cleanup-connection' with `ignore-errors'. + +2025-02-19 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + ded77fefffa Fix remaining Android bugs reported over the past months + +2025-02-19 Jared Finder <jared@finder.org> + + * lisp/subr.el (read-key): Add 'tab-line' (bug#76408). + +2025-02-19 Gerd Möllmann <gerd.moellmann@gmail.com> + + Don't call x-popup-function for non-tty frames + + * src/menu.c (x_popup_menu_1): Don't call x-popup-function for non-tty + frames + (syms_of_menu): Remove Qx_popup_menu_function because unused, extend doc + string of x-popup-menu-function. + +2025-02-19 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + e97be722d39 Properly move existing tooltips on Android + 0cf3d341522 ; * ChangeLog.4: Reformat down to 28 March 2024. + ccaa0be8e71 ; * ChangeLog.4: Check in ommitted change. + b5410cbea2e ; * ChangeLog.4: Fix log entries down to the 1 May 2024. + be7625cae73 ; Fix typos + d447cd9fcc0 ; * ChangeLog.4: Update. + 5dc2a573750 ; * admin/authors.el (authors-ignored-files): Ignore gnus... + +2025-02-19 Gerd Möllmann <gerd.moellmann@gmail.com> + + Handle nil top frame (bug#76410) + + * src/frame.c (do_switch_frame): Don't assume that top_frame is always a + frame, it can be nil. + +2025-02-19 Stefan Monnier <monnier@iro.umontreal.ca> + + (json-pretty-print): Rework a bit + + * lisp/json.el (json-pretty-print): Call 'replace-buffer-contents' + separately for each json object rather than once at the end, so + its work is easier. Use 'json--print' rather than 'json-encode' so as + to avoid creating yet more temp buffers. + +2025-02-19 Po Lu <luangruo@yahoo.com> + + Don't insist on the presence of a mouse in strokes-mode + + * lisp/strokes.el (strokes-mode): Don't test `display-mouse-p', + as the presence of a mouse may vary over the course of an Emacs + session. + +2025-02-19 kobarity <kobarity@gmail.com> + + Add python-ts-mode to ffap-alist + + * lisp/progmodes/python.el (ffap-alist): Add + python-ts-mode. (Bug#76364) + +2025-02-18 Stefan Kangas <stefankangas@gmail.com> + + Make cl-locally obsolete + + * doc/misc/cl.texi (Declarations): Don't document cl-locally. + * lisp/emacs-lisp/cl-macs.el (cl-locally): Make into obsolete + function alias for progn. + +2025-02-18 Rahul Martim Juliato <rahul.juliato@gmail.com> + + Add markdown-ts-mode + + * lisp/textmodes/markdown-ts-mode.el: New file. + Ref: https://lists.gnu.org/r/emacs-devel/2024-06/msg01061.html + +2025-02-18 Stefan Monnier <monnier@iro.umontreal.ca> + + (lexical-binding): Allow changing the default value (bug#74145) + + * lisp/loadup.el: Preserve (default-toplevel-value 'lexical-binding). + + * src/lread.c (Fload, Feval_buffer): Obey (default-toplevel-value + 'lexical-binding). + + * doc/lispintro/emacs-lisp-intro.texi (Lexical vs Dynamic Binding + Example): Use the lexical dialect also for the dynamic + scoping example. + * doc/lispref/edebug.texi (Edebug Eval): Remove long-obsolete mention + of Edebug support for `lexical-let`. + +2025-02-18 Liu Hui <liuhui1610@gmail.com> + + Disable PyREPL in Python shell + + The new default REPL (PyREPL) in Python 3.13 is incompatible + with Python shell and displays a warning message when reverting + to the old basic REPL. + + * lisp/progmodes/python.el + (python-shell--calculate-process-environment): Use the basic + REPL. (Bug#76205) + +2025-02-18 kobarity <kobarity@gmail.com> + + Improve completion in IPython/Python 3.13 + + IPython/Python 3.13 indirectly imports rlcompleter, and the + completer is set up to reference rlcompleter.__main__. + However, this rlcompleter.__main__ is different from the + __main__ in the REPL execution. Therefore, this completer + cannot correctly complete the REPL globals. To address this + issue, we override rlcompleter.__main__ with __main__ only in + the case of IPython. + + * lisp/progmodes/python.el (python-shell-completion-native-setup): + Modify __PYTHON_EL_native_completion_setup(). (Bug#76205) + +2025-02-18 Stefan Kangas <stefankangas@gmail.com> + + Prefer defvar-keymap in tcl.el + + * lisp/progmodes/tcl.el (tcl-mode-map, inferior-tcl-mode-map): Prefer + defvar-keymap. + +2025-02-18 Stefan Kangas <stefankangas@gmail.com> + + Prefer defvar-keymap in pascal.el + + * lisp/progmodes/pascal.el (pascal-mode-map, pascal-outline-map): + Prefer defvar-keymap. + +2025-02-18 Stefan Kangas <stefankangas@gmail.com> + + Prefer defvar-keymap in meta-mode.el + + * lisp/progmodes/meta-mode.el (meta-common-mode-map): Prefer + defvar-keymap. + +2025-02-18 Stefan Kangas <stefankangas@gmail.com> + + Prefer plusp to open-coding it in image-dired + + * lisp/image/image-dired.el (image-dired-display-thumbs) + (image-dired-forward-image, image-dired-slideshow-start) + (image-dired-line-up-interactive): Prefer plusp to open-coding it. + +2025-02-18 Stefan Monnier <monnier@iro.umontreal.ca> + + (replace_range): Delete last arg, always the negation of the first bool + + * src/insdel.c (replace_range): Merge last arg, with `prepare`. + Rename `prepare` to `run-mode-hooks`. + * src/lisp.h (replace_range): Adjust accordingly. + * src/editfns.c (Ftranslate_region_internal): + * src/cmds.c (internal_self_insert): + * src/search.c (Freplace_match): Adjust callers. + +2025-02-18 Stefan Monnier <monnier@iro.umontreal.ca> + + src/search.c (Freplace_match): Let `replace_range` call the a-c-f + +2025-02-18 Stefan Monnier <monnier@iro.umontreal.ca> + + * src/editfns.c (Fsubst_char_in_region): Delete left-over code + + This code was missed back in 2000 (commit 1b16afa45bb6). + +2025-02-18 Gerd Möllmann <gerd.moellmann@gmail.com> + + * src/menu.c (x_popup_menu_1): Use calln. + +2025-02-18 Po Lu <luangruo@yahoo.com> + + * src/menu.c (x_popup_menu_1): Fix coding style. + +2025-02-18 Po Lu <luangruo@yahoo.com> + + Don't access overriding-text-conversion-style when unbound + + * lisp/replace.el (perform-replace): Don't access + overriding-text-conversion-style when unbound, and also avoid + needlessly polluting this symbol with a binding. (bug#76371) + +2025-02-18 Gerd Möllmann <gerd,moellmann@gmail.com> + + Add x-popup-menu-function + + * src/menu.c (x_popup_menu_1): If non-nil call x-popup-menu-function. + (syms_of_menu): DEFSYM x-popup-menu-function, DEFVAR_LISP it. + +2025-02-18 Gerd Möllmann <gerd,moellmann@gmail.com> + + Hide cursor based on tty frame's `cursor-type' + + * src/dispnew.c (terminal_cursor_magic): if selected-frame has + `(cursor-type . nil)' parameter. + +2025-02-18 john muhl <jm@pub.pink> + + Add MPD stats viewer to 'mpc' (Bug#76350) + + * lisp/mpc.el (mpc-server-stats): New command. + (mpc-mode-menu): Add menu item. + (mpc--server-stats-date, mpc--server-stats-duration): + New variable. + (mpc--server-stats-date, mpc--server-stats-duration): + (mpc--server-stats-format): New function. + (mpc-song-viewer-value, mpc-song-viewer-tag): + (mpc-song-viewer-empty): Remove face. + (mpc-table-value, mpc-table-key, mpc-table-empty): New face. + (mpc-describe-song): Use new table face names. + +2025-02-18 Basil L. Contovounesios <basil@contovou.net> + + Improve autoconf-mode macro detection + + * doc/lispref/modes.texi (Search-based Fontification): Fix + indentation of (MATCHER . FACESPEC) example. + * doc/misc/cc-mode.texi (Performance Issues): Index + defun-prompt-regexp under variables, not functions. + + * lisp/progmodes/autoconf.el (autoconf--symbol, autoconf--macro): + New rx definitions. + (autoconf-definition-regexp): Use an optional second capture group + to indicate a function rather than variable definition. Detect + AC_DEFINE defining a function-like CPP macro. Skip more shell + syntax such as variable ${} expansion and command `` substitution in + AC_DEFINE_UNQUOTED variable. Match AH_VERBATIM, AM_CONDITIONAL, and + AM_MISSING_PROG as defining variables, and AC_DEFUN, AC_DEFUN_ONCE, + AU_ALIAS, and AU_DEFUN as defining functions. Document first + capture group in docstring. + (autoconf-font-lock-keywords): Use autoconf--macro to match more + Autoconf macros, such as those defined in the Autoconf Archive and + Gnulib. Reserve font-lock-function-name-face for function + definitions as determined by autoconf-definition-regexp, and use + font-lock-variable-name-face for the rest instead. Use Font Lock + face symbols directly in place of their corresponding variable. + Fontify M4 changequote primitive only as a standalone symbol. + (autoconf-imenu-generic-expression): Add commentary mentioning new + submenu possibility. + (autoconf-current-defun-function): Update docstring accuracy. + Replace line-end-position with pos-eol since there are no fields. + (autoconf-mode): Define defun-prompt-regexp in terms of + autoconf--macro to support more toplevel macros, such as those + defined in Autoheader, M4sh, etc. Set + open-paren-in-column-0-is-defun-start to nil to avoid false + positives when an Autoconf quote character is in column zero. + + * test/lisp/progmodes/autoconf-resources/configure.ac: New file. + * test/lisp/progmodes/autoconf-tests.el + (autoconf-tests-current-defun-function-define) + (autoconf-tests-current-defun-function-subst): Replace character + motion with search. + (autoconf-tests-autoconf-mode-comment-syntax): Ditto. Test both dnl + and # comments. Use syntax-ppss-context. + (autoconf-tests-font-lock): New test. + +2025-02-17 Antero Mejr <mail@antr.me> + + Add file completion for git apply, am to pcomplete + + * lisp/pcmpl-git.el (pcomplete/git): Add an "apply" and "am" clause to + complete all files. (Bug#76356) + +2025-02-17 Stefan Kangas <stefankangas@gmail.com> + + Prefer oddp/evenp to open-coding in a few more cases + + * lisp/arc-mode.el (archive-zip-summarize): + * lisp/cus-edit.el (setopt): + * lisp/isearch.el (isearch-backslash): + * lisp/simple.el (blink-paren-post-self-insert-function): + * lisp/subr.el (setq-local, buffer-local-set-state): + * lisp/term.el (term-within-quotes): + * test/src/data-tests.el (test-bool-vector-bv-from-hex-string): Use + oddp/evenp instead of open-coding them. + Reported by Pip Cet <pipcet@protonmail.com>. + +2025-02-17 Richard Stallman <rms@gnu.org> + + merging with my changes in cond-star.el. + +2025-02-17 Stefan Kangas <stefankangas@gmail.com> + + Prefer plusp/minusp to open-coding them in subr.el + + * lisp/subr.el (lsh, nbutlast, number-sequence, add-to-history) + (read-char-from-minibuffer, split-string, subst-char-in-string) + (forward-whitespace, forward-symbol, forward-same-syntax) + (progress-reporter-do-update, version-list-<): Prefer plusp/minusp to + open-coding them. + +2025-02-17 Stefan Kangas <stefankangas@gmail.com> + + Prefer plusp/minusp to cl-plusp/cl-minusp + + * lisp/dired.el (dired--move-to-next-line): + * lisp/emacs-lisp/ert.el (ert-run-tests-batch, ert-face-for-stats): + * lisp/emacs-lisp/pp.el (pp--format-definition): + * lisp/gnus/gnus-icalendar.el (gnus-icalendar-event--org-timestamp): + * lisp/ibuffer.el (ibuffer-compile-format, ibuffer--format-title) + (ibuffer--format-summary): + * lisp/image-mode.el (image-transform-set-percent): + * lisp/international/emoji.el (emoji--list-generate, emoji--read-emoji): + * lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation) + (ebrowse-set-member-buffer-column-width) + (ebrowse-cyclic-display-next/previous-member-list) + (ebrowse-draw-member-short-fn) + (ebrowse-switch-member-buffer-to-sibling-class, ebrowse-push-position): + * lisp/textmodes/dns-mode.el (dns-mode-reverse-and-expand-ipv6): + * test/lisp/emacs-lisp/bytecomp-tests.el + (bytecomp-tests--not-writable-directory) + (bytecomp-tests--dest-mountpoint) + (bytecomp-tests--target-file-no-directory): + * test/lisp/emacs-lisp/cl-seq-tests.el (cl-member-if-test) + (cl-member-if-not-test, cl-assoc-if-not-test, cl-rassoc-if-test) + (cl-rassoc-if-not-test): + * test/src/emacs-module-tests.el (mod-test-add-nanosecond/valid): + Prefer plusp and minusp to cl-plusp and cl-minusp. + +2025-02-17 Stefan Kangas <stefankangas@gmail.com> + + New functions plusp and minusp + + * lisp/emacs-lisp/cl-lib.el (cl-plusp, cl-minusp): Move from here... + * lisp/subr.el (plusp, minusp): ...to here. Make old names into + aliases, documented as deprecated. Add type declarations. Change from + defsubst to regular functions with compiler macros. + * lisp/obsolete/cl.el: Don't alias plusp and minusp. + + * test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-test-plusp) + (cl-lib-test-minusp): Move tests from here... + * test/lisp/subr-tests.el (subr-test-plusp, subr-test-minusp): + ...to here. + + * doc/lispref/numbers.texi (Predicates on Numbers): Document plusp + and minusp. + * doc/misc/cl.texi (Predicates on Numbers): Delete cl-plusp and + cl-minusp. + * lisp/emacs-lisp/shortdoc.el (number): Document plusp and minusp + instead of cl-plusp and cl-minusp. + +2025-02-17 Yuan Fu <casouri@gmail.com> + + Rename treesit-add-simple-indent-rules + + * lisp/treesit.el (treesit-add-simple-indent-rules): Rename to + treesit-simple-indent-add-rules. + * etc/NEWS: Update. + * test/src/treesit-tests.el: + (treesit-test-simple-indent-add-rules): Update accordingly. + +2025-02-17 Yuan Fu <casouri@gmail.com> + + Rename treesit-simple-indent-modify-rules and fix docstring + + * lisp/treesit.el (treesit-simple-indent-modify-rules): Rename + and fix docstring. It should be matcher, not anchor. Also + reword a little bit. + * etc/NEWS: Update. + * lisp/textmodes/mhtml-ts-mode.el: + (mhtml-ts-mode--treesit-indent-rules): Update accordingly. + +2025-02-17 Yuan Fu <casouri@gmail.com> + + Make mhtml-ts-mode--treesit-indent-rules a function + + * lisp/textmodes/mhtml-ts-mode.el: + (mhtml-ts-mode--treesit-indent-rules): Turn into a function. + (mhtml-ts-mode): Update accordingly. + +2025-02-17 Kévin Le Gouguec <kevin.legouguec@gmail.com> + + Test vc-git-dir-extra-headers directly (bug#76187) + + * test/lisp/vc/vc-git-tests.el (vc-git-test--run): Make sure to + log output from failing Git commands. + (vc-git-test--dir-headers): Stop bothering with vc-dir + internals and just invoke the branch-munging and + header-formatting code we mean to test. + (vc-git-test-dir-branch-headers): Stop invoking vc-dir; just set + default-directory to be able to pass it to the backend function. + +2025-02-17 Pip Cet <pipcet@protonmail.com> + + Fix compilation errors due to insufficient compiler safety (bug#63288) + + The default safety level is 1. Restoring the default safety level to + 1 after it was temporarily 0 should reset byte-compile-delete-errors + to nil, its default level. Failing to do that resulted in + miscompilation of code in highly-parallel builds. + + * lisp/emacs-lisp/cl-macs.el (cl--do-proclaim): Change + 'byte-compile-delete-errors' to become t only at 'safety' level 0, not + levels 1 or 2. + +2025-02-17 Stefan Kangas <stefankangas@gmail.com> + + Prefer '(oddp A)' to '(= 1 (logand A 1))' + + * lisp/calendar/todo-mode.el (todo-padded-string): + * lisp/emacs-lisp/gv.el (setf): + * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): + * lisp/hexl.el (hexl-insert-hex-string): + * lisp/play/gamegrid.el (gamegrid-xbm): + * lisp/play/hanoi.el (hanoi-internal): + * lisp/progmodes/ebnf2ps.el (ebnf-end-of-string): + * lisp/progmodes/elisp-mode.el (elisp--highlight-function-argument): + * lisp/progmodes/ruby-mode.el (ruby-backward-sexp): + * lisp/ps-print.el (ps-print-page-p): + (ps-print-sheet-p): Prefer '(oddp A)' to '(= 1 (logand A 1))' and + variations thereof. + +2025-02-17 Stefan Kangas <stefankangas@gmail.com> + + Prefer '(evenp A)' to '(= 0 (logand A 1))' + + * lisp/calc/calc-arith.el (calcFunc-dint): + * lisp/calculator.el (calculator-expt): + * lisp/emacs-lisp/bytecomp.el (byte-compile-unfold-bcf): + * lisp/emacs-lisp/elint.el (elint-check-defcustom-form): + * lisp/ps-print.el (ps-print-page-p): + (ps-print-sheet-p): Prefer '(evenp A)' to '(= 0 (logand A 1))' and + variations thereof. + +2025-02-17 Mattias Engdegård <mattiase@acm.org> + + Make the rx `eval` form use lexical binding when active + + Previously, it always used dynamic binding. + + * lisp/emacs-lisp/rx.el (rx--expand-eval): Heed `lexical-binding`. + * test/lisp/emacs-lisp/rx-tests.el (rx-tests--x, rx-tests--get-x) + (rx-eval): Add test case. + * etc/NEWS: Announce. + +2025-02-17 Gerd Möllmann <gerd,moellmann@gmail.com> + + Fix child coordinate calculation (bug#76321) + + * src/dispnew.c (rect_intersect): Simplify. + (copy_child_glyphs): Compute child coordinates using child_xy. + +2025-02-17 Po Lu <luangruo@yahoo.com> + + Adapt query-replace and lazy highlighting to text conversion + + * lisp/isearch.el (isearch-lazy-highlight-new-loop): Rather call + redisplay to guarantee a valid window-start than sit-for, to + account for cases where this function is called from an + after-change-function bound to a special input event quickly + followed by another event that does not modify the buffer. + + * lisp/progmodes/prog-mode.el (treesit-node-at): Declare + function before references. + + * lisp/replace.el (perform-replace): When querying, suppress + text conversion around the input loop. + +2025-02-17 Martin Rudalics <rudalics@gmx.at> + + When ignoring parameters let 'split-window' split root window (Bug#76317) + + This fixes a behavior introduced by the fix of Bug#73527 that splits the + main window when the caller asks for splitting the root window. + + * lisp/window.el (window--make-major-side-window): Bind + 'ignore-window-parameters' to t so 'split-window' won't mess + with the WINDOW argument when it specifies the root window. + (split-window): If 'ignore-window-parameters' is non-nil, don't + try to split the main window instead of the root window. + +2025-02-17 Sean Whitton <spwhitton@spwhitton.name> + + vc-revert-file: Support reverting directories + + * lisp/vc/vc.el (vc-revert-file): Support reverting directories + by calling vc-responsible-backend instead of vc-backend when + FILE is a directory (bug#37310, bug#43464). Based on an + approach by Dmitry Gutov <dmitry@gutov.dev>. + (vc-rename-file): Add a FIXME to support reverting directories. + * etc/NEWS: Document the new functionality. + +2025-02-17 Vincenzo Pupillo <v.pupillo@gmail.com> + + Add mhtml-ts-mode. + + New major-mode alternative to mhtml-mode, based on treesitter, for + editing files containing html, javascript and css. + + * etc/NEWS: Mention the new mode and new functions. + * lisp/textmodes/mhtml-ts-mode.el: New file. + * lisp/progmodes/js.el + (js--treesit-thing-settings): New variable. + (js--treesit-font-lock-feature-list); New variable. + (js--treesit-simple-imenu-settings): New variable. + (js--treesit-defun-type-regexp): New variable. + (js--treesit-jsdoc-comment-regexp): New variable. + (js-ts-mode): Use of new variables instead of direct assignment of + values. + * lisp/textmodes/css-mode.el + (css-mode--menu): New variable. + (css-mode-map): Use new variable. + (css--treesit-font-lock-feature-list): New variable. + (css--treesit-simple-imenu-settings): New variable. + (css--treesit-defun-type-regexp): New variable. + (cs-ts-mode): Use of new variables instead of direct assignment of + values. + * lisp/textmodes/html-ts-mode.el + (html-ts-mode--treesit-things-settings): New variable. + (html-ts-mode--treesit-font-lock-feature-list): New variable. + (html-ts-mode--treesit-simple-imenu-settings): New variable. + (html-ts-mode--treesit-defun-type-regexp): New variable. + (html-ts-mode): Use of new variables instead of direct assignment of + values. + * lisp/treesit.el + (treesit-merge-font-lock-feature-list): New fuction. + (treesit-replace-font-lock-feature-settings): New fuction. + (treesit-modify-indent-rules): New function. + +2025-02-17 Stefan Kangas <stefankangas@gmail.com> + + Prefer '(evenp A)' to '(= 0 (% A 2))' + + * lisp/calc/calc-comb.el (math-prime-test): + * lisp/calc/calc-keypd.el (calc-keypad-press): + * lisp/calc/calc-math.el (math-sqrt): + (math-sqrt-raw): + * lisp/calc/calc-misc.el (math-iipow): + (math-iipow-show): + * lisp/calc/calc-stat.el (calcFunc-vmedian): + * lisp/calendar/cal-tex.el (cal-tex-cursor-filofax-2week): + (cal-tex-cursor-filofax-daily): + * lisp/elec-pair.el (electric-pair-post-self-insert-function): + * lisp/emacs-lisp/checkdoc.el (checkdoc-in-example-string-p): + * lisp/emacs-lisp/eieio.el (defclass): + * lisp/emacs-lisp/ert-x.el (ert-propertized-string): + * lisp/emacs-lisp/ert.el (ert--significant-plist-keys): + (ert--plist-difference-explanation): + * lisp/emacs-lisp/helper.el (Helper-help-scroller): + * lisp/emacs-lisp/pcase.el (pcase-setq): + * lisp/files-x.el (setq-connection-local): + * lisp/gnus/gnus-uu.el (gnus-uu-post-encoded): + * lisp/gnus/message.el (message-make-in-reply-to): + * lisp/gnus/nndiary.el (nndiary-last-occurrence): + (nndiary-next-occurrence): + * lisp/mail/rfc2047.el (rfc2047-decode-region): + * lisp/play/5x5.el (5x5-draw-grid): + * lisp/play/gametree.el (gametree-compute-reduced-score): + (gametree-insert-new-leaf): + (gametree-break-line-here): + * lisp/play/zone.el (zone-fret): + * lisp/vc/ediff-ptch.el (ediff-get-patch-buffer): + * lisp/yank-media.el (yank-media--utf-16-p): Prefer '(evenp A)' to + '(= 0 (% A 2))' and variations thereof. + +2025-02-17 Stefan Kangas <stefankangas@gmail.com> + + Prefer '(oddp A)' to '(= 1 (% A 2))' + + * lisp/align.el (align-match-tex-pattern): + * lisp/calc/calc-funcs.el (math-bernoulli-number): + * lisp/cedet/semantic/bovine/el.el (semantic-ctxt-current-assignment): + * lisp/comint.el (comint-within-quotes): + * lisp/emacs-lisp/chart.el (chart-axis-draw): + * lisp/emacs-lisp/cl-extra.el (cl-round): + * lisp/emacs-lisp/eieio.el (defclass): + * lisp/emacs-lisp/elint.el (elint-check-setq-form): + * lisp/emulation/cua-rect.el (cua--rectangle-right-side): + * lisp/progmodes/gud.el (gud-gdb-completions-1): + * lisp/ps-print.el (ps-end-job): + * lisp/ses.el (ses-center): + * lisp/vc/ediff-ptch.el (ediff-get-patch-buffer): Prefer '(oddp A)' to + '(= 1 (% A 2))' and variations thereof. + +2025-02-17 Stefan Kangas <stefankangas@gmail.com> + + Prefer oddp/evenp to free-coding them in tests + + * test/lisp/emacs-lisp/bindat-tests.el (bindat-test--sint): + * test/lisp/emacs-lisp/seq-tests.el (test-seq-drop-while) + (test-seq-take-while, test-seq-filter, test-seq-remove) + (test-seq-count, test-seq-some, test-seq-find, test-seq-every-p) + (test-seq-group-by): + * test/lisp/eshell/em-pred-tests.el (eshell-with-file-attributes-from-name): + * test/lisp/filenotify-tests.el (file-notify-test07-many-events) + (file-notify-test09-watched-file-in-watched-dir): + * test/src/floatfns-tests.el (bignum-expt, bignum-round): + * test/src/undo-tests.el (undo-test4): Prefer oddp/evenp to free-coding + them. + +2025-02-17 Stefan Kangas <stefankangas@gmail.com> + + Prefer oddp/evenp to cl-oddp/cl-evenp + + * lisp/calc/calc-ext.el (math-oddp): + * lisp/calc/calc-misc.el (math-evenp): + * lisp/calendar/todo-mode.el + (todo-adjusted-category-label-length, todo-insert-category-line) + (todo-update-categories-display): + * lisp/emacs-lisp/cl-macs.el (cl-defstruct): + * lisp/net/gnutls.el (open-gnutls-stream): + * lisp/tab-line.el (tab-line-tab-face-inactive-alternating): + * test/lisp/auth-source-tests.el + (auth-source-test-macos-keychain-search): + * test/lisp/emacs-lisp/cl-extra-tests.el (cl-extra-test-notany) + (cl-extra-test-notevery): + * test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-adjoin-test): + * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs-loop-collect) + (cl-macs-loop-append/nconc, cl-macs-loop-when) + (cl-macs-loop-if): + * test/lisp/emacs-lisp/cl-seq-tests.el (cl-seq-remove-test) + (cl-remove-if-test, cl-remove-if-not-test, cl-seq-delete-test) + (cl-delete-if-test, cl-delete-if-not-test) + (cl-seq-substitute-if-test, cl-seq-substitute-if-not-test) + (cl-find-if-test, cl-find-if-not-test, cl-position-if-test) + (cl-seq-count-test, cl-count-if-test, cl-count-if-not-test) + (cl-member-if-test, cl-member-if-not-test, cl-assoc-if-test) + (cl-assoc-if-not-test, cl-rassoc-if-test) + (cl-rassoc-if-not-test): + * test/src/treesit-tests.el (treesit-search-forward-predicate): + Prefer oddp/evenp to cl-oddp/cl-evenp where possible. + + * lisp/calc/calc-ext.el (cl-lib): + * lisp/calc/calc-misc.el (cl-lib): Don't require. + +2025-02-17 Stefan Kangas <stefankangas@gmail.com> + + New functions oddp and evenp + + * lisp/emacs-lisp/cl-lib.el (cl-oddp, cl-evenp): Move from here... + * lisp/subr.el (oddp, evenp): ...to here. Make old names into + aliases, documented as deprecated. Add type declarations. + * lisp/obsolete/cl.el: Don't alias oddp and evenp. + + * test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-test-oddp) + (cl-lib-test-evenp): Move tests from here... + * test/lisp/subr-tests.el (subr-test-oddp, subr-test-evenp): ...to here. + * lisp/emacs-lisp/shortdoc.el (number): Add oddp and evenp. + (map): Prefer oddp and evenp to cl-oddp and cl-evenp. + + * doc/lispref/numbers.texi (Predicates on Numbers): Document above new + functions oddp and evenp. + * doc/misc/cl.texi (Predicates on Numbers): Delete cl-oddp and cl-evenp. + (Other Clauses): Prefer oddp to cl-oddp. + +2025-02-17 Po Lu <luangruo@yahoo.com> + + Implement `(- N)' frame position specifications on Haiku + + * src/haikuterm.c (haiku_calc_absolute_position): New function. + (haiku_set_offset): Apply offsets configured by the said + function. + +2025-02-17 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + e3dc0ea2544 Fix crash in frame deletion on Android + e34ea5db5f1 * src/pgtkterm.c (pgtk_enumerate_devices): Circumvent bug... + 48f9d6aafea * lisp/man.el (Man-shell-file-name): Ensure a Bourne shel... + 7016c13e5e6 ; Update etc/AUTHORS (bug#76319). + 0bc7b5a389b ; * admin/authors.el (authors-aliases): Add "Elías Gabrie... + e9c4f642b9d ; * doc/emacs/package.texi (Package Installation): Add om... + 8c4294f370f ; Move index entries in user manual + + # Conflicts: + # src/pgtkterm.c + +2025-02-17 Po Lu <luangruo@yahoo.com> + + Synchronize frame placement logic with X + + * src/androidterm.c (android_calc_absolute_position): New + function. + (android_set_offset): Call android_calc_absolute_position. + + * src/pgtkterm.c (pgtk_calc_absolute_position): Synchronize with + X. + +2025-02-17 Stefan Kangas <stefankangas@gmail.com> + + Add test for zerop + + * test/lisp/subr-tests.el (subr-test-zerop): New test. + +2025-02-17 Stefan Kangas <stefankangas@gmail.com> + + Remove some details on which files are loaded from cl.texi + + * doc/misc/cl.texi (Naming Conventions): Remove section listing + functions that do not cause other files than cl-lib.el to be loaded. + It lacks practical relevance to the user, and is a hostage to changing + implementation details. + +2025-02-17 Stefan Kangas <stefankangas@gmail.com> + + Address FIXME in org-element-create + + * lisp/org/org-element-ast.el (org-element-create): Address FIXME. + +2025-02-17 Stefan Kangas <stefankangas@gmail.com> + + Prefer cl-evenp/cl-oddp in some places + + * lisp/erc/erc.el (erc-format-message): + * lisp/obsolete/thumbs.el (thumbs-emboss-image): + * lisp/org/org-capture.el (org-capture-escaped-%): + * lisp/org/org-element-ast.el (org-element-create): + * lisp/org/org-macro.el (org-macro-extract-arguments): + * lisp/org/org-persist.el (org-persist--get-collection): + * lisp/org/ox-odt.el (org-odt-get-table-cell-styles): + * lisp/org/ox.el (org-export--dispatch-ui): + * lisp/progmodes/cperl-mode.el (cperl-forward-re) + (cperl-find-pods-heres): Prefer 'cl-evenp/'cl-oddp' to free-coding them + in some files that already depend on cl-lib in run-time. + +2025-02-16 Elías Gabriel Pérez <eg642616@gmail.com> + + Add gtk-redo icon to x-gtk-stock-map to x-win.el + + * lisp/term/x-win.el (x-gtk-stock-map): Add gtk-redo. + +2025-02-16 Elías Gabriel Pérez <eg642616@gmail.com> + + Add gtk-redo icon to x-gtk-stock-map + + * lisp/term/pgtk-win.el (x-gtk-stock-map): Add gtk-redo. (Bug#76349) + +2025-02-16 João Távora <joaotavora@gmail.com> + + Eglot: Improve fix to bug#66144 + + The :exit notification should also take an empty JSON object instead of + JSON null as its parameters. + + * lisp/progmodes/eglot.el (eglot-shutdown): Use eglot--{} in + :exit notifcation, too. + +2025-02-16 Stefan Monnier <monnier@iro.umontreal.ca> + + (set-auto-mode--find-matching-alist-entry): Fix bug#75961 + + * lisp/files.el (set-auto-mode--find-matching-alist-entry): Run the + MODE found in (REGEXP MODE t) before we replace it with something else. + + * test/lisp/files-tests.el (files-tests--bug75961): New test. + +2025-02-15 Michael Albinus <michael.albinus@gmx.de> + + Tramp: Don't require PuTTY 0.82 anymore + + * doc/misc/tramp.texi: Revert last change. + + * lisp/net/tramp-cache.el (with-tramp-saved-connection-properties): + Adapt `tramp-verbose' when completing host names. + + * lisp/net/tramp-sh.el (tramp-methods) <plink, plinkx, pscp, psftp>: + Adapt `tramp-login-args' and `tramp-copy-args' arguments. + (tramp-plink-option-exists-p): New defun. + (tramp-ssh-or-plink-options): Rename from + `tramp-ssh-controlmaster-options'. Adapt further plink options. + (tramp-do-copy-or-rename-file-out-of-band) + (tramp-maybe-open-connection): Adapt calls. + + * lisp/net/tramp.el (tramp-file-name-handler): Don't touch + `tramp-verbose'. + + * test/lisp/net/tramp-tests.el (top): Set `vc-handled-backends' to nil. + (tramp--test-enabled): Rearrange code. + +2025-02-15 Stefan Monnier <monnier@iro.umontreal.ca> + + (diff-mode-test-font-lock): Fix spurious test failure + + * test/lisp/vc/diff-mode-tests.el (diff-mode-test-font-lock): + Don't nitpick about non-face-affecting overlays. + +2025-02-15 David Ponce <da_vid@orange.fr> + + Fix DOM printing + + Fix DOM printing when an attribute value is not a string, which is + often the case in SVG DOM. Don't print attributes without a + value. Refresh the list of HTML boolean attributes. + * lisp/dom.el (dom--html-boolean-attribute-p): New function. + (dom-print): Use it. Convert attribute value to string before to + call `url-insert-entities-in-string'. Don't print attribute + without a value. Compute indentation column outside of loop and + call `indent-line-to' to indent line. (Bug#5928) + + * test/lisp/dom-tests.el (dom-tests-print-svg) + (dom-tests-print-html-boolean): New tests. + +2025-02-15 Richard Stallman <rms@gnu.org> + + Change criteria for non-exit cualse: car s to or a bind*. + + * lisp/emacs-lisp/cond-star.el (cond*-non-exit-clause-p): + Don't check for keywords; a clause is non-exit if it + starts with t or with a bind*. + +2025-02-15 Daniel Mendler <mail@daniel-mendler.de> + + completing-read-multiple: CRM indication and prompt customization + + The `completing-read-multiple' prompt indicates multi + completion. The customization option `crm-prompt' configures + the formatting of the prompt. The variable can be set to "%p" + in order to only display the original prompt, to "[%d] %p" to + display the separator description and the prompt, or to "[CRM%s] + %p" to display a shorter indicator of only the separator string + and the prompt. + * lisp/emacs-lisp/crm.el (crm-prompt): New user option. + (crm-separator): Update value and docstring. + (completing-read-multiple): Use `crm-prompt' to format the + prompt. + * etc/NEWS: Announce the change. + (Bug#76028) + +2025-02-15 kobarity <kobarity@gmail.com> + + Fix string end search in python-nav-end-of-statement + + * lisp/progmodes/python.el (python-nav-end-of-statement): + Change to look for string delimiter characters and check + syntax, instead of looking for string-delimiter syntax. + * test/lisp/progmodes/python-tests.el + (python-nav-end-of-statement-5): New test. (Bug#75387) + +2025-02-15 Eli Zaretskii <eliz@gnu.org> + + Prevent buffer overflow in line-numbering code + + * src/xdisp.c (maybe_produce_line_number): Limit the value of + 'display-line-numbers-width' to what can be shown in the window, + and set dimension of the lnum_buf[] accordingly. (Bug#75969) + +2025-02-15 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 58e4bfe3408 Add two missing NULL checks of malloc'd values on Android + 81ca9c75f11 ; * etc/PROBLEMS: Document how to grant storage permissio... + d82d4689794 ; * etc/TODO: Rethink finder-known-keywords. + b9b9c33dcbe Fix (Non)GNU ELPA description in manual + 87a61eba1b8 Move 'package-archives' documentation to emacs manual + 316e47c5af4 ; * src/fns.c (Fmapconcat): Doc fix (bug#76242). + 3cfbeb3fca1 ; Fix >72 character long lines in docstring + c68886ddb76 ; Change "virus" to "malicious" in lispref + 6701866be4d Document (Non-)GNU ELPA in emacs manual + 02851768b72 ; * .mailmap: Add entry for Thuna. (Bug#76221) + 2d7a8cbf4c8 Fix author name + 19314257485 Use c-ts-common's comment setup in go-ts-mode (bug#75978) + 316893ca387 Add java-language-server to eglot-server-programs + +2025-02-15 Stefan Monnier <monnier@iro.umontreal.ca> + + (smerge-refine-exchange-point): Error cleanly outside refinement + + * lisp/vc/smerge-mode.el (smerge-refine-regions): Cover each region + with an overlay. + (smerge-refine-exchange-point): Use it to detect more reliably that + we're not inside a refined region. + +2025-02-15 Stefan Monnier <monnier@iro.umontreal.ca> + + (smerge-refine-exchange-point): New command + + * lisp/vc/smerge-mode.el (smerge--refine-highlight-change): + Allow empty region and always create an overlay. Also, remember any + adjustment we applied the overlay's boundaries. + (smerge-refine-regions): Always create two overlays per hunk and "connect" + them via `smerge--refine-other`. + (smerge-refine-exchange-point): New command. + +2025-02-15 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/term/xterm.el (xterm--query-name-and-version): Don't quote lambda + +2025-02-14 Stefan Kangas <stefankangas@gmail.com> + + Prefer `(defsubst A ...)` to `(cl-proclaim (inline A))` + + * lisp/emacs-lisp/cl-macs.el: Remove cl-proclaim... + * lisp/emacs-lisp/cl-extra.el (cl-map, cl-notany, cl-notevery) + (cl-revappend, cl-nreconc): + * lisp/emacs-lisp/cl-lib.el (cl-acons): ...and use defsubst + instead. (Bug#76294) + +2025-02-14 Stefan Kangas <stefankangas@gmail.com> + + Inline important-return-value declarations in cl-lib.el + + These declarations are now properly added to 'cl-lib.el' itself, or to + 'cl-loaddefs.el'. This means that they will now correctly show up + immediately when loading 'cl-lib.el', instead of only after 'cl-macs.el' + is pulled in by an autoload. C.f. Bug#76247. + + I did not considered worth reproducing everywhere the list saying which + functions among the below belong to these two categories: + 1. Functions that are side-effect-free except for the behavior of + functions passed as argument. + 2. Functions that mutate and return a list. + + AFAIU, this is not actionable with our current byte-compiler, i.e. we + can't add any extra declarations based on it. However, if the list + should be needed at some point, for example due to improvements in the + compiler, this commit will be where to find it. In the worst case, and + with more work, it's also deducible from the source code itself. + + * lisp/emacs-lisp/cl-macs.el: Move important-return-value declarations + from here... + * lisp/emacs-lisp/cl-extra.el (cl-map, cl-maplist, cl-mapcan) + (cl-mapcon, cl-some, cl-every, cl-notany, cl-notevery, cl-nreconc): + * lisp/emacs-lisp/cl-lib.el (cl-mapcar, cl-adjoin, cl-subst): + * lisp/emacs-lisp/cl-seq.el (cl-reduce, cl-remove, cl-remove-if) + (cl-remove-if-not, cl-delete, cl-delete-if, cl-delete-if-not) + (cl-remove-duplicates, cl-delete-duplicates, cl-substitute) + (cl-substitute-if, cl-substitute-if-not, cl-nsubstitute) + (cl-nsubstitute-if, cl-nsubstitute-if-not, cl-find, cl-find-if) + (cl-find-if-not, cl-position, cl-position-if, cl-position-if-not) + (cl-count, cl-count-if, cl-count-if-not, cl-mismatch, cl-search) + (cl-sort, cl-stable-sort, cl-merge, cl-member, cl-member-if) + (cl-member-if-not, cl-assoc, cl-assoc-if, cl-assoc-if-not, cl-rassoc) + (cl-rassoc-if, cl-rassoc-if-not, cl-union, cl-nunion, cl-intersection) + (cl-nintersection, cl-set-difference, cl-nset-difference) + (cl-set-exclusive-or, cl-nset-exclusive-or, cl-subsetp, cl-subst-if) + (cl-subst-if-not, cl-nsubst, cl-nsubst-if, cl-nsubst-if-not, cl-sublis) + (cl-nsublis, cl-tree-equal): ...to have them inline here. + +2025-02-14 Stefan Monnier <monnier@iro.umontreal.ca> + + Fix some uses of `%s` for non-strings/names + + * lisp/files.el (normal-mode, set-auto-mode--apply-alist): + * lisp/gnus/nnimap.el (nnimap-command): + * lisp/emacs-lisp/bytecomp.el (bytecomp--check-cus-type): + Prefer %S over %s for arbitrary sexps and lists. + +2025-02-14 Robert Pluim <rpluim@gmail.com> + + Correct docstrings describing "Re" alternatives. + + * lisp/mail/mail-utils.el (mail-re-regexps): Use "Re", not "Re:". + * lisp/mail/rmail.el (rmail-re-abbrevs): Here also. + +2025-02-14 Basil L. Contovounesios <basil@contovou.net> + + Document cl-n... set operations consistently + + The docstrings of cl-nintersection and cl-nset-difference have been + inconsistent with their manual entries since the beginning of + emacs.git history (bug#76017). This patch settles on the weaker and + thus backward-compatible requirement that only their first argument + be safe to mutate. + + * lisp/emacs-lisp/bytecomp.el: Include only first argument in + mutates-arguments property. + * lisp/emacs-lisp/cl-seq.el (cl-nintersection, cl-nset-difference): + Make docstring consistent with manual in that the second argument is + not modified. + * test/lisp/emacs-lisp/cl-seq-tests.el (cl-nintersection-test) + (cl-nset-difference-test): Simplify. + (cl-nset-difference): Pass fresh list as second argument, otherwise + destructive modifications to it could go undetected. + +2025-02-14 Basil L. Contovounesios <basil@contovou.net> + + Consolidate some cl-lib tests + + For discussion, see bug#75633#16 and the following thread: + https://lists.gnu.org/r/emacs-devel/2025-02/msg00053.html + + * test/lisp/emacs-lisp/cl-extra-tests.el (cl-lib-test-remprop) + (cl-lib-test-coerce-to-vector, cl-parse-integer): Move here from + cl-lib-tests.el. + (cl-extra-test-remprop): Remove duplicate test, folding body... + (cl-get): ...into this test. + (cl-extra-test-concatenate): Remove duplicate test, folding body... + (cl-concatenate): ...into this test. + * test/lisp/emacs-lisp/cl-lib-tests.el: Update historic commentary. + (cl-lib-test-remprop, cl-lib-test-coerce-to-vector) + (cl-parse-integer): Move to cl-extra-tests.el. + (cl-lib-test-remove-if-not, cl-lib-test-remove) + (cl-lib-test-set-functions, cl-lib-test-string-position) + (cl-lib-test-mismatch, cl-nset-difference): Move to cl-seq-tests.el. + (cl-lib-test-gensym, cl-lib-keyword-names-versus-values) + (cl-lib-empty-keyargs, mystruct, cl-lib-struct-accessors) + (cl-lib-struct-constructors, cl-lib-arglist-performance, cl-the) + (cl-flet-test, cl-lib-test-typep, cl-lib-symbol-macrolet) + (cl-lib-symbol-macrolet-4+5, cl-lib-symbol-macrolet-2) + (cl-lib-symbol-macrolet-hide, cl-lib-defstruct-record): Move to + cl-macs-tests.el. + (cl-lib-test-endp): Remove duplicate test, folding body into + cl-seq-endp-test. + (cl-lib-set-difference): Remove duplicate test, folding body into + cl-set-difference-test. + * test/lisp/emacs-lisp/cl-macs-tests.el: Do not require cl-macs and + pcase. + (mystruct, cl-lib-struct-accessors, cl-lib-struct-constructors) + (cl-lib-arglist-performance, cl-lib-defstruct-record) + (cl-lib-symbol-macrolet, cl-lib-symbol-macrolet-4+5) + (cl-lib-symbol-macrolet-2, cl-lib-symbol-macrolet-hide, cl-flet-test) + (cl-lib-keyword-names-versus-values, cl-lib-empty-keyargs) + (cl-lib-test-gensym, cl-the, cl-lib-test-typep): Move here from + cl-lib-tests.el. + (cl-case-error, cl-case-warning): Fix indentation. + * test/lisp/emacs-lisp/cl-seq-tests.el: Require cl-lib rather than + cl-seq. + (cl-seq-endp-test): Absorb body of cl-lib-test-endp. + (cl-lib-test-remove, cl-lib-test-remove-if-not) + (cl-lib-test-string-position, cl-lib-test-mismatch) + (cl-lib-test-set-functions, cl-nset-difference): Move here from + cl-lib-tests.el. + (cl-set-difference-test): Absorb body of cl-lib-set-difference. + +2025-02-14 Michael Albinus <michael.albinus@gmx.de> + + Adapt PuTTY integration into Tramp + + * doc/misc/tramp.texi (Inline methods, External methods): + PuTTY must be at least version 0.82. + + * lisp/net/tramp-cache.el (with-tramp-saved-connection-property) + (with-tramp-saved-connection-properties): Add traces. + + * lisp/net/tramp-sh.el (tramp-methods) <plink, plinkx, pscp, psftp>: + Adapt `tramp-login-args' and `tramp-copy-args' arguments. (Bug#75746) + +2025-02-14 Pip Cet <pipcet@protonmail.com> + + Avoid crashes in lread.c when invalid characters are read + + * src/lread.c (readchar): Don't crash for non-fixnum return values. + (read_filtered_event): Don't crash for invalid symbol properties. + (Fread_char): + (Fread_char_exclusive): + (character_name_to_code): Check 'FIXNUMP' before using 'XFIXNUM'. + (read_char_escape): Crash on invalid Lisp-supplied data when + ENABLE_CHECKING; otherwise, signal an error. + +2025-02-14 Po Lu <luangruo@yahoo.com> + + * lisp/x-dnd.el (x-dnd-do-direct-save): Remove redundant stmts. + +2025-02-14 Yuan Fu <casouri@gmail.com> + + Use a heuristic to support method chaining in c-ts-common + + Test for "." at the beginning of a line to detect chained method. + + * lisp/progmodes/c-ts-common.el: + (c-ts-common--standalone-predicate): New function. + (c-ts-common--standalone-parent): + (c-ts-common--prev-standalone-sibling): Use the new heuristic. + +2025-02-14 Yuan Fu <casouri@gmail.com> + + Allow treesit-simple-indent-standalone-predicate to return anchor + + * lisp/treesit.el: + (treesit-simple-indent-standalone-predicate): Allow it to return + an anchor instead of t. + (treesit-simple-indent-presets): Supports number. + * lisp/progmodes/c-ts-common.el: + (c-ts-common--standalone-parent): + (c-ts-common--prev-standalone-sibling): Supports number. + +2025-02-14 Yuan Fu <casouri@gmail.com> + + Add treesit-simple-indent-standalone-predicate (bug#74386) + + * lisp/treesit.el: + (treesit-simple-indent-standalone-predicate): New variable. + (treesit-simple-indent-presets): Use the predicate. + (treesit-simple-indent-presets): Update docstring. + * lisp/progmodes/c-ts-common.el: + (c-ts-common--standalone-parent): + (c-ts-common--prev-standalone-sibling): Use the predicate if + non-nil. Also, handle method chaining by default. + * doc/lispref/modes.texi (Parser-based Indentation): Add + documentation. + +2025-02-13 Basil L. Contovounesios <basil@contovou.net> + + Fix uncaught cl-nreconc on constant list + + * test/lisp/emacs-lisp/cl-extra-tests.el (cl-extra-test-isqrt): + Expect most specific error type. + (cl-extra-test-nreconc): Pass fresh list as first argument to + cl-nreconc. The usual mutates-arguments warning was not emitted, + possibly in relation to bug#74920 and cl-nreconc being proclaimed + inline. + (cl-extra-test-list-length): Simplify using nconc. + +2025-02-13 Basil L. Contovounesios <basil@contovou.net> + + Fix cl-seq-tests.el + + None of the tests using the macro cl-seq--with-side-effects were + being evaluated (since bug#24264), and other tests were not robust + against destructive operations or optimizations (since bug#24264 and + bug#75633). For further discussion, see: + https://lists.gnu.org/r/emacs-devel/2025-02/msg00053.html + + * test/lisp/emacs-lisp/cl-seq-tests.el: Fit first line within 80 + columns. Remove empty Commentary section. + (cl-union-test-00): Use bug#N reference in place of URL. + (cl-seq-test-bug24264): Ditto. Use nconc in place of append. + (cl-seq--test-list, cl-seq--test-list2, cl-seq--with-side-effects): + Remove. + (cl-seq-tests--relet*): New convenience macro replacing the need for + cl-seq--with-side-effects. + (cl-seq-fill-test, cl-seq-replace-test, cl-seq-delete-test): Use + cl-seq-tests--relet* to actually evaluate tests. Avoid mutating + quoted literals. + (cl-seq-nsubstitute-test): Ditto. Actually call cl-nsubstitute, not + cl-substitute. Avoid comparing mutated argument to itself; compare + to its original copy instead. Avoid calling cl-position on list + that is being mutated in :if predicate; use original copy instead. + (cl-seq-remove-test, cl-remove-if-not-test, cl-delete-if-not-test) + (cl-delete-duplicates-test, cl-seq-remove-duplicates-test) + (cl-seq-substitute-test, cl-seq-substitute-if-test) + (cl-seq-position-test, cl-count-if-test, cl-count-if-not-test) + (cl-member-if-test, cl-member-if-not-test, cl-assoc-if-test) + (cl-assoc-if-not-test, cl-rassoc-if-test, cl-subsetp-test): + Simplify. + (cl-remove-if-test, cl-seq-substitute-if-not-test, cl-find-if-test) + (cl-find-if-not-test, cl-position-if-test, cl-member-test) + (cl-assoc-test, cl-rassoc-test): Quote function symbols, not + lambdas. + (cl-delete-if-test): Use cl-seq-tests--relet*. Check result of + cl-delete-if to avoid relying on its side effects, and to pacify + byte-compiler warning. + (cl-seq-mismatch-test): Avoid 'easy to misread' hidden argument. + (cl-seq-search-test): Break long line. + (cl-sort-test, cl-stable-sort-test, cl-merge-test): Avoid mutating + quoted literals. + (cl-intersection-test): Avoid comparing eql-ity of string literals. + (cl-nintersection-test, cl-nset-difference-test) + (cl-nset-exclusive-or-test): Avoid mutating quoted literals. Don't + compare initial and final values of arguments, since they may have + been mutated. + (cl-set-difference-test, cl-set-exclusive-or-test): Use fresh + arguments to check for absence of mutation. + +2025-02-13 Stefan Kangas <stefankangas@gmail.com> + + Inline side-effect-free declarations in cl-lib.el + + * lisp/emacs-lisp/cl-macs.el: Move side-effect-free declarations from + here... + * lisp/emacs-lisp/cl-extra.el (cl-gcd, cl-lcm, cl-isqrt, cl-floor) + (cl-ceiling, cl-truncate, cl-round, cl-mod, cl-rem, cl-signum) + (cl-subseq, cl-list-length, cl-get, cl-getf): + * lisp/emacs-lisp/cl-lib.el (cl-plusp, cl-minusp, cl-oddp, cl-evenp) + (cl-fifth, cl-sixth, cl-seventh, cl-eighth, cl-ninth, cl-tenth) + (cl-ldiff, cl-pairlis): + * lisp/emacs-lisp/cl-seq.el (cl-endp): ...to have them inline here. + + * lisp/emacs-lisp/cl-macs.el: Move side-effect-and-error-free + declarations from here... + * lisp/emacs-lisp/cl-extra.el (cl-equalp, cl-random-state-p): + * lisp/emacs-lisp/cl-lib.el (cl-list*, cl-acons): ...to have them inline + here. (Bug#76247) + +2025-02-13 Robert Pluim <rpluim@gmail.com> + + Support non-ascii SMTP user and password strings + + The user and more importantly the password used when + authenticating SMTP connections MUST be encoded in utf-8, and + 'base64-encode-string' requires unibyte strings, so call + 'encode-coding-string' on them before base64 encoding them in + case they are multibyte strings. + + This applies to the CRAM-MD5, LOGIN, and PLAIN auth methods. + XOAUTH2 access tokens are specified to contain only characters + in the range #x20-#x7E (SPC through ~), so utf-8 encoding is not + necessary. + + See RFC 4616 and RFC 4954 (or their later updates). + + * lisp/mail/smtpmail.el (smtpmail-try-auth-method): Encode user + and password using utf-8 before base64 encoding. + + (Bug#75628) + +2025-02-13 Robert Pluim <rpluim@gmail.com> + + Teach gnus/message about international Re: variants + + * lisp/mail/mail-utils.el (mail-re-regexps): New defcustom, + contains the components used to construct 'rmail-re-abbrevs' and + 'message-subject-re-regexp'. + * lisp/gnus/message.el (message-subject-re-regexp): Derive from + 'mail-re-regexps'. + (message-strip-subject-re): Make the match case-insensitive. + * lisp/mail/rmail.el (rmail-re-abbrevs): Derive from + 'mail-re-regexps'. Update 'rmail-reply-regexp' when it changes. + (rmail-reply-regexp): Set to nil, 'rmail-re-abbrevs' will set + it. + + * doc/emacs/rmail.texi (Rmail Reply): Describe + 'mail-re-regexps'. + * doc/misc/message.texi (Message Headers): Describe + 'mail-re-regexps'. + + (Bug#72442) + +2025-02-13 Robert Pluim <rpluim@gmail.com> + + Use 'const' instead of 'symbol' in 'c-ts-mode-indent-style + + The 'symbol' widget is for when the user is expected to enter a + symbol; when using a definite symbol, 'const' is preferred. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode-indent-style): Use + 'const' to define the options for a 'choice' widget. + +2025-02-13 Michael Albinus <michael.albinus@gmx.de> + + * lisp/net/tramp-archive.el (tramp-archive-all-gvfs-methods): Use `cdadr'. + +2025-02-13 Björn Bidar <bjorn.bidar@thaodan.de> + + Bind sieve-refresh-scriptlist to 'g' in sieve-mode + + * lisp/net/sieve.el (sieve-manage-mode-map): Bind + `sieve-refersh-scriptlist' to 'g' to refresh buffer. + (sieve-refresh-scriptlist): Highlight in docstring that the function + updates the current sieve buffer. (Bug#75956) + + * doc/misc/sieve.texi (Managing Sieve): Document new keybinding and the + existing `sieve-refresh-scriptlist` function. + +2025-02-13 Björn Bidar <bjorn.bidar@thaodan.de> + + Add missing documentation strings in sieve.el + + * lisp/net/sieve.el (sieve-activate, sieve-deactivate-all) + (sieve-remove, sieve-edit-script, sieve-refersh-scriptlist) + (sieve-upload, sieve-upload-and-burry, sieve-upload-and-kill): + Add documentation strings. (Bug#75956) + +2025-02-13 Björn Bidar <bjorn.bidar@thaodan.de> + + Make sieve-manage prompt also for port number + + (sieve-manage): Optionally read port number when called interactively. + Add documentation string. (Bug#75956) + +2025-02-13 Stefan Kangas <stefankangas@gmail.com> + + Avoid cl-caaar etc. compatibility aliases in Tramp + + * lisp/net/tramp-gvfs.el (tramp-gvfs-handler-askquestion): + (tramp-gvfs-handler-mounted-unmounted): + (tramp-gvfs-connection-mounted-p): + * lisp/net/tramp-sh.el (tramp-sh-gio-monitor-process-filter): + (tramp-sh-inotifywait-process-filter): Don't use cl-caaar + etc. compatibility aliases. (Bug#76249) + +2025-02-13 Stefan Kangas <stefankangas@gmail.com> + + Fix defcustom :type of gnus-logo-colors + + * lisp/gnus/gnus.el (gnus-logo-colors): Fix defcustom :type. + +2025-02-13 Stefan Kangas <stefankangas@gmail.com> + + Improve read-directory-name docstring + + * lisp/files.el (read-directory-name): Improve docstring to be more + similar to that of 'read-file-name', and refer back to it where + appropriate. + +2025-02-13 Joseph Turner <joseph@breatheoutbreathe.in> + + Add optional PREDICATE argument to read-directory-name + + * lisp/files.el (read-directory-name): Add optional PREDICATE argument. + * doc/lispref/minibuf.texi (Reading File Names): Document above change. + (Bug#66224) + +2025-02-13 Stefan Kangas <stefankangas@gmail.com> + + Increase recentf-max-saved-items to 25 + + * lisp/recentf.el (recentf-max-saved-items): Increase default to 25. + +2025-02-13 Ship Mints <shipmints@gmail.com> + + project-(remember|forget)-projects-under: Improve docstrings + + * lisp/progmodes/project.el (project-forget-projects-under) + (project-remember-projects-under): Clarify docstrings (bug#76234). + +2025-02-12 shipmints <shipmints@gmail.com> + + Change the project-switch-project prompt to include the dir name + + * lisp/progmodes/project.el: + (project--switch-project-command): Add new argument DIR. + Change the prompt to "Command in `xxx': ..." (bug#76235). + (project-switch-project): Pass DIR to the above function. + +2025-02-12 Stefan Kangas <stefankangas@gmail.com> + + Consolidate side-effect-free decls in cl-lib + + * lisp/emacs-lisp/cl-macs.el: Consolidate two identical loops with + side-effect-free declarations into one. + +2025-02-12 Stefan Kangas <stefankangas@gmail.com> + + Avoid cl-caaar etc. compatibility macros in Org + + * lisp/org/ob-core.el (org-babel-process-params): + * lisp/org/org-agenda.el (org-agenda-span-to-ndays): + * lisp/org/org-capture.el (org-capture-set-target-location): + * lisp/org/org.el (org-set-effort): Don't use cl-caaar, cl-caadr, + etc. compatibility macros in Org. We don't need to use them, since Org + requires Emacs 26.1. + +2025-02-12 Stefan Kangas <stefankangas@gmail.com> + + Delete comments about obsolete cl--compiler-macro-cXXr + + * lisp/emacs-lisp/cl-macs.el: + * lisp/subr.el: Delete obsolete comments about compatibility alias + cl--compiler-macro-cXXr. + +2025-02-12 Stefan Kangas <stefankangas@gmail.com> + + Declare caar, cadr, etc. as side-effect-free + + * lisp/subr.el (caar, cadr, cdar, cddr, caaar, caadr, cadar, caddr) + (cdaar, cdadr, cddar, cdddr, caaaar, caaadr, caadar, caaddr, cadaar) + (cadadr, caddar, cadddr, cdaaar, cdaadr, cdadar, cdaddr, cddaar) + (cddadr, cdddar, cddddr): Declare side-effect-free. + * lisp/emacs-lisp/cl-macs.el: Remove redundant declarations of + compatibility aliases for the above functions as side-effect-free. + +2025-02-12 Stefan Kangas <stefankangas@gmail.com> + + Add compiler macros for cl-oddp and cl-evenp + + * lisp/emacs-lisp/cl-lib.el (cl-oddp, cl-evenp): Add compiler macros. + +2025-02-12 Juri Linkov <juri@linkov.net> + + Fix treesit-outline related settings + + * lisp/treesit.el (treesit-outline-level): Use level 1 by default + since treesit-outline--at-point now always returns the current node. + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode): + Use 'bos' instead of 'bol'. Add "singleton_class" to + 'treesit-outline-predicate'. Use new condition 'named' in + 'treesit-outline-predicate' (bug#74963). + +2025-02-12 Dmitry Gutov <dmitry@gutov.dev> + + New command project-find-matching-file + + * lisp/progmodes/project.el (project--read-project-list): + Ensure that the directory has a trailing '/' (bug#75983). + +2025-02-12 Stefan Kangas <stefankangas@gmail.com> + + Fix recently introduced test failure + + * test/lisp/progmodes/go-ts-mode-tests.el + (go-mod-ts-mode-test-indentation): Fix test. + +2025-02-12 Stefan Kangas <stefankangas@gmail.com> + + Mark package-x.el as obsolete + + * lisp/obsolete/package-x.el: Add "Obsolete-since" header. (Bug#76194) + * doc/lispref/package.texi (Package Archives): Don't document package-x. + +2025-02-12 Stefan Kangas <stefankangas@gmail.com> + + Move package-x.el to lisp/obsolete + + * lisp/emacs-lisp/package-x.el: Move from here... + * lisp/obsolete/package-x.el: ...to here. (Bug#76194) + +2025-02-12 Ship Mints <shipmints@gmail.com> + + Make reading project--list safer + + * lisp/progmodes/project.el (project--read-project-list): + Ensure that each directory has a trailing '/' (bug#75983). + +2025-02-12 Martin Rudalics <rudalics@gmx.at> + + Handle negative frame position values in xterm.c (Bug#76190) + + * src/xterm.c (x_calc_absolute_position): Always handle negative + positions when XNegative or YNegative were set (Bug#76190). + +2025-02-12 Tassilo Horn <tsdh@gnu.org> + + Allow URL-FORMAT as string and function in bug-reference-setup-from-vc-alist + + That's a slight simplification resulting from bug#72735. + + * lisp/progmodes/bug-reference.el (bug-reference-setup-from-vc-alist): + Rename URL-FORMAT-FN to URL-FORMAT and mention it may be string or + function. + * (bug-reference-maybe-setup-from-vc): Handle the new case where + bug-url-fmt is just a string rather than a function. + +2025-02-12 Siyuan Chen <chansey97@gmail.com> (tiny change) + + Fix 'C-x C-c' with cua-prefix-override-inhibit-delay nil + + * lisp/emulation/cua-base.el (cua-cut-handler, cua-copy-handler): New + functions to fix cut and paste when 'cua-prefix-override-inhibit-delay' + is nil. (Bug#71230) + +2025-02-12 Po Lu <luangruo@yahoo.com> + + X11 drag-and-drop corrections + + * lisp/x-dnd.el (x-dnd-handle-drag-n-drop-event): Take cdddr of + client-message, skipping the selection information. + (x-dnd-do-direct-save): Do not erase the local copy of a remote + file if it was not in fact copied on behalf of the recipient. + (x-dnd-handle-xds-drop): Return proper action. + + * src/xterm.c (x_term_init): Remove unused variable on non-GTK + builds. + +2025-02-12 Gabriel Santos <gabrielsantosdesouza@disroot.org> + + Add go-work-ts-mode for Go workspace files + + * lisp/progmodes/eglot.el (eglot-server-programs): Add go-work-ts-mode. + * lisp/progmodes/go-ts-mode.el + (Commentary): Add the repositories for the grammars. + (go-work-ts-mode--indent-rules, go-work-ts-mode--keywords) + (go-work-ts-mode--font-lock-settings): New variables. + (go-work-ts-mode--directive-matcher, go-work-ts-mode): New functions. + (go-mod-ts-mode--directive-matcher): Rename from + go-mod-ts-mode--in-directive-p. Be more specific on the directive + location (modules). Replace mention of nil with function. Use member + instead of pcase to check node types. + + * admin/notes/tree-sitter/build-module/batch.sh + * admin/notes/tree-sitter/build-module/build.sh: Add go-work support. + + * test/lisp/progmodes/go-ts-mode-resources/font-lock-package.go: + * test/lisp/progmodes/go-ts-mode-resources/indent-mod.erts: + * test/lisp/progmodes/go-ts-mode-resources/indent-work.erts: + New files for testing indentation and font-locking for Go + module and workspace files. + * test/lisp/progmodes/go-ts-mode-tests.el: Add tests for Go module and + workspace files. (Bug#74461) + + * etc/NEWS: Announce go-work-ts-mode. + +2025-02-12 Gabriel Santos <gabrielsantosdesouza@disroot.org> + + image-dired: Add extra keybinds for navigation + + * lisp/image/image-dired.el (image-dired-thumbnail-mode-map): + Bind previously unused keys for alternative navigation. (Bug#75410) + +2025-02-12 Basil L. Contovounesios <contovob@tcd.ie> + + Print bare symbols for EMACS_GENERATE_DYNVARS + + * lisp/emacs-lisp/bytecomp.el (byte-compile--load-dynvars): Remove + redundant goto-char. + (byte-compile-file): Bind print-symbols-bare around .dynvars file + generation. (Bug#66628) + +2025-02-12 Lin Jian <me@linj.tech> (tiny change) + + Substitute all emacsclient occurrences in emacsclient.desktop + + After commit "From .desktop files, reuse a frame or start a new + Emacs as required" on 2021-06-30, there are two emacsclient + occurrences for the Exec key of etc/emacsclient.desktop. + Before this change, only the first occurrence is substituted. + + * Makefile.in (install-etc): Substitute all emacsclient + occurrences in emacsclient.desktop. (Bug#68803) + +2025-02-12 Lin Jian <me@linj.tech> (tiny change) + + Remove an unneeded sed command for emacs.service + + After commit e5348f125ff03ac70713e5b227f9e51f759a587b on + 2020-12-14, there is no ExecStop in etc/emacs.service. + * Makefile.in (install-etc): Remove an unneeded sed command for + etc/emacs.service. + +2025-02-12 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'savannah/master' into master-android-1 + +2025-02-12 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + ea3a937176f ; Add a utility script for retrieving Android port depend... + +2025-02-12 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 19791839cfb ; Don't document a complicated default + 88bc748f52f Fix minibuffer-next-completion in completing-read-multiple + 737f249aa2c ; Document 'completing-read-multiple' in the ELisp manual + 37f25514602 ; * lisp/gnus/nnweb.el (nnweb-type): Doc fix. + +2025-02-12 Thuna <thuna.cing@gmail.com> + + Highlight multiple symbols in single quotes in CL strings + + * lisp/emacs-lisp/lisp-mode.el (lisp-cl-font-lock-keywords-2): When + multiple space-delimited symbols are single quoted together (e.g "`foo + bar'"), highlight them. (Bug#59360) + +2025-02-12 Thuna <thuna.cing@gmail.com> + + Fix 'rcirc-buffer-process' not working on channel buffers + + * lisp/net/rcirc.el (rcirc-buffer-process): Look at BUFFER's + 'rcirc-server-buffer's 'rcirc-process' instead. Signal an error if it + has none. (Bug#60191) + +2025-02-12 Trevor Arjeski <tmarjeski@gmail.com> + + Fix Gnus logo color customization + + Fix a bug where customizing `gnus-logo-color-style' from use-package's + :custom keyword did not set `gnus-logo-colors' before Gnus is launched. + + This patch does the following: + - Implements a :set keyword on `gnus-logo-color-style' which will + correctly set `gnus-logo-colors' + - Exposes `gnus-logo-colors' using `defcustom' for more fine-grained + customization + - Uses :set-after on `gnus-logo-colors' so that it is set after + `gnus-logo-color-style' + + * lisp/gnus/gnus.el (gnus-logo-colors): Convert to defcustom. + (gnus-logo-color-style): Add :set property. (Bug#74554) + +2025-02-12 john muhl <jm@pub.pink> + + Add icons used by 'mpc.el' to 'x-gtk-stock-map' + + * lisp/term/x-win.el (x-gtk-stock-map): + * lisp/term/pgtk-win.el (x-gtk-stock-map): Include tool-bar icons + used by 'mpc.el'. + +2025-02-11 João Távora <joaotavora@gmail.com> + + Eglot: use Eldoc in eglot-hierarchy-mode + + Use it to show details of the thing at point, like the full + signature and the locus of the definition. + + * lisp/progmodes/eglot.el: Add optional arg MODE. + (eglot--hierarchy-source-major-mode): New defvar. + (eglot--hierarchy-1): Adjust. + (eglot-hierarchy-mode): Set eldoc stuff. + (eglot-hierarchy-center-on-node): Cosmetic fix. + (eglot-hierarchy-detail-eldoc-function) + (eglot-hierarchy-locus-eldoc-function): New eldoc functions. + +2025-02-11 Manuel Giraud <manuel@ledu-giraud.fr> + + Remove `smtpmail-address-buffer' temporary buffer + + * lisp/mail/smtpmail.el (smtpmail-address-buffer): Remove variable. + (smtpmail-send-it): + (smtpmail-deduce-address-list): Replace `smtpmail-address-buffer' with a + temporary buffer. Set `smtpmail-recipient-address-list' only in + caller. (Bug#72128) + +2025-02-11 Stefan Kangas <stefankangas@gmail.com> + + Delete redundant lambdas around unary functions + + This is not just stylistic, but also slightly faster. These are all + regular defuns, of course, as this won't work with macros and defsubsts. + + * lisp/calc/calc-nlfit.el (math-nlfit-fit-curve) + (calc-fit-hubbert-linear-curve): + * lisp/calendar/cal-tex.el (cal-tex-latexify-list): + * lisp/calendar/todo-mode.el (todo-sort): + * lisp/cedet/semantic/ctxt.el (semantic-ctxt-end-of-symbol-default) + (semantic-ctxt-current-symbol-default): + * lisp/cedet/semantic/symref.el (semantic-symref-result-get-files): + * lisp/cedet/semantic/texi.el (semantic-texi-command-completion-list): + * lisp/descr-text.el (describe-char): + * lisp/emacs-lisp/eieio-datadebug.el + (data-debug-add-specialized-thing): + * lisp/emacs-lisp/rmc.el (read-multiple-choice--short-answers): + * lisp/eshell/em-pred.el (eshell-modifier-alist): + * lisp/gnus/gnus-cache.el (gnus-cache-articles-in-group): + * lisp/gnus/gnus-dired.el (gnus-dired-attach): + * lisp/help-mode.el (help-package-def): + * lisp/ibuf-ext.el (ibuffer-mark-modified-buffers): + * lisp/image/image-dired.el: + * lisp/international/quail.el (quail-keyseq-translate) + (quail-get-translations): + * lisp/isearch.el (isearch-pre-command-hook) + (search-within-boundaries): + * lisp/mail/supercite.el (sc-ask): + * lisp/mh-e/mh-e.el (mh-variant-set): + * lisp/net/rcirc.el (rcirc-nick-channels, rcirc-channel-nicks): + (rcirc-browse-url): + * lisp/obsolete/thumbs.el (thumbs-cleanup-thumbsdir): + * lisp/org/org-agenda.el (org-agenda-filter-completion-function): + * lisp/org/org-table.el (org-table-eval-formula): + * lisp/org/org.el (org-set-regexps-and-options): + * lisp/org/ox.el (org-export--get-inbuffer-options): + * lisp/ses.el (ses-range): + * lisp/textmodes/emacs-news-mode.el (emacs-news--buttonize): + * lisp/textmodes/ispell.el (ispell-begin-tex-skip-regexp): + * lisp/vc/vc-cvs.el (vc-cvs-stay-local-p): + * lisp/window.el (window--state-get-1): + * test/lisp/emacs-lisp/shortdoc-tests.el (shortdoc-all-groups-work): + Delete redundant lambdas around unary functions. (Bug#66816) + +2025-02-11 Juri Linkov <juri@linkov.net> + + Improve outline-predicate of ts-modes (bug#74448) + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--outline-predicate): + Simplify since 'treesit-outline-search' was fixed in 302274b1862. + Use 'treesit-parent-until' to handle the case with "pointer_declarator". + + * lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode--outline-predicate): + Add "block_sequence_item". + +2025-02-11 João Távora <joaotavora@gmail.com> + + Eglot: fix thinko in previous commit + + * lisp/progmodes/eglot.el (eglot--hierarchy-1): 'roots' is a + vector. + +2025-02-11 João Távora <joaotavora@gmail.com> + + Eglot: error if no hierarchies available at point + + * lisp/progmodes/eglot.el (eglot--hierarchy-1): Error if no + hierarchy at point. + +2025-02-11 João Távora <joaotavora@gmail.com> + + Eglot: make better use of :company-docsig + + * lisp/progmodes/eglot.el (eglot-completion-at-point): Make better + use of :company-docsig + +2025-02-11 João Távora <joaotavora@gmail.com> + + Eglot: cosmetic refactor of eglot-completion-at-point + + * lisp/progmodes/eglot.el (eglot-completion-at-point): rework. + +2025-02-11 João Távora <joaotavora@gmail.com> + + Eglot: mention ocaml-ts-mode in eglot-server-programs + + * lisp/progmodes/eglot.el (eglot-server-programs): Mention + ocaml-ts-mode. + +2025-02-11 Eli Zaretskii <eliz@gnu.org> + + * src/bidi.c: Add comments to uses of INT_PROMOTE (bug#75964). + +2025-02-11 shipmints <shipmints@gmail.com> + + Correct project-remember/forget-projects-under message grammar + + * lisp/progmodes/project.el: + (project-remember-projects-under): Correct grammar for the singular + case. Rather than "1 projects were found", say "1 project was found". + (project-forget-projects-under): Ditto. (Bug#76016) + +2025-02-11 shipmints <shipmints@gmail.com> + + Eliminate bookmark-maybe-historicize-string duplicates + + * lisp/bookmark.el (bookmark-maybe-historicize-string): + Use 'add-to-history' to respect history-delete-duplicates and the + 'history-length property. (Bug#76137) + +2025-02-11 Stefan Kangas <stefankangas@gmail.com> + + Update webjump.el example links + + * lisp/net/webjump.el (webjump-sample-sites): Don't recommend some + defunct or otherwise non-privacy respecting websites. Prefer HTTPS to + HTTP. + (webjump-to-iwin, webjump-state-to-postal-alist): Make obsolete, as this + functionality seems to no longer work due to broken links. + +2025-02-11 Stefan Kangas <stefankangas@gmail.com> + + Add new function lm-package-version + + * lisp/emacs-lisp/lisp-mnt.el (lm-package-version): New function. + * lisp/emacs-lisp/package.el (package-buffer-info) + (package-get-version): Use above new function. + (lm-package-version): Declare. + +2025-02-11 Stefan Kangas <stefankangas@gmail.com> + + Don't warn for packages without a footer line + + * lisp/emacs-lisp/package.el (package-buffer-info): Don't warn when the + terminating comment (i.e., the footer line) is missing. (Bug#26490) + +2025-02-11 Stefan Kangas <stefankangas@gmail.com> + + Minor simplification in Fdescribe_buffer_bindings + + * src/keymap.c (Fdescribe_buffer_bindings): Minor simplification. + +2025-02-11 Stefan Kangas <stefankangas@gmail.com> + + Prefer keyword arguments in message-mode menu definition + + * lisp/gnus/message.el (message-mode-menu): Prefer keyword arguments in + menu definition. Reformat for readability and consistency. + +2025-02-11 Stefan Kangas <stefankangas@gmail.com> + + Add test for Bug#76179 + + * test/lisp/help-fns-tests.el (help-fns-test-bug76179): + New test. (Bug#76179) + +2025-02-10 Paul Eggert <eggert@cs.ucla.edu> + + Pacify gcc -Wswitch-enum in bidi.c + + * src/bidi.c (bidi_get_type, bidi_resolve_explicit) + (bidi_find_bracket_pairs, bidi_resolve_brackets) + (bidi_resolve_neutral): Use ‘switch (INT_PROMOTE (E))’ + to indicate that it’s intended that we not enumerate all the enum + values. + +2025-02-10 Stefan Kangas <stefankangas@gmail.com> + + Set process-adaptive-read-buffering to nil by default + + * src/process.c (syms_of_process) <process-adaptive-read-buffering>: + Set the default to nil. (Bug#75574) + +2025-02-10 Michael Albinus <michael.albinus@gmx.de> + + * lisp/ansi-osc.el (ansi-osc-directory-tracker): Don't check host name. + +2025-02-10 Stefan Kangas <stefankangas@gmail.com> + + Don't error on 'C-h f menu-bar-open-mouse RET' + + * lisp/help-fns.el (help-fns--insert-menu-bindings): Fix error when + passed 'menu-bar-open-mouse'. (Bug#76172) + +2025-02-10 shipmints <shipmints@gmail.com> + + ansi-osc-directory-tracker respects remote files + + * etc/NEWS: ansi-osc-directory-tracker supports remote directories. + + * lisp/ansi-osc.el (ansi-osc-directory-tracker): + If 'default-directory' is a remote-file form, retain that form + when 'default-directory' changes are detected. + +2025-02-10 Michael Albinus <michael.albinus@gmx.de> + + * doc/misc/ert.texi (Helper Functions): Improve index. Fix markups. + +2025-02-10 Martin Rudalics <rudalics@gmx.at> + + Implement tab line dragging with mouse (Bug#76084) + + * lisp/mouse.el (mouse-drag-line): Allow tab line dragging if + there's a window above. Consider tab line height when + calculating 'position'. Add 'tab-line' binding to transient + map. + (mouse-drag-tab-line): Have it drag the tab line only (and not + the entire frame) when the tab line is between two windows. + +2025-02-10 Martin Rudalics <rudalics@gmx.at> + + Fix handling of visibility on tty frames (Bug#76031) + + * src/frame.h (FRAME_REDISPLAY_P): Remove. Use the new function + frame_redisplay_p instead. Extern frame_redisplay_p. + * src/frame.c (frame_redisplay_p): New function to replace + FRAME_REDISPLAY_P macro. + (make_terminal_frame): Don't tinker with frame visibility and + don't make the new frame the terminal's top frame. + (do_switch_frame): Make sure frame switched to and any of its + ancestors are visible. Don't reset the visibility of other + frames. + (other_frames): Do not assume tty frames are by default visible. + (Fmake_frame_invisible): When making the selected tty frame + invisible, explicitly select the next visible frame. + * src/dispnew.c (Fredraw_display): Use frame_redisplay_p instead + of FRAME_REDISPLAY_P. + * src/xdisp.c (clear_garbaged_frames, echo_area_display) + (prepare_menu_bars, redisplay_internal, display_and_set_cursor) + (gui_clear_cursor): Use frame_redisplay_p instead of + FRAME_REDISPLAY_P. + * src/keyboard.c (tty_read_avail_input): When storing an event + and the selected frame is a child frame whose root is its + terminal's top frame, set the frame_or_window slot to the child + frame since otherwise the next switch frame event will select + the top frame instead. + +2025-02-10 Juri Linkov <juri@linkov.net> + + * lisp/treesit.el: Fix treesit-outline. + + (treesit-outline--at-point): New internal function. + (treesit-outline-search, treesit-outline-level): + Use 'treesit-outline--at-point'. + +2025-02-10 Po Lu <luangruo@yahoo.com> + + Fix compilation on Haiku Nightly hrev58622 + + * configure.ac (BOBJECTLIST_OWNERSHIP_IS_TEMPLATE_PARAMETER): + Define if BObjectList ownership over its contents is specified + as a template parameter. + + * src/haiku_support.cc (class EmacsFontSelectionDialog) + [BOBJECTLIST_OWNERSHIP_IS_TEMPLATE_PARAMETER]: Adjust + accordingly. + +2025-02-09 Stefan Kangas <stefankangas@gmail.com> + + Don't use deprecated unload-hook variables in Gnus + + * lisp/gnus/gnus-registry.el (gnus-registry-unload-hook): + * lisp/gnus/spam-stat.el (spam-stat-unload-hook): + * lisp/gnus/spam.el (spam-unload-hook): Rename functions from this... + + * lisp/gnus/gnus-registry.el (gnus-registry-unload-function): + * lisp/gnus/spam-stat.el (spam-stat-unload-function): + * lisp/gnus/spam.el (spam-unload-function): ...to this. Don't set the + corresponding variables, always return nil, update callers, and leave + old name as obsolete function aliases. + Ref: https://lists.gnu.org/r/emacs-devel/2025-02/msg00294.html + +2025-02-09 Stefan Kangas <stefankangas@gmail.com> + + Fix fontification of ATTRIBUTE_NO_SANITIZE_ADDRESS functions + + * .dir-locals.el (c-mode) <c-noise-macro-names>: + Add "ATTRIBUTE_NO_SANITIZE_ADDRESS", to fontify functions with this + attribute correctly. + +2025-02-09 Stefan Kangas <stefankangas@gmail.com> + + Use unload-function instead of unload-hook in ert + + * lisp/emacs-lisp/ert.el + (ert-unload-function): Rename from 'ert--unload-function'. + (ert--unload-function): Make into obsolete function alias for the above. + +2025-02-09 Juri Linkov <juri@linkov.net> + + Improve treesit settings for {json,html,toml,yaml}-ts-mode (bug#73404) + + * lisp/progmodes/json-ts-mode.el (json-ts-mode): Add 'list' thing + to 'treesit-thing-settings'. + (json-ts-mode): Disable outlines. + + * lisp/textmodes/html-ts-mode.el (html-ts-mode--defun-name): + Get a grandchild 'tag_name' from 'element' that was already + defined by 'treesit-defun-type-regexp'. + (html-ts-mode--outline-predicate): New function. + (html-ts-mode): Add "comment" to the 'list' thing + in 'treesit-thing-settings'. Use "tag_name" and "attribute" + in 'sentence' to conform to sentence navigating arguments + in other ts-modes. Remove unnecessary heading + from 'treesit-simple-imenu-settings' and use "element" + supported by 'html-ts-mode--defun-name'. + Set 'treesit-outline-predicate' to 'html-ts-mode--outline-predicate'. + + * lisp/textmodes/toml-ts-mode.el (toml-ts-mode): + Add 'treesit-thing-settings'. + + * lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode--defun-name) + (yaml-ts-mode--outline-predicate): New functions. + (yaml-ts-mode): Set 'treesit-defun-type-regexp', + 'treesit-defun-name-function', 'treesit-defun-tactic'. + Add 'sentence' to 'treesit-thing-settings'. + Set 'treesit-simple-imenu-settings' and 'treesit-outline-predicate'. + Use 'kill-local-variable' for 'forward-sexp-function' + and 'show-paren-data-function' instead of resetting their value. + + * lisp/treesit.el (treesit-outline-search): Check for the thing + before the end of the line to support such case when the thing + fits on the current line and ends before the end of the line + such as e.g. '<h1>...</h1>' in html-ts-mode. + (treesit-hs-find-next-block, treesit-hs-inside-comment-p): + Use anchors for "\\`comment\\'" (bug#75609). + +2025-02-09 Stefan Kangas <stefankangas@gmail.com> + + Improve filling with footnote-mode + + * lisp/mail/footnote.el (footnote-mode): Add regexp for footnotes + to sentence-end-base to improve filling. + +2025-02-09 Juri Linkov <juri@linkov.net> + + * lisp/vc/diff-mode.el (diff-mode): Disable view-mode keybindings. + + Put the property 'mode-class' with the value 'special' on the symbol + 'diff-mode'. This fixes the case when 'view-read-only' is non-nil + by disabling activation of 'view-mode' that overrides single keys + from 'diff-mode-shared-map' (bug#75993). + +2025-02-09 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 563efd6838c Fix program execution on Android 15 QPR2 Beta + +2025-02-08 Sebastián Monía <code@sebasmonia.com> + + Use vtable in eww-list-bookmarks + + * lisp/net/eww.el (eww-list-bookmarks): Move logic to... + (eww--bookmark-prepare, eww--bookmark-format-data) ... these, and use + 'vtable'. + (eww-bookmark-kill, eww-bookmark-yank, eww-bookmark-browse) + (eww-next-bookmark, eww-previous-bookmark, eww-buffers-mode-map): Use + 'vtable-current-object'. + +2025-02-08 Philip Kaludercic <philipk@posteo.net> + + ;* doc/misc/dired-x.texi: Remove unnecessary paren (Bug#76148) + +2025-02-08 Philip Kaludercic <philipk@posteo.net> + + Refresh package list without blocking + + * lisp/emacs-lisp/package.el (package-refresh-contents): Run + asynchronously when invoked interactively. + * etc/NEWS: Mention the change. + +2025-02-08 Andreas Schwab <schwab@linux-m68k.org> + + Don't try to unregister tracker ID twice + + * lisp/vc/diff-mode.el (diff-minor-mode): Clear + diff--track-changes after unregistering. + +2025-02-08 Michael Albinus <michael.albinus@gmx.de> + + * doc/misc/ert.texi (Helper Functions): New node. + +2025-02-08 João Távora <joaotavora@gmail.com> + + Eglot: auto-expand first level in type and call hierarchies + + * lisp/progmodes/eglot.el (eglot--hierarchy-2): Use widget-apply-action. + +2025-02-08 Felicián Németh <felician.nemeth@gmail.com> + + Eglot: do not activate unsupported menu items + + * lisp/progmodes/eglot.el (eglot-menu): Do not activate items that + the server does not support. + +2025-02-08 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + ed9dd4705c7 ; * admin/authors.el (authors-aliases): Add aliases. + 223ee56aae7 ; Avoid passive tense in Emacs manual + be4cf26c167 Fix gnus-score-find-score-files-function :type + 143f1096daa Improve documentation of 'file-name-concat' + +2025-02-08 shipmints <shipmints@gmail.com> + + Eliminate savehist duplicated symbols + + * lisp/savehist.el (savehist-save): Do not save symbols + duplicated between 'savehist-minibuffer-history-variables' + and 'savehist-additional-variables'. (Bug#76123) + * test/lisp/savehist-tests.el: New file. + +2025-02-08 Jared Finder <jared@finder.org> + + Cleanup tool-bar-mode documentation + + * doc/emacs/frames.texi (Tool Bars): Downcase concept index + text. + * lisp/cus-start.el (standard): Copy custom :tag strings + from window-tool-bar-style's, which are more descriptive. + (Bug#75844) + +2025-02-08 Jared Finder <jared@finder.org> + + Update window-tool-bar + + Add support for the remaining tool bar item specs, new user + option `window-tool-bar-style', and add support for older + Emacs versions. + + * doc/emacs/windows.texi (Window Tool Bar): Add documentation + for new user option `window-tool-bar-style'. + * lisp/window-tool-bar.el + (customize-package-emacs-version-alist): Add package-version to + Emacs version mapping. + (window-tool-bar-string): Do not show spacers after hidden + buttons. + (window-tool-bar--keymap-entry-to-string): Call new function + `window-tool-bar--style'. Add handling for :visible, :filter, + :button, :vert-only, and :help item specs. Show key bindings. + (window-tool-bar--last-command-triggers-refresh-p): Use "cannot" + in comment. + (window-tool-bar--allow-images): Delete this, it is replaced by + new user option `window-tool-bar-style'. + (window-tool-bar--use-images): Delete this, it is replaced by + new function `window-tool-bar--style'. + (window-tool-bar--turn-on): Move earlier in file, no changes. + (window-tool-bar-style): New user option supporting all values + `tool-bar-style' supports as well as inheriting from + tool-bar-style. + (window-tool-bar--style): New function to calculate active tool + bar style based on `window-tool-bar-style', `tool-bar-style', + and frame capabilities. + (global-window-tool-bar-mode, window-tool-bar-button) + (window-tool-bar-button-hover, window-tool-bar-button-disabled): + Retroactively add package-version. + (window-tool-bar-button-checked) + (window-tool-bar-button-checked-hover): New faces for :button + item spec. + (window-tool-bar--get-keymap): Call new function + `window-tool-bar--style'. (Bug#75844) + +2025-02-08 Jostein Kjønigsen <jostein@kjonigsen.net> + + lisp/progmodes/csharp-mode.el: Improve string-interpolation + + Correctly fontify expressions inside string-interpolations. + (Bug#75580) + +2025-02-08 Eli Zaretskii <eliz@gnu.org> + + * lisp/mouse.el (mouse-skip-word): Avoid errors at EOB. (Bug#75965) + +2025-02-08 Björn Bidar <bjorn.bidar@thaodan.de> + + Add 'nnregistry-request-group' function for 'gnus-refer-article' + + nnregistry doesn't handle any servers or groups; however we have to + define the dummy function so Gnus-registry works as refer article + method, as the `gnus-check-group-server' function requires it. + The latter function is called when referring to articles to check the + source group first before actually requesting any articles. + * lisp/gnus/nnregistry.el (nnregistry-request-group): New deffoo. + (Bug#22414) + +2025-02-08 Nicolas Despres <nicolas.despres@gmail.com> + + Prioritize split along the longest edge by default. + + Currently, `split-window-sensibly' prefers to try to split + vertically first, disregarding the actual shape of the frame + or the user preferences. This is a good default when Emacs + is taller than wider. However, when Emacs is in full-screen + (landscape screen layout), trying to split vertically may not + be what the user expected, since there is plenty of space + available on the right. + + Typical scenario: Emacs is in landscape layout, one buffer is + open in a window covering the entire frame. Another buffer is + opened in a second window (C-x 4 f). Both splits are feasible + but users may prefer the horizontal one. + + This patch preserves the behavior of the `split-height-threshold' + and `split-width-threshold' variables. Splitting continues not + to be permitted if the edge length is below the threshold. + + * lisp/window.el (split-window-sensibly): First tried split + direction follows user preferences. + + * etc/NEWS: Add an entry for new variable + `split-window-preferred-direction'. + * doc/emacs/windows.texi: Document new variable. + +2025-02-08 F. Jason Park <jp@neverwas.me> + + More clearly define local module behavior in ERC + + * doc/misc/erc.texi (Modules): Label all local modules as being such. + Move `querypoll' to the auxiliary section. Rework entire "Local + Modules" portion. + * lisp/erc/erc-goodies.el (erc-keep-place-indicator-mode) + (erc-command-indicator-mode): Mention what buffer types they operate in. + * lisp/erc/erc-nicks.el (erc-nicks-mode): Mention the mode is enabled in + all buffers. + * lisp/erc/erc-notify.el (erc-querypoll-mode): Mention which buffers it + operates in. + * lisp/erc/erc-sasl.el (erc-sasl-mode): Disable completely in target + buffers so its mode variable is nil. + * lisp/erc/erc-services.el (erc-services-regain-mode): Disable in target + buffers. + * lisp/erc/erc.el (erc-open): When activating local modules, skip those + that have just been enabled by a fellow module. Do this even though + their setup code is meant to be idempotent. + * test/lisp/erc/erc-scenarios-base-local-modules.el + (erc-scenarios-base-local-modules--toggle-helpers): Revise to assert + current behavior. (Bug#57955) + +2025-02-08 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + +2025-02-07 Stefan Kangas <stefankangas@gmail.com> + + Remove leading '*' from docstrings in cc-vars.el + + * lisp/progmodes/cc-vars.el (c-make-font-lock-extra-types-blurb): + Remove leading '*' from generated docstrings. (Bug#75793) + +2025-02-07 João Távora <joaotavora@gmail.com> + + Eglot: fix bug in eglot--lookup-mode + + When lookup in eglot-server-programs fails, fall back to a + half-decent (((foo-mode . "foo")) . nil) return value. This + enables interactive M-x eglot for modes not yet registered in + e-s-p. + + * lisp/progmodes/eglot.el (eglot--lookup-mode): Fallback when + lookup fails. + +2025-02-07 Stefan Kangas <stefankangas@gmail.com> + + Mark IRIX support in GUD as obsolete + + * lisp/progmodes/gud.el (gud-irix-p, gud-dbx-use-stopformat-p) + (gud-irixdbx-marker-filter): Mark as obsolete. We stopped supporting + IRIX in Emacs 26.1 (commit 6bc8689c0428). + * lisp/progmodes/gud.el (dbx): Suppress obsoletion warnings. + +2025-02-07 Stephen Gildea <stepheng+emacs@gildea.com> + + time-stamp: Better handling of some edge cases + + * lisp/time-stamp.el (time-stamp-count): Require confirmation if large. + (time-stamp-once): Correctly handle a start regexp matching 0 chars. + * test/lisp/time-stamp-tests.el (time-stamp-custom-start): New test. + +2025-02-07 Michael Albinus <michael.albinus@gmx.de> + + Suppress unneded events in special-event-map + + * src/keyboard.c (keys_of_keyboard): Don't add ns-put-working-text + and ns-unput-working-text to Vspecial_event_map unless on NS port. + +2025-02-07 Michael Albinus <michael.albinus@gmx.de> + + Use insert-special-event in Tramp + + * lisp/net/tramp-gvfs.el (tramp-gvfs-monitor-process-filter): + * lisp/net/tramp-sh.el (tramp-sh-gio-monitor-process-filter) + (tramp-sh-inotifywait-process-filter): Use `insert-special-event' + if possible. + +2025-02-07 João Távora <joaotavora@gmail.com> + + Eglot: add support for call and type hierarchies + + * lisp/progmodes/eglot.el (eglot--lsp-interface-alist): Add new + interfaces. + (eglot-client-capabilities): Advertise support for callHierarchy + and typeHierarchy. + (eglot-ignored-server-capabilities): Add new providers. + (eglot--goto): New helper. + (eglot-menu): Add new menu items. + (eglot-handle-request window/showDocument): Use eglot--goto. + (button, tree-widget): Require them. + (eglot--hierarchy-item): New button type. + (eglot--hierarchy-interactive, eglot--hierarchy-children) + (eglot--hierarchy-label, eglot--hierarchy-1, eglot--hierarchy-2): + New internal functions. + (eglot--define-hierarchy-command): New macro. + (eglot-show-type-hierarchy, eglot-show-call-hierarchy) + (eglot-hierarchy-center-on-node): New commands. + (eglot--hierarchy-roots, eglot--hierarchy-specs): New local variables. + (eglot-hierarchy-label-map): New keymap. + (eglot-hierarchy-mode): New major mode. + + * doc/misc/eglot.texi (Eglot Commands, Eglot Features): Describe + new feature. + + * etc/EGLOT-NEWS (Changes in upcoming Eglot): Mention new feature. + +2025-02-07 Michael Albinus <michael.albinus@gmx.de> + + New function insert-special-event and special event sleep-event + + * doc/lispref/commands.texi (Misc Events): Add sleep-event. + (Special Events): New function insert-special-event. + + * etc/NEWS: New function insert-special-event. New event 'sleep-event'. + Fix typos. + + * src/keyboard.c (Finsert_special_event): New defun. + (syms_of_keyboard): Declare Qsleep_event. Define subroutine + Sinsert_special_event. Add sleep-event to Vspecial_event_map. + (Bug#63620) + (kbd_buffer_get_event, make_lispy_event) + (init_while_no_input_ignore_events, is_ignored_event): + * src/termhooks.h (event_kind): Add SLEEP_EVENT. + +2025-02-07 Juri Linkov <juri@linkov.net> + + * lisp/progmodes/sh-script.el (bash-ts-mode): Improve treesit settings. + + Add 'list' and 'sentence' things to treesit-thing-settings, + and move mistakenly added 'sentence' to 'text' (bug#73404). + Set 'treesit-defun-name-function' and 'treesit-simple-imenu-settings'. + Reset 'outline-regexp'. + +2025-02-07 Po Lu <luangruo@yahoo.com> + + Prevent crash when requesting storage permissions on Android + + * java/org/gnu/emacs/EmacsService.java (requestStorageAccess30): + Handle ActivityNotFoundException. + +2025-02-06 Gerd Möllmann <gerd@gnu.org> + + Use read-key in amp-y-or-n-p (bug#75886) + + * lisp/emacs-lisp/map-ynp.el (map-y-or-n-p): Use read-key + so that C-g in recognized when defined in input-decode-map. + +2025-02-06 Antero Mejr <mail@antr.me> + + Add scheme-mode indentation for SRFI 64, R7RS guard + + * lisp/progmodes/scheme.el: Add properties for SRFI 64 and R7RS guard + identifiers. (Bug#75999) + +2025-02-06 Stefan Monnier <monnier@iro.umontreal.ca> + + (font-ccl-encoder-alist): Delete variable, unused + + * src/ccl.c (syms_of_ccl): Remove `font-ccl-encoder-alist`. + * lisp/language/ethiopic.el (ccl-encode-ethio-font): Delete CCL program. + (font-ccl-encoder-alist): Don't modify it. + +2025-02-05 Eli Zaretskii <eliz@gnu.org> + + * lisp/dired-x.el (dired-omit-expunge): Escape '%' (bug#75877). + +2025-02-05 Mauro Aranda <maurooaranda@gmail.com> + + Prepare markers for insertions inside of a widget + + Recreating child widgets without recreating the parent widget + may lead to situations where the parent widget doesn't cover its + children or buttons entirely anymore. This bug manifests as a + faulty fontification of children or buttons, for example. + (Bug#69941) + + * lisp/wid-edit.el (widget--prepare-markers-for-inside-insertion) + (widget--prepare-markers-for-outside-insertion): New functions. + (widget-default-create): Use them. + + * test/lisp/wid-edit-tests.el (widget-test-insertion-at-parent-markers) + (widget-test-insertion-at-parent-markers-2): New tests. + +2025-02-05 Eli Zaretskii <eliz@gnu.org> + + Revert "Improve bidi_get_time runtime checking" + + This reverts commit 782ec71053d8535511522f27f28c11682ca0f40b. + It makes the code less readable and less future-proof, so a + net loss. (Bug#75964) + +2025-02-05 Michael Albinus <michael.albinus@gmx.de> + + * lisp/autorevert.el (defvar): Fix debug declaration. + +2025-02-05 Vincenzo Pupillo <v.pupillo@gmail.com> + + Correctly handled the local parser for jsdoc (bug#75456) + + As a result of recent patches to treesitter, local parsers must + now be recognized by 'treesit-language-at-point' and have their + own indentation rules. + + * lisp/progmodes/js.el + (js--treesit-indent-rules): New rule for jsdoc. + (js--treesit-language-at-point): New function. + (js-ts-mode): Use the new function. + +2025-02-05 Yuan Fu <casouri@gmail.com> + + Make treesit-node-at more readable + + * lisp/treesit.el (treesit-node-at): Make the logic for finding + the parser (and the root node) more explicit and + straightforward. Don't use treesit-buffer-root-node; instead, + find the parser and use treesit-parser-root-node directly. + +2025-02-05 Paul Eggert <eggert@cs.ucla.edu> + + Remove no-longer-needed delete_frame UNINIT + + * src/frame.c (delete_frame): Remove a local with UNINIT that is + no longer needed now that GCC bug#85563 is fixed, as we don’t + need to worry about porting --enable-gcc-warnings to older GCC. + This change reverts this part of my commit + “Port --enable-gcc-warnings to GCC 8” + 8c3215e7a47e3caaa005bf573765ed63e0739b89 + dated Sat Apr 28 16:49:24 2018 -0700. + +2025-02-04 kobarity <kobarity@gmail.com> + Konstantin Kharlamov <Hi-Angel@yandex.ru> + Stefan Kangas <stefankangas@gmail.com> + + Make it configurable to highlight Python 2 builtins + + By default, Python 2-only builtins are not highlighted. + + * lisp/progmodes/python.el (python-2-support): New defcustom. + (python-font-lock-builtin-types) + (python-font-lock-builtins-python3) + (python-font-lock-builtins-python2) + (python-font-lock-builtins) + (python-font-lock-special-attributes) + (python-font-lock-builtin-exceptions-python3) + (python-font-lock-builtin-exceptions-python2) + (python-font-lock-builtin-exceptions): New variables. + (python-font-lock-keywords-level-2) + (python-font-lock-keywords-maximum-decoration) + (python--treesit-builtin-types) + (python--treesit-builtins) + (python--treesit-special-attributes) + (python--treesit-exceptions): Use new variables. + +2025-02-04 Stefan Kangas <stefankangas@gmail.com> + + Avoid overly short timeout in ispell-help + + * lisp/textmodes/ispell.el (ispell-help): Avoid too short timeout by + using at least 0.5 seconds. + +2025-02-04 Paul Eggert <eggert@cs.ucla.edu> + + Improve bidi_get_time runtime checking + + * src/bidi.c (bidi_get_type): Improve runtime checking, by also + aborting if the bidi_type_table entry is not a bidi_type_t value. + +2025-02-04 Jim Porter <jporterbugs@gmail.com> + + Improve calculation of indent prefixes when using text scaling + + Previously, the display spec for the "average space" was wrong. It used + a plain number for the width of the specified space, which means "N + times the normal character width for the buffer", but we want "N times + the normal character width for the *current face*" (bug#76008). + + * lisp/visual-wrap.el (visual-wrap--content-prefix): Specify the width + of the "average space" in terms of the average width of the current + face. + + * lisp/net/shr.el (shr-indent): As above, and call 'string-pixel-width' + without specifying the buffer, to match 'shr-string-pixel-width'. + +2025-02-04 João Távora <joaotavora@gmail.com> + + Eglot: protect against nil jit-lock-context-unfontify-pos + + * lisp/progmodes/eglot.el (eglot-shutdown, eglot--update-hints): Rework. + + Github-reference: https://github.com/joaotavora/eglot/pull/1370 + +2025-02-04 Gerd Möllmann <gerd@gnu.org> + + Fix min-width display spec handling (bug#76014) + + * src/xdisp.c (display_min_width): Take into account that the output may + already be longer than the specified min-width. + +2025-02-04 Gerd Möllmann <gerd@gnu.org> + + Use read-key in read-multiple-choice (bug#75886) + + * lisp/emacs-lisp/rmc.el (read-multiple-choice--short-answers): Use + read-key instead of read-event because read-event doesn't use + input-decode-map. + * test/lisp/emacs-lisp/rmc-tests.el: Use read-key instead of + read-event. + +2025-02-04 Michael Albinus <michael.albinus@gmx.de> + + Fix some checks in autorevert.el + + * lisp/autorevert.el (auto-revert-handler): Rework checks. + (auto-revert-handler): Don't run `vc-refresh-state' in + `auto-revert-tail-mode'. + +2025-02-04 Andrew G Cohen <cohen@andy.bu.edu> + + Don't use obsolete In-Reply-To format in messages (Bug#64454) + + When creating a new message, message-send-mail uses an obsolete format + for the In-Reply-To header that includes additional information about + the originating message. This patch changes the default to use the + rfc5322 approved format, but allow the obsolete format through a + defcustom. + + * lisp/gnus/message.el (message-make-in-reply-to): Return only the + message-id of the originating message (the default) unless the new + custom variable message-header-use-obsolete-in-reply-to is non-nil. + * doc/misc/message.texi: Document the new custom variable + message-header-use-obsolete-in-reply-to. + * etc/NEWS: Update NEWS. + +2025-02-04 Michael Albinus <michael.albinus@gmx.de> + + Add inhibit-auto-revert macro + + * doc/lispref/backups.texi (Reverting): + Add inhibit-auto-revert-buffers and inhibit-auto-revert. + + * etc/NEWS: Add inhibit-auto-revert-buffers and inhibit-auto-revert. + Fix typos. + + * lisp/autorevert.el (inhibit-auto-revert-buffers): New variable. + (inhibit-auto-revert): New macro. + (auto-revert-active-p, auto-revert-handler): + Check `inhibit-auto-revert-buffers'. + + * lisp/dired.el (dired--inhibit-auto-revert): Remove. + (dired-buffer-stale-p): Don't set it. + (dired-map-over-marks, dired-internal-do-deletions): + Use `inhibit-auto-revert. + + * test/lisp/autorevert-tests.el + (auto-revert-test08-auto-revert-inhibit-auto-revert) + (auto-revert-test08-auto-revert-inhibit-auto-revert-remote): New tests. + +2025-02-04 João Távora <joaotavora@gmail.com> + + Eglot: avoid 'null' as params to 'shutdown' request (bug#66144) + + Doing so confuses some servers. It used to be needed for the + gopls server, but according to + https://debbugs.gnu.org/cgi/bugreport.cgi?bug=66144#32 + that has been fixed. + + Thanks to Javier Olaechea <pirata@gmail.com> + + * lisp/progmodes/eglot.el (eglot-shutdown): Use eglot--{}. + +2025-02-03 Manuel Giraud <manuel@ledu-giraud.fr> + + Fix OpenBSD compilation (bug#76009) + + * configure.ac: Remove a bogus LD_SWITCH_SYSTEM for OpenBSD. + +2025-02-03 Stefan Monnier <monnier@iro.umontreal.ca> + + (save-place-abbreviate-file-names): Don't eagerly load alist (bug#75730) + + Change the way we handle `save-place-abbreviate-file-names` such that + this preference is applied lazily when we load the alist, rather than + eagerly when we define it (which forced the alist to be loaded before we + needed it). + + * lisp/saveplace.el (save-place-load-alist-from-file): Use `unless`, + `when`, and `with-temp-buffer` to hopefully help readability. + Call `save-place--normalize-alist`. + (save-place--normalize-alist): New function extracted from the setter + of `save-place-abbreviate-file-names`. + (save-place-abbreviate-file-names): Use it. + (save-place-alist-to-file): Use `with-temp-buffer`. + +2025-02-03 Pip Cet <pipcet@protonmail.com> + + Fix GC-related crashes in styled_format (bug#75754) + + This approach ensures we don't use an SSDATA pointer after GC, and + that no Lisp callback code can modify the format string while we're + working on it. + + * src/editfns.c (styled_format): Operate on a copy of the format + string rather than the original. Ensure final NUL byte is copied. + +2025-02-03 Daniel Mendler <mail@daniel-mendler.de> + + read-face-name: Build common completion table for CR and CRM + + * lisp/faces.el (read-face-name): Build a common completion + table for both `completing-read' and `completing-read-multiple' + with completion metadata (bug#74865). + +2025-02-03 Eli Zaretskii <eliz@gnu.org> + + Fix -nw sessions on MS-Windows + + * src/w32console.c (w32con_clear_end_of_line): Set the space + glyphs' frame to NULL. + (w32con_write_glyphs): Handle face_id_frame == NULL, when called + from 'w32con_clear_end_of_line'. + (tty_draw_row_with_mouse_face): Adjust to changes in term.c. + +2025-02-03 Ulrich Müller <ulm@gentoo.org> + + Avoid ln(10) expression in calc units definition + + * lisp/calc/calc-ext.el (calc-init-extensions): Autoload calc-math + for math-ln-10. + * lisp/calc/calc-units.el (math-standard-units): Use new ln10 + constant instead of ln(10) in the decibel definition. + (math-find-base-units-rec): Allow ln10 in expression. + (math-to-standard-rec): Recognize the ln10 constant. (Bug#75861) + +2025-02-03 Gerd Möllmann <gerd@gnu.org> + + Handle mouse highlighting in the presence of tty child frames + + * src/term.c (tty_draw_row_with_mouse_face): Draw only parts + of the highlighted text that are not covered by other frames. + +2025-02-02 F. Jason Park <jp@neverwas.me> + + Run erc-services-regain-mode callback on a timer + + * lisp/erc/erc-services.el (erc-services-regain-timeout-seconds): New + variable. + (erc-services-regain-mode): Mention CertFP in doc string. + (erc--nickname-in-use-make-request): Ensure the 900 RPL_LOGGEDIN + callback always runs after `erc-services-regain-timeout-seconds', even + when SASL isn't being used. + * test/lisp/erc/erc-scenarios-services-misc.el + (erc-scenarios-services-misc--regain-command/oftc): New test. + * test/lisp/erc/resources/services/regain/taken-regain-oftc.eld: New + file. + +2025-02-02 Eli Zaretskii <eliz@gnu.org> + + Announce XINERAM and XRANDR in 'system-configuration-features' + + * configure.ac (emacs_config_features): Add XINERAMA and XRANDR. + (Bug#75936) + +2025-02-02 Paul Eggert <eggert@cs.ucla.edu> + + Improve format-seconds on negative args + + * lisp/calendar/time-date.el (format-seconds): + Work better with negative seconds (Bug#75849). + * test/lisp/calendar/time-date-tests.el (test-format-seconds): Test it. + +2025-02-02 Paul Eggert <eggert@cs.ucla.edu> + + Improve malloc Lisp alignment commentary + + Prompted by a private email from Pip Cet. + +2025-02-02 Eli Zaretskii <eliz@gnu.org> + + Fix mouse pointer inside mouse-face on text with 'pointer' property + + * src/dispnew.c (gui_update_window_end): Don't consider mouse face + overwritten. + * src/xdisp.c (show_mouse_face): Accept an additional argument; + redefine the mouse cursor only if that argument is 'true'. All + callers changed. (Bug#75931) + +2025-02-02 Gerd Möllmann <gerd@gnu.org> + + Fix hiding tty cursor for overlapping children + + * src/dispnew.c (is_cursor_obscured): If selected frame is in the + z-order of the root frame, use that, otherwise use the root frame. + +2025-02-01 Paul Eggert <eggert@cs.ucla.edu> + + Omit 2 ‘volatile’s in internal_lisp_condition_case + + * src/eval.c (internal_lisp_condition_case): Omit an unnecessary + ‘volatile’ and an unnecessary pointer-to-volatile local var. + Perhaps these were needed in previous versions of Emacs, or to + pacify older versions of GCC when using --enable-gcc-warnings, + but they are not needed to pacify current GCC. + +2025-02-01 shipmints <shipmints@gmail.com> + + Add missing custom :set to 'savehist-autosave-interval' + + * lisp/savehist.el (savehist-autosave-interval): Correctly + reset 'savehist-timer' when 'savehist-autosave-interval' changes + via setopt or a Customize command. (Bug#75834) + +2025-02-01 shipmints <shipmints@gmail.com> + + Add auto save timer to save-place (bug#75837) + + * lisp/saveplace.el (save-place-autosave-interval): + New user option 'save-place-autosave-interval' which defaults to nil, + and has a custom :set to manage the timer. Add + 'save-place--manage-timer' to enable or cancel the timer if the mode is + enabled and 'save-place-autosave-interval' is non-nil. Amend + 'save-place-mode' to invoke save-place--manage-timer. Add + 'save-place--cancel-timer'. Add 'save-place--autosave'. + +2025-02-01 Michael Albinus <michael.albinus@gmx.de> + + Minor Tramp changes + + * doc/misc/tramp.texi (External methods): Precise remark on rsync speed. + + * lisp/net/tramp-cache.el (tramp-connection-properties): Add link + to the Tramp manual in the docstring. + +2025-02-01 Jonas Bernoulli <jonas@bernoul.li> + + Update to Transient v0.8.4-7-gabee7353 + +2025-02-01 Pip Cet <pipcet@protonmail.com> + + Use #$ for lambda fixups in native compilation data vectors + + The "#$" syntax is recognized by Fread, which substitutes + Vload_file_name in its place. If Vload_file_name is bound + appropriately, no other value can produce an object EQ to the one + produced by "#$". + + We use this to check the data vector for entries that we know should + have been initialized: if the value is still equal to what we bound + Vload_file_name to when it was read, it wasn't initialized, and we + abort. + + * lisp/emacs-lisp/comp.el (comp--#$): New defvar. + (comp--finalize-container): Use it. + * src/comp.c (ABI_VERSION): Bump. + (emit_static_object): Ensure 'comp--#$' prints as "#$". + (load_static_obj): Ensure '#$' reads as Vcomp__hashdollar. + (check_comp_unit_relocs): Adjust assertion. + (syms_of_comp): Define 'comp--#$'. + * src/pdumper.c (dump_do_dump_relocation): Adjust assertion. + +2025-02-01 Konstantin Kharlamov <Hi-Angel@yandex.ru> + + Avoid infinite questions if TAGS file was removed + + When the visited TAGS file was removed, commands that depend on + TAGS, such as auto-completion, may invoke an interactive question + whether a user wants to re-read the file. From that point on, + the question will be asked over and over, because the file no + longer exists, which results in mtime mismatch and inability to + "fix the mismatch" by reading from the file. Fix that by simply + ignoring the mismatch if the file no longer exists. + * lisp/progmodes/etags.el (tags-verify-table): Avoid infinite + questions if TAGS file was removed. (Bug#75946) + +2025-02-01 Po Lu <luangruo@yahoo.com> + + Fix compilation warnings on Android + + * src/alloc.c (pointer_align): Only define if + !USE_ALIGNED_ALLOC. + +2025-02-01 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + ba271938951 ; * etc/NEWS: Fix wording. + fdc6842a44e Remove bookmark fringe marks when deleting all bookmarks + 3bccd04c5c6 Improve wording in symbols.texi + 6441b9ea7af Fix typo in Gnus manual + 87be3aa1491 eglot: Allow omnisharp binary to be capitalized "OmniSharp" + 5485ea6aef9 Do not set `trusted-content` in major modes + d11488fd6fb ; * lisp/subr.el (sit-for): Doc fix. + + # Conflicts: + # etc/NEWS + +2025-02-01 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + d0907a43888 ; * admin/MAINTAINERS: Prefer "website" to "home page". + +2025-02-01 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 6447634f171 ; * admin/MAINTAINERS: Add CC Mode. + 486d5d524ca Update cc-mode URL to point to nongnu.org + 17ef46e849d ; * etc/NEWS: Note CVE-2024-53920 further up also. + 05ee2b741f0 ; * CONTRIBUTE: Suggest to run more tests sometimes. + e74efd9a428 * CONTRIBUTE: Recommend running the unit test prior to co... + a9cde2463ab Don't signal an error in treesit-node-at + 5d021a711a9 ; Improve documentation of '.dir-locals.el' + 84595cbcc78 ; (let-alist): Document double-dot escape syntax. (Bug#75... + 5617b07a45b ; Prefer HTTPS to HTTP in docs + fdd23023c84 ; * admin/MAINTAINERS: Sort external packages alphabetica... + 74dcfe155a9 ; * etc/NEWS: Remove temporary documentation markers. + a87c382caba ; * etc/NEWS: Add missing temporary documentation tags. + 3c820cd2650 Document insert-directory-program as a user option + 2c1edf5f62a doc/lispref/modes.texi (Syntactic Font Lock): Update for ... + + # Conflicts: + # etc/NEWS + +2025-02-01 Jostein Kjønigsen <jostein@kjonigsen.net> + + lisp/progmodes/csharp-mode.el: Fix fontification of typeof (bug#75406). + +2025-02-01 Rudolf Adamkovič <rudolf@adamkovic.org> + + Ispell: Increase help timeout + + * lisp/textmodes/ispell.el (ispell-help-timeout): Increase the timeout + from 5 to 30 seconds to allow users, especially new users, read the + Ispell help menu comfortably and act confidently (bug#75804). + +2025-02-01 Stefan Monnier <monnier@iro.umontreal.ca> + + (defcustom): Improve doc of `:group` + + * lisp/custom.el (defcustom): Mention the use of a default group and + the fact that `:group` can be repeated. + +2025-02-01 Pengji Zhang <me@pengjiz.com> + + New user option 'Buffer-menu-human-readable-sizes' + + * lisp/buff-menu.el (Buffer-menu-human-readable-sizes): New user + option. + (list-buffers--refresh): Use it. + * etc/NEWS: Announce the new user option. (Bug#75825) + +2025-02-01 Eli Zaretskii <eliz@gnu.org> + + * etc/NEWS: Fix punctuation. + +2025-02-01 shipmints <shipmints@gmail.com> + + Add new user option bookmark-bmenu-type-column-width + + * lisp/bookmark.el (bookmark-bmenu-mode): + Add new user option bookmark-bmenu-type-column-width, defaulting to 8 + for backwards compatibility, and use it when creating the tabulated + bookmark list. (Bug#75826) + +2025-02-01 Eli Zaretskii <eliz@gnu.org> + + Rename a recently-added variable (bug#56197) + + * lisp/emacs-lisp/lisp-mode.el + (lisp-fill-paragraphs-as-doc-string): Renamed from + 'lisp-fill-paragraph-as-displayed' and default value reversed. + (lisp-fill-paragraph): Adjust to the change. + * test/lisp/emacs-lisp/lisp-mode-tests.el + (lisp-fill-paragraph-as-displayed): Likewise. + +2025-02-01 Stefan Kangas <stefankangas@gmail.com> + + Revert "Don't use obsolete face variables in lisp-mode.el" + + This reverts commit ba60fa3deaa030eb4815caa8c180ac841709e86a. + +2025-02-01 Stefan Kangas <stefankangas@gmail.com> + + Merge branch 'scratch/no-purespace' into 'master' + +2025-02-01 Jostein Kjønigsen <jostein@kjonigsen.net> + + Improve typescript-ts-mode fontification (bug#75824) + + * lisp/progmodes/typescript-ts-mode.el: + (typescript-ts-mode--operators): Add syntax-highlighting ?? + operator. + (typescript-ts-mode--font-lock-settings): Add "undefined" as + recognized constant. + +2025-01-31 Paul Eggert <eggert@cs.ucla.edu> + + Don’t use garbage after tty_frame_at returns nil + + * src/term.c (handle_one_term_event): Don’t access possibly + uninitialized storage if frame is nil. This fixes an issue introduced + in commit 5eae7f5227c7789dea45cef26fec17c057024670 dated 2025-01-26 + 14:43:51 -0800. Issue caught by --enable-gcc-warnings, which enables + -Wanalyzer-use-of-uninitialized-value with gcc (GCC) 14.2.1 20250110 + (Red Hat 14.2.1-7). + +2025-01-31 Pip Cet <pipcet@protonmail.com> + + Revert "Prefer static switch-case checking in pdumper" + + This reverts commit 6e2e7265a04f63f482db7fbdfd8e2519d8bfe03e. + +2025-01-31 Pip Cet <pipcet@protonmail.com> + + Revert "Pacify -Wanalyzer-use-of-uninitialized-value" + + This reverts commit 1ed769a3cb753a86badba8a2878fa788a6fdc1f8. + +2025-01-31 Pip Cet <pipcet@protonmail.com> + + Revert "; * src/pdumper.c (dump_do_fixup): Pacify GCC. + + This reverts commit a99ba59aa02ef8cfd314737950b6cd8d97015925. + +2025-01-31 Paul Eggert <eggert@cs.ucla.edu> + + Port dest-mountpoint test to suspicious bwrap + + * test/lisp/emacs-lisp/bytecomp-tests.el: + (bytecomp-tests--dest-mountpoint): Skip test if bwrap prohibits + even ‘true’, which it does on my Ubuntu 24.10 platform. + +2025-01-31 João Távora <joaotavora@gmail.com> + + Eglot: add server menu into main menu + + * lisp/progmodes/eglot.el (eglot-menu): Add separator at end + and add in eglot-server menu at load-time. + (eglot-server-menu): Rework menu title and description. + +2025-01-31 Eli Zaretskii <eliz@gnu.org> + + Avoid stack overflow on MS-Windows due to 'make-temp-name' + + * src/fileio.c (Fexpand_file_name) [DOS_NT]: Use 'SAFE_ALLOCA' + instead of 'alloca'. (Bug#75938) + +2025-01-31 Martin Rudalics <rudalics@gmx.at> + + In 'replace-buffer-in-windows' try to preserve current buffer (Bug#75949) + + * lisp/window.el (replace-buffer-in-windows): Preserve current + buffer when 'kill-buffer-quit-windows' is non-nil and a window + showing BUFFER shall be quit. Running 'kill-buffer-hook' relies + on it (Bug#75949). + +2025-01-31 shipmints <shipmints@gmail.com> + + Add new variable tab-bar-format-tab-help-text-function + + * lisp/tab-bar.el (tab-bar--format-tab): + Add new variable 'tab-bar-format-tab-help-text-function' and a default + function 'tab-bar-format-tab-help-text-default'. 'tab-bar--format-tab' + respects this new variable when producing a tab's help text, normally + shown in the echo area or via tooltips (bug#75950). + +2025-01-31 Yuan Fu <casouri@gmail.com> + + Add treesit-simple-indent-override-rules + + * lisp/treesit.el: + (treesit-simple-indent-override-rules): New variable. + (treesit-simple-indent): Try + treesit-simple-indent-override-rules first. + (treesit-add-simple-indent-rules): Mention the new variable. + * etc/NEWS: Update news. + +2025-01-31 Yuan Fu <casouri@gmail.com> + + Add treesit-add-simple-indent-rules + + * lisp/treesit.el: + (treesit-add-simple-indent-rules): New function. + * etc/NEWS: Update NEWS. + * + test/src/treesit-tests.el: + (treesit-test-add-simple-indent-rules): Add a test for the new + function. + +2025-01-30 shipmints <shipmints@gmail.com> + + * lisp/tab-bar.el (tab-bar-select-tab): Fix wc-bl/wc-bbl when nil + + Remove the nil-check conditionals around 'wc-bl' and 'wc-bbl' that reset + frame parameters 'buffer-list' and 'buried-buffer-list'. This ensures + originating nil values correctly propagate (bug#75935). + +2025-01-30 shipmints <shipmints@gmail.com> + + Add new user option tab-bar-define-keys + + * lisp/tab-bar.el (tab-bar-define-keys): + Add new defcustom tab-bar-define-keys. Reorganize key binding functions + to accommodate. Also remove checks for tab-bar-mode enabled in + 'tab-bar-select-tab-modifiers', as unnecessary and which prevented user + changes from being accepted in cases where the user defers enabling + tab-bar-mode (bug#75918). + +2025-01-30 shipmints <shipmints@gmail.com> + + Add abnormal hook tab-bar-post-undo-close-tab-functions + + * lisp/tab-bar.el (tab-bar-undo-close-tab): + Add new abnormal hook tab-bar-post-undo-close-tab-functions (bug#75919). + +2025-01-30 Michael Albinus <michael.albinus@gmx.de> + + Tramp cleanup + + * doc/misc/tramp.texi (Predefined connection information): + Mention also "androidsu" as special case of "tmpdir". + (Remote processes): Signals are not delivered to remote direct + async processes. Say, that there are restrictions for transfer of + binary data to remote direct async processes. + + * lisp/net/tramp-compat.el (tramp-compat-temporary-file-directory): + Simplify. + +2025-01-30 Yuan Fu <casouri@gmail.com> + + Fix tree-sitter language remapping + + * src/treesit.c (resolve_language_symbol): Move forward. + (treesit_ensure_query_compiled): Resolve language remapping + here. + (Ftreesit_parser_list): Don't resolve language remaping here, + because there's no need: parsers now carries the remapped + language. + (Ftreesit_query_compile): Don't resolve language remapping here, + because we resolve language remapping when actually compiling + the query. Also we want the query to carry the unmapped + language. + +2025-01-30 Yuan Fu <casouri@gmail.com> + + Add back tree-sitter declare-function for python.el (bug#75526) + + treesit-declare-unavailable-functions is not available for old + emacs versions, but python.el is a core package available on + ELPA. + + Remove the treesit-declare-unavailable-functions until compat.el + releases a new version that contains it. + + * lisp/progmodes/python.el: Remove + treesit-declare-unavailable-functions and add back + declare-function forms. + +2025-01-30 Gerd Möllmann <gerd@gnu.org> + + Further fixes for cursor positioning (bug#75056) + + * src/dispnew.c (write_matrix): Don't set the cursor here. Parameter to + set the cursor or not removed. + (combine_updates_for_frame): Call tty_set_cursor here, depending on + whether or not the selected frame is related to the updated frame. + (update_frame_with_menu): Adapt to change of write_matrix. + +2025-01-30 Gerd Möllmann <gerd@gnu.org> + + Replace two macros with functions in dispnew.c (bug#75056) + + * src/dispnew.c (WINDOW_TO_FRAME_VPOS, WINDOW_TO_FRAME_VPOS): Macros + removed. + (window_to_frame_vpos, window_to_frame_vpos): Always define, and use + them instead of the removed macros. + +2025-01-30 Gerd Möllmann <gerd@gnu.org> + + Don't use selected frame in tty_set_cursor (bug#75056) + + * src/dispnew.c (tty_set_cursor): Add frmae parameter. + (write_matrix): Pass to the updated frame to tty_set_cursor. + +2025-01-29 Alan Mackenzie <acm@muc.de> + + CC Mode: Don't propertize parens in macros incorrectly + + Parentheses in macros were getting incorrectly propertized with + the '(1) (punctuation) syntax-table text property. This was + due to a typo in the patch "CC Mode: Rationalize and optimize + cache invalidation (1)" from 2024-10-06. Correct this. + + * lisp/progmodes/cc-mode.el (c-depropertize-CPP): Move the + first c-clear-syntax-table-with-value-trim-caches invocation + from inside the enclosing `when' form to after it. + +2025-01-29 Juri Linkov <juri@linkov.net> + + Fix args in treesit-beginning-of-defun and treesit-end-of-defun + + * lisp/treesit.el (treesit-beginning-of-defun): Set arg to 1 when nil. + (treesit-end-of-defun): Fix arg names in docstring. + +2025-01-29 João Távora <joaotavora@gmail.com> + + Eglot: don't auto-shutdown when reverting of single managed buffer + + When eglot-autoshutdown is t and the only reason we're + considering it is because of a revert (which tears down Eglot's + minor mode as if by killing), detect that situation and + purposedly cancel the shutdown. + + * lisp/progmodes/eglot.el (eglot--managed-mode): Tweak. + +2025-01-29 João Távora <joaotavora@gmail.com> + + Eglot: in eglot-code-action-indications, make 'margin' interactive + + Didn't know it was possible, thanks to Ergus <spacibba@aol.com> for the + tip about binding [left-margin mouse-2] in the keymap. + + The technique adopted in 'eglot-mouse-call' possibly still doesn't work + very well if the margin thing we're clicking on is not on the line point + is currently on. But we don't have that problem (yet?) because LSP + action suggestions function mostly on a "at point" basis. + + * lisp/progmodes/eglot.el (eglot-code-action-indications): Adjust docstring. + (eglot--mouse-call): Don't go anywhere except in text area. + (eglot-diagnostics-map): Bind eglot-mouse-actions to left-margin. + +2025-01-28 Juri Linkov <juri@linkov.net> + + Hideshow support for tree-sitter in hs-minor-mode (bug#75609) + + * lisp/progmodes/hideshow.el (hs-inside-comment-p-func): + New buffer-local variable. + (hs-hide-block-at-point): Check if 'hs-block-end-regexp' is + a string or a function. + (hs-inside-comment-p): Move body to 'hs-inside-comment-p--default'. + Call 'hs-inside-comment-p-func' if it's a function. + (hs-inside-comment-p--default): New function with body from + 'hs-inside-comment-p'. + (hs-hide-all): Don't use 'hs-block-start-regexp' when it's not a string. + (hs-minor-mode): Don't call 'hs-grok-mode-type' when + 'hs-inside-comment-p-func' already has a buffer-local value. + + * lisp/treesit.el (treesit-hs-block-end) + (treesit-hs-find-block-beginning, treesit-hs-find-next-block) + (treesit-hs-looking-at-block-start-p) + (treesit-hs-inside-comment-p): New functions. + (treesit-major-mode-setup): Set hs-minor-mode buffer-local variables. + +2025-01-28 Juri Linkov <juri@linkov.net> + + * lisp/treesit.el: Use default display behavior for treesit-explore. + + (treesit-explorer-switch-parser, treesit-explore): + Revert to previous behavior (bug#75079). + +2025-01-28 Martin Rudalics <rudalics@gmx.at> + + Fix two more drawings in windows.texi + + * doc/lispref/windows.texi (Changing Window Layouts): Fix two more + drawings. + +2025-01-28 Martin Rudalics <rudalics@gmx.at> + + New variable 'expose-hidden-buffer' (Bug#75828) + + * src/frame.c (make_frame): Handle 'expose-hidden-buffer'. + (expose-hidden-buffer): New variable to handle hidden buffers. + * src/buffer.c (Fother_buffer): Mention that it does not return + a hidden buffer. + * lisp/frame.el (make-frame): In doc-string describe handling + of hidden buffers. + * doc/lispref/frames.texi (Creating Frames): Explain handling + of hidden buffers in description of 'make-frame'. + +2025-01-28 João Távora <joaotavora@gmail.com> + + Eglot: allow customizing the mode line (bug#71823) + + * lisp/progmodes/eglot.el (eglot-code-action-indications): Adjust docstring. + (eglot--mode-line-props): Tweak. + (eglot--mode-line-format): Delete. + (eglot-mode-line-format): New defcustom. + (eglot-mode-line-menu, eglot-mode-line-session) + (eglot-mode-line-error, eglot-mode-line-pending-requests) + (eglot-mode-line-progress, eglot-mode-line-action-suggestion): New + constants. + (mode-line-misc-info): Adjust setting + + * etc/EGLOT-NEWS: Mention new feature. + + * doc/misc/eglot.texi (Customization Variables): Mention new variable. + +2025-01-28 João Távora <joaotavora@gmail.com> + + Eglot: suggest code actions at point + + * lisp/progmodes/eglot.el (eglot-code-action-indicator-face): New face. + (eglot-code-action-indications, eglot-code-action-indicator): New defcustoms. + (eglot--highlights): Move up here. + (eglot--managed-mode): Rework. + (eglot--server-menu-map, eglot--main-menu-map): Extract maps into + variables (avoids odd mode-line bug). + (eglot--mode-line-format): Rework. + (eglot--code-action-params): New helper. + (eglot-code-actions): Rework. + (eglot--read-execute-code-action): Tweak. + (eglot-code-action-suggestion): New function. + + * etc/EGLOT-NEWS: Mention new feature. + + * doc/misc/eglot.texi (Eglot Features): Mention new feature. + (Customization Variables): Mention new variables. + +2025-01-28 João Távora <joaotavora@gmail.com> + + Eglot: introduce eglot-advertise-cancellation + + Setting this variable to true causes Eglot to send special + cancellation notification for certain stale client request. + + This may help some LSP servers avoid doing costly but ultimately useless + work on behalf of the client, improving overall performance. + + Request cancellation is described in + + https://microsoft.github.io/language-server-protocol/ + specifications/lsp/3.17/specification/#cancelRequest + + * lisp/jsonrpc.el (jsonrpc-request): Accept function as value for + CANCEL-ON-INPUT. + + * lisp/progmodes/eglot.el (eglot--request): Rework. + + * doc/misc/eglot.texi (Customizing Eglot): Mention + eglot-advertise-cancellation. + +2025-01-28 João Távora <joaotavora@gmail.com> + + Eglot: restructure and overhaul documentation + + * doc/misc/eglot.texi (Starting Eglot): Tweak. + (Using Eglot): Remove link to 'Eglot Variables'. + (Eglot Features): Rework. + (Eglot and Buffers): Rework. + (Eglot Commands): Rework. + (Customizing Eglot): New chapter. + (Customization Variables): Now contains what 'Eglot Variables' + used to contain. + (Other Variables): New section. + (More Customization): New section. + (...elsewhere...): Apply 'fill-paragraph'. + +2025-01-28 João Távora <joaotavora@gmail.com> + + Eglot: symbol highlighting now done in eldoc-documentation-functions + + Even though highlighting the thing at point isn't really producing + documentation at point, theory and practice have shown that using + eldoc-documentation-functions for this is a feasible way to avoid + reimplementing all the idle timer logic for such functionality. + + In fact, we were already using ElDoc for this purpose, but this commit + makes it so the new eglot-highlight-eldoc-function is a first class + citizen in eldoc-documentation-functions, so users can manipulate it if + so desired. + + * lisp/progmodes/eglot.el (eglot--managed-mode): Use + eglot-highlight-eldoc-function + (eglot-hover-eldoc-function): Don't mix highlighting with hover. + (eglot-highlight-eldoc-function): Rename and rework from + eglot--highlight-piggyback + +2025-01-28 Martin Rudalics <rudalics@gmx.at> + + Fix previous commit for Changing Window Layouts + + * doc/lispref/windows.texi (Changing Window Layouts): Remove wrong + example. Change some indentations. + +2025-01-28 Gerd Möllmann <gerd@gnu.org> + + Fix frame-visible-p for tty root frames + + * src/frame.c (Fframe_visible_p): Don't unconditionally return t for tty + root frames. + +2025-01-28 Paul Eggert <eggert@cs.ucla.edu> + + Avoid some make_formatted_string mallocs + + * src/alloc.c (make_formatted_string): + Grow the local buffer from 64 to MAX_ALLOCA bytes. + +2025-01-28 Paul Eggert <eggert@cs.ucla.edu> + + Make vmessage a bit safer + + * src/xdisp.c (vmessage): Avoid undefined behavior if + FRAME_MESSAGE_BUF_SIZE (f) is zero, or if doprnt generates output + containing only encoding errors. Although it’s not clear whether + either is possible, it is better to be safe. Also, clarify via a + new local message_bufsize. + +2025-01-28 Pip Cet <pipcet@protonmail.com> + + Avoid printing NUL characters in 'message' (bug#75900) + + * src/xdisp.c (vmessage): Increase buffer size to fit an extra + multibyte character. On buffer overflow, drop the last multibyte + character to determine an accurate byte length. + +2025-01-28 Pip Cet <pipcet@protonmail.com> + + Fix buffer overflows in doprnt (bug#75900) + + * src/doprnt.c (doprnt): Clear rest of buffer on multibyte overflow. + Always decrement bufsize when writing a byte. + +2025-01-28 Paul Eggert <eggert@cs.ucla.edu> + + doprnt %X support + + * src/doprnt.c (doprnt): Also support %X, since callers + now use %X. + +2025-01-27 Stefan Kangas <stefankangas@gmail.com> + + Don't use obsolete face variables in lisp-mode.el + + * lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-1) + (lisp-cl-font-lock-keywords-1, lisp-el-font-lock-keywords-2) + (lisp-cl-font-lock-keywords-2): Don't use obsolete face variables. + +2025-01-27 Stephen Gildea <stepheng+emacs@gildea.com> + + time-stamp: Don't get confused by newline in file name + + * lisp/time-stamp.el (time-stamp-filtered-buffer-file-name): New helper + * test/lisp/time-stamp-tests.el: (time-stamp-custom-file-name): New test + +2025-01-27 Stephen Gildea <stepheng+emacs@gildea.com> + + time-stamp-tests: Make macro-defined tests findable + + * test/lisp/time-stamp-tests.el (define-formatz-tests): Use + 'find-function-update-type-alist' to make defined tests findable. + (formatz-find-test-def-function): New test-finding function. + +2025-01-27 jared <jared@electric-egg> + + Fix clicking in child frames with GPM + + * src/term.c (handle_one_term_event): Store child frame + coordinates in event. + +2025-01-27 Martin Rudalics <rudalics@gmx.at> + + In Elisp manual document new functions for changing window layouts + + * doc/lispref/windows.texi (Changing Window Layouts): New section + to document the new functions for changing window layouts. + * doc/lispref/elisp.texi (Top): Add entry for new section. + +2025-01-27 Paul Eggert <eggert@cs.ucla.edu> + + Pacify -Wanalyzer-use-of-uninitialized-value + + With ‘configure --enable-gcc-warnings’, + gcc (GCC) 14.2.1 20250110 (Red Hat 14.2.1-7) on x86-64 + complained, as it apparently did not want to assume that enum + variables have one of the listed values. + Work around the problem by using tables rather than + switch statements. This gives up a little static + checking but I don’t see any other easy way to pacify + GCC without disabling the warnings entirely. + * src/pdumper.c (dump_fwd_int, dump_fwd_bool, dump_fwd_obj) + (dump_fwd_buffer_obj, dump_fwd_kboard_obj): + Last arg is now void const * so that these functions’ addresses + can all be put into the same array. + (dump_fwd, dump_anonymous_allocate_posix, dump_map_file_posix): + Use an array rather than a switch. + (mem_prot_posix_table): New static constant table. + +2025-01-27 Paul Eggert <eggert@cs.ucla.edu> + + Fix unlikely eassert failure in invalid_radix_integer + + * src/lread.c (invalid_radix_integer): + Simplify by using sprintf with a big-enough buffer. + +2025-01-27 Paul Eggert <eggert@cs.ucla.edu> + + Fix unlikely eassert failure in xg_set_widget_bg + + * src/gtkutil.c (xg_set_widget_bg): Simplify by using + sprintf with a big-enough buffer. + +2025-01-27 Paul Eggert <eggert@cs.ucla.edu> + + Fix unlikely eassert failure in pgtk_enumerate_devices + + * src/pgtkterm.c (pgtk_enumerate_devices): Prefer + make_formatted_string to snprintf + build_string + eassert, as + it’s simpler and won’t crash Emacs if the eassert fails. + +2025-01-27 Paul Eggert <eggert@cs.ucla.edu> + + Minor format_string tuneup + + * src/comp.c (format_string): Prefer strcpy to doing things by hand + in a place where strcpy is easier to read, generates + more-efficient code, and similar parts of Emacs do strcpy. + +2025-01-27 Paul Eggert <eggert@cs.ucla.edu> + + Ignore -fanalyzer-null-argument in pgtkterm.c + + * src/pgtkterm.c: Ignore -Wanalyzer-null-dereference. + I don’t have time to look into all the diagnostics, + but the ones I checked seemed to be false alarms with + gcc -std=gnu23 on x86-64, and we are ignoring this + diagnostic in other modules. This is GCC 14.2.1 + 20250110 (Red Hat 14.2.1-7). + +2025-01-27 Paul Eggert <eggert@cs.ucla.edu> + + Pacify -fanalyzer-null-argument on pgtk_term_init + + * src/pgtkterm.c (pgtk_term_init): Use xstrdup, not g_strdup. + The value is never freed so the allocator shouldn’t matter. + +2025-01-27 Paul Eggert <eggert@cs.ucla.edu> + + Protect against GCing of last_mouse_window + + * src/window.c (last_mouse_window): New global var. All static + instances removed, and all their uses replaced with this global + var. This fixes a very unlikely bug where last_mouse_window was + GC’ed and a new window created in its place. It also fixes several + places that assumed NIL_IS_ZERO without static_asserting it. + (init_window_once): Initialize the new var. + +2025-01-27 Paul Eggert <eggert@cs.ucla.edu> + + Pacify GCC in pgtkselect malloc alignment + + * src/pgtkselect.c (pgtk_size_for_format): Remove. + (pgtk_get_window_property): Third arg is now void **, not unsigned + char **. Omit last arg. All callers changed. Simplify + allocation to pacify GCC 14.2.1 complaint about malloc size + mismatching size of array: there’s no need for an extra byte when + converting from ldata to idata. + (selection_data_to_lisp_data): Third arg is now void const *, + not unsigned char const *. All callers changed. + Omit unnecessary casts. Make some locals more local. + +2025-01-27 Paul Eggert <eggert@cs.ucla.edu> + + Avoid undefined behavior with botched pgtk menu + + * src/pgtkmenu.c (pgtk_menu_show): Do not dereference save_wv if + null. Problem found by gcc 20250110 (Red Hat 14.2.1-7) + -Wanalyzer-null-dereference. + +2025-01-27 Paul Eggert <eggert@cs.ucla.edu> + + Use gtk_disable_setlocale + + * src/pgtkterm.c (pgtk_term_init): + * src/xterm.c (x_term_init): + Use gtk_disable_setlocale rather than fixup_locale. + +2025-01-27 Paul Eggert <eggert@cs.ucla.edu> + + Avoid unlikely int overflow. + + * src/pgtkterm.c (pgtk_term_init): + * src/xterm.c (x_term_init): + Use a bool, not an int that keeps incrementing, + to record whether initialization has occurred. + +2025-01-27 Paul Eggert <eggert@cs.ucla.edu> + + Beware large stack growth in pgtk_menu_show + + * src/pgtkmenu.c (pgtk_menu_show): USE_SAFE_ALLOCA instead of alloca. + Problem found with --enable-gcc-warnings. + +2025-01-27 Paul Eggert <eggert@cs.ucla.edu> + + Fix x-show-tip bignum crash + + * src/pgtkfns.c (compute_tip_xy): Fix crash if user specifies + bignums. Bug found with --enable-gcc-warnings. + +2025-01-27 Paul Eggert <eggert@cs.ucla.edu> + + Prefer make_formatted_string in svg_load_image + + * src/image.c (svg_load_image): Prefer make_formatted_string to + snprintf, as this simplifies the code and does not truncate the + resulting string arbitrarily. + +2025-01-27 Paul Eggert <eggert@cs.ucla.edu> + + Simplify building of color names in image.c + + * src/image.c (make_color_name): New function. + (image_background, image_build_heuristic_mask, png_load_body): Use it. + +2025-01-27 Paul Eggert <eggert@cs.ucla.edu> + + Simplify make_formatted_string API + + From a suggestion by Pip Cet. + * src/alloc.c (make_formatted_string): Omit first argument, + to simplify the calling convention. All callers changed. + * src/doprnt.c (doprnt): Also support %u. Update doc. + +2025-01-27 Paul Eggert <eggert@cs.ucla.edu> + + Fix unlikely time zone abbreviation bug + + * src/timefns.c (Fcurrent_time_zone): Fix double-"-" bug when time + zone name is not known and time zone offset is -3600 or less. + Also, stop assuming that make_formatted_string works with "*" + precisions; this might ease future changes. + +2025-01-27 Stefan Kangas <stefankangas@gmail.com> + + Don't use obsolete face alias in themes + + * etc/themes/leuven-dark-theme.el: + * etc/themes/leuven-theme.el: + * etc/themes/manoj-dark-theme.el: + * etc/themes/tango-dark-theme.el: + * etc/themes/tango-theme.el: Don't use obsolete face alias + 'smerge-refined-change', preferring instead 'smerge-refined-changed'. + +2025-01-27 Stefan Kangas <stefankangas@gmail.com> + + Don't use obsolete variable in semantic/grammar.el + + * lisp/cedet/semantic/grammar.el + (semantic-grammar-mode-keywords-2): + (semantic-grammar-mode-keywords-3): Don't use obsolete variables. + +2025-01-27 Stefan Kangas <stefankangas@gmail.com> + + Don't use obsolete variables in semantic/idle.el + + * lisp/cedet/semantic/idle.el + (semantic-idle-symbol-maybe-highlight) + (semantic-idle-local-symbol-highlight): Don't use obsolete variable + 'semantic-idle-symbol-highlight-face'. + +2025-01-27 Po Lu <luangruo@yahoo.com> + + Fix the Android port + + * src/term.c (tty_frame_at) [HAVE_ANDROID]: Always return nil. + + * src/terminal.c (cursor_to, raw_cursor_to) [HAVE_ANDROID]: + Don't call root_xy. + +2025-01-26 Stefan Kangas <stefankangas@gmail.com> + + Fix compilation warnings in pdumper with !HAVE_NATIVECOMP + + * src/pdumper.c [!HAVE_NATIVECOMP] (cold_op, dump_subr): Fix + compilation warnings. + Ref: https://lists.gnu.org/r/emacs-devel/2025-01/msg01003.html + +2025-01-26 Stefan Kangas <stefankangas@gmail.com> + + Prefer static switch-case checking in pdumper + + * src/pdumper.c (dump_fwd, dump_symbol, dump_drain_cold_data) + (dump_do_fixup, dump_anonymous_allocate_w32) + (dump_anonymous_allocate_posix, dump_map_file_w32, dump_map_file_posix) + (dump_do_emacs_relocation): Remove default clauses to allow static + checking using -Wswitch. + +2025-01-26 Pip Cet <pipcet@protonmail.com> + + Avoid crashes in Fdocumentation caused by incorrect data types + + Note that this can only change things when function-documentation is + defined or overloaded incorrectly. + + * src/doc.c (Fdocumentation): Check that the cdr of a docstring cons + is a fixnum. + +2025-01-26 Gerd Möllmann <gerd@gnu.org> + + Display separators on tty menus with display table entries + + * src/xdisp.c (display_tty_menu_separator): Lookup separator char in + standard-display-table, make a string, and display that using + display_string. + * src/xdisp.c (display_tty_menu_separator_char): New function. + (display_tty_menu_separator): Use it. + * lisp/disp-table.el (display-table): Increase from 12 to 18. + (box-double-vertical, box-double-horizontal, box-double-down-right) + (box-double-down-left, box-double-up-right, box-double-up-left): New + symbols for extra slots. + (display-table-slot, set-display-table-slot): Change doc string. + (describe-display-table): Describe new slots. + (standard-display-unicode-special-glyphs): Define new slots. + * src/disptab.h (DISP_TABLE_P): Add enumerators. + (DISP_TABLE_EXTRA_SLOTS): Define based on enum box. + * src/dispnew.c (produce_box_glyphs): Add new enumerators to switch to + make it exhaustive. + * src/xdisp.c (display_tty_menu_separator): Use BOX_DOUBLE_HORIZONTAL + for '=' if present. + * doc/lispref/display.texi: Add documentation. + * etc/NEWS: Mention in NEWS. + +2025-01-26 Tassilo Horn <tsdh@gnu.org> + + Use dired--inhibit-auto-revert for fixing bug#71264 + + The original fix bound auto-revert-mode to nil which had the side-effect + of disabling auto-revert forever in this buffer because + auto-revert-handler removes the buffer from auto-revert-buffer-list when + it's called but auto-revert-mode is nil. + + * lisp/dired.el (dired-internal-do-deletions): Bind + dired--inhibit-auto-revert during deletion (bug#71264). + +2025-01-25 Gerd Möllmann <gerd@gnu.org> + + Change doc string of frame-visible-p + + * src/frame.c (Fframe_visible_p): Don't say it always returns t for tty + frames. + +2025-01-25 Gerd Möllmann <gerd@gnu.org> + + Replace is_frame_ancestor with frame_ancestor_p + + * src/dispnew.c (is_frame_ancestor): Removed. + (frame_z_order_cmp): Use frame_ancestor_p. + (copy_child_glyphs): Ditto. + * src/dispextern.h: Declaration removed. + * src/term.c (mouse_get_xy): Use frame_ancestor_p. + +2025-01-25 Juri Linkov <juri@linkov.net> + + Add 'treesit-forward-comment' with 'forward-comment-function' + + * lisp/treesit.el (treesit-forward-comment): New function. + (treesit-major-mode-setup): Set 'forward-comment-function' to + 'treesit-forward-comment' if the 'comment' thing is defined. + + * src/syntax.c (forward-comment-function): New variable. + (Fforward_comment): Call the function from 'forward-comment-function' + when it's non-nil (bug#75609). + +2025-01-25 Juri Linkov <juri@linkov.net> + + * lisp/treesit.el: Display treesit-explore buffer below selected window. + + (treesit-explorer-switch-parser, treesit-explore): + Use display-buffer-below-selected for display-buffer (bug#75079). + +2025-01-25 Stefan Monnier <monnier@iro.umontreal.ca> + + (when-let*): Warn if body is empty + + * lisp/subr.el (when-let*): Warn if body is empty. + * lisp/textmodes/tex-mode.el (xref-backend-references): Fix use of + `when-let*`. + +2025-01-25 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 67903f5909d Restore the old behavior of `bookmark-write-file' + 062da7003f9 ; Improve prompts and error messages in 'info-look' + 52dc01f1c8b ; * admin/admin.el (set-version): Note about Android. + fb282da2a07 Avoid double spaces around abbrevations in Texinfo + bc1ab8ac3d8 ; * doc/emacs/custom.texi (Init Rebinding): Fix spacing. + b41ef43af19 ; Fix previous change + 5638b1d6bd4 Ispell: Use "personal dictionary" terminology consistently + cc791e7499f ; Check man pages for mistakes less frequently + 4ed4792e3b9 ; * admin/release-process: Minor copy-edits. + 4a867c823b7 Add language server "ruff server" for Python + 9e687c2871f Fix go-ts-mode type declaration indentation (Bug#75785) + f751b3afa4f ; Minor improvements for doc strings in map.el + cda78edc7d9 ; Fix typos + ce50a1d3c18 ; * src/w32.c (w32_memory_info): Fix coding style of last... + 58d3d4820ad Fix bug in w32_memory_info + 77386412050 Avoid crashes in redisplay due to problematic font setups + 0e3687e6006 Improve 'key-valid-p' docstring + 9878092d2b9 Minor copyedits in internals.texi + 4726900fdc5 Better document side-effect free and pure C functions + 04c475a39f2 ; Fix documentation about faces of tool-tip text + + # Conflicts: + # admin/codespell/codespell.exclude + +2025-01-25 Gerd Möllmann <gerd@gnu.org> + + Fix the mistake that led to the reverts + + * src/terminal.c (raw_cursor_to): Fix reversed arguments. + +2025-01-25 Gerd Möllmann <gerd@gnu.org> + + Reapply "Multi-tty: selected frame can be a GUI frame" + + This reverts commit d93d822285813b89f2444ef93c5747cbeb67a46b. + +2025-01-25 Gerd Möllmann <gerd@gnu.org> + + Reapply "Fix mouse position handling for nested tty child frames" + + This reverts commit e2cc52dbcd196f95cc79c6c6d899b9e86e696fe5. + +2025-01-25 Gerd Möllmann <gerd@gnu.org> + + Reapply "Fix tty-frame-at for nested tty child frames" + + This reverts commit 9ad28959d6895720865c0718bf60f4b7b0b144f3. + +2025-01-25 Gerd Möllmann <gerd@gnu.org> + + Reapply "Fix cursor positioning of nested tty child frames" + + This reverts commit 65036323fc1cdf18a7812b1c922583e6466972a6. + +2025-01-25 Gerd Möllmann <gerd@gnu.org> + + Reapply "Simplify absolute (x, y) computation on ttys" + + This reverts commit 13fdcd730ff63bf79caace9a6e46aff5f944b1b7. + +2025-01-25 Mauro Aranda <maurooaranda@gmail.com> + + Delete all overlays that belong to an editable-field + + * lisp/wid-edit.el (widget-specify-field): Store the end overlay + that we sometimes create for an editable-field widget. + (widget-field-value-delete): Make sure we delete all overlays + that belong to the widget. (Bug#75646) + + * test/lisp/wid-edit-tests.el (widget-test-delete-field-overlays): New + test. + +2025-01-25 Konstantin Kharlamov <Hi-Angel@yandex.ru> + + python-mode: add 'exit' and 'quit' to the list of block-enders + + 'exit()' and 'quit()' end the current codeflow, there can't be + any code past it, similarly to 'return', 'continue', etc. So + when calculating indentation for the line next to 'exit()', + 'os.exit()', 'os._exit()', 'sys.exit()' and 'quit()', decrease + the indentation level. + * lisp/progmodes/python.el (python-rx): Add 'exit()', 'os.exit()', + 'os._exit()', 'sys.exit()', 'quit' to the list of block-enders. + (Bug#75729) + +2025-01-25 Maxim Cournoyer <maxim.cournoyer@gmail.com> + + lisp: Introduce a `lisp-fill-paragraph-as-displayed' variable. + + Starting with Emacs 28, filling strings now happens in a + narrowed scope, and looses the leading indentation and can cause + the string to extend past the fill-column value. Introduce + `lisp-fill-paragraph-as-displayed' as a new variable allowing + opting out of this new behavior in specific scenarios (such as + when using the Scheme major mode, say). + + * lisp/emacs-lisp/lisp-mode.el + (lisp-fill-paragraph-as-displayed): New variable. + (lisp-fill-paragraph): Honor it, by avoiding the logic narrow to + strings before applying fill-paragraph. + * test/lisp/emacs-lisp/lisp-mode-tests.el + (lisp-fill-paragraph-respects-fill-column): Test it. + (lisp-fill-paragraph-docstring-boundaries): New test, as a + safeguard to avoid regressions. + + (Bug#56197) + +2025-01-25 Mauro Aranda <maurooaranda@gmail.com> + + Avoid error with empty search string in Customize + + * lisp/cus-edit.el (custom-buffer-create-internal): Only call + customize-apropos if the string is not empty. (Bug#75714) + +2025-01-25 Stefan Monnier <monnier@iro.umontreal.ca> + + Reload <pkg>-loaddefs when replacing built-in packages + + * lisp/emacs-lisp/package.el (package--reload-previously-loaded): + Add new optional argument to display a specified warning upon + reloading. + (package-activate-1): Always reload libraries when loading built-in + packages. This avoids ELPA versions of built-in packages to be + mixed with the built-in package autoloads. + + Link: https://yhetil.org/emacs-devel/87y1adrria.fsf@localhost/ + +2025-01-25 Daniel Mendler <mail@daniel-mendler.de> + + ibuffer: Display column titles in header line + + If the option `ibuffer-use-header-line' is set to `title', + display column titles in the header line. + * lisp/ibuffer.el (ibuffer--format-title) + (ibuffer--format-summary): New functions extracted from + `ibuffer-update-title-and-summary'. + (ibuffer-update-title-and-summary): Use them. + (ibuffer-update): Do not always override `header-line-format'. + (ibuffer-use-header-line): Update docstring and option `:type'. + * lisp/ibuf-macs.el (define-ibuffer-sorter): Add "@" to the + interactive specification for clicks on the header line. + + * etc/NEWS: Announce the change. + (Bug#75497) + +2025-01-25 Stefan Monnier <monnier@iro.umontreal.ca> + + lisp/repeat.el: Don't expose `cl-extra/cl-lib` distinction + +2025-01-25 Daniel Mendler <mail@daniel-mendler.de> + + ibuffer: New defcustom `ibuffer-human-readable-size' + + * lisp/ibuffer.el (ibuffer-human-readable-size): New + defcustom. + (define-ibuffer-column size): Use it. + + * etc/NEWS: Mention new defcustom. + (Bug#75495) + +2025-01-25 Vladimir Panteleev <git@cy.md> + + Quote identifiers in SQL queries in 'sqlite-mode' + + * lisp/sqlite-mode.el: (sqlite-mode-list-tables) + (sqlite-mode-list-columns, sqlite--mode--list-data) + (sqlite-mode-delete): Quote identifiers (table and column + names) in the SQL queries. Fixes, e.g., opening databases + which have a table called "values". (Bug#75598) + +2025-01-25 Gerd Möllmann <gerd@gnu.org> + + Revert "Simplify absolute (x, y) computation on ttys" + + This reverts commit 5e132835ad320be1d5c45ffbf83d67d16fc7bf96. + +2025-01-25 Gerd Möllmann <gerd@gnu.org> + + Revert "Fix cursor positioning of nested tty child frames" + + This reverts commit 8cbb3c7335ff03b6fae4efeae126e91993cb962a. + +2025-01-25 Gerd Möllmann <gerd@gnu.org> + + Revert "Fix tty-frame-at for nested tty child frames" + + This reverts commit 9693f2a95ad14bf0caa34e60d72722d4dd4d85c9. + +2025-01-25 Gerd Möllmann <gerd@gnu.org> + + Revert "Fix mouse position handling for nested tty child frames" + + This reverts commit f37559a1ee035d184bc4db6e4f597281d3ac6879. + +2025-01-25 Gerd Möllmann <gerd@gnu.org> + + Revert "Multi-tty: selected frame can be a GUI frame" + + This reverts commit 57b7c07b3709d9a2b2c70e0c8218a52448368a12. + +2025-01-25 Gerd Möllmann <gerd@gnu.org> + + Multi-tty: selected frame can be a GUI frame + + * src/dispnew.c (frame_selected_window_frame): New function. + (is_cursor_obscured): Use it. + (terminal_cursor_magic): Use the frame of the selected window of he root + frame. + (combine_updates_for_frame): Move Android conditional compilation out. + +2025-01-25 Gerd Möllmann <gerd@gnu.org> + + Fix mouse position handling for nested tty child frames + + * src/dispnew.c (child_xy): New function. + * src/dispextern.h: Declare it. + * src/term.c (tty_frame_at): Return child-relative (x, y) in output + parameters. + (Ftty_frame_at): Return a list (FRAME CHILD-X CHILD-Y). + (handle_one_term_event): Adapt use of tty_frame_at. + * lisp/xt-mouse.el (xterm-mouse-event): Use new tty-frame-at. + +2025-01-25 Gerd Möllmann <gerd@gnu.org> + + Fix tty-frame-at for nested tty child frames + + * src/term.c (tty_frame_at): Translate child frame origin to absolute + coordinates. + +2025-01-25 Gerd Möllmann <gerd@gnu.org> + + Fix cursor positioning of nested tty child frames + + * src/terminal.c (cursor_to, raw_cursor_to): Fix translation to root + coordinates. + +2025-01-25 Gerd Möllmann <gerd@gnu.org> + + Simplify absolute (x, y) computation on ttys + + * src/dispnew.c (root_xy): New function. + (frame_pos_abs): Removed. + (frame_rect_abs, abs_cursor_pos): Use root_xy. + * src/dispextern.h: Declare root_xy. + * src/term.c (mouse_get_xy): Use it. + +2025-01-24 Gerd Möllmann <gerd@gnu.org> + + Disable more redisplay optimizations when child frames are visible + + * src/xdisp.c (redisplay_internal): Disable more optimizations + on a tty root frame displaying a child frame. + (try_cursor_movement,(try_window_reusing_current_matrix) + (try_window_id): Don't use on tty root frames displaying a child frame. + +2025-01-24 Eli Zaretskii <eliz@gnu.org> + + Revert "; * src/dispnew.c (combine_updates_for_frame): Fix whitespace." + + This reverts commit c941b94e51f4e5996718416ac908249cb71da1d9. + It was pushed by mistake. + +2025-01-24 Gerd Möllmann <gerd@gnu.org> + + Handle update of invisible tty frames (bug#75056) + + * src/dispnew.c (combine_updates_for_frame): Don't assume root frame is + visible. + +2025-01-23 Stefan Kangas <stefankangas@gmail.com> + + Support loading dynamic docstrings from Emacs <29 + + * src/doc.c (get_doc_string): Take absolute value to be compatible with + bytecode from Emacs <29. + +2025-01-23 Stefan Kangas <stefankangas@gmail.com> + + Don't use negative positions for docstrings + + These were used for user-variables (doc starts with a '*'), but we don't + use that convention any more. On my machine, there are no docstrings + starting with a '*' in etc/DOC. + + * src/doc.c (Fsnarf_documentation): Never use negative positions. + (get_doc_string): Don't use eabs; position must now be positive, and all + callers are verified to do that. + +2025-01-23 Pip Cet <pipcet@protonmail.com> + + Fix GC bug causing incorrect 'format' output (Bug#75754) + + This fixes the correctness bug discovered in bug#75754, but not the + performance issue or excessive stack usage. + + * src/editfns.c (styled_format): Split 'info' array into two arrays, + one of them allocated via SAFE_ALLOCA_LISP for GC protection. + +2025-01-23 Stefan Kangas <stefankangas@gmail.com> + + Simplify Fdocumentation and Fdocumentation_property + + * src/doc.c (Fdocumentation, Fdocumentation_property): Simplify; + reread_doc_file always returns true so just assume that. + (reread_doc_file): Change return type to void. + +2025-01-23 João Távora <joaotavora@gmail.com> + + Eglot: skip Tramp tests except on Emacs 28+ + + * test/lisp/progmodes/eglot-tests.el + (eglot--call-with-tramp-test): Fix + +2025-01-23 Gerd Möllmann <gerd@gnu.org> + + Handle tty menus overlapping child frames + + * src/dispnew.c (frame_pos_abs, is_frame_ancestor): Make externally + visible. + * src/dispextern.h: Declare above functions. + * src/term.c (mouse_get_xy): Handle mouse movement over child frames. + +2025-01-23 Robert Pluim <rpluim@gmail.com> + + Add shortdoc for map.el functions + + * lisp/emacs-lisp/shortdoc.el (map): New shortdoc group. + +2025-01-23 Gerd Möllmann <gerd@gnu.org> + + Don't forget setting the top frame if not switching root frames + + * src/frame.c (do_switch_frame): Make sure to set top frame in all + cases. + +2025-01-23 Gerd Möllmann <gerd@gnu.org> + + Fix setting a tty's top frame when switching frames + + * src/frame.c (do_switch_frame): Compare root frames correctly. + +2025-01-23 Stephen Gildea <stepheng+emacs@gildea.com> + + Fix ERT / find-function type integration typos + + * lisp/emacs-lisp/ert.el (ert-test-location, ert-describe-test): + Correctly type the test object as 'ert--test'. + * lisp/emacs-lisp/find-func.el (find-ert-deftest-regexp): Remove this + duplicate, broken customization. + +2025-01-23 Stephen Gildea <stepheng+emacs@gildea.com> + + * doc/lispref: new node "Finding Definitions" + + How to use variable 'find-function-regexp-alist', + properties 'definition-name' and 'find-function-type-alist', + and function 'find-function-update-type-alist' to help Emacs + locate the definition of objects defined by macros. + + This material is moved from node "Standard Properties" and expanded. + +2025-01-23 F. Jason Park <jp@neverwas.me> + + Reuse client cert for connectivity probing in ERC + + * lisp/erc/erc-backend.el (erc--server-connect-function) + (erc--server-post-dial-function): Rename former to latter because the + existing name is better suited for the eventual generalizing of + `erc-server-connect' in a future version. + (erc-server-connect): Use new name for `erc--server-connect-function', + `erc--server-post-dial-function'. + (erc--recon-probe-reschedule, erc--recon-probe-sentinel) + (erc--recon-probe-filter, erc--recon-probe-check): New functions + factored out of `erc-server-delayed-check-reconnect'. + (erc-server-delayed-check-reconnect): Refactor, splitting off lambdas + into top-level functions for improved tracing. + * lisp/erc/erc.el (erc-message-english-recon-probe-hung-up) + (erc-message-english-recon-probe-nobody-home): New + variables. (Bug#62044) + + Thanks to Libera.Chat user arjan for reporting this bug, which + is new in ERC 5.6 and Emacs 30.1. + +2025-01-22 João Távora <joaotavora@gmail.com> + + Eglot: unbreak a rarely run test + + * test/lisp/progmodes/eglot-tests.el + (eglot-test-snippet-completions-with-company): Don't expect fooba to be + there, do expect two completions to be candidates. + +2025-01-22 João Távora <joaotavora@gmail.com> + + Eglot: unbreak tests for older Emacsen + + * test/lisp/progmodes/eglot-tests.el (eglot-test-basic-symlink): + Use skip-unless + +2025-01-22 João Távora <joaotavora@gmail.com> + + Eglot: fix edebug spec of eglot--dbind + + * lisp/progmodes/eglot.el (eglot--dbind): Fix edebug spec. + +2025-01-22 João Távora <joaotavora@gmail.com> + + Eglot: unbreak completion in Emacs 26.3 (at least) + + For reasons yet to be investigated, in some Emacs older versions, + callers of the completion table created by eglot-completion-at-point + will destroy text properties in the strings returned by the + "all-completions" call (destroy here means completely erase). This + completely breaks Eglot completion. + + (eglot-completion-at-point): Copy substrings in all-completions + call. + +2025-01-22 João Távora <joaotavora@gmail.com> + + Eglot: abandon compat.el + + After period of months using this to help compatibility to older Emacs + versions. It's not really buying us that much and complicates + maintenance, so it gets the axe. + + A common problem is the compatibility alias for require-with-check, + which often errors with some "Feature X loaded from Y is now provided by + Z". The tests for Emacs 26.3 were all failing in the Github tracker + ever since this (and track-changes.el) were added to Eglot. + + * lisp/progmodes/eglot.el (compat): No longer require. + (eglot-alternatives): Reword comment. + (eglot-alternatives): Call eglot--executable-find. + (eglot--guess-contact): Call eglot--executable-find. + (eglot--connect): Check if package-get-version exists. + (eglot--format): Check if substitute-quotes exists. + (eglot--format-markup): Check if text-property-search exists. + +2025-01-22 João Távora <joaotavora@gmail.com> + + Eglot: abandon track-changes.el + + After a ~10 month period of using track-changes.el as a support library + for tracking buffer changes, I've decided to go back to manually using + after-change-functions and before-change-functions. + + track-changes.el showed promise: + + - One of the selling points was to turn complicated a-c-functions and + b-c-functions into something easier, but that objectively didn't pan + out, with "virtual" positions, one-shot hooks, and tracker + registrations being abstractions and complications mastered by very + few. + + - The other selling point was the ability to log and detect those parts + of Emacs that cheat the modification hooks and correct them. As far + as I can tell, only one such cheater -- quail.el -- was identified. + But with little consequence, only an ugly workaround in eglot.el (now + removed). + + - After using Eglot daily for all this time, I didn't notice any + decrease in desynchronization events. + + - I did notice an increase in track-changes.el related bugs, some of + which still baffle me and and hard to reproduce. A common occurence + is the '(cl-assertion-failed (memq id track-changes--trackers))' + which is hard to track down. + + - The library makes it more complicated to run Eglot on older Emacsen. + + I might yet revisit this matter for the next version but this + experience has shown that it didn't bring the advantages I thought it + would, so I'm abandoning it until at least 1.19 is out. + + * lisp/progmodes/eglot.el (track-changes): No longer require. + (eglot--virtual-pos-to-lsp-position): Delete. + (eglot--managed-mode): Simplify. + (eglot--track-changes): Delete this variable. + (eglot--recent-changes): Reword doc. + (eglot--before-change, eglot--after-change): Bring back. + (eglot--track-changes-fetch): Delete. + (eglot--add-one-shot-hook): Delete. + (eglot--track-changes-signal): Delete. + +2025-01-22 Stefan Kangas <stefankangas@gmail.com> + + Minor image_error related cleanups + + * src/image.c (image_create_x_image_and_pixmap_1): Avoid temporary + variable by passing the value directly to image_error. + (tiff_handler): Prefer image_error to add_to_log for local + consistency. + +2025-01-22 Paul Eggert <eggert@cs.ucla.edu> + + Port allows-stdout test to overly-suspicious bwrap + + * test/src/emacs-tests.el (emacs-tests/bwrap/allows-stdout): + Skip test if bwrap prohibits even "echo Hi", + which it does on my Ubuntu 24.10 platform. + This extra check means we no longer need to test + separately whether the filter is readable. + +2025-01-22 Paul Eggert <eggert@cs.ucla.edu> + + Don’t silently truncate connection-lost diagnostic + + * src/xterm.c (x_io_error_quitter): Do not silently truncate + the diagnostic when a connection is lost to an X server. + +2025-01-22 Paul Eggert <eggert@cs.ucla.edu> + + Check for snprintf truncation in pgtkterm + + * src/pgtkterm.c (pgtk_enumerate_devices): + Abort if snprintf truncated. + +2025-01-22 Paul Eggert <eggert@cs.ucla.edu> + + Port pdumper to unlikely long sprintf output + + * src/pdumper.c (dump_ptr_referrer): Port to platforms + where sprintf %p generates absurdly long output. + (dump_vectorlike): Port to hypothetical platforms + where %d generates absurdly long output. + +2025-01-22 Paul Eggert <eggert@cs.ucla.edu> + + When debugging image.c, abort if silent truncation + + * src/image.c (image_build_heuristic_mask, png_load_body): + Abort if snprintf truncated. (If truncation is not possible + here we should use sprintf instead, as that simplifies + automatic runtime checking.) + +2025-01-22 Pip Cet <pipcet@protonmail.com> + + Destroy GTK tool bar widget if it was never attached (bug#75636) + + * src/gtkutil.c (xg_free_frame_widgets): Call gtk_widget_destroy on an + unpacked toolbar widget. + +2025-01-21 Stefan Kangas <stefankangas@gmail.com> + + Prefer snprintf to sprintf in image.c + + * src/image.c (image_background, image_build_heuristic_mask) + (png_load_body): Prefer snprintf to sprintf. + +2025-01-21 Stefan Kangas <stefankangas@gmail.com> + + Delete some duplicate face attributes + + * etc/themes/leuven-dark-theme.el: + * etc/themes/leuven-theme.el: + * etc/themes/manoj-dark-theme.el: Delete duplicate face attributes. + +2025-01-21 Gerd Möllmann <gerd@gnu.org> + + Improve copying current glyphs when building frame matrix + + * src/dispnew.c (build_frame_matrix_from_leaf_window): Don't make space + glyphs. More comments. + +2025-01-21 Pip Cet <pipcet@protonmail.com> + + Handle unknown units provided by the rsvg library (bug#75712) + + * src/image.c (svg_css_length_to_pixels): Restructure so GCC warns + about new enum members. Add case for RSVG_UNIT_CH. Warn about + unknown units discovered at runtime. + +2025-01-21 Gerd Möllmann <gerd@gnu.org> + + Don't use a redisplay optimization in a certain case on ttys + + * src/dispnew.c (is_tty_root_frame_with_visible_child): New function. + * src/dispextern.h: Declare it. + * src/xdisp.c (redisplay_internal): Don't use optimization 1 for tty root + frames with a visible child frame. + +2025-01-21 Gerd Möllmann <gerd@gnu.org> + + Remove a false #ifdef HAVE_WINDOW_SYSTEM + + * src/xdiso.c (update_tab_bar)_ Don't use #ifdef HAVE_WINDOW_SYSTEM for + setting the selected frame. That only makes a build without window + system misbehave. + +2025-01-21 Robert Pluim <rpluim@gmail.com> + + Signal error when keyword/arg list is malformed + + * src/data.c (syms_of_data): Add Qmalformed_keyword_arg_list + error symbol. + + * src/process.c (Fmake_process, Fmake_pipe_process) + (Fserial_process_configure, Fmake_serial_process) + (Fmake_network_process): Signal Qmalformed_keyword_arg_list when + the argument list length is odd. + * src/sound.c (parse_sound): Also here.. + * src/w32fns.c (Fw32_notification_notify): ..and here. + + (Bug#75584) + +2025-01-21 Stefan Kangas <stefankangas@gmail.com> + + Prefer defface's ':slant italic' to obsolete alias ':italic t' + + * etc/themes/manoj-dark-theme.el (manoj-dark): + * etc/themes/modus-themes.el (modus-themes-faces): + * etc/themes/manoj-dark-theme.el (manoj-dark): + * etc/themes/modus-themes.el (modus-themes-faces): + * lisp/emacs-lisp/eieio-custom.el (eieio-custom-slot-tag-face): + * lisp/gnus/gnus-art.el (gnus-emphasis-italic) + (gnus-emphasis-underline-italic, gnus-emphasis-bold-italic) + (gnus-emphasis-underline-bold-italic, gnus-signature) + (gnus-header-from, gnus-header-subject, gnus-header-newsgroups) + (gnus-header-content): + * lisp/gnus/gnus-cite.el (gnus-cite-attribution, gnus-cite-1) + (gnus-cite-2, gnus-cite-3, gnus-cite-4, gnus-cite-5, gnus-cite-6) + (gnus-cite-7, gnus-cite-8, gnus-cite-9, gnus-cite-10, gnus-cite-11): + * lisp/gnus/gnus-srvr.el (gnus-server-cloud-host) + (gnus-server-closed): + * lisp/gnus/gnus.el (gnus-group-mail-1-empty) + (gnus-group-mail-2-empty, gnus-summary-low-ticked) + (gnus-summary-low-ancient, gnus-summary-low-undownloaded) + (gnus-summary-low-unread, gnus-summary-low-read): + * lisp/gnus/message.el (message-header-to) + (message-header-newsgroups, message-header-other): + * lisp/gnus/mm-decode.el (mm-command-output): + * lisp/mh-e/mh-e.el (mh-face-data, mh-folder-body): + * lisp/net/dictionary.el (dictionary-word-entry-face): + * lisp/org/org-faces.el (org-formula, org-agenda-date-today) + (org-scheduled, org-scheduled-today): + * lisp/proced.el (proced-interruptible-sleep-status-code): + * lisp/progmodes/prolog.el (prolog-font-lock-keywords): + * lisp/progmodes/verilog-mode.el (verilog-font-lock-translate-off-face) + (verilog-font-lock-p1800-face, verilog-font-lock-ams-face) + (verilog-font-lock-grouping-keywords-face): + * lisp/progmodes/vhdl-mode.el (vhdl-font-lock-attribute-face) + (vhdl-font-lock-enumvalue-face, vhdl-font-lock-function-face) + (vhdl-font-lock-directive-face): + * lisp/transient.el (transient-inapt-suffix): + * lisp/vc/ediff-init.el (ediff-even-diff-A, ediff-even-diff-B) + (ediff-even-diff-C, ediff-even-diff-Ancestor, ediff-odd-diff-A) + (ediff-odd-diff-B, ediff-odd-diff-C, ediff-odd-diff-Ancestor): + Prefer defface attribute ':slant italic' to its obsolete alias + ':italic t'. See also Bug#73552. + +2025-01-21 Stefan Kangas <stefankangas@gmail.com> + + Prefer defface's ':weight bold' to obsolete alias ':bold t' + + * etc/themes/adwaita-theme.el (adwaita): + * etc/themes/manoj-dark-theme.el (manoj-dark): + * etc/themes/modus-themes.el (modus-themes-faces): + * lisp/gnus/gnus-srvr.el (gnus-server-agent, gnus-server-cloud) + (gnus-server-opened, gnus-server-denied, gnus-server-offline): + * lisp/gnus/gnus.el (gnus-group-news-1, gnus-group-news-2) + (gnus-group-news-3, gnus-group-news-4, gnus-group-news-5) + (gnus-group-news-6, gnus-group-news-low, gnus-group-mail-1) + (gnus-group-mail-2, gnus-group-mail-3, gnus-group-mail-low-empty) + (gnus-group-mail-low, gnus-summary-high-ticked) + (gnus-summary-high-ancient, gnus-summary-high-undownloaded) + (gnus-summary-high-unread, gnus-summary-high-read): + * lisp/gnus/message.el (message-header-to, message-header-cc) + (message-header-subject, message-header-newsgroups) + (message-header-other, message-header-name, message-header-xheader) + (message-separator, message-cited-text-1, message-cited-text-2) + (message-cited-text-3, message-cited-text-4, message-mml) + (message-signature-separator): + * lisp/mh-e/mh-e.el (mh-face-data, mh-folder-cur-msg-number) + (mh-speedbar-folder-with-unseen-messages) + (mh-speedbar-selected-folder-with-unseen-messages): + * lisp/net/dictionary.el (dictionary-button-face): + * lisp/org/org-faces.el (org-drawer, org-tag, org-list-dt, org-todo) + (org-done, org-headline-todo, org-formula, org-agenda-structure) + (org-scheduled, org-scheduled-today, org-scheduled-previously) + (org-upcoming-deadline): + * lisp/proced.el (proced-uninterruptible-sleep-status-code) + (proced-executable, proced-cpu, proced-user, proced-time-colon): + * lisp/progmodes/erts-mode.el (erts-mode-specification-name) + (erts-mode-specification-value): + * lisp/progmodes/prolog.el (prolog-font-lock-keywords): + * lisp/progmodes/verilog-mode.el (verilog-font-lock-p1800-face) + (verilog-font-lock-ams-face) + (verilog-font-lock-grouping-keywords-face): + * lisp/progmodes/vhdl-mode.el (vhdl-font-lock-prompt-face) + (vhdl-font-lock-attribute-face, vhdl-font-lock-enumvalue-face) + (vhdl-font-lock-function-face, vhdl-font-lock-directive-face) + (vhdl-font-lock-reserved-words-face): Prefer defface attribute + ':weight bold' to its obsolete alias ':bold t'. See also Bug#73552. + +2025-01-20 João Távora <joaotavora@gmail.com> + + Eglot: release version 1.18 + + * etc/EGLOT-NEWS: Update. + + * lisp/progmodes/eglot.el (Version): Bump to 1.18 + +2025-01-20 João Távora <joaotavora@gmail.com> + + Eglot: fix signature's of Eglot's ElDoc functions + + These functions are specified to be passed at least one + argument, so our implementation must accept an arbitrary number + of arguments. + + * lisp/progmodes/eglot.el (eglot-signature-eldoc-function) + (eglot-hover-eldoc-function): Fix signature. + +2025-01-20 João Távora <joaotavora@gmail.com> + + Eglot: add support for insertReplaceEdit (bug#73857) + + * lisp/progmodes/eglot.el (eglot-server-programs): Mention zig-ts-mode. + (eglot--lsp-interface-alist): Describe 'InsertReplaceEdit'. + (eglot-client-capabilities): Advertise 'insertReplaceSupport'. + (eglot-completion-at-point): Consider 'InsertReplaceEdit'. + (eglot--apply-text-edits): Consider 'InsertReplaceEdit'. + + * test/lisp/progmodes/eglot-tests.el + (eglot-test-zig-insert-replace-completion): New test. + + Special thanks to kcbanner@gmail.com + +2025-01-20 João Távora <joaotavora@gmail.com> + + Eglot: make eglot-test-javascript-basic more robust + + * test/lisp/progmodes/eglot-tests.el + (eglot-test-javascript-basic): Mark test expensive and increase timeout. + +2025-01-20 João Távora <joaotavora@gmail.com> + + Eglot: try again to fix try-completion logic + + Emacs partial completion simply doesn't make sense in LSP. + Attempts to make it make some sense end up failing for one + reason or another. + + This commit restores the original intention of the + eglot--dumb-allc and eglot--dumb-tryc functions, which was to be + dumb and pop up a *Completions* buffer (or a company tooltip), + as soon as there is doubt over what the user wants to do. + + It also fixes tests, including an expensive Rust test that had + been broken for a long time. + + * lisp/progmodes/eglot.el (eglot--dumb-allc): Consider point. + (eglot--dumb-tryc): Make it suitably dumb again. + + * test/lisp/progmodes/eglot-tests.el + (eglot--wait-for-rust-analyzer): Wait longer. + (eglot-test-common-prefix-completion): Delete this test. It's not + the intended behavior. + (eglot--kill-completions-buffer): New helper. + (eglot-test-try-completion-nomatch): Rework test. + (eglot-test-try-completion-inside-symbol): Pops *Completions* + buffer because mustn't partial complete. + (eglot-test-try-completion-inside-symbol-2): Does complete. + (eglot-test-rust-completion-exit-function): Fix long-broken test. + +2025-01-20 Stefan Kangas <stefankangas@gmail.com> + + Prefer defvar-keymap in bat-mode.el + + * lisp/progmodes/bat-mode.el (bat-mode-map): Prefer defvar-keymap. + (bat-menu): Move to top level. + +2025-01-20 Tassilo Horn <tsdh@gnu.org> + + Don't skip or double-process files in dired with auto-revert-mode (bug#75626) + + * lisp/dired.el (dired--inhibit-auto-revert): New variable. + (dired-map-over-marks): Make the generated code bind it. + (dired-buffer-stale-p): Return nil if dired--inhibit-auto-revert is + non-nil. + +2025-01-20 Stefan Kangas <stefankangas@gmail.com> + + Use 'max' macro in clip_to_bounds + + * src/lisp.h (clip_to_bounds): Use 'max' macro. + +2025-01-20 Yuan Fu <casouri@gmail.com> + + Make treesit-language-remap-alist completely transparent (bug#72388) + + * doc/lispref/parsing.texi (Using Parser): Update manual. + * src/treesit.c (Ftreesit_parser_create): Use the LANGUAGE + argument given as the language for the parser, not the actual + language. + +2025-01-20 Stefan Kangas <stefankangas@gmail.com> + + pdumper: Add static_assert for EMACS_RELOC_TYPE_BITS + + * src/pdumper.c: Add static_assert for EMACS_RELOC_TYPE_BITS. + +2025-01-20 Stefan Kangas <stefankangas@gmail.com> + + Remove redundant case_Lisp_Int macro + + The case_Lisp_Int macro was originally introduced with different + definitions depending on USE_2_TAGS_FOR_INTS. However, since commit + 2b5701247845, we have assumed that USE_2_TAGS_FOR_INTS is always + defined, and the macro has only a single definition. As a result, the + macro is now unnecessary, and replacing it with standard C case labels + improves readability and understanding. + + * src/lisp.h (case_Lisp_Int): Delete macro. + * src/alloc.c (process_mark_stack, survives_gc_p): + * src/data.c (Fcl_type_of): + * src/fns.c (value_cmp, sxhash_obj): + * src/pdumper.c (dump_object): + * src/print.c (print_object): + * src/xfaces.c (face_attr_equal_p): Remove uses of above macro. + +2025-01-20 Paul Eggert <eggert@cs.ucla.edu> + + Port better to AIX 7.3 with -lsqlite3 but not sqlite3.h + + * configure.ac (HAVE_SQLITE): Yes only if sqlite3.h can be + included (Bug#75667). + +2025-01-20 Paul Eggert <eggert@cs.ucla.edu> + + Port better to AIX 7.3 with -lz but not zlib.h + + * configure.ac (HAVE_ZLIB, LIBZ): + Define only if zlib.h can be included (Bug#75667). + +2025-01-19 Stefan Kangas <stefankangas@gmail.com> + + Remove workaround for AIX 3.2 crashes + + Emacs does not support AIX 3.2 since 2008. + + This workaround for AIX 3.2.3 and 3.2.4 (released in 1992) was + introduced in 1999 and was only active with #ifdef AIX3_2. In 2008, the + condition was changed to #ifdef AIX when support for these older AIX + versions was dropped. I couldn't find any justification for why this + workaround was retained (instead of being removed) in the commit message + or mailing list archives. + + Given that users of AIX 4.0 (released in 1995) or later have not had + this workaround for over a decade (1999-2008), it seems safe to assume + that it is no longer necessary. Removing it will also prevent the + incorrect overriding of the LANG variable on those systems. + + * src/emacs.c [AIX] (main): Remove workaround for AIX 3.2. (Bug#75153) + +2025-01-19 Stefan Kangas <stefankangas@gmail.com> + + Prefer the 'min'/'max' macros where possible + + * src/composite.c (find_automatic_composition): + * src/lisp.h (clip_to_bounds): + * src/pgtkfns.c (PATH_MAX_LEN): + * src/profiler.c (approximate_median): + * src/unexmacosx.c (unexec_write_zero, unexec_copy, unexec_realloc): + * src/xdisp.c (get_nearby_bol_pos): Prefer the 'min' and 'max' macros. + +2025-01-19 Stefan Kangas <stefankangas@gmail.com> + + Delete duplicate 'min' macro + + * src/gmalloc.c (min): Delete duplicate macro. We import lisp.h + unconditionally, so it is always defined here. + +2025-01-19 Stefan Kangas <stefankangas@gmail.com> + + Make NSM warn for RSA key exchange on medium severity + + * lisp/net/nsm.el (network-security-protocol-checks): Bump rsa-kx + severity to medium. + (nsm-protocol-check--dhe-kx): Update docstring to describe several more + recent attacks, and its removal in TLS 1.3. + +2025-01-19 Stefan Kangas <stefankangas@gmail.com> + + Delete unused aliases for calln + + * src/lisp.h (call1, call2, call3, call4) + (call5, call6, call7, call8): Delete unused aliases for calln. + +2025-01-19 Stefan Kangas <stefankangas@gmail.com> + + Replace call[1-8] with calln + + Since the introduction of the 'calln' macro, the 'call1', 'call2', ..., + 'call8' macros are just aliases for the former. This is slightly + misleading and potentially unhelpful. The number of arguments N can + also easily go out-of-synch with the used alias callN. There is no + reason not to replace these aliases with using 'calln' directly. + + To reduce the risk for mistakes, the tool Coccinelle was used to make + these changes. See <https://coccinelle.gitlabpages.inria.fr/website/>. + + * src/alloc.c, src/androidvfs.c, src/androidfns.c, src/buffer.c: + * src/callint.c, src/callproc.c, src/casefiddle.c, src/charset.c: + * src/chartab.c, src/cmds.c, src/coding.c, src/composite.c: + * src/data.c, src/dbusbind.c, src/dired.c, src/doc.c: + * src/emacs.c, src/eval.c, src/fileio.c, src/filelock.c: + * src/fns.c, src/frame.c, src/gtkutil.c, src/haikufns.c: + * src/haikumenu.c, src/image.c, src/insdel.c, src/intervals.c: + * src/keyboard.c, src/keymap.c, src/lisp.h, src/lread.c: + * src/minibuf.c, src/nsfns.m, src/nsselect.m, src/pgtkfns.c: + * src/pgtkselect.c, src/print.c, src/process.c, src/sort.c: + * src/syntax.c, src/textconv.c, src/textprop.c, src/undo.c: + * src/w32fns.c, src/window.c, src/xfaces.c, src/xfns.c: + * src/xmenu.c, src/xselect.c, src/xterm.c: + Replace all uses of 'call1', 'call2', ..., 'call8' with 'calln'. + +2025-01-19 Stefan Kangas <stefankangas@gmail.com> + + Document use of calln in C code in internals.texi + + * doc/lispref/internals.texi + (Writing Emacs Primitives): Don't recommend `call0`, `call1`, etc. + Instead recommend `calln`, which covers all of those use cases. + +2025-01-19 Peter Seibel <peter@gigamonkeys.com> (tiny change) + + Improved git-add completion + + * lisp/pcmpl-git.el (pcomplete/git)): Complete untracked files. + (Bug#75336) + +2025-01-19 Manuel Giraud <manuel@ledu-giraud.fr> + + Fix keybinding alignment in `tmm-menubar' + + * lisp/tmm.el (tmm--shorten-space-width): New function that + reduces the space between the text menu entry and its keybinding + to avoid a misalignement. + (tmm-add-one-shortcut): Use it. (Bug#75500) + +2025-01-19 Eli Zaretskii <eliz@gnu.org> + + * src/fileio.c (Finsert_file_contents): Fix last change. + +2025-01-19 Eli Zaretskii <eliz@gnu.org> + + Fix visiting files in /proc/ directory + + * src/fileio.c (Finsert_file_contents): Treat regular files whose + size is reported as zero as if they were special files. (Bug#75569) + +2025-01-19 Michael Albinus <michael.albinus@gmx.de> + + Fix Tramp error handling process buffer + + * lisp/net/tramp-cache.el (tramp-list-connections): + * lisp/net/tramp-cmds.el (tramp-cleanup-connection): Use connection + property " connected" for a check of active connections. + + * lisp/net/tramp.el (tramp-get-buffer): Set connection property + " connected". + +2025-01-19 Jakub Ječmínek <kuba@kubajecminek.cz> + + Align files after dired revert (Bug#17219) + + * lisp/dired.el (dired-revert): Add 'dired--align-all-files' + function call, to re-align files after reverting. + +2025-01-19 Paul Eggert <eggert@cs.ucla.edu> + + Prefer EMACS_INT_MAX to TYPE_MAXIMUM (EMACS_INT) + + * src/dispextern.h (GLYPH_CODE_P): + Use EMACS_INT_MAX instead of TYPE_MAXIMUM (EMACS_INT), + as it’s shorter and is what all the other code uses + in this situation. + +2025-01-19 Paul Eggert <eggert@cs.ucla.edu> + + Port recently-added bitfields back to GCC + + * src/lisp.h (hash_table_std_test_t, hash_table_weakness_t): + Name these as enum tags as well as typedefs, + so that ENUM_BF works for them. + +2025-01-19 Paul Eggert <eggert@cs.ucla.edu> + + Always define image_compute_scale + + * src/image.c (image_compute_scale): Define even if + ! (defined HAVE_IMAGEMAGICK || defined HAVE_NATIVE_TRANSFORMS), + because it is always used. Needed in platforms that lack all + those image libraries. + +2025-01-19 Paul Eggert <eggert@cs.ucla.edu> + + Port recently-added bitfields to IBM XL C 16.1 + + * src/lisp.h (struct Lisp_Hash_Table): + Use ENUM_BF for members weakness and frozen_test, + since they are enum bitfields. + +2025-01-19 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + +2025-01-19 Paul Eggert <eggert@cs.ucla.edu> + + Port to AIX 7.3 ‘find’ + + * configure.ac (FIND_DELETE): Port to AIX 7.3 ‘find’, + which exits with nonzero status if ‘-exec rm -f {} +’ + is never invoked. + +2025-01-19 Paul Eggert <eggert@cs.ucla.edu> + + Simplify cross cleaning + + * cross/Makefile.in (clean, maintainer-clean): + Prefer a single ‘find’ to doing ‘find’ in a shell loop. + +2025-01-19 Eli Zaretskii <eliz@gnu.org> + + Revert "Revert "Use @xref more consistently; "See @ref" -> "@xref""" + + This reverts commit 59167e2de8a93341cd235d83e034c00be32403f6. + TRT to use reference in Texinfo is to place some punctuation + character after a reference. This is common both to @ref and + to @xref. So this is what should be done to fix the changeset, + not to revert it. + +2025-01-19 Stefan Kangas <stefankangas@gmail.com> + + Prefer 'list (...)' to 'listn (N, ...)' + + * src/androidfns.c (Fandroid_query_battery): + * src/buffer.c (make_lispy_itree_node): + * src/keyboard.c (init_while_no_input_ignore_events): + * src/window.c (Fset_window_configuration): + * src/xterm.c (x_dnd_send_unsupported_drop): Prefer 'list (...)' to + 'listn (N, ...)'. + * admin/coccinelle/listn.cocci: New file. + +2025-01-19 Pip Cet <pipcet@protonmail.com> + + Fix a GTK memory leak (Bug#75636) + + * src/gtkutil.c (xg_create_frame_widgets): Don't call g_object_ref. + +2025-01-19 Po Lu <luangruo@yahoo.com> + + Revert "Use @xref more consistently; "See @ref" -> "@xref"" + + This reverts commit e54b94c28cdf9699009e7691f7c8ffa5b2c7b741, + which prevented building Emacs on a number of my machine(s). + +2025-01-19 Stefan Kangas <stefankangas@gmail.com> + + Use @xref more consistently; "See @ref" -> "@xref" + + * doc/lispref/commands.texi (Using Interactive): + * doc/lispref/customize.texi (Type Keywords): + * doc/lispref/edebug.texi (Using Edebug, Specification List): + * doc/lispref/frames.texi (Frame Layout): + * doc/lispref/functions.texi (What Is a Function, Related Topics): + * doc/lispref/keymaps.texi (Controlling Active Maps, Key Lookup): + * doc/lispref/minibuf.texi (Completion Variables): + * doc/lispref/os.texi (Terminal Input): + * doc/lispref/text.texi (JSONRPC Overview): + * doc/misc/calc.texi (More About Embedded Mode, Customizing Calc): + * doc/misc/cc-mode.texi (Movement Commands, Auto-newlines) + (Config Basics, Custom Auto-newlines): + * doc/misc/gnus.texi (Email Based Diary): + * doc/misc/htmlfontify.texi (Interactive, Non-interactive): + (Variables): + * doc/misc/idlwave.texi (Using the Shell): + * doc/misc/srecode.texi (Quick Start, User Templates) + (Parts of SRecode, Compound Variable Values, Template Macros): + * doc/misc/tramp.texi (Inline methods, FUSE-based methods) + (Predefined connection information, Remote shell setup) + (Frequently Asked Questions): + * doc/misc/transient.texi (Configuration, Technical Introduction): + (Binding Suffix and Infix Commands, Transient State): + (Prefix Slots, Predicate Slots): + * doc/misc/wisent.texi (Example, Compiling a grammar, Conflicts): + (Grammar Debugging, Error recovery): + +2025-01-18 Stefan Kangas <stefankangas@gmail.com> + + Initialize full range in parse_menu_item + + * src/keyboard.c (parse_menu_item): Initialize the full range of item, + in case future changes makes ITEM_PROPERTY_ENABLE != ITEM_PROPERTY_MAX. + Problem reported by Pip Cet <pipcet@protonmail.com>. + Ref: https://mail.gnu.org/r/emacs-devel/2025-01/msg00680.html + +2025-01-18 Paul Eggert <eggert@cs.ucla.edu> + + Remove unnecessary stdalign.in.h + + * lib/stdalign.in.h: Remove. This file was already removed in + commit b429274c5b4b2b511d2d351111dea2d354498e0f (2023-02-04) + but was brought back mistakenly by a merge from emacs-29 in + commit ecf08f0621c25ad1dfadd96399e204c389ab1695 (2024-01-02). + * nt/inc/stdalign.h: Don’t mention removed file in comment. + +2025-01-18 Arsen Arsenović <arsen@aarsen.me> + + ruler-mode: Improve compatibility with text-scale (bug#75168) + + * lisp/ruler-mode.el (ruler-mode-ruler): Use pixelwise line-number + display width for alignment with line numbers. + +2025-01-18 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 853719c4c23 ; * lisp/net/eww.el (eww-download): Doc fix (bug#75585) + 45ec5865aa7 ; * etc/NEWS: Tweak wording of NSM items. + b981889e9ee ; cperl-mode-tests.el: Don't run the newest test in perl-... + 6a864ef8f39 Add smtpmail cross-reference to 'auth-sources'. + 1fd7957bc72 ; cperl-mode.el: Add a test for Bug#74245 + 8d289670d60 Merge branch 'emacs-30' of git.savannah.gnu.org:/srv/git/... + b74ac4af940 ; cperl-mode.el: Allow bare $ in a signature (Bug#74245) + 30e84fc6537 Emphasize the use of :tag for new customization types + + # Conflicts: + # etc/NEWS + +2025-01-18 Ahmed Khanzada <me@enzu.ru> + + New unit-tests for cl-lib (bug#75633). + +2025-01-18 Yuan Fu <casouri@gmail.com> + + Fix treesit.el tests + + * lisp/treesit.el (treesit--imenu-merge-entries): + (Ftreesit_parser_set_included_ranges): Warn in the docstring + that the function is destructive/owns the argument. + * test/src/treesit-tests.el (treesit-range-fixup-after-edit): + (treesit-imenu): Fix tests. + +2025-01-18 Yuan Fu <casouri@gmail.com> + + Make sure treesit.el doesn't create parsers by itself (bug#75456) + + Up to this point, functions in + treesit.el (font-lock/indentation/etc) creates a parser if one + doesn't exist. This doesn't work well with local parsers, + because local parsers are not visible at global level and + font-lock or indentation functions might accidentally create a + global parser for an embedded language. + + The solution is to not create parsers automatically. This has + the potential of breaking things, but I don't expect any actual + breakage: all the major modes create parsers they need in the + major mode body, even though previously it isn't technically + necessary. + + * lisp/treesit.el (treesit-buffer-root-node): + (treesit--update-ranges-local): + (treesit-update-ranges): + (treesit--guess-primary-parser): Use treesit-parser-list instead + of treesit-parser-create. + +2025-01-18 Yuan Fu <casouri@gmail.com> + + Remap language symbol in treesit-query-compile (bug#72388) + + * src/treesit.c (Ftreesit_query_compile): Use remapped language. + +2025-01-18 Yuan Fu <casouri@gmail.com> + + Use treesit-query-first-valid in c-ts-mode + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): + Use treesit-query-first-valid. Use :default-language keyword. + (c-ts-mode--test-virtual-named-p): Remove function. + +2025-01-18 Yuan Fu <casouri@gmail.com> + + Add treesit-query-first-valid + + This should help major modes to support grammar versions. + + * doc/lispref/parsing.texi (Pattern Matching): Mention new function. + * lisp/treesit.el (treesit-query-first-valid): New function. + (treesit-query-valid-p): New function. + +2025-01-17 Paul Eggert <eggert@cs.ucla.edu> + + Simplify alloc by assuming MALLOC_IS_LISP_ALIGNED + + Problem reported by Hong Xu <https://bugs.gnu.org/75551#14>. + * src/alloc.c (MALLOC_IS_LISP_ALIGNED): static_assert it, + since it is true on all current Emacs platforms. + All uses simplified to assume it is true. + (xmalloc, xzalloc, xrealloc, lisp_malloc): Just use + malloc/calloc/realloc. Since we are using the malloc-gnu + and realloc-posix modules, we need not worry about whether + these functions return a null pointer for zero-size requests. + (xrealloc): Stop worrying about no-longer-existing platforms + where realloc (nullptr, ...) did not work. + (laligned, lmalloc, lrealloc): Remove. All uses removed. + +2025-01-17 Paul Eggert <eggert@cs.ucla.edu> + + Let Gnulib deal with malloc/realloc 0 + + Instead of worrying about whether malloc and realloc yield a + non-null pointer when given size 0 (the traditional behavior + recommended by Doug McIlroy, and the only behavior that makes + sense for Emacs), let Gnulib arrange for the traditional behavior. + * admin/merge-gnulib (GNULIB_MODULES): Add malloc-gnu (which we + were already depending on indirectly) and realloc-posix. + * lib/gnulib.mk.in, m4/gnulib-comp.m4: + Regenerate by running admin/merge-gnulib. + +2025-01-17 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + +2025-01-17 Pip Cet <pipcet@protonmail.com> + + Fix build on Solaris 10 (bug#75451) + + * autogen.sh: Avoid bashism. + * configure.ac (AC_PROG_AWK): Use. + * src/Makefile.in (AWK): Set. + (dmpstruct.h): Use "$(AWK)", not "awk". + * src/dired.c (DT_UNKNOWN, DT_DIR, DT_LNK): Define all three constants + or none of them. + +2025-01-17 Stefan Kangas <stefankangas@gmail.com> + + Turn macros into enums in keyboard.h + + * src/keyboard.h (item_property_idx, menu_item_pane_idx): Turn macros + into enums. + (ITEM_PROPERTY_MAX): New constant. + * src/keyboard.c (parse_menu_item): Use above new constant. + +2025-01-17 Pranshu Sharma <pranshu@bauherren.ovh> + + Do not rotate dedicated windows + + * lisp/window-x.el (rotate-windows): Do not rotate windows + dedicated to their buffers. + +2025-01-17 Stefan Monnier <monnier@iro.umontreal.ca> + + (hack-one-local-variable): Refine last patch (bug#74964) + + * lisp/files.el (hack-local-variables--inhibit-eval): Rename from + `hack-local-variables--inhibit`. + (hack-one-local-variable): Skip only those eval forms we're already + in the process of evaluating. + +2025-01-17 Stefan Kangas <stefankangas@gmail.com> + + Make NSM warn for TLS 1.1 + + * lisp/net/nsm.el (nsm-protocol-check--version): Warn also for + TLS 1.1. Update docstring. + +2025-01-17 João Távora <joaotavora@gmail.com> + + Flymake: fix bug introduced recently + + Must protect against flymake--state never having been a hash + table at all, so that flymake-mode can be safely turned off even + if it never turned on in the first place. + + Github-reference: https://github.com/joaotavora/eglot/discussions/1480 + + * lisp/progmodes/flymake.el (flymake-mode): Fix bug. + +2025-01-17 Stefan Kangas <stefankangas@gmail.com> + + Make NSM warn for DH key exchange on medium severity + + * lisp/net/nsm.el (network-security-protocol-checks): Bump dhe-kx + severity to medium. + (nsm-protocol-check--dhe-kx): Update docstring to describe the so-called + Racoon Attack, discovered in 2020. + +2025-01-17 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + +2025-01-17 Po Lu <luangruo@yahoo.com> + + Fix the Lisp reference manual for older Texinfo + + * doc/lispref/symbols.texi (Standard Properties): Don't provide + empty reference. + + * doc/lispref/variables.texi (Lexical Binding): Don't abuse xref + in a standalone sentence. + +2025-01-16 Stephen Gildea <stepheng+emacs@gildea.com> + + Property definition-type becomes find-function-type-alist + + lisp/emacs-lisp/find-func.el (find-function-search-for-symbol): Use + symbol property 'find-function-type-alist' instead of 'definition-type' + (find-function-update-type-alist): New convenience function. + * doc/lispref/symbols.texi (Standard Properties): Update example to use + 'find-function-type-alist' and 'find-function-update-type-alist' + * doc/lispref/functions.texi (Defining Functions): + * doc/lispref/tips.texi (Coding Conventions): + * doc/misc/ert.texi (How to Write Tests): + * etc/NEWS: Change reference to 'definition-type' to name + 'find-function-type-alist' instead + +2025-01-16 Stefan Monnier <monnier@iro.umontreal.ca> + + (cl-block, cl-return-from): Fix bug#75498 + + * lisp/emacs-lisp/cl-macs.el (cl-block, cl-return-from): + Change encoding so it obeys variable coping (i.e. lexical scoping when + `lexical-binding` is non-nil). + (cl--block-wrapper, cl--block-throw): Adjust accordingly. + + * test/lisp/emacs-lisp/cl-macs-tests.el + (cl-macs--test-cl-block-lexbind-bug-75498): New test. + +2025-01-16 Stefan Monnier <monnier@iro.umontreal.ca> + + (asm-mode): Fix bug#75542 + + * lisp/progmodes/asm-mode.el (asm-mode): Be careful not to override + changes in the mode map or in `comment-start`. + Move the use of `asm-mode-set-comment-hook` back to where it was before + commit 0cff4e67f1de. + (asm-mode-set-comment-hook): Declare it obsolete. + +2025-01-16 Thierry Volpiatto <thievol@posteo.net> + + Handle correctly DISPLAY-FUNCTION arg in 'bookmark--jump-via' + + This fixes bug #75354 where when jumping to a eww bmk to other + window (or frame) the buffer is displayed both in other window + and current window. + Previously 'bookmark--jump-via' was calling DISPLAY-FUNCTION on the + current-buffer from the new buffer created by bookmark handler + (e.g. eww) now DISPLAY-FUNCTION is called on the new buffer from + the current buffer (winconf is saved when calling handler). + In addition to make eww bookmarks displayed properly, this fix as + well w3m bookmarks and as a side effect fix the eww quit function + which restore properly winconf after quitting (previously leaving + two windows open). + * lisp/bookmark.el (bookmark--jump-via): Fix it. + +2025-01-16 Kierin Bell <fernseed@fernseed.me> + + Improve usability and documentation of Iroquoian input methods + + * lisp/leim/quail/iroquoian.el: Add variants for Mohawk and Oneida + endonyms in comments and docstrings. Update the 'oneida-postfix' input + method to make the most commonly used glottal stop character easiest to + input. Update the 'onondaga-postfix' input method with mnemonic keys + for nasals in the Onondaga Nation, New York orthography. (Bug#75448) + + * etc/NEWS: Add variants for Mohawk and Oneida endonyms to NEWS entry. + +2025-01-16 Eli Zaretskii <eliz@gnu.org> + + Fix subtle problem with updating 'font_style_table' + + * src/font.c (font_style_to_value): Update the Vfont_* variables + to keep them in sync with their slots in 'font_style_table'. + (Bug#75521) + (syms_of_font): Comment on usage of DEFVAR_LISP_NOPRO. + +2025-01-16 Stephen Gildea <stepheng+emacs@gildea.com> + + Update recent find-func change to fix elisp-mode-tests + + * lisp/emacs-lisp/find-func.el (find-function-search-for-symbol): + Check that symbol is a symbol before trying to get a property. + +2025-01-16 Steven Allen <steven@stebalien.com> + + Take the tab-line into account when computing the window edges + + window-body-height correctly subtracts the tab-line's height but + window-edges did not add this same height to the y-offset. + + See https://github.com/emacs-exwm/exwm/pull/114 + + * lisp/window.el (window-edges): Add the tab-line-height to the y-offet + of the window body. (Bug#75576) + +2025-01-16 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + +2025-01-15 Stefan Kangas <stefankangas@gmail.com> + + Fix clear-string crash with text properties + + * src/fns.c (Fclear_string): Fix crash by clearing all text + properties. (Bug#75581) + * doc/lispref/strings.texi (Modifying Strings): Document the above + behavior change. + Fix proposed by Andreas Schwab <schwab@linux-m68k.org>. + +2025-01-15 Stefan Kangas <stefankangas@gmail.com> + + Add clear-string to symbol-releases.eld + + * etc/symbol-releases.eld (clear-string): Add function. + +2025-01-15 Stefan Kangas <stefankangas@gmail.com> + + Prefer 'ARRAYELTS (x)' to 'sizeof x / sizeof *x' + + * src/comp.c (emit_limple_insn): + * src/msdos.c (dos_set_keyboard, dos_rawgetc): + * src/sysdep.c (convert_speed, list_system_processes): + * src/w32fns.c (deliver_wm_chars, Fx_file_dialog): + * src/w32term.c (record_event, w32_read_socket): + Prefer 'ARRAYELTS (x)' to 'sizeof x / sizeof *x'. + + * admin/coccinelle/arrayelts.cocci: New file. + +2025-01-14 Stefan Kangas <stefankangas@gmail.com> + + Use calln instead of calling Ffuncall directly + + * src/bytecode.c (bcall0): + * src/comp.c (bcall0): + * src/eval.c (apply1): + * src/lisp.h (call0): + * src/thread.c (invoke_thread_function): Use calln instead of calling + Ffuncall directly. + + * admin/coccinelle/calln.cocci: New semantic patch. + +2025-01-14 Juri Linkov <juri@linkov.net> + + Improve repeat-mode to correctly show multi-key sequences as echo + + * lisp/repeat.el (repeat-echo-message-string): + Use 'cl--map-keymap-recursively' that iterates over + complete key sequences. Also it returns key vectors, + so don't need to use 'vector'. + +2025-01-14 Juri Linkov <juri@linkov.net> + + Fix repeat-mode to keep the same map symbol for repeat-continue + + * lisp/repeat.el (repeat-get-map-sym): New function + refactored from 'repeat-get-map'. + (repeat-get-map): Move continue-related code to 'repeat-get-map-sym'. + (repeat-pre-hook): Use 'repeat-get-map-sym' and 'repeat-get-map'. + Set 'repeat-map' to 'map-sym'. + (repeat-post-hook): Use 'repeat-get-map-sym'. + + * test/lisp/repeat-tests.el (repeat-tests-continue-another): + Improve to invoke double key 'C-M-o C-M-o' that should not switch + between maps (bug#74140). + +2025-01-14 Juri Linkov <juri@linkov.net> + + * lisp/tab-bar.el (tab-bar-select-tab): Fix tab-bar-history-mode. + + Reset the values of 'tab-bar-history-back' and 'tab-bar-history-forward' + to nil to not retain a previous tab's history after switching to another + tab using window-state. + +2025-01-14 João Távora <joaotavora@gmail.com> + + Flymake: more ambitious cleanup in flymake-mode (bug#69809) + + Further improve flymake-mode idempotency by not nuke existing overlays. + This means multiple flymake-mode invocations do the same as just one + one, with minimal or no additional side effects. This is good for + people with lots of 'flymake-mode' in hooks. + + The foreign diagnostic importation has been refactored into a separate + function and moved to the "really start" section of 'flymake-start'. + The duplication problem appears to be avoided by some heuristics in + flymake-highlight-line. + + A new test has been added. + + * lisp/progmodes/flymake.el (flymake--import-foreign-diagnostics): New helper + (flymake-start): Use it. + (flymake-mode): Don't nuke overlays here. + + * test/lisp/progmodes/flymake-tests.el (foreign-diagnostics): New + test. + +2025-01-14 João Távora <joaotavora@gmail.com> + + Flymake: improve idempotence of flymake-mode (bug#69809) + + In some circumstances, such as the ones described in the referenced bug + report, flymake-mode is activated non-interactively and asynchronously + in buffers where it may already be active and in the midst of + operations. + + This commit ensures that flymake-mode a bit safer to re-enable in such + circumstances and fixes the bug. It also adds some comments documenting + the situation. + + * lisp/progmodes/flymake.el (flymake-mode): Don't smash flymake--state. + Add some comments. No need to check for flymake--state nil. + (flymake--project-diagnostics): No need to check for flymake--state nil. + +2025-01-14 Martin Rudalics <rudalics@gmx.at> + + Handle removal of selected tty child frame + + * src/dispextern.h (root_frame): + * src/frame.h (root_frame): Move declaration from dispextern.h + to frame.h. + (SET_FRAME_VISIBLE): Whend making the selected tty child frame + invisible, use mru_rooted_frame to find a frame to switch to. + * src/dispnew.c (root_frame): Move root_frame to frame.c. + * src/frame.c (do_switch_frame): On ttys don't change the + top frame when switching from a child frame to another frame + with the same root. + (root_frame): Move here from dispnew.c. + (Fframe_root_frame): New Lisp function. + (delete_frame): Whend deleting the selected tty child frame use, + mru_rooted_frame to find a frame to switch to. + * src/window.c (mru_rooted_frame): New function. + * src/window.h (mru_rooted_frame): Declare it. + * doc/lispref/frames.texi (Child Frames): Describe new function + 'frame-root-frame'. + +2025-01-13 Stefan Kangas <stefankangas@gmail.com> + + src/comp.c: New macro CALLNI + + * src/comp.c (CALL0I, CALL1I, CALL2I, CALL4I): Delete macros. + (CALLNI): New macro, replacing the above. All callers updated. + +2025-01-13 Stefan Kangas <stefankangas@gmail.com> + + Prefer calln to CALLN where applicable + + * src/callint.c (read_file_name): + * src/comp.c (CALL0I, CALL1I, CALL2I, CALL4I, declare_imported_func): + * src/data.c (Ffset, notify_variable_watchers): + * src/eval.c (Ffuncall_with_delayed_message): + * src/keymap.c (Fdescribe_buffer_bindings): + * src/minibuf.c (Fread_buffer, Fcompleting_read): + * src/pdumper.c (Fdump_emacs_portable): + * src/print.c (print_vectorlike_unreadable): + * src/treesit.c (treesit_traverse_match_predicate) + (treesit_build_sparse_tree): Prefer calln to CALLN. + +2025-01-13 Yuan Fu <casouri@gmail.com> + + Add 'and', 'named', and 'anonymous' predicate for tree-sitter + + * doc/lispref/parsing.texi (User-defined Things): Mention the + new predicate. + * src/treesit.c (treesit_traverse_validate_predicate): Recognize + named, anonymous, and and predicates. + (treesit_traverse_match_predicate): Handle named, anonymous, and + and predicates. + +2025-01-13 Yuan Fu <casouri@gmail.com> + + Add special indent rule for FOR_EACH_TAIL in c-ts-mode + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--emacs-macro-rules): New function + (c-ts-mode--simple-indent-rules): Add new rule. + +2025-01-13 Yuan Fu <casouri@gmail.com> + + Fix c-ts-mode indentation (bug#75442) + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--simple-indent-rules): + Use standalone-parent instead of parent. + * test/lisp/progmodes/c-ts-mode-resources/indent.erts: + New test. + +2025-01-13 Yuan Fu <casouri@gmail.com> + + Add newly supported keywords to c-ts-mode (bug#75226) + + For the new keywords, test if the grammar supports them before + useing it. + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--optional-c-keywords): New variable. + (c-ts-mode--ms-keywords): New variable. + (c-ts-mode--compute-optional-keywords): New function. + (c-ts-mode--keywords): Add new optional keywords. + (c-ts-mode--c++-operators): New variable. + (c-ts-mode--c++-operator-keywords): New variable. + (c-ts-mode--font-lock-settings): Use c-ts-mode--c++-operators. + +2025-01-13 Stephen Gildea <stepheng+emacs@gildea.com> + + New symbol property 'definition-type' used by 'find-function'. + + * lisp/emacs-lisp/find-func.el (find-function-search-for-symbol): + Look for new property 'definition-type' on the symbol. + * doc/lispref/symbols.texi (Standard Properties): Add 'Definition-type'. + * doc/lispref/functions.texi (Defining Functions): + * doc/lispref/tips.texi (Coding Conventions): + * doc/misc/ert.texi (How to Write Tests): + Add cross reference to new property 'definition-type'. + * etc/NEWS: Announce new symbol property 'definition-type'. + + Thanks to Eli Zaretskii for reviewing this change. + +2025-01-13 Stephen Gildea <stepheng+emacs@gildea.com> + + Lisp Reference Manual: Index standard symbol properties. + + * doc/lispref/symbols.texi (Standard Properties): + * doc/lispref/commands.texi: + * doc/lispref/customize.texi (Variable Definitions): + * doc/lispref/help.texi: + * doc/lispref/keymaps.texi: + * doc/lispref/minibuf.texi (Minibuffer History): + * doc/lispref/modes.texi (Setting Hooks): + * doc/lispref/sequences.texi (Char-Tables): + * doc/lispref/text.texi (Undo): + * doc/lispref/variables.texi: Each standard symbol property has exactly + one index entry, uniformly formatted as "(symbol property)". + +2025-01-13 Roland Winkler <winkler@gnu.org> + + fix for bibtex.el in prior commit + + * lisp/textmodes/bibtex.el (bibtex-string-file-path) + (bibtex-file-path): Check for undefined environment variable + BIBINPUTS. + +2025-01-13 Stefan Kangas <stefankangas@gmail.com> + + Use eabs in Fcurrent_time_zone + + * src/timefns.c (Fcurrent_time_zone): Use eabs. + * test/src/timefns-tests.el + (timefns-tests-current-time-zone): New test. + +2025-01-13 Stefan Kangas <stefankangas@gmail.com> + + Delete obsolete coccinelle files + + These files relates to a 13 year old attempt at a generational GC that + was never merged. + + * admin/coccinelle/frame.cocci: + * admin/coccinelle/window.cocci: Delete files. + +2025-01-12 Roland Winkler <winkler@gnu.org> + + bibtex-string-file-path and bibtex-file-path are lists of directories + + * lisp/textmodes/bibtex.el (bibtex-string-file-path, bibtex-file-path): + These user options are now lists of directories. For backward compatibility, + the old, obsolete format is still supported. + (bibtex-string-files-init, bibtex-initialize): Change accordingly. + Use file-name-extension and file-name-with-extension. + * etc/NEWS: Entry for new format of bibtex-string-file-path and + bibtex-file-path. + +2025-01-12 Mauro Aranda <maurooaranda@gmail.com> + + Emphasize the use of :tag for new customization types + + * doc/lispref/customize.texi (Type Keywords): Name important use + cases of the :tag keyword. + (Defining New Types): Emphasize the use of the :tag keyword when + using the lazy widget. (Bug#74409) + +2025-01-12 Juri Linkov <juri@linkov.net> + + Add treesit-thing-settings to yaml-ts-mode and enable transpose-sexps + + * lisp/treesit.el (treesit-major-mode-setup): Move setting of + 'transpose-sexps-function' outside of 'treesit-thing-defined-p' + since 'treesit-transpose-sexps' doesn't depend on the 'sexp' thing. + + * lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode): + Add 'treesit-thing-settings' with the 'list' thing, + but use it only for list commands, not sexp commands (bug#73404). + +2025-01-12 Pranshu Sharma <pranshu@bauherren.ovh> + + Add new option 'rotate-windows-change-selected' + + * lisp/window-x.el: Fix header information. + (rotate-windows-change-selected): New option. + (rotate-window-layout-counterclockwise) + (rotate-window-layout-clockwise): Fix doc-strings. + (rotate-windows): Handle 'rotate-windows-change-selected'. + +2025-01-12 Juri Linkov <juri@linkov.net> + + * lisp/treesit.el: Fix 'treesit--explorer-tree-mode-map'. + + (treesit--explorer-tree-mode-map): Move this map + before its mode 'treesit--explorer-tree-mode', + otherwise the map has no effect. + +2025-01-12 Eli Zaretskii <eliz@gnu.org> + + Fix mouse-2 clicks on mode line and header line + + * src/keymap.c (Fcurrent_active_maps): For clicks on mode-line and + header-line, always override the keymaps at buffer position. + (Bug#75219) + +2025-01-11 Daniel Colascione <dancol@dancol.org> + + Align term-mode control character handling + + Terminal emulators generally ignore exotic ASCII control + characters like SOH and STX. Make term-mode do the same. + + * lisp/term.el (term-emulate-terminal): ignore ASCII control + characters like other terminal emulators do + +2025-01-11 Jim Porter <jporterbugs@gmail.com> + + Make Eshell's "ls" command return a non-zero status on errors + + * lisp/eshell/em-ls.el (eshell/ls): Set exit code when calling 'error-func'. + +2025-01-11 Juri Linkov <juri@linkov.net> + + Improve treesit list navigation support for #if/#endif (bug#73404) + + * lisp/treesit.el (treesit--forward-list-with-default): Improve to + better support the case when point is inside an opening/closing node + with a name longer than 1 character such as "#if" and "#endif". + (treesit-navigate-thing): No need to check for thing 'list' + since list commands now use other functions. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--thing-settings): Add + more preproc nodes such as #if/#endif and #ifdef/#endif and their + variants to the 'list' thing. + +2025-01-11 Juri Linkov <juri@linkov.net> + + * lisp/progmodes/typescript-ts-mode.el: Fix syntax of tsx tags. + + (tsx-ts--s-p-query): Bind 'jsx_opening_element' and + 'jsx_closing_element' to @jsx to be able to use the < and > syntax + for angle brackets in 'tsx-ts--syntax-propertize-captures' (bug#73978). + +2025-01-11 Martin Rudalics <rudalics@gmx.at> + + Fix handling of 'minibuffer' frame parameter for tty frames + + * src/frame.c (make_terminal_frame): Fix handling of + 'minibuffer' frame parameter for tty child frames. Support + 'minibuffer-only' child frames. + +2025-01-11 Daniel Mendler <mail@daniel-mendler.de> + + ibuffer: Add the "Recency" column + + Define a column which shows how many seconds ago the respective + buffer has been displayed. The time is formatted with the + `seconds-to-string' function, with the new arguments READABLE=t + and ABBREV=t. + * lisp/ibuffer.el (ibuffer-recency-header-map): New keymap. + (define-ibuffer-column recency): New column. + * etc/NEWS: Mention new `recency' column. (Bug#73047) + +2025-01-11 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + d66b8d4becb Fix checkbox's child creation + 26c5fadf474 Document that 'package-vc' doesn't support built-in packages + ee61b9a050b ; Fix documentation of completion commands + ce43d13593a ; Simplify admin/run-codespell + fa1470d0699 ; Remove duplicated word in files.el Commentary + dabaea97465 Improve checkdoc-common-verbs-wrong-voice docstring + 6de2ee5663d Document string-as-{unibyte,multibyte} as obsolete in manual + 7f76f872ebf Fix go-ts-mode var spec indentation (Bug#75362) + 01464fc882d Add "text" as a thing in tsx-ts-mode + 59c57337923 Improve doc string of 'package-delete' + 313a191d047 ; * admin/MAINTAINERS: Remove Kelvin White. + 002960ceabf Clarify that 'mac' line ending convention is not used on ... + 4210e065648 Add language server for Odin + ee1034422b0 ; Improve documentation of function-type display + 1c49edc4080 Modernize "Commentary" section of files.el + 505c1123e18 * INSTALL: Add advice how to invoke 'make install'. (Bug... + 82e16cae9cc Improve the documentation of 'key-valid-p' + + # Conflicts: + # etc/NEWS + # lisp/progmodes/typescript-ts-mode.el + +2025-01-11 David Ponce <da_vid@orange.fr> + + Fix widget buttons when button prefix includes space + + * lisp/wid-edit.el (widget-specify-button): Give the invisible + space the same 'face' property as the rest of the button. + (Bug#73911) + +2025-01-11 Jared Finder <jared@finder.org> + + Support TTY child frames with GPM mouse + + * lisp/frame.el (x-list-fonts): Delete `frame-at', to move to + C implementation. + * lisp/xt-mouse.el (xterm-mouse-event): Call new `tty-frame-at'. + * src/term.c (tty_frame_at, Ftty_frame_at): New C function, + replacing `frame-at' only for TTYs. + (term_mouse_position): Use last_mouse_frame when it is set. + (handle_one_term_event): Call tty_frame_at to get frame under + mouse, store it in last_mouse_frame. Alter event coordinates + based on mouse frame. + (syms_of_term): Add tty-frame-at, last_mouse_frame. + * src/termhooks.h: Make Gpm_Event parameter const. + +2025-01-11 Roland Winkler <winkler@gnu.org> + + In bibtex.el, fix widgets for customization types (bug#74409) + + * lisp/textmodes/bibtex.el (bibtex-field-list, bibtex-entry-alist) + (bibtex-field-alist): Fix widgets for customization types (bug#74409). + +2025-01-11 Roland Winkler <winkler@gnu.org> + + Improve some docstrings in bibtex.el + + * lisp/textmodes/bibtex.el: (bibtex-BibTeX-entry-alist) + (bibtex-biblatex-entry-alist, bibtex-BibTeX-field-alist): Improve docstrings. + (bibtex-biblatex-entry-alist): Minor fix. + +2025-01-10 Robert Pluim <rpluim@gmail.com> + + Protect Vframe_list updating from interruptions + + * src/frame.c (delete_frame): When deleting the frame from + Vframe_list, block input, since input can arrive whilst we're + running lisp (Bug#74902). + +2025-01-10 Pranshu Sharma <pranshu@bauherren.ovh> + + Add new file window-x.el + + * lisp/window-x.el: New file. + * etc/NEWS: Mention new commands to modify window layout. + +2025-01-10 Martin Rudalics <rudalics@gmx.at> + + Have 'split-window' optionally resurrect deleted windows + + * src/window.c (Fwindow_old_buffer): Handle deleted window as + argument. + (make_parent_window): Remove function. + (Fsplit_window_internal): New argument REFER for resurrecting + deleted windows. Incorporate functionality of defunct + make_parent_window. + (Fdelete_window_internal, delete_all_child_windows): Store any + deleted window's buffer in the window's old_buffer slot. + (window_dead_windows_table): Make it a 'value' type hash table + so the sequence number cannot affect its weakness. + * lisp/window.el (split-window): New argument REFER. + * doc/lispref/windows.texi (Resurrecting Windows): New section. + (Splitting Windows): Explain new argument REFER. + (Window Hooks): Rewrite description of 'window-old-buffer'. + * etc/NEWS: Mention new REFER argument for 'split-window'. + +2025-01-10 Juri Linkov <juri@linkov.net> + + * lisp/progmodes/typescript-ts-mode.el: Fix syntax of tsx tags. + + (tsx-ts--syntax-propertize-captures): For tag angle brackets + use the same syntax as in 'sgml-make-syntax-table' (bug#73978). + +2025-01-10 Juri Linkov <juri@linkov.net> + + Use the treesit thing 'list' with symbol property 'treesit-thing-symbol' + + * doc/lispref/parsing.texi (User-defined Things): Mention new + functions 'treesit-forward-list', 'treesit-down-list', + 'treesit-up-list', 'treesit-show-paren-data' that use the thing + 'list' with the symbol property 'treesit-thing-symbol' (bug#73404). + + * lisp/treesit.el: Put the property 'treesit-thing-symbol' + on the symbol 'list'. + (treesit--forward-list-with-default, treesit-down-list) + (treesit-up-list, treesit-navigate-thing) + (treesit-show-paren-data--categorize, treesit-major-mode-setup): + Replace 'sexp-list' with 'list'. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--thing-settings): + * lisp/progmodes/js.el (js-ts-mode): + * lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode): + * lisp/progmodes/typescript-ts-mode.el (typescript-ts-base-mode) + (tsx-ts-mode): + * lisp/textmodes/html-ts-mode.el (html-ts-mode): + Replace 'sexp-list' with 'list'. + + * src/treesit.c (treesit_traverse_validate_predicate) + (treesit_traverse_match_predicate): Check if the 'pred' + symbol has the property 'Qtreesit_thing_symbol'. + (syms_of_treesit): New symbol 'Qtreesit_thing_symbol'. + +2025-01-09 Juri Linkov <juri@linkov.net> + + * lisp/man.el (Man-fit-to-window): Don't update on tty with MANWIDTH. + + Check if 'Man-columns' is non-nil before trying to reformat + the manpage buffer. The value of the varible 'Man-columns' + is nil on a non-window system where "MANWIDTH" or "COLUMNS" + is defined. And the return value of the function 'Man-columns' + is meaningless in this case anyway. So no need to react + to changes in window width (bug#74924). + +2025-01-09 David Ponce <da_vid@orange.fr> + + Improve UI of customizing icons + + * lisp/cus-edit.el (custom-icon--images-sub-type) + (custom-icon--emojis-sub-type, custom-icon--symbols-sub-type) + (custom-icon--texts-sub-type, custom-icon--type): New defconst's. + (custom-icon-value-create): Use them. (Bug#73178) + +2025-01-09 Eshel Yaron <me@eshelyaron.com> + + Auto-adapt completion preview background color + + Teach Completion Preview mode to automatically remap its + faces such that the background color of the preview overlay + matches the background color of the buffer text that is + being completed. Crucially, this resolves an issue where + the preview overlay didn't look nice with hl-line-mode on. + + Also see related discussion in bug#71282. + + * lisp/completion-preview.el + (completion-preview-adapt-background-color): New option. + (completion-preview--bg-color): New function. + (completion-preview--face-remap-cookie-jar): New variable. + (completion-preview--make-overlay): Use them. + +2025-01-09 Martin Rudalics <rudalics@gmx.at> + + In xt_action_hook don't act on deleted window's scroll bar (Bug#75120) + + * src/xterm.c (xt_action_hook): Make sure window_being_scrolled + is live (Bug#75120). + * src/pdumper.c (dump_subr): Update pertinent hash of + HASH_Lisp_Subr. + +2025-01-09 Gabriel Santos <gabrielsantosdesouza@disroot.org> + + Add button navigation to treesit-explorer (bug#75141) + + * lisp/treesit.el (treesit--explorer-tree-mode-map): Define it + as a child of special-mode-map, adding keys for button + navigation. + +2025-01-09 Stefan Kangas <stefankangas@gmail.com> + + Improve 'gethash' docstring + + * src/fns.c (Fgethash): Improve docstring. Avoid exposing the C + identifier 'dflt' to Lisp by providing a "usage:" string. + +2025-01-09 Kierin Bell <fernseed@fernseed.me> + + Fix documentation of Iroquoian input methods + + * lisp/leim/quail/iroquoian.el: Fix typos in Oneida endonym and in the + docstring of `haudenosaunee-postfix' about keys for inputting Onondaga + nasals. (Bug#75448) + + * etc/NEWS: Fix typo in Oneida endonym. + +2025-01-08 Arash Esbati <arash@gnu.org> + + Remove support for supertabular from RefTeX + + * doc/misc/reftex.texi (Builtin Label Environments): + * lisp/textmodes/reftex-vars.el (reftex-label-alist-builtin) + (reftex-default-label-alist-entries): Delete entries for the + supertabular environment. supertabular is an extension of the + normal tabular environment, and therefore doesn't contain a + caption and label. Hence, supporting supertabular in RefTeX is + useless. + +2025-01-08 Arash Esbati <arash@gnu.org> + + Replace obsolete subfigure package with subfig + + * doc/misc/reftex.texi (Builtin Label Environments): Mention the + subfig LaTeX package instead of the obsolete subfigure. + + * lisp/textmodes/reftex-vars.el (reftex-label-alist-builtin): + Replace obsolete subfigure entry with subfig. Adjust the macro + names accordingly and the regexp for matching the context. + Unify the descriptions of all entries. + (reftex-default-label-alist-entries): Use subfig as well. + +2025-01-08 Arsen Arsenović <arsen@aarsen.me> + + Add keywords var and final to Java Mode + + * lisp/progmodes/cc-langs.el (c-type-modifier-prefix-kwds): Add + java entry for final. + (c-no-type-kwds): Add java entry for var. + +2025-01-08 Richard Stallman <rms@gnu.org> + + subr.el doc clarifications. + + * subr.el (when-let, when-let*, and-let*): Doc clarifications. + Make `when-let* doc string self-contained. + +2025-01-08 Richard Stallman <rms@gnu.org> + + Add autoload cookie and doc fix + + cond-star.el (cond*): Add autoload cookie. + Doc fix. + +2025-01-08 Pip Cet <pipcet@protonmail.com> + + Fix store_function_docstring for native subrs (Bug#74966) + + Since native subrs can have either etc/DOC indexes or vector indexes, + we use the sign bit of the 'doc' field to distinguish the two cases. + + * src/comp.c (native_function_doc, make_subr): Use one's complement of + doc index for native subrs. + * src/doc.c (store_function_docstring): Add assertion. + * src/lisp.h (struct Lisp_Subr): Document 'doc' sign bit. + +2025-01-08 Stefan Kangas <stefankangas@gmail.com> + + Fix define_error docstring for pure space removal + + * src/lisp.h (define_error): Adjust docstring for pure space removal. + +2025-01-08 Stefan Kangas <stefankangas@gmail.com> + + Move define_error declaration and docstring + + * src/lisp.h (define_error): Move declaration to its proper place, make + external, and move its docstring... + * src/eval.c (define_error): ...to its function definition. + +2025-01-08 F. Jason Park <jp@neverwas.me> + + Improve use of Flyspell's API in erc-spelling + + * etc/ERC-NEWS: Announce deprecation of `erc-spelling-flyspell-verify' + and `erc-spelling-unhighlight-word'. A slight behavioral change not + worth mentioning is that, previously, ERC arranged for Flyspell to + ignore any word immediately following a forward slash anywhere in the + prompt input, even those for which the slash served as mere + punctuation (a "stroke"), as in "something/misspelt." As of this + change, Flyspell only unconditionally exempts an initial slash-prepended + word, like "tableflip" in "ERC> /tableflip", and checks all others that + follow against known slash commands. + * lisp/erc/erc-spelling.el: Change top-level assignment of `erc-mode' + symbol-property `flyspell-mode-predicate' from + `erc-spelling-flyspell-verify' to `erc-spelling--flyspell-input-p'. + (erc-spelling-mode, erc-spelling-disable): Remove local member from + `flyspell-incorrect-hook'. + (erc-spelling-init): Add `erc-spelling--flyspell-check' to + `flyspell-incorrect-hook' locally. Don't bother explicitly setting + `flyspell-generic-check-word-predicate' because Flyspell already does + that for clients using the `flyspell-mode-predicte' interface. + (erc-spelling-flyspell-verify, erc-spelling-unhighlight-word): Mark + obsolete. + (erc-spelling--flyspell-check, erc-spelling--flyspell-input-p): New + functions, essentially the two halves of a reworked and bifurcated + `erc-spelling-flyspell-verify'. Though used as a predicate, the first + is not named as such because it performs side effects. + * test/lisp/erc/erc-scenarios-spelling.el: New file. + * test/lisp/erc/resources/spelling/auto-correct.eld: New file. + (Bug#75327) + +2025-01-08 F. Jason Park <jp@neverwas.me> + + Fix regression in erc-nicks involving color pools + + * lisp/erc/erc-nicks.el (erc-nicks-colors): Tweak doc. + (erc-nicks--create-pool-function): On graphic displays, set value to + `erc-nicks--create-culled-pool', the original default. This fixes a bug + in which ERC mapped all pool members to a primary color, thus excluding + the bulk of them. Thanks to Trevor Arjeski for discovering it. + (erc-nicks--create-coerced-pool): Mention the text-terminal-only + requirement in doc. + (erc-nicks-refresh): Improve doc. + * test/lisp/erc/erc-nicks-tests.el (erc-nicks-tests--track-faces): + Enable `erc-track-mode' prior to running body. + +2025-01-07 Arash Esbati <arash@gnu.org> + + Update RefTeX manual + + * doc/misc/reftex.texi: (Builtin Label Environments): Mention + supported LaTeX packages ctable, minted and listings. + (Reference Styles): Update the supported reference styles and the + corresponding macros. + (Citation Styles): Mention support for biblatex package. + (Language Support): Describe usage of non-ASCII characters in the + LaTeX \label definition. + (Style Files): Mention biblatex.el as well. + (Options - Defining Label Environments): Add entry for + `reftex-label-regexps' option. + Other minor improvements. + +2025-01-07 Roland Winkler <winkler@gnu.org> + + bibtex-braced-string-syntax-table: fix bug #68477 + + * lisp/textmodes/bibtex.el (bibtex-braced-string-syntax-table): + Give all parentheses the syntax punctuation so that we do not + choke because of unbalanced parentheses other than braces (bug + +2025-01-07 Juri Linkov <juri@linkov.net> + + Prefer `%s` format over `%S` for buffers + + This restores the `%s` format` for buffers + after fba3c7ff3f68f05d32541440e0a22ec667c0ad66. + + * lisp/gnus/nnimap.el (nnimap-make-process-buffer): + * lisp/gnus/nntp.el (nntp-make-process-buffer): + * lisp/simple.el (next-error-internal): + Prefer more user-readable `%s` format over `%S` for buffers. + +2025-01-07 Juri Linkov <juri@linkov.net> + + Move calendar-month metadata to calendar-read-date (bug#68214) + + * lisp/minibuffer.el (completion-category-defaults): Move the + 'calendar-month' default value to the metadata in calendar-read-date. + + * lisp/calendar/calendar.el (calendar-read-date): Add + display-sort-function moved from completion-category-defaults. + +2025-01-07 Stefan Kangas <stefankangas@gmail.com> + + Improve docstring of image-dired-show-all-from-dir + + * lisp/image/image-dired.el (image-dired-show-all-from-dir): + Improve docstring. + +2025-01-07 Sacha Chua <sacha@sachachua.com> + + image-dired-show-all-from-dir: Reuse dired's default-directory + + * lisp/image/image-dired.el (image-dired-show-all-from-dir): Delegate + figuring out default-directory to dired. This handles the case where + image-dired is called with a cons cell that has a directory in the car + and a list of files in the cdr, which dired can handle, and therefore + allows image-dired-show-all-from-dir to show an arbitrary list of + images. It also means that image-dired-show-all-from-dir can handle + wildcards. + Ref: https://lists.gnu.org/r/emacs-devel/2025-01/msg00048.html + +2025-01-06 Stefan Kangas <stefankangas@gmail.com> + + New test for finding C header files + + The assumption here is that if there is a C compiler, there is also a + math.h header somewhere. The test should fail if we can't find that + file, and hopefully that will provoke users to create bug reports. + + Let's see how far we can take this idea; we might have to give up and + disable the test in some configurations. But doing that now seems + premature, even if we had a list of affected systems (which we don't). + + * lisp/man.el (man--find-header-file): Factor out new function... + (Man-view-header-file): ...from here. + * test/lisp/man-tests.el (man-tests-find-header-file): New test. + +2025-01-06 Stefan Kangas <stefankangas@gmail.com> + + Fix finding C headers with clang + + This fixes following "#include" references in 'M-x man' buffers, and + using ffap, both on macOS machines, and on systems where for some reason + clang is available but gcc is not. + + * lisp/subr.el (internal--c-header-file-path): Fix finding C + headers with clang. + (internal--gcc-is-clang-p): New function factored out from... + * lisp/emacs-lisp/ert-x.el (ert-gcc-is-clang-p): ...here. + * lisp/man.el (Man-header-file-path): Bump :version tag. + + * test/lisp/subr-tests.el + (subr-tests-internal--c-header-file-path/clang-mocked): New test. + +2025-01-06 Stefan Kangas <stefankangas@gmail.com> + + New function internal--c-header-file-path + + It is not clear to me where this function properly belongs, so let's put + it in subr.el for now. This avoids code duplication without introducing + a dependency between man and ffap. It can always be moved later. + + * lisp/subr.el (internal--c-header-file-path): New function. + * lisp/man.el (Man-header-file-path): + * lisp/ffap.el (ffap-c-path): Use above new function. + + * test/lisp/subr-tests.el (ert-x): Require. + (subr-tests-internal--c-header-file-path) + (subr-tests-internal--c-header-file-path/gcc-mocked): New tests. + +2025-01-06 Stephen Gildea <stepheng+emacs@gildea.com> + + time-stamp: lower- and title-case weekday and month names + + * lisp/time-stamp.el (time-stamp-string-preprocess): new formats for + lowercase weekday name, lowercase month name, and system name + * test/lisp/time-stamp-tests.el: Add new tests. + (formatz-generate-tests): Better doc strings for generated test fns. + +2025-01-06 Juri Linkov <juri@linkov.net> + + * lisp/treesit.el: Use forward-list-default-function for C-M-n + + (treesit--forward-list-with-default): New internal function + with body from 'treesit-forward-sexp-list' (bug#73404). + (treesit-forward-sexp-list, treesit-forward-list): + Replace body with a call to the shared implementation + 'treesit--forward-list-with-default' using the + corresponding default function as an argument. + +2025-01-06 João Távora <joaotavora@gmail.com> + + Eglot: new eglot--format to fix quote substitution woes (bug#73472) + + * lisp/progmodes/eglot.el (eglot--guess-contact): Use eglot--format. + (eglot--format): New helper. + (eglot--error, eglot--message, eglot--warn) + (eglot--apply-text-edits, eglot-rename): Use eglot--format. + +2025-01-06 Stefan Kangas <stefankangas@gmail.com> + + Improve integer file mode options docstrings + + * lisp/eshell/esh-util.el (eshell-private-file-modes) + (eshell-private-directory-modes): + * lisp/gnus/mail-source.el (mail-source-default-file-modes): + * lisp/printing.el (pr-file-modes): + * lisp/gnus/mm-decode.el (mm-attachment-file-modes): + * lisp/gnus/nnmail.el (nnmail-default-file-modes): + * lisp/recentf.el (recentf-save-file-modes): + * lisp/vc/ediff-init.el (ediff-temp-file-mode): + * lisp/vc/emerge.el (emerge-temp-file-mode): Better document the fact + that these are integer and not octal values. + + * lisp/epg.el (epg--start): + * lisp/emacs-lisp/package.el (package-import-keyring): Use octal values + to make the code more self-documenting. + +2025-01-06 Peter Oliver <git@mavit.org.uk> + + Try harder to stabilize dired-test-bug27243-02 + + * test/lisp/dired-tests.el (dired-test-bug27243-02): Don't rely on the + expected point, since columns will move if the size of the parent directory + changes order of magnitude. (Bug#72120) + +2025-01-06 Stefan Kangas <stefankangas@gmail.com> + + Improve Commentary in man.el + + * lisp/man.el (Commentary): Move "Features" above "Credits and History". + The former is more likely to be relevant. + +2025-01-05 João Távora <joaotavora@gmail.com> + + Eglot: fix signature precedence based on provenance (bug#74914) + + * lisp/progmodes/eglot.el (eglot--sig-info): Reverse order of + activeParameter and sig-active. + +2025-01-05 Stefan Monnier <monnier@iro.umontreal.ca> + + (hack-one-local-variable): Fix bug#74964 + + * lisp/files.el (hack-local-variables--inhibit): New var. + (hack-one-local-variable): Use it to avoid infinite recursion in a more + targeted manner. + +2025-01-05 Michael Albinus <michael.albinus@gmx.de> + + * lisp/net/tramp-sh.el (tramp-get-remote-pipe-buf): Make it more robust. + +2025-01-05 viliaapro <vili.aapro@iki.fi> (tiny change) + + Fix bug in 'rng-valid' that unnecessarily marks buffer as modified + + * lisp/nxml/rng-valid.el (rng-do-some-validation-1): Use + 'with-silent-modifications'. (Bug#75224) + +2025-01-05 w08r <will.08rien@gmail.com> + + Enable extra flags in 'go-ts-mode' test commands + + * lisp/progmodes/go-ts-mode.el (go-ts-mode-test-flags): + (go-ts-mode--get-test-flags): New custom variable and function + for controlling test behaviour. + (go-ts-mode--compile-test): Updated to use new test flags + variable for passing extra information to the go test command + line. + (go-ts-mode-test-this-package): Updated to use new test flags + variable for passing extra information to the go test command + line. Removed incorrect use of -run flag. + + * etc/NEWS: Announce the new user option. (Bug#74786) + +2025-01-05 Eli Zaretskii <eliz@gnu.org> + + Allow to remap 'header-line' face + + * src/xfaces.c (realize_basic_faces): Bind 'face-remapping-alist' + to nil while realizing basic faces. + (lookup_basic_face): Force realizing a face whose 'inherit' + attribute is non-nil. (Bug#73862) + +2025-01-05 Juri Linkov <juri@linkov.net> + + * lisp/treesit.el: Fix treesit-show-paren-data (bug#75198) + + (treesit-show-paren-data--categorize): Use 'treesit-thing-defined-p' + to check if the thing exists for the language at POS before calling + 'treesit-parent-until' that raises an error for an undefined thing. + (treesit-thing-defined-p): Add the alias signature to the docstring. + +2025-01-05 Eli Zaretskii <eliz@gnu.org> + + Fix setup of coding-systems on MS-Windows + + * src/emacs.c (main) [HAVE_PDUMPER] [WINDOWSNT]: Call + 'w32_init_file_name_codepage' again after loading the pdumper + file. + * src/w32.c (w32_init_file_name_codepage) [HAVE_PDUMPER]: + Reinitialize additional variables. (Bug#75207) + +2025-01-05 Stefan Kangas <stefankangas@gmail.com> + + Delete duplicate note on ancient platforms + + * etc/MACHINES: Delete note on platforms removed in Emacs 23.1 from the + introduction, since it is duplicated again at the end of the file. + +2025-01-04 Yuan Fu <casouri@gmail.com> + + Fix tsx-ts-mode syntax propertize function (bug#73978) + + * lisp/progmodes/typescript-ts-mode.el: + (tsx-ts--syntax-propertize-captures): Apply punctuation syntax + on balanced pairs, instead of using string syntax. + +2025-01-04 Juri Linkov <juri@linkov.net> + + * lisp/treesit.el (treesit-transpose-sexps): Improve (bug#60655). + + Use 'treesit-thing-next' and 'treesit-thing-prev' with + 'treesit-node-named' to transpose named siblings that leaves the right + punctuation in anonymous nodes between named siblings. Fall back + to 'transpose-sexps-default-function' inside strings and comments. + (treesit-node-named): New helper function. + +2025-01-04 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 6468c3f7a74 Update doc string of 'insert' + 6d8c3c0cbe4 Use `keymap*-set' over `global-set-key'/`define-key' in e... + 4b2bb63b7ac Fix documentation and prompt in 'package-isolate' + 55f43f5b220 ; Fix typo in treesit-explore-mode + 921f454f508 Update fontification for attribute values in heex-ts-mode + ae2589ea7a5 Add expression handling to heex-ts-mode + 0cacf806391 ; * etc/NEWS: Document change of 'make-cursor-line-fully-... + f47a29da5c4 * lisp/man.el (Man-mode): Improve docstring. + + # Conflicts: + # etc/NEWS + +2025-01-04 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + afe776051ec [project-vc]: Make project-buffers more consistent with p... + a720458fdd0 (elisp-flymake-byte-compile): Improve UX with `debug-on-e... + 7acfea19358 ; * doc/lispref/modes.texi (Customizing Keywords): Fix ty... + d47a7d6f0fe ; Add missing parameters in keymap doc + 07e9f27c3e0 ; * doc/misc/calc.texi: Fix makeinfo warnings (bug#75166). + 43a8f0de5ec Always match underscore variables for elixir-ts-mode + +2025-01-04 Jared Finder <jared@finder.org> + + Don't always enable xterm-mouse-mode (bug#74833) + + Many terminals set the environment variable TERM to "xterm" even when they + don't support all functionality in xterm. This means that enabling + xterm-mouse-mode can break critical editing workflows like copy/paste. This + adds checks for the specific terminal Emacs is run in and only enables + xterm-mouse-mode on terminals knows to support all critical editing workflows. + + * etc/NEWS: Update announcement + * lisp/term/xterm.el (xterm--auto-xt-mouse-allowed-names) + (xterm--auto-xt-mouse-allowed-types): New variables to control + what terminals automatically enable xterm-mouse-mode. + (xterm--report-background-handler, xterm--version-handler): Use + xterm--read-string. + (xterm--read-string, xterm--query-name-and-version): New + function. + (xterm--init): Check what terminal is running and if + xterm-mouse-mode was manually called. + * lisp/xt-mouse.el (xterm-mouse-mode-called): New variable. + (xterm-mouse-mode): Set xterm-mouse-mode-called. Mention + automatic call by xterm--init. Delete outdated comment text. + +2025-01-04 Eli Zaretskii <eliz@gnu.org> + + Update eln-cache when --init-directory is used + + * lisp/startup.el (normal-top-level): Update eln-cache after + 'user-emacs-directory' is set by --init-directory. Patch by + Jordan Isaacs <jordan@snowytrees.dev>. (Bug#75022) + +2025-01-04 Lin Sun <sunlin7@hotmail.com> + + * lisp/vc/ediff-util.el: Loop the ediff-session-registry instead of buffers + + This avoids aborting the loop if an error happens in some buffer. + (Bug#74881) + +2025-01-04 Eli Zaretskii <eliz@gnu.org> + + Fix mouse clicks on characters with parenthesis syntax + + * lisp/mouse.el (context-menu-region, mouse-skip-word) + (mouse-start-end): Use 'syntax-after' instead of 'char-syntax', to + pay attention to 'syntax-table' text properties. (Bug#74415) + +2025-01-04 Filippo Argiolas <filippo.argiolas@gmail.com> (tiny change) + + Improve doxygen font-lock rules in c-ts-mode (bug#75012) + + And also c++-ts-mode. + + * lisp/progmodes/c-ts-common.el: + (c-ts-mode-doxygen-comment-font-lock-settings): Add rules for type, + storageclass and note/warning/error tags. + +2025-01-04 Daniel Colascione <dancol@dancol.org> + + Automatically redraw frames for filtered faces + + Automatically redraw frames when we detect that a window + parameter used in a face filter is changed. (Bug#75291) + + * src/window.c (Fset_window_parameter): redraw window, actually + whole frame in this implementation, on face-relevant parameter + change + (syms_of_window): add window_auto_redraw_on_parameter_change + * src/xfaces.c (evaluate_face_filter): record properties + +2025-01-03 Stefan Kangas <stefankangas@gmail.com> + + Extract new function man--maybe-fontify-manpage + + * lisp/man.el (man--maybe-fontify-manpage): Extract function from... + (Man-getpage-in-background, Man-update-manpage) + (Man-bgproc-filter): ...here. + +2025-01-03 Jonas Bernoulli <jonas@bernoul.li> + + Update to Transient v0.8.3-2-gf0478b29 + +2025-01-03 Stefan Monnier <monnier@iro.umontreal.ca> + + (mpc-cmd-find): Try and fix bug#41493 + + * lisp/mpc.el (mpc--proc-alist-to-alists): Don't presume that we + have either `directory` or `file` entries, instead allow both at + the same time. + (mpc-cmd-find) <Directory>: Don't presume that `directory` + entries have no associated data, so throw them away only after + having parsed them with `mpc--proc-alist-to-alists`. + +2025-01-03 Stefan Kangas <stefankangas@gmail.com> + + Add more text-based browser alternatives + + * lisp/net/browse-url.el (browse-url-text-browser): Add more + alternatives. + +2025-01-03 Stefan Kangas <stefankangas@gmail.com> + + Improve temporary file handling in browse-url + + * lisp/net/browse-url.el (browse-url-delete-temp-file): Don't add + to kill-buffer-hook on top level. + (browse-url--temp-file-setup): New macro to set 'kill-buffer-hook' + buffer-locally to above function when creating a temporary file. Use + stricter permissions to protect user privacy on multi-user systems. + (browse-url-of-file, browse-url-of-buffer): Use above new macro. + + (browse-url-delete-temp-file): Simplify calling convention by removing + unused argument. + +2025-01-03 Stefan Kangas <stefankangas@gmail.com> + + Remove gnudoit support from browse-url.el + + * lisp/net/browse-url.el (browse-url-gnudoit-program) + (browse-url-gnudoit-args, browse-url-w3-gnudoit): Remove support + for gnudoit, obsolete since Emacs 25.1. + +2025-01-03 Stefan Kangas <stefankangas@gmail.com> + + Re-enable caching for 'M-x man' completion on macOS + + On macOS, getting the completion results when you type 'M-x man RET' can + take up to several seconds, even on a reasonably modern MacBook Pro, + probably due to the lack of man-db and the need to process the output. + + Caching of "man -k ^" completion results was added in 2009 due to + perceived slowness on some systems, but was unfortunately effectively + disabled again in 2013. Let's re-enable it on macOS. + + * lisp/man.el (Man-cache-completion-results-flag): New variable + set to t by default on macOS, and nil elsewhere. + (man): Cache completion results when above new variable is t. + +2025-01-02 Stefan Kangas <stefankangas@gmail.com> + + New defgroup man-faces + + * lisp/man.el: Delete redundant option :group specifiers. + (man-imenu-title): New defgroup. + (Man-overstrike, Man-underline, Man-reverse): Add faces to above + new defgroup. + +2025-01-02 Stefan Kangas <stefankangas@gmail.com> + + Respect 'manual-program' variable + + * lisp/man.el (Man-man-k-flags): Respect 'manual-program' + variable. + +2025-01-02 Stefan Monnier <monnier@iro.umontreal.ca> + + (describe-variable): Fix bug#73872 + + * lisp/help-fns.el (describe-variable): Put a `syntax-table` property + on the printed value for better navigation. Remove `set-syntax-table` + since `lisp-data-mode` already did it. + (describe-variable): Remove `set-syntax-table`, not needed any more. + + * lisp/help-mode.el (help-mode-syntax-table): `;` shouldn't start a comment. + (help-make-xrefs): Use `with-syntax-table`. + +2025-01-02 Paul Eggert <eggert@cs.ucla.edu> + + admin/merge-gnulib now warns if module lists change + + From suggestions by Eli Zaretski and Stefan Kangas in: + https://lists.gnu.org/r/emacs-devel/2025-01/msg00036.html + https://lists.gnu.org/r/emacs-devel/2025-01/msg00037.html + * admin/merge-gnulib: For style consistency, + prefer ‘[ EXPR ]’ to ‘test EXPR’ and prefer -e to -f. + Fix bug that forgot to clean lib directory if it’s ./lib. + Check for lib/gnulib.mk.in, which we used directly, not ‘configure’. + (LC_ALL): Set to C. + (autogen): New function, to make it clearer to user when + commands are operating in some other directory. + (get_module_list): New function. + (old_modules, new_modules): New vars. + If they differ, issue a warning. + +2025-01-02 Stefan Monnier <monnier@iro.umontreal.ca> + + Prefer `%S` format over `%s` for non strings + + * lisp/reveal.el (reveal-open-new-overlays, reveal-close-old-overlays): + * lisp/gnus/nnimap.el (nnimap-header-parameters) + (nnimap-make-process-buffer): + * lisp/gnus/nntp.el (nntp-make-process-buffer): + * lisp/progmodes/flymake.el (flymake--disable-backend): + * lisp/simple.el (next-error-internal): + Prefer `%S` format over `%s` for non strings. + +2025-01-02 Roland Winkler <winkler@gnu.org> + + Fix NEWS entries for BibTeX mode. + +2025-01-02 Po Lu <luangruo@yahoo.com> + + Fix volatile Android build + + * exec/Makefile.in (config-mips.m4): Call config.status in + builddir. + +2025-01-02 Eli Zaretskii <eliz@gnu.org> + + Adjust nt/gnulib-cfg.mk to recent Gnulib import + + * nt/gnulib-cfg.mk (OMIT_GNULIB_MODULE_dirent-h) + (OMIT_GNULIB_MODULE_inttypes-h-incomplete) + (OMIT_GNULIB_MODULE_stdio-h, OMIT_GNULIB_MODULE_stdlib-h) + (OMIT_GNULIB_MODULE_sys_select-h, OMIT_GNULIB_MODULE_sys_stat-h) + (OMIT_GNULIB_MODULE_sys_time-h, OMIT_GNULIB_MODULE_sys_types-h) + (OMIT_GNULIB_MODULE_unistd-h): Rename to follow Gnulib renaming + the modules from "FOO" to "FOO-h". + +2025-01-02 Roland Winkler <winkler@gnu.org> + + Provide more flexibility for definition of BibTeX entries. + + * lisp/textmodes/bibtex.el (bibtex-aux-opt-alist): Rename from + bibtex-user-optional-fields. + (bibtex-BibTeX-entry-alist, bibtex-biblatex-entry-alist): Permit + aliases that inherit their definition from another entry. + (bibtex-BibTeX-aux-entry-alist, bibtex-biblatex-aux-entry-alist) + (bibtex-BibTeX-aux-opt-alist, bibtex-biblatex-aux-opt-alist): New + user variables. + (bibtex-entry-alist): Honor these new variables. + (bibtex-field-alist): New function. + (bibtex-include-OPTkey): Default changed to nil, declared + obsolete. Use bibtex-aux-opt-alist instead. + (bibtex-set-dialect): Use cl-flet and bibtex-field-alist. + (bibtex-dialect-select-map): New variable. + (bibtex-init-dialect): New function. + (bibtex-field-list): Simplify. + (bibtex-print-help-message): Bug fix. + +2025-01-02 Stefan Kangas <stefankangas@gmail.com> + + * lisp/progmodes/grep.el (grep-mode-map): Improve docstring. + +2025-01-02 Stefan Kangas <stefankangas@gmail.com> + + Prefer defvar-keymap in grep.el + + * lisp/progmodes/grep.el (grep-mode-map, grep-edit-mode-map): + Prefer defvar-keymap. + +2025-01-01 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + +2025-01-01 Paul Eggert <eggert@cs.ucla.edu> + + Adjust to Gnulib’s recent module renaming + + * admin/merge-gnulib (GNULIB_MODULES, AVOIDED_MODULES): + Change to match Gnulib’s current module names. + +2025-01-01 Wilson Snyder <wsnyder@wsnyder.org> + + verilog-mode.el update from upstream https://github.com/veripool/verilog-mode + + * lisp/progmodes/verilog-mode.el (verilog-repair-open-comma): Fix AUTOINPUT, etc. + adding comma after attribute (#1884). + (verilog-do-indent) Imporve ident of delay control assignments (#1883) + +2025-01-01 Paul Eggert <eggert@cs.ucla.edu> + + Fix copyright years by hand + + These are dates that admin/update-copyright did not update. + +2025-01-01 Paul Eggert <eggert@cs.ucla.edu> + + Update copyright year to 2025 + + Run "TZ=UTC0 admin/update-copyright". + +2025-01-01 Paul Eggert <eggert@cs.ucla.edu> + + Sync build-aux/update-copyright from Gnulib + + * build-aux/update-copyright: Copy from Gnulib. + This should simplify this year's updating. + +2024-12-31 Alan Mackenzie <acm@muc.de> + + CC Mode: Fix various minor indentation bugs + + As part of this, introduce a second anchor point to the + syntactic symbols brace-list-intro and enum-intro, the position + of the opening brace. + + * lisp/progmodes/cc-align.el + (c-lineup-item-after-paren-at-boi): New function. + + * lisp/progmodes/cc-engine.el + (c-foreign-truncate-lit-pos-cache) + (c-foreign-init-lit-pos-cache): Use + c-truncate-lit-pos/state-cache in place of an older function. + (c-no-bracelist-cache): Update its definition to exclude + conses. + (c-strip-conses): New function. + (c-inside-bracelist-p): Use c-strip-conses. + (c-add-stmt-syntax): In the "go out a block" loop, go out of a + brace at BOI when there's non-whitespace text after it. + Refactor an `if' form containing a cond form into a cond form. + Add the new second second anchor point into syntactic contexts + with brace-list-intro and enum-intro. Anchor brace-list-close + and enum-close elements on the individual declarations in + struct, etc., variable declarations. + (c-guess-basic-syntax, CASE 20): Use the new constraint-cont + syntactic symbol. + (c-guess-basic-syntax, CASE 9B): Anchor brace-list-close and + enum-close elements on the individual declarations in struct, + etc., variable declarations. + (c-guess-basic-syntax, CASEs 9C, 9D): Add the new second anchor + point into brace-list-intro and enum-intro syntactic contexts. + + * lisp/progmodes/cc-mode.el (c-locate-first-punctuation-prop): + New function. + (c-depropertize-CPP): Use c-locate-first-punctuation-prop. + + * lisp/progmodes/cc-vars.el (c-offsets-alist): Amend the + entries for constraint-cont, brace-list-intro, and enum-intro, + using c-lineup-item-after-paren-at-boi. + + * doc/misc/cc-mode.texi (List Line-Up): Add a description of + c-lineup-item-after-paren-at-boi. + +2024-12-30 Juri Linkov <juri@linkov.net> + + Improve treesit-forward-sexp-list, treesit-down-list, treesit-up-list + + * lisp/treesit.el (treesit-forward-sexp-list): Rewrite to support + the value of ARG more than 1. In this case every step moves forward + either over the next treesit-based list or over the syntax-based symbol. + (treesit-down-list, treesit-up-list): Rewrite to support the fallback + to the syntax-based navigation while inside the treesit-based list. + Also use a loop for ARG more than 1 (bug#73404). + +2024-12-30 Juri Linkov <juri@linkov.net> + + * lisp/treesit.el (treesit-show-paren-data--categorize): Fix it. + + Copy the implementation of treesit-parent-until here, and call + its treesit-node-match-p with the argument IGNORE-MISSING set to t + that causes it to fail silently instead of raising an error when + the predicate 'sexp-list' is not defined in an embedded language. + (treesit-major-mode-setup): Set show-paren-data-function to + treesit-show-paren-data only when 'sexp-list' thing is defined + that is used by treesit-show-paren-data--categorize (bug#75198). + +2024-12-30 Yuan Fu <casouri@gmail.com> + + Make typescript-ts-mode work with latest grammar + + * lisp/progmodes/typescript-ts-mode.el: + (tsx-ts-mode--font-lock-compatibility-bb1f97b): Return dummy + query when neither query works. In latest grammar, neither will + work, because typescript grammar doesn't include jsx grammar + anymore. + +2024-12-30 Yuan Fu <casouri@gmail.com> + + Add verified grammar version comment for tree-sitter modes + + * lisp/progmodes/c-ts-mode.el: + * lisp/progmodes/cmake-ts-mode.el: + * lisp/progmodes/dockerfile-ts-mode.el: + * lisp/progmodes/elixir-ts-mode.el: + * lisp/progmodes/go-ts-mode.el: + * lisp/progmodes/heex-ts-mode.el: + * lisp/progmodes/java-ts-mode.el: + * lisp/progmodes/js.el: + * lisp/progmodes/json-ts-mode.el: + * lisp/progmodes/lua-ts-mode.el: + * lisp/progmodes/php-ts-mode.el: + * lisp/progmodes/ruby-ts-mode.el: + * lisp/progmodes/rust-ts-mode.el: + * lisp/textmodes/css-mode.el: + * lisp/textmodes/html-ts-mode.el: Add comments. + +2024-12-30 Yuan Fu <casouri@gmail.com> + + Generate compatibility report for multiple Emacs versions + + * admin/tree-sitter/compat-template.html: Update template. + * admin/tree-sitter/treesit-admin.el: + (treesit-admin--builtin-language-sources): Add sources. + (treesit-admin--builtin-modes): New variable. + (treesit-admin--verify-major-mode-queries): Don't need to pass + LANGS argument anymore. + (treesit-admin-verify-major-mode-queries): Move, and use + treesit-admin--builtin-modes. + (treesit-admin--mode-languages): Set some variables so it gets + all the languages. + (treesit-admin--find-latest-compatible-revision): Also return + commit timestamp. + (treesit-admin--generate-compatibility-report): New parameter + EMACS-EXECUTABLES. Support generating report for multiple Emacs + versions. + * lisp/treesit.el (treesit--language-git-timestamp): New function. + +2024-12-30 Yuan Fu <casouri@gmail.com> + + Add treesit-admin-generate-compatibility-report + + This function can generate a HTML report on latest compatible + grammar versions for each major mode. + + * admin/tree-sitter/compat-template.html: Update. + * admin/tree-sitter/treesit-admin.el: + (treesit-admin--validate-mode-lang): Change so that emacs 30 can + also run it. + (treesit-admin--find-latest-compatible-revision): Support + running checks with a different Emacs executable. + (treesit-admin--generate-compatibility-report): New function. + +2024-12-30 Yuan Fu <casouri@gmail.com> + + Add treesit-admin--last-compatible-grammar-for-modes + + This function computes the latest compatible grammar version for + each major mode. + + * admin/treesit-admin.el (treesit-admin-file-name): Move. + (treesit-admin--compat-template-file-name): New variable. + (treesit-admin--mode-languages): New function. + (treesit-admin--find-latest-compatible-revision): Return a plist + instead. + (treesit-admin--last-compatible-grammar-for-modes): New function. + +2024-12-30 Yuan Fu <casouri@gmail.com> + + Add treesit-admin--find-latest-compatible-revision + + This function can find the last grammar revision that is + compatible with a major mode. + + * admin/treesit-admin.el (treesit-admin-file-name): New + variable. + (treesit-admin--validate-mode-lang): + (treesit-admin--find-latest-compatible-revision): New functions. + +2024-12-30 Yuan Fu <casouri@gmail.com> + + Refactor treesit-admin--verify-major-mode-queries + + Make treesit-admin--verify-major-mode-queries use + treesit--install-language-grammar-1, rathre than the interactive + command treesit-install-language-grammar. + + * admin/treesit-admin.el: + (treesit-admin--verify-major-mode-queries): Add parameter + SOURCE-ALIST. Use treesit--install-language-grammar-1. + (treesit-admin-verify-major-mode-queries): Pass + treesit-admin--builtin-language-sources to + treesit-admin--verify-major-mode-queries. + + * lisp/treesit.el (treesit-install-language-grammar): Don't + return revision of the git repo. + +2024-12-30 Yuan Fu <casouri@gmail.com> + + Refactor treesit--install-language-grammar-1 + + Separate treesit--install-language-grammar-1 into two functions, + one clones the repository, the other builds and installs the + grammar. + + * lisp/treesit.el (treesit--install-language-grammar-1): + Refactor out treesit--build-grammar. + (treesit--build-grammar): New function. + (treesit--language-git-revision): Now takes REPO-DIR as an + argument. + +2024-12-30 Yuan Fu <casouri@gmail.com> + + Support COMMIT in treesit-language-source-alist + + * lisp/treesit.el (treesit-language-source-alist): Add COMMIT + field. + (treesit--install-language-grammar-1): Support COMMIT. + +2024-12-30 Juri Linkov <juri@linkov.net> + + * lisp/treesit.el (treesit-show-paren-data--categorize): Improve. + + Instead of using only the immediate parent, try to search more levels + using 'treesit-parent-until' (bug#75122). + +2024-12-29 Juri Linkov <juri@linkov.net> + + Treesit support for show-paren-mode (bug#75122) + + * lisp/treesit.el (treesit-show-paren-data--categorize): + New internal function. + (treesit-show-paren-data): New function. + (treesit-major-mode-setup): Set 'show-paren-data-function' to + 'treesit-show-paren-data'. + +2024-12-29 Juri Linkov <juri@linkov.net> + + Add new variable 'up-list-function' for 'treesit-up-list' + + * lisp/emacs-lisp/lisp.el (up-list-function): New variable (bug#73404). + (up-list-default-function): New function. + (up-list): Split part to 'up-list-default-function'. + + * lisp/treesit.el (treesit-up-list): New function. + (treesit-major-mode-setup): Set 'up-list-function' to + 'treesit-up-list'. + +2024-12-29 Juri Linkov <juri@linkov.net> + + Add new variable 'down-list-function' for 'treesit-down-list' + + * lisp/emacs-lisp/lisp.el (down-list-default-function): New function. + (down-list-function): New variable (bug#73404). + (down-list): Move meat to 'down-list-default-function', + and call 'down-list-function' when non-nil. Don't raise an error + in strings or comments when 'down-list-function' is non-nil. + + * lisp/treesit.el (treesit--scan-error): New internal function. + (treesit-forward-sexp, treesit-forward-list): Use 'treesit--scan-error'. + (treesit-down-list): New function. + (treesit-major-mode-setup): Set 'down-list-function' to + 'treesit-down-list'. + +2024-12-29 Juri Linkov <juri@linkov.net> + + Add new variable 'forward-list-function' for 'treesit-forward-list' + + * lisp/emacs-lisp/lisp.el (forward-list-default-function): New function. + (forward-list-function): New variable (bug#73404). + (forward-list): Move meat to 'forward-list-default-function', + and call 'forward-list-function' when non-nil. + + * lisp/treesit.el (treesit-forward-list): Rewrite to not rely on + 'treesit-forward-sexp'. + (treesit-major-mode-setup): Set 'forward-list-function' to + 'treesit-forward-list'. + +2024-12-29 Stefan Monnier <monnier@iro.umontreal.ca> + + (font-lock-set-defaults): Try and fix bug#74281 + + * lisp/font-lock.el (font-lock-set-defaults): Set + `font-lock--syntax-table-affects-ppss` more carefully, and + include ' among the "safe" syntaxes. + +2024-12-29 Michael Albinus <michael.albinus@gmx.de> + + Some minor Tramp changes + + * lisp/net/tramp-sh.el (tramp-sh-handle-process-file): Do proper quoting. + + * lisp/net/tramp.el (tramp-string-empty-or-nil-p): + Declare `tramp-suppress-trace' property. + (tramp-skeleton-make-symbolic-link): Drop volume letter when flushing. + + * test/lisp/net/tramp-tests.el (tramp-test39-make-lock-file-name): + Adapt test. + (tramp-test42-utf8): Do not run expensive tests on MS Windows. + +2024-12-28 Stefan Kangas <stefankangas@gmail.com> + + Delete firstfile.c and lastfile.c + + With the removal of unexec and purespace, the definitions in these files + are no longer used. Remove them. + + * src/firstfile.c: + * src/lastfile.c: Delete unused files. + * configure.ac (PRE_ALLOC_OBJ, POST_ALLOC_OBJ, FIRSTFILE_OBJ): + Remove variables and dependent code. + * msdos/autogen/Makefile.in: + * msdos/sed1v2.inp: + * src/Makefile.in: Don't use above deleted variables. + * src/deps.mk: Remove lastfile.c dependencies. + +2024-12-28 Daniel Colascione <dancol@dancol.org> + + Make browser windows pop up when browsing URLs on Wayland + + When a user invokes browse-url, the browser window viewing the URL + should be raised in the user's desktop environment. On X11, running + xdg-open as a subprocess does the job. However, on Wayland, this + approach doesn't work: xdg-open makes the web browser browse a URL all + right, but doesn't raise the browser window in the GUI. Therefore, if + the browser window is behind Emacs, browse-url appears to do nothing. + Repeated invocations of browse-url cause the browser to load multiple + tabs in the background, surprising the user when he gives up in + frustration and manually switches to the browser window. + + There's no subprocess we can run to make the right thing happen. + Wayland requires that we pass along event activation information to the + browser using the xdg_activation_v1 protocol. + + This change adds x-gtk-launch-uri to invoke GTK-native URL-dispatch + machinery. This machinery DTRT on both X11 and Wayland. We fall back + to the default browser machinery if we're not on a GTK frame. + + The logic is more complicated than it has to be because the GTK URI + launch mechanism requires that we launch with respect to a specific GTK + window, and in some environments (e.g., running emacs -nw in a PGTK + Emacs) we don't have a GTK window. We also want to preserve the effect + of customizing browse-url-browser-function, so adding an entry to + browse-url-default-handlers that preempts URI open when we happen to be + on a GTK frame is the wrong thing to do. + + * lisp/net/browse-url.el (browse-url--browser-defcustom-type): + (browse-url--inhibit-pgtk): avoid infinite recursion + (browse-url-default-browser): use pgtk launch + (x-gtk-launch-uri): new function + (browse-url-default-gtk-browser): ues it + + * src/pgtkfns.c (unwind_gerror_ptr): new function + (Fx_gtk_launch_uri): new function + (syms_of_pgtkfns): register it + + * etc/NEWS: mention the new feature + +2024-12-28 Alan Mackenzie <acm@muc.de> + + CC Mode: Minor corrections and tidy ups for cache invalidation + + These cache variables are c-lit-pos-cache-limit, + c-semi-near-cache-limit, c-full-near-cache-limit, and + c-state-cache-invalid-pos. + + * lisp/progmodes/cc-awk.el + (c-awk-set-string-regexp-syntax-table-properties): Invalidate + the caches after changing the 'syntax-table property. + + * lisp/progmodes/cc-defs.el (c-put-string-fence-trim-caches): + New macro. + (c-unmark-<-or->-as-paren): New name for c-unmark-<->-as-paren. + (Also renamed throughout CC Mode) + + * lisp/progmodes/cc-engine.el (c-propertize-ml-string-opener): + Add missing cache invalidation. + + * lisp/progmodes/cc-mode.el (c-neutralize-CPP-line): Remove + syntax-table properties from < and > as needed. + (c-put-syn-tab): Add missing cache invalidation. + +2024-12-28 Michael Albinus <michael.albinus@gmx.de> + + Add tramp-archive-local-file-name + + * lisp/net/tramp-archive.el (tramp-archive-file-name-p): + Add ;;;###tramp-autoload cookie. + (tramp-archive-local-file-name): New defun. + +2024-12-28 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 2ba6387d1d6 ; Fix inaccuracy in ELisp Reference manual + 8ac6a178804 ; * etc/PROBLEMS: Mention problems with XPM support in GD... + 624322d5f6a Add missing fontification matches for elixir-ts-mode + 5bafb11b400 ; Fix copyright year + 186ea407326 Don't start docstrings with "This function" or similar + cb8ce2e68bb Enable indent-tabs-mode in obj-c-mode + 54f35137096 Fix comment indent in 'lua-ts-mode' and old grammar + 8b95549e908 * admin/nt/dist-build/build-dep-zips.py: (deps src) handl... + 8064b2a6798 Document undocumented completion commands + c29b798537e ; etc/w32-feature.el (harfbuzz): improve test + 0e43e35f96e * admin/nt/dist-build/emacs.nsi: (Uninstall) delete only ... + b83cd8a8fb0 ; * etc/tutorials/TUTORIAL.ko: Fix the beginning. + 41caccc488b ; * etc/publicsuffix.txt: Update from upstream. + e6fb18406ee ; Fix refcards + 14e791f9ba2 ; Update acknowledgments for Emacs 30 + 861b7864fc4 ; Fix node name in emacs-lisp-intro.texi + 77243ba5be8 ; Update version tags of defcustoms + fe2ac33bae8 ;* doc/misc/efaq.texi (New in Emacs 30): Mention 'trusted... + 8fb884f0dc0 ; * etc/NEWS: Fix wording. + e281355a5e8 Improve D-Bus and Tramp manual + + # Conflicts: + # doc/emacs/emacs.texi + # etc/NEWS + # lisp/erc/erc-log.el + # lisp/eshell/esh-mode.el + # lisp/which-key.el + +2024-12-28 Alan Third <alan@idiocy.org> + + Make image cache aware of image-scaling-factor (bug#74725) + + * src/dispextern.h (struct image): Add scale so it can be compared in + search_image_cache. + * src/image.c (search_image_cache): Calculate the scale factor and + compare with the cached value. + (image_compute_scale): Compute the image's scale factor and optionally + store it in the image struct. + (compute_image_size): Move scale calculation code into + image_compute_scale and use it. + +2024-12-28 Lin Sun <sunlin7@hotmail.com> + + * lisp/vc/ediff-util.el: Remove temp Ediff files on kill-emacs + + (ediff--delete-temp-files-on-kill-emacs): New function. + (ediff-setup): Install it in 'kill-emacs-hook'. (Bug#74881) + +2024-12-27 Alex Bochannek <alex@bochannek.com> + + Add command to clear erc-track's mode-line indicator + + * etc/ERC-NEWS: Mention new command `erc-track-clear'. + * lisp/erc/erc-track.el (erc-track-clear): New command to reset buffer + activity indicator in ERC's mode-line construct. (Bug#75014) + +2024-12-27 F. Jason Park <jp@neverwas.me> + + Reuse process in erc-server-delayed-check-reconnect + + * doc/misc/erc.texi (Integrations): Set `erc-server-reconnect-function' + to `erc-server-delayed-check-reconnect' in SOCKS example, and add + definition for `erc-open-socks-tls-stream'. Mention possible + inaccuracies related to error detection with certain reconnect + strategies. + * lisp/erc/erc-backend.el (erc-server--reconnect-opened): New function. + (erc-server-delayed-check-reconnect): Attempt to reuse process if server + sends a complete PONG, and attempt to accommodate connectors that set + :nowait to nil. + (erc--server-delayed-check-connectors): Remove variable. + (erc-server-prefer-check-reconnect): Inline what was the internal + variable `erc--server-delayed-check-connectors' because it's no longer + used in unit tests. Add `erc-open-socks-tls-stream' to the set of + connector functions thought to be compatible with the "check" reconnect + strategy. + * test/lisp/erc/erc-scenarios-base-auto-recon.el + (erc-scenarios-base-auto-recon-no-proto): Adapt to expect "reuse" behavior. + * test/lisp/erc/resources/base/reconnect/ping-pong.eld: Delete unused file. + * test/lisp/erc/resources/base/reconnect/unexpected-disconnect.eld: + Capture PING cookie to send back to client. + * test/lisp/erc/resources/erc-d/resources/proxy-solo.eld: Delete unused + file. (Bug#62044) + +2024-12-27 Stefan Monnier <monnier@iro.umontreal.ca> + + (package--download-and-read-archives): Fix bug#75065 + + * lisp/emacs-lisp/package.el (package--download-and-read-archives): + Include the error info in the error message. + Suggested by Konstantin Kharlamov <Hi-Angel@yandex.ru>. + (package-refresh-contents, package-menu--perform-transaction): + Use `error-message-string`. + +2024-12-27 Stefan Kangas <stefankangas@gmail.com> + + makeinfo-run-command: Use texi2any when makeinfo doesn't exist + + * lisp/textmodes/makeinfo.el (makeinfo-run-command): Use texi2any when + makeinfo does't exist. (Bug#75123) + +2024-12-27 Stefan Kangas <stefankangas@gmail.com> + + Prefer defvar-keymap in two-column.el + + * lisp/textmodes/two-column.el (2C-mode-map, 2C-minor-mode-map): + Convert to defvar-keymap. + +2024-12-27 Stefan Kangas <stefankangas@gmail.com> + + Use with-environment-variables in more places + + * lisp/gnus/gnus-search.el (gnus-search-run-search): + * lisp/man.el (Man-completion-table): + * lisp/progmodes/cperl-mode.el (cperl-pod-to-manpage): + * test/src/fileio-tests.el (fileio-tests--relative-HOME): + Prefer 'with-environment-variables'. + +2024-12-27 Paul Eggert <eggert@cs.ucla.edu> + + Don’t include stdlib.h from conf_post.h + + This is brittle, as evinced by the recent problem with lib/stdlib.c. + * src/conf_post.h: Move potential inclusion of stdlib.h and + redefinitions of malloc, free, realloc, aligned_alloc, and calloc + from here ... + * src/lisp.h: ... to here. Do not redefine the symbols + if UNEXMACOS_C is defined. + * src/unexmacosx.c: Do not undef malloc, realloc, free. + (UNEXMACOS_C): New symbol, to prevent lisp.h from defining them. + +2024-12-27 Paul Eggert <eggert@cs.ucla.edu> + + Let Gnulib deal with MB_CUR_MAX + + Recent Gnulib should work around the Android NDK 16 + MB_CUR_MAX bug, so Emacs no longer needs to worry about it. + * configure.ac (gl_STDLIB_H): + Remove, to stop overriding Gnulib. + * configure.ac (__ctype_get_mb_cur_max) + (emacs_cv_broken_mb_cur_max, REPLACEMENT_MB_CUR_MAX): + * src/conf_post.h (MB_CUR_MAX): + Remove, as Gnulib does this now. + +2024-12-27 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + +2024-12-26 Stefan Kangas <stefankangas@gmail.com> + + Drop support form gnome-moz-remote from browse-url + + * lisp/net/browse-url.el (browse-url-gnome-moz-program) + (browse-url-gnome-moz-arguments, browse-url-gnome-moz): Delete + functions and variables obsolete since Emacs 25.1. + +2024-12-26 Antero Mejr <mail@antr.me> + + Add scheme-mode indentation rules for SRFI 227 and 253 + + * lisp/progmodes/scheme.el: Add properties for SRFI 227 and SRFI 253 + identifiers. (Bug#75126) + +2024-12-26 Stefan Kangas <stefankangas@gmail.com> + + Improve flag variable names in uniquify + + * lisp/uniquify.el (uniquify-after-kill-buffer-flag) + (uniquify-trailing-separator-flag): Rename from + 'uniquify-after-kill-buffer-p' and 'uniquify-trailing-separator-p', to + better adhere to our conventions. Update all users and leave old names + as obsolete variable aliases. + +2024-12-26 Charalampos Mitrodimas <charmitro@posteo.net> + + Fix format specifier warnings in nsterm.m + + Resolve warnings caused by mismatched format specifiers in `NSLog` and + `fprintf` calls. + + This was observed when compiled with Clang version + 19.1.6 (arm64-apple-darwin). + + Warnings fixed: + - "format specifies type 'unsigned int' but the argument has type + 'IOReturn' (aka 'int')" + + * src/nsterm.m: Cast `IOReturn` (aka `int`) to `unsigned int` for `%x` + format specifiers in `NSLog`. (Bug#74971) + +2024-12-26 Visuwesh <visuweshm@gmail.com> + + Ensure Dired window is selected when reverting buffer + + * lisp/dired.el (dired--make-directory-clickable): Ensure the + Dired window is selected. This prevents erroneously reverting a + non-Dired buffer. (Bug#74700) + +2024-12-26 Morgan Willcock <morgan@ice9.digital> + + Set marker insertion type for Imenu markers + + * lisp/imenu.el (imenu-default-create-index-function) + (imenu--generic-function): Configure Imenu markers to advance + their position when characters are inserted at the marker + position. (Bug#75072) + +2024-12-26 Spencer Baugh <sbaugh@janestreet.com> + + Consistently add wildcards for completion-pcm-leading-wildcard + + completion-pcm--find-all-completions has two different phases: + First we turn the minibuffer text into a regex and matches + completion alternatives against it. If that finds no matches, + then we strip some text off the completions and minibuffer text + and call ourselves recursively to find completions, then filter + the results with the removed text (converted into a regex). + + Because of this, completion-pcm-leading-wildcard had + inconsistent behavior: in the second phase, the filter created + from the removed text would have a leading wildcard. That + effectively adds wildcards in the middle of the minibuffer text + at the start of each "word". But the first phrase created a + regex which had no such wildcards. Thus, the two phases could + get substantially different results. + + We fix this by changing completion-pcm-leading-wildcard to + consistently add a leading wildcard for each word. This was + always my intention. + + * lisp/minibuffer.el (completion-pcm--string->pattern): Include + a wildcard after each delimter with + completion-pcm-leading-wildcard. (bug#74772) + * lisp/minibuffer.el (completion-pcm-leading-wildcard): Update + docs. + * doc/emacs/mini.texi (Completion Styles): Update docs. + +2024-12-26 Visuwesh <visuweshm@gmail.com> + + Show the keybinding next to command in calc's x + + * lisp/calc/calc-ext.el (calc-execute-extended-command): Use + M-x's ':affixation-function' to show the keybinding of the calc + command next to its name. (Bug#74829) + +2024-12-26 Dmitry Gutov <dmitry@gutov.dev> + + ruby-ts--s-p-query: Put '_' syntax on ?! method definitions + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--s-p-query): + Put 'symbol' syntax on method definitions ending with [?!]. + Reported in https://github.com/dgutov/robe/issues/149. + +2024-12-26 Dmitry Gutov <dmitry@gutov.dev> + + ruby-ts-mode: Refine the forward-sexp improvement + + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--sexp-list-p): + New function (bug#73404). + (ruby-ts-mode): Use it in sexp-list thing definition. + +2024-12-25 Juri Linkov <juri@linkov.net> + + * lisp/treesit.el: Improvements for treesit-explore-mode (bug#75079) + + (treesit-explorer-switch-parser): Don't use completing-read + on the single parser. + (treesit-explore-mode): Don't save treesit-explore-mode to the desktop. + +2024-12-25 Stefan Kangas <stefankangas@gmail.com> + + Improve dictionary-switch-tooltip-mode docstring + + * lisp/net/dictionary.el (dictionary-switch-tooltip-mode): Fix + docstring and argument name. + +2024-12-25 Nicholas Vollmer <iarchivedmywholelife@gmail.com> + + Fix checkdoc warnings in dictionary.el + + * lisp/net/dictionary.el (dictionary-tool-bar-map): Add missing period. + (dictionary-process-popup-replies) + (dictionary-read-definition) + (dictionary-display-tooltip): Rename ignored parameters. + (dictionary-tooltip-track-mouse): Describe what function does, not just + when. + (dictionary-switch-tooltip-mode): Reword docstring in terms of ON + parameter. (Bug#68684) + +2024-12-24 Yuan Fu <casouri@gmail.com> + + Add treesit-aggregated-simple-imenu-settings + + Now we support setting up Imenu for multiple languages + + * doc/lispref/modes.texi: Update manual. + * lisp/treesit.el: + (treesit-aggregated-simple-imenu-settings): New variable. + (treesit--imenu-merge-entries): New function. + (treesit--generate-simple-imenu): This was previously + treesit-simple-imenu. + (treesit-simple-imenu): Support + treesit-aggregated-simple-imenu-settings. + (treesit-major-mode-setup): Recognize + treesit-aggregated-simple-imenu-settings. + * test/src/treesit-tests.el (treesit-imenu): New test. + +2024-12-24 Yuan Fu <casouri@gmail.com> + + Add treesit-language-display-name + + * lisp/treesit.el: + (treesit-language-display-name-alist): New variable. + (treesit-language-display-name): New function. + * doc/lispref/parsing.texi (Language Grammar): Add to manual. + * etc/NEWS: Add to NEWS. + +2024-12-24 Juri Linkov <juri@linkov.net> + + Add treesit thing 'sexp-list' to c++-ts-mode (bug#73404) + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--thing-settings): + Add C++ 'sexp-list' nodes for 'treesit-thing-settings'. + +2024-12-24 Juri Linkov <juri@linkov.net> + + Add treesit thing 'sexp-list' to tsx-ts-mode (bug#73404, bug#73978) + + * lisp/progmodes/typescript-ts-mode.el (tsx-ts-mode): + Add 'sexp-list' to 'treesit-thing-settings' with "jsx" things. + (typescript-ts-mode--sexp-list-nodes): Remove "jsx" things. + +2024-12-24 Juri Linkov <juri@linkov.net> + + * lisp/progmodes/typescript-ts-mode.el: Fix regexp-opt of treesit-thing. + + (typescript-ts-base-mode): Add arg 'symbols' to regexp-opt of 'sexp', + 'sexp-list', 'sentence', 'text' (bug#73404, bug#74366, bug#74963). + (tsx-ts-mode): Add arg 'symbols' to regexp-opt of 'sexp', 'sentence'. + This avoids such mismatches as "string_fragment" by "string". + +2024-12-24 Yuan Fu <casouri@gmail.com> + + Include lightweight tags in treesit-admin--verify-major-mode-queries + + * lisp/treesit.el (treesit--language-git-revision): Include + lightweight tags as well. + +2024-12-24 Yuan Fu <casouri@gmail.com> + + Fix cmake-ts-mode font-lock queries + + This commit in tree-sitter-cmake removed angle brackets: + + https://github.com/uyha/tree-sitter-cmake/commit/a414a4c83d54388f596269639c175a5b84bfa929 + + * lisp/progmodes/cmake-ts-mode.el + (cmake-ts-mode--font-lock-settings): Remove angle brackets. + +2024-12-24 Yuan Fu <casouri@gmail.com> + + Create a blobless clone in treesit-admin--verify-major-mode-queries + + * admin/treesit-admin.el (treesit-admin--verify-major-mode-queries): + Create a blobless clone. + * lisp/treesit.el (treesit--install-language-grammar-blobless): + New variable. + (treesit--git-clone-repo): Support blobless clone. + +2024-12-23 Paul Eggert <eggert@cs.ucla.edu> + + Avoid U+FFFD in commit messages + + * build-aux/git-hooks/commit-msg: + Also check against U+FFFD REPLACEMENT CHARACTER in commit messages. + +2024-12-23 Michael Albinus <michael.albinus@gmx.de> + + * configure.ac (dbus): Default to ifavailable. (Bug#75004) + +2024-12-23 Martin Rudalics <rudalics@gmx.at> + + Make 'fit-frame-to-buffer' work around size hints (Bug#74866) + + * lisp/window.el (fit-frame-to-buffer-1): When + 'frame-resize-pixelwise' is nil, round up requested sizes to avoid + that lines get wrapped (Bug#74866). + * doc/lispref/windows.texi (Resizing Windows): Mention that with + size hints one may have to set 'frame-resize-pixelwise' to make + 'fit-frame-to-buffer' fit the buffer exactly. + +2024-12-22 Arsen Arsenović <arsen@aarsen.me> + + Java Mode: introduce the keyword `assert'. + + * lisp/progmodes/cc-langs.el (c-simple-stmt-kwds): Put `assert' + into the java value. + +2024-12-22 Juri Linkov <juri@linkov.net> + + Add treesit thing 'sexp-list' to typescript-ts-mode (bug#73404) + + * lisp/progmodes/typescript-ts-mode.el (typescript-ts-base-mode): + Add 'sexp-list' to 'treesit-thing-settings'. + (typescript-ts-mode--sexp-list-nodes): New variable. + +2024-12-22 Augusto Stoffel <arstoffel@gmail.com> + + Handle ':noquery' in 'open-gnutls-stream' + + * lisp/net/gnutls.el (open-gnutls-stream): Extract and use + ':noquery' keyword. (Bug#74193). + +2024-12-22 Michael Albinus <michael.albinus@gmx.de> + + * test/lisp/files-tests.el (sh-shell): Move down declaration. + +2024-12-22 Antero Mejr <antero@mailbox.org> + + Allow viewing .dcm images via image-convert + + * lisp/files.el (auto-mode-alist): Support the DICOM .dcm image + format. (Bug#63531) + +2024-12-22 Antero Mejr <antero@mailbox.org> + + Allow viewing .six images via image-convert + + * lisp/files.el (auto-mode-alist): Support the Sixel .six image + format. (Bug#63531) + * lisp/image.el (imagemagick-enabled-types): Add SIX. + +2024-12-22 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/vc/smerge-mode.el (smerge-extend): New command (bug#74509) + +2024-12-22 Stefan Kangas <stefankangas@gmail.com> + + Match more gdbinit files in auto-mode-alist + + * lisp/files.el (auto-mode-alist): Match more gdbinit files, + including XDG, and MS-Windows. Avoid false positives. + (set-auto-mode--find-matching-alist-entry): Break out function... + (set-auto-mode--apply-alist): ...from here. (Bug#74946) + * test/lisp/files-tests.el (files-tests--check-mode): New function. + (files-tests-auto-mode-alist): New test. + +2024-12-22 Stefan Kangas <stefankangas@gmail.com> + + Prefer defvar-keymap in gud.el + + * lisp/progmodes/gud.el (gud-gdb-repeat-map, gud-sdb-repeat-map) + (gud-dbx-repeat-map, gud-xdb-repeat-map, gud-perldb-repeat-map) + (gud-pdb-repeat-map, gud-guiler-repeat-map, gud-jdb-repeat-map): + Convert to defvar-keymap. + +2024-12-21 Michael Albinus <michael.albinus@gmx.de> + + * lisp/net/tramp-gvfs.el (tramp-gvfs-local-file-name): New defun. + +2024-12-21 Stefan Monnier <monnier@iro.umontreal.ca> + + (cl-flet, cl-labels): Fix bug#74870 + + * lisp/emacs-lisp/cl-macs.el (cl-flet, cl-labels): Wrap function + bodies in `cl-block`. + + * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--test-flet-block): New test. + +2024-12-21 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 5e97079cc75 ; Fix call to 'decode_string_utf_8' in #ifdef'ed-away code + 6902673b5b9 ; Improve commentary in calendar.el + 08b62132dde Add 'lua-ts-mode' to 'interpreter-mode-alist' + d8ffcf2fbac Document representation of dates in calendar.el + faaa13ec762 Autoload 'shortdoc-help-fns-examples-function' + +2024-12-21 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 8f8da2d7854 ; * ChangeLog.4: Update. + 49adcf30b01 ; * etc/AUTHORS: Update. + 1381c6f9591 * Update authors.el + 5c0f3f5826e ; * etc/NEWS: Mark unmarked entries. + 8a0c9c234f1 Document 'trusted-content + c6ce11b2a48 Mention network-interface-list in network-interface-info ... + a7905145f70 ; * lisp/emacs-lisp/re-builder.el (reb-change-syntax): Fi... + cde22c02011 Move NEWS items from unreleased 28.3 to released 29.1 + 5686bb5b428 Improve browse-url-android-share docstring + 92041e15f4a Minor doc fix for url-handler-regexp + 9fd96e2ab95 Improve reb-change-syntax docstring + b9dc337ea74 * lisp/files.el (trusted-content-p): Make `:all` work in ... + 4b685bc4fcd ; * src/process.c (Fnetwork_interface_list): Fix typo. + c14c4895719 ; * lisp/net/nsm.el (nsm-trust-local-network): Fix typo. + 10f976300d0 ; Add some tree-sitter thing content to the manual + 55303a6bc0a * lisp/org/ox-texinfo.el (org-texinfo-template): Fix Info... + 8b6c6cffd1f trusted-content: Adjust the last patch based on prelimina... + 69b16e5c638 ; * etc/NEWS: Fix typos. + 5c6dbc65f36 ; * doc/lispref/frames.texi (Multiple Terminals): Add ind... + 856a58e2827 Update documentation of 'etags' regexps some more + 4c68846223b Update documentation of 'etags' regexps + b5158bd1914 elisp-mode.el: Disable Flymake byte-compile backend in un... + + # Conflicts: + # doc/man/etags.1 + # etc/NEWS + # lisp/org/ox-texinfo.el + +2024-12-21 Cecilio Pardo <cpardo@imayhem.com> + + Add support for the ':data' keyword for play-sound in MS-Windows. + + * src/sound.c (parse_sound) [WINDOWSNT]: Check that either :file + or :data is present. + (do_play_sound): Added parameter to select file or data, and code to + play from data. + (Fplay_sound_internal): Fixed volume format, and send file or data + to 'do_play_sound'. (Bug#74863) + * etc/NEWS: Add entry for this change. + * etc/PROBLEMS: Remove entry about missing support for :data. + +2024-12-21 JD Smith <93749+jdtsmith@users.noreply.github.com> + + 'seconds-to-string': new optional arguments for readable strings + + * lisp/calendar/time-date.el (seconds-to-string): Accept new + optional arguments READABLE, ABBREV, and PRECISION, and format the + output string accordingly. (Bug#71572) + + * doc/lispref/os.texi (Time Calculations): + * etc/NEWS: Document the new arguments of 'seconds-to-string'. + +2024-12-21 Daniel Mendler <mail@daniel-mendler.de> + + browse-url-with-browser-kind: Improve browser function selection + + In order to find an appropriate browser function for the given + kind, first the browser handler lists are consulted. If no + handler is found, the `browse-url-browser-function', + `browse-url-secondary-browser-function`, + `browse-url-default-browser' and `eww' are tried in that order + until a browser function with a matching kind is found. This + way the user customization of `browse-url-browser-function' and + `browse-url-secondary-browser-function` is respected by + `browse-url-with-browser-kind'. + * lisp/net/browse-url.el (browse-url-with-browser-kind): Try the + browser functions in the aforementioned order. (Bug#74820) + +2024-12-21 Fabio Natali <me@fabionatali.com> + + Ask confirmation before EWW sends region to a search engine + + With 'eww-search-words' (by default bound to 'M-s M-w') a user + can type in some search terms and get back the results of a web + search from a predefined search engine. If a region is selected, + 'eww-search-words' will use that for the web search instead of + prompting the user. + In its current form, 'eww-search-words' presents a security and + usability problem. It is relatively too easy to mistakenly + launch the function and, if a region of text is selected, have + potentially sensitive data sent out to a third-party service. + This commit changes the search function's default behaviour so + that explicit confirmation is required before a region is sent + to a search engine. The behaviour can be adjusted via the + newly-introduced 'eww-search-confirm-send-region' variable, + which is set to true by default. + * lisp/net/eww.el (eww-search-confirm-send-region): Add. + (eww-search-words): Update default 'eww-search-words' behaviour + so as to ask confirmation before sending the region to a search + engine. (Bug#74218) + +2024-12-21 F. Jason Park <jp@neverwas.me> + + Use smarter default for erc-server-reconnect-function + + * doc/misc/erc.texi (Sample Configuration): Remove customization in + `use-package' declaration for `erc-server-reconnect-function' as well as + related language in the customization walk-through. Do this because the + new default incorporates `erc-server-delayed-check-reconnect' behavior + for compatible connect functions. + * etc/ERC-NEWS: Announce new default for `erc-server-reconnect-function'. + * lisp/erc/erc-backend.el (erc-server-reconnect-function): Change + default to `erc-server-prefer-check-reconnect'. + (erc-server-delayed-check-reconnect): Use `process-send-string' instead + of `send-string'. + (erc--server-delayed-check-connectors): New variable. + (erc-server-prefer-check-reconnect): New function. + * test/lisp/erc/erc-scenarios-base-auto-recon.el + (erc-scenarios-base-auto-recon-unavailable) + (erc-scenarios-base-auto-recon-no-proto): Remove unnecessary + `erc-server-reconnect-function' binding because the new default + incorporates the behavior being tested for. + * test/lisp/erc/erc-scenarios-base-buffer-display.el + (erc-scenarios-base-buffer-display--reconnect-common): + * test/lisp/erc/erc-scenarios-base-compat-rename-bouncer.el + (erc-scenarios-common--base-compat-no-rename-bouncer): + * test/lisp/erc/erc-scenarios-base-netid-bouncer-recon-base.el + (erc-scenarios-base-netid-bouncer--recon-base): + * test/lisp/erc/erc-scenarios-base-netid-bouncer-recon-both.el + (erc-scenarios-base-netid-bouncer--recon-both): + * test/lisp/erc/erc-scenarios-base-netid-bouncer-recon-id.el + (erc-scenarios-base-netid-bouncer--reconnect-id-foo) + (erc-scenarios-base-netid-bouncer--reconnect-id-bar): + * test/lisp/erc/erc-scenarios-base-reconnect.el + (erc-scenarios-base-reconnect-timer) + (erc-scenarios-base-cancel-reconnect): + * test/lisp/erc/erc-scenarios-services-misc.el + (erc-scenarios-services-misc--reconnect-retry-nick): + * test/lisp/erc/erc-scenarios-stamp.el + (erc-scenarios-stamp--date-mode/reconnect): Explicitly bind + `erc-server-reconnect-function' to `erc-server-delayed-reconnect', the + former default, which does not do any probing. (Bug#62044) + +2024-12-21 F. Jason Park <jp@neverwas.me> + + Add command for teaching Imenu about ERC macros + + * lisp/erc/erc-backend.el (define-erc-response-handler): Add + `doc-string' to `declare' specification. + * test/lisp/erc/resources/erc-tests-common.el + (erc-tests-common-add-imenu-expressions): New function for defining and + undefining Imenu patterns useful to ERC developers. + +2024-12-21 F. Jason Park <jp@neverwas.me> + + Disable which-func-mode in erc-imenu buffers + + * lisp/erc/erc-imenu.el (erc-imenu-setup): Move after module definition + so the variable `erc-imenu-mode' is defined. Run teardown code when + module is deactivated. Set `which-func-mode' to nil locally. + (erc-imenu-mode, erc-imenu-enable, erc-imenu-disable): Manage membership + of `erc-imenu--disable-which-func' in `which-function-mode-hook'. + (erc-imenu--disable-which-func): New function. (Bug#74934) + +2024-12-21 Po Lu <luangruo@yahoo.com> + + Fix a number of Android compilation warnings + + * src/dispnew.c (frame_rect_abs, frame_pos_abs, rect_intersect) + (copy_child_glyphs, abs_cursor_pos, is_in_matrix) + (is_cursor_obscured) [HAVE_ANDROID]: Delete functions. + +2024-12-20 João Távora <joaotavora@gmail.com> + + Eglot: ensure quick typing doesn't undermine completion exit + + Some completion resolution requests in + eglot-completion-at-point, specifically those that might be + triggered from the :exit function, can't be cancellable, else + the completion edit or snippet will never be obtained and the + user is left with the nonsensical completion label in the + buffer. + + Github-reference: https://github.com/joaotavora/eglot/issues/1474 + +2024-12-20 Yuan Fu <casouri@gmail.com> + + Move admin scripts to admin/treesit-admin.el + + * admin/treesit-admin.el: New file. + * lisp/treesit.el (treesit--check-manual-coverage): + (treesit--builtin-language-sources): + (treesit--verify-major-mode-queries): + (treesit-verify-major-mode-queries): Move out. + +2024-12-20 Martin Rudalics <rudalics@gmx.at> + + On GTK do not inhibit implied resizing until tool bar was drawn (Bug#74750) + + * src/frame.c (frame_inhibit_resize): Under GTK do not inhibit + implied resizing as long as the tool bar has not been drawn yet + so the frame gets its intended initial height (Bug#74750). + * src/gtkutil.c (update_frame_tool_bar): Set tool_bar_resized + slot of frame f to true regardless of whether a tool bar was + made or not. This will make inhibiting implied resizes work + again from now on. + +2024-12-20 Yuan Fu <casouri@gmail.com> + + Add known-to-work version for c/c++-ts-mode + + This is done by + + (treesit--verify-major-mode-queries + '(c-ts-mode c++-ts-mode) + '(c cpp) + "/tmp/tree-sitter-grammars") + + * lisp/progmodes/c-ts-mode.el: Add comments. + +2024-12-20 Yuan Fu <casouri@gmail.com> + + Add automated process to verify tree-sitter queries + + This allows us to inform packagers of the grammar version they + want to use when packaging tree-sitter grammars with Emacs. + + * lisp/treesit.el (treesit--builtin-language-sources): + New variable. + (treesit--verify-major-mode-queries): + (treesit-verify-major-mode-queries): New functions. + +2024-12-20 Yuan Fu <casouri@gmail.com> + + Add keyword :reversed to treesit-font-lock-rules + + This keyword will be useful for implementing + string-interpolation feature. + + * doc/lispref/modes.texi (Parser-based Font Lock): Document the + new keyword. + * lisp/treesit.el (treesit-font-lock-settings): Document. + (treesit-font-lock-setting-reversed): New function. + (treesit-font-lock-rules): Add new keyword. + (treesit-font-lock-recompute-features): Handle new keyword. + +2024-12-20 Eli Zaretskii <eliz@gnu.org> + + Fix the MS-Windows build broken by recent changes + + * src/w32font.c (memq_no_quit): + * src/w32uniscribe.c (memq_no_quit): Remove; use the function from + fns.c instead. All callers changed. + +2024-12-20 Gerd Möllmann <gerd@gnu.org> + + Allow xt-mouse-tests to run + + This is basically a workaround for running a test in batch mode + which should have a tty frame available but doesn't. + + * src/frame.c (check_tty): Relax check if noninteractive. + * lisp/xt-mouse.el (xterm-mouse-event): Don't use frame-at if + noninteractive. + +2024-12-20 Gerd Möllmann <gerd@gnu.org> + + Fix tty root frame collection in redisplay_internal + + * src/fns.c (memq_no_quit): New function. + * src/lisp.h: Declare it. + * src/xdisp.c (redisplay_internal): Use memq_no_quit instead of + assq_no_quit. + +2024-12-20 Po Lu <luangruo@yahoo.com> + + Enable adjusting frame sizes on MS-DOS + + * src/dispnew.c (change_frame_size): Do not propagate changes to + child frames to root frames and vice versa. + + * src/frame.c (adjust_frame_size): Do not change video modes + in resizing a child frame. + +2024-12-20 Po Lu <luangruo@yahoo.com> + + Enable TTY child frames on MS-DOS + + * src/conf_post.h (ENOTSUP): Define to ENOSYS as msdos.h once + did. + (IFTODT): Copy definition from Gnulib. + + * src/dispnew.c (is_tty_frame): Also test FRAME_MSDOS_P. + + * src/frame.c (tty_child_pos_param, tty_child_size_param): + Export functions. + + * src/msdos.c (mouse_get_xy, mouse_moveto, mouse_pressed): + Offset mouse positions by those of the selected frame. + (it_face_override): New function. + (IT_set_face): New argument F. Load FACE_ID from its face + cache. + (IT_write_glyphs): Track the frames on which glyphs were + generated and apply faces from their individual face caches. + (IT_write_glyphs_with_face): New function. + (tty_draw_row_with_mouse_face): Reimplement in line with tty.c + and eliminate an obsolete optimization. + (IT_clear_end_of_line, IT_clear_screen): Load faces from the + cache of the provided frame. + (IT_set_frame_parameters): Adjust frame geometry and garbage + frames after geometry parameters change as a child frame. + (BUILD_CHAR_GLYPH): Accept new parameter F. + (IT_menu_display): Offset cursor positions by those of the + selected frame. + + * src/msdos.h (ENOTSUP): Move to conf_post.h for Gnulib. + + * src/xdisp.c (redisplay_internal): Redisplay MSDOS frames + unconditionally as with terminal frames. + +2024-12-20 Po Lu <luangruo@yahoo.com> + + Fix the Android port + + * src/dispnew.c (terminal_cursor_magic) + (combine_updates_for_frame): Disable unused code on Android. + + * src/frame.c (tty_child_frame_rect): Define out on Android. + +2024-12-19 Stefan Kangas <stefankangas@gmail.com> + + Prefer defvar-keymap in hangul.el + + * lisp/leim/quail/hangul.el (hangul-im-keymap): Convert to + defvar-keymap. + +2024-12-19 Robert Pluim <rpluim@gmail.com> + + Add more documentation for TTY child frames + + * doc/lispref/frames.texi (Child Frames): Document that TTY + child frames are now supported. + * etc/NEWS: Document another limitation of TTY child frames. + +2024-12-19 Robert Pluim <rpluim@gmail.com> + + Fix network test failure when using VPN client + + When using certain VPN clients, the interface info returned by + 'getifaddrs' does not have the address family filled in for the + ifa_netmask component (this is allowed by the standard, since + the value is not specified). The resulting address info causes + network tests suite failures. Fix by copying the address family + from the returned interface address. + + * src/process.c (network_interface_list): Copy the interface address + sa_family to the netmask address. + (Fnetwork_lookup_address_info): Fix test for non-IP addresses to + properly account for IPv6. + + * test/src/process-tests.el (process-tests-check-bug-74907): New + test, checks that 'network-interface-list' output is as + expected. + + (Bug#74907) + +2024-12-19 Gerd Möllmann <gerd@gnu.org> + + NEWS entry for the removal of `redisplay-dont-pause' + + NEWS entry for tty child frames + +2024-12-19 Gerd Möllmann <gerd@gnu.org> + + Remove remaining references to redisplay-dont-pause + + * src/pgtkfns.c (Fpgtk_print_frames_dialog): Remove reference to + Qredisplay_dont_pause. + * src/pgtkterm.c (pgtk_cr_export_frames): Remove reference to + Qredisplay_dont_pause. + * src/xfns.c (Fx_print_frames_dialog): Remove reference to + Qredisplay_dont_pause. + * src/xterm.c (x_cr_export_frames): Remove reference to + Qredisplay_dont_pause. + +2024-12-19 Gerd Möllmann <gerd@gnu.org> + + Remove an unused parameter of combine_updates + + * src/dispnew.c (combine_updates): Remove unused parameter inhibit_scrolling. + * src/xdisp.c (redisplay_internal): Adjust caller. + * src/dispextern.h: Change function prototype. + +2024-12-19 Gerd Möllmann <gerd@gnu.org> + + Don't pause display for pending input + + * src/dispnew.c: Remove display_completed, redisplay_dont_pause, + redisplay-dont-pause was declared obsolete in Emacs 24. Remove anything + checking pending input, change function signatures accordingly, and so + on. + + * src/keyboard.c (read_char): Don't use redisplay_dont_pause. + * src/minibuf.c (read_minibuf): Use new function signatures. + * src/xdisp.c: Don't check display_completed. Use new API. + + * lisp/subr.el (redisplay-dont-pause): Remove declaration. + +2024-12-19 Michael Albinus <michael.albinus@gmx.de> + + Fix display of obsolete variables in *Help* + + * doc/lispref/variables.texi (Variable Aliases): + Mention `substitute-command-keys' in `make-obsolete-variable'. + + * lisp/font-lock.el: Revert last change. + + * lisp/help-fns.el (help-fns--var-obsolete): + Apply `substitute-command-keys'. + + * lisp/emacs-lisp/byte-run.el (make-obsolete-variable): + Adapt docstring. + +2024-12-19 Gerd Möllmann <gerd@gnu.org> + + Merge branch 'scratch/tty-child-frames' + + Add support for child frames on tty + + The redisplay part is complete. The frame-handling part supports + use-cases like Posframe, Corfu, and child frames acting like tooltips. + Other use-cases of child frames are not currently supported. In + particular, trying to create minibuffer-only child frames on ttys will + signal an error. + + * src/xfaces.c (free_frame_faces): Change formatting slightly. + + * src/xdisp.c (redisplay_trace, move_tracxe): Print to stderr because + stdout screws up terminal display. + (init_iterator): Remove a #ifdef HAVE_WINDOW_SYSTEM. + (clear_garbaged_frames): Return a bool telling if we cleared matrix. + (echo_area_display): Use combine_updates on tty frames. + (redisplay_internal): Changes for redisplay of tty child windows. + (deep_copy_glyph_row): Take a frame parameter. + (display_tty_menu_item): Changes because of function signature changes. + + * src/w32term.c (w32_read_socket): Don't use FRAME_OBSCRURED_P, + which has been removed. + + * src/w32inevt.c (do_mouse_event): Workaround for mouse events on + child frafmes. + + * src/w32console.c (w32con_write_glyphs, w32con_update_end): + Use glyphs' frame for faces. + + * src/treesit.c (treesit_load_language): Pacify a warning. + + * src/w32console.c (w32con_clear_end_of_line): Set glyph's frame. + + * src/terminal.c (cursor_to, raw_cursor_to): Handle case that + frame is a child frame. + + * src/termhooks.h: Declare formerly static functions. + + * src/term.c (tty_hide_cursor, tty_show_cursor): Make externally + visible. + (tty_write_glyphs): Determine faces based on a glyph's frame. + (tty_write_glyphs_with_face): Take a struct face argument instead + of a face id. Callers changed. + (tty_insert_glyphs): Use faces, not face ids. + (append_glyph, append_composite_glyph, append_glyphless_glyph): + Set glyph's frame. + (turn_on_face, turn_off_face): Take face argument instead of face + id. Callers adapted. + (Fresume_tty): Act on root frame. + (tty_draw_row_with_mouse_face): Handle child frames. + (restore_desired_matrix): Make sure glyphs' is live. + (set_tty_hooks): Set terminal's frame_raise_lower_hook. + (tty_frame_geometry, Ftty_frame_geometry, Ftty_frame_edges) + (Ftty_frame_list_z_order, Ftty_frame_restack) + (tty_display_dimension, Ftty_display_pixel_width) + (Ftty_display_pixel_height): New functions. + (syms_of_term): Defsubr new Lisp functions. + + * src/minibuf.c (read_minibuf): Use combine_updates for tty + frames. + + * src/frame.h (struct frame): Always define parent_frame. Change + 'visible' to be a boolean. Always define 'undecorated' and + 'no_accept_focus'. Add 'z_order'. + (FRAME_OBSCURED_P): Removed. + (FRAME_PARENT_FRAME): Make it a function. + (SET_FRAME_VISIBLE): Take a bool parameter, not an int. + (FRAME_INTERNAL_BORDER_WIDTH): Don't special-base HAVE_WINDOW_SYSTEM. + + * src/frame.c (decode_tty_frame): New function. + (set_menu_bar_lines): Set menu bar lines and height to 0 for tty + child frames. Compute min height differently. + (adjust_frame_size): Set FrameCols/Rows only for root tty frames. + Mark tty root frame garbaged if child frame is adjusted. Run some + code even if not HAVE_WINDOW_SYSTEM. + (make_frame): Run some code even if not HAVE_WINDOW_SYSTEM. + (make_terminal_frame): Implement child frame creation. + (tty_child_pos_param, tty_child_size_param) + (tty_child_frame_rect): New functions. + (Fmake_terminal_frame): Parts rewritten for child frames. + (do_switch_frame): Add child frame support. + (Fframe_ancestor_p): Define if not HAVE_WINDOW_SYSTEM. + (Fmake_frame_visible, Fmake_frame_invisible) + (Fframe_visible_p, Fraise_frame): + Handle tty frames differently. + (store_frame_param): Signal error if trying to re-parent a tty + child frame. + (Fframe_parameters): Report some additional tty frame parameters. + (Fmodify_frame_parameters): Handle tty child frames. + (Fset_frame_position): Ditto. + (frame_parms): Define index for additional frame parameters. + (handle_frame_param): New function. + (gui_set_frame_parameters_1): Use handle_frame_param. + + * src/disptab.h (DISP_TABLE_EXTRA_SLOTS): Change to 12. + (enum box): New enumeration. + + * src/dispnew.c (check_rows): New function, #if 0. + (frame_matrix_frame): Variable removed. + (line_hash_code): Take glyph's frame into account. + (build_frame_matrix_from_leaf_window): Do not copy glyphs from + rows that aren't enabled. + (fill_up_glyph_row_with_spaces): Add frame parameter, uses + changed. + (fill_up_glyph_row_area_with_spaces): Add frame parameter. Set + glyph's frame to it. + (fill_up_frame_row_with_spaces): Ditto. + (set_frame_matrix_frame): Function removed. + (make_current): Change signature. Callers changed. + (mirrored_line_dance): Take a frame argument, not a matrix. + (redraw_frame): Don't clear_frame a child frame. + (struct rect): New. + (rect_intersect, frame_pos_abs, frame_rect_abs, root_frame) + (max_child_z_order, is_frame_ancestor, frames_with_root) + (frames_with_parent, frame_z_order_cmp, Fframe__z_order_lessp) + (frames_in_reverse_z_order, tty_raise_lower_frame, is_tty_frame) + (is_tty_child_frame, is_tty_root_frame, first_enabled_row) + (make_matrix_current, prepare_desired_root_row) + (make_glyph_space, neutralize_wide_char, produce_box_glyphs) + (produce_box_sides, produce_box_line, copy_child_glyphs) + (update_window_frame, update_initial_frame, flush_terminal) + (abs_cursor_pos, is_in_matrix, is_cursor_obscured) + (terminal_cursor_magic, combine_updates_for_frame) + (combine_updates): New functions. + (update_frame): Rewritten. + (Fdisplay__update_for_mouse_movement): Take a MOUSE_FRAME param. + (syms_of_display): New symbol frame--z-order--lessp, tty-non-selected-cursor. + New subr Sframe__z_order_lessp. Provide tty-child-frames. + + * src/dispextern.h (struct glyph): Add member 'frame'. + (CHAR_GLYPH_SPACE_P): Add FRAME parameter. All uses changed. + (GLYPH_EQUAL_P): Compare glyphs' frame. + (SET_CHAR_GLYPH): Add parameter FRAME. + (SET_CHAR_GLYPH_FROM_GLYPH): Ditto. + + * src/chartab.c (Fmake_char_table): Allow more than 10 display + table slots. + + * lisp/xt-mouse.el (xterm-mouse--handle-mouse-movement): Use new + terminal parameter xterm-mouse-frame. + (xterm-mouse-position-function): Ditto. + (xterm-mouse-event): Determine frame under mouse and compute + frame-relative coordinates. Set terminal parameter + xterm-mouse-frame. + + * lisp/tty-tip.el: New file implementing tooltip for ttys. + + * lisp/paren.el (show-paren-function): Don't check if + display-graphics-p when using child frames. + + * lisp/frame.el (frame-at): New function. + (tty-frame-geometry, tty-frame-edges, tty-frame-restack) + (tty-display-pixel-height, tty-frame-list-z-order) + (tty-display-pixel-width): Declare C function. + (frame-geometry): Use tty-frame-geometry. + (frame-edges): Use tty-frame-edges. + (frame-list-z-order): Use tty-frame-list-z-order. + (frame-restack): Use tty-frame-restack. + (display-pixel-height): Use tty-display-pixel-height. + (display-pixel-width): Use tty-display-pixel-width. + + * lisp/disp-table.el (display-table): Increase size to 12. + (box-horizontal, box-vertical, box-down-right, box-down-left) + (box-up-right, box-up-left): New display table slot names for + box-drawing characters. + (display-table-slot, set-display-table-slot): Extend doc string. + (describe-display-table): Display new display table slots. + (standard-display-unicode-special-glyphs): New function setting + up Unicode characters for display table entries. + + * .gitignore: Don't ignore patch files, they are useful to see in + Magit status buffer when applying patches (git am). + +2024-12-19 Juri Linkov <juri@linkov.net> + + Add treesit thing 'sexp-list' to some ts-modes (bug#73404) + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--thing-settings): + * lisp/progmodes/js.el (js-ts-mode): + * lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode): + * lisp/textmodes/html-ts-mode.el (html-ts-mode): + Add 'sexp-list' to treesit-thing-settings. + * lisp/progmodes/js.el (js--treesit-sexp-list-nodes): New variable. + +2024-12-19 Juri Linkov <juri@linkov.net> + + New treesit thing 'sexp-list' (bug#73404) + + * lisp/treesit.el (treesit-forward-list): New command. + (treesit-forward-sexp): Check the thing 'text' only when + 'treesit-sexp-type-regexp' is nil. + (treesit-forward-sexp-list): New function. + (treesit-navigate-thing): Don't try moving to parent + when thing is 'sexp-list'. + (treesit-major-mode-setup): Set 'forward-sexp-function' to + 'treesit-forward-sexp-list' when the 'sexp-list' thing is defined. + +2024-12-19 Stefan Kangas <stefankangas@gmail.com> + + Increase goto-address-fontify-maximum-size + + The new value is ~4 times larger, and should be more than fine on any + reasonably modern machine. Alternatively, the default could be set to + t, as requested here: + https://lists.gnu.org/r/bug-gnu-emacs/2003-05/msg00114.html + + * lisp/net/goto-addr.el (goto-address-fontify-maximum-size): Increase + default value from 30000 to 128 KiB. + +2024-12-19 Stefan Kangas <stefankangas@gmail.com> + + Prefer defvar-keymap in goto-addr.el + + * lisp/net/goto-addr.el (goto-address-highlight-keymap): Convert to + defvar-keymap. + +2024-12-19 Stefan Kangas <stefankangas@gmail.com> + + Prefer defvar-keymap in filecache.el + + * lisp/filecache.el (file-cache-completions-keymap): Convert to + defvar-keymap. + +2024-12-19 Stefan Kangas <stefankangas@gmail.com> + + Delete support for the Conkeror web browser + + The last release of Conkeror was in 2017. The project has been actively + recommending people not to use it since 2019 due to security concerns, + and it was removed from Debian in the same year. Emacs's browse-url + support for Conkeror has been obsolete since in Emacs 28.1. + + * lisp/net/browse-url.el (browse-url-conkeror-new-window-is-buffer): + (browse-url-conkeror-program, browse-url-conkeror-arguments): Delete + variables. + (browse-url-conkeror): Delete function. + +2024-12-18 Andrea Corallo <acorallo@gnu.org> + + * Make again `comp--finalize-container' compilable + + * lisp/emacs-lisp/comp.el (comp--finalize-container): Don't emit + '--lambda-fixup' immediate in data relocations. + +2024-12-18 Andrea Corallo <acorallo@gnu.org> + + Use '--lambda-fixup' as native compiler fixup symbol for lambdas + + * src/comp.c (check_comp_unit_relocs, syms_of_comp): Rename + 'Qlambda_fixup' to 'Q__lambda_fixup'. + * src/pdumper.c (dump_do_dump_relocation): Likewise. + +2024-12-18 Andrea Corallo <acorallo@gnu.org> + + * Revert "Remove check_comp_unit_relocs" + + This reverts commit 81fc23b5d6a60ca4f3d269ab2c88eb9a850bac4c as the + check is still useful but needs to be updated for the new reloc layout. + + * src/comp.c (check_comp_unit_relocs): Re-add. + (load_comp_unit): Make use of. + +2024-12-18 Eli Zaretskii <eliz@gnu.org> + + Avoid MinGW compilation warning in lib/ + + * nt/mingw-cfg.site (ac_cv_func_malloc_0_nonnull) + (gl_cv_malloc_ptrdiff, gl_cv_func_malloc_posix): + * nt/gnulib-cfg.mk (OMIT_GNULIB_MODULE_malloc-gnu): Set to avoid + compiling lib/malloc.c, which is not needed and causes a + compilation warning. + +2024-12-18 Michael Albinus <michael.albinus@gmx.de> + + Fix string used in recent obsolete variables spec + + * lisp/font-lock.el (font-lock-comment-face) + (font-lock-comment-delimiter-face, font-lock-string-face) + (font-lock-doc-face, font-lock-doc-markup-face) + (font-lock-keyword-face, font-lock-builtin-face) + (font-lock-function-name-face, font-lock-variable-name-face) + (font-lock-type-face, font-lock-constant-face) + (font-lock-warning-face, font-lock-negation-char-face) + (font-lock-preprocessor-face): Don't quote the apostrophe in the + CURRENT-NAME argument of `make-obsolete-variable', it isn't + expanded by `substitute-command-keys'. + +2024-12-18 Stefan Kangas <stefankangas@gmail.com> + + New user option browse-url-transform-alist + + * lisp/net/browse-url.el (browse-url-transform-alist): New user option. + (browse-url): Transform URL before loading if above new option is set. + +2024-12-18 Stefan Kangas <stefankangas@gmail.com> + + Make font-lock face variables obsolete + + Using these variables as "another mechanism for changing face + appearance" never really worked, since mode authors were free to use the + face instead of the variable (i.e. quoting the symbol). This means that + when users customized the variables, it would change its appearance only + in some cases, which is a rather surprising interface. + + Indeed, it turns out that some modes have not always been consistent, + and mixed using the variable and the face, increasing the confusion even + further. Thus, the only thing users could rely on to always work was to + leave the variables at their default value, and to customize the face. + + We now recommend customizing the face, and are obsoleting these + variables. This will lead to some minor code-churn, but it is believed + that it will be ultimately worth it. To fix existing Lisp code, you + should typically only need to quote the symbol, as this commit shows. + + It might be the case that we will have to keep the obsolete variables, + that have been with us since Emacs 19, around for a longer time-period + than normal, to allow package authors to adapt. + + * lisp/font-lock.el (font-lock-comment-face) + (font-lock-comment-delimiter-face, font-lock-string-face) + (font-lock-doc-face, font-lock-doc-markup-face, font-lock-keyword-face) + (font-lock-builtin-face, font-lock-function-name-face) + (font-lock-variable-name-face, font-lock-type-face) + (font-lock-constant-face, font-lock-warning-face) + (font-lock-negation-char-face, font-lock-preprocessor-face): Make face + variables obsolete in favor of customizing the faces directly + instead. (Bug#71469) + + * doc/lispref/modes.texi (Faces for Font Lock): Don't document above + obsolete variables. + + * lisp/cedet/data-debug.el (data-debug-insert-hash-table) + (data-debug-insert-widget-properties, data-debug-insert-string) + (data-debug-insert-number): + * lisp/emacs-lisp/lisp-mode.el (elisp--font-lock-backslash) + (lisp-font-lock-syntactic-face-function): + * lisp/emacs-lisp/package.el (describe-package-1): + * lisp/generic-x.el (rc-generic-mode, rul-generic-mode): + * lisp/org/org-table.el (org-table-edit-formulas): + * lisp/progmodes/cc-fonts.el (c-font-lock-invalid-single-quotes) + (c-maybe-font-lock-wrong-style-comments, c-font-lock-declarators) + (c-font-lock-c++-lambda-captures, c-font-lock-c++-modules): + * lisp/progmodes/cperl-mode.el (cperl-find-sub-attrs) + (cperl-look-at-leading-count, cperl-process-here-doc) + (cperl-find-pods-heres): + * lisp/progmodes/gdb-mi.el (gdb-init-1, gdb-update, gdb-running) + (gdb-starting, gdb-stopped, gdb-internals) + (gdb-breakpoints--add-breakpoint-row, gdb-locals-handler-custom) + (gdb-registers-handler-custom, gdb-get-source-file): + * lisp/progmodes/js.el (js--font-lock-keywords-1) + (js--font-lock-keywords-2, js-font-lock-syntactic-face-function): + * lisp/progmodes/lua-ts-mode.el (lua-ts--comment-font-lock): + * lisp/progmodes/meta-mode.el (meta-indent-in-string-p): + * lisp/progmodes/prolog.el (prolog-font-lock-keywords): + * lisp/progmodes/python.el (python-font-lock-syntactic-face-function): + * lisp/progmodes/ruby-ts-mode.el (ruby-ts--comment-font-lock): + * lisp/progmodes/sh-script.el (sh-font-lock-syntactic-face-function): + * lisp/textmodes/tex-mode.el (doctex-font-lock-syntactic-face-function): + * test/lisp/faces-tests.el (faces--test-color-at-point): + * test/lisp/progmodes/cperl-mode-tests.el (cperl-test-extra-delimiters) + (cperl-test-bug-47112, cperl-test-bug-65834, cperl-test-bug-66145) + (cperl-test-bug-66161, cperl-test-bug-69604): + * test/lisp/progmodes/python-tests.el + (python-ts-mode-compound-keywords-face) + (python-ts-mode-named-assignment-face-1) + (python-ts-mode-assignment-face-2, python-ts-mode-nested-types-face-1) + (python-ts-mode-union-types-face-1, python-ts-mode-union-types-face-2) + (python-ts-mode-types-face-1, python-ts-mode-types-face-2) + (python-ts-mode-types-face-3, python-ts-mode-isinstance-type-face-1) + (python-ts-mode-isinstance-type-face-2) + (python-ts-mode-isinstance-type-face-3) + (python-ts-mode-superclass-type-face, python-ts-mode-class-patterns-face) + (python-ts-mode-dotted-decorator-face-1) + (python-ts-mode-dotted-decorator-face-2) + (python-ts-mode-builtin-call-face) + (python-ts-mode-interpolation-nested-string) + (python-ts-mode-level-fontification-wo-interpolation) + (python-ts-mode-disabled-string-interpolation) + (python-ts-mode-interpolation-doc-string): + * test/lisp/progmodes/ruby-mode-tests.el + (ruby-heredoc-font-lock, ruby-heredoc-highlights-interpolations) + (ruby-exit!-font-lock, ruby-regexp-interpolation-is-highlighted) + (ruby-recognize-symbols-starting-with-at-character) + (ruby-hash-character-not-interpolation) + (ruby-interpolation-suppresses-quotes-inside) + (ruby-interpolation-suppresses-one-double-quote) + (ruby-interpolation-inside-percent-literal) + (ruby-interpolation-inside-percent-literal-with-paren) + (ruby-interpolation-inside-another-interpolation) + (ruby-interpolation-inside-double-quoted-percent-literals) + (ruby-no-interpolation-in-single-quoted-literals): + Don't use above obsolete variables. + * lisp/progmodes/cc-fonts.el (font-lock-constant-face): Don't + declare now-unused variable. + +2024-12-18 Po Lu <luangruo@yahoo.com> + + Fix the DJGPP build + + * msdos/sedlibmk.inp (LIB_SELINUX, USE_SELINUX_SELINUX_H): + Define to 0. + + * src/conf_post.h (_GL_DIT_NOTDIR, ENOTSUP) [MSDOS]: Define to + appropriate values. + +2024-12-17 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + + * admin/merge-gnulib (AVOIDED_MODULES): Avoid gnulib-i18n. + * lib/stdlib.c, m4/selinux-selinux-h.m4: + New files, taken from Gnulib. + +2024-12-17 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/mail/sendmail.el (mail-citation-prefix-regexp): Fix bug#24081 + +2024-12-17 Vincenzo Pupillo <vincenzo.pupillo@unimi.it> + + Fix treesit-font-lock-level in python-ts-mode + + Now that 'treesit-font-lock-level' can be a number or a list, it + should be handled using 'treesit--compute-font-lock-level'. + + * lisp/progmodes/python.el (python--treesit-fontify-string): + Apply 'treesit--compute-font-lock-level' to + 'treesit-font-lock-level'. + +2024-12-17 Juri Linkov <juri@linkov.net> + + Rename the property 'repeat-continue-only' to 'repeat-continue' + + * doc/lispref/keymaps.texi (Creating Keymaps): + * lisp/keymap.el (defvar-keymap): + * lisp/repeat.el (repeat-get-map, describe-repeat-maps): + * test/lisp/repeat-tests.el (repeat-tests-another-repeat-map) + (repeat-tests-repeat-map): Replace 'repeat-continue-only' + with 'repeat-continue' (bug#74140). + +2024-12-17 Juri Linkov <juri@linkov.net> + + Display commands with repeat-continue-only in describe-repeat-maps + + * lisp/repeat.el (describe-repeat-maps): Display commands with the + property 'repeat-continue-only' used to continue the currently + active repeat-map (bug#74140). Also use 'cl--map-keymap-recursively' + instead of 'map-keymap' to find more deep keybindings. + +2024-12-17 Juri Linkov <juri@linkov.net> + + Improve support of property repeat-continue-only in repeat-mode (bug#74140) + + * lisp/repeat.el (repeat-get-map): Add optional arg 'rep-map'. + Move the check for 'repeat-continue-only' from 'repeat-pre-hook'. + Improve its logic to check if the current map 'repeat-in-progress' + exists in the list from the 'repeat-continue-only' property. + (repeat-post-hook): Set 'repeat-in-progress' to the symbol + from the property 'repeat-map'. + + * test/lisp/repeat-tests.el (repeat-tests-another-repeat-map): + Add new keymap to test multiple parallel repeat-maps. + (repeat-tests-continue-another): New test that uses commands + from 'repeat-tests-another-repeat-map' shared with + 'repeat-tests-repeat-map'. + +2024-12-17 Gerd Möllmann <gerd@gnu.org> + + Remove check_comp_unit_relocs + + * src/comp.c (check_comp_unit_relocs): Removed. + (load_comp_unit): Remove use. + +2024-12-17 Juri Linkov <juri@linkov.net> + + * lisp/minibuffer.el: Mention `eager-display' in more docstrings. + + (completion-category-defaults, completion-category-overrides): + Add `eager-display' to the docstring. + +2024-12-17 Stefan Kangas <stefankangas@gmail.com> + + Don't use obsolete lisp-complete-symbol in ses.el + + * lisp/ses.el (ses-mode-edit-map): Replace obsolete function + lisp-complete-symbol with completion-at-point. + +2024-12-16 Stefan Kangas <stefankangas@gmail.com> + + unintern: Drop support for obsolete calling convention + + * lisp/subr.el (unintern): + * src/lread.c (Funintern): Drop support for old calling convention, + obsolete since 23.3. + * test/lisp/progmodes/elisp-mode-tests.el + (elisp-shorthand-escape): Don't use obsolete calling convention. + +2024-12-16 Stefan Kangas <stefankangas@gmail.com> + + all-completions: Drop support for obsolete calling convention + + * src/minibuf.c (Fall_completions): + * lisp/subr.el (all-completions): Drop support for old calling + convention, obsolete since 23.1. + * src/minibuf.c (Finternal_complete_buffer): Update caller. + +2024-12-16 Stefan Kangas <stefankangas@gmail.com> + + * lisp/dired.el (dired-summary): Use substitute-command-keys. + +2024-12-16 Stefan Kangas <stefankangas@gmail.com> + + Ignore some more Python tooling directories when grepping + + * lisp/progmodes/python.el (python-base-mode): Add Pytest and Rope + cache directories to 'grep-find-ignored-directories'. + +2024-12-16 Stefan Kangas <stefankangas@gmail.com> + + Make VC exclude Repo directories + + * lisp/vc/vc-hooks.el (vc-directory-exclusion-list): Also ignore + ".repo" directory created by Repo. + Ref: https://android.googlesource.com/tools/repo + +2024-12-16 Stefan Kangas <stefankangas@gmail.com> + + Improve heuristic for Python walrus operator + + * lisp/progmodes/python.el (python-base-mode): Improve heuristic for + Python walrus operator in 'electric-layout-mode'. + +2024-12-16 Stefan Kangas <stefankangas@gmail.com> + + Use substitute-command-keys in map-y-or-n-p + + * lisp/emacs-lisp/map-ynp.el (map-y-or-n-p): Use + substitute-command-keys. + +2024-12-16 Stefan Kangas <stefankangas@gmail.com> + + Bind inhibit-read-only to t in substitute-command-keys + + * lisp/help.el (substitute-command-keys): Bind inhibit-read-only to t, + to allow modifying strings that are intended for the minibuffer, and + therefore already use minibuffer-prompt-properties. + +2024-12-16 Daniel Mendler <mail@daniel-mendler.de> + + Use `completion-table-with-metadata' (bug#74865) + + Prefer `completion-table-with-metadata' over explicit completion + table lambdas for clarity. Furthermore prefer it over + `completion-extra-properties' to avoid problems with recursive + minibuffers and recursive completion sessions, since the + completion metadata applies only to the outer completion session. + + * lisp/bookmark.el (bookmark-completing-read): + * lisp/faces.el (read-face-name): + * lisp/international/emoji.el (emoji--read-emoji): + * lisp/net/dictionary.el (dictionary-completing-read-dictionary): + * lisp/net/rcirc.el (rcirc-completion-at-point): + * lisp/net/eww.el (eww-read-alternate-url): + * lisp/simple.el (read-from-kill-ring): Use it. + * lisp/calendar/calendar.el (calendar-read-date): Use + `completion-table-with-metadata' and `completion-table-case-fold'. + * lisp/proced.el (proced--read-signal): New function. + (proced-send-signal): Use it. + +2024-12-16 Juri Linkov <juri@linkov.net> + + * lisp/comint.el (comint-complete-input-ring): New command (bug#74694). + + (comint-mode-map): Bind 'comint-complete-input-ring' to 'C-x <up>'. + +2024-12-16 Ship Mints <shipmints@gmail.com> + + Support pixelwise frame cloning (Bug#74750) + + * lisp/frame.el (clone-frame): Honor 'frame-resize-pixelwise' + when cloning a frame's geometry via the 'text-pixels' feature of + 'make-frame' (Bug#74750). Correctly specify source frame in + 'display-graphic-p' test for tty selection behavior. + +2024-12-16 john muhl <jm@pub.pink> + + Add Qutebrowser to list of choices in customize + + * lisp/net/browse-url.el (browse-url--browser-defcustom-type): + Include 'browse-url-qutebrowser' so that it appears in the Choice + menus of 'browse-url-browser-function' and + 'browse-url-secondary-browser-function'. (Bug#74904) + +2024-12-16 Martin Rudalics <rudalics@gmx.at> + + Don't inhibit resizing when making a new frame (Bug#74750) + + * src/frame.h (struct frame): Remove inhibit_horizontal_resize + and inhibit_vertical_resize slots. + * src/frame.c (frame_inhibit_resize, make_frame) + (Fframe_after_make_frame, gui_figure_window_size): Remove all + operations on frame's inhibit_horizontal_resize and + inhibit_vertical_resize slots (Bug#74750). + +2024-12-16 Stefan Kangas <stefankangas@gmail.com> + + Invert preprocessor condition to fix 'C-x 4 a' + + Typing 'C-x 4 a' in the main function now correctly adds 'main' to the + generated ChangeLog, whereas before it added 'andreid_emacs_init'. + Inverting the preprocessor condition seems like an easier fix than + changing the add-change-log-entry-other-window heuristic. + + * src/emacs.c (main): Invert preprocessor condition to appease the + 'add-change-log-entry-other-window' heuristic. + +2024-12-15 Stefan Kangas <stefankangas@gmail.com> + + Prefer defvar-keymap in info.el + + * lisp/info.el (Info-mode-line-node-keymap, Info-link-keymap): + Convert to defvar-keymap. + +2024-12-15 Stefan Kangas <stefankangas@gmail.com> + + Move pure+side-effect-free declarations to byte-opt.el + + * src/json.c (syms_of_json): Move pure and side-effect-free declarations + for json-serialize and json-parse-string from here... + * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns, pure-fns): + ...to here. + +2024-12-15 Daniel Mendler <mail@daniel-mendler.de> + + completion-eager-display: Use buffer content instead of INITIAL-INPUT + + * lisp/minibuffer.el (completing-read-default): Use the + minibuffer content instead of handling INITIAL-INPUT directly. + +2024-12-15 Vitaliy Chepelev <vitalij@gmx.com> (tiny change) + + image-dired: Don't croak on file names with regexp characters + + * lisp/image/image-dired-dired.el (image-dired-mark-tagged-files): + * lisp/image/image-dired-tags.el (image-dired-get-comment) + (image-dired-write-comments, image-dired-list-tags) + (image-dired-remove-tag, image-dired-write-tags): Quote file name + for search-forward-regexp. (Bug#73445) + +2024-12-15 Stefan Kangas <stefankangas@gmail.com> + + Don't define SYSTEM_PURESIZE_EXTRA + + * nt/inc/ms-w32.h: Don't define SYSTEM_PURESIZE_EXTRA. + +2024-12-15 Stefan Kangas <stefankangas@gmail.com> + + Remove some more references to pure space + + * lisp/auth-source.el (read-passwd-map): + * lisp/emacs-lisp/eldoc.el (eldoc-message-commands) + (eldoc-last-data): Remove some references to pure space. + +2024-12-15 Stefan Kangas <stefankangas@gmail.com> + + Improve purify-flag docstring + + * src/alloc.c (syms_of_alloc): Improve purify-flag docstring. + +2024-12-15 Stefan Kangas <stefankangas@gmail.com> + + Don't document removed SITELOAD_PURESIZE_EXTRA + + * doc/lispref/internals.texi (Building Emacs): Don't document removed + constant SITELOAD_PURESIZE_EXTRA. + +2024-12-15 Stefan Kangas <stefankangas@gmail.com> + + Remove another purecopy call in files.el + + * lisp/files.el (save-some-buffers-action-alist): Don't call purecopy. + +2024-12-15 kobarity <kobarity@gmail.com> + + Fix hangs caused by unbalanced braces in Python f-strings + + * lisp/progmodes/python.el (python--font-lock-f-strings): + Temporarily bind forward-sexp-function to nil when calling + 'up-list'. (Bug#74738) + +2024-12-14 Stephen Gildea <stepheng+emacs@gildea.com> + + time-stamp: fix search end, more compatibility suggestions + + * lisp/time-stamp.el (time-stamp): Use a marker for the + search end limit so we don't insert past it. + (time-stamp-conv-warn): Include a second suggested conversion + that might be what was intended. + Include a link to variable 'time-stamp-format'. + * test/lisp/time-stamp-tests.el: more tests + +2024-12-14 Pip Cet <pipcet@protonmail.com> + + Fix a typo which caused test failures + + * lisp/progmodes/python.el (interpreter-mode-alist): + * lisp/progmodes/vera-mode.el (interpreter-mode-alist): Fix typo. + +2024-12-14 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 6942599dbb2 ; * etc/PROBLEMS: Document problem with menu-bar backgrou... + 488801baf7d * lisp/time-stamp.el: Limit field width to two digits. + 34bedcd58d7 ; * lisp/progmodes/executable.el: Remove stale comment (b... + 327d3e56f6e ; * etc/TODO: Add an item for improving defgroups. + 7ae9ccae0ca ; * lisp/net/rcirc.el (rcirc-next-active-buffer): Doc fix... + 3e51be94ae6 ; Fix :version tag in browse-url + dffd4a50c64 Revert "Attempt to install package first when upgrading" + fbcb357b9db Fix 'gnus-select-method' custom type + 6fd5e02cb9b Fix typo in maps.texi + 872a7336dc0 ; * etc/DEBUG: Mention "handle SIGINT" on MS-Windows. + b4bcbabf95c * doc/misc/tramp.texi (FUSE-based methods): Fix sshfs ref... + f8da72b41cd Improve gnus.texi indexing + 4a090bd7eab ; * lisp/net/eww.el (eww-browse-with-external-browser): F... + 59fa0b1dd6e ; Improve doc strings in compile.el + 3d8e49c41a6 Attempt to install package first when upgrading + + # Conflicts: + # lisp/net/browse-url.el + # lisp/net/eww.el + +2024-12-14 Richard Lawrence <rwl@recursewithless.net> + + Check for presuppositions in `calendar-date-is-valid-p' + + Do not signal an error in `calendar-date-is-valid-p' if passed a + value which is not a three-element list of integers. Signaling + an error makes the function unusable as a predicate for valid + date values. (Bug#74848) + * lisp/calendar/calendar.el (calendar-date-is-valid-p): Add the + check that input is a 3-element list. + * test/lisp/calendar/calendar-tests.el: New file with tests. + +2024-12-14 Daniel Mendler <mail@daniel-mendler.de> + + New customization variable `completion-eager-display' + + The customization option can be set to t or nil, to respectively + always or never show the *Completions* buffer eagerly at the + beginning of a completion session. Furthermore the option can + be set to the value auto. In this case the *Completions* buffer + will only be shown if requested by the completion table. + Completion tables can use the `eager-display' completion + metadata to do so. (Bug#74616, Bug#74617) + + * lisp/minibuffer.el (completion-eager-display): New + customization variable. + (completion-metadata): Update docstring, document the + new `eager-display' completion metadata. + (completion-extra-properties): Update docstring, document the + new `:eager-display' completion metadata. + (completion-category-overrides): Add `eager-display' to the + custom type specification. + (completing-read-default): Handle the `completion-eager-display' + customization variable and the `eager-display' completion + metadata. + (completion-table-with-metadata): New function to create + a completion table with metadata. + (minibuffer-complete-defaults, minibuffer-complete-history): + Use it. + * lisp/ffap.el (ffap-menu-ask): Add `ffap-menu' completion + category and `eager-display' completion metadata. Use + `completion-table-with-metadata'. + * lisp/imenu.el (imenu-eager-completion-buffer): Correct + docstring, which had been inverted. + (imenu--completion-buffer): Add `eager-display' completion + metadata. Use `completion-table-with-metadata'. + * lisp/tmm.el (tmm-prompt): Add `tmm' completion category and + `eager-display' completion metadata. Use + `completion-table-with-metadata'. Add keymap setup. + (tmm-add-prompt): Remove keymap setup. + (tmm-goto-completions): Call `tmm-add-prompt' to ensure that a + *Completions* buffer is shown. + (tmm--completion-table): Remove unused internal function. + * etc/NEWS: Announce the change. + +2024-12-14 Lin Sun <sunlin7@hotmail.com> + + Restore 'imenu-create-index-function' on exiting semantic + + * lisp/cedet/semantic.el: Restore the + 'imenu-create-index-function' on exiting. + * lisp/cedet/semantic/bovine/make.el: + * lisp/cedet/semantic/bovine/scm.el: + * lisp/cedet/semantic/html.el: + * lisp/cedet/semantic/texi.el: + * lisp/cedet/semantic/wisent/java-tags.el: + * lisp/cedet/semantic/wisent/javascript.el: + * lisp/cedet/semantic/wisent/python.el: + * lisp/cedet/srecode/template.el: + Store the original 'imenu-create-index-function' before + changing it. (Bug#74803) + +2024-12-14 Daniel Mendler <mail@daniel-mendler.de> + + Add `browse-url-qutebrowser' + + The browser launcher supports the NEW-WINDOW argument and + `browse-url-qutebrowser-new-window-is-tab' to open tabs. + Furthermore opening new URLs is sped up via Unix socket IPC if + available. + * lisp/net/browse-url.el (browse-url-qutebrowser-send): Function + to send command to Qutebrowser via IPC. + (browse-url-qutebrowser): New browser launcher. Use + `browse-url-qutebrowser-send'. + (browse-url-qutebrowser-program, browse-url-qutebrowser-arguments) + (browse-url-qutebrowser-new-window-is-tab): New customizables. + (browse-url-mozilla-new-window-is-tab) + (browse-url-firefox-new-window-is-tab) + (browse-url-epiphany-new-window-is-tab): Improve docstrings. + + * etc/NEWS: Announce the change. + (Bug#74781) + +2024-12-14 Michael Albinus <michael.albinus@gmx.de> + + Fix xt-mouse-tests.el in interactive mode + + * test/lisp/xt-mouse-tests.el (with-xterm-mouse-mode): Run only + when noninteractive. + +2024-12-14 Jared Finder <jared@finder.org> + + Fix for xt-mouse-tests.el broken in prior commit + + xt-mouse-tests not turning on xterm-mouse-mode if it was already + on did not work with xterm-mouse-mode being set to t by default. + It turns out that xt-mouse-tests already does not report proper + results when called inside a running Emacs session so the code + path is not useful anyways. + + * test/lisp/xt-mouse-tests.el (with-xterm-mouse-mode): Always + turn on xterm-mouse-mode, even if it is already on. + +2024-12-14 Gerd Möllmann <gerd@gnu.org> + + Improve menu separator display on ttys slightly (bug#74854) + + * src/xdisp.c (display_tty_menu_separator): New function displaying + separators with '-', '=', or ' '. + (display_tty_menu_item): Use it. + +2024-12-13 kobarity <kobarity@gmail.com> + + Fix font-lock of Python f-strings + + * lisp/progmodes/python.el (python--font-lock-f-strings): Bind + 'parse-sexp-ignore-comments' to nil so that we can look for + closing braces even if a hash is used in the format specifier. + * test/lisp/progmodes/python-tests.el + (python-font-lock-f-string-1): New test. (Bug#74738) + +2024-12-13 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/help-fns.el (help-fns-short-filename): Skip relative file names + +2024-12-13 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/org/ox-texinfo.el (org-texinfo-template): Fix direntry format + + Apparently I was confused and `* FILE. DESCRIPTION` is not + a valid format, so always use the longer form. + +2024-12-13 Eli Zaretskii <eliz@gnu.org> + + * nt/inc/netinet/tcp.h: New (empty) file. + +2024-12-13 Eric Marsden <eric.marsden@risk-engineering.org> + + Add support for TCP_NODELAY on network streams + + * src/process.c (socket_options): add entry for TCP_NODELAY. + * lisp/emacs-lisp/bytecomp.el: add :nodelay to valid keywords + for make-network-process compiler-macro. + * doc/lispref/processes.texi: document :nodelay keyword argument + to set-network-process-option and make-network-process. + + (Bug#74793) + +2024-12-13 Yuan Fu <casouri@gmail.com> + + Apply string syntax only to string in jsx (bug#73978) + + The current code applies string syntax to too many things. This + patch makes tsx-ts-mode (and friends) only apply string syntax + to actual text in tsx/jsx. + + * lisp/progmodes/typescript-ts-mode.el: + (tsx-ts--s-p-query): Only capture jsx_text. + (tsx-ts--syntax-propertize-captures): handle the case when the + text is one character long. + +2024-12-13 Yuan Fu <casouri@gmail.com> + + Declare tree-sitter functions with a new macro + + * lisp/progmodes/c-ts-mode.el: + * lisp/progmodes/cmake-ts-mode.el: + * lisp/progmodes/csharp-mode.el: + * lisp/progmodes/dockerfile-ts-mode.el: + * lisp/progmodes/elixir-ts-mode.el: + * lisp/progmodes/go-ts-mode.el: + * lisp/progmodes/heex-ts-mode.el: + * lisp/progmodes/java-ts-mode.el: + * lisp/progmodes/json-ts-mode.el: + * lisp/progmodes/lua-ts-mode.el: + * lisp/progmodes/php-ts-mode.el: + * lisp/progmodes/ruby-ts-mode.el: + * lisp/progmodes/rust-ts-mode.el: + * lisp/progmodes/js.el: + * lisp/progmodes/python.el: + * lisp/progmodes/sh-script.el: + * lisp/progmodes/c-ts-common.el: + * lisp/progmodes/prog-mode.el: + * lisp/progmodes/typescript-ts-mode.el: Use new macro. + * lisp/treesit.el (treesit-declare-unavailable-functions): New + macro. + +2024-12-13 Stefan Kangas <stefankangas@gmail.com> + + Prefer defvar-keymap in perl-mode.el + + * lisp/progmodes/perl-mode.el (perl-mode-map): Convert to + defvar-keymap. + +2024-12-13 Stefan Kangas <stefankangas@gmail.com> + + Prefer defvar-keymap in f90.el + + * lisp/progmodes/f90.el (f90-mode-map): Convert to defvar-keymap. + (f90-menu): Move definition to top level. + +2024-12-13 Stefan Kangas <stefankangas@gmail.com> + + Prefer defvar-keymap in dired.el + + * lisp/dired.el (dired-mouse-drag-files-map) + (dired-click-to-select-map): Convert to defvar-keymap. + +2024-12-13 Stefan Kangas <stefankangas@gmail.com> + + Don't use obsolete mode delhpi-mode + + * lisp/files.el (auto-mode-alist): Prefer opascal-mode to obsolete + delphi-mode. + +2024-12-12 Stefan Kangas <stefankangas@gmail.com> + + Don't use obsolete filter-buffer-substring-functions in Org + + This patch was also installed in Org mode, here: + https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=b9637ef142 + + * lisp/org/org-agenda.el (org-agenda-mode): + * lisp/org/org-indent.el (org-indent-mode): Don't use obsolete + filter-buffer-substring-functions. + +2024-12-12 Stefan Kangas <stefankangas@gmail.com> + + Mark pure-bytes-used as obsolete + + * lisp/subr.el (pure-bytes-used): Mark variable as obsolete. + +2024-12-12 Stefan Kangas <stefankangas@gmail.com> + + Delete variable pure-space-overflow + + * lisp/startup.el (pure-space-overflow): Make variable obsolete. + * lisp/loadup.el (pure-space-overflow): Do not set. Remove call to + `garbage-collect', as that is done by `dump-emacs-portable'. + +2024-12-12 Stefan Kangas <stefankangas@gmail.com> + + Make 'purecopy' an obsolete function alias for 'identity' + + * lisp/subr.el (purecopy): New obsolete function alias for 'identity'. + * src/alloc.c (purecopy): Remove function. + (Fpurecopy): Remove DEFUN. + (syms_of_alloc): Remove defsubr for above DEFUN. + * lisp/loadup.el (purify-flag): Don't set to hash table. + + * doc/lispref/spellfile: + * doc/lispref/keymaps.texi (Tool Bar): + * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Delete + references to 'purecopy' + +2024-12-12 Stefan Kangas <stefankangas@gmail.com> + + Delete obsolete comment about using purespace + + * src/alloc.c (Fmake_byte_code): Delete obsolete comment. + +2024-12-12 Stefan Kangas <stefankangas@gmail.com> + + Delete workaround for purespace in cl-generic + + * lisp/emacs-lisp/cl-generic.el (cl-generic-define-method): Delete + purespace workaround. + +2024-12-12 Stefan Kangas <stefankangas@gmail.com> + + Remove unused function my_heap_start + + * src/alloc.c (my_heap_start) [DOUG_LEA_MALLOC && GNU_LINUX]: + Remove unused function. Update callers. + +2024-12-12 Stefan Kangas <stefankangas@gmail.com> + + Remove check for working malloc_set_state + + This check was added to 'malloc_initialize_hook' in order to "insulate + Emacs better from configuration screwups" (commit b4788b9394f3). With + unexec gone, we no longer use 'malloc_set_state', and thus don't need + this check. + + Note that this patch removes the last uses of the deprecated glibc + functions 'malloc_set_state' and 'malloc_get_state' from our code. + + * src/alloc.c (malloc_initialize_hook) [DOUG_LEA_MALLOC]: + Remove check for working 'malloc_set_state'. + (alloc_unexec_pre) [DOUG_LEA_MALLOC]: Delete unused function. + (alloc_unexec_post) [DOUG_LEA_MALLOC]: Delete function. + (malloc_state_ptr) [DOUG_LEA_MALLOC]: Delete variable. + * configure.ac (emacs_cv_var_doug_lea_malloc): Don't check for + malloc_set_state and malloc_get_state. + +2024-12-12 Stefan Kangas <stefankangas@gmail.com> + + Remove purespace fix from cl-preloaded.el + + * lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Remove fix for + purespace. This effectively reverts Stefan Monnier's commit + e785c74d3a88. + +2024-12-12 Stefan Kangas <stefankangas@gmail.com> + + Delete remaining calls to purecopy + + * lisp/button.el (default-button): + * lisp/calendar/holidays.el (holiday-solar-holidays) + (holiday-bahai-holidays, holiday-islamic-holidays) + (holiday-christian-holidays, holiday-hebrew-holidays) + (holiday-oriental-holidays, holiday-general-holidays): + * lisp/comint.el (comint-file-name-prefix): + * lisp/composite.el (unicode-category-table): + * lisp/cus-face.el (custom-declare-face): + * lisp/custom.el (custom-add-load, custom-add-package-version) + (custom-add-version, custom-add-link, custom-declare-group) + (custom-declare-variable): + * lisp/dired.el (dired-listing-switches): + * lisp/epa-hook.el (epa-file-name-regexp): + * lisp/faces.el (x-font-regexp, x-font-regexp-head) + (x-font-regexp-slant, x-font-regexp-weight, ) + (set-face-attribute, set-face-documentation, face-x-resources) + (face-font-registry-alternatives, face-font-family-alternatives) + (term-file-prefix): + * lisp/find-file.el (ff-special-constructs): + * lisp/format.el (format-alist): + * lisp/help.el (help-for-help): + * lisp/image-file.el (image-file-name-extensions): + * lisp/info.el: + * lisp/isearch.el (isearch-help-for-help-internal) + (search-whitespace-regexp): + * lisp/jka-cmpr-hook.el (jka-compr-load-suffixes) + (jka-compr-mode-alist-additions) + (jka-compr-compression-info-list, jka-compr-build-file-regexp): + * lisp/language/ethiopic.el (font-ccl-encoder-alist): + * lisp/language/korea-util.el (default-korean-keyboard): + * lisp/language/tibetan.el (tibetan-precomposition-rule-regexp) + (tibetan-precomposed-regexp): + * lisp/locate.el (locate-ls-subdir-switches): + * lisp/lpr.el (lpr-command): + * lisp/mail/rmail.el (rmail-secondary-file-regexp) + (rmail-secondary-file-directory, rmail-highlighted-headers) + (rmail-ignored-headers, rmail-spool-directory, rmail-file-name): + * lisp/mail/sendmail.el (mail-default-directory) + (mail-signature-file, mail-citation-prefix-regexp) + (mail-personal-alias-file, mail-header-separator): + * lisp/menu-bar.el (yank-menu): + * lisp/net/eudc.el (eudc-tools-menu): + * lisp/newcomment.el (comment-padding, comment-end): + * lisp/obsolete/autoload.el (autoload-generate-file-autoloads): + * lisp/progmodes/hideshow.el (hs-special-modes-alist): + * lisp/ps-print.el (ps-page-dimensions-database): + * lisp/rfn-eshadow.el (file-name-shadow-tty-properties): + * lisp/shell.el (shell-dumb-shell-regexp): + * lisp/simple.el (overwrite-mode-binary, overwrite-mode-textual) + (mark-inactive, shell-command-switch) + (next-error-overlay-arrow-position): + * lisp/subr.el (package--builtin-versions, eval-after-load): + * lisp/tab-bar.el ([tab-bar]): + * lisp/term/pgtk-win.el (x-gtk-stock-map): + * lisp/term/x-win.el (x-gtk-stock-map): + * lisp/tool-bar.el ([tool-bar]): + * lisp/widget.el (define-widget): Remove calls to purecopy. + +2024-12-12 Stefan Kangas <stefankangas@gmail.com> + + Don't call purecopy in mouse.el + + * lisp/mouse.el (context-menu-entry, mouse-buffer-menu-mode-groups) + (x-fixed-font-alist): Remove calls to purecopy. + +2024-12-12 Stefan Kangas <stefankangas@gmail.com> + + Don't call purecopy in emacs-lisp/*.el + + * lisp/emacs-lisp/byte-run.el (define-obsolete-face-alias) + (make-obsolete-variable, make-obsolete): + * lisp/emacs-lisp/cl-extra.el (cl-type-definition): + * lisp/emacs-lisp/cl-preloaded.el (cl-assertion-failed): + * lisp/emacs-lisp/cl-print.el (help-byte-code): + * lisp/emacs-lisp/derived.el (define-derived-mode): + * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): + * lisp/emacs-lisp/eldoc.el (eldoc-minor-mode-string): + * lisp/emacs-lisp/gv.el (make-obsolete-generalized-variable): + * lisp/emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression): + * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--parse-file): + * lisp/emacs-lisp/warnings.el (warning-type-format): + Remove calls to purecopy. + +2024-12-12 Stefan Kangas <stefankangas@gmail.com> + + Don't call purecopy in dnd.el + + * lisp/dnd.el (dnd-protocol-alist): + * lisp/pgtk-dnd.el (pgtk-dnd-types-alist, pgtk-dnd-known-types): + * lisp/x-dnd.el (x-dnd-types-alist, x-dnd-known-types): + Remove calls to purecopy. + +2024-12-12 Stefan Kangas <stefankangas@gmail.com> + + Don't call purecopy in vc/*.el + + * lisp/vc/diff.el (diff-command, diff-switches): + * lisp/vc/ediff-hook.el (menu-bar-ediff-misc-menu) + (menu-bar-epatch-menu, menu-bar-ediff-merge-menu) + (menu-bar-ediff-menu): + * lisp/vc/pcvs-defs.el (cvs-global-menu): + * lisp/vc/vc-hooks.el (vc-menu-entry) + (vc-directory-exclusion-list): + * lisp/vc/vc-rcs.el (vc-rcs-master-templates): + * lisp/vc/vc-sccs.el (vc-sccs-master-templates): + * lisp/vc/vc-src.el (vc-src-master-templates): Remove calls to purecopy. + +2024-12-12 Stefan Kangas <stefankangas@gmail.com> + + Don't call purecopy in help-mode.el + + * lisp/help-mode.el (help-function, help-variable, help-type) + (help-face, help-coding-system, help-input-method) + (help-character-set, help-symbol, help-back, help-forward) + (help-info-variable, help-info, help-man) + (help-customization-group, help-url, help-customize-variable) + (help-customize-face, help-function-def, help-function-cmacro) + (help-variable-def, help-face-def, help-package) + (help-package-def, help-theme-def, help-theme-edit) + (help-dir-local-var-def, help-news, help-back-label) + (help-forward-label, help-xref-symbol-regexp) + (help-xref-info-regexp, help-xref-man-regexp) + (help-xref-customization-group-regexp, help-xref-url-regexp): + Remove calls to purecopy. + +2024-12-12 Stefan Kangas <stefankangas@gmail.com> + + Don't call purecopy in textmodes/*.el + + * lisp/textmodes/bibtex.el (bibtex-url, bibtex-search-crossref): + * lisp/textmodes/fill.el (adaptive-fill-regexp) + (adaptive-fill-first-line-regexp): + * lisp/textmodes/ispell.el (ispell-menu-map) + (ispell-skip-region-alist, ispell-tex-skip-alists): + * lisp/textmodes/rst.el (auto-mode-alist): + * lisp/textmodes/texinfo.el (texinfo-open-quote): + * lisp/textmodes/tex-mode.el (tex-directory, tex-run-command) + (latex-run-command, slitex-run-command, tex-start-options) + (tex-start-commands, tex-bibtex-command, tex-dvi-print-command) + (tex-alt-dvi-print-command, tex-dvi-view-command) + (tex-show-queue-command, tex-open-quote, tex-close-quote): + * lisp/textmodes/texinfo.el (texinfo-open-quote) + (texinfo-close-quote): Remove calls to purecopy. + +2024-12-12 Stefan Kangas <stefankangas@gmail.com> + + Don't call purecopy in progmodes/*.el + + * lisp/progmodes/compile.el (compile-command): + * lisp/progmodes/etags.el (tags-compression-info-list): + * lisp/progmodes/grep.el (grep-program, find-program, xargs-program): + * lisp/progmodes/js.el (interpreter-mode-alist): + * lisp/progmodes/python.el (interpreter-mode-alist): + * lisp/progmodes/ruby-mode.el (auto-mode-alist, interpreter-mode-alist): + * lisp/progmodes/vera-mode.el: Remove calls to purecopy. + +2024-12-12 Stefan Kangas <stefankangas@gmail.com> + + Don't call purecopy in bindings.el + + * lisp/bindings.el (mode-line-input-method-map) + (mode-line-coding-system-map, mode-line-mule-info, mode-line-client) + (mode-line-modified, mode-line-remote) + (mode-line-window-dedicated-keymap, propertized-buffer-identification) + (completion-ignored-extensions): Remove calls to purecopy. + +2024-12-12 Stefan Kangas <stefankangas@gmail.com> + + Don't call purecopy in common-win.el + + * lisp/term/common-win.el: Remove calls to purecopy. + +2024-12-12 Stefan Kangas <stefankangas@gmail.com> + + Don't call purecopy in international/*.el + + * lisp/international/fontset.el (font-encoding-alist,) + (x-pixel-size-width-font-regexp, vertical-centering-font-regexp) + (face-font-rescale-alist, standard-fontset-spec): + * lisp/international/latexenc.el (latex-inputenc-coding-alist): + * lisp/international/mule-cmds.el (help-xref-mule-regexp-template) + (set-language-info-internal, set-language-info-alist) + (register-input-method, locale-language-names) + (locale-charset-language-names, locale-preferred-coding-systems) + (define-char-code-property): + * lisp/international/mule-conf.el (file-coding-system-alist): + * lisp/international/mule-diag.el (sort-listed-character-sets): + * lisp/international/mule.el (define-charset, load-with-code-conversion) + (put-charset-property, define-coding-system) + (ctext-non-standard-encodings-alist) + (ctext-non-standard-encodings-regexp, auto-coding-alist) + (auto-coding-regexp-alist): + * lisp/international/quail.el (quail-keyboard-layout-button): + (quail-keyboard-customize-button): Remove calls to purecopy. + +2024-12-12 Stefan Kangas <stefankangas@gmail.com> + + Remove purecopy calls from files.el + + * lisp/files.el (null-device, file-name-invalid-regexp) + (locate-dominating-stop-dir-regexp, auto-mode-alist) + (interpreter-mode-alist, inhibit-local-variables-regexps) + (auto-mode-interpreter-regexp, magic-fallback-mode-alist) + (save-some-buffers-action-alist, list-directory-brief-switches) + (list-directory-verbose-switches, insert-directory-program) + (directory-free-space-program, directory-free-space-args) + (directory-listing-before-filename-regexp) + (file-name-handler-alist): Remove all purecopy calls. + +2024-12-12 Pip Cet <pipcet@protonmail.com> + + Avoid compiler warning in process_mark_stack + + * src/alloc.c (process_mark_stack): Only declare and assign to 'po' if + it's needed. + Problem reported by: Stefan Kangas <stefankangas@gmail.com>. + +2024-12-12 Pip Cet <pipcet@protonmail.com> + + Update pdumper hashes + + * src/pdumper.c (dump_symbol, dump_hash_table): Update hashes. + +2024-12-12 Stefan Kangas <stefankangas@gmail.com> + + Make bindings--define-key obsolete + + It used to be like 'define-key', but was used for making pure copies of + as much of a menu's data as possible. With purespace now gone, it can + be replaced by 'define-key'. + + * lisp/bindings.el (bindings--define-key): Make into obsolete + alias for 'define-key'. Update all callers. + +2024-12-12 Pip Cet <pipcet@protonmail.com> + + Purecopy removal: Lisp code + + * lisp/emacs-lisp/bytecomp.el (byte-compile-cond-jump-table): Don't + request our hash tables be purecopied. Adjust comment. + * lisp/progmodes/elisp-mode.el (elisp--local-variables-completion-table): + Use 'defconst' rather than 'defvar' now the purespace problem is gone + * lisp/rfn-eshadow.el (file-name-shadow-properties): Remove obsolete + comment. + +2024-12-12 Pip Cet <pipcet@protonmail.com> + + Unexec removal: Build system + + * configure.ac (CYGWIN_OBJ): Remove comment. + * src/Makefile.in (PAXCTL, SETFATTR, PAXCTL_dumped, PAXCTL_notdumped): + Remove definitions. + (emacs$(EXEEXT), temacs$(EXEEXT), bootstrap-emacs$(EXEEXT)): + * src/deps.mk: Remove 'unexec'-specific code. + +2024-12-12 Pip Cet <pipcet@protonmail.com> + + Unexec removal: Documentation adjustments + + * doc/lispref/internals.texi (Building Emacs): + * doc/lispref/os.texi (Command-Line Arguments): Remove documentation for + 'unexec'-specific code and arguments. + * etc/PROBLEMS: Remove unexec-specific problems. + +2024-12-12 Pip Cet <pipcet@protonmail.com> + + Don't recognize "bootstrap" option for --temacs + + This option only makes sense for unexec dumping. + + * src/emacs.c (main): Recognize "pbootstrap" only, not "bootstrap". + +2024-12-12 Pip Cet <pipcet@protonmail.com> + + Pure storage removal: Documentation + + * etc/NEWS: Document removal of unexec dumper. + * etc/PROBLEMS: Remove pure space problems. + +2024-12-12 Pip Cet <pipcet@protonmail.com> + + Pure storage removal: Bump nativecomp ABI + + Use "9" as MPS builds use "7" and "8". + + * src/comp.c (ABI_VERSION): Bump. + +2024-12-12 Pip Cet <pipcet@protonmail.com> + + Pure storage removal: Remove documentation + + As pure storage is now gone, it no longer needs to be documented. + + * doc/lispref/elisp.texi (Top): + * doc/lispref/internals.texi (GNU Emacs Internals): Remove "Pure + Storage" section. + (Building Emacs, Garbage Collection, Writing Emacs Primitives): + * doc/lispref/symbols.texi (Standard Properties): Remove references to + pure storage. + * src/alloc.c (Fgarbage_collect): Remove docstring text referring to + pure storage. + +2024-12-12 Pip Cet <pipcet@protonmail.com> + + Pure storage removal: Adjust nativecomp code + + * lisp/emacs-lisp/comp.el (comp-curr-allocation-class, comp-ctxt) + (comp--emit-for-top-level, comp--emit-lambda-for-top-level) + (comp--finalize-relocs): Remove 'd-impure' allocation class. + * src/comp.c (PURE_RELOC_SYM, DATA_RELOC_IMPURE_SYM) + (TEXT_DATA_RELOC_IMPURE_SYM): Remove definitions. + (comp_t): Remove 'pure_ptr', 'check_impure', 'data_relocs_impure', + 'd_impure_idx'. + (helper_link_table): Remove 'pure_write_error'. + (obj_to_reloc): Adjust to removal of 'data_relocs_impure'. + (emit_PURE_P): Remove function. + (declare_imported_data, declare_runtime_imported_funcs) + (emit_ctxt_code): Adjust to removed fields. + (define_setcar_setcdr): Don't call 'CHECK_IMPURE'. + (define_CHECK_IMPURE): Remove function. + (Fcomp__compile_ctxt_to_file0, check_comp_unit_relocs, load_comp_unit) + (Fcomp__register_lambda): Adjust to removed allocation class 'd-impure'. + (syms_of_comp): Don't define 'd-impure'. + * src/comp.h (struct Lisp_Native_Comp_Unit): Drop support for allocation + class 'd-impure'. + * src/lisp.h (allocate_native_comp_unit): + * src/pdumper.c (dump_do_dump_relocation): Adjust to struct change. + +2024-12-12 Pip Cet <pipcet@protonmail.com> + + Pure storage removal: Remove docstring hack + + This should no longer be needed. + + * src/eval.c (Fautoload): Don't try to work around pure storage bug. + +2024-12-12 Pip Cet <pipcet@protonmail.com> + + Pure storage removal: Remove purecopy hash table flag + + * lisp/emacs-lisp/comp.el (comp--jump-table-optimizable): Adjust + comment. + * src/category.c (hash_get_category_set): + * src/emacs-module.c (syms_of_module): + * src/fns.c (make_hash_table): Remove 'purecopy' flag and update + docstring. + (Fmake_hash_table): Ignore ':purecopy' argument. + * src/frame.c (make_frame): + * src/image.c (xpm_make_color_table_h): + * src/lisp.h (struct Lisp_Hash_Table): Drop 'purecopy' flag. + * src/pdumper.c (dump_hash_table): Don't dump 'purecopy' flag. + * src/print.c (print_object): Don't print 'purecopy' flag + + * src/json.c (json_parse_object): + * src/lread.c (readevalloop, read_internal_start): + * src/pgtkterm.c (syms_of_pgtkterm): + * src/profiler.c (export_log): + * src/xfaces.c (syms_of_xfaces): + * src/xterm.c (syms_of_xterm): Adjust calls to 'make_hash_table'. + +2024-12-12 Pip Cet <pipcet@protonmail.com> + + Pure storage removal: Remove support for pinned objects + + * src/alloc.c (symbol_block_pinned): Remove variable. + (init_symbol): Don't initialize 'pinned flag'. + (pinned_objects): Remove variable. + (mark_pinned_objects, mark_pinned_symbols): Remove functions. + (garbage_collect): Don't call 'mark_pinned_objects', + 'mark_pinned_symbols'. + * src/lisp.h (struct Lisp_Symbol): Remove 'pinned' flag. + * src/pdumper.c (dump_symbol): Remove 'pinned' flag from dump. + +2024-12-12 Pip Cet <pipcet@protonmail.com> + + Pure storage removal: Replace calls to removed functions + + * src/alloc.c (string_bytes, pin_string, valid_lisp_object_p) + (process_mark_stack, survives_gc_p, syms_of_alloc): + * src/androidterm.c (android_term_init): Replace call to + 'build_pure_c_string'. + * src/buffer.c (init_buffer_once, syms_of_buffer): + * src/bytecode.c (exec_byte_code): + * src/callint.c (syms_of_callint): + * src/callproc.c (syms_of_callproc): + * src/category.c (Fdefine_category): + * src/coding.c (syms_of_coding): + * src/comp.c (Fcomp__compile_ctxt_to_file0) + (maybe_defer_native_compilation, syms_of_comp): + * src/data.c (Fsetcar, Fsetcdr, Fdefalias, Faset, syms_of_data): + * src/dbusbind.c (syms_of_dbusbind): + * src/doc.c (Fsnarf_documentation): + * src/emacs-module.c (syms_of_module): + * src/eval.c (Finternal__define_uninitialized_variable) + (Fdefconst_1, define_error, syms_of_eval): + * src/fileio.c (syms_of_fileio): + * src/fns.c (Ffillarray, Fclear_string, check_mutable_hash_table): + * src/fontset.c (syms_of_fontset): + * src/frame.c (make_initial_frame): + * src/haikufns.c (syms_of_haikufns): + * src/intervals.c (create_root_interval): + * src/keyboard.c (syms_of_keyboard): + * src/keymap.c (Fmake_sparse_keymap, Fset_keymap_parent) + (store_in_keymap, syms_of_keymap): + * src/lisp.h: + * src/lread.c (Fload, read0, intern_c_string_1, define_symbol) + (Fintern, defsubr, syms_of_lread): + * src/pdumper.c (Fdump_emacs_portable): + * src/pgtkfns.c (syms_of_pgtkfns): + * src/pgtkterm.c (syms_of_pgtkterm): + * src/process.c (syms_of_process): + * src/search.c (syms_of_search): + * src/sqlite.c (syms_of_sqlite): + * src/syntax.c (syms_of_syntax): + * src/treesit.c (syms_of_treesit): + * src/w32fns.c (syms_of_w32fns): + * src/xdisp.c (syms_of_xdisp): + * src/xfaces.c (syms_of_xfaces): + * src/xfns.c (syms_of_xfns): + * src/xftfont.c (syms_of_xftfont): + * src/xterm.c (syms_of_xterm): Remove calls to 'PURE_P', 'CHECK_IMPURE', + 'Fpurecopy', and replace calls to 'build_pure_c_string', 'pure_list', + 'pure_listn', etc., by impure equivalents. + +2024-12-12 Pip Cet <pipcet@protonmail.com> + + Pure storage removal: Main part + + * src/alloc.c (pure, PUREBEG, purebeg, pure_size) + (pure_bytes_used_before_overflow, pure_bytes_used_lisp) + (pure_bytes_used_non_lisp): Remove definitions. + (init_strings): Make empty strings impure. + (cons_listn): Drop 'cons' argument. + (pure_listn): Remove function. + (init_vectors): Allocate zero vector manually to avoid freelist issues. + (pure_alloc, check_pure_size, find_string_data_in_pure) + (make_pure_string, make_pure_c_string, pure_cons, make_pure_float) + (make_pure_bignum, make_pure_vector, purecopy_hash_table): Remove + functions. + (purecopy): Reduce to hash consing our argument. + (init_alloc_once_for_pdumper): Adjust to lack of pure space. + (pure-bytes-used): Adjust docstring to mark as obsolete. + (purify-flag): Keep for hash consing, but adjust docstring. + * src/bytecode.c: + * src/comp.c: Don't include "puresize.h". + * src/conf_post.h (SYSTEM_PURESIZE_EXTRA): Remove definition. + * src/data.c (pure_write_error): Remove function. + * src/deps.mk: Remove puresize.h dependency throughout. + * src/emacs.c: + * src/fns.c: + * src/intervals.c: + * src/keymap.c: Don't include "puresize.h". + * src/lisp.h (struct Lisp_Hash_Table): Adjust comment. + (pure_listn, pure_list, build_pure_c_string): Remove. + * src/w32heap.c (FREEABLE_P): Don't do use 'dumped_data'. + (malloc_before_dump, realloc_before_dump, free_before_dump): Remove + functions. + * src/w32heap.h: Adjust prototype. + * lisp/loadup.el: + * lisp/startup.el: Remove purespace code. + +2024-12-12 Pip Cet <pipcet@protonmail.com> + + Pure storage removal: Delete puresize.h + + * src/puresize.h: Delete file. + +2024-12-12 Pip Cet <pipcet@protonmail.com> + + Unexec removal: Adjust and simplify W32-specific code + + * src/emacs.c (main): Unconditionally call 'init_heap' without an + argument. Adjust comment. + * src/w32heap.c (dumped_data, DUMPED_HEAP_SIZE): Remove definitions. + (heap): Remove variable. + (dumped_data_commit): Remove function. + (init_heap): Drop unexec-specific code. + +2024-12-12 Pip Cet <pipcet@protonmail.com> + + Unexec removal: Remove HYBRID_MALLOC support + + * src/gmalloc.c (gdefault_morecore): Remove HYBRID_MALLOC code. + (allocated_via_gmalloc, hybrid_malloc, hybrid_calloc, hybrid_free_1) + (hybrid_free, hybrid_aligned_alloc, hybrid_realloc): Remove functions. + + * msdos/sed1v2.inp: + * msdos/sedlibmk.inp: + * src/alloc.c (GC_MALLOC_CHECK, USE_ALIGNED_ALLOC) + (refill_memory_reserve, aligned_alloc): + * src/emacs.c (main): + * src/lastfile.c (my_edata): + * src/lisp.h: + * src/ralloc.c: + * src/sysdep.c (get_current_dir_name_or_unreachable): + * src/xdisp.c (decode_mode_spec): Remove HYBRID_MALLOC conditions. + + * configure.ac (hybrid_malloc, HYBRID_MALLOC): Remove variables and + dependent code. + * src/conf_post.h (hybrid_malloc, hybrid_calloc, hybrid_free) + (hybrid_aligned_alloc, hybrid_realloc): Remove conditional prototypes. + * src/Makefile.in (HYBRID_MALLOC): Remove variable. + (base_obj): Remove sheap.o + (LIBEGNU_ARCHIVE): + * lib/Makefile.in (libgnu_a_OBJECTS): Remove libegnu.a support. + +2024-12-12 Pip Cet <pipcet@protonmail.com> + + Unexec removal: Main part + + * configure.ac: Remove unexec-specific parts. + (EMACS_CONFIG_FEATURES): Always report that we do not have the UNEXEC + feature. + (AC_ECHO): No longer display a line about the unexec feature. + * lisp/loadup.el: + * lisp/startup.el: Remove unexec-specific code. + * src/Makefile.in (base_obj): Drop 'UNEXEC_OBJ'. + * src/alloc.c (staticvec): Never initialize this variable. + (BLOCK_ALIGN): Always allow large blocks. + (mmap_lisp_allowed_p): Remove unexec-specific code. + * src/buffer.c (init_buffer): + * src/conf_post.h (ADDRESS_SANITIZER): + * src/emacs.c (load_pdump, main): Remove unexec-specific code. + (Fdump_emacs): Remove function. + (syms_of_emacs): Remove 'Fdump_emacs'. + * src/lastfile.c: Remove unexec-specific code. + * src/lisp.h (gflags): Remove unexec-specific flags. + (will_dump_p, will_bootstrap_p, will_dump_with_unexec_p) + (dumped_with_unexec_p, definitely_will_not_unexec_p): Remove or adjust + predicates. + (SUBR_SECTION_ATTRIBUTE): Remove unexec-specific definition. + * src/pdumper.c (Fdump_emacs_portable): Remove unexec-specific warning. + * src/process.c (init_process_emacs): Remove !unexec condition + * src/sysdep.c (maybe_disable_address_randomization): Adjust comment. + (init_signals): + * src/timefns.c (init_timefns): Remove unexec-specific code. + * src/w32heap.c (report_temacs_memory_usage): Remove function. + * src/w32heap.h: Adjust comment. + * src/w32image.c (globals_of_w32image): Remove unexec-specific code. + +2024-12-12 Pip Cet <pipcet@protonmail.com> + + Unexec removal: Remove obsolete files + + * src/sheap.c, src/sheap.h, src/unexec.h, src/unexaix.c, src/unexcoff.c: + * src/unexcw.c, src/unexelf.c, src/unexhp9k800.c, src/unexmacosx.c: + * src/unexsol.c, src/unexw32.c: Remove files. + +2024-12-12 Jared Finder <jared@finder.org> + + Enable xterm-mouse-mode by default in xterm + + * lisp/xt-mouse.el (xterm-mouse-mode): Change default value of + xterm-mouse-mode to t. + * lisp/term/xterm.el (xterm--init): Enable xterm-mouse-mode if + the default value is still set. + * etc/NEWS: Document new behavior. + +2024-12-12 Diancheng Wang <diancheng_wang@163.com> + + Turn off current source line indicator when gdb buffer is killed + + * lisp/progmodes/gud.el (gud-hide-current-line-indicator): + Turn off current-line indicator. (Bug#74642) + +2024-12-12 Daniel Mendler <mail@daniel-mendler.de> + + eww: Use browse-url-with-browser-kind in eww-browse-with-external-browser + + Guarantee that an external browser is used by EWW if + `browse-url-secondary-browser-function' is set to + `eww-browse-url'. + * lisp/net/eww.el (eww-browse-with-external-browser): Use + `browse-url-secondary-browser-function' only if it is an + external browser, otherwise fall back to + `browse-url-with-browser-kind'. + (eww-follow-link): Use `eww-browse-with-external-browser' if the + EXTERNAL prefix argument is non-nil. Improve docstring. + * lisp/net/browse-url.el (browse-url-secondary-browser-function): + Update docstring. (Bug#74730) + +2024-12-12 Visuwesh <visuweshm@gmail.com> + + Revert Dired buffer when clicking on basename of directory + + * lisp/dired.el (dired--make-directory-clickable): Make clicking + on basename of the directory revert the Dired buffer. + * etc/NEWS: Announce the change. (Bug#74700) + +2024-12-12 Stefan Kangas <stefankangas@gmail.com> + + Add nntps and snews to browse-url heuristic + + * lisp/net/browse-url.el (browse-url-button-regexp): Support "nntps" and + "snews" schemes. + +2024-12-12 Stefan Kangas <stefankangas@gmail.com> + + Shorten browse-url-default-scheme docstring + + * lisp/net/browse-url.el (browse-url-default-scheme): Shorten + docstring by removing self-evident information. Reflow. + +2024-12-12 Gerd Möllmann <gerd@gnu.org> + + Signal errors for unimplemented features + + * src/frame.c (make_terminal_frame): Error for minibuffer-only frames. + * src/term.c (Ftty_frame_restack): Signal error. + +2024-12-11 Stefan Monnier <monnier@iro.umontreal.ca> + + minibuffer.el: Avoid accumulating adjustments in the metadata (bug#74718) + + * lisp/minibuffer.el (completion--nth-completion): Remember the + adjustments applied, in an ad-hoc `completion--adjusted-metadata` entry. + +2024-12-11 Pengji Zhang <me@pengjiz.com> + + Rework history Isearch for Eshell + + This is to make history Isearch for Eshell similar to that of + 'comint-mode', by hooking into Isearch properly instead of + defining new commands to emulate Isearch (bug#74287). + + * lisp/eshell/em-hist.el (eshell-history-isearch): New user + option. + (eshell-goto-history, eshell--isearch-setup) + (eshell-history-isearch-end, eshell-history-isearch-search) + (eshell-history-isearch-message, eshell-history-isearch-wrap) + (eshell-history-isearch-push-state): New functions. + (eshell-isearch-backward-regexp, eshell-isearch-forward-regexp): + New commands. + (eshell--history-isearch-message-overlay) + (eshell--stored-incomplete-input, eshell--force-history-isearch): + New internal variables. + (eshell-hist-mode-map): Bind 'M-r' to + 'eshell-isearch-backward-regexp' and free 'M-s' binding for + normal in-buffer search commands. + (eshell-isearch-backward, eshell-isearch-forward): Use the new + way to start searching. + (eshell-hist-initialize): Use the new Isearch setup function. + (eshell-previous-matching-input): Use 'eshell-goto-history'. + Also inhibit messages when searching. + (eshell-isearch-map, eshell-isearch-repeat-backward) + (eshell-isearch-abort, eshell-isearch-delete-char) + (eshell-isearch-return, eshell-isearch-cancel) + (eshell-isearch-repeat-forward, eshell-test-imatch) + (eshell-return-to-prompt, eshell-prepare-for-search): Remove. + These are for the old history Isearch implementation. + + * doc/misc/eshell.texi (History): Document changes. + + * etc/NEWS: Annouce changes. + +2024-12-11 Michael Albinus <michael.albinus@gmx.de> + + * test/infra/Dockerfile.emba (emacs-tree-sitter): Add jsdoc grammar. + +2024-12-11 Robert Pluim <rpluim@gmail.com> + + Fix browse-url-kde :version tags + + * lisp/net/browse-url.el (browse-url-kde-program, + browse-url-kde-args): Update :version to 31.1. (Bug#74775) + +2024-12-11 Pengji Zhang <me@pengjiz.com> + + Do not call custom-reevaluate-setting in comint.el (bug#74287) + + * lisp/comint.el (comint--force-history-isearch): New internal variable. + (comint-history-isearch-backward, comint-history-isearch-backward-regexp): + Set comint--force-history-isearch to t. + (comint-history-isearch-setup): Check comint--force-history-isearch. + (comint-history-isearch-end): Set comint--force-history-isearch back to nil + instead of calling custom-reevaluate-setting. + +2024-12-11 Yuan Fu <casouri@gmail.com> + + Make c-ts-mode tests pass even for older tree-sitter libraries + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--for-loop-indent-rule): + Use child index instead of field name. + +2024-12-11 Björn Bidar <bjorn.bidar@thaodan.de> + + Update browse-url-kde variables + + * lisp/net/browse-url.el (browse-url-kde-program, browse-url-kde-args): + Update defaults to more modern alternative to kfmclient. Kfmclient is + only installed when Konqueror is installed, which isn't the default + file-manager since KDE4. In contrast, it is more likely that kde-open + is installed as it is required by Plasma, and it exists since + KDE4. (Bug#74775) + +2024-12-10 Daniel Mendler <mail@daniel-mendler.de> + + Update project-recompile's docstring + + * lisp/progmodes/project.el (project-recompile): + Update the docstring accordingly (bug#74631). + +2024-12-10 Paul Eggert <eggert@cs.ucla.edu> + + Use builtin-expect directly + + * admin/merge-gnulib (GNULIB_MODULES): Add builtin-expect, + since src/lisp.h now uses __builtin_expect directly, + which we should no longer rely on it being pulled in as + a dependency of some other Gnulib module that we use. + +2024-12-10 Stephen Gildea <stepheng+emacs@gildea.com> + + time-stamp: properly abbreviate instead of truncating names + + * lisp/time-stamp.el (time-stamp-string-preprocess): Stop + truncating month and weekday name strings; it didn't + internationalize well. Some historical conversions, previously + accepted quietly, now warn. + (time-stamp-format): Recommend the simpler formats implemented in 2019. + * test/lisp/time-stamp-tests.el: Update tests and comments to match. + Revert commit 83e4559664 (2022-07-01), which was working around the + former confusion between truncation and abbreviation. + +2024-12-10 Robert Pluim <rpluim@gmail.com> + + Move ns-specific event setup to term/ns-win.el (Bug#74619) + + * lisp/term/ns-win.el (ns-setup-special-keys): New function, + contains event setup code previously in term/common-win.el. + Call it at top-level. + * lisp/term/common-win.el (x-setup-function-keys): Call + 'ns-setup-special-keys'. + +2024-12-10 Daniel Mendler <mail@daniel-mendler.de> + + project-recompile: Autoload and run in project root + + * lisp/progmodes/project.el (project-recompile): Autoload and + use project root as `default-directory' (bug#74631). + +2024-12-10 Dmitry Gutov <dmitry@gutov.dev> + + apropos-library: Don't list generic functions as features + + * lisp/apropos.el (apropos-library): + Remove the separate 'cl-defmethod' case (bug#74727). + +2024-12-09 Gerd Möllmann <gerd@gnu.org> + + Support menu separator types in tty menus (bug#74740) + + * src/xdisp.c (display_tty_menu_item): Display "--" for all menu + separator types. + +2024-12-09 Pip Cet <pipcet@protonmail.com> + + Fix occasional crash in lwlib due to uninitialized data + + Crash observed on cfarm's cfarm210 machine, which is a Solaris 10 zone + on an M3000 server. + + * lwlib/xlwmenu.c (XlwMenuInitialize): Initialize menu.font. + +2024-12-09 Jim Porter <jporterbugs@gmail.com> + + Fix usage reporting for Eshell commands + + * lisp/eshell/esh-cmd.el (eshell-exec-lisp): Call + 'elisp-get-fnsym-args-string'; the old function was renamed to this. + +2024-12-09 Jim Porter <jporterbugs@gmail.com> + + Return non-zero exit status when Eshell's "which" fails to find a command + + * lisp/eshell/esh-cmd.el (eshell/which): Set exit status to 1 if we + couldn't find any of the commands (bug#74739). + +2024-12-09 Stefan Kangas <stefankangas@gmail.com> + + Make setting tex-dvi-view-command to an sexp obsolete + + This is more in line with how we generally handle user options for + commands to call. Later, we can get rid of the 'eval' call. + + * lisp/textmodes/tex-mode.el (tex-view): Warn if tex-dvi-view-command is + set to an sexp instead of a string; say that this use is obsolete. + (tex-dvi-view-command): Change the default value to a string. Update + docstring to reflect the above obsoletion. + +2024-12-08 Michael Albinus <michael.albinus@gmx.de> + + Fix calling processes inside ffap + + * lisp/ffap.el (ffap--url-file-handler): Handle also + `unhandled-file-name-directory'. (Bug#74208) + +2024-12-08 Gerd Möllmann <gerd@gnu.org> + + * lisp/tty-tip.el (tty-tip--create-frame): Use tooltip-hide-delay + +2024-12-08 Yuan Fu <casouri@gmail.com> + + Allow treesit--font-lock-level-setter to be an alist + + * lisp/treesit.el (treesit-font-lock-level): Allow the + value to be an alist mapping major modes to font lock levels. + (treesit--font-lock-level-setter): Rewrite. + (treesit--compute-font-lock-level): New function. + (treesit-font-lock-recompute-features): Use new function. + + * doc/lispref/modes.texi (Parser-based Font Lock): Minor fix. + +2024-12-08 Gerd Möllmann <gerd@gnu.org> + + Prevent too early hiding of tty tips + + * lisp/tty-tip.el (tty-tip--show-timer): Renamed from + tty-tip--timeout-id. + (tty-tip--hide-timer): New variable. + (tty-tip--delete-frame): Cancel hide timer if set. + (tty-tip--create-frame): Use run-with-timer instead of run-at-time + for consistency. + +2024-12-07 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 4f2a21cc2a3 Don't restrict 'lua-ts-send-file' to 'lua-ts-mode' + +2024-12-07 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 3cf177442cc ; * lisp/help-at-pt.el (display-local-help): Fix last cha... + 02c53b9aab0 ; * lisp/help-at-pt.el (display-local-help): Doc fix. + 130c2a13dc7 ; * doc/emacs/building.texi (Compilation Mode): Fix last ... + df7f02a7954 Add tags to 'compilation-transform-file-match-alist' cust... + 7c50e4cc8cc Improve 'compilation-transform-file-match-alist' document... + a73d08bb67a Improve 'compilation-hidden-output' docstring + d50293b0f10 ; Improve documentation of 'epa-mail-verify' + +2024-12-07 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 7b8d12e95de Fix the latest dabbrev-expand test fix + +2024-12-07 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + f65de1019dc Fix the version of librsvg API change + 43c4a06ffcc ; Fix grammar in Emacs user manual + 6bca138d60e Fix latest test for dabbrev-expand + +2024-12-07 Michael Albinus <michael.albinus@gmx.de> + + * test/lisp/wdired-tests.el (wdired-test-bug34915): Fix for *BSD. + + (Bug#74721) + +2024-12-07 Vincenzo Pupillo <vincenzo.pupillo@unimi.it> + + Remove unnecessary function call from 'php-ts-mode' + + * lisp/progmodes/php-ts-mode.el (php-ts-mode): Remove + unnecessary function call 'treesit-font-lock-recompute-features'. + (Bug#74688) + +2024-12-07 Daniel Mendler <mail@daniel-mendler.de> + + progmodes/js: Use 'completing-read' instead of 'ido-completing-read' + + * lisp/progmodes/js.el (js--read-symbol): Don't use Ido. + (Bug#74615) + +2024-12-07 Pengji Zhang <me@pengjiz.com> + + Allow lambdas for 'flymake-cc-command' + + * lisp/progmodes/flymake-cc.el (flymake-cc-command): Use + customization type 'function' instead of 'symbol' to allow + other callable objects in addition to named functions, and + update the doc string accordingly. + (flymake-cc): Use 'functionp' to check if 'flymake-cc-command' + is callable. (Bug#74378) + +2024-12-07 Eli Zaretskii <eliz@gnu.org> + + Update info-lookup's support for 'latex-mode' + + * lisp/info-look.el (latex-mode): Update URLs of LaTeX manuals and + the corresponding names of the index nodes. + +2024-12-06 Michael Albinus <michael.albinus@gmx.de> + + Better handling of "%" in Tramp user or host names + + * lisp/net/tramp.el (tramp-format-spec): New defun. + (tramp-dissect-file-name, tramp-compute-multi-hops) + (tramp-expand-args): + * lisp/net/tramp-cmds.el (tramp-default-rename-file): Use it. + +2024-12-05 Juri Linkov <juri@linkov.net> + + * lisp/emacs-lisp/lisp-mode.el (lisp-fdefs): Fix font-lock (bug#74307). + + Move '(not "\\")' inside the group to not exclude the last character + for "\\<>" and similar constructs. + +2024-12-05 Yuan Fu <casouri@gmail.com> + + Validate font-lock rules when setting up tree-sitter major mode + + When tree-sitter grammar make breaking changes, major modes + breaks completely: no highlighting is shown. This new function + will run in treesit-major-mode-setup, validate each + font-lock features, and disable the ones that are not compatible + with the new grammar, so that the rest of the features still + work. It also displays a warning explaining the situation, + which looks like this: + + Warning (treesit-font-lock-rules-mismatch): Emacs cannot + compile every font-lock rules because a mismatch between the + grammar and the rules. This is most likely due to a + mismatch between the font-lock rules defined by the major + mode and the tree-sitter grammar. + + This error can be fixed by either downgrading the + grammar (tree-sitter-c) on your system, or upgrading the + major mode package. The following are the temporarily + disabled features: + + - `preprocessor' for c. + + * lisp/treesit.el (treesit-validate-font-lock-rules): New function. + (treesit-major-mode-setup): Validate font-lock rules. + +2024-12-05 Yuan Fu <casouri@gmail.com> + + Make treesit-query-compile compile compiled-query eagerly + + * src/treesit.c (treesit_ensure_query_compiled_signal): Extrat + out into a function. + (Ftreesit_query_compile): If EAGER is non-nil and QUERY is a + lazily compiled query, compile it eagerily. + +2024-12-05 Yuan Fu <casouri@gmail.com> + + Make tree-sitter-explorer support selecting local parser + + Now treesit-explore-mode will prompt the user to select a parser + to explore, rather than a language. It'll also include the + local parsers at point for selection. + + * lisp/treesit.el (treesit--explorer-language): Change to + treesit--explorer-parser. + (treesit--explorer--nodes-to-highlight): + (treesit--explorer-refresh): Change to use parser. + (treesit--explorer-generate-parser-alist): New function. + (treesit-explorer-switch-parser): New command. + (treesit-explore-mode): Use switch-parser to setup. + * doc/lispref/parsing.texi (Language Grammar): Mention + treesit-explorer-switch-parser. + +2024-12-04 Juri Linkov <juri@linkov.net> + + * lisp/tab-line.el (tab-line-tabs-fixed-window-buffers): More optimizations. + + Use :size arg of 'make-hash-table' as a hint how many buffers + the table will have. Add ':in-place t' to 'sort'. + +2024-12-04 Juri Linkov <juri@linkov.net> + + Remove obsolete 'display-comint-buffer-action' (bug#74361) + + * lisp/window.el (display-comint-buffer-action): + (display-tex-shell-buffer-action): + Remove obsolete defcustoms. + + * lisp/cmuscheme.el (run-scheme, switch-to-scheme): + * lisp/shell.el (shell): + * lisp/eshell/eshell.el (eshell): + * lisp/progmodes/inf-lisp.el (inferior-lisp): + * lisp/progmodes/project.el (project-shell, project-eshell): + * lisp/progmodes/sh-script.el (sh-show-shell): + Replace 'display-comint-buffer-action' with a list of + 'display-buffer--same-window-action' and '(category . comint)'. + + * lisp/org/ol-eshell.el (org-eshell-open): Add '(category . comint)'. + + * lisp/textmodes/tex-mode.el (tex-display-shell) + (tex-recenter-output-buffer): + Replace 'display-tex-shell-buffer-action' with a list of + 'display-buffer-in-previous-window' and '(category . tex-shell)'. + +2024-12-03 Juri Linkov <juri@linkov.net> + + Add new keyword :continue-only to defvar-keymap for repeat-mode (bug#74140) + + * doc/lispref/keymaps.texi (Creating Keymaps): Add :continue-only + to :repeat part of defvar-keymap. + + * lisp/keymap.el (defvar-keymap): Add support for new :repeat + keyword :continue-only. + + * lisp/repeat.el (repeat-post-hook): The property 'repeat-continue-only' + is handled as a list of repeat-maps. + + * test/lisp/repeat-tests.el (repeat-tests-repeat-map): Use new + :repeat keyword :continue-only. + +2024-12-03 Robert Pluim <rpluim@gmail.com> + + Improve docstrings of functions for moving to message headers + + * lisp/gnus/message.el (message-goto-to, message-goto-from, + message-goto-subject, message-goto-cc, message-goto-bcc, + message-goto-fcc, message-goto-reply-to, + message-goto-newsgroups, message-goto-distribution, + message-goto-followup-to, message-goto-mail-followup-to, + message-goto-keywords, message-goto-summary): Mention that these + will insert an empty header if the header is not found. + (message-position-on-field): Explain that this inserts an empty + header if the header is missing, and that insertion is done + after the headers mentioned in AFTERS. + +2024-12-03 Tomas Volf <~@wolfsden.cz> (tiny change) + + Actually remove the Mail-Followup-To header iff empty + + * lisp/gnus/message.el (message-send-mail): Pass a fixed string + instead of regexp to 'message-remove-header' (Bug#74658). + +2024-12-03 Andrea Corallo <acorallo@gnu.org> + + * lisp/progmodes/c-ts-mode.el (treesit-node-match-p): Declare. + +2024-12-03 Dmitry Gutov <dmitry@gutov.dev> + + project-try-vc--search: Fix inside recursive submodule setup + + * lisp/progmodes/project.el (project-try-vc--search): Loop when + looking for submodule parent repository (bug#74614). + +2024-12-02 Andrea Corallo <acorallo@gnu.org> + + * Declare few treesit-* function to clean-up wanrnings + + * lisp/progmodes/c-ts-common.el (treesit-parser-language) + (treesit-node-match-p, treesit-node-child, treesit-node-eq) + (treesit-parser-root-node, treesit-node-parser): Declare. + +2024-12-02 Michael Albinus <michael.albinus@gmx.de> + + Fix password prompt in comint + + * lisp/comint.el (comint-password-prompt-regexp): Don't use "'s" + as keyword. Add default OpenSSH format. Adapt :version. + (comint-watch-for-password-prompt): Adapt prompt composition. + (Bug#74626) + +2024-12-02 Manuel Giraud <manuel@ledu-giraud.fr> + + Do not use libjpeg quantization (bug#74476) + + * src/image.c (jpeg_load_body): Remove libjpeg quantization. + +2024-12-02 Yuan Fu <casouri@gmail.com> + + Standardize and promote c-ts-mode's custom matcher and anchor + + Specifically, standalone-parent and prev-sibling. The c-ts-mode + custom version skips labels and proproc directives. + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--standalone-parent-skip-preproc): Rename to + c-ts-mode--standalone-parent, and make it skip labels too. + (c-ts-mode--preproc-indent-rules): Rename standalone-parent and + prev-sibling. + (c-ts-mode--label-indent-rules): Use custom standalone-parent + and prev-sibling. + +2024-12-02 Yuan Fu <casouri@gmail.com> + + Remove unused functions in c-ts-mode + + Remove functions that became unused due to the previous change. + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--standalone-grandparent): + (c-ts-mode--else-heuristic): + (c-ts-mode--first-sibling): + (c-ts-mode--parent-is-not-top-compound): + (c-ts-mode--indent-styles): + (c-ts-mode--top-level-label-matcher): Remove functions. + (c-ts-mode--simple-indent-rules): Move two label rules into + c-ts-mode--label-indent-rules. + (c-ts-mode--label-indent-rules): Add rules + +2024-12-02 Yuan Fu <casouri@gmail.com> + + Add more c-ts-mode indent tests + + * test/lisp/progmodes/c-ts-mode-resources/indent-bsd.erts: Fix + label test. + * test/lisp/progmodes/c-ts-mode-resources/indent.erts: Add some + test, make other tests harder. + +2024-12-02 Yuan Fu <casouri@gmail.com> + + Use new baseline indent rule in c-ts-mode + + Rework the indent rules in c-ts-mode using + c-ts-common-baseline-indent-rule. Also reworked internal + functions for setting indent styles to make it simpler and (more + importantly) more readable. Now there's a single function, + c-ts-mode--simple-indent-rules, that returns a value that can go + straight to treesit-simple-indent-rules. + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--indent-style-setter): Simplify. + (c-ts-mode--get-indent-style): Remove function. + (c-ts-mode--prompt-for-style): Use a hard-coded list of styles. + This is a tiny downgrade from the computed lists but is + acceptable. + (c-ts-mode-set-style): Use c-ts-mode--simple-indent-rules. + (c-ts-mode--standalone-grandparent): Docstring change. + (c-ts-mode--for-loop-indent-rule): New function. + (c-ts-mode--preproc-indent-rules): New variable. Copied from + old indent rules and added some new rule. + (c-ts-mode--macro-heuristic-rules): + (c-ts-mode--simple-indent-rules): + (c-ts-mode--parenthesized-expression-indent-rule): + (c-ts-mode--label-indent-rules): New functions. + (c-ts-mode): + (c++-ts-mode): Use c-ts-mode--simple-indent-rules. + +2024-12-02 Yuan Fu <casouri@gmail.com> + + Add baseline tree-sitter indent rule for C-like languages + + I found a really good baseline indent rule that handles a wide + range of situations very well. Now major modes can just start + with this rule and add exceptions on top. + + This is worth mentioning in the manual, but that'll be a large + change, and doesn't have to be included in this commit. + + * lisp/progmodes/c-ts-common.el: + + (c-ts-common-list-indent-style): New variable. + (c-ts-common--standalone-parent): + (c-ts-common--prev-standalone-sibling): + (c-ts-common-parent-ignore-preproc): + (c-ts-common-baseline-indent-rule): New function. + + * lisp/treesit.el (treesit--indent-prev-line-node): New function. + (treesit-simple-indent-presets): Add new preset. + +2024-12-02 Yuan Fu <casouri@gmail.com> + + Add treesit-explore command + + * lisp/treesit.el (treesit-explore): New function. + * doc/lispref/parsing.texi (Language Grammar): Advertize this + command instead of the minor mode. + +2024-12-02 Yuan Fu <casouri@gmail.com> + + Allow treesit-simple-indent's rule to be a single function + + * lisp/treesit.el (treesit-simple-indent-rules): Allow the rule + to be a single function. Also replace cl-loop with dolist plus + catch-throw. + (treesit--indent-rules-optimize): Handle the case when a rule is + a function. + * doc/lispref/modes.texi (Parser-based Indentation): Update + manuel. + +2024-12-02 Yuan Fu <casouri@gmail.com> + + Refactor treesit--indent-1 + + * lisp/treesit.el (treesit--indent-largest-node-at): New + function. + (treesit--indent-1): Extract code out into the new function. + +2024-12-02 Jørgen Kvalsvik <j@lambda.is> + + Improve c-ts-mode compound indents (bug#74507) + + Properly indent the body of compound expressions, even when then + compound expression is not at the beginning of line and the + parent is not an if/for/while/etc., and matches the behavior of + c-mode. + + This fixes a problem that is common with macros and in testing + frameworks. For example, you expect this to indent: + + TEST_CASE(1) { + assert (...); + } + + If the compound statement is the function body itself, don't + apply this new rule and instead guide by the parent and first + sibling. + + I'm sure there are subtle interactions that aren't handled + properly by checking for "function_definition" rather than + something more general, but it does fix the test case and the + check can be improved as more cases are found. + + * lisp/progmodes/c-ts-mode.el: + (c-ts-mode--parent-is-not-top-compound): New function. + (c-ts-mode--indent-styles): Use it. + * test/lisp/progmodes/c-ts-mode-resources/indent.erts: New + compound statement test. + +2024-12-02 Yuan Fu <casouri@gmail.com> + + Merge from emacs-30 + + cf4f1387a65 ; Update tree-sitter manual + 3c7687c1dd1 Allow passing nil to treesit-node-match-p (bug#74612) + 748b19e56e8 Update to version 2.58 of librsvg API (bug#74606) + 4c67f636c08 Fix decoding of non-ASCII email attachments + bd8a6f70fb9 Prevent "Selecting deleted buffer" error with dabbrev-expand + 0a753603a53 ; (dictionary-search-interface): Fix bug#74511. + +2024-12-01 Stefan Monnier <monnier@iro.umontreal.ca> + + (asm-mode): Support file-local `asm-comment-char` (bug#74447) + + * lisp/progmodes/asm-mode.el (asm-mode): Move comment settings + to `:after-hook`. + +2024-12-01 Alan Mackenzie <acm@muc.de> + + CC Mode manual: Better document lines starting with a label + + * doc/misc/cc-mode.texi (Syntactic Analysis): Document analysis + of lines starting with labels, and their non-use as anchor + positions. + +2024-12-01 F. Jason Park <jp@neverwas.me> + + Reserve erc-normalize-port for equality comparisons + + * etc/ERC-NEWS: Add entry explaining changes to entry point 'erc-tls' + and library functions `erc-normalize-port' and `erc-compute-port'. + * lisp/erc/erc.el (erc-normalize-port): Map "ircu" to 6665 instead of + 6667, and add related IANA service mappings. Return 0 for unknown + nonempty strings. + (erc-open): Pass `erc-session-port' through `erc-string-to-port' before + handing it to `erc-server-connect'. This prevents the network machinery + from ever seeing a numeric string, like "6667". + (erc-select-read-args): Since `erc-compute-port' no longer relies on + `erc-normalize-port', ensure its input is a number. Use + `erc-port-equal' instead of `eql'. + (erc-tls): Respect a configured non-nil `erc-port' option when the user + does not provide a :port keyword argument from Lisp code. + (erc-determine-parameters): Use `erc-compute-port' for initializing + `erc-session-port'. + (erc-compute-port): Don't pass the result through `erc-normalize-port', + which can convert it to an unintuitive form. + (erc--url-default-connect-function): Use `erc-compute-port' instead of + `erc-normalize-port'. + (erc-handle-irc-url): Use `erc-port-equal' for comparison. + * test/lisp/erc/erc-scenarios-auth-source.el + (erc-scenarios-common--auth-source): Allow tests to convey the automatic + port number to `erc-open' via `erc-port'. + (erc-scenarios-base-auth-source-server--dialed): Use `erc-port' option + instead of passing a :port parameter to entry-point command. + * test/lisp/erc/erc-tests.el (erc-normalize-port): New test. + (Bug#74516) + +2024-12-01 Trevor Arjeski <tmarjeski@gmail.com> (tiny change) + + Allow querying auth-source with port as string in ERC + + * lisp/erc/erc.el (erc--auth-source-determine-params-defaults): Allow + arbitrary strings for `ers-session-port'. Previously, if a port/service + was any string other than "irc", the auth-source query would fail for a + seemingly unknown reason. Restricting the value to "irc" is unnecessary + since "irc" is already added to the list of ports, and + `make-network-process' already consults /etc/services for well-known + service names, like "ircs-u", etc. This change allows a user to (setopt + erc-port "1234"), intentionally or accidentally, while still being able + to use .authinfo for password management. (Bug#74516) + +2024-12-01 F. Jason Park <jp@neverwas.me> + + Clear buffer-undo-list after sending input in ERC + + * lisp/erc/erc.el (erc-insert-line): Assume `erc-insert-marker' points + somewhere. + (erc-send-current-line): Set `buffer-undo-list' to nil because it should + only record editing changes in the prompt area, which has just been + cleared. ERC did this via `erc-display-prompt' prior to 5.6, but it now + leaves the prompt alone by default. + * test/lisp/erc/erc-tests.el (erc-update-undo-list): New test. + (Bug#74518) + +2024-12-01 Alan Mackenzie <acm@muc.de> + + CC Mode: Optimize scanning of heavily nested brace blocks + + This should have fixed bug#74357. + + * lisp/progmodes/cc-engine.el (c-laomib-cache): Change the + size of this cache from 4 to 50. + (c-laomib-get-cache, c-laomib-put-cache): Use assq, memq, and + ntake or butlast, rather than looping through the cache with a + cdr loop. No longer attempt to preserve the "largest" cache + element. + (c-looking-at-or-maybe-in-bracelist): Extend the range covered + by a c-laomib-cache element, rather than adding a second + element to the cache. + (c-no-bracelist-cache): A new cache for the use of + c-inside-bracelist-p, based on the c-parse-state cache. + (c-inside-bracelist-p): Use the new cache to call + c-looking-at-or-maybe-in-bracelist less often. + + * lisp/progmodes/cc-mode.el (c-basic-common-init): Initialize + c-no-bracelist-cache. + (c-before-change): Invalidate c-no-bracelist-cache. + +2024-12-01 Manuel Giraud <manuel@ledu-giraud.fr> + + Fix last change in tutorial.el + + * lisp/tutorial.el (tutorial--point-after-chkeys): Make it + permanent-local. (Bug#74636) + +2024-11-30 Manuel Giraud <manuel@ledu-giraud.fr> + + Fix exiting Emacs after saving a tutorial + + * lisp/tutorial.el (tutorial--lang) + (tutorial--point-before-chkeys): Add both variables as + permanent-local, so that saving the tutorial to some file + doesn't kill these buffer-local variables. Otherwise, trying to + exit Emacs after saving the tutorial will signal an error, + because 'tutorial--lang' is nil. (Bug#74364) + +2024-11-30 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + afb34a3b239 ; Improve documentation of ':box' face attribute + b38eb6da1d1 Fix docstring of c-ts-mode-indent-style + 9fdb764898d Support PHP 8.4 and more reliable indentation (bug#74525) + bda0bce9e43 Don't inadvertently reset frame scroll bar sizes (Bug#74435) + 3f99cdaf26d Mention special variables in lexical binding documentation + 0ef0f18f163 Allow to go back to using 'ruby-mode' after loading 'ruby... + fc17e8727d4 Delete obsolete section in admin/notes/repo + 3e396b2c5bb Improve documentation for 'while-let' + 50b91ed458d Remove mention of treesit-defun-prefer-top-level (bug#74474) + 03ae07291e8 Fix NS non-native fullscreen on initial frame load (bug#5... + 8261d7224d3 Fix user options for listing and marking diary files + + # Conflicts: + # lisp/progmodes/c-ts-mode.el + +2024-11-30 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + d9531793206 Make 'jsonrpc-default-request-timeout' a defcustom + 5339c6f69ee ; Improve example of display-buffer-alist category in ELi... + e14007ad631 Update MS-Windows build instructions + + # Conflicts: + # etc/NEWS + +2024-11-30 altermo <107814000+altermo@users.noreply.github.com> (tiny change) + + Add more error-checking to Fmap_charset_chars + + * src/charset.c (Fmap_charset_chars): Signal an error if FROM_CODE + or TO_CODE is non-nil and not a fixnum. (Bug#74555) + +2024-11-30 James Cherti <contact@jamescherti.com> (tiny change) + + Support hyphen in Bash function names + + * lisp/progmodes/sh-script.el (sh-imenu-generic-expression): Add + hyphen to function-name regexp. + +2024-11-29 Daniel Mendler <mail@daniel-mendler.de> + + New function `completion-list-candidate-at-point' + + Replace `completions--start-of-candidate-at' with the new + function `completion-list-candidate-at-point' which returns the + candidate string and the candidate bounds as a list in the + format (STR BEG END). + + * lisp/simple.el (completions--start-of-candidate-at): Remove. + (completion-list-candidate-at-point): New function. + (choose-completion): Use it. + * lisp/minibuffer.el (minibuffer-completion-help): Use it. + +2024-11-29 Juri Linkov <juri@linkov.net> + + * lisp/progmodes/c-ts-mode.el: Improve logic of outlines (bug#74448). + + (c-ts-mode--outline-predicate): Instead of checking only for + function_declarator nodes at the beginning of line (like in + GNU coding style) handle other coding styles that start the + function line with either storage class (e.g. static) or type. + Suggested by Filippo Argiolas <filippo.argiolas@gmail.com> + +2024-11-28 Michael Albinus <michael.albinus@gmx.de> + + Extend Tramp tests + + * test/lisp/net/tramp-tests.el (tramp-test47-read-password) + (tramp-test47-read-otp-password, tramp-test47-read-fingerprint): + Use `tramp-default-remote-shell' and + `tramp-connection-properties'. Cleanup at the end. + (tramp-test47-read-security-key): New test. + +2024-11-28 Andrea Corallo <acorallo@gnu.org> + + * src/lisp.h (EQ): Improve generated code. + + Outside compilation 'symbols_with_pos_enabled' is always false, so ask + the compiler to organize the most likely execution path in a sequential + fashion in order to favor run-time performance. + +2024-11-27 Juri Linkov <juri@linkov.net> + + Add command symbol property 'repeat-continue-only' for 'repeat-mode' + + * lisp/repeat.el: (repeat-post-hook): Ignore commands + with 'repeat-continue-only' symbol property + when repeat was not in progress (bug#74140). + + * test/lisp/repeat-tests.el (repeat-tests-continue-only): New test. + (repeat-tests-bind-keys): Prepare for :continue-only. + +2024-11-27 Juri Linkov <juri@linkov.net> + + * test/lisp/repeat-tests.el: Improve using new key mnemonics (bug#74140). + + (repeat-tests-repeat-map): Use :repeat keywords with :enter and :exit + for 'defvar-keymap'. + (with-repeat-mode): Add new arg 'map' to defmacro. + (repeat-tests-check-key, repeat-tests-exit-key) + (repeat-tests-keep-prefix): Use new key mnemonics. + (repeat-tests-exit-command): New test. + (repeat-tests-bind-keys): New test for 'bind-keys' from 'use-package'. + +2024-11-27 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/subr.el (when-let): Reimplement so as to avoid bug#74530. + +2024-11-27 Dmitry Gutov <dmitry@gutov.dev> + + Make Xref commands follow 'display-buffer' customizations + + * lisp/progmodes/xref.el (xref--show-pos-in-buf): Append + '(category . xref-jump)' to display-buffer action argument, when + the target window or frame is not made explicit by the command. + (xref--switch-to-buffer): New function (bug#74361). + Do the switch through 'pop-to-buffer' and use the new category. + (xref-go-back, xref-go-forward, xref-pop-to-location): Use it. + * etc/NEWS: Describe the change. + +2024-11-26 Dmitry Gutov <dmitry@gutov.dev> + + * lisp/files.el (major-mode-remap-alist): Add :tag annotations to :type. + +2024-11-26 Michael Albinus <michael.albinus@gmx.de> + + Support fingerprint readers in Tramp + + * doc/misc/tramp.texi (Frequently Asked Questions): Speak about + fingerprint readers. + + * lisp/net/tramp-sh.el (tramp-actions-before-shell): + Use `tramp-fingerprint-prompt-regexp'. + + * lisp/net/tramp.el (tramp-wrong-passwd-regexp): Add fingerprint + messages. + (tramp-fingerprint-prompt-regexp, tramp-use-fingerprint): + New defcustoms. + (tramp-action-fingerprint, tramp-action-show-message): New defuns. + (tramp-action-show-and-confirm-message): Start check at (point-min). + + * test/lisp/net/tramp-tests.el (tramp-test47-read-fingerprint): + New test. + +2024-11-25 Stefan Monnier <monnier@iro.umontreal.ca> + + (undo-delta): Handle `apply` elements (bug#74523) + + * lisp/simple.el (undo-delta): Handle `apply` elements. + + * test/lisp/simple-tests.el (simple-tests--undo-apply): New test. + (simple-tests--undo-equiv-table): Adjust test so it's not influenced by + previous operation. + +2024-11-25 Michael Albinus <michael.albinus@gmx.de> + + Extend Tramp FAQ + + * doc/misc/tramp.texi (Frequently Asked Questions): Improve index. + Recommend `small-temporary-file-directory' for ssh sockets. + +2024-11-24 Aaron Jensen <aaronjensen@gmail.com> + + Silence warning message in NS (bug#59790) + + * src/nsterm.m ([EmacsWindow createToolbar:]): Disable toolbar when + fullscreen. + +2024-11-24 Aaron Jensen <aaronjensen@gmail.com> + + Remove NS non-native fullscreen pause (bug#28443) + + * src/nsterm.m (ns_fullscreen_hook): Remove timer workaround + +2024-11-24 Jim Porter <jporterbugs@gmail.com> + + Remove 'eshell-escape-arg' + + Eshell no longer needs this function, since all command parsing is + performed first, with special syntax annotated with text properties as + needed, as opposed to marking literal text with a property (bug#54486). + + * lisp/eshell/em-pred.el (eshell-modifier-alist): Make "q" modifier + obsolete. + (eshell-modifier-help-string): Remove mention of "q". + + * lisp/eshell/esh-arg.el (eshell-escape-arg): Make obsolete. + (eshell-parse-backslash, eshell-parse-literal-quote) + (eshell-parse-double-quote): Don't call 'eshell-escape-arg'. + + * lisp/eshell/esh-var.el (eshell-parse-variable): Don't call + 'eshell-escape-arg'. + + * test/lisp/eshell/em-extpipe-tests.el (em-extpipe-test-2) + (em-extpipe-test-9, em-extpipe-test-11): Remove 'eshell-escape-arg'. + + * test/lisp/eshell/em-pred-tests.el (em-pred-test/modifier-quote): + Remove test. + + * test/lisp/eshell/esh-var-tests.el + (esh-var-test/quoted-interp-var-indices) + (esh-var-test/quote-interp-var-indices-subcommand): Remove workaround in + tests. + + * doc/misc/eshell.texi (Argument Modifiers): Remove documentation of + obsolete "q" modifier. + +2024-11-24 Stefan Monnier <monnier@iro.umontreal.ca> + + (dir-locals-collect-variables): Don't autoload if not needed (bug#74349) + + While dir-local settings for `c-mode` may require (auto)loading `cc-mode.el` + to get all the `safe-local-variable` properties, they may not. So before + (auto)loading that file, make sure we don't already have all the + `safe-local-variable` properties we need. + + * lisp/files.el (dir-locals--load-mode-if-needed): New function. + (hack-one-local-variable): Don't inf-loop if `eval` calls a major mode. + (dir-locals-collect-variables): Use `dir-locals--load-mode-if-needed`. + +2024-11-24 john muhl <jm@pub.pink> + + Avoid loading 'rx' at runtime in 'lua-ts-mode' + + * lisp/progmodes/lua-ts-mode.el (lua-ts-inferior-lua): + Replace 'rx-to-string' and substitution with 'rx' and 'literal'. + (Bug#74499) + +2024-11-24 Sean Whitton <spwhitton@spwhitton.name> + + Improve marking if-let and when-let obsolete + + * lisp/subr.el (if-let): Use a declaration instead of + make-obsolete. + (when-let): Use a declaration instead of make-obsolete. Use + with-suppressed-warnings to avoid generating two warnings. + +2024-11-23 Eshel Yaron <me@eshelyaron.com> + + Give Completion Preview bindings higher precedence + + * lisp/completion-preview.el + (completion-preview-active-mode): add keymap to + 'minor-mode-overriding-map-alist' so it takes precedence + over other minor mode maps that bind TAB, such as + 'eshell-cmpl-mode' in Eshell. (bug#74404) + +2024-11-23 Christophe Troestler <Christophe.Troestler@umons.ac.be> + + Rust ts: fontify as type the possible suffix of number literals + + * lisp/progmodes/rust-ts-mode.el + (rust-ts-mode--fontify-number-literal): Perform the improved + fontification of numbers. (Bug#73877) + * test/lisp/progmodes/rust-ts-mode-tests.el: + * test/lisp/progmodes/rust-ts-mode-resources/font-lock.rs: + * test/lisp/progmodes/rust-ts-mode-resources/font-lock-number.rs: + Add tests for the new optional fontification of the possible type + suffix of numbers. + +2024-11-23 Michael Albinus <michael.albinus@gmx.de> + + Improve robustness of auth-source-pass.el + + * lisp/auth-source-pass.el (auth-source-pass--read-entry): + Ensure, that `epa-file-handler' is active. (Bug#67937) + +2024-11-23 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 74a972cace6 Skip proced refine tests on Darwin + c50ce03afc1 ; Fix recent additions to the manuals + c818c5bbafd ; * lisp/term/w32-win.el (tree-sitter--library-abi): Decl... + b71d3b2f52f ; Better clarify function types in C-h f (bug#73626) + 59b3eae481d ; Introduce type specifiers to the elisp manual (bug#73626) + 83fc3cf53a4 Future-proof loading tree-sitter library on MS-Windows + 3eb30186825 ; Improve documentation of 'category' in display-buffer a... + 4d80c4f4858 ; More accurate documentation of 'set-mark-command' + 70dd5705e11 Fix overriding 'c-ts-mode' by 'c-mode' + 331610aef05 ; Improve vc-dir help-echo + 9c484d51012 ; Avoid assertion violations in "temacs -Q" + 8dc9dfdc381 lisp/progmodes/c-ts-mode.el: Demote loading c-ts-mode as ... + 426bce8a675 ; In PROBLEMS mention issue with .Xresources on Gnome des... + +2024-11-23 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + fc52cb8d741 ; etc/NEWS: Fix example indentation. + 81816800628 Improve the documentation of major-mode remapping + 0856360d80c ; Fix typo in recent change + d4f81f716ae Improve 'which-key-special-keys' docstring + 926d47ab2ca Don't error in Proced tests if %CPU is a NaN + +2024-11-22 Eshel Yaron <me@eshelyaron.com> + + New option 'flyspell-delay-use-timer' + + * lisp/textmodes/flyspell.el (flyspell-delay-use-timer): + New user option. + (flyspell--timer): New variable. + (flyspell-check-word-p): Use them. + (flyspell-post-command-hook): Disable timer. + (flyspell-word): Pass non-nil SECONDS argument to + 'accept-process-output' to avoid blocking when called from a + timer, in which case quitting is inhibited. + * etc/NEWS: Announce new option. (bug#74437) + +2024-11-21 Sean Devlin <spd@toadstyle.org> + + Use prefix argument in 'package-install-selected-packages' + + * lisp/emacs-lisp/package.el (package-install-selected-packages): + When invoked with a prefix argument, skip user confirmation when + installing packages. + * etc/NEWS: Announce the prefix argument usage. (Bug#73932) + +2024-11-21 Sean Devlin <spd@toadstyle.org> + + Add noconfirm to 'package-autoremove' + + * lisp/emacs-lisp/package.el (package-autoremove): + Add optional argument NOCONFIRM to skip user confirmation when removing + packages. + * etc/NEWS: Announce the new argument. (Bug#73932) + +2024-11-20 Gerd Möllmann <gerd@gnu.org> + + Consider all windows for redisplay if frames have been cleared + + * src/xdisp.c (clear_garbaged_frames): Return true if any tty frame's + current matrix has been cleared. + (redisplay_internal): Consider all windows if clear_garbaged_frames + returns true. + +2024-11-20 Gerd Möllmann <gerd@gnu.org> + + * src/xdisp.c (redisplay_internal): Use assq_no_quit. + +2024-11-17 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/cus-face.el: Provide completion for font families + (bug#74362). + + * lisp/cus-edit.el (custom-face--font-cache-timeout): New var. + (custom-face--font-completion): New function. + * lisp/cus-face.el (custom-face-attributes): Use it. + +2024-11-17 Stefan Monnier <monnier@iro.umontreal.ca> + + man.el: Guess flags for `man -k` to fix bug#73656 + + * lisp/man.el (Man-man-k-flags): New var. + (Man-completion-table): Use it. + +2024-11-17 Michael Albinus <michael.albinus@gmx.de> + + Tramp: Be more conservative in removing temporary files + + * test/lisp/net/tramp-tests.el (Commentary): Extend. + (tramp--test-enabled): Exclude also old FUSE mount points from + deletion. + +2024-11-16 Andrea Corallo <acorallo@gnu.org> + + * src/pdumper.c (dump_interval_node): Fix itree_node struct hash. + +2024-11-16 Eli Zaretskii <eliz@gnu.org> + + Fix font-lock in 'lisp-mode' + + * lisp/emacs-lisp/lisp-mode.el (lisp-fdefs): Fix regexps for + "\\<>" and similar constructs. (Bug#74307) + +2024-11-16 Trevor Murphy <trevor.m.murphy@gmail.com> + + Add new `header-line-active' and `header-line-inactive' faces + + This is all intended to parallel the 'mode-line-active' and + 'mode-line-inactive' distinction. + * doc/emacs/display.texi (Standard Faces): Document the new faces. + + * lisp/faces.el (header-line-active, header-line-inactive): New + faces. + + * src/dispextern.h (CURRENT_HEADER_LINE_ACTIVE_FACE_ID_3) + (CURRENT_HEADER_LINE_ACTIVE_FACE_ID): New macros based on mode + line equivalents. + (face_id): New face IDs. + * src/xdisp.c (window_box_height, pos_visible_p, init_iterator) + (window_text_pixel_size, display_mode_lines, display_mode_line) + (format-mode-line): Replace all uses of HEADER_LINE_FACE_ID with + either a new macro or the new face IDs. + * src/xfaces.c (syms_of_xfaces): New lisp symbols. + (lookup_basic_face, realize_basic_faces): Map new face IDs to + their lisp symbols. (Bug#73862) + +2024-11-16 Gerd Möllmann <gerd@gnu.org> + + Revert "Don't pause display for pending input" + + This reverts commit f62d70f52f4f6b7ed158d618bf790df21f171172. + +2024-11-16 Gerd Möllmann <gerd@gnu.org> + + Revert "Remove an unused parameter" + + This reverts commit 627cbf05b53756883a789ff45727acf23f5066a4. + +2024-11-16 Gerd Möllmann <gerd@gnu.org> + + Remove an unused parameter + + * src/dispnew.c (combine_updates): Remove unused parameter inhibit_scrolling. + * src/xdisp.c (redisplay_internal): Adjust caller. + * src/dispextern.h: Change function prototype. + +2024-11-16 Gerd Möllmann <gerd@gnu.org> + + Merge branch 'master' into scratch/tty-child-frames + +2024-11-16 Gerd Möllmann <gerd@gnu.org> + + Don't pause display for pending input + + * src/dispnew.c: Remove display_completed, redisplay_dont_pause, + redisplay-dont-pause was declared obsolete in Emacs 24. Remove anything + checking pending input, change function signatures accordingly, and so + on. + + * src/keyboard.c (read_char): Don't use redisplay_dont_pause. + * src/minibuf.c (read_minibuf): Use new function signatures. + * src/xdisp.c: Don't check display_completed. Use new API. + + * lisp/subr.el (redisplay-dont-pause): Remove declaration. + +2024-11-15 Bruno Boal <egomet@bboal.com> (tiny change) + + Fix customization type of erc-spelling-dictionaries + + * lisp/erc/erc-spelling.el (erc-spelling-dictionaries): Update :type + specification to reflect shape expected by `erc-spelling-init', and + improve description in doc string. (Bug#74363) + +2024-11-15 F. Jason Park <jp@neverwas.me> + + Use helper to get erc-networks--id symbol as string + + * lisp/erc/erc-networks.el (erc-networks--id-string): New function. + (erc-networks--construct-target-buffer-name) + (erc-networks--ensure-unique-server-buffer-name) + (erc-networks--rename-server-buffer): Use it. + * lisp/erc/erc-nicks.el (erc-nicks-list-faces): Use it. + * lisp/erc/erc-status-sidebar.el (erc-status-sidebar-pad-hierarchy): Use it. + * lisp/erc/erc.el (erc-generate-new-buffer-name) + (erc-log-irc-protocol) + (erc--auth-source-determine-params-defaults) + (erc-format-target-and/or-network): Use it. + * test/lisp/erc/erc-networks-tests.el (erc-networks--id-string): New test. + +2024-11-15 Michael Albinus <michael.albinus@gmx.de> + + Merge from origin/emacs-30 + + c29c54410ea * lisp/subr.el (read-number): Document collision with 'fo... + 68337106f91 ; Fix TRAMP manual indexing + 8f6ff233ef1 ; TRAMP manual spelling and grammar fixes + +2024-11-15 Michael Albinus <michael.albinus@gmx.de> + + Remove Tramp temp files if advised during tests + + * lisp/net/tramp-fuse.el (tramp-fuse-name-prefix): New defconst. + (tramp-fuse-mount-point): Use it. + + * test/lisp/net/tramp-tests.el (tramp-test-name-prefix): New defconst. + (tramp--test-make-temp-name, tramp-test40-make-nearby-temp-file) + (tramp-test47-read-password, tramp-test47-read-otp-password): + Use it. + (tramp--test-enabled-checked): Move down. + (tramp--test-enabled): Delete all Tramp temp files when + environment variable $TRAMP_TEST_CLEANUP_TEMP_FILES is set. + (tramp-test02-file-name-dissect-separate): + Adapt `tramp-crypt-directories' according to syntax. + (tramp-test47-read-password): + Let-bind `tramp-connection-properties' instead of modifying + `tramp-methods'. + +2024-11-15 Gerd Möllmann <gerd@gnu.org> + + Respect redisplay_dont_pause in combined update + + * src/dispnew.c (combine_updates): Respect redisplay_dont_pause. This is + important for echo_area_display which binds that variable. + +2024-11-15 Roland Winkler <winkler@gnu.org> + + New user option bibtex-entry-ask-for-key + +2024-11-14 Jim Porter <jporterbugs@gmail.com> + + Don't clobber stickiness text properties when printing Eshell prompt + + * lisp/eshell/em-prompt.el (eshell--append-text-property): New + function... + (eshell-emit-prompt): ... use it. + + * test/lisp/eshell/em-prompt-tests.el + (em-prompt-test/field-properties/merge-stickiness): New test. + (em-prompt-test/field-properties, em-prompt-test/after-failure): Reorder + stickiness values (bug#74230). + +2024-11-14 Michael Albinus <michael.albinus@gmx.de> + + Fix errors in Tramp's password cache expiration + + * doc/misc/tramp.texi (Password handling): Mention expiration of + cached passwords when a session timeout happens. + + * lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection): Rename + file property "process-attributes" to connection property + " process-attributes". + + * lisp/net/tramp.el (tramp-read-passwd): + * lisp/net/tramp-sh.el (tramp-maybe-open-connection): + * lisp/net/tramp-sudoedit.el (tramp-sudoedit-send-command): + Rename connection property "password-vector" to "pw-vector". + + * lisp/net/tramp-sh.el (tramp-maybe-open-connection): + Use connection property "hop-vector". + + * lisp/net/tramp.el (tramp-get-process-attributes) + (tramp-handle-list-system-processes): Rename file property + "process-attributes" to connection property " process-attributes". + (tramp-compute-multi-hops): Check for + `tramp-sh-file-name-handler-p', it works only for this. + (tramp-action-password, tramp-process-actions): Use connection + property "hop-vector". + (tramp-read-passwd, tramp-clear-passwd): Rewrite. (Bug#74105) + +2024-11-14 Cecilio Pardo <cpardo@imayhem.com> + + Fix drag-n-drop on MS-Windows + + * src/w32fns.c (struct w32_drop_target): New member 'ref_count'. + (w32_drop_target_AddRef): Increment reference count. + (w32_drop_target_Release): Decrement reference count, and free the + target only if the reference count is zero. + (w32_createwindow): Initialize reference count. (Bug#74312) + +2024-11-14 Michael Albinus <michael.albinus@gmx.de> + + Merge from origin/emacs-30 + + f69f54c454e Improve font-locking and indentation in 'php-ts-mode' + 27aacbd172f Fix some 'lua-ts-mode' options (Bug#74235) + a0613372a7b ; Update the xwidgets-on-NS text due to fixing bug#60703 + d5928325045 Improve comment indenting in 'lua-ts-mode' + 6bc44ccf287 Update 'xref-num-matches-found' when reverting *xref* buffer + 8afcfed825a * lisp/files.el (require-with-check): Fix last fix (bug#7... + 3496234c8ed lisp/files.el (require-with-check): Fix bug#74091. + 90c97d3fac9 Fix handling of permanent-local variables in 'kill-all-lo... + c96e5760907 Precise password cache in Tramp + 3954e8d9bbe Fix picture-mode with full-width characters + 7dabfe9465c Fix movement to the left in picture-mode + + # Conflicts: + # lisp/net/tramp.el + +2024-11-14 Spencer Baugh <sbaugh@janestreet.com> + + Preserve selected candidate across *Completions* update + + When *Completions* is updated and point was on some completion + candidate, move point to the same candidate after the update. + + Also, a selected completion in *Completions* is now always + highlighted, even if it was selected by the user or other code + moving point rather than by minibuffer-next-completion, because + cursor-face-highlight-nonselected-window is now set in + completion-setup-function. + + Other completion UIs (e.g. ido, vertico, etc) effectively have + this behavior: whenever they update the list of completions, + they preserve whatever candidate is selected. This matters a + lot when completions are auto-updated, but is still useful + without auto-updating. Including this behavior is a step + towards supporting auto-updating in the default completion UI. + + * lisp/minibuffer.el (minibuffer-completion-help): Preserve the + selected completion candidate across updates. (bug#74019) + (minibuffer-hide-completions): Move point to BOB. + (minibuffer-next-completion): Don't set + cursor-face-highlight-nonselected-window. + * lisp/simple.el (completions--start-of-candidate-at) + (choose-completion): Extract the current-completion-finding code + into a separate function. + (completion-setup-function): Set + cursor-face-highlight-nonselected-window. + * etc/NEWS: Announce new behavior. + +2024-11-14 john muhl <jm@pub.pink> + + Add song viewer to 'mpc' (Bug#74200) + + * lisp/mpc.el (mpc-describe-song): New command. + (mpc-mode-map): Bind "d" to 'mpc-describe-song'. + (mpc-mode-menu): Add menu item. + (mpc-secs-to-time): Ensure secs argument is an integer. + (mpc-song-viewer-empty, mpc-song-viewer-tag): + (mpc-song-viewer-value): New face. + (mpc-song-viewer-tags): New option. + +2024-11-13 Stefan Kangas <stefankangas@gmail.com> + + Delete commented out help--describe-vector implementation + + This was an attempt at lifting 'help--describe-vector' to Lisp that + turned out to be prohibitively slow. It is still there in the Git log + if we need to refer back to it. Currently, it is just dead weight, so + delete it. + + * lisp/help.el: Delete commented out code. + +2024-11-13 Stefan Kangas <stefankangas@gmail.com> + + Add docstring to gnus-group-toggle-subscription + + * lisp/gnus/gnus-group.el (gnus-group-toggle-subscription): Add + docstring. + +2024-11-13 Michael Albinus <michael.albinus@gmx.de> + + Tramp: Rework handling of temporary connection properties + + * doc/misc/tramp.texi (Ad-hoc multi-hops): Precise use of parallel + multi-hops. + + * lisp/net/tramp-cache.el: + * lisp/net/tramp.el: + * lisp/net/tramp-adb.el: + * lisp/net/tramp-androidsu.el: + * lisp/net/tramp-cmds.el: + * lisp/net/tramp-crypt.el: + * lisp/net/tramp-gvfs.el: + * lisp/net/tramp-sh.el: + * lisp/net/tramp-smb.el: Rename connection properties "process-name", + "process-buffer" and "first-password-request" to " process-name", + " process-buffer" and " first-password-request, repectively". + + * lisp/net/tramp-cache.el (tramp-dump-connection-properties): + Don't dump properties starting with a space. + +2024-11-13 Stefan Monnier <monnier@iro.umontreal.ca> + + (with-peg-rules): Build proper `peg-function`s + + * lisp/progmodes/peg.el (with-peg-rules): Use the new (FUNC EXP) + feature in `cl-labels`. + +2024-11-13 Stefan Monnier <monnier@iro.umontreal.ca> + + (cl-labels): Add support for (FUNC EXP) bindings (bug#59786) + + Allow `cl-labels` to use the same (FUNC EXP) bindings as were already added + to `cl-flet` in Emacs-25. The Info doc (mistakenly) already documented this + new feature. + + * lisp/emacs-lisp/cl-macs.el (cl--self-tco-on-form): New function. + (cl-labels): Use it to add support for (FUNC EXP) bindings. + + * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels): Add test for + tail-recursive (FUNC EXP) bindings. + +2024-11-12 Gerd Möllmann <gerd@gnu.org> + + Fix a FIXME In redisplay_internal + + * src/xdisp.c (redisplay_internal): Compare root frames before + setting the frame garbaged. + +2024-11-12 Eli Zaretskii <eliz@gnu.org> + + Fix Cygw32 build + + * src/pdumper.c (dump_mm_heap_cb_release): Avoid NULL pointer + dereference. + * src/w32dwrite.c (INITGUID) [CYGWIN]: Don't define for Cygwin. + * src/w32menu.c (w32_popup_dialog): Fix Cygw32 build. (Bug#74312) + +2024-11-11 Eli Zaretskii <eliz@gnu.org> + + * src/w32fns.c (process_dropfiles): Fix cygw32 build (bug#74312). + +2024-11-10 Gerd Möllmann <gerd@gnu.org> + + Change interface of prepare_desired_root_row + + * src/dispnew.c (prepare_desired_root_row): Return NULL if we can't + prepare the row. + (produce_box_line, copy_child_glyphs): Callers changed accordingly. + +2024-11-10 Gerd Möllmann <gerd@gnu.org> + + Another case of copying from non-enabled glyphs (bug#74274) + + * src/dispnew.c (build_frame_matrix_from_leaf_window): If current window + row is not enabled, don't copy from it. + +2024-11-10 Jim Porter <jporterbugs@gmail.com> + + When using Eshell's "du" implementation, deduplicate hard links + + * lisp/eshell/em-unix.el (eshell-du-sum-directory): Take SEEN-FILES. + (eshell/du): Create 'seen-files' hash table. + +2024-11-10 Jim Porter <jporterbugs@gmail.com> + + Don't use dynamically-bound variables for Eshell's "du" command + + * lisp/eshell/em-unix.el (block-size, by-bytes, dereference-links) + (grand-total, human-readable, max-depth, only-one-filesystem, show-all) + (eshell-du-size-string): Remove. + (eshell-du-sum-directory): Accept key arguments for adjusting behavior. + (eshell/du): Use 'block-size' of 1 instead of 'by-bytes', and define a + print function. + +2024-11-10 Jim Porter <jporterbugs@gmail.com> + + Use the Lisp implemention of "du" in Eshell when querying remote dirs + + * lisp/eshell/em-unix.el (eshell/du): If all directories are local, use + the external "du" instead. + +2024-11-10 Stefan Kangas <stefankangas@gmail.com> + + Don't pcomplete 'find -newerxy' flag + + * lisp/pcmpl-gnu.el (pcomplete/find): Remove -newerxy flag. + This flag is not used verbatim like that, and we already complete + the "-newer" flag, which should be all that users need. + Problem reported by Juri Linkov <juri@linkov.net>. + +2024-11-09 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + dbcd9d782c9 Fix documentation and error message of adding local varia... + 94bf7ad797b Document the 'display-line-numbers-disable' property + b1be0f2ba6b Document issues with 'use-package's ':custom' and byte co... + 775970a7831 ; * src/ftcrfont.c (ftcrhbfont_end_hb_font): Improve comm... + 9149aa89ee8 Fix display of compositions when font style changes (Cair... + 3bf00777be1 ; * src/xdisp.c (face_before_or_after_it_pos): Fix thinko... + +2024-11-09 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 3231af3727b Improve 'open-network-stream' documentation. + fb55431c44e ; Fix typos in case-conversion descriptions + 83f095d1fd4 ; Fix typo and indexing in the ELisp manual + 37b1799c9e5 ; Instrument proced-tests.el further + 03fa832b4dc Improve Tramp documentation on direct async processes + + # Conflicts: + # etc/NEWS + +2024-11-09 Ola Nilsson <ola.nilsson@gmail.com> + + Add functions supported by GNU Make 4.3. + + * lisp/progmodes/make-mode.el (makefile-gnumake-functions-alist): + Add missing GNU Make functions, according to The GNU Make Manual + 0.75 for GNU Make, and reorder the list of functions. (Bug#74207) + +2024-11-09 David Ponce <da_vid@orange.fr> + + Fix 'string-pixel-width' to not reset 'display-line-numbers' + + * lisp/emacs-lisp/subr-x.el (string-pixel-width): Use the + 'display-line-numbers-disable' property instead of setting the + variable 'display-line-numbers', to avoid global effects. + (Bug#73005) + +2024-11-09 Joseph Turner <joseph@breatheoutbreathe.in> + + Replace vtable--color-blend with color-blend + + * lisp/emacs-lisp/vtable.el (vtable--face-color): Use `color-blend'. + (vtable--color-blend): Remove unused function. + +2024-11-09 Joseph Turner <joseph@breatheoutbreathe.in> + + Add color-blend to blend two RGB lists + + * lisp/color.el (color-blend): Blend two RGB lists. + * test/lisp/color-tests.el (color-tests-blend): Test color-blend. + * etc/NEWS: Announce color-blend. + +2024-11-09 Manuel Giraud <manuel@ledu-giraud.fr> + + Fix tmm "previous menu" shortcut + + * lisp/tmm.el (tmm-clear-self-insert-and-exit): New function to + clear the minibuffer content then call `self-insert-and-exit'. + (tmm-define-keys): Use it. + (tmm-goto-completions): Explain why. (Bug#74166) + +2024-11-09 Manuel Giraud <manuel@ledu-giraud.fr> + + `tmm-shortcut-inside-entry' docstring fix (bug#74111) + + * lisp/tmm.el (tmm-shortcut-inside-entry): Doc fix. + +2024-11-09 Joost Kremers <joostkremers@fastmail.com> + + Update vtable documentation + + * doc/misc/vtable.texi: Document creation of empty vtables. + * etc/NEWS: Announce empty vtables. (Bug#73775) + +2024-11-09 Joost Kremers <joostkremers@fastmail.com> + + vtable: allow resetting column alignment when table data changes + + * lisp/emacs-lisp/vtable.el (vtable--compute-columns): If a column + was not created with an explicit 'align' property, allow changing + this property when the column data changes from numeric to + non-numeric (or vice versa). This makes it possible to add data to + an empty table, because in a table without data all columns are + assumed to be numeric and right-aligned. (Bug#73775) + +2024-11-09 Joost Kremers <joostkremers@fastmail.com> + + Enable inserting new objects into empty vtable + + * lisp/emacs-lisp/vtable.el (vtable-insert-object): If the vtable + is empty, add the new object and recreate + redisplay the table. + (Bug#73775) + +2024-11-09 Joost Kremers <joostkremers@fastmail.com> + + Allow empty vtable + + * lisp/emacs-lisp/vtable.el (vtable--compute-widths): Set default + width for columns that have no explicit width and no data. + (Bug#73775) + +2024-11-09 Eli Zaretskii <eliz@gnu.org> + + Add dark color scheme to emacs.metainfo.xml + + * etc/emacs.metainfo.xml: Add dark color scheme. Patch by Peter + Oliver <p.d.oliver@mavit.org.uk> (bug#74123). + +2024-11-09 Peter Oliver <git@mavit.org.uk> + + Add more fields to AppStream metadata in emacs.metainfo.xml + + * etc/emacs.metainfo.xml: Populate the vcs-browser and contribute URLs, + as well as the branding color. (Bug#74123) + +2024-11-09 Michael Albinus <michael.albinus@gmx.de> + + Tramp: Support different proxies for the same destination + + * doc/misc/tramp.texi (Ad-hoc multi-hops): New subsection "Using + different proxies for the same destination". + + * etc/NEWS: Tramp supports different proxies for the same + destination host name in parallel. + Fix typos. + + * lisp/net/tramp-cmds.el (tramp-cleanup-connection): Fix docstring. + + * lisp/net/tramp.el (tramp-make-tramp-file-name): Don't call + `tramp-add-hops' during file name completion. + (tramp-handle-file-name-as-directory) + (tramp-handle-file-name-directory): Use `tramp-cache-undefined' + for an empty `tramp-default-proxies-alist'. + (tramp-add-hops): Extend. Remove existing entries with same + target and different proxy, if needed. (Bug#74219) + +2024-11-09 Ethan Kong <ek.ethan.kong@gmail.com> + + Fix 'internal_equal' so that it uses at most one hash table + + The old implementation passed the hash table by value in + recursive tests, which would cause each recursive level to + initialize its own hash table, causing excess memory usage. + * src/fns.c (internal_equal): Delegate to 'internal_equal_1'. + (internal_equal_1): New function; body from old 'internal_equal'. + Pass the hash table argument by reference instead of by value. + (Bug#73883) + +2024-11-09 Gerd Möllmann <gerd@gnu.org> + + Don't copy from non-enabled current glyphs (bug#74274) + + * src/dispnew.c (prepare_desired_root_row): Check if current row is + enabled. + +2024-11-08 Stephen Gildea <stepheng+emacs@gildea.com> + + time-stamp: minor adjustments to %P and modifier characters + + * lisp/time-stamp.el (time-stamp-string-preprocess): %P variations; + allow (and ignore) "*", "E", and "O" as modifier characters. + (time-stamp-inserts-lines): safe-local-variable only if booleanp + +2024-11-08 Philip Kaludercic <philipk@posteo.net> + + Do not suggest packages outside of 'fundamental-mode' + + * lisp/emacs-lisp/package.el (package--autosuggest-find-candidates): + Check 'major-mode' before computing suggestions. + +2024-11-08 Philip Kaludercic <philipk@posteo.net> + + Merge branch 'master' into feature/package-autosuggest + +2024-11-08 Stefan Kangas <stefankangas@gmail.com> + + Update special attributes for Python 3.13 + + * lisp/progmodes/python.el (python-font-lock-keywords-level-2) + (python--treesit-special-attributes): Update special attributes, + making it current for Python 3.13. + +2024-11-07 Jim Porter <jporterbugs@gmail.com> + + Always print the expanded directory name for Eshell's "pwd" command + + * lisp/eshell/em-dirs.el (eshell-pwd-convert-function): Default to + 'expand-file-name' on all systems. + + * etc/NEWS: Announce this change. + +2024-11-07 Robert Pluim <rpluim@gmail.com> + + Ensure `move-frame-functions' trigger on macOS frame resize + + * src/nsterm.m ([EmacsView windowWillResize:toSize:]): Call + windowDidMove to ensure that MOVE_FRAME_EVENT events are + generated when a frame is resized. (Bug#74074) + +2024-11-07 Daniel Watson <ozzloy@each.do> (tiny change) + + When submitting files in EWW, only send the file's basename + + * lisp/net/eww.el (eww-submit): Send the basename, not the full + filename (bug#65973). + +2024-11-07 Ulf Jasper <ulf.jasper@web.de> + + * lisp/net/newst-plainview.el: Fix Bug#74198 + + * lisp/net/newst-plainview.el + (newsticker--do-mark-item-at-point-as-read): Save feed cache immediately + when item state is changed. (Bug#74198) + +2024-11-07 Philip Kaludercic <philipk@posteo.net> + + Demote errors when failing to install package suggestions + + * lisp/emacs-lisp/package.el + (package--autosuggest-install-and-enable): Wrap + 'package-install' and following code in a 'with-demoted-errors'. + +2024-11-07 Philip Kaludercic <philipk@posteo.net> + + Drop comments indicating origin of package sugggestions + + * admin/scrape-elpa.el (scrape-elpa): Do it. + * etc/package-autosuggest.eld: Regenerate file. + +2024-11-07 Philip Kaludercic <philipk@posteo.net> + + Distinguish between suggested packages and major modes + + * admin/scrape-elpa.el (scrape-elpa): Infer package names from + autoloads file. + * etc/package-autosuggest.eld: Recompute database. + * lisp/emacs-lisp/package.el (package-autosuggest-database): + Update documentation to clarify how the major mode can be + explicitly indicated. + (package--suggestion-applies-p): Handle the optional fourth + element. + +2024-11-07 Philip Kaludercic <philipk@posteo.net> + + Update 'package-autosuggest' database + + * admin/scrape-elpa.el (scrape-elpa): Detect 'add-to-list' + expressions that are "hidden" under a 'progn'. + * etc/package-autosuggest.eld: Re-generate database with more + packages (after having run "make autoloads") and with the above + improvement. + +2024-11-07 Kierin Bell <fernseed@fernseed.me> + + Enable guidance for Northern Iroquoian input methods + + * lisp/leim/quail/iroquoian.el: Set GUIDANCE argument of + 'quail-define-package' forms to non-nil. (Bug#74170) + +2024-11-07 Philip Kaludercic <philipk@posteo.net> + + Do not enable 'package-autosuggest-mode' by default + + As the feature is intrusive and can slow down startup time it is + safer to disable the feature by default. + + * doc/emacs/package.texi (Package Installation): Explicitly + mention the minor mode in the manual. + * etc/NEWS: Document it here as well. + * lisp/emacs-lisp/package.el (package-autosuggest-mode): Change + default value to nil and autoload it. + +2024-11-07 Philip Kaludercic <philipk@posteo.net> + + * etc/NEWS: Mention 'package-autosuggest' + + * doc/emacs/package.texi: Document 'package-autosuggest' + +2024-11-07 Kierin Bell <fernseed@fernseed.me> + + New input methods for Northern Iroquoian languages + + * lisp/leim/quail/iroquoian.el: New file. (Bug#74170) + + * etc/NEWS: Announce the new input methods. + +2024-11-07 Gerd Möllmann <gerd@gnu.org> + + Fix hiding tips from pre-command-hook + + * lisp/tty-tip.el (tty-tip-mode): Put #'tty-tip--hide on the + pre-command-hook. + +2024-11-06 Stefan Kangas <stefankangas@gmail.com> + + * etc/symbol-releases.eld: Add version=, version<, version<=. + +2024-11-06 Philip Kaludercic <philipk@posteo.net> + + Add command to scrape ELPA for package suggestions + + * admin/scrape-elpa.el (scrape-elpa): Add new command. + * etc/package-autosuggest.eld: Generate file using 'scrape-elpa'. + +2024-11-06 Philip Kaludercic <philipk@posteo.net> + + Update mode line after rejecting a suggestion + + * lisp/emacs-lisp/package.el (package-autosuggest): Call + 'force-mode-line-update' if it would make sense. + +2024-11-06 Philip Kaludercic <philipk@posteo.net> + + Create separate 'package-autosuggest-style' user option + + * lisp/emacs-lisp/package.el (package-autosuggest-mode): Extract + part of the logic into a separate user option. + (package--autosuggest-suggested, package--suggestion-applies-p) + (package--autosugest-line-format) + (package--autosuggest-after-change-mode): Respect the change. + +2024-11-06 Philip Kaludercic <philipk@posteo.net> + + Ensure a valid value for 'package-autosuggest-mode' + + * lisp/emacs-lisp/package.el (package-autosuggest-mode): If + 'define-minor-mode' sets the value of the variable to t, then we + will override this to the default value. + +2024-11-06 Philip Kaludercic <philipk@posteo.net> + + Improve package-autosuggest documentation + + * lisp/emacs-lisp/package.el (package-autosuggest-database) + (package-autosuggest-mode, package--autosuggest-suggested) + (package--suggestion-applies-p) + (package--autosuggest-find-candidates) + (package--autosuggest-install-and-enable) + (package--autosuggest-after-change-mode, package-autosuggest): + Elaborate docstrings. + +2024-11-06 Gerd Möllmann <gerd@gnu.org> + + Revert "Mark atimer allocation as ambiguous root" + + This reverts commit c42b90b21a4efb3c5a8ebc6e3bd6be2908d1f2ac. + +2024-11-06 Ulf Jasper <ulf.jasper@web.de> + + * lisp/net/newst-plainview.el (newsticker--buffer-do-insert-text): Bug#74197 + + Use "[logo: <feed name>]" instead of "<feed name>" for the string + holding the logo image. + +2024-11-06 Philip Kaludercic <philipk@posteo.net> + + * lisp/emacs-lisp/package.el (package-autosuggest): New command + +2024-11-06 Philip Kaludercic <philipk@posteo.net> + + Improve prompting of autosuggested packages + + * lisp/emacs-lisp/package.el (package--autosuggest-suggested): + Move declaration up. + (package--suggestion-applies-p): Respect + 'package--autosuggest-suggested', avoiding to suggest packages + multiple times. + (package--autosugest-line-format) + (package--autosuggest-after-change-mode): Simplify due to + 'package--suggestion-applies-p' respecting + 'package--autosuggest-suggested'. + (package-autosuggest): Replace CRM prompt with a yes-or-no-p, so + that 'use-dialog-box' can take effect. + +2024-11-06 Mattias Engdegård <mattiase@acm.org> + + * lisp/term/w32-win.el (w32--textual-mime-types): Escape literal `+` + +2024-11-06 Mattias Engdegård <mattiase@acm.org> + + Fix wrong value of `when` and `unless` with empty body (bug#74215) + + Reported by Brennan Vincent. + + * lisp/subr.el (when, unless): Return nil when the body is empty. + * test/lisp/subr-tests.el (subr-test-when): Add test cases. + +2024-11-06 Jeff Walsh <fejfighter@gmail.com> + + Mark atimer allocation as ambiguous root + + * src/atimer.c (start_atimer): Time could be passed a lisp object for + data, we should allocate this as an ambiguous root + +2024-11-06 Gerd Möllmann <gerd@gnu.org> + + Remove tip in pre-command-hook + + * lisp/tty-tip.el (tty-tip-mode): install pre-command-hook that deleted + the tip frame. + +2024-11-06 Gerd Möllmann <gerd@gnu.org> + + Let tty tips disappear automatically + + * lisp/tty-tip.el (tty-tip--create-frame): Delete tip frame after + x-show-tooltip-timeout seconds. + +2024-11-06 Gerd Möllmann <gerd@gnu.org> + + Add tty-tip.el, not tooltips, but very close + +2024-11-06 Philip Kaludercic <philipk@posteo.net> + + Allow suggesting to install packages + + * etc/package-autosuggest.eld: Add a manual sketch of the database + * lisp/emacs-lisp/package.el (package-autosuggest-database) + (package-autosuggest-mode, package--suggestion-applies-p) + (package--autosuggest-find-candidates) + (package--autosuggest-install-and-enable) + (package--autosuggest-suggested, package--autosugest-line-format) + (package-autosuggest-face, mode-line-misc-info) + (package--autosuggest-after-change-mode, package-autosuggest): + Implement the feature. + +2024-11-05 Gerd Möllmann <gerd@gnu.org> + + * src/dispnew.c (neutralize_wide_char): Don't use used[0] + +2024-11-05 Michael Albinus <michael.albinus@gmx.de> + + Several Tramp cleanups + + * lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection): + Move setting of sentinel up. + + * lisp/net/tramp-cache.el (tramp-get-connection-property) + (tramp-set-connection-property): Don't raise a debug message for + the `tramp-cache-version' key. + + * lisp/net/tramp.el (tramp-convert-file-attributes): Don't cache + "file-attributes-ID-FORMAT". + + * test/lisp/net/tramp-tests.el (tramp--test-enabled): Cleanup also + `tramp-compat-temporary-file-directory'. + (tramp-test32-shell-command): Use `async-shell-command-width' of 512. + (tramp-test36-vc-registered): Remove double let* entry. + +2024-11-05 Cecilio Pardo <cpardo@imayhem.com> + + Support :transform-smoothing on images (MS-Windows) (bug#57166) + + * src/dispextern.h (struct image): Add field 'smoothing' for + NTGUI. + * src/image.c (image_set_transform): Assign the 'smoothing' + field of the image struct. + * src/w32gdiplus.h: Add references to more GDI+ functions. + * src/w32image.c (gdiplus_init): Add references to more GDI+ + functions. + * src/w32term.c (w32_draw_image_foreground): If the image is + marked for smoothing and GDI+ is available, draw it with GDI+ + bilinear interpolation. + * etc/NEWS: New entry for this change. + +2024-11-05 Eli Zaretskii <eliz@gnu.org> + + Make 'yank-media' on MS-Windows require native image APIs + + * src/w32select.c (convert_dibv5_to_png) [!HAVE_NATIVE_IMAGE_API]: + Fail if GDI+ cannot be used. Patch by Cecilio Pardo + <cpardo@imayhem.com>. (Bug#71909) + + * etc/NEWS: Mention this dependency. + +2024-11-05 Gerd Möllmann <gerd@gnu.org> + + TTY menus: handle saved state referencing dead frames + + * src/term.c (restore_desired_matrix): If a tty menu saves a current + matrix that contains glyphs from a child frame, handle the case that + that child frame dies before the saved state is restored. + +2024-11-05 Gerd Möllmann <gerd@gnu.org> + + Don't copy non-enabled rows from child + + * src/dispnew.c (copy_child_glyphs): Check if child row is enabled. + +2024-11-05 Gerd Möllmann <gerd@gnu.org> + + * src/frame.c (make_terminal_frame): Check parent is live. + +2024-11-05 Stefan Kangas <stefankangas@gmail.com> + + pcomplete/find: Support new GNU find expressions + + * lisp/pcmpl-gnu.el (pcomplete/find): Add expressions from new GNU find: + "-newerxy" (4.3.3) and "-files0-from" (4.9.0). This list is now + complete as of GNU findutils 4.10.0, released on 2024-06-01. + +2024-11-04 Jim Porter <jporterbugs@gmail.com> + + Add support for range objects in Eshell "for" loops + + * lisp/eshell/esh-cmd.el (eshell-for-iterate): Add support for + 'eshell-range' objects. + + * test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/for-loop-range): New + test. + + * doc/misc/eshell.texi (Control Flow): Update documentation. + + * etc/NEWS: Announce this change. + +2024-11-04 Jim Porter <jporterbugs@gmail.com> + + Move more of Eshell range handling to the parser phase + + * lisp/eshell/esh-util.el (eshell-range): New struct. + (eshell--range-string-p, eshell--string-to-range): New functions. + + * lisp/eshell/esh-arg.el (eshell-parse-integer) + (eshell-parse-range-token): New functions... + (eshell-parse-argument-hook): ... add them. + (eshell--after-range-token-regexp): New defsubst. + (eshell-concat-1): Don't remove the 'number' property; we use that when + handling range arguments. + (eshell--range-token): New constant. + (eshell-unmark-range-token): New function. + + * lisp/eshell/esh-var.el (eshell-parse-index): Update implementation to + use parsed range argument. + + * test/lisp/eshell/esh-var-tests.el (esh-var-test/interp-var-indices): + Test range index using variables. + +2024-11-04 Jim Porter <jporterbugs@gmail.com> + + Add QUOTED argument to 'eshell-stringify' + + This will make it easier to reconstitute numbers that we converted to + strings. + + * lisp/eshell/esh-util.el (eshell--numeric-string-p): New function. + (eshell-stringify, eshell-stringify-list): Add QUOTED argument. + (eshell-convert, eshell-list-to-string): Stringify as quoted. + + * lisp/eshell/esh-arg.el (eshell--numberlike-p): Remove. + (eshell-concat-1): Pass along QUOTED. + + * lisp/eshell/esh-cmd.el (eshell-lisp-command): Use + 'eshell--numeric-string-p'. + + * lisp/eshell/esh-var.el (eshell-parse-variable): + * lisp/eshell/em-cmpl.el (eshell-complete-parse-arguments): Stringify as + quoted. + +2024-11-03 Jim Porter <jporterbugs@gmail.com> + + Improve handling of Eshell "for" loops + + This fixes some errors with more-complex string forms, and also allows + iterating over sequences other than just lists. + + * lisp/eshell/esh-cmd.el (eshell-for-iterate): New function... + (eshell-rewrite-for-command): ... use it. + + * test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/for-loop): Test + multiple values. + (esh-cmd-test/for-loop-string, esh-cmd-test/for-loop-vector): New tests. + (esh-cmd-test/for-loop-mixed-args): Rename. + + * test/lisp/eshell/esh-proc-tests.el + (esh-proc-test/sentinel/change-buffer): Make sure all the processes get + cleaned up. + +2024-11-03 Stefan Kangas <stefankangas@gmail.com> + + Mark IDLWAVE as obsolete + + * lisp/obsolete/idlw-complete-structtag.el: + * lisp/obsolete/idlw-help.el: + * lisp/obsolete/idlw-shell.el: + * lisp/obsolete/idlw-toolbar.el: + * lisp/obsolete/idlwave.el: Mark as obsolete. (Bug#71157) + + * lisp/files.el (auto-mode-alist): Remove IDLWAVE entry. + * doc/emacs/programs.texi (Program Modes): Remove IDLWAVE from + list of supported languages. + +2024-11-03 Stefan Kangas <stefankangas@gmail.com> + + Move IDLWAVE to lisp/obsolete + + * lisp/progmodes/idlw-complete-structtag.el: + * lisp/progmodes/idlw-help.el: + * lisp/progmodes/idlw-shell.el: + * lisp/progmodes/idlw-toolbar.el: + * lisp/progmodes/idlwave.el: Move from here... + * lisp/obsolete/idlw-complete-structtag.el + * lisp/obsolete/idlw-help.el + * lisp/obsolete/idlw-shell.el + * lisp/obsolete/idlw-toolbar.el + * lisp/obsolete/idlwave.el: ...to here. (Bug#71157) + +2024-11-03 Andrea Corallo <acorallo@gnu.org> + + * Remove warning introduced by 8e7f5f97db6 + + * lisp/term/w32-win.el (w32--get-clipboard-data-media): Declare. + +2024-11-03 Cecilio Pardo <cpardo@imayhem.com> + + Add support for 'yank-media' on MS-Windows + + Adds the capacity to handle types different from strings to the + clipboard management functions on MS-Windows, and some logic + required to convert media types names and content to be what + yank-media and the modes that use it expect (bug#71909). + * lisp/term/w32-win.el (w32--selection-target-translations): New + variable that holds the name translations for media types. + (w32--translate-selection-target): New function, translate the + name of a media type. + (w32--translate-reverse-selection-target): New function, reverse + translation. + (w32--get-selection): Modified to translate target names when + asked for targets, and retrieve media types when asked for them. + (w32--mime-type-textual-p): New function, checks if a MIME type + is textual. + * lisp/textmodes/sgml-mode.el (html-mode--image-yank-handler): + Fixed the image save mechanism, that added line feed characters + on MS-Windows, breaking binary formats. + * src/w32image.c (gdiplus_init): Modified to fetch more + functions fromm gdiplus. + (get_encoder_clsid): Renamed to 'w32_gdip_get_encoder_clsid' + and made nonstatic. + (gdiplus_startup): Renamed to 'w32_gdiplus_startup' and + made nonstatic. + * src/w32select.c (stdfmt_name): Made global, was static + function. + (convert_dibv5_to_png): New function to convert DIBV5 clipboard + format to PNG. + (get_clipboard_format_name): New function get the name of a + format given its index. + (Fw32__get_clipboard_data_media): New function, retrieves and + converts media content. + (syms_of_w32select): Export new lisp functions. + * src/w32gdiplus.h: New file, for definitions in w32image.c + * doc/lispref/frames.texi: Updated with MS-Windows support. + * etc/NEWS: Added entry about new feature. + +2024-11-03 Thanos Apollo <public@thanosapollo.org> + + Add greek-polytonic input method + +2024-11-03 Thanos Apollo <public@thanosapollo.org> + + Improve greek input method + + * lisp/leim/quail/greek.el ("greek"): Add sequences for DIALYTIKA + TONOS (U+0385) and add proper bindings for double angle quotation + marks. (Bug#73909) + +2024-11-03 Stefan Kangas <stefankangas@gmail.com> + + * etc/symbol-releases.eld: Add 'set-transient-map'. + +2024-11-03 Stefan Kangas <stefankangas@gmail.com> + + Remove Emacs 24.4 compat code from which-key + + * lisp/which-key.el (which-key--show-page): Remove Emacs 24.4 + compatibility code. + +2024-11-02 Stephen Gildea <stepheng+emacs@gildea.com> + + Expand manual section on Time Stamps + + * doc/emacs/files.texi (Time Stamps): Add examples of enabling + time stamping with add-hook and setting time-stamp-pattern as a + file-local variable. + +2024-11-02 Eli Zaretskii <eliz@gnu.org> + + Fix color-lightening and darkening calculations + + * lisp/color.el (color-lighten-hsl): Fix calculations (bug#74055). + + * test/lisp/color-tests.el (color-tests-lighten-hsl) + (color-tests-lighten-name, color-tests-darken-hsl) + (color-tests-darken-name): Adjust test results. + +2024-11-02 Eli Zaretskii <eliz@gnu.org> + + Revert "Fix color-lighten-hsl logic" + + This reverts commit 656c2dd66e77a5fbeb99d358017e8327401fae05. + That commit was mistaken, see bug#74055. + +2024-11-02 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + f7b85fe986e Improve documentation of letter-case conversions + +2024-11-02 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + e6a8492fabc Fix c-ts-common-comment-indent-new-line (bug#73900) + + # Conflicts: + # lisp/progmodes/c-ts-common.el + +2024-11-02 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 98796f95fa5 Work on proced-tests.el + 8a4d13e370c ; * doc/lispref/frames.texi (Yanking Media): Add index en... + 0aae02a3741 * lisp/files.el (require-with-check): Be a bit more lenie... + cc6a11f4832 (with-peg-rules): Fix references to rulesets (bug#74018) + 70f084db2ff ; * etc/NEWS: Fix typo (bug#74066). + 9e1abf11fc1 Tweak doc w.r.t to "void function" (bug#73886) + 7a8ca202c5e Fix flakey proced refine tests (Bug#73441) + 55a8cec013e Another 'void' update + +2024-11-02 Sebastián Monía <sebastian.monia@sebasmonia.com> + + More lax doctype check in EWW (bug#73133) + + The regexp to match doctype tags was simplified and will match + more legacy entries; also correct binding of 'case-fold-search'. + * lisp/net/eww.el (eww--html buffer-list): Update function. + +2024-11-02 Daniel Pettersson <daniel@dpettersson.net> + + Fix inconsistency in bitmap overlay drawing for macOS + + * src/nsterm.m (ns_draw_fringe_bitmap): Respect 'overlay_p', + by not clearing fringe if set, as its done in xterm. (Bug#71763) + +2024-11-01 Stefan Kangas <stefankangas@gmail.com> + + Don't start docstrings with "This function" + + * lisp/calculator.el (calculator-add-operators): + * lisp/erc/erc-log.el (erc-generate-log-file-name-with-date) + (erc-generate-log-file-name-short): + * lisp/eshell/esh-mode.el (eshell-begin-on-new-line): + * lisp/progmodes/hideif.el (hif-merge-ifdef-region): + * lisp/tab-bar.el (tab-bar--event-to-item): + * lisp/textmodes/artist.el (artist-no-rb-unset-point2) + (artist-no-rb-unset-points): + * lisp/which-key.el (which-key--hide-popup): Don't start function + docstrings with "This function". + +2024-11-01 Stefan Kangas <stefankangas@gmail.com> + + Mark unused reftex variable as obsolete + + * lisp/textmodes/reftex-vars.el + (reftex-toc-split-windows-horizontally-fraction): Mark unused variable + as obsolete in favor of 'reftex-toc-split-windows-fraction'. + +2024-11-01 Jim Porter <jporterbugs@gmail.com> + + Improve evaluation of conditional Eshell forms + + This simplifies the logic for building these forms and also fixes an + issue where a subcommand in a "&&" or "||" conditional had its output + suppressed. + + * lisp/eshell/esh-cmd.el (eshell-structure-basic-command): Make + obsolete. + (eshell-silence-test-command): New function... + (eshell-rewrite-while-command, eshell-rewrite-if-command): ... use it, + and make the command form ourselves. + (eshell-parse-pipeline): Use 'and' and 'or' to make the conditional + command sequence. + (eshell-command-success): New macro. + (eshell-do-eval): Add support for 'and' and 'or' forms. + + * test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/and-operator/output) + (esh-cmd-test/or-operator/output): New tests. + +2024-11-01 Manuel Giraud <manuel@ledu-giraud.fr> + + New `tmm-menubar' shortcut display style + + Bug#74111 + * lisp/tmm.el (tmm-shortcut-inside-entry): New user option to + control if the shortcut character is highlighted inside the menu + entry's string. + (tmm-add-one-shortcut): Compute the new shortcut style. + (tmm-add-prompt, tmm-completion-prompt): Adapt the completion + prompt according to the shortcut display style. + (tmm-prompt): Adapt the prompt regexp. + (tmm-shortcut): Simplify default case and make it work with this + change. + * etc/NEWS: Announce the option. + +2024-11-01 Eli Zaretskii <eliz@gnu.org> + + Revert "Remove undefined variable from c-ts-common.el" + + This reverts commit 9ff155183ca560fc9005027a65c53544afb772a1. + This problem was already fixed on the release branch m and + the fix will merged soon. (Bug#74149) + +2024-11-01 Jim Porter <jporterbugs@gmail.com> + + Improve correctness of Eshell globs when using escape characters + + This new implementation opts *in* to treating characters as glob + characters, rather than opting out. This reduces the need to coordinate + with other parts of Eshell and should be harder to break (bug#74033). + + * lisp/eshell/em-glob.el (eshell-parse-glob-chars): Return the + propertized globbing character directly. + (eshell--propertize-glob, eshell--glob-char-p) + (eshell--contains-glob-char-p, eshell--all-glob-chars-p): New functions. + (eshell-glob-p): Make obsolete. + (eshell-glob-regexp, eshell-glob-convert-1, eshell-glob-convert): Check + for 'eshell-glob-char' property. + (eshell-extended-glob): Remove text properties when returning no match. + (eshell--glob-anything): New constant. + (eshell-glob-entries): Propertize "*" to treat it as a glob. + + * lisp/eshell/em-ls.el (eshell-ls--expand-wildcards): New function... + (eshell-ls--insert-directory): ... use it. + + * test/lisp/eshell/em-glob-tests.el: Use 'eshell--propertize-glob' in + tests. + (em-glob-test/convert/literal-characters) + (em-glob-test/convert/mixed-literal-characters): New tests. + + * lisp/eshell/em-glob.el (eshell-expand-glob): Rename from + 'eshell-extended-glob'. Update callers. + (eshell-extended-glob): New function to expand a GLOB that hasn't been + propertized yet, for use outside of Eshell command forms. + (eshell-parse-glob-chars): Return the propertized globbing character + directly. + (eshell-parse-glob-string, eshell--glob-char-p) + (eshell--contains-glob-char-p, eshell--all-glob-chars-p): New functions. + (eshell-glob-regexp, eshell-glob-convert-1, eshell-glob-convert): Check + for 'eshell-glob-char' property. + (eshell-glob-p): Make obsolete. + (eshell--glob-anything): New constant... + (eshell-glob-entries): ... use it. + + * lisp/eshell/em-ls.el (eshell-ls--expand-wildcards): New function... + (eshell-ls--insert-directory): ... use it. + + * test/lisp/eshell/em-glob-tests.el: Use 'eshell-parse-glob-string in + tests. + (em-glob-test/convert/literal-characters) + (em-glob-test/convert/mixed-literal-characters): New tests. + +2024-11-01 Jim Porter <jporterbugs@gmail.com> + + Fix and improve behavior of 'eshell/clear' + + * lisp/eshell/esh-mode.el (eshell-clear): New function. + (eshell/clear): Fix incorrect behavior, and do the right thing when + 'eshell-scroll-show-maximum-output' is nil. + (eshell/clear-scrollback): Call 'eshell/clear'. + + * test/lisp/eshell/esh-mode-tests.el + (esh-mode-test/clear/eshell-command) + (esh-mode-test/clear/eshell-command/erase) + (esh-mode-test/clear/emacs-command) + (esh-mode-test/clear/emacs-command/erase): New tests. + + * etc/NEWS: Mention the new 'eshell-command' (bug#73722). + +2024-11-01 Steven Allen <steven@stebalien.com> + + Remove undefined variable from c-ts-common.el + + This variable came from code copied from c-indent-new-comment-line. + It's a parameter meant to be used by c-context-line-break, not a + global variable. + + * lisp/progmodes/c-ts-common.el (c-ts-common-comment-indent-new-line): + Remove reference to undefined variable. (Bug#74149) + +2024-11-01 Dmitry Gutov <dmitry@gutov.dev> + + project-tests: Add test assertion for bug#73801 + + * test/lisp/progmodes/project-tests.el + (project-vc-extra-root-markers-supports-wildcards): End with a + check that we didn't cache a wrong value for parent (bug#73801). + +2024-10-31 Gerd Möllmann <gerd@gnu.org> + + Fix mouse-position for xterm-mouse-mode + + * lisp/xt-mouse.el (xterm-mouse-position-function): Return the frame + recorded in the terminal parameter xterm-mouse-frame. + +2024-10-31 Jim Porter <jporterbugs@gmail.com> + + Don't remove trailing slash in Eshell "pwd" for remote root directories + + * lisp/eshell/em-dirs.el (eshell/pwd): Check if 'file-local-name' of the + directory is the root dir. + +2024-10-31 Cecilio Pardo <cpardo@imayhem.com> + + Fix 'yank-media' to allow yanking SVG data + + * lisp/net/mailcap.el (mailcap-mime-type-to-extension): Return + "svg" for mime type 'image/svg+xml'. Org-mode uses this. + * lisp/yank-media.el (yank-media--find-matching-media): If svg is + supported, don't filter out 'image/svg+xml'. (Bug#74044) + +2024-10-31 Augusto Stoffel <arstoffel@gmail.com> + + shr.el: Define rendering rule for math tag + + * lisp/net/shr.el (shr-tag-math): New function, see bug#73641. + +2024-10-31 Stephen Berman <stephen.berman@gmx.net> + + Fix bugs in dabbrev-expand (bug#74090) + + * lisp/dabbrev.el (dabbrev-expand): Use the buffer where the + expansion was found when setting the internal variables used to + determine the next expansion or a replacement expansion. + + * test/lisp/dabbrev-tests.el (ert-x): Require for + 'ert-with-temp-directory', 'ert-resource-directory' and + 'ert-resource-file'. + (with-dabbrev-test): New macro. + (dabbrev-expand-test-same-buffer-{1,2,3,4}) + (dabbrev-expand-test-other-buffer-{1,2,3,4}) + (dabbrev-expand-test-minibuffer-{1,2,3,4}): New tests. + + * test/lisp/dabbrev-resources/dabbrev-expand.el: + * test/lisp/dabbrev-resources/INSTALL_BEGIN: New test resources. + +2024-10-30 Juri Linkov <juri@linkov.net> + + Call tab-bar-tab-post-open-functions during tabs initialization + + * lisp/tab-bar.el (tab-bar-tabs): Run the hook + 'tab-bar-tab-post-open-functions' after creating the first tab + in the selected frame's tab-bar list of tabs (bug#74087). + Suggested by Ship Mints <shipmints@gmail.com>. + +2024-10-30 Eli Zaretskii <eliz@gnu.org> + + Prevent 'string-pixel-width' from deactivating the region + + * lisp/emacs-lisp/subr-x.el (work-buffer--release) + (string-pixel-width): Bind 'deactivate-mark' around buffer + modifications, to avoid deactivating the region as side effect of + calling this function. (Bug#74091) + +2024-10-30 Michael Albinus <michael.albinus@gmx.de> + + Tramp: Use `when-let*', `if-let*' and `and-let*' consequently + + * lisp/net/tramp-adb.el: + * lisp/net/tramp-androidsu.el: + * lisp/net/tramp-cache.el: + * lisp/net/tramp-cmds.el: + * lisp/net/tramp-compat.el: + * lisp/net/tramp-container.el: + * lisp/net/tramp-crypt.el: + * lisp/net/tramp-ftp.el: + * lisp/net/tramp-fuse.el: + * lisp/net/tramp-gvfs.el: + * lisp/net/tramp-integration.el: + * lisp/net/tramp-message.el: + * lisp/net/tramp-rclone.el: + * lisp/net/tramp-sh.el: + * lisp/net/tramp-smb.el: + * lisp/net/tramp-sshfs.el: + * lisp/net/tramp-sudoedit.el: + * lisp/net/tramp.el: + * test/lisp/net/tramp-tests.el: + Use `when-let*', `if-let*' and `and-let*' consequently. (Bug#73441) + +2024-10-29 Sean Whitton <spwhitton@spwhitton.name> + + Improve prompting for git stashes + + * lisp/vc/vc-git.el (vc-git-stash-read): New DEFAULT-MOST-RECENT + optional argument. Use format-prompt. Signal user-error + immediately if there are no stashes. Rewrite docstring. + (vc-git-stash-show, vc-git-stash-apply, vc-git-stash-pop) + (vc-git-stash-delete): Drop trailing ": " from prompts. + (vc-git-stash-pop): Pass non-nil DEFAULT-MOST-RECENT to + vc-git-stash-read. + +2024-10-29 Sean Whitton <spwhitton@spwhitton.name> + + VC Git: Use vc-deduce-fileset to determine what to stash + + * lisp/vc/vc-git.el (vc-git--deduce-files-for-stash): New function. + (vc-git-stash, vc-git-stash-snapshot): Use it to determine what + to stash. Update and expand docstrings. + (vc-git-stash-snapshot): No longer unconditionally snapshot all + uncommitted changes across the whole working tree. + +2024-10-29 Yuan Fu <casouri@gmail.com> + + Fix c-ts-common-comment-indent-new-line (bug#73900) + + * lisp/progmodes/c-ts-common.el: + (c-ts-common-comment-indent-new-line): Delete trailing + whitespace before inserting newline. The insert-line-break + function is the same as in c-indent-new-comment-line. + +2024-10-29 Sean Whitton <spwhitton@spwhitton.name> + + * lisp/vc/log-edit.el (log-edit-diff-function): Document. + +2024-10-29 Yuan Fu <casouri@gmail.com> + + Fix the call to treesit-thing-defined-p + + * lisp/treesit.el (treesit-defun-at-point): Add the necessary + 2nd argument. + +2024-10-29 Dmitry Gutov <dmitry@gutov.dev> + + project--completing-read-strict: Move some common processing here + + * lisp/progmodes/project.el (project--completing-read-strict): + Add new optional argument, COMMON-PARENT-DIRECTORY. Move the + absolute->relative processing of MB-DEFAULT and the contents of + HIST here. + (project--read-file-cpd-relative): From here. So that + 'project--read-file-absolute' can also benefit from those + conversions. + (project--read-file-absolute): Pass the new argument. + (project-read-file-name-function): Update value tags. + +2024-10-29 Dmitry Gutov <dmitry@gutov.dev> + + project--read-file-cpd-relative: Move out the 'included-cpd' logic + + * lisp/progmodes/project.el (project-find-dir): + Use 'project-files-relative-names'. Include "./" here rather than + (project--read-file-cpd-relative): ...doing it here. + +2024-10-29 Sean Whitton <spwhitton@spwhitton.name> + + Fix window selection after log-edit-show-diff + + * lisp/vc/vc.el (vc-diff-patch-string): Use display-buffer, not + pop-to-buffer, for consistency with log-edit-diff-fileset. + (vc-modify-change-comment): Use save-selected-window around + vc-diff-internal to avoid leaving the *vc-diff* window selected, + for consistency with log-edit-diff-fileset. + +2024-10-28 Alan Mackenzie <acm@muc.de> + + elisp-mode-tests.el: Add test for the added fix + + * test/lisp/progmodes/elisp-mode-tests.el + (elisp-completes-functions-after-empty-let-bindings): + New test (bug#73880). + +2024-10-28 Dmitry Gutov <dmitry@gutov.dev> + + elisp: Fix completion at funpos after empty let bindings form + + * lisp/progmodes/elisp-mode.el (elisp-completion-at-point): Use + 'skip-syntax-backward' instead of 'backward-list' since the latter + also skips over other syntax, such as empty parens (bug#73880). + +2024-10-28 Alan Mackenzie <acm@muc.de> + + Call PF correctly from pcase--edebug-match-pat-args + + Also correct a doc string and insert commentary. This fixes + bug#74052. + + * lisp/emacs-lisp/edebug.el + (edebug--match-&-spec-op <&interpose>): Correct and complete + the doc string, which now says MUST call exactly once, and + documents the return values of FUN, PF and + edebug--match-&-spec-op. Also remove an unneeded `(...) + construct. + + * lisp/emacs-lisp/pcase.el (pcase--edebug-match-pat-args): Call + PF also for the main cases handled. + +2024-10-28 Alan Mackenzie <acm@muc.de> + + CC Mode: Add/remove defun buffer locally to post-command-hook + + Also remove no longer existing hook. + + * lisp/progmodes/cc-mode.el (c-leave-cc-mode-mode): remove-hook + c-post-command buffer locally. Delete removal of non-existent + c-post-gc-hook. + (c-basic-common-init): add-hook c-post-command buffer locally. + +2024-10-28 Sean Whitton <spwhitton@spwhitton.name> + + Fix C-c C-d and C-c C-w during log-view-modify-change-comment + + * lisp/vc/vc-dispatcher.el (log-edit-diff-fileset) + (log-edit-diff-patch): Declare. + (vc-log-edit, vc-start-logentry): New optional argument + DIFF-FUNCTION to specify log-edit-diff-function in the generated + Log Edit buffer. + * lisp/vc/vc.el (vc-modify-change-comment): Pass the new + DIFF-FUNCTION argument to vc-start-logentry. + +2024-10-28 Eli Zaretskii <eliz@gnu.org> + + More workarounds for GDB bug 32313 + + * src/eval.c (backtrace_args): Same treatment as + backtrace_function. + + cherry-picked from commit b7b55df. + +2024-10-28 Eli Zaretskii <eliz@gnu.org> + + Remove unneeded workaround from w32console.c + + * src/w32console.c (w32con_write_glyphs): Remove unneeded test. + (w32con_clear_end_of_line): Fill in the glyph.frame member. + +2024-10-28 Eli Zaretskii <eliz@gnu.org> + + More workarounds for GDB bug 32313 + + * src/eval.c (backtrace_args): Same treatment as + backtrace_function. + +2024-10-28 Gerd Möllmann <gerd@gnu.org> + + Don't work around a corner case once observed + + * src/term.c (tty_write_glyphs): Refactor a bit. Don't check for null + glyph frame. + +2024-10-28 Jim Porter <jporterbugs@gmail.com> + + Fix definitions of Eshell "xtra" functions + + * lisp/eshell/em-xtra.el (eshell-parse-command): Remove unnecessary + autoload. + (eshell/substitute): Pass the correct number of arguments to + 'cl-substitute'. + (eshell/count, eshell/union, eshell/mismatch, eshell/intersection) + (eshell/set-difference, eshell/set-exclusive-or): Use named arguments + for the required arguments (bug#73738). + +2024-10-28 Dmitry Gutov <dmitry@gutov.dev> + + project-try-vc: Fix the "sometimes wrong cache" issue + + * lisp/progmodes/project.el (project-try-vc--search): + Extract from 'project-try-vc'. + (project-try-vc): Use it. + (project-try-vc--search): Call itself recursively directly, to + avoid creating invalid cache entry (bug#73801). + +2024-10-28 Paul Eggert <eggert@cs.ucla.edu> + + Work around GDB bug 32313 when debugging Emacs internals + + Problem reported by Eli Zaretskii in: + https://lists.gnu.org/r/emacs-devel/2024-10/msg00653.html + * src/eval.c (backtrace_function_body): Rename from + backtrace_function, and make it static. + (GDB_FUNCPTR): New macro. + (backtrace_function): New function pointer, for GDB only. + +2024-10-27 Protesilaos Stavrou <info@protesilaos.com> + + Update modus-themes to their version 4.6.0 + + * doc/misc/modus-themes.org + (Differences between loading and enabling) + (Option for which themes to toggle) + (Option for which themes to rotate, DIY Palette override presets) + (DIY Add padding to the mode line) + (DIY Remap face with local value): Fix typos. + (DIY Add support for solaire-mode): Fix some symbols. + (Full support for packages or face groups) + (Indirectly covered packages): Add newly supported packages. + (DIY Add support for combobulate):, + (DIY Add support for engrave-faces, DIY Add support for howm) + (DIY Add support for meow-mode): Document how to style those + packages. + (Acknowledgements): Update names of people who have in one way + or another contributed to the project. + + * etc/themes/modus-operandi-deuteranopia-theme.el: + * etc/themes/modus-operandi-theme.el: + * etc/themes/modus-operandi-tinted-theme.el: + * etc/themes/modus-operandi-tritanopia-theme.el: + * etc/themes/modus-vivendi-deuteranopia-theme.el: + * etc/themes/modus-vivendi-theme.el: + * etc/themes/modus-vivendi-tinted-theme.el: + * etc/themes/modus-vivendi-tritanopia-theme.el: + * etc/themes/modus-themes.el: Make refinements to supported + faces, add support for more faces, and tweak palette entries. + + Release notes: <https://protesilaos.com/codelog/2024-10-27-modus-themes-4.6.0/>. + +2024-10-27 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + c78b4d2b31d Fix doc string of 'wdired-use-dired-vertical-movement' + b0aaee93fde Update the documentation of void functions + 299a1f24075 ; * lisp/vc/log-edit.el (log-edit-diff-function): Grammar... + 67a27ff53bf ; Fix typos + +2024-10-27 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + dd52839dd9d * lisp/editorconfig.el (editorconfig--get-indentation): F... + +2024-10-27 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + e0f964c16df ; * etc/AUTHORS: Update. + eb18f7288b3 ; * ChangeLog.4: Update. + 8e37b537160 Skip *.dylib files in 'loaddefs-generate' + 0d8d5f10ffc Highlight namespace name in "use" clause. + d3e98487d08 ; * lisp/loadup.el: Improve file abstract + 1a91d37a21c ; * doc/lispref/control.texi (Conditionals): Fix markup. + +2024-10-27 Sean Whitton <spwhitton@spwhitton.name> + + transient.el: Replace use of obsolete if-let and when-let + + * lisp/transient.el (transient--expand-define-args) + (transient--parse-suffix, transient-get-suffix) + (transient--make-transient-map, transient--init-suffix) + (transient--init-suffix-key, transient--suspend-override) + (transient--wrap-command, transient--call-pre-command) + (transient--setup-recursion, transient--invalid) + (transient-init-value, transient-default-value) + (transient-infix-read, transient-prompt, transient--show) + (transient--insert-group, transient-format-key) + (transient-format-description, transient-format-value) + (transient--maybe-pad-keys, transient-command-summary-or-name) + (transient-show-help): + Replace use of if-let and when-let, obsolete for Emacs 31.x. + +2024-10-27 Eli Zaretskii <eliz@gnu.org> + + Allow escape from 'read-key' + + * lisp/emacs-lisp/backtrace.el (backtrace-mode-map): Add a binding + for 'abort-recursive-edit'. (Bug#73584) + +2024-10-27 Mats Lidell <mats.lidell@lidells.se> + + Accept texi2any for version identification + + * lisp/info.el (Info-file-supports-index-cookies): Accept texi2any + for version identification. (Bug#74042) + +2024-10-27 Sean Whitton <spwhitton@spwhitton.name> + + vc-git-resolve-conflicts: Extend unstage-maybe to similar operations + + * lisp/vc/vc-git.el (vc-git-resolve-when-done): When + vc-git-resolve-conflicts is unstage-maybe, don't clear the + staging area during a rebase, am, revert or cherry-pick. + (vc-git-resolve-conflicts): Update docstring in light of changes + to vc-git-resolve-when-done. + (vc-git--cmds-in-progress): Detect reverts and cherry-pick + operations in progress. + +2024-10-27 Sean Whitton <spwhitton@spwhitton.name> + + lisp/org: Backport org-mode.git fix for if-let/when-let obsolescence + + Backporting this acked by Org maintainer Ihor Radchenko. + + * lisp/org/ob-R.el (org-babel-R-associate-session): + * lisp/org/ob-clojure.el (ob-clojure-nbb-command) + (ob-clojure-cli-command): + * lisp/org/ob-core.el (org-babel-execute-src-block): + * lisp/org/ob-exp.el (org-babel-exp-code): + * lisp/org/ob-julia.el (org-babel-julia-associate-session): + * lisp/org/ob-python.el + (org-babel-python--python-util-comint-end-of-output-p): + * lisp/org/ol.el (org-insert-link): + * lisp/org/org-attach.el (org-attach): + * lisp/org/org-clock.el (org-clock-select-task): + * lisp/org/org-compat.el (fboundp): + * lisp/org/org-element-ast.el (org-element-property-raw) + (org-element-put-property, org-element-copy): + * lisp/org/org-element.el (org-element-timestamp-interpreter) + (org-element--cache-key): + * lisp/org/org-goto.el (org-goto-location): + * lisp/org/org-lint.el + (org-lint-suspicious-language-in-src-block) + (org-lint-export-option-keywords): + * lisp/org/org-macs.el (org-mks): + * lisp/org/org-persist.el: (org-persist-write:elisp): + * lisp/org/org-table.el (org-table-fedit-finish): + * lisp/org/org.el (org-entry-get-with-inheritance): + * lisp/org/ox-html.el (org-html--reference) + (org-html--build-mathjax-config, org-html-example-block): + * lisp/org/ox-latex.el (org-latex-table-row): + * lisp/org/ox.el (org-export--prune-tree) + (org-export--blindly-expand-include): + Replace use of if-let and when-let, obsolete in Emacs 31.0.50. + +2024-10-27 Dmitry Gutov <dmitry@gutov.dev> + + vc-git-log-edit-toggle-amend: Honor vc-allow-rewriting-published-history + + * etc/NEWS: Update the entry for + vc-allow-rewriting-published-history. + + * lisp/vc/vc-git.el (vc-git-log-edit-toggle-amend): + Add a check against published history (bug#64055). + +2024-10-26 Jim Porter <jporterbugs@gmail.com> + + Fix Eshell incompatibility with "[" command when eshell-pred is disabled + + * lisp/eshell/em-pred.el (eshell-pred-initialize): Ensure that + 'eshell-parse-arg-modifier' is called before 'eshell-parse-glob-chars'. + + * lisp/eshell/em-glob.el (eshell-glob-initialize): Use a number for hook + depth to be clearer. + (eshell-parse-glob-chars): Simplify; since eshell-pred's hook now runs + first, the extra code is no longer necessary. + + * test/lisp/eshell/em-glob-tests.el + (em-glob-test/test-command-without-pred): New test. + +2024-10-26 Eli Zaretskii <eliz@gnu.org> + + Fix bootstrap on MS-Windows + + * src/w32uniscribe.c (syms_of_w32uniscribe): Don't call + 'syms_of_w32dwrite' here... + * src/emacs.c (main): ...call it here. Reported by Andy Moreton + <andrewjmoreton@gmail.com>. + +2024-10-26 Earl Hyatt <okamsn@protonmail.com> + + Add delete-selection-local-mode. + + * lisp/delsel.el (delete-selection-local-mode): Add local version of + 'delete-selection-mode'. The local mode sets the value of the variable + 'delete-selection-mode' to maintain compatibility with packages and + features that consider the existing mode. + + * doc/emacs/mark.texi (Using Region): Describe + 'delete-selection-local-mode'. + + * etc/NEWS: Describe 'delete-selection-local-mode'. + +2024-10-26 Eli Zaretskii <eliz@gnu.org> + + Temporary fix for mouse events on child frames + + * src/w32inevt.c (do_mouse_event): Ignore mouse events when the + selected frame is a child frame. + +2024-10-26 Eli Zaretskii <eliz@gnu.org> + + * src/w32console.c (w32con_update_end): Fix cursor display. + +2024-10-26 Eyal Soha <eyalsoha@gmail.com> (tiny change) + + Improve Tramp VC cache + + * lisp/net/tramp-sh.el (tramp-vc-file-name-handler): + Add `file-directory-p', which is used in + `vc-find-root'. (Bug#74026) + +2024-10-26 Eli Zaretskii <eliz@gnu.org> + + Fix dimensions of child frames on w32 console + + * src/w32inevt.c (maybe_generate_resize_event): Don't generate + resize events for child frames. + +2024-10-26 Alan Mackenzie <acm@muc.de> + + * lisp/progmodes/cc-langs.el (c-cpp-matchers): Remove an unneeded let*. + +2024-10-26 Eli Zaretskii <eliz@gnu.org> + + More fixes for w32 console build + + * src/w32term.c (w32_read_socket): Don't use FRAME_OBSCURED_P, + which was removed. + * src/frame.h (struct frame): Move !HAVE_NTGUI to its original + place. + * src/treesit.c (treesit_load_language): Shut up GCC warning. + +2024-10-26 Eli Zaretskii <eliz@gnu.org> + + Adapt w32 console to tty-child-frame changes + + * src/w32console.c (w32con_write_glyphs): Use the glyph's frame, + not the root frame, to resolve faces from face IDs. + +2024-10-26 Stefan Monnier <monnier@iro.umontreal.ca> + + cond*: Add support for Pcase patterns + + * lisp/emacs-lisp/cond-star.el (cond*): Adjust docstring. + (match*): Prefer `_VAR` syntax. + (cond*-convert-condition): Add support for `pcase*`. + * doc/lispref/control.texi (cond* Macro): Document `pcase*`. + * test/lisp/emacs-lisp/cond-star-tests.el: New file. + +2024-10-25 Alan Mackenzie <acm@muc.de> + + CC Mode: correct handling of properties on #include <...> + + In C, Pike, and IDL Modes, deleting and reinserting such a < + could create havoc with the category/syntax-table properties on + the < and >. Also the contents of <...> should only get paren + properties when the #include is present and correct. + + * lisp/progmodes/cc-fonts.el (c-cpp-matchers): Replace the + c-make-font-lock-search-function which put properties on the + <...> with a simple matcher. + + * lisp/progmodes/cc-langs.el + (c-get-state-before-change-functions) + (c-before-font-lock-functions): Add respectively + c-before-change-include-<> and c-after-change-include-<> in the + C, Pike and IDL entries of these variables. + + * lisp/progmodes/cc-mode.el (c-before-change-include-<>) + (c-after-change-include-<>): New functions. + +2024-10-25 Cecilio Pardo <cpardo@imayhem.com> + + Implement drawing text with DirectWrite on MS-Windows. + + This adds support for color fonts. + * configure.ac: Add src/w32drite to W32_OBJ. + * src/w32dwrite.c: New file. + (w32-initialize-direct-write): New function, initialize the + DirectWrite library if it is available, and required global + variables. + (w32_use_direct_write): New function, check if DirectWrite + is available and activated by the user. + (w32_dwrite_encode_char): New function, replacement for HarfBuzz's + 'encode_char'. + (w32_dwrite_text_extents): New function, replacement for w32font + text_extents. + (w32_dwrite_draw): New function, replacement for w32font draw. + (w32_dwrite_free_cached_face): New function, used in the font + deletion process to also delete DirectWrite data. + (verify_hr): New function, verify COM method results. + (release_com): New function, release a COM object. + (w32-dwrite-available): New function, returns true if DirectWrite + is available. + (w32-dwrite-reinit): New function, reinitialize DirectWrite, + optionally setting some rendering parameters. + * src/w32font.c (w32font_text_extents): If DirectWrite is enabled, + call 'w32_dwrite_text_extents'. + (w32font_draw): If DirectWrite is enabled, call 'w32_dwrite_draw'. + * src/w32uniscribe.c: (w32hb_encode_char): If DirectWrite is enabled, + call 'w32_dwrite_encode_char'. + (syms_of_w32uniscribe_for_pdumper): Initialize DirectWrite. + (uniscribe_close): Free DirectWrite data for the font. + + Bug#73730 + +2024-10-25 Cecilio Pardo <cpardo@imayhem.com> + + Improve drag and drop on MS-Windows (bug#3468) + + Add support for 'dnd-scroll-margin' and 'dnd-indicate-insertion-point' + by calling 'dnd-handle-movement' when dragging the mouse. + + * lisp/term/w32-win.el (w32-drag-n-drop): Call 'dnd-handle-movement' + when applicable. + * src/w32fns.c (w32_handle_drag_movement): New function, sends a + WM_EMACS_DRAGOVER message. + (w32_drop_target_DragEnter): Call 'w32_handle_drag_movement'. + (w32_drop_target_DragOver): Call 'w32_handle_drag_movement'. + * src/w32term.c: (w32_read_socket): Handle WM_EMACS_DRAGOVER, + sending a drag-n-drop event. + * src/w32term.h: Define new WM_EMACS_DRAGOVER message. + +2024-10-25 Sean Whitton <spwhitton@spwhitton.name> + + save-buffers-kill-emacs: Adjust confirmation prompt when restarting + + * lisp/files.el (save-buffers-kill-emacs): When restarting, ask + "Really restart Emacs?". + +2024-10-25 Sean Whitton <spwhitton@spwhitton.name> + + vc-modify-change-comment: Revert Log View buffer + + * lisp/vc/vc.el (vc-modify-change-comment): Revert the Log View + buffer after modifying the change comment. + +2024-10-24 Eli Zaretskii <eliz@gnu.org> + + Fix error message in charset.c + + * src/charset.c (Fdefine_charset_internal): Don't reference + uninitialized value in error message. (Bug#73985) + +2024-10-24 Aleksandr Vityazev <avityazev@disroot.org> + + vc-clone: Make interactive; call vc-guess-url-backend + + * lisp/vc/vc.el (vc-clone): Make interactive. Call + vc-guess-url-backend. Always return DIRECTORY if it names a + directory. New optional argument OPEN-DIR. + (vc--remotes-history): New defvar. + * etc/NEWS: Announce these changes. + +2024-10-24 Aleksandr Vityazev <avityazev@disroot.org> + + Move package-vc-heuristic-alist and related to vc.el + + * lisp/emacs-lisp/package-vc.el (package-vc--backend-type) + (package-vc-heuristic-alist, package-vc--guess-backend): Rename + to vc-cloneable-backends-custom-type, vc-clone-heuristic-alist + and vc-guess-url-backend respectively, and move to + lisp/vc/vc.el. Make package-vc-heuristic-alist an obsolete + alias. + (package-vc--clone, package-vc--read-package-name) + (package-vc-install, package-vc-checkout): Use + vc-guess-url-backend. + * lisp/vc/vc.el (vc-cloneable-backends-custom-type) + (vc-clone-heuristic-alist, vc-guess-url-backend): New defconst, + defcustom and defun, respectively: renamed and moved here from + lisp/emacs-lisp/package-vc.el. + +2024-10-24 Michael Albinus <michael.albinus@gmx.de> + + * doc/misc/tramp.texi (Bug Reports): Explain bisecting. + +2024-10-24 Sean Whitton <spwhitton@spwhitton.name> + + Mark if-let and when-let obsolete + + * lisp/subr.el (if-let*, when-let*, if-let, when-let): Mark + if-let and when-let obsolete (bug#73853 and elsewhere). Move + docstring text around so that if-let* and when-let* descriptions + no longer refer to if-let and when-let. + + * etc/NEWS: Announce the change. + + * admin/admin.el (reminder-for-release-blocking-bugs): + * doc/misc/erc.texi (display-buffer): + * lisp/ansi-color.el (ansi-color-apply) + (ansi-color--face-vec-face): + * lisp/ansi-osc.el (ansi-osc-apply-on-region) + (ansi-osc-hyperlink): + * lisp/arc-mode.el (archive-goto-file) + (archive-next-file-displayer): + * lisp/auth-source-pass.el (auth-source-pass-search) + (auth-source-pass--parse-data) + (auth-source-pass--find-match-many): + * lisp/autorevert.el (auto-revert-notify-rm-watch): + * lisp/buff-menu.el (Buffer-menu-unmark-all-buffers) + (Buffer-menu-group-by-root): + * lisp/calendar/parse-time.el (parse-iso8601-time-string): + * lisp/cedet/pulse.el (pulse-tick): + * lisp/comint.el (comint--fontify-input-ppss-flush-indirect) + (comint--intersect-regions): + * lisp/completion-preview.el (completion-preview--try-table) + (completion-preview--capf-wrapper, completion-preview--update): + * lisp/cus-edit.el (setopt--set) + (custom-dirlocals-maybe-update-cons, custom-dirlocals-validate): + * lisp/custom.el (load-theme): + * lisp/descr-text.el (describe-char): + * lisp/desktop.el (desktop--emacs-pid-running-p): + * lisp/dired-x.el (menu): + * lisp/dired.el (dired-font-lock-keywords) + (dired-insert-directory, dired--insert-disk-space, dired-mode): + * lisp/dnd.el (dnd-handle-multiple-urls): + * lisp/dom.el (dom-remove-attribute): + * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): + * lisp/emacs-lisp/bytecomp.el (bytecomp--custom-declare): + * lisp/emacs-lisp/comp-common.el (comp-function-type-spec): + * lisp/emacs-lisp/comp-cstr.el (comp--all-classes) + (comp-cstr-set-range-for-arithm, comp--cstr-union-1-no-mem) + (comp-cstr-intersection-no-mem, comp-cstr-fixnum-p) + (comp-cstr-type-p): + * lisp/emacs-lisp/comp-run.el (comp-subr-trampoline-install) + (native--compile-async): + * lisp/emacs-lisp/comp.el (comp--get-function-cstr) + (comp--function-pure-p, comp--intern-func-in-ctxt) + (comp--addr-to-bb-name, comp--emit-assume, comp--maybe-add-vmvar) + (comp--add-call-cstr, comp--compute-dominator-tree) + (comp--dom-tree-walker, comp--ssa-rename) + (comp--function-call-maybe-fold, comp--fwprop-call) + (comp--call-optim-func): + * lisp/emacs-lisp/edebug.el (edebug-global-prefix) + (edebug-remove-instrumentation): + * lisp/emacs-lisp/eieio.el (initialize-instance): + * lisp/emacs-lisp/ert-x.el (ert-resource-directory): + * lisp/emacs-lisp/ert.el (ert--expand-should-1) + (ert-test-location, ert-write-junit-test-report) + (ert-test--erts-test): + * lisp/emacs-lisp/icons.el (icon-complete-spec, icon-string) + (icons--create): + * lisp/emacs-lisp/lisp-mode.el (lisp--local-defform-body-p): + * lisp/emacs-lisp/loaddefs-gen.el + (loaddefs-generate--make-autoload) + (loaddefs-generate--parse-file): + * lisp/emacs-lisp/multisession.el + (multisession-edit-mode--revert, multisession-edit-value): + * lisp/emacs-lisp/package-vc.el (package-vc--read-archive-data) + (package-vc--version, package-vc--clone): + * lisp/emacs-lisp/package.el (package--reload-previously-loaded): + * lisp/emacs-lisp/pp.el (pp--insert-lisp): + * lisp/emacs-lisp/subr-x.el (add-display-text-property): + * lisp/emacs-lisp/tabulated-list.el (tabulated-list-print): + * lisp/emacs-lisp/timer.el (run-at-time): + * lisp/emacs-lisp/vtable.el (vtable-goto-table) + (vtable-goto-column, vtable-update-object, vtable--insert-line) + (vtable--compute-widths, vtable--make-keymap): + * lisp/emacs-lisp/warnings.el (display-warning): + * lisp/epa-file.el (epa-file-insert-file-contents): + * lisp/epa.el (epa-show-key): + * lisp/erc/erc-backend.el (erc--split-line, erc--conceal-prompt) + (PRIVMSG, erc--get-isupport-entry): + * lisp/erc/erc-button.el (erc-button-add-nickname-buttons) + (erc--button-next): + * lisp/erc/erc-common.el (erc--find-group): + * lisp/erc/erc-fill.el (erc-fill, erc-fill-static) + (erc-fill--wrap-escape-hidden-speaker) + (erc-fill--wrap-unmerge-on-date-stamp) + (erc-fill--wrap-massage-initial-message-post-clear) + (erc-fill-wrap, erc-fill--wrap-rejigger-region): + * lisp/erc/erc-goodies.el (erc--scrolltobottom-all) + (erc--keep-place-indicator-on-window-buffer-change) + (keep-place-indicator, erc--keep-place-indicator-adjust-on-clear) + (erc-keep-place-move, erc--command-indicator-display): + * lisp/erc/erc-ibuffer.el (erc-members): + * lisp/erc/erc-join.el (erc-join--remove-requested-channel) + (erc-autojoin--join): + * lisp/erc/erc-networks.el + (erc-networks--id-qualifying-init-parts, erc-networks--id-reload) + (erc-networks--id-ensure-comparable) + (erc-networks--reclaim-orphaned-target-buffers) + (erc-networks--server-select): + * lisp/erc/erc-nicks.el (erc-nicks-invert) + (erc-nicks--redirect-face-widget-link, erc-nicks--highlight) + (erc-nicks--highlight-button) + (erc-nicks--list-faces-help-button-action, erc-nicks-list-faces) + (erc-nicks-refresh, erc-nicks--colors-from-faces) + (erc-nicks--track-prioritize) + (erc-nicks--remember-face-for-track): + * lisp/erc/erc-notify.el (querypoll, erc--querypoll-get-next) + (erc--querypoll-on-352, erc--querypoll-send): + * lisp/erc/erc-sasl.el (erc-sasl--read-password): + * lisp/erc/erc-services.el + (erc-services-issue-ghost-and-retry-nick): + * lisp/erc/erc-speedbar.el (erc-speedbar--ensure, nickbar) + (erc-speedbar-toggle-nicknames-window-lock) + (erc-speedbar--compose-nicks-face): + * lisp/erc/erc-stamp.el (erc-stamp--recover-on-reconnect) + (erc-stamp-prefix-log-filter, erc--conceal-prompt) + (erc--insert-timestamp-left, erc-insert-timestamp-right) + (erc-stamp--defer-date-insertion-on-post-modify) + (erc-insert-timestamp-left-and-right) + (erc-stamp--redo-right-stamp-post-clear) + (erc-stamp--reset-on-clear, erc-stamp--dedupe-date-stamps): + * lisp/erc/erc-status-sidebar.el (bufbar) + (erc-status-sidebar-prefer-target-as-name) + (erc-status-sidebar-default-allsort, erc-status-sidebar-click): + * lisp/erc/erc-track.el (erc-track--shortened-names-get) + (erc-track--setup, erc-track--select-mode-line-face) + (erc-track-modified-channels, erc-track--collect-faces-in) + (erc-track--switch-buffer, erc-track--replace-killed-buffer): + * lisp/erc/erc-truncate.el (erc-truncate--setup) + (erc-truncate-buffer): + * lisp/erc/erc.el (erc--ensure-query-member) + (erc--ensure-query-members, erc--remove-channel-users-but) + (erc--cusr-change-status, erc--find-mode, erc--update-modules) + (erc-log-irc-protocol, erc--refresh-prompt) + (erc--restore-important-text-props) + (erc--order-text-properties-from-hash, erc-send-input-line) + (erc-cmd-IGNORE, erc--unignore-user, erc-cmd-QUERY) + (erc-cmd-BANLIST, erc--speakerize-nick) + (erc--format-speaker-input-message, erc-channel-receive-names) + (erc-send-current-line, erc-format-target-and/or-network) + (erc-kill-buffer-function, erc-restore-text-properties) + (erc--get-eq-comparable-cmd): + * lisp/eshell/em-alias.el (eshell-maybe-replace-by-alias--which) + (eshell-maybe-replace-by-alias): + * lisp/eshell/em-glob.el (eshell-glob-convert): + * lisp/eshell/em-pred.el (eshell-pred-user-or-group) + (eshell-pred-file-time, eshell-pred-file-type) + (eshell-pred-file-mode, eshell-pred-file-links) + (eshell-pred-file-size): + * lisp/eshell/em-prompt.el (eshell-forward-paragraph) + (eshell-next-prompt): + * lisp/eshell/esh-arg.el (eshell-resolve-current-argument): + * lisp/eshell/esh-cmd.el (eshell-do-eval, eshell/which) + (eshell-plain-command--which, eshell-plain-command): + * lisp/eshell/esh-io.el (eshell-duplicate-handles) + (eshell-protect-handles, eshell-get-target, eshell-close-target): + * lisp/eshell/esh-proc.el (eshell-sentinel): + * lisp/eshell/esh-var.el (eshell-parse-variable-ref) + (eshell-get-variable, eshell-set-variable): + * lisp/faces.el (face-at-point): + * lisp/ffap.el (ffap-in-project): + * lisp/filenotify.el (file-notify--rm-descriptor): + * lisp/files-x.el (read-dir-locals-file) + (connection-local-update-profile-variables) + (connection-local-value): + * lisp/files.el (file-remote-p, abbreviate-file-name) + (set-auto-mode, hack-local-variables) + (revert-buffer-restore-read-only): + * lisp/find-dired.el (find-dired-sort-by-filename): + * lisp/font-lock.el (font-lock--filter-keywords): + * lisp/gnus/gnus-art.el (article-emojize-symbols): + * lisp/gnus/gnus-int.el (gnus-close-server): + * lisp/gnus/gnus-search.el (gnus-search-transform) + (gnus-search-indexed-parse-output, gnus-search-server-to-engine): + * lisp/gnus/gnus-sum.el (gnus-collect-urls, gnus-shorten-url): + * lisp/gnus/gnus.el (gnus-check-backend-function): + * lisp/gnus/message.el (message-send-mail): + * lisp/gnus/mml.el (mml-generate-mime, mml-insert-mime-headers): + * lisp/gnus/nnatom.el (nnatom--read-feed, nnatom--read-article) + (nnatom--read-article-or-group-authors, nnatom--read-publish) + (nnatom--read-update, nnatom--read-links): + * lisp/gnus/nnfeed.el (nnfeed--read-server, nnfeed--write-server) + (nnfeed--parse-feed, nnfeed--group-data, nnfeed-retrieve-article) + (nnfeed-retrieve-headers, nnfeed--print-part) + (nnfeed-request-article, nnfeed-request-group) + (nnfeed-request-list, nnfeed--group-description) + (nnfeed-request-group-description) + (nnfeed-request-list-newsgroups, nnfeed-request-rename-group): + * lisp/gnus/nnmh.el (nnmh-update-gnus-unreads): + * lisp/help-fns.el (help-find-source) + (help-fns--insert-menu-bindings, help-fns--mention-first-release) + (help-fns--mention-shortdoc-groups) + (help-fns--customize-variable-version) + (help-fns--face-custom-version-info, describe-mode): + * lisp/help-mode.el (help-make-xrefs): + * lisp/help.el (help-key-description, help--describe-command): + * lisp/hfy-cmap.el (htmlfontify-load-rgb-file): + * lisp/ibuf-ext.el (ibuffer-jump-to-filter-group) + (ibuffer-kill-filter-group, ibuffer-kill-line) + (ibuffer-save-filter-groups, ibuffer-save-filters, filename) + (basename, file-extension, ibuffer-diff-buffer-with-file-1) + (ibuffer-mark-by-file-name-regexp) + (ibuffer-mark-by-content-regexp): + * lisp/ibuf-macs.el (ibuffer-aif, ibuffer-awhen): + * lisp/ibuffer.el (ibuffer-mouse-toggle-mark) + (ibuffer-toggle-marks, ibuffer-mark-interactive) + (ibuffer-compile-format, process, ibuffer-map-lines): + * lisp/image.el (image--compute-map) + (image--compute-original-map): + * lisp/image/exif.el (exif-parse-buffer): + * lisp/image/image-converter.el (image-convert-p, image-convert) + (image-converter--find-converter): + * lisp/image/image-dired-util.el + (image-dired-file-name-at-point): + * lisp/image/image-dired.el (image-dired-track-original-file) + (image-dired--on-file-in-dired-buffer) + (image-dired--with-thumbnail-buffer) + (image-dired-jump-original-dired-buffer) + (image-dired--slideshow-step, image-dired-display-image): + * lisp/image/wallpaper.el (wallpaper--init-action-kill) + (wallpaper--find-setter, wallpaper--find-command) + (wallpaper--find-command-args, wallpaper--x-monitor-name): + * lisp/info-look.el (info-lookup-interactive-arguments) + (info-complete)::(:mode): + * lisp/info.el (info-pop-to-buffer, Info-read-node-name-1): + * lisp/international/emoji.el (emoji--adjust-displayable-1) + (emoji--add-recent): + * lisp/jsonrpc.el (jsonrpc--call-deferred) + (jsonrpc--process-sentinel, jsonrpc--remove): + * lisp/keymap.el (keymap-local-lookup): + * lisp/mail/emacsbug.el (report-emacs-bug-hook) + (submit-emacs-patch): + * lisp/mail/ietf-drums.el (ietf-drums-parse-addresses): + * lisp/mail/mailclient.el (mailclient-send-it): + * lisp/mail/rfc6068.el (rfc6068-parse-mailto-url): + * lisp/mail/undigest.el (rmail-digest-parse-mixed-mime): + * lisp/minibuffer.el (completion-metadata-get) + (completions--after-change) + (minibuffer-visible-completions--filter): + * lisp/net/browse-url.el (browse-url-url-at-point) + (browse-url-file-url, browse-url-emacs): + * lisp/net/dbus.el (dbus-byte-array-to-string) + (dbus-monitor-goto-serial): + * lisp/net/dictionary.el (dictionary-search): + * lisp/net/eww.el (eww--download-directory) + (eww-auto-rename-buffer, eww-open-in-new-buffer, eww-submit) + (eww-follow-link, eww-read-alternate-url) + (eww-copy-alternate-url): + * lisp/net/goto-addr.el (goto-address-at-point): + * lisp/net/mailcap.el (mailcap-mime-info): + * lisp/net/rcirc.el (rcirc, rcirc-connect, rcirc-send-string) + (rcirc-kill-buffer-hook, rcirc-print, rcirc-when) + (rcirc-color-attributes, rcirc-handler-NICK) + (rcirc-handler-TAGMSG, rcirc-handler-BATCH): + * lisp/net/shr.el (shr-descend, shr-adaptive-fill-function) + (shr-correct-dom-case, shr-tag-a): + * lisp/net/sieve.el (sieve-manage-quit): + * lisp/outline.el (outline-cycle-buffer): + * lisp/pcmpl-git.el (pcmpl-git--tracked-file-predicate): + * lisp/proced.el (proced-auto-update-timer): + * lisp/progmodes/bug-reference.el + (bug-reference-try-setup-from-vc): + * lisp/progmodes/c-ts-common.el (c-ts-common--fill-paragraph): + * lisp/progmodes/c-ts-mode.el (c-ts-mode--preproc-offset) + (c-ts-mode--anchor-prev-sibling, c-ts-mode-indent-defun): + * lisp/progmodes/compile.el (compilation-error-properties) + (compilation-find-file-1): + * lisp/progmodes/eglot.el (eglot--check-object) + (eglot--read-server, eglot-upgrade-eglot) + (eglot-handle-notification, eglot--CompletionParams) + (eglot-completion-at-point, eglot--sig-info) + (eglot-register-capability): + * lisp/progmodes/elisp-mode.el + (emacs-lisp-native-compile-and-load) + (elisp-eldoc-var-docstring-with-value): + * lisp/progmodes/erts-mode.el (erts-mode--goto-start-of-test): + * lisp/progmodes/flymake.el (flymake--update-eol-overlays) + (flymake-eldoc-function): + * lisp/progmodes/gdb-mi.el (gdb-breakpoints-list-handler-custom) + (gdb-frame-handler): + * lisp/progmodes/go-ts-mode.el (go-ts-mode-docstring) + (go-ts-mode--comment-on-previous-line-p) + (go-ts-mode--get-test-regexp-at-point) + (go-ts-mode-test-this-file): + * lisp/progmodes/grep.el (lgrep, rgrep-default-command) + (grep-file-at-point): + * lisp/progmodes/perl-mode.el (perl--end-of-format-p): + * lisp/progmodes/php-ts-mode.el + (php-ts-mode--anchor-prev-sibling, php-ts-mode--indent-defun): + * lisp/progmodes/project.el (project--other-place-command) + (project--find-default-from, project--transplant-file-name) + (project-prefixed-buffer-name, project--remove-from-project-list) + (project-prompt-project-name, project-remember-projects-under) + (project--switch-project-command) + (project-uniquify-dirname-transform, project-mode-line-format): + * lisp/progmodes/python.el + (python-font-lock-keywords-maximum-decoration) + (python--treesit-fontify-union-types) + (python-shell-get-process-name, python-shell-restart) + (python-shell-completion-at-point, python-ffap-module-path) + (python-util-comint-end-of-output-p, python--import-sources) + (python-add-import, python-remove-import, python-fix-imports): + * lisp/progmodes/xref.el (xref--add-log-current-defun): + * lisp/repeat.el (repeat-echo-message-string): + * lisp/saveplace.el (save-place-dired-hook): + * lisp/server.el (server-save-buffers-kill-terminal): + * lisp/shadowfile.el (shadow-make-fullname) + (shadow-contract-file-name, shadow-define-literal-group): + * lisp/shell.el (shell-highlight-undef-mode): + * lisp/simple.el (command-completion-using-modes-p) + (command-execute, file-user-uid, file-group-gid) + (first-completion, last-completion, switch-to-completions): + * lisp/startup.el (startup--load-user-init-file): + * lisp/tab-line.el (tab-line-tabs-buffer-group-by-project): + * lisp/tar-mode.el (tar-goto-file, tar-next-file-displayer): + * lisp/term/android-win.el (android-encode-select-string) + (gui-backend-set-selection): + * lisp/term/haiku-win.el (haiku-dnd-convert-string) + (haiku-select-encode-xstring, haiku-select-encode-utf-8-string): + * lisp/textmodes/emacs-news-mode.el (emacs-news--buttonize): + * lisp/textmodes/ispell.el (ispell-completion-at-point): + * lisp/textmodes/sgml-mode.el (sgml-validate) + (html-mode--complete-at-point): + * lisp/textmodes/tex-mode.el (tex-recenter-output-buffer) + (xref-backend-references): + * lisp/thingatpt.el (thing-at-point-file-at-point) + (thing-at-point-face-at-point): + * lisp/thread.el (thread-list--get-status): + * lisp/time.el (world-clock-copy-time-as-kill, world-clock): + * lisp/touch-screen.el (touch-screen-handle-touch): + * lisp/treesit.el (treesit-language-at, treesit-node-at) + (treesit-node-on, treesit-buffer-root-node) + (treesit-node-field-name, treesit-local-parsers-at) + (treesit-local-parsers-on, treesit--cleanup-local-range-overlays) + (treesit-font-lock-recompute-features) + (treesit-font-lock-fontify-region, treesit-transpose-sexps) + (treesit-add-log-current-defun, treesit-major-mode-setup) + (treesit--explorer-refresh, treesit-install-language-grammar): + * lisp/url/url.el (url-retrieve-synchronously): + * lisp/vc/smerge-mode.el (smerge-diff): + * lisp/vc/vc-dir.el (vc-dir): + * lisp/vc/vc-dispatcher.el (vc-do-async-command): + * lisp/vc/vc-git.el (vc-git-dir--branch-headers) + (vc-git-dir--stash-headers, vc-git--log-edit-summary-check) + (vc-git-stash-list): + * lisp/vc/vc.el (vc-responsible-backend, vc-buffer-sync-fileset) + (vc-clone): + * lisp/visual-wrap.el (visual-wrap--apply-to-line): + * lisp/wid-edit.el (widget-text) + (widget-editable-list-insert-before): + * lisp/window-tool-bar.el + (window-tool-bar--keymap-entry-to-string): + * lisp/window.el (display-buffer, display-buffer-full-frame) + (window-point-context-set, window-point-context-use) + (window-point-context-use-default-function): + * lisp/xdg.el (xdg-current-desktop): + * lisp/xwidget.el (xwidget-webkit-callback): + * lisp/yank-media.el (yank-media--get-selection) + (yank-media-types): + * test/lisp/comint-tests.el + (comint-tests/test-password-function): + * test/lisp/completion-preview-tests.el + (completion-preview-tests--capf): + * test/lisp/cus-edit-tests.el (with-cus-edit-test): + * test/lisp/erc/erc-scenarios-base-local-modules.el + (-phony-sblm-): + * test/lisp/erc/erc-scenarios-stamp.el + (erc-scenarios-stamp--on-post-modify): + * test/lisp/erc/erc-services-tests.el + (erc-services-tests--asp-parse-entry): + * test/lisp/erc/erc-tests.el (erc-modules--internal-property) + (erc--find-mode, erc-tests--update-modules): + * test/lisp/erc/resources/erc-d/erc-d-i.el + (erc-d-i--parse-message): + * test/lisp/erc/resources/erc-d/erc-d-t.el + (erc-d-t-kill-related-buffers, erc-d-t-with-cleanup): + * test/lisp/erc/resources/erc-d/erc-d-tests.el + (erc-d-i--parse-message--irc-parser-tests): + * test/lisp/erc/resources/erc-d/erc-d-u.el + (erc-d-u--read-exchange-slowly): + * test/lisp/erc/resources/erc-d/erc-d.el (erc-d--expire) + (erc-d--finalize-done, erc-d--command-handle-all): + * test/lisp/erc/resources/erc-scenarios-common.el + (erc-scenarios-common-with-cleanup): + * test/lisp/erc/resources/erc-tests-common.el + (erc-tests--common-display-message) + (erc-tests-common-create-subprocess): + * test/lisp/ibuffer-tests.el (ibuffer-test-Bug25058): + * test/lisp/international/mule-tests.el + (mule-cmds-tests--ucs-names-missing-names): + * test/lisp/progmodes/python-tests.el + (python-tests-get-shell-interpreter) + (python-tests--get-interpreter-info): + * test/lisp/progmodes/ruby-ts-mode-tests.el + (ruby-ts-resource-file): + * test/lisp/replace-tests.el (replace-tests-with-undo): + * test/src/emacs-tests.el (emacs-tests--seccomp-debug): + * test/src/process-tests.el (process-tests--emacs-command) + (process-tests--emacs-binary, process-tests--dump-file): + * test/src/treesit-tests.el (treesit--ert-test-defun-navigation): + Replace use of the now-obsolete if-let and when-let. + +2024-10-24 Sean Whitton <spwhitton@spwhitton.name> + + Merge from origin/emacs-30 + + eae798486a9 Update special conditionals documentation + +2024-10-24 Sean Whitton <spwhitton@spwhitton.name> + + Merge from origin/emacs-30 + + f5451b6a066 ; Improve comment from last change + 09e05f7ee4d Document and-let* vs. when-let* usage convention + b7a375f5c49 Fix error when splicing Eshell globs and a glob expands t... + 2289e162268 * etc/package-keyring.gpg: Update expiration and add new key + 48024096fea Avoid crashes when scrolling images under winner-mode + c35d6ba9f07 ; * doc/lispref/display.texi (Fontsets): Clarify wording. + 88a1a32fc57 ; * doc/lispref/display.texi (Fontsets): Fix typo. + 6be47058cd7 ; Add indexing for 'use-default-font-for-symbols' + 681f70ea04a * src/lread.c (READ_AND_BUFFER): Reject negative chars (b... + ac4151e0023 * test/Makefile.in: Do not show emacs-module-tests.log by... + 4e0cb960dbd Fix 'php-ts-mode': better indentation and font locking + +2024-10-24 Sean Whitton <spwhitton@spwhitton.name> + + vc-allow-rewriting-published-history: Use nil->ask->t + + * lisp/vc/vc.el (vc-allow-rewriting-published-history): Use + increasingly permissive values nil->ask->t rather than + nil->t->no-ask. Recommend `ask' or nil. + * lisp/vc/vc-git.el (vc-git--assert-allowed-rewrite): Update + accordingly. + +2024-10-23 Dmitry Gutov <dmitry@gutov.dev> + + project-prompter: Update the docstring for the recent change + + * lisp/progmodes/project.el (project-prompter): + Update the docstring too (bug#70833). + +2024-10-23 Alan Coopersmith <alan.coopersmith@oracle.com> (tiny change) + + configure.ac: Fix FIONREAD check with gcc-14 on Solaris + + Before this fix, it would fail to build with gcc-14 with the error: + conftest.c: In function 'main': + conftest.c:265:11: error: implicit declaration of function 'ioctl' + [-Wimplicit-function-declaration] + 265 | int foo = ioctl (0, FIONREAD, &foo); + | ^~~~~ + + Solaris documents ioctl() as being defined in <unistd.h>. + + * configure.ac: Fix FIONREAD check with gcc-14 on Solaris. + Ref: + https://lists.gnu.org/r/emacs-devel/2024-10/msg00195.html + +2024-10-23 Gerd Möllmann <gerd@gnu.org> + + Handle obscured cursor differently + + This also fixes an error made when porting this to savannah. + + * src/dispnew.c (abs_cursor_pos, (is_cursor_obscured) + (terminal_cursor_magic): Port correctly and fix. + +2024-10-23 Gerd Möllmann <gerd@gnu.org> + + Deal with wide characters + + * src/dispnew.c (make_glyph_space): New function. + (neutralize_wide_char): New function. + (produce_box_sides, copy_child_glyphs): Call neutralize_wide_char. + +2024-10-23 Gerd Möllmann <gerd@gnu.org> + + Fix copy/paste error + + * src/dispnew.c (produce_box_glyphs): DonÄt set multibyte_p twice, set + padding_p. + +2024-10-23 Paul Eggert <eggert@cs.ucla.edu> + + Fix UB in line_hash_code + + * src/dispnew.c (line_hash_code): Avoid undefined behavior on + integer overflow. + +2024-10-23 Gerd Möllmann <gerd@gnu.org> + + Some cleanup of frame_parm_table + + * src/frame.c (frame_parms): Use built-in symbols for all entries. + (syms_of_frame): Check that entries are valid built-in symbols. + +2024-10-23 Sean Whitton <spwhitton@spwhitton.name> + + vc-git-modify-change-comment: Check for other autosquashing + + * lisp/vc/vc-git.el (vc-git-modify-change-comment): Check that a + rebase with --autosquash won't make any other changes and give + the user a chance to abort. + +2024-10-23 Sean Whitton <spwhitton@spwhitton.name> + + Support modifying VC change comments for Git + + * lisp/vc/vc.el (vc-allow-rewriting-published-history): New option. + * lisp/vc/vc-git.el (vc-git--assert-allowed-rewrite) + (vc-git-modify-change-comment): New functions (bug#64055). + + (vc-git--current-branch): Factor out of vc-git-dir--branch-headers. + (vc-git--log-edit-extract-headers): Factor out of vc-git-checkin. + + * etc/NEWS: Announce the new support and option. + +2024-10-22 Andrea Corallo <acorallo@gnu.org> + + Add 'native-compile-directory' (bug#73303) + + * lisp/emacs-lisp/comp.el (native-compile-directory): New function. + * etc/NEWS (native-compile-directory): Add to NEWS. + +2024-10-22 Andrea Corallo <acorallo@gnu.org> + + * Rework 'comp-lookup-eln' + + * lisp/emacs-lisp/comp.el (comp-lookup-eln): Rework to use + 'comp-eln-load-path-eff'. + +2024-10-22 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/vc/smerge-mode.el (global-map): Mitigate bug#73544 + +2024-10-22 Eli Zaretskii <eliz@gnu.org> + + * src/term.c (tty_display_dimension): Avoid warnings. + + Fix commenting conventions. + +2024-10-22 Eli Zaretskii <eliz@gnu.org> + + Fix compilation warnings + + * src/frame.c (tty_child_size_param): + * src/frame.h (MOUSE_HL_INFO): Avoid NULL dereference warnings. + +2024-10-22 Sebastián Monía <sebastian@sebasmonia.com> + + Add customization to let EWW guess content-type if needed + + * lisp/net/eww.el (eww-guess-content-type-functions): New user option. + (eww--guess-content-type, eww--html-if-doctype): New functions. + (eww-render): Call 'eww--guess-content-type' (bug#73133). + +2024-10-22 Gerd Möllmann <gerd@gnu.org> + + Don't ignore .patch files + + This is VERY bad for magit users like me. + +2024-10-22 Gerd Möllmann <gerd@gnu.org> + + Comment + + Comment + +2024-10-22 Gerd Möllmann <gerd@gnu.org> + + Don't set internal_last_event_frame to nil + + * src/frame.c (do_switch_frame): Do not set internal_last_event_frame to + nil on ttys. + +2024-10-22 Gerd Möllmann <gerd@gnu.org> + + Minor refactoring + +2024-10-22 Gerd Möllmann <gerd@gnu.org> + + Accept frame param width/height of 0 + + * src/frame.c (tty_child_size_param): Accept values of 0. + +2024-10-22 Gerd Möllmann <gerd@gnu.org> + + Don't check for child frame support + + * lisp/paren.el (show-paren-function): Don't check with + display-graphics-p or featurep. + +2024-10-22 Gerd Möllmann <gerd@gnu.org> + + Set top terminal frame also to children + + * src/frame.c (make_terminal_frame): Don't check for being root when + setting top_frame. + +2024-10-22 Gerd Möllmann <gerd@gnu.org> + + Check for tty-child-frames feature in show-paren + + * lisp/paren.el (show-paren-function): Don't rely on display-graphic-p, + also check tty-child-frames feature. + +2024-10-22 Gerd Möllmann <gerd@gnu.org> + + Initial child frames based on master + + This is based on a diff from 2024-10-15 which still applied. + Since then, I've inadvertantly modified the igc branch so that + it is no longer possible to get a clean diff of what has changed + since I created the branch. + +2024-10-22 Stefan Monnier <monnier@iro.umontreal.ca> + + Merge branch 'master' of git+ssh://git.sv.gnu.org/srv/git/emacs + +2024-10-22 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/files.el (require-with-check): Provide more info in the error message + + Rather than only show the "new" file to be loaded, show also the + name of the currently loaded file, to clarify the conflict. + +2024-10-21 Jim Porter <jporterbugs@gmail.com> + + Fix a race condition when running Eshell startup scripts + + Previously, these scripts could run before all the Eshell modules had + fully-initialized. + + * lisp/eshell/esh-mode.el (eshell-after-initialize-hook): New hook... + (eshell-mode): ... run it. + + * lisp/eshell/em-script.el (eshell-run-startup-scripts): New function... + (eshell-script-initialize): ... add it to + 'eshell-after-initialize-hook'. + + * etc/NEWS: Announce 'eshell-after-initialize-hook'. + +2024-10-21 Stephen Berman <stephen.berman@gmx.net> + + Let 'tex-view' show PDFs made without a DVI (bug#73854) + + * lisp/textmodes/tex-mode.el (tex-print-file): Update doc string + to mention 'tex-compile'. + (tex-compile-commands): Add entries for 'evince' and 'mupdf'. + (tex-compile): Set 'tex-print-file'. + +2024-10-21 Eli Zaretskii <eliz@gnu.org> + + Revert "; Fix last change." + + This reverts commit 75fa0cc1ae2b53fe169fdcfef52bee6719eb38a7. + The large part of it was committed by accident. + +2024-10-21 Jim Porter <jporterbugs@gmail.com> + + Make all the entries in 'eshell-parse-argument-hook' named functions + + * lisp/eshell/esh-arg.el (eshell-parse-number, eshell-parse-non-special) + (eshell-parse-whitespace, eshell-parse-comment): New functions... + (eshell-parse-argument-hook): ... use them. + +2024-10-21 Jim Porter <jporterbugs@gmail.com> + + Be more careful about applying spliced arguments + + Previously, this could 'nonc' to a list that shouldn't be modified. + + * lisp/eshell/esh-cmd.el (eshell-rewrite-named-command): Use 'append' + instead of 'nconc'. + + * test/lisp/eshell/esh-var-tests.el (esh-var-test/interp-var-splice): + (esh-var-test/quoted-interp-var-splice): New tests. + +2024-10-20 Sebastián Monía <code@sebasmonia.com> + + Use vtable in eww-list-buffers and add function eww-buffer-list + + * lisp/net/eww.el (eww-buffer-list): New function. + (eww-list-buffers): Move logic to... + (eww--list-buffers-display-table, eww--list-buffers-get-data): + ... these, and use 'vtable'. + (eww-buffer-select, eww-buffer-show, eww-buffer-kill) + (eww-buffers-mode-map): Use 'vtable-current-object'. + (eww-buffers-mode): Set 'revert-buffer-function' + +2024-10-20 Mattias Engdegård <mattiase@acm.org> + + Revert "Preserve source position of macro calls in macro expansions" + + This reverts commit 2114a955c23c213168f012f5e480edae46561fd2. + No agreement on this (bug#73725). + +2024-10-20 Alan Mackenzie <acm@muc.de> + + Preserve source position of macro calls in macro expansions + + This allows the byte compiler to give correct positions, those + of the invoking forms, when an error or warning is caused by + the innards of the invoked macros. + + This fixes bug#73725 and bug#73746. + + * lisp/emacs-lisp/macroexp.el (sub-macroexp--posify-form) + (macroexp--posify-form): New functions. + (macroexp-preserve-posification): New macro. + (macroexp-macroexpand): Use the new macro to preserve a calling + form's position. + (macroexpand-all): Add a new parameter `keep-pos' which + instructs the function to preserve an invoking form's position. + + * lisp/emacs-lisp/byte-opt.el (byte-optimize-form): Use the new + macro to preserve source positions. + + * lisp/emacs-lisp/bytecomp.el (byte-compile-preprocess): Call + macroexpand-all with the new argument `keep-pos' non-nil. + +2024-10-20 Michael Albinus <michael.albinus@gmx.de> + + Minor changes of last commit + + * lisp/autorevert.el (auto-revert--last-time): Init with 0 (Epoch). + (auto-revert-notify-handler): Simplify. + +2024-10-20 Lin Sun <sunlin7@hotmail.com> + + Enhance the auto-revert to avoid revert a buffer in short time + + * lisp/autorevert.el (auto-revert--last-time): New defvar. + (auto-revert-handler, auto-revert-notify-handler): Use it. + * test/lisp/autorevert-tests.el (with-auto-revert-test): Set + `auto-revert--lockout-interval' correctly. + +2024-10-20 Jim Porter <jporterbugs@gmail.com> + + Fix 'min-width' calculation in 'visual-wrap-prefix-mode' + + * lisp/visual-wrap.el (visual-wrap--content-prefix): Remove 'min-width' + before computing the pixel width to avoid miscalculation (bug#73882). + +2024-10-20 john muhl <jm@pub.pink> + + Add ability to crossfade between songs in 'mpc' + + * lisp/mpc.el (mpc-cmd-crossfade): + (mpc-toggle-crossfade): New function. + (mpc-crossfade-time): New option. + (mpc-mode-menu): Add menu item to toggle crossfade. (Bug#73891) + +2024-10-19 Jim Porter <jporterbugs@gmail.com> + + Lazily convert numeric strings to Lisp numbers in Eshell + + This should reduce the number of issues with Eshell converting strings + to numbers too aggressively and losing information (e.g. "001" -> 1) + while still allowing almost all of the beneficial uses, like summing a + list of numeric strings with '+'. + + * lisp/eshell/esh-util.el (eshell--do-mark-numeric-string): New + function. + (eshell-convert-to-number): Make obsolete in favor of... + (eshell-mark-numeric-string): ... this. Update callers. + + * lisp/eshell/esh-arg.el (eshell--numberlike-p): New function... + (eshell-concat-1): ... use it. + + * test/lisp/eshell/esh-util-tests.el: Reimplement type conversion tests + to use 'eshell-convertible-to-number-p' instead. + + * test/lisp/eshell/esh-var-tests.el + (esh-var-test/interp-var-splice-concat, esh-var-test/interp-concat-cmd) + (esh-var-test/interp-convert-var-split-indices) + (esh-var-test/interp-convert-quoted-var-split-indices) + (esh-var-test/interp-convert-cmd-multiline) + (esh-var-test/interp-convert-cmd-split-indices): Adjust tests to check + the new behavior. + + * doc/misc/eshell.texi (Type Conversion): New section. + (Expansion): Clarify concatenation behavior. + +2024-10-19 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 902029b1410 * lisp/auth-source.el (read-passwd): Remove entry from `p... + a61bf742257 New FAQ about Ctrl keys on xterm + f353fcc8506 Autoload 'message-narrow-to-headers-or-head' in mml.el + +2024-10-19 Manuel Giraud <manuel@ledu-giraud.fr> + + Fix tmm menu layout (Bug#73734) + + * lisp/tmm.el (tmm-mb-map): Remove unused and unset keymap + variable. + * lisp/tmm.el (tmm-get-keymap): Fix menu layout to avoid + confusion between the tmm-shortcut and the keybinding of the + previous column. + +2024-10-19 Eli Zaretskii <eliz@gnu.org> + + Fix etags tagging by multiline regexps + + * lib-src/etags.c (regex_tag_multiline): Fix off-by-one error in + determining the end of the tag matched by a multiline regexp. + (Bug#73771) + + * test/manual/etags/ETAGS.good_4: + * test/manual/etags/ETAGS.good_5: + * test/manual/etags/ETAGS.good_6: Adjust test results to the above + change. + +2024-10-19 Álvaro Ramírez <me@xenodium.com> + + Hide default-directory absolute file name in dired-hide-details-mode + + * lisp/dired.el (dired-hide-details-hide-absolute-location): + New user option. + (dired-insert-directory, dired-build-subdir-alist): Use it to + hide absolute file name of the directory. + (dired-hide-details-mode): Update doc string. + * test/lisp/dired-tests.el + (dired-test-hide-absolute-location-enabled) + (dired-test-hide-absolute-location-disabled): New tests + + * etc/NEWS: Announce the new feature. + + Bug#72272 + +2024-10-19 Morgan Willcock <morgan@ice9.digital> + + Rewrite Speedbar expansion for all descendants (bug#73533) + + Rewrite 'speedbar-expand-line-descendants' to avoid getting into + an infinite loop by reaching max-lisp-eval-depth. The new + method avoids querying and displaying information for every + movement, instead using a single message to indicate that + expansion is in progress, and so is significantly faster. The + narrowing per item introduced by the fix for bug#35014 is + removed because it prevented expanded descendant items when the + top-level item was already expanded. + * lisp/speedbar.el (speedbar--get-line-indent-level): New + function to return the indentation level of the current line. + (speedbar-expand-line-descendants): Use simpler line motion and + no recursion. Output messages indicating when expansion is in + progress and when it is completed. Fix expansion of descendants + where the top-level item was already expanded. + +2024-10-19 Morgan Willcock <morgan@ice9.digital> + + Add Speedbar tests (bug#73533) + + Add Speedbar tests which test the operation of + 'speedbar-expand-line-descendants'. + * test/lisp/speedbar-tests.el (speedbar-tests-container) + (eieio-speedbar-object-children, speedbar-tests-item) + (speedbar-tests--make-object, speedbar-tests--setup-strings) + (speedbar-tests--object-hierarchy, speedbar-tests--base-items) + (speedbar-tests--clean-up, speedbar-tests--initialize) + (speedbar-tests--object-name-expanded) + (speedbar-tests--object-name-function) + (speedbar-tests--objects-as-strings) + (speedbar-tests--state-test) + (speedbar-tests--expand-descendants-single) + (speedbar-tests--expand-descendants-nested) + (speedbar-tests--expand-descendants-nested-wide) + (speedbar-tests--expand-descendants-of-first) + (speedbar-tests--expand-descendants-of-first-expanded) + (speedbar-tests--expand-descendants-of-last) + (speedbar-tests--expand-descendants-of-last-expanded) + (speedbar-tests--expand-descendants-of-middle) + (speedbar-tests--expand-descendants-of-middle-expanded): + New tests, test 'speedbar-expand-line-descendants'. + +2024-10-19 Eli Zaretskii <eliz@gnu.org> + + Fix skeleton-related errors in sgml-mode.el + + * lisp/textmodes/sgml-mode.el (sgml-mode-facemenu-add-face-function) + (sgml-attributes): Require 'skeleton before using its symbols. + (Bug#53710) + +2024-10-19 F. Jason Park <jp@neverwas.me> + + Don't autoload erc-modules + + * doc/misc/erc.texi (Modules): Recommend using `describe-variable' + instead of `customize-option' because the latter needs the symbol to be + loaded. + * lisp/erc/erc.el (erc-modules): Remove autoload cookie because it + caused customizations for this option to load the main library. This + reverts the thrust of bb894845 "Teach customize-option about + erc-modules", which was added in ERC 5.6 and Emacs 30. The motivation + for the original offending change was to allow new users to run M-x + customize-option RET erc-modules RET immediately after startup instead + of M-x customize-group RET, followed by an I-search. (Bug#73812) + +2024-10-19 F. Jason Park <jp@neverwas.me> + + Move experimental module querypoll to erc-notify + + * etc/ERC-NEWS: Announce migration of misplaced `querypoll' module from + erc-goodies.el to erc-notify.el. + * lisp/erc/erc-goodies.el: Move all definitions associated with + experimental module `querypoll' to erc-notify. + * lisp/erc/erc-notify.el (erc--querypoll-ring) + (erc--querypoll-timer, erc-querypoll-exclude-regexp) + (erc-querypoll-mode, erc-querypoll-enable, erc-querypoll-disable) + (erc--queries-current-p, erc-querypoll-period-params) + (erc--querypoll-compute-period, erc--querypoll-target-in-chan-p) + (erc--querypoll-get-length, erc--querypoll-get-next) + (erc--querypoll-subscribe, erc--querypoll-on-352) + (erc--querypoll-send): Move here from erc-goodies. + * test/lisp/erc/erc-goodies-tests.el (erc--querypoll-compute-period) + (erc--querypoll-target-in-chan-p, erc--querypoll-get-length) + (erc--querypoll-get-next): Move to new file erc-notify-tests.el. + * test/lisp/erc/erc-notify-tests.el: New file. The `querypoll' module + was first introduced as part of bug#70928 in ERC 5.6. + +2024-10-19 F. Jason Park <jp@neverwas.me> + + Fix trailing args bug in erc-d-i--parse-message + + * test/lisp/erc/resources/erc-d/erc-d-i.el: Require `subr-x'. + (erc-d-i--parse-message): Populate `contents' slot when lone trailing + arg lacks a preceding colon. + * test/lisp/erc/resources/erc-d/erc-d-tests.el (erc-d-i--parse-message): + Fix expected result. + (erc-d-i--parse-message/privmsg): New test. + +2024-10-19 Dmitry Gutov <dmitry@gutov.dev> + + Fix the regression in dired-backup-diff's diff-goto-source behavior + + * lisp/vc/diff-mode.el (diff-find-source-location): Undo part of + the previous change, so that 'reverse' does not affect whether the + "other file" is used (bug#62731). + (diff-apply-hunk): Make that choice here. + +2024-10-18 john muhl <jm@pub.pink> + + Fix naming of buffers for tags ending in Y in 'mpc' + + * lisp/mpc.el (mpc-tagbrowser-buf): Use 'mpc-tagbrowser-tag-name' + to ensure buffers corresponding to tags that end in Y are + correctly pluralized; e.g. the tag "Directory" should create a + buffer named "*MPC Directories*" not "*MPC Directorys". + +2024-10-18 Stefan Monnier <monnier@iro.umontreal.ca> + + (symbol-file): Fix `C-h v pcase` where `cl-struct` lacks file info + + * lisp/subr.el (symbol-file): Return an actual (and absolute) file name + for the autoload case, as is done for other cases. + +2024-10-18 Stefan Monnier <monnier@iro.umontreal.ca> + + (help-fns-short-filename): Fix bug#73766 + + * lisp/help-fns.el (help-fns--radix-trees): New var. + (help-fns--filename, help-fns--radix-tree): New functions. + (help-fns-short-filename): Use them. + +2024-10-18 Michael Albinus <michael.albinus@gmx.de> + + * admin/notes/git-workflow: Use emacs-30 in examples. + +2024-10-18 Michael Albinus <michael.albinus@gmx.de> + + Merge from origin/emacs-30 + + 7dbbd58d6c9 Locate password icon in global-mode-string + 19049efd30f ; Fix last documentation change + 2c640e63a8a Explain tty-color-mode frame parameter more. + e5d600006e2 ; * src/doc.c (Ftext_quoting_style): Make doc string agre... + 90c6880a922 (track-changes--after): Fix problem found in bug#73041 + +2024-10-18 Michael Albinus <michael.albinus@gmx.de> + + Merge from origin/emacs-30 + + 78e6328fafd ; (select-safe-coding-system-interactively): Say "safely ... + c5eba443ae7 ; * lisp/icomplete.el (icomplete-in-buffer): Doc fix (bug... + 569186c36e3 ; * doc/lispref/display.texi (Face Attributes): Fix typo ... + d5723fc4f03 * lisp/progmodes/c-ts-mode.el (treesit-node-eq): Declare ... + 0085e48f917 * admin/notes/emba: Docker builds do not run in a worktree. + 3d30905b022 * lisp/calc/calc-ext.el (math-approx-sqrt-e): Doc fix (bu... + 94d0e9c4018 : Revert a mistaken change + 4d90a1d8209 ; * doc/emacs/search.texi (Word Search): Spelling fixes. + c154047c46a Fix c-ts-mode--anchor-prev-sibling (bug#73661) + b87fda63dd4 Fix formatting of long keyboard macros by 'list-keyboard-... + ae75ea62324 ; * src/fileio.c (Ffile_newer_than_file_p): Fix wording (... + b1203978685 Merge branch 'emacs-30' of git.sv.gnu.org:/srv/git/emacs ... + de54d922b5c * doc/emacs/mini.texi (Passwords): Mention password visib... + 0f8f0773183 ; * doc/emacs/search.texi (Word Search): Document 'dictio... + fb155bcfb6f ; * lisp/emacs-lisp/chart.el (chart-bar-quickie): Doc fix. + 6dbe4e99ac4 ; * lisp/emacs-lisp/chart.el (chart-bar-quickie): Improve... + d664227f81a ; More accurate documentation of 'file-newer-than-file-p' + e49b479f869 Fix c-ts-mode indentation for initializer lists (bug#73661) + f520008744b Avoid segfaults in Rmail-MIME + 6a5c2edd84f Eglot: use :immediate t when resolving completions (bug#7... + cd36e070c24 Eglot: minor changes to doc and docstrings + 1ea0d9b891b Revert "Set treesit-primary-parser for tree-sitter modes" + 52746ceb625 Remove duplicate indent rules in elixir-ts-mode + ed57faafc74 Set treesit-primary-parser for tree-sitter modes + 37a6c859b04 ; * lisp/emacs-lisp/cl-macs.el (cl-once-only): Fix capita... + 2d4d6dc43a4 Delete XIE X extension from TODO + b68b9f291cc ; * lisp/progmodes/csharp-mode.el (treesit-query-compile)... + 688201ef18d ; * lisp/window.el (switch-to-prev-buffer-skip-regexp): D... + ba44fc9a447 Restore comment/string check for 'electric-layout-mode' + 5a462948e13 Update Arni Magnusson's email address + 6b1271b169a Fix python-ts-mode-map docstring + aaaafddc945 Normalize "Commentary" section in eudc.el + d656be9794d Expand email abbrevs in X-Debbugs-Cc header. + e9dcf0c57dd Fix 'list-tags' when invoked from a non-file buffer + 51ef05f684c count-windows: Fix reference to walk-windows + 5eaf0c784bf * lisp/info-look.el (mapc): Add use-package manual's index. + 705a5a1a9e6 ; * ChangeLog.4: Fix attribution of one change. + bf26ff0dc8d Update csharp-ts-mode font-lock (bug#73369) + 4c866abab96 ; * doc/lispref/variables.texi (Creating Buffer-Local): F... + d42d7d474fe ; * lisp/doc-view.el (doc-view-svg-face): Copy-edit docst... + f46f476bb8f ; * admin/MAINTAINERS: Take VC subsystem, add note about ... + d68e6d2689d ; rcirc-update-activity-string: Justify some existing beh... + e6a37869c8d Fix inconsistency in value of rcirc-activity-string + 108b3179bd4 Revert "; Minor clarification in variables.texi" + 44156c21407 ; Minor clarification in variables.texi + 63058e1153a Tag interactive commands in 'lua-ts-mode' + 84bea20eba2 ; * lisp/info-look.el: Add two more links. + 96b87ad5363 Mention LSP acronym in eglot defgroup docstring + 9c904e8ceae Change :group of 'eglot' defgroup to 'tools' + fd1a1b07805 Remove out-of-date documentation from python.el + 11e3e0cadd4 Fix executing commands in Eshell using "env" with no loca... + c0ef8a9a1b3 Fix a typo in the calendar manual + 36ff7138feb ; Fix a thinko in sieve-manage.el + 7abecbcd633 ; * nt/INSTALL: Update MinGW notes URL. (Bug#73528) + e2b01d164cd ; Fix last changes in php-ts-mode.el + e8830015b07 Require ert-x for use by 'ert-font-lock-deftest-file' + a1841b4d8e7 ; * admin/authors.el (authors-aliases): Don't ignore "one... + 69d8f9d1b70 Fix php-ts-mode font-lock for latest PHP grammar (bug#73516) + 68f53e43488 eieio.texi: Fix bug#73505 + 53c887fdf6d ; cperl-mode.el: Fix an invalid face specification + f5cd5585f46 ; Recommend GNU Find for 'find-dired' + 65e589698e6 ; * lisp/filesets.el (filesets-homepage): Fix URL. + 1f243a97806 Delete duplicated line in Viper refcard + +2024-10-18 Sean Whitton <spwhitton@spwhitton.name> + + Replace my recent change to vc-start-logentry + + * lisp/vc/vc-dispatcher.el (vc-start-logentry): Restore previous + logic for determining the parent buffer from before my recent + change to this function. If the attempt to determine the parent + buffer fails, signal an error immediately. + (vc-dispatcher-browsing): Consider derived modes of + log-view-mode, too, as indicating that we are in a directory + browser. + +2024-10-18 Visuwesh <visuweshm@gmail.com> + + Make djvused emit UTF-8 encoded text + + * lisp/doc-view.el (doc-view--djvu-outline): Pass -u to djvused + to make it emit UTF-8 encoded text rather than using octal + escapes for non-ASCII string. (bug#73846) + +2024-10-17 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/emacs-lisp/track-changes.el (track-changes--backtrace): Fix prefix + +2024-10-17 Stefan Monnier <monnier@iro.umontreal.ca> + + mpc.el: Misc tweaks. + + * lisp/mpc.el: Require `cl-lib` at run-time. + Don't require `subr-x` any more. + (mpc-status-callbacks): Improve docstring. + (mpc-cover-image-find): Avoid `and-let*`. + (mpc-cover-image-p): Use `member-ignore-case` to recover the + behavior before last patch. + (mpc-cover-image-find, mpc-cover-image-p): Move to later in the + file to avoid compiler warning. + (mpc-format, mpc-notifications-title, mpc-notifications-body): + Tweak docstring. + (mpc--notifications-format): Create only one temp buffer and use + the faster `cl-some` since we know the arg is a list. + (mpc-notifications-notify): Prefer `when-let*` since all the other + `*-let` we use are also of the `let*`family. + +2024-10-17 john muhl <jm@pub.pink> + + Add notifications support to 'mpc' (Bug#73538) + + * lisp/mpc.el (mpc-notifications, mpc-notifications-title) + (mpc-notifications-body): New option. + (mpc--notifications-id): New variable. + (mpc-notifications-notify, mpc-cover-image-find) + (mpc-cover-image-p, mpc--notifications-format): New function. + (mpc-format): Use 'mpc-cover-find' and expand docstring to + include details about the FORMAT-SPEC. + (mpc-status-callbacks): Add file callback for + notifications. + +2024-10-17 Sean Whitton <spwhitton@spwhitton.name> + + log-view-modify-change-comment: Prepend Summary header + + * lisp/vc/log-view.el (log-edit): Require. + (log-view-modify-change-comment): When log-edit-hook would + insert an empty Summary header, prepend one to the old comment. + +2024-10-17 Sean Whitton <spwhitton@spwhitton.name> + + New get-change-comment VC backend action + + This gets us closer to using log-view-modify-change-comment with modern + VCS. What remains is implementing the modify-change-comment backend + action for those VCS. + + * lisp/vc/vc.el: New get-change-comment backend action. + (vc-modify-change-comment): Pass the backend to vc-start-logentry. + * lisp/vc/log-view.el (log-view-extract-comment): Use new + get-change-comment action. + * lisp/vc/vc-git.el (vc-git-get-change-comment): Factor out of + vc-git-log-edit-toggle-amend. + +2024-10-17 Sean Whitton <spwhitton@spwhitton.name> + + vc-start-logentry: Use current buffer as parent buffer more often + + * lisp/vc/vc-dispatcher.el (vc-start-logentry): When determining + the parent buffer, if get-file-buffer returns nil, use the + current buffer. Also, if the first file is a directory, don't + try to call get-file-buffer, just use the current buffer. + +2024-10-17 Eli Zaretskii <eliz@gnu.org> + + Improve coverage of scripts by the default fontset + + * lisp/international/fontset.el (setup-default-fontset): Add + missing "simple" scripts. + +2024-10-17 Sean Whitton <spwhitton@spwhitton.name> + + More consistently propertize Log Edit headers as fields + + * lisp/vc/log-edit.el (log-edit--make-header-line): Factor out + of log-edit-insert-message-template. + (log-edit-set-header): Call log-edit--make-header-line so that + the Log Edit header is propertized as a field. + +2024-10-17 Jim Porter <jporterbugs@gmail.com> + + Add support for chaining conditionals in Eshell + + * lisp/eshell/esh-cmd.el (eshell-structure-basic-command): Check for the + presence of the conditional. Allow any number of BODY forms. + (eshell-rewrite-if-command): Add support for 'else' keyword and chained + conditionals. + + * test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/if-else-statement): + Test 'else' keyword. + (esh-cmd-test/if-else-statement-chain): New test. + + * doc/misc/eshell.texi (Control Flow): Document this change. + + * etc/NEWS: Announce this change. + +2024-10-17 Jim Porter <jporterbugs@gmail.com> + + Improve correctness of Eshell sub-forms + + This makes sure that we treat Eshell sub-forms (whether Lisp or command + forms) as values when appropriate, or as regular invocations. This + requires a bit more explicit work, but helps to resolve some of the + surprising differences between Lisp and command forms in complex Eshell + statements. + + * lisp/eshell/esh-cmd.el (eshell-subcommand-arg-values): Make obsolete. + (eshell-parse-lisp-argument): Don't add 'eshell-command-to-value' here. + (eshell-rewrite-sexp-command): Don't check for 'eshell-command-to-value + here'; instead check for 'eshell-lisp-command'. + (eshell-structure-basic-command): Check for 'eshell-lisp-command'. + (eshell-term-as-value): New function... + (eshell-rewrite-named-command, eshell-rewrite-for-command): ... call it. + + * lisp/eshell/esh-arg.el (eshell-parse-special-reference): + * lisp/eshell/esh-io.el (eshell-strip-redirections): + * lisp/eshell/esh-var.el (eshell-prepare-indices): Call + 'eshell-term-as-value'. + + * test/lisp/eshell/esh-arg-tests.el + (esh-arg-test/special-reference/command-form): + * test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/for-loop-lisp-body) + (esh-cmd-test/while-loop-lisp-body) + (esh-cmd-test/if-else-statement-lisp-body): New tests. + + * test/lisp/eshell/esh-var-tests.el + (esh-var-test/interp-var-indices-subcommand): Add another command to + test. + + * doc/misc/eshell.texi (Control Flow): Update documentation. + +2024-10-17 Jim Porter <jporterbugs@gmail.com> + + Simplify creation of Eshell command forms + + Previously, Eshell over-aggressively converted subcommands, which forced + control flow commands to undo that change. + + * lisp/eshell/esh-cmd.el (eshell-pre-rewrite-command-hook): Remove + 'eshell-subcommand-arg-values' call from here... + (eshell-rewrite-named-command): ... and put it here. + (eshell-invokify-arg): Make obsolete. + (eshell-structure-basic-command): Handle subcommand test forms. + (eshell-rewrite-for-command, eshell-rewrite-while-command) + (eshell-rewrite-if-command): Don't call 'eshell-invokify-arg'; it's not + necessary. + +2024-10-16 Dmitry Gutov <dmitry@gutov.dev> + + New helper function project-read-project + + * lisp/progmodes/project.el (project-read-project): New helper. + +2024-10-16 Michael R. Mauger <michael@mauger.com> + + Add suffixes individually and use minor mode directly + + * lisp/jka-cmpr-hook.el (jka-compr-install): Add jka-compr + suffixes individually with add-to-list rather than append. + * (with-auto-compression-mode): Use auto-compression-mode minor mode. + +2024-10-16 Michael Albinus <michael.albinus@gmx.de> + + Use debian:bookworm for tests on emba + + * test/infra/Dockerfile.emba (emacs-base): Derive from debian:bookworm. + (emacs-eglot, emacs-tree-sitter): Derive from emacs-base. + (emacs-native-comp): Install libgccjit-12-dev. + +2024-10-16 Alan Mackenzie <acm@muc.de> + + CC Mode: Fix dodgy lisp `let' form. + + * lisp/progmodes/cc-engine.el (c-forward-sws): Move a `setq' + form from out of a let binding. This form could have been + affected by the byte compiler bug bug#67116 before this was + fixed. + +2024-10-15 Alan Mackenzie <acm@muc.de> + + CC Mode: Rationalize and optimize cache invalidation (2). + + Replace separate syntax-table text property changes and cache + invalidation with macros which do both together. Correct a bug + in the invocation of XEmacs's map-extents. + + * lisp/progmodes/cc-defs.el (c-put-syntax-table-trim-caches) + (c-clear-syntax-table-trim-caches) + (c-clear-syntax-table-properties-trim-caches) + (c-clear-syntax-table-with-value-trim-caches) + (c-clear-syntax-table-with-value-on-char-trim-caches) + (c-put-syntax-table-properties-on-char-trim-caches): New + macros. + (c-clear-char-properties, c-clear-char-property-with-value) + (c-clear-char-property-with-value-on-char): Correct the + invocation of XEmacs's map-extents by returning nil from the + mapping function to prevent premature exit from map-extents. + (c-clear-char-property-with-value-function) + (c-clear-char-property-with-value) + (c-clear-char-property-with-value-on-char-function) + (c-clear-char-property-with-value-on-char) + (c-put-char-properties-on-char): Enhance to return the position + of the first changed char property (or nil). + + * lisp/progmodes/cc-awk.el + (c-awk-set-string-regexp-syntax-table-properties) + (c-awk-set-syntax-table-properties) + * lisp/progmodes/cc-engine.el + (c-depropertize-ml-string-delims) + (c-after-change-unmark-ml-strings, c-propertize-ml-string-id) + (c-propertize-ml-string-opener, c-depropertize-ml-string) + (c-depropertize-ml-strings-in-region) + * lisp/progmodes/cc-mode.el (c-depropertize-CPP) + (c-neutralize-CPP-line, c-put-syn-tab, c-clear-syn-tab) + (c-parse-quotes-before-change, c-parse-quotes-after-change) + (c-before-change-fix-comment-escapes) + (c-after-change-fix-comment-escapes): Use the new macros from + cc-defs.el. + + * lisp/progmodes/cc-mode.el + (c-trim-cache-first-punctuation-prop): Remove. + (c-depropertize-CPP): Remove calls to the above function. + +2024-10-15 Andrea Corallo <acorallo@gnu.org> + + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-type-p): Add assertion. + +2024-10-15 Andrea Corallo <acorallo@gnu.org> + + Fix comp branch-optim pass (bug#73270) + + * test/src/comp-tests.el (comp-test-73270-1): Define new test. + * test/src/comp-resources/comp-test-funcs.el (comp-test-73270-base) + (comp-test-73270-child1, comp-test-73270-child2) + (comp-test-73270-child3, comp-test-73270-child4) + (comp-test-73270-1-f): Define. + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-type-p): Fix it for nil cstrs. + +2024-10-15 Andrea Corallo <acorallo@gnu.org> + + * lisp/emacs-lisp/comp.el (comp--type-check-optim-block): Improve log msg. + +2024-10-15 Dan Christensen <jdc@uwo.ca> (tiny change) + + Report correct unread count for nnimap groups + + * lisp/gnus/nnimap.el (nnimap-request-group): Use '(1 . 0) range + as default, and calculate the actual range the same way as other + backends. (Bug@72949) + +2024-10-15 Yuan Fu <casouri@gmail.com> + + Set treesit-primary-parser for tree-sitter modes + + I debated whether to do this, since technically speaking it's + not needed for single-language modes. But ultimately it's + better to be explicit and set a good example with builtin modes. + + * lisp/progmodes/cmake-ts-mode.el (cmake-ts-mode): + * lisp/progmodes/csharp-mode.el (csharp-ts-mode): + * lisp/progmodes/dockerfile-ts-mode.el (dockerfile-ts-mode): + * lisp/progmodes/go-ts-mode.el (go-ts-mode): + (go-mod-ts-mode): + * lisp/progmodes/heex-ts-mode.el (heex-ts-mode): + * lisp/progmodes/json-ts-mode.el (json-ts-mode): + * lisp/progmodes/lua-ts-mode.el (lua-ts-mode): + * lisp/progmodes/python.el (python-ts-mode): + * lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode): + * lisp/progmodes/rust-ts-mode.el (rust-ts-mode): + * lisp/progmodes/sh-script.el: + * lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode): + (tsx-ts-mode): + * lisp/textmodes/css-mode.el (css-ts-mode): + * lisp/textmodes/html-ts-mode.el (html-ts-mode): + * lisp/textmodes/toml-ts-mode.el (toml-ts-mode): + * lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode): Set + treesit-primary-parser. + +2024-10-14 Alan Mackenzie <acm@muc.de> + + CC Mode: Correct and simplify quoted number regexps + + C++ Mode now gives correct fontification when \' is inserted + between the adjacent apostrophes in the number 0xde'adb''eef. + + * lisp/progmodes/cc-mode.el (c-maybe-quoted-number-head): + Simplify and correct. + (c-maybe-quoted-number-tail, c-maybe-quoted-number): Simplify. + +2024-10-13 Michael Albinus <michael.albinus@gmx.de> + + Describe how to add an ELPA package to Tramp + + * doc/misc/tramp.texi: Use @dots{} where appropriate. + (External packages): Rename subsection "Timers, process filters, + process sentinels, redisplay". + (Extension packages): New node. + (Top, Files directories and localnames): Add it to @menu. + +2024-10-13 Michael Albinus <michael.albinus@gmx.de> + + Adapt gitlab-ci.yml + + * test/infra/gitlab-ci.yml (variables): Set GIT_DEPTH: 0. + (.job-template): Remove cache:policy. + (.build-template): Add needs and cache:policy. + (.test-template): Add cache:policy. + (.tree-sitter-template): Add files in changes. + +2024-10-13 Stephen Berman <stephen.berman@gmx.net> + + Prevent void-variable error in python-mode (bug#73773) + + * lisp/progmodes/python.el: Define 'subword-mode' before its use + in 'python-mode-map' so invoking menu-bar-open in a python-mode + buffer does not cause a void-variable error when subword-mode is + not loaded, menu-bar-mode is disabled and debug-on-error is enabled. + +2024-10-13 Stephen Berman <stephen.berman@gmx.net> + + Fix case problem with 'sql-magic-go' (bug#73499) + + * lisp/progmodes/sql.el (sql-electric-stuff): Use :initialize and + :set arguments to control presence of 'sql-magic-go' in + 'post-self-insert-hook'. + (sql-interactive-mode-map): Remove key bindings for 'sql-magic-go'. + (sql-magic-go): Reimplement as a non-interactive function + restricted to 'sql-interactive-mode' and instead of using + 'self-insert-command' check value of 'last-command-event'. + +2024-10-13 Alex Bochannek <alex@bochannek.com> + + vc-src-working-revision: Call string-trim-right on command output + + * lisp/vc/vc-src.el (vc-src-working-revision): Call string-trim-right on + command output (bug#73763). + +2024-10-13 Martin Rudalics <rudalics@gmx.at> + + Fix bug when splitting a frame's root window (Bug#73627) + + * lisp/window.el (split-window): Split main window of WINDOW's + frame when that frame has side windows (Bug#73627). + +2024-10-12 Eli Zaretskii <eliz@gnu.org> + + Improve face font selection on MS-Windows + + * lisp/net/dictionary.el (dictionary-word-definition-face): + Special-case w32. + * lisp/faces.el (face-font-family-alternatives): Add a few modern + font families. + +2024-10-12 Pengji Zhang <me@pengjiz.com> + + Improve tests for flow-fill + + * test/lisp/mail/flow-fill-tests.el + (fill-flow-tests-fill-flowed-decode): Remove debug message. + (fill-flow-tests-fill-flowed-encode): Actually test function + `fill-flowed-encode', which requires `use-hard-newline' to be + non-nil. Also adjust test input to check behavior of the + function under different cases. (Bug#72870) + +2024-10-12 Pengji Zhang <me@pengjiz.com> + + Flow fill texts after the last hard newline + + * lisp/mail/flow-fill.el (fill-flowed-encode): Use `(point-max)' + as `end' if there are no remaining hard newlines in buffer. + This ensures that the last paragraph will always be encoded, + even without a trailing hard newline. (Bug#72870) + +2024-10-12 Eli Zaretskii <eliz@gnu.org> + + * lisp/progmodes/compile.el (recompile): Autoload (bug#73697). + +2024-10-12 Diancheng Wang <diancheng_wang@163.com> + + Stop highlighting current line when debuggee is running + + * lisp/progmodes/gud.el (gud-hide-current-line-indicator): New + function. + (gud-sentinel): + * lisp/progmodes/gdb-mi.el (gdb-starting): Use it. (Bug#73687) + +2024-10-12 Paul Nelson <ultrono@gmail.com> + + Add foldout command for widening to current fold + + * lisp/foldout.el (foldout-widen-to-current-fold): New command. + * doc/emacs/text.texi (Foldout): Document it. + * etc/NEWS: Announce it. (Bug#73286) + +2024-10-12 Manuel Giraud <manuel@ledu-giraud.fr> + + Correctly update image properties + + * lisp/image-mode.el (image--update-properties): New function to + update image properties. + (image-toggle-display-image): Use it. (Bug#73617) + +2024-10-12 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 0f8f0773183 ; * doc/emacs/search.texi (Word Search): Document 'dictio... + fb155bcfb6f ; * lisp/emacs-lisp/chart.el (chart-bar-quickie): Doc fix. + 6dbe4e99ac4 ; * lisp/emacs-lisp/chart.el (chart-bar-quickie): Improve... + d664227f81a ; More accurate documentation of 'file-newer-than-file-p' + e49b479f869 Fix c-ts-mode indentation for initializer lists (bug#73661) + f520008744b Avoid segfaults in Rmail-MIME + 6a5c2edd84f Eglot: use :immediate t when resolving completions (bug#7... + cd36e070c24 Eglot: minor changes to doc and docstrings + 1ea0d9b891b Revert "Set treesit-primary-parser for tree-sitter modes" + 52746ceb625 Remove duplicate indent rules in elixir-ts-mode + ed57faafc74 Set treesit-primary-parser for tree-sitter modes + 37a6c859b04 ; * lisp/emacs-lisp/cl-macs.el (cl-once-only): Fix capita... + 2d4d6dc43a4 Delete XIE X extension from TODO + +2024-10-12 Spencer Baugh <sbaugh@janestreet.com> + + Properly operate on current fileset revision in vc-hg-print-log + + * lisp/vc/vc-hg.el (vc-hg-print-log): If start-revision is nil, + reliably log the working revision. (bug#73604) + +2024-10-12 F. Jason Park <jp@neverwas.me> + + Use erc-compat analog for window-no-other-p + + * lisp/erc/erc-compat.el (erc-compat--window-no-other-p): New function. + * lisp/erc/erc-speedbar.el (erc-speedbar-toggle-nicknames-window-lock): + Use compat adapter for `window-no-other-p'. + +2024-10-12 F. Jason Park <jp@neverwas.me> + + Add baseline test coverage for erc-match + + * lisp/erc/erc-match.el (erc-pal-highlight-type) + (erc-fool-highlight-type, erc-dangerous-host-highlight-type): Clarify + some areas in doc strings. + * test/lisp/erc/erc-match-tests.el: Require `erc-test-common' library. + (erc-match-tests--assert-face-absent) + (erc-match-tests--assert-face-present) + (erc-match-tests--assert-speaker-highlighted) + (erc-match-tests--assert-speaker-only-highlighted) + (erc-match-tests--perform) + (erc-match-tests--hl-type-nick): New functions. + (erc-match-message/pal/nick, erc-match-message/fool/nick) + (erc-match-message/dangerous-host/nick): New tests. + (erc-match-tests--hl-type-message): New function. + (erc-match-message/pal/message) + (erc-match-message/fool/message) + (erc-match-message/dangerous-host/message): New tests. + (erc-match-tests--hl-type-all): New function. + (erc-match-message/pal/all, erc-match-message/fool/all) + (erc-match-message/dangerous-host/all): New tests. + (erc-match-tests--hl-type-nick-or-keyword): New function. + (erc-match-message/current-nick/nick-or-keyword): New test. + (erc-match-tests--hl-type-keyword): New function. + (erc-match-message/keyword/keyword): New test. + (erc-match-tests--log-matches): New function. + (erc-log-matches): New test. + * test/lisp/erc/resources/erc-tests-common.el: Require `erc-d-i'. + (erc-tests-common-add-cmem, erc-tests-common-parse-line) + (erc-tests-common-simulate-line) + (erc-tests-common-simulate-privmsg): New functions. + +2024-10-12 F. Jason Park <jp@neverwas.me> + + Crystallize erc-nicks-track-faces behavior + + * etc/ERC-NEWS: Mention changes to `erc-track-faces-normal-list' and + `erc-track-faces-priority-list'. Also mention new choice variant for + option `erc-nicks-track-faces', although that's arguably just a bug fix + because it makes good on previously unrealized behavior implied by the + doc strings. + * lisp/erc/erc-nicks.el (erc-nicks-skip-faces): Remove faces applied by + the `match' module, namely, `erc-current-nick-face', `erc-pal-face', and + `erc-fool-face'. That module runs its hooks after `button' on + `erc-insert-modify-hook', and because `nicks' piggybacks on `button', it + can never encounter those faces while assaying. + (erc-nicks-track-faces): Update doc, and introduce new `t' value choice. + (erc-nicks-mode, erc-nicks-disable): Update removals from + `erc-track--alt-normals-function' to reflect recent renamings. + (erc-nicks--reject-uninterned-faces): Use helper. + (erc-nicks--oursp, erc-nicks--ours-p): Rename former to latter to + respect project style guidelines regarding predicates. + (erc-nicks-track-normal-max-rank): New variable. + (erc-nicks--check-normals, erc-nicks--assess-track-faces): Rename former + to latter, and change purpose to checking for "normals" membership, + ranks position, and incumbent face ownership. Remove unused CONTENDERS + parameter. Additionally, change behavior to consider replacing the + current mode-line face when it's not `nicks' owned if it's explicitly + ranked lower than `erc-default-face'. + (erc-nicks--track-prioritize, erc-nicks--track-always): New + complementary functions implementing the t and `prioritize' variants of + `erc-nicks-track-faces'. Both make use of the factored-out + `erc-nicks--check-normals' logic. + (erc-nicks--setup-track-integration): Add `erc-nicks--track-always' to + `erc-track--alt-normals-function' when `erc-track-normal-faces' is t. + * lisp/erc/erc-track.el (erc-track--massage-nick-button-faces): Change + type of symbol property `erc-track--obsolete-faces' for options + `erc-track-faces-priority-list' and friends from a boolean to an alist. + (erc-track-faces-priority-list): Add new face for buttonized speakers. + (erc-track-faces-normal-list): Add new face for buttonized speakers. + Also add `erc-notice-face'. + (erc-track--priority-faces): New local variable to cache ranked faces + and complement `erc-track--normal-faces'. + (erc-track--setup): Initialize new `erc-track--priority-faces' variable, + and refactor. + (erc-track--alt-normals-function): Doc. + (erc-track--select-mode-line-face): Update expected type of `ranks' + parameter. + (erc-track-modified-channels): Fix wrong-type bug occurring when + `erc-track-ignore-normal-contenders-p' and + `erc-track-priority-faces-only' are both non-nil. Also fix subtle + compatibility oversight regarding an empty face list returned by + `erc-track--collect-faces-in'. + * test/lisp/erc/erc-nicks-tests.el: Load helpers and fixtures library. + (erc-nicks-tests--track-faces): New function. + (erc-nicks-track-faces/prioritize, erc-nicks-track-faces/defer) + (erc-nicks-track-faces/nil, erc-nicks-track-faces/t): New tests. + * test/lisp/erc/erc-track-tests.el + (erc-track-tests--select-mode-line-face): Update expected type of mocked + parameter. + (erc-track-tests--modified-channels/baseline): New function. + (erc-track-modified-channels/baseline) + (erc-track-modified-channels/baseline/mention) + (erc-track-modified-channels/baseline/ignore) + (erc-track-modified-channels/baseline/mention/ignore) + (erc-track-modified-channels/priority-only-all/baseline) + (erc-track-modified-channels/priority-only-all/sans-notice): New tests. + * test/lisp/erc/resources/erc-tests-common.el + (erc-tests-common-track-modified-channels) + (erc-tests-common-track-modified-channels-sans-setup): New functions. + (Bug67767) + +2024-10-12 F. Jason Park <jp@neverwas.me> + + Don't create directory in erc-truncate compat check + + * lisp/erc/erc-log.el (erc-log--check-writable-nocreate-p): New variable. + (erc-logging-enabled): Use `erc-log--save-in-progress-p' flag to + conditionally avoid creating a directory when checking if the location + is writable. + (erc-log--call-when-logging-enabled-sans-module) + (erc-log--check-legacy-implicit-enabling-by-truncate): Rename former to + latter, and guard against creating a ~/log directory just to see if it's + writable when calling `erc-logging-enabled'. + (erc-truncate-mode): Explain legacy "implicit logging" behavior in doc + string. + * lisp/erc/erc-truncate.el (erc-truncate--warn-about-logging): Make more + concise, and defer to `erc-truncate-mode' doc string for particulars. + * lisp/erc/erc.el (erc-directory-writable-p): Add comment to rename on + next non-patch release. + +2024-10-11 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/help-fns.el (help--load-prefixes): Fix bug#72787 + +2024-10-11 Andreas Schwab <schwab@linux-m68k.org> + + gnus-sum: fix missing space after prompt + + * lisp/gnus/gnus-sum.el (gnus-summary-limit-exclude-marks) + (gnus-summary-limit-to-marks): Add space after prompt. + +2024-10-11 Robert Pluim <rpluim@gmail.com> + + Remove buttons when disabling 'button-mode' + + * lisp/button.el (button-mode): Remove all buttons when disabling. + * doc/lispref/display.texi (Button Buffer Commands): Document + the change. (Bug#73175) + +2024-10-11 Robert Pluim <rpluim@gmail.com> + + Add unbuttonize-region + + * doc/lispref/display.texi (Making Buttons): Document it. + * lisp/button.el (unbuttonize-region): New function, removes all + buttons in the specified region. + +2024-10-11 Michael Albinus <michael.albinus@gmx.de> + + Make url-http thread-safe (Bug#73199) + + * lisp/url/url-http.el (url-http-open-connections): Adapt docstring. + (current-thread, thread-live-p): Declare. + (url-http-mark-connection-as-busy) + (url-http-mark-connection-as-free) + (url-http-find-free-connection): Use extended hash key. (Bug#73199) + +2024-10-11 Martin Rudalics <rudalics@gmx.at> + + Fix how 'no-other-window' window parameter is ignored (Bug#73706) + + * lisp/window.el (window-no-other-p): New function. + (window-in-direction, get-lru-window, get-mru-window) + (get-largest-window, other-window, window-at-x-y) + (delete-window-choose-selected, delete-window): Use it to check + whether 'ignore-window-parameters' should inhibit processing the + 'no-other-window' parameter (Bug#73706). + * lisp/erc/erc-speedbar.el + (erc-speedbar-toggle-nicknames-window-lock): Use + 'window-no-other-p'. + * doc/lispref/windows.texi (Windows and Frames) + (Deleting Windows, Cyclic Window Ordering): Describe new + function 'window-no-other-p' and use it in description of + functions that call it. + (Window Parameters): Add cross references for 'no-other-window' + parameter. + +2024-10-11 Andreas Schwab <schwab@linux-m68k.org> + + shr: handle anonymous documents with an empty base + + * lisp/net/shr.el (shr-parse-base): Make sure local is non-nil. + +2024-10-10 Alan Mackenzie <acm@muc.de> + + Add an edebug spec for macroexp--with-extended-form-stack + + * lisp/emacs-lisp/macroexp.el + (macroexp--with-extended-form-stack): Add the edebug spec + (sexp body). + +2024-10-10 Michael Albinus <michael.albinus@gmx.de> + + Tramp: Don't redisplay in `sit-for' + + * lisp/net/tramp.el (tramp-wait-for-regexp): + * lisp/net/tramp-message.el (tramp-error-with-buffer, tramp-user-error): + Don't redisplay in `sit-for'. (Bug#73718) + +2024-10-10 Visuwesh <visuweshm@gmail.com> + + Add imenu support for ODF files in doc-view + + * lisp/doc-view.el (doc-view--outline): Pass the right file to + doc-view--pdf-outline. + * doc/emacs/misc.texi (DocView Navigation): Mention support for + Open Format Document (ODF) files too. + * etc/NEWS: Announce the change. (bug#73719) + +2024-10-10 Wilson Snyder <wsnyder@wsnyder.org> + + verilog-mode.el: Fix AUTOWIRE etc. range simplification with subtraction of negative number. + + * lisp/progmodes/verilog-mode.el (verilog-simplify-range-expression): + Fix AUTOWIRE etc. range simplification with subtraction of negative + number (#1879). + +2024-10-10 Dmitry Gutov <dmitry@gutov.dev> + + Make revision completion in vc-diff and vc-root-diff more predictable + + * lisp/vc/vc.el (vc-root-version-diff): + Don't try calling 'vc-deduce-fileset', instead construct a fileset + suitable for the root directory right away. This way the revision + completion for the root diff doesn't depend on the current buffer, + or the file at point (bug#73232). + (vc-diff-build-argument-list-internal): No special case when + invoked on a directory, or when the current file is not "dirty". + Make REV1-DEFAULT a string value. + + * etc/NEWS: Mention the change. + +2024-10-09 Dmitry Gutov <dmitry@gutov.dev> + + help-setup-xref: Fix the previous changes + + * lisp/help-mode.el (help-setup-xref): Instead of killing all + local variables directly, call the current major mode function, to + preserve its own locals while dropping the rest (bug#73637). + +2024-10-08 Visuwesh <visuweshm@gmail.com> + + Make imenu index generation for PDFs more reliable + + Do away with parsing the output of "mutool show FILE outline" + since the URI reported in its output may not include the page + number of the heading, and instead may contained "nameddest" + elements which cannot be resolved using "mutool". Instead, use + a MuPDF JS script to generate the PDF outline allowing to + resolve such URIs. + + * lisp/doc-view.el (doc-view--outline-rx): Remove as no longer + needed. + (doc-view--outline): Reflect that outline can be generated for + non-PDF files too. + (doc-view--mutool-pdf-outline-script): Add new variable to hold + the JS script used to generate the outline. + (doc-view--pdf-outline): Use the script. (bug#73638) + +2024-10-08 Cecilio Pardo <cpardo@imayhem.com> + + Implement drag-n-drop for w32 with support for files and text + + Implement drag-n-drop with IDropTarget for MS-Windows. This + allows for dropping files or text. + * lisp/term/w32-win.el (w32-drag-n-drop): Change to handle + files or strings. + * src/w32fns.c (process_dropfiles): New function to convert + DROPFILES struct to array of strings. + (w32_process_dnd_data): New function to process drop data. + (w32_try_get_data): Extract data from IDataObject. + (w32_createwindow): Assign an IDropTarget to each new frame. + (w32_name_of_message): New message. + (w32_msg_pump): Changed CoInitialize to OleInitialize, needed + by the drag-n-drop functions. + (w32_wnd_proc): New struct w32_drop_target, and + w32_drop_target_* functions to implement the IDropTarget + interface. + * src/w32term.c (w32_read_socket): Handle WM_EMACS_DROP and + remove WM_EMACS_DROPFILES. + * src/w32term.h: New message WM_EMACS_DROP. + (Bug#3468) + + * etc/NEWS: Announce the new feature. + +2024-10-08 Eli Zaretskii <eliz@gnu.org> + + New command-line options for 'etags' + + This adds '--no-fallback-lang' and '--no-empty-file-entries' + options, and their opposites '--fallback-lang' and + '--empty-file-entries'. + * lib-src/etags.c (fallback_lang, empty_files): New toggles. + (main): Initialize them to 'true'. + (longopts) [!CTAGS]: Add the '--(no-)fallback-lang' and + '--(no-)empty-file-entries' options. + (find_entries): If 'fallback_lang' is false, don't attempt Fortran + and C/C++ fallbacks. + (print_help): Add help for new options. + (main): If 'empty_files' is false, don't output file entries for + files that have no tags. (Bug#73484) + + * doc/emacs/maintaining.texi (Create Tags Table): + * etc/NEWS: + * doc/man/etags.1: Document the new options. + + * test/manual/etags/Makefile (check): Add test for new options. + * test/manual/etags/ETAGS.good_7: New file. + +2024-10-08 Michael Albinus <michael.albinus@gmx.de> + + * doc/misc/tramp.texi (Customizing Methods): Add incus-tramp. + +2024-10-08 Dmitry Gutov <dmitry@gutov.dev> + + poject--vc-list-files: Check that the current Emacs is 31+ + + * lisp/progmodes/project.el (project--vc-list-files): + Check that the current Emacs is 31+, to avoid breakage on remote + hosts with older Git (bug#73320). + +2024-10-08 Dmitry Gutov <dmitry@gutov.dev> + + Detect Git version on remote hosts separately from the local one + + * lisp/vc/vc-git.el (vc-git--program-version): Detect Git version + on remote hosts separately from the local one (buf#73320). + (vc-git-connection-default-profile): Set up collection-local + profile. And use it for the 'vc-git' :application. + (vc-git--program-version): Operate on the connection-local value + of 'vc-git--program-version'. + +2024-10-08 Dmitry Gutov <dmitry@gutov.dev> + + Support file creation and deletion in diff-apply-hunk + + * lisp/vc/diff-mode.el (diff-find-file-name): Allow entering + non-existing file name when the corresponding hunk is of type + "create file" (bug#62731). Default to file name with deleted + prefix if diff-buffer-type is Git or Hg. Make sure not to add + such input to diff-remembered-files-alist, it would be hard to + change otherwise in case of typo. + (diff-setup-buffer-type): + Match against the diff header common to 'hg diff' output. + (diff-find-source-location): Look at the other source when the + buffer is applied in reverse. + (diff-apply-hunk): Delect file deletion and pass a different + argument to 'diff-find-source-location' in such case. Bind + diff-vc-backend to nil to avoid older revision buffer being + returned. In the end, offer to delete the file if the hunk was of + corresponding type and matched the existing contents. + + * etc/NEWS: Mention the new capability. + +2024-10-08 Dmitry Gutov <dmitry@gutov.dev> + + Support calling 'project-current' with custom prompt + + * lisp/progmodes/project.el (project-current): Treat being passed + a string in the MAYBE-CURRENT argument specially (bug#70833). + (project-prompt-project-dir, project-prompt-project-name): + Handle it. + + * etc/NEWS: Mention that change. + +2024-10-07 Eli Zaretskii <eliz@gnu.org> + + * lib-src/etags.c (C_entries): Fix assertion violation. + +2024-10-06 Manuel Giraud <manuel@ledu-giraud.fr> + + Add a shortcut to go up in the menu hierarchy. + + * lisp/tmm.el (tmm-prompt): Add a shortcut to go up in the menu + hierarchy (bug#73498). + (tmm-completion-prompt): Document it in help message. + (tmm-define-keys): Add the shortcut in the keymap. + * etc/NEWS: Document the change. + +2024-10-06 Juri Linkov <juri@linkov.net> + + * lisp/vc/diff-mode.el (diff-apply-buffer): Add more failures. + + Add 'failures' as an argument to the 'message' call. + +2024-10-06 Dmitry Gutov <dmitry@gutov.dev> + + help-setup-xref: Simplify further + + * lisp/help-mode.el (help-setup-xref): Simplify, given that the + vars are marked 'permanent-local' already (bug#73637). + +2024-10-06 Daniel Colascione <dancol@dancol.org> + + Simplify xref regular expression with rx + + * lisp/progmodes/xref.el (xref--regexp-to-extended): switch to rx + regular expression for legibility + +2024-10-06 Dmitry Gutov <dmitry@gutov.dev> + + help-setup-xref: Keep the local values only of some variables + + * lisp/help-mode.el (help-setup-xref): Kill all local variables, + saving ones that are known to need to be preserved (bug#73637). + +2024-10-05 Alan Mackenzie <acm@muc.de> + + CC Mode: Remove search limit to fontify first decl in xdisp.c + + An unneeded 10,000 character search limit prevents the full + fontification of the first declaration of xdisp.c, since the + introductory commentary is longer than that. + + * lisp/progmodes/cc-engine.el (c-find-decl-spots): Remove the + 10,000 char limit. + +2024-10-05 Stefan Kangas <stefankangas@gmail.com> + + Remove redundant face specs in manoj-dark theme + + * etc/themes/manoj-dark-theme.el (manoj-dark): Remove redundant face + specs. ':bold t' duplicates ':weight bold', and ':italic t' duplicates + ':slant italic'. + +2024-10-05 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + b68b9f291cc ; * lisp/progmodes/csharp-mode.el (treesit-query-compile)... + 688201ef18d ; * lisp/window.el (switch-to-prev-buffer-skip-regexp): D... + ba44fc9a447 Restore comment/string check for 'electric-layout-mode' + 5a462948e13 Update Arni Magnusson's email address + 6b1271b169a Fix python-ts-mode-map docstring + aaaafddc945 Normalize "Commentary" section in eudc.el + d656be9794d Expand email abbrevs in X-Debbugs-Cc header. + e9dcf0c57dd Fix 'list-tags' when invoked from a non-file buffer + 51ef05f684c count-windows: Fix reference to walk-windows + 5eaf0c784bf * lisp/info-look.el (mapc): Add use-package manual's index. + 705a5a1a9e6 ; * ChangeLog.4: Fix attribution of one change. + bf26ff0dc8d Update csharp-ts-mode font-lock (bug#73369) + 4c866abab96 ; * doc/lispref/variables.texi (Creating Buffer-Local): F... + d42d7d474fe ; * lisp/doc-view.el (doc-view-svg-face): Copy-edit docst... + f46f476bb8f ; * admin/MAINTAINERS: Take VC subsystem, add note about ... + d68e6d2689d ; rcirc-update-activity-string: Justify some existing beh... + e6a37869c8d Fix inconsistency in value of rcirc-activity-string + 108b3179bd4 Revert "; Minor clarification in variables.texi" + 44156c21407 ; Minor clarification in variables.texi + 63058e1153a Tag interactive commands in 'lua-ts-mode' + 84bea20eba2 ; * lisp/info-look.el: Add two more links. + 96b87ad5363 Mention LSP acronym in eglot defgroup docstring + 9c904e8ceae Change :group of 'eglot' defgroup to 'tools' + fd1a1b07805 Remove out-of-date documentation from python.el + 11e3e0cadd4 Fix executing commands in Eshell using "env" with no loca... + c0ef8a9a1b3 Fix a typo in the calendar manual + 36ff7138feb ; Fix a thinko in sieve-manage.el + 7abecbcd633 ; * nt/INSTALL: Update MinGW notes URL. (Bug#73528) + + # Conflicts: + # admin/MAINTAINERS + +2024-10-05 Barra Ó Catháin <barra@ocathain.ie> + + Add file/buffer-to-register (Bug#73308) + + * doc/emacs/regs.texi (File and Buffer Registers): Update + documentation to refer to 'file-to-register' and + 'buffer-to-register'. + * etc/NEWS: Announce the new commands. + * lisp/bindings.el (ctl-x-r-map): Map new commands into the + register keymap. + * lisp/register.el (register-command-info): Register new commands. + (jump-to-register): Remove docstring line referring to using + set-register instead of new commands. + (file-to-register): Add function for storing files in registers. + (buffer-to-register): Add function for storing buffers in + registers. + (register-buffer-to-file-query): Add function for converting + buffer registers to file-query registers on killing a buffer. + +2024-10-05 Stefan Kangas <stefankangas@gmail.com> + + Prefer defvar-keymap in python.el + + It's okay to use defvar-keymap here since the 'compat' package backports + it for all versions of Emacs that we support (24.4 or later). + + * lisp/progmodes/python.el (python-mode-map): Prefer defvar-keymap. + (python-menu): Move to toplevel. + +2024-10-05 Sean Whitton <spwhitton@spwhitton.name> + + icomplete-completions: Revise computation of prospects-len + + * lisp/icomplete.el (icomplete-completions): Revise computation of + prospects-len (i) to avoid calling string-width on the entire + buffer-string, which could be slow; and (ii) to better handle minibuffer + prompts with embedded newlines (bug#72826). + +2024-10-05 Sean Whitton <spwhitton@spwhitton.name> + + work-buffer--release: Bind inhibit-read-only + + * lisp/emacs-lisp/subr-x.el (work-buffer--release): Bind + inhibit-read-only while erasing the buffer. + +2024-10-05 Stefan Kangas <stefankangas@gmail.com> + + Use python-mode for SCons build files + + SCons is a build system whose associated files are Python scripts. + Ref: https://www.scons.org/doc/0.96/HTML/scons-user/x325.html + + * lisp/progmodes/python.el (python--auto-mode-alist-regexp): + Use 'python-mode' for SCons build files. + +2024-10-04 Stefan Kangas <stefankangas@gmail.com> + + Also use "Python Module Index" for info lookup + + * lisp/info-look.el (:mode): Also search Python module index. + +2024-10-04 Stefan Kangas <stefankangas@gmail.com> + + Future-proof searching for Python info manual + + * lisp/info-look.el (:mode): Python is released annually (PEP 602), so + search for minor version based on the current year. + +2024-10-04 Stefan Kangas <stefankangas@gmail.com> + + python: Better support := in electric-layout-mode + + * lisp/progmodes/python.el (python-base-mode): Use heuristic to better + support the Python walrus operator := in electric-layout-rules. + +2024-10-04 Stefan Kangas <stefankangas@gmail.com> + + * lisp/info-look.el (:mode): Support IELM. + +2024-10-04 Stefan Kangas <stefankangas@gmail.com> + + Shorten info-lookup-mode docstring + + * lisp/info-look.el (info-lookup-mode): Shorten variable docstring by + removing information that is auto-generated by 'describe-variable'. + +2024-10-04 Stefan Kangas <stefankangas@gmail.com> + + Expose lambdas in info-look.el to byte-compiler + + * lisp/info-look.el (:mode): Expose lambdas to byte-compiler. + +2024-10-04 Sean Whitton <spwhitton@spwhitton.name> + + find-function-mode: Define keys at a low precedence level + + * lisp/emacs-lisp/find-func.el (find-function-mode-map): Delete. + (find-function-mode): Define keys at the precedence level of + the global map for compatibility with the historical behavior of + find-function-setup-keys. + +2024-10-04 Mattias Engdegård <mattiase@acm.org> + + * lisp/net/sieve-mode.el (sieve-tagged-arguments): Face name typo. + +2024-10-04 Visuwesh <visuweshm@gmail.com> + + Add imenu index function for DjVu files in doc-view + + * lisp/doc-view.el (doc-view-pdfdraw-program): Prefer mutool + over other names. + (doc-view-imenu-enabled): Tweak the default value to check for + 'djvused', and make it obsolete. + (doc-view--djvu-outline, doc-view--parse-djvu-outline): Add new + functions to return imenu index for a Djvu file. + (doc-view--outline): Add new function to create the imenu index + depending on the file type. + (doc-view--outline): Document new possible variable value. + (doc-view-imenu-index): Use the above function instead. + (doc-view-imenu-setup): Try to create the imenu index + unconditionally. + * doc/emacs/misc.texi (DocView Navigation): Mention index + creation using 'djvused' too. + * etc/NEWS: Announce the change. (Bug#73530) + +2024-10-04 Daniel Colascione <dancol@dancol.org> + + Fix term.el tests; refine previous change + + Fix the term.el tests by making them match the new expected output. + + * test/lisp/term-tests.el: defvar - defconst + (ansi-test-strings): remove unwanted text properties from + expectations + + * lisp/term.el: + (term--handle-colors-list): further shrink common-case face list + +2024-10-04 Sean Whitton <spwhitton@spwhitton.name> + + New minor mode find-function-mode replaces find-function-setup-keys + + * lisp/emacs-lisp/find-func.el (find-function-mode-map): + (find-function-mode): New minor mode. + (find-function-setup-keys): Replace with stub function that just + enables the new minor mode. Mark as obsolete. + * etc/NEWS: Announce the change. + +2024-10-04 Theodor Thornhill <theo@thornhill.no> + + Add sentence and sexp movement to python-ts-mode + + * lisp/progmodes/python.el (python-ts-mode): Add relevant node + types. (Bug#60856) + +2024-10-04 Stefan Kangas <stefankangas@gmail.com> + + Fix two warnings in smerge.el + + * lisp/vc/smerge-mode.el (smerge-upper, smerge-lower): Fix warnings. + +2024-10-04 Stefan Kangas <stefankangas@gmail.com> + + Prefer defcustom :local specifier + + * lisp/dirtrack.el (dirtrack-list): + * lisp/emacs-lisp/lisp.el (defun-prompt-regexp): + * lisp/emulation/viper-init.el + (viper-related-files-and-buffers-ring): + * lisp/emulation/viper-util.el (viper-syntax-preference): + * lisp/erc/erc.el (erc-ignore-list): + * lisp/files.el (buffer-offer-save, backup-by-copying-when-mismatch): + * lisp/find-file.el (ff-pre-find-hook, ff-pre-load-hook) + (ff-post-load-hook, ff-not-found-hook, ff-file-created-hook) + (ff-case-fold-search, ff-always-in-other-window) + (ff-ignore-include, ff-quiet-mode, ff-other-file-alist) + (ff-search-directories): + * lisp/mh-e/mh-e.el (mh-scan-prog): + * lisp/newcomment.el (comment-column): + * lisp/obsolete/rlogin.el (rlogin-directory-tracking-mode): + * lisp/play/decipher.el (decipher-ignore-spaces): + * lisp/plstore.el (plstore-encrypt-to): + * lisp/proced.el (proced-format, proced-filter, proced-sort) + (proced-descend, proced-auto-update-flag, proced-tree-flag): + * lisp/progmodes/fortran.el (fortran-line-length): + * lisp/shell.el (shell-history-file-name): + * lisp/simple.el (goal-column, fill-prefix): + * lisp/vc/ediff-init.el (ediff-use-faces) + (ediff-highlight-all-diffs, ediff-autostore-merges): + * lisp/vc/ediff-merg.el (ediff-show-clashes-only) + (ediff-skip-merge-regions-that-differ-from-default): Prefer defcustom + :local specifier to using 'make-variable-buffer-local' directly. + +2024-10-03 Dmitry Gutov <dmitry@gutov.dev> + + help-setup-xref: Clean up xref backend before non-Lisp uses + + * lisp/help-mode.el (help-setup-xref): Kill more local variables, + previously set in help-fns--setup-xref-backend (bug#69462). + +2024-10-03 Dmitry Gutov <dmitry@gutov.dev> + + xref-location-marker: Use find-file-noselect to ensure uptodateness + + * lisp/progmodes/xref.el (xref-location-marker): + Always call 'find-file-noselect' rather than 'get-file-buffer' to + go through the visited-file-modtime verification every time. + +2024-10-03 Stefan Monnier <monnier@iro.umontreal.ca> + + track-changes.el: Improve error tracing to help debugging + + Add a new `trace` setting for `track-changes-record-errors` to + record more information in order to try and help find the root + cause of errors. + + * lisp/emacs-lisp/track-changes.el (track-changes--trace): New var. + (track-changes-record-errors): Document new `trace` setting. + (track-change--backtrace, track-changes--trace): New functions. + (track-changes--recover-from-error): Use them. + (track-changes--error-log): Document new format. + (track-changes-register, track-changes-unregister) + (track-changes-fetch, track-changes--before, track-changes--after): + Call `track-changes--trace`. + +2024-10-03 Stefan Monnier <monnier@iro.umontreal.ca> + + * doc/misc/eieio.texi (Writing Methods): Typo + +2024-10-03 Stefan Monnier <monnier@iro.umontreal.ca> + + (key-translate-select): Minor tweaks + + * lisp/keymap.el (key-translate-select): Rename from + `key-select-translation` so as to stick to the `key-translate-` prefix. + Silence compilation warning. + +2024-10-03 Hugo Heagren <hugo@heagren.com> + + Add commands to interactively set/unset keyboard translations + + * lisp/keymap.el (key-translate): Add an interactive form, prompting for + keys to translate, and update docstring to reflect this. + (key-translate-selection-function): New custom option. + (key-select-translation): New function, default value of above option. + (key-translate-remove): New command, for removing entries from + `keyboard-translate-table'. + +2024-10-03 Stefan Monnier <monnier@iro.umontreal.ca> + + (help--symbol-completion-table): Try and fix bug#73473 + + * lisp/help-fns.el (help--symbol-completion-table): Be more + careful with `help-enable-completion-autoload` so we don't load + a package in cases where we already know it won't impact the result. + +2024-10-03 Andrea Corallo <acorallo@gnu.org> + + * Fix few warnings in lisp/shell.el + + * lisp/shell.el (shell-highlight-undef-defined-face) + (shell-highlight-undef-undefined-face) + (shell-highlight-undef-alias-face): Unquote :inherit argument. + +2024-10-03 Andrea Corallo <acorallo@gnu.org> + + * src/comp.c (compile_function, Fcomp__compile_ctxt_to_file0): Use DOHASH. + + * etc/TODO (Native compiler improvements): Add entry. + +2024-10-03 Sean Whitton <spwhitton@spwhitton.name> + + New M-~ entry in save-some-buffers-action-alist + + * lisp/files.el (save-some-buffers-action-alist): New M-~ entry. + (save-some-buffers): + * doc/emacs/files.texi (Save Commands): + * etc/NEWS: Document the new M-~ binding during C-x s. + +2024-10-03 Eli Zaretskii <eliz@gnu.org> + + Avoid assertion violations due to wrong 'min-width' property + + * src/xdisp.c (display_min_width): Ignore 'min-width' display + specs which produce stretch glyphs wider than the window when + lines are truncated. (Bug#73600) + +2024-10-03 Daniel Colascione <dancol@dancol.org> + + Track nil colors in term + + Teach term the difference between an unset foreground or + background color and a color that happens to match an existing + color. This way, when we insert text after a color + reset:(e.g. from an SGR0), we insert it without :foreground or + :background (whichever we've reset) face properties, allowing + that inserted text to inherit the colors of the underlying face. + + This way, if we change, e.g., the background color of a buffer, + the background color of already-inserted text from the term + child changes along with that of the buffer instead of being + "locked" to whatever the background color of the buffer was at + the time the text was inserted. + + This change aligns term.el with other terminal emulators. + + * lisp/term.el (term-ansi-current-color): + (term--color-as-hex): track nil fg, bg colors + +2024-10-03 Dmitry Gutov <dmitry@gutov.dev> + + Make xref-find-references work in Help buffers outside of projects + + * lisp/help-fns.el (xref-backend-references): + New context-dependent override. Don't call project-current and + use elisp-load-path-roots directly (bug#69462). + (help-fns--setup-xref-backend): No need to set + project-vc-external-roots-function then. + +2024-10-03 Dmitry Gutov <dmitry@gutov.dev> + + Use Emacs Lisp xref backend in Lisp Help buffers + + * lisp/help-fns.el (help-fns--setup-xref-backend): + New function (bug#69462). + (describe-function, describe-variable): Use it here. + + * lisp/emacs-lisp/cl-extra.el (cl-describe-type): And here. + + * lisp/progmodes/elisp-mode.el (xref-backend-definitions): + Only infer namespace in emacs-lisp-mode (use 'any' otherwise). + +2024-10-02 Daniel Colascione <dancol@dancol.org> + + Process focus-in events immediately on NS + + * src/nsterm.m ([EmacsView windowDidBecomeKey]): kick the main + event loop when we get a focus-in event so it gets processed + immediately (Bug#73559). + +2024-10-02 Stefan Kangas <stefankangas@gmail.com> + + Prefer defcustom :local specifier in textmodes + + * lisp/textmodes/fill.el (default-justification): + * lisp/textmodes/ispell.el (ispell-local-dictionary) + (ispell-skip-html): + * lisp/textmodes/less-css-mode.el (less-css-output-file-name) + (less-css-input-file-name): + * lisp/textmodes/refer.el (refer-bib-directory, refer-bib-files) + (refer-cache-bib-files): + * lisp/textmodes/two-column.el (2C-separator, 2C-window-width): + Prefer defcustom :local specifier to using 'make-variable-buffer-local' + directly. + +2024-10-02 Sean Whitton <spwhitton@spwhitton.name> + + New function shell-command-do-open + + * lisp/dired-aux.el (shell-command-do-open): Factor out of + dired-do-open. + (dired-do-open): Call shell-command-do-open. + * etc/NEWS: Announce the new function. + +2024-10-02 Sean Whitton <spwhitton@spwhitton.name> + + Move error check from vc-next-action to diff-vc-deduce-fileset + + * lisp/vc/diff-mode.el (diff-vc-deduce-fileset): Signal + user-error when the buffer is narrowed. + * lisp/vc/vc.el (vc-next-action): Remove code signalling a + user-error when the buffer is narrowed. + +2024-10-02 Stefan Kangas <stefankangas@gmail.com> + + Warn about bad defcustom :local keyword at compile time + + * lisp/emacs-lisp/bytecomp.el (bytecomp--custom-declare): Warn about + invalid values for the defcustom :local keyword. + * test/lisp/emacs-lisp/bytecomp-tests.el + (bytecomp-test-defcustom-local): New test. + +2024-10-02 Stefan Kangas <stefankangas@gmail.com> + + New value 'permanent-only' for defcustom :local keyword + + * lisp/custom.el (custom-declare-variable): Make the :local keyword + accept the symbol 'permanent-local', meaning that the variable is + permanent but not marked as automatically buffer-local. + (defcustom): + * doc/lispref/customize.texi (Variable Definitions): Document the + above change. + + * test/lisp/custom-tests.el + (custom-tests-defcustom-:local-keyword): New test. + +2024-10-01 Stefan Kangas <stefankangas@gmail.com> + + Prefer defcustom :local specifier in semantic + + * lisp/cedet/semantic/db-find.el (semanticdb-find-default-throttle): + * lisp/cedet/semantic/imenu.el (semantic-imenu-summary-function) + (semantic-imenu-bucketize-file, semantic-imenu-buckets-to-submenu) + (semantic-imenu-expand-type-members) + (semantic-imenu-bucketize-type-members) + (semantic-imenu-sort-bucket-function): + * lisp/cedet/semantic/senator.el (senator-highlight-found): + * lisp/cedet/semantic/symref.el (semantic-symref-tool): Prefer defcustom + :local specifier to using 'make-variable-buffer-local' directly. + +2024-10-01 Stefan Kangas <stefankangas@gmail.com> + + Prefer defcustom :local specifier in allout + + * lisp/allout-widgets.el (allout-widgets-track-decoration): + * lisp/allout.el (allout-inhibit-auto-fill) + (allout-inhibit-auto-fill-on-headline, allout-use-hanging-indents) + (allout-reindent-bodies, allout-show-bodies, allout-header-prefix) + (allout-primary-bullet, allout-plain-bullets-string) + (allout-distinctive-bullets-string, allout-old-style-prefixes) + (allout-stylish-prefixes, allout-numbered-bullet) + (allout-presentation-padding, allout-encrypt-unencrypted-on-saves) + (allout-enable-file-variable-adjustment): Prefer defcustom :local + specifier to using 'make-variable-buffer-local' directly. + +2024-10-01 john muhl <jm@pub.pink> + + Use defvar-keymap in lua-ts-mode + + * lisp/progmodes/lua-ts-mode.el (lua-ts-mode-map): Replace + 'defvar' with 'defvar-keymap'. (Bug#73585) + +2024-10-01 Stefan Kangas <stefankangas@gmail.com> + + Fix warning in dictionary.el + + * lisp/net/dictionary.el (dictionary-word-entry-face): Fix face + attribute. + +2024-10-01 Stefan Kangas <stefankangas@gmail.com> + + Prefer defvar-local where possible + + * lisp/editorconfig.el (editorconfig-properties-hash): + * lisp/emacs-lisp/comp-run.el (comp-last-scanned-async-output): + * lisp/info-look.el (info-lookup-mode): + * lisp/mh-e/mh-folder.el (mh-generate-sequence-font-lock): + * lisp/net/tramp.el (tramp-temp-buffer-file-name): + * lisp/obsolete/iswitchb.el (iswitchb-eoinput): + * lisp/obsolete/longlines.el (longlines-wrap-beg, longlines-wrap-end) + (longlines-wrap-point, longlines-showing, longlines-decoded): + * lisp/obsolete/tpu-edt.el (tpu-newline-and-indent-p) + (tpu-newline-and-indent-string, tpu-saved-delete-func) + (tpu-buffer-local-map, tpu-mark-flag): + * lisp/progmodes/python.el (python-check-custom-command): + * lisp/textmodes/reftex.el (reftex-docstruct-symbol) + (reftex-isearch-minor-mode): Prefer defvar-local where possible, and + the package does not support Emacs 24.3 or earlier. + +2024-10-01 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/emacs-lisp/package.el (package-isolate): Use `package-activate-all` + + `package-initialize` is used to initialize the whole machinery needed + to list/download/install/remove packages, whereas here we only need to use + the installed packages. + +2024-10-01 Andrea Corallo <acorallo@gnu.org> + + * Don't iterate over an hash table while modifyiong it in comp. + + * lisp/emacs-lisp/comp.el: Don't iterate over the hash values directly + as 'comp--add-cond-cstrs-target-block' can modify the hash content. + +2024-10-01 Sean Whitton <spwhitton@spwhitton.name> + + New command diff-delete-other-hunks + + * lisp/vc/diff-mode.el (diff-delete-other-hunks): New + command (bug#73387). + (diff-mode-map): Bind the new command to C-c RET n. + (diff-mode-menu): New entry for the new command. + (vc-next-action): Stop, and warn, if the user attempts to commit + a patch from a narrowed buffer (bug#73387). + * doc/emacs/files.texi (Diff Mode): + * etc/NEWS: Document the new command. + +2024-09-30 Stefan Kangas <stefankangas@gmail.com> + + cond-star: Fix copyright + + * lisp/emacs-lisp/cond-star.el: Fix copyright year and license + statement. + +2024-09-30 Jeremy Bryant <jb@jeremybryant.net> + + cond-star: Fix trivial typos, checkdoc fixes, etc. + + * lisp/emacs-lisp/cond-star.el (cond*): + Add header and footer as per checkdoc fixes. + + (match*, cond*-non-exit-clause-substance) + (cond*-convert-clause, cond*-convert-condition) + (cond*-match, cond*-subpat) + (cond*-used-within, cond-star): + Fix typos in comments, and apply checkdoc fixes. (Bug#72546) + +2024-09-30 oscar <oscar@win10-64-vm> + + Fix redirection of read when _FORTIFY_SOURCE is defined + + When _FORTIFY_SOURCE is defined mingw-w64 provides an inline definition + of read in io.h. This makes our previous redirection to sys_read + ineffective. The prototype of sys_read is now required because we don't + touch the prototype of read. + + * nt/inc/ms-w32.h (read): Move the redirection after io.h. Add prototype + for sys_read (Bug#73444) + +2024-09-30 Stefan Kangas <stefankangas@gmail.com> + + Delete some libraries obsolete since Emacs 24.4/24.5 + + * lisp/obsolete/cc-compat.el: + * lisp/obsolete/info-edit.el: + * lisp/obsolete/meese.el: + * lisp/obsolete/otodo-mode.el: + * lisp/obsolete/rcompile.el: + * lisp/obsolete/sup-mouse.el: + * lisp/obsolete/terminal.el: + * lisp/obsolete/vi.el: + * lisp/obsolete/vip.el: + * lisp/obsolete/ws-mode.el: + * lisp/obsolete/yow.el: Delete libraries obsolete since Emacs 24.4 and + 24.5. (Bug#73257) + + * doc/misc/vip.texi: + * etc/refcards/vipcard.tex: Delete vip.el documentation. + + * doc/emacs/ack.texi (Acknowledgments): + * doc/misc/Makefile.in (INFO_COMMON): + * etc/refcards/Makefile (PDF_ENGLISH, survival.dvi): + * etc/refcards/README: + * lisp/info.el (Info-url-alist): + (Info-file-list-for-emacs): Delete references to above libraries. + +2024-09-30 F. Jason Park <jp@neverwas.me> + + Remove erc-fill binding for cycling visual movement + + * etc/ERC-NEWS: Announce removal of troublesome key binding first + introduced in ERC 5.6 as part of the `erc-fill-wrap' module. + * lisp/erc/erc-fill.el (erc-fill-wrap-mode-map): Remove key binding for + `erc-fill-wrap-cycle-visual-movement'. + * test/lisp/erc/erc-fill-tests.el (erc-fill-wrap-visual-keys--body) + (erc-fill-wrap-visual-keys--prompt): Replace "C-c a" key simulations. + (Bug#73553) + +2024-09-30 F. Jason Park <jp@neverwas.me> + + Skip indentation when gathering faces in erc-track + + * lisp/erc/erc-nicks.el (erc-nicks-mode, erc-nicks-enable) + (erc-nicks-disable): Use correct name for `track' module hook. + (erc-nicks--check-normals): Remove falsity from doc string. + * lisp/erc/erc-track.el (erc-make-mode-line-buffer-name): Don't error + when optional COUNT is nil. + (erc-track-modified-channels): Use new name for preferred face-finding + function. + (erc-track--get-faces-in-current-message, erc-track--collect-faces-in): + Rename former to latter to better reflect expanded utility, which now + includes spanning gaps, including newlines and indentation that may be + lacking in face-related properties. + * test/lisp/erc/erc-track-tests.el (erc-track--collect-faces-in): New + test. (Bug#73443) + +2024-09-30 F. Jason Park <jp@neverwas.me> + + Make erc-keep-place-indicator aware of erc-truncate + + * etc/ERC-NEWS: Entry mentioning `erc-keep-place-indicator-truncation'. + * lisp/erc/erc-goodies.el (erc-keep-place-indicator-truncation): New + option. Something like this should have accompanied the module's + introduction. + (erc-keep-place-indicator-mode, erc-keep-place-indicator-enable) + (erc-keep-place-indicator-disable): Arrange to take necessary measures + to avoid losing the indicator on `erc--clear-function'. This module was + first introduced by bug#59943. + (erc--keep-place-move-hook): New variable. + (erc--keep-place-indicator-adjust-on-clear): New function. + (erc-keep-place-move): Try to ensure the overlay resides at the + beginning of a message. Run hook `erc--keep-place-move-hook'. + * test/lisp/erc/erc-scenarios-keep-place-indicator-trunc.el: New file. + * test/lisp/erc/erc-scenarios-keep-place-indicator.el + (erc-scenarios-keep-place-indicator--follow): Fix missing test + description. (Bug#72736) + +2024-09-30 F. Jason Park <jp@neverwas.me> + + Redo ERC truncation and /CLEAR hook mechanism + + * etc/ERC-NEWS: Mention option `erc-truncate-padding-size'. + * lisp/erc/erc-fill.el (erc-fill-wrap-mode, erc-fill-wrap-enable) + (erc-fill-wrap-disable): Manage membership in the `erc--clear-function' + advice stack for own function that massages a buffer's oldest inserted + message, post truncation. + (erc-fill--wrap-massage-initial-message-post-clear): New function. + * lisp/erc/erc-log.el (erc-log-mode, erc-log-enable): Don't add + `erc-save-buffer-in-logs' to `erc--pre-clear-functions'. Use local + advice around common interface variable instead, as noted below. + (erc-log-disable): Likewise, don't remove `erc-save-buffer-in-logs' from + `erc--pre-clear-functions'. + (erc-log-setup-logging): Add `erc-log--save-on-clear' to + `erc--clear-function'. + (erc-log-disable-logging): Remove `erc-log--save-on-clear' to + `erc-clear-function'. + (erc-save-buffer-in-logs): Abort when `erc--insert-marker' is non-nil. + (erc-log--save-on-clear): New function, a thin wrapper around + `erc-save-buffer-in-logs', adapting it to the `erc--clear-function' + advice interface. + * lisp/erc/erc-stamp.el (erc-stamp-mode, erc-stamp-enable): Don't + add `erc-stamp--reset-on-clear' to `erc--pre-clear-functions'. + (erc-stamp-disable): Don't remove `erc-stamp--reset-on-clear' from + `erc--pre-clear-functions'. + (erc-stamp--find-insertion-point): Account for initial position being + `bobp'. + (erc-stamp--defer-date-insertion-on-post-modify): Accommodate the rare + non-list `erc-insert-post-hook' when shadowing. + (erc-stamp--setup): Add and remove `erc-stamp--reset-on-clear' to and + from `erc--clear-function' advice stack. + (erc-stamp--redo-right-stamp-post-clear): New function. + (erc-stamp--update-saved-position): Remove unused function. This was + originally added along with `erc-stamp--reset-on-clear' as part of + bug#60936. + (erc-stamp--reset-on-clear): Expect end of truncation boundary to be at + `erc-insert-marker'. Rework to use new `erc--clear-function' interface + and run on `erc-timer-hook' instead of `erc-insert-done-hook'. + * lisp/erc/erc-truncate.el (erc-truncate-padding-size): New option to + help tamp down on disruptions when reading scroll back caused by overly + frequent truncation. + (erc-truncate-enable, erc-truncate-disable): Add and remove + `erc-truncate--setup' to and from `erc-mode-hook', and run it when + needed. + (erc-truncate--buffer-size): New variable. + (erc-truncate--setup): New function. + (erc-truncate-buffer-to-size): Guard execution with + `erc-truncate--padding-size' and `erc--inhibit-clear-p'. Reflow for + readability, removing obsolete comments. Call hooks with marker instead + of buffer position, as per the new `erc--clear-function' interface. + (erc-truncate-buffer): Defer execution to `erc-timer-hook' when running + post-insertion via a response handler. + (erc-truncate--inhibit-when-local-and-interactive): New function. + * lisp/erc/erc.el (erc-mode): Add `erc--skip-past-headroom-on-clear' + to `erc--clear-function' in all ERC buffers. + (erc--with-spliced-insertion): Account for marker being `bobp'. + (erc--insert-before-markers-transplanting-hidden): Make more robust by + accommodating initial `point' possibly being `bobp'. + (erc--clear-function): New variable, a function-valued local-advice + interface to replace `erc--pre-clear-functions'. + (erc--pre-clear-functions): Remove unused variable. + (erc--skip-past-headroom-on-clear): New function. + (erc--inhibit-clear-p): New variable. + (erc-cmd-CLEAR): Call hooks with markers instead of position. Signal + `user-error' when `erc--inhbiit-clear-p' is non-nil. + * test/lisp/erc/erc-scenarios-log.el (erc-scenarios-log--clear-stamp) + (erc-scenarios-log--cmd-clear/date-stamps): Rename former to latter, + update assertions, and use common helper. + (erc-scenarios-log--cmd-clear/left-stamps): New test. + (erc-scenarios-log--truncate): Move body to function of the same name, + and update assertions. + (erc-scenarios-log--truncate/left-stamps): New test. (Bug#72736) + +2024-09-30 F. Jason Park <jp@neverwas.me> + + Fix overlooked case in erc--get-inserted-msg-beg-at + + * lisp/erc/erc.el (erc--get-inserted-msg-beg-at): Account for the start + of a props header being `bobp' when searching backwards. + (erc--get-inserted-msg-prop): Add optional `point' parameter. + * test/lisp/erc/erc-goodies-tests.el + (erc--get-inserted-msg-beg/truncated/readonly): New test. + * test/lisp/erc/erc-tests.el (erc--get-inserted-msg-beg/truncated): New + test. + * test/lisp/erc/resources/erc-tests-common.el + (erc-tests-common-assert-get-inserted-msg/truncated): New test helper. + (Bug#72736) + +2024-09-30 F. Jason Park <jp@neverwas.me> + + Improve inconsistent handling of ban lists in ERC + + * etc/ERC-NEWS: Mention new function `erc-sync-banlist' in new section + for ERC 5.6.1. + * lisp/erc/erc-backend.el (erc-server-MODE): Don't call + `erc-banlist-update'. + * lisp/erc/erc-fill.el (erc--determine-fill-column-function): New + method for `fill' and `fill-wrap' modules. + * lisp/erc/erc-pcomplete.el (pcomplete/erc-mode/BANLIST) + (pcomplete/erc-mode/BL) + (pcomplete/erc-mode/MASSUNBAN, pcomplete/erc-mode/MUB): + New functions. + * lisp/erc/erc.el: Map ERC 5.6.1 to Emacs 31.1 in + `customize-package-emacs-version-alist'. + (erc-channel-banlist): Deprecate practice of using the symbol property + `received-from-server' of as a state flag because it's error-prone and + bleeds into other connections. + (erc--channel-banlist-synchronized-p): New variable to indicate + whether the ban list has been initialized. The presence of a local + binding for `erc-channel-banlist' could probably be used for the same + purpose but would surely require rewriting `erc-cmd-BANLIST' and + `erc-cmd-MASSUNBAN'. + (erc-sync-banlist): New function, announced in ERC-NEWS. + (erc--wrap-banlist-cmd): New function. + (erc-banlist-fill-padding): New variable. + (erc--determine-fill-column-function): New generic function. + (erc-cmd-BANLIST): Move forward declaration of `erc-fill-column' from + top level into function body. Always reset `received-from-server' to + nil. Improve column calculations. + (erc-cmd-MASSUNBAN): Always reset `received-from-server' to nil. + (erc-banlist-finished): Deprecate function unused since 2003. + (erc--banlist-update): New function. + (erc-banlist-update): Deprecate function because its logic is faulty + and it doesn't handle mixed mode letters, like "MODE #foobar + +mb *@127.0.0.1". See https://modern.ircdocs.horse/#mode-message. It + also depends on an obsolete convention regarding the symbol property + `received-from-server' of `erc-channel-banlist'. Basically, this + function used to run upon receipt of any "MODE" command from the + server. However, actual updates to the variable `erc-channel-banlist' + only happened if `received-from-server' was t, which could only be the + case after the user issued a /MASSUNBAN. And that behavior was + determined to be a bug. This mode framework stuff was introduced as + part of bug#67220 for ERC 5.6. + (erc--handle-channel-mode): New function, a method for standard + channel-mode letter "b". + * test/lisp/erc/erc-tests.el (erc--channel-modes) + (erc--channel-modes/graphic-p): Assert contents of + `erc-channel-banlist' updated on "MODE". (Bug#72736) + +2024-09-30 F. Jason Park <jp@neverwas.me> + + Bind current erc-response around all handlers + + * lisp/erc/erc-backend.el (erc--parsed-response): New variable to be + the internal version of the ancient `erc-message-parsed', which is + only available during `erc-display-message', and therefore of somewhat + limited utility. + (erc-call-hooks): Bind `erc--parsed-response' to the parsed + `erc-response' object for the duration of its handling. Bind + `erc--msg-prop-overrides' around all hooks to allow response handlers + to influence inserted msg props for any `erc-display-message' calls. + (Bug#72736) + +2024-09-30 F. Jason Park <jp@neverwas.me> + + Store one string per user in erc--spkr msg prop + + * lisp/erc/erc.el (erc--msg-props): Mention that the `erc--spkr' + msg-prop value is taken from the `nickname' slot of the user's + `erc-server-users' entry. + (erc--speakerize-nick): Avoid using the provided NICK parameter for + the `erc--spkr' property. Instead, use the version from the + `nickname' slot of its `erc-server-users' item, which is itself an + `erc-server-user' object. These text props were originally introduced + in ERC 5.6 as part of bug#67677. + * test/lisp/erc/erc-tests.el (erc--refresh-prompt) + (erc--check-prompt-input-functions, erc-send-current-line) + (erc--check-prompt-input-for-multiline-blanks) + (erc-send-whitespace-lines): Use more convenient helper utility to + create fake server buffer where possible. + (erc--speakerize-nick): New test. + * test/lisp/erc/resources/erc-tests-common.el + (erc-tests-common-make-server-buf): Don't use ERT temp buffer's name + for dialed server, etc., because it contains unwanted chars. + (erc-tests-common-with-process-input-spy): Defer to each test to set + up its own prompt, etc. (Bug#72736) + +2024-09-29 Stefan Kangas <stefankangas@gmail.com> + + Try "python" before "python3" in python-mode + + Prefer whatever version of Python that "python" might point to; use + "python3" if it doesn't exist. On recent versions of typical GNU/Linux + distributions, "python" either does not exist or it points to Python 3. + In (presumed rare) cases where "python" points to Python 2 instead, + users are now expected to manually customize these variables if they + want to use Python 3. + + * lisp/progmodes/python.el (python-interpreter) + (python-shell-interpreter): Prefer "python" to "python3". + + Ref: + https://lists.gnu.org/r/emacs-devel/2024-09/msg00885.html + +2024-09-29 Mattias Engdegård <mattiase@acm.org> + + Cease accepting the :reverse-video face attribute (bug#73552) + + It was an old alias for :inverse-video that hasn't worked very well for + many years. + + * src/xfaces.c (merge_face_ref, Finternal_set_lisp_face_attribute) + (Finternal_set_lisp_face_attribute_from_resource) + (Finternal_get_lisp_face_attribute) + (Finternal_lisp_face_attribute_values, syms_of_xfaces): + Stop recognising :reverse-video. + * etc/NEWS: Announce. + +2024-09-29 Mattias Engdegård <mattiase@acm.org> + + * lisp/custom.el (custom-fix-face-spec): Fix :reverse-video case + + The :reverse-video keyword is no longer used but we might just as well + fix the code that is supposed to migrate away from it (bug#73552). + +2024-09-29 Mattias Engdegård <mattiase@acm.org> + + Stop using :reverse-video in make-mode + + * lisp/progmodes/make-mode.el (makefile-space, makefile-makepp-perl): + Stop using a long obsolete attribute keyword. + +2024-09-29 Mattias Engdegård <mattiase@acm.org> + + Warn about :reverse-video in defface + + This attribute keyword has been non-working in defface for 14 years, + thus warning about it is both safe and decent. + + * lisp/emacs-lisp/bytecomp.el (bytecomp--check-cus-face-spec): + Warn and suggest :inverse-video to be used instead. + * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-test-defface-spec): + Add a test case. + * etc/NEWS: Notify the user. + +2024-09-29 Dmitry Gutov <dmitry@gutov.dev> + + Use directory-name-p in vc-git--file-list-is-rootdir + + * lisp/vc/vc-git.el (vc-git--file-list-is-rootdir): + Use directory-name-p. + +2024-09-29 Sean Allred <allred.sean@gmail.com> + + project--vc-list-files: Use '--sparse' with 'git ls-files' + + When dealing with exceptionally large Git repositories, the + performance of `project-find-file` can suffer dramatically as + the list of files is collected for completion. This adds insult + to injury when you consider cases where the developer has + configured the repository to use a sparse checkout where the + vast majority of these files are not even present on disk and + are not valid candidates for completion. + + * lisp/progmodes/project.el (project--vc-list-files): + Pass 'sparse' to 'git ls-files' when Git is recent enough. + Filter out file names that end with '/' (bug#73320). + +2024-09-28 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + e2b01d164cd ; Fix last changes in php-ts-mode.el + +2024-09-28 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + e8830015b07 Require ert-x for use by 'ert-font-lock-deftest-file' + a1841b4d8e7 ; * admin/authors.el (authors-aliases): Don't ignore "one... + 69d8f9d1b70 Fix php-ts-mode font-lock for latest PHP grammar (bug#73516) + 68f53e43488 eieio.texi: Fix bug#73505 + 53c887fdf6d ; cperl-mode.el: Fix an invalid face specification + f5cd5585f46 ; Recommend GNU Find for 'find-dired' + 65e589698e6 ; * lisp/filesets.el (filesets-homepage): Fix URL. + 1f243a97806 Delete duplicated line in Viper refcard + d63bff4d88f Fix Tramp shortdoc integration + 759b18a33c0 * lisp/imenu.el (imenu-flatten): More limitations in docs... + 794bb2a2e31 remember-data-file: Don't unconditionally call set-visite... + 7766ba84199 Align columns in which-key with wide characters properly + bd25a98b4e7 bibtex-mode: fix patch bibtex validation for non-file buf... + 4729065ee78 Document 'buttonize-region' in manual + f189457e5aa ; * lisp/yank-media.el (yank-media-handler): Fix docstrin... + 2b53e11a087 Use black-on-white by default for doc-view-svg-face. + 32d0c8f6af5 etags-regen-file-extensions: Enable for more extensions + 8f265b49e3d ; Fix last change + c8ed48b9901 ; Improve documentation of 'append' + c1f2501f55d Update and improve UI of sql-read-product (bug#73412) + 4f5fc519f09 Insert correct commit data into VC package descriptions + 98177d4b3d1 Document reporting security issues in user manual + b986e2018a4 * BUGS: Minor copy edit. + +2024-09-28 Manuel Giraud <manuel@ledu-giraud.fr> + + * etc/images/kitchen-sink.xpm: New file. + +2024-09-28 shynur <one.last.kiss@outlook.com> + + Enable 'sh-mode' for files created by Bash 'fc' command + + * lisp/files.el (auto-mode-alist): Recognize bash-fc.XXXX files. + (Bug#73380) + +2024-09-28 Visuwesh <visuweshm@gmail.com> + + Add buffer-local register commands to DocView + + * lisp/doc-view.el (doc-view-register-alist): New defvar to keep + track of buffer-local register-alist. + (doc-view-page-to-register, doc-view-jump-to-register): Add new + commands to set and jump to buffer-local registers. + (register-val-insert, register-val-describe) + (register-val-jump-to): Register defmethod to save and restore + doc-view registers. + (doc-view-mode-map): Bind the new commands. + * doc/emacs/misc.texi (DocView Navigation): Document the new + commands. (Bug#73293) + * etc/NEWS: Announce the change. + +2024-09-27 Mattias Engdegård <mattiase@acm.org> + + Warn about bad face specs in `defface` at compile time + + * lisp/emacs-lisp/bytecomp.el (byte-compile--custom-declare-face): + Byte-compile `defface` forms, or the byte-compile handler won't + be called. + (bytecomp--check-cus-face-spec): New. + (bytecomp--custom-declare): Call it. + * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-test-defface-spec): + New tests. + +2024-09-27 Mattias Engdegård <mattiase@acm.org> + + * lisp/custom.el (defface): Add missing attributes to doc string. + +2024-09-27 Alan Mackenzie <acm@muc.de> + + CC Mode: Parse C++ lambda functions more correctly + + This fixes bug#72695. + + * lisp/progmodes/cc-align.el (c-lineup-topmost-intro-cont): Do + not indent further a line following a closing brace of a + requires clause. + + * lisp/progmodes/cc-engine.el (c-forward-keyword-clause): + Separate the handling of "any-paren-kwds" into + "type-paren-kwds" and "nontype-paren-kwds", simplifying the + handling of the latter. + (c-forward-primary-expression): Recognize (...) followed by { + as a primary expression. + (c-looking-at-or-maybe-in-bracelist): No longer recognize an + enum list as a brace list. Remove the handling of enum lists. + (c-looking-at-c++-lambda-expression) + (c-backward-over-lambda-expression): New functions. + (c-c++-vsemi-p): Don't recognize the end of requires clauses as + virtual semicolons. + (c-guess-basic-syntax): CASE 5U - new cond arm to recognize + being after a requires clause. These lines now get syntax + topmost-intro-cont rather than topmost-intro, and their anchor + positions are now on the topmost-intro line rather than the + previous topmost-intro-cont. + Throughout the file: simplify handling of + c-fun-name-substitute-key, where there is no need to check for + a following _ character, and introduce c-requires-clause-key + for greater accuracy in parsing, even though both of these are + just "requires". + + * lisp/progmodes/cc-fonts.el (c-get-fontification-context): + Tidy up the handling of c-fun-name-substitue-key, as in + cc-engine.el. + + * lisp/progmodes/cc-langs.el (c-lambda-spec-kwds) + (c-lambda-spec-key): New lang vars. + (c-fun-name-substitute-key): Now an adorned expression. + (c-requires-clause-kwds, c-requires-clause-key): New lang vars. + +2024-09-27 Michael Albinus <michael.albinus@gmx.de> + + * lisp/mail/emacsbug.el (submit-emacs-patch): Insert empty X-Debbugs-Cc + + (Bug##57877) + +2024-09-27 Stefan Kangas <stefankangas@gmail.com> + + Bind "J" to bookmark-jump in bookmark-bmenu-mode + + * lisp/bookmark.el (bookmark-bmenu-mode-map): Bind "J" to bookmark-jump. + +2024-09-27 Stefan Kangas <stefankangas@gmail.com> + + Prefer python3 for python-interpreter + + * lisp/progmodes/python.el (python-interpreter): Prefer "python3" when + it exists, to be consistent with python-shell-interpreter. + +2024-09-27 Spencer Baugh <sbaugh@janestreet.com> + + Move to start of current header in diff-{file,hunk}-prev + + If point was after a file or hunk header, the diff-file-prev and + diff-hunk-prev commands would move to the start of that header. + But if point was *within* the header, they would not move, and + would report "No previous file" or "No previous hunk". This + differs from the behavior of most other movement commands, + e.g. backward-sexp or backward-sentence. + + This commit fixes diff-file-prev and diff-hunk-prev, as well as + other easy-mmode-define-navigation BASE-prev commands. Now + these commands move to the start of the containing "thing" just + like other movement commands. + + * lisp/emacs-lisp/easy-mmode.el (easy-mmode--prev): + Move to start of current match first. (bug#73172) + * etc/NEWS: Document the behavior change. + +2024-09-27 Spencer Baugh <sbaugh@janestreet.com> + + Move easy-mmode-define-navigation logic to helper functions + + The functions defined by easy-mmode-define-navigation are useful + even if the easy-mmode-define-navigation macro is not used. + Let's take a step towards exposing them by moving them out as + helpers. + + This also makes the macro much easier to modify and work on. + + * lisp/emacs-lisp/easy-mmode.el (easy-mmode--prev) + (easy-mmode--next): Add (bug#73172). + (easy-mmode-define-navigation): Use easy-mmode--prev and + easy-mmode--next. + +2024-09-26 Stefan Monnier <monnier@iro.umontreal.ca> + + (pcase-tests-quote-optimization): Fix warning + + * test/lisp/emacs-lisp/pcase-tests.el (pcase-tests-quote-optimization): + Fix confusing code. + +2024-09-26 Stefan Monnier <monnier@iro.umontreal.ca> + + * lisp/emacs-lisp/pcase.el (pcase--expand-\`): Improve warning message + + And also move the warning "out of the way" so it doesn't + confuse optimizations. + +2024-09-26 Stefan Kangas <stefankangas@gmail.com> + + Add Python "*.pth" files to auto-mode-alist + + * lisp/progmodes/python.el (python--auto-mode-alist-regexp): New + variable. + (auto-mode-alist, python-ts-mode): Use above new variable. + +2024-09-26 Andrea Corallo <acorallo@gnu.org> + + * Clean-up unused condition-case + + * lisp/emacs-lisp/comp.el (comp--native-compile): Remove unused + condition-case. + +2024-09-26 Sean Whitton <spwhitton@spwhitton.name> + + New command diff-revert-and-kill-hunk + + * lisp/vc/diff-mode.el (diff-revert-and-kill-hunk): New + command (bug#73407). + (diff-ask-before-revert-and-kill-hunk): New user option. + (diff-apply-buffer): New optional BEG, END and REVERSE + arguments. Return nil if buffers were saved, or the number of + failed applications. + (diff-mode-map): Bind the new command to C-c M-r. + (diff-mode-menu): New entry for the new command. + * doc/emacs/files.texi (Diff Mode): + * etc/NEWS: Document the change. + +2024-09-26 Eli Zaretskii <eliz@gnu.org> + + Revert "; Recommend GNU Find for 'find-dired'" + + This reverts commit 5f8c2d5bf9638c38fdba7eb840d3bc7b252bb687. + It was committed by mistake on this branch. + +2024-09-26 Stefan Kangas <stefankangas@gmail.com> + + Deprecate 'Homepage' header in favor of 'URL' + + * doc/lispref/tips.texi (Library Headers): Document the 'Homepage' + header as deprecated in favor of 'URL'. + +2024-09-25 Alan Mackenzie <acm@muc.de> + + * etc/NEWS: Describe the change to enum handling in CC Mode + +2024-09-25 Robert Pluim <rpluim@gmail.com> + + Test 'network-lookup-address-info' argument type checking + + * test/src/process-tests.el (lookup-hints-values): Pass in + non-string values, which should result in type errors. + +2024-09-25 Juri Linkov <juri@linkov.net> + + * lisp/hi-lock.el (hi-lock-revert-buffer-rehighlight): Fix lighter. + + Add '(car pattern)' as the LIGHTER argument of 'highlight-regexp'. + This fixes the case when in a file buffer with fundamental-mode: + `C-s M-s ' the M-s h r RET`, revert the buffer with 'C-x x g', + get the prompt for unhighlight with 'M-s h u'. This showed + a raw regexp instead of the human-readable lighter (bug#57534). + +2024-09-24 Alan Mackenzie <acm@muc.de> + + CC Mode: Separate indentation of enums from that of brace lists + + This will allow enums to be indented as in the GNU coding + standards without affecting brace lists. + + * lisp/progmodes/cc-align.el + (c-lineup-arglist-intro-after-paren) + (c-lineup-arglist-close-under-paren) + (c-lineup-whitesmith-in-block) + (c-lineup-after-whitesmith-blocks): Amend doc strings to + indicate they can be used for enum-* syntactic symbols too. + + * lisp/progmodes/cc-engine.el (c-looking-at-decl-block) + (c-backward-typed-enum-colon, c-backward-over-enum-header): + Rename c-after-brace-list-key to c-after-enum-list-key and + c-brace-list-key to c-enum-list-key. + (c-at-enum-brace): New function. + (c-inside-bracelist-p): Don't check for enums any more. + (c-add-stmt-syntax): New cond arm for enums. + (c-guess-continued-construct CASE B.6) New code for enum-open. + (c-guess-basic-syntax CASE 5A.3, CASE 7B, CASE 9, CASE 9B) + (CASE 9C, CASE 9D): Use the new function c-at-enum-brace, and + use enum-* syntactic symbols rather than brace-list-* ones + where appropriate. + (c-used-syntactic-symbols): New dynamic variable. + (c-evaluate-offset): Add handling for a different syntactic + symbol as the cdr of a c-offsets-alist element. + + * lisp/progmodes/cc-fonts.el (c-get-fontification-context): + Add a call to c-at-enum-brace since c-inside-bracelist-p no + longer handles enums. + (c-font-lock-enum-body, c-font-lock-enum-tail): Condense calls + to c-backward-over-enum-header to c-at-enum-brace. + (c-basic-matchers-after): Replace a c-brace-list-decl-kwds with + c-enum-list-kwds. + + * lisp/progmodes/cc-langs.el (c-enum-list-kwds) + (c-enum-list-key): New names for c-brace-list-decl-kwds and + c-brace-list-key. + (c-after-enum-list-kwds, c-after-enum-list-key): New names for + c-after-brace-list-decl-kwds and c-after-brace-list-key. + (c-enum-list-key, c-after-enum-list-key): Add code to + use a value of an old name, should a derived mode still use + that. + (c-defun-type-name-decl-kwds, c-typedef-decl-kwds) + (c-typeless-decl-kwds, c-prefix-spec-kwds) + (c-brace-id-list-kwds, c-enum-clause-introduction-re): Use + c-enum-list-kwds rather than c-brace-list-decl-kwds. + + * lisp/progmodes/cc-styles.el (c-read-offset): Add "a + syntactic symbol" into an error message text. + + * lisp/progmodes/cc-vars.el (c-valid-offset): Allow for a + syntactic symbol as the parameter. + (c-offsets-alist): Add new syntactic symbols enum-open, + enum-close, enum-intro, and enum-entry. + + * doc/misc/cc-mode.texi (Syntactic Symbols): Add a note that + anchor points are briefly documented in cc-vars.el. Correct + the suffix "-block-intro" to "-intro". Remove "an enum or" + from the descriptions of the brace-list-* syntactic symbols. + Add in new descriptions for the enum-* syntactic symbols. + (Brace List Symbols): Remove references to enums. Add a note + that enums are no longer brace-lists. + (Enum Symbols): A new subsection documenting the new enum-* + syntactic symbols. + (c-offsets-alist): Document the new possibility, syntactic + symbol, for the cdr of an alist entry. + (Brace/Paren Line-Up, List Line-Up): Note that the new enum + syntactic symbols can be handled by these lineup functions. + +2024-09-24 Stefan Monnier <monnier@iro.umontreal.ca> + + Declare nested backquotes unsupported in Pcase patterns (bug#72328) + + The current behavior is inconsistent with that of the normal backquote + macro, so to avoid surprises, warn about the use of nested backquotes. + + * lisp/emacs-lisp/pcase.el (pcase--expand-\`): Warn about nested backquotes. + + * lisp/emacs-lisp/testcover.el (testcover-analyze-coverage) + (testcover-analyze-coverage-wrapped-form): Avoid nested backquotes + +2024-09-24 Sean Whitton <spwhitton@spwhitton.name> + + diff-apply-buffer: Improve failure message + + * lisp/vc/diff-mode.el (diff-apply-buffer): Say "hunk", not + "hunks", when there was only one failed hunk. + +2024-09-23 Michael Albinus <michael.albinus@gmx.de> + + Extend tramp-otp-password-prompt-regexp + + * lisp/net/tramp.el (tramp-otp-password-prompt-regexp): Add TACC + HPC prompt. + +2024-09-23 Michael Albinus <michael.albinus@gmx.de> + + * doc/misc/tramp.texi (Frequently Asked Questions): Improve indices. + +2024-09-22 Cecilio Pardo <cpardo@imayhem.com> + + Fix multi-file drag-and-drop on MS-Windows + + Pass all dropped files to 'dnd-handle-multiple-urls' in + one call instead on doing multiple calls (Bug#73258). + * lisp/term/w32-win.el (w32-dropped-file-to-url): New function to + convert file name to a url for dnd. + (w32-handle-dropped-file): Changed to use 'w32-dropped-file-to-url'. + (w32-drag-n-drop): Changed to pass all files to + 'dnd-handle-multiple-urls'/ + +2024-09-22 Eshel Yaron <me@eshelyaron.com> + + Teach Electric Pair mode about prefix arguments + + * lisp/elec-pair.el (electric-pair--insert): New arg TIMES. + (electric-pair-inhibit-if-helps-balance) + (electric-pair-post-self-insert-function) + (electric-pair-open-newline-between-pairs-psif) + (electric-pair-skip-if-helps-balance): Respect prefix arg. + (electric-pair-delete-pair): Delete ARG chars, not just 1. + * test/lisp/electric-tests.el (autowrapping-multi-1) + (autowrapping-multi-2): New tests. + * doc/emacs/programs.texi (Matching): Mention prefix arg + support in Electric Pair mode documentation. + * etc/NEWS: Announce it. (Bug#72437) + +2024-09-21 Alan Mackenzie <acm@muc.de> + + CC Mode: fix minor errors in the fontification of enums. + + 1: Fix the typing of a space on the { line in an enum + specification which is the first item in a buffer. This + defontified the enum's identifiers. + 2: Fix the typing of a space on the line of the enum's last + identifier. This defontified that identifier for + jit-lock-context-time. + + * lisp/progmodes/cc-engine.el (c-forward-declarator): Cease + rejecting the identifier if there are no further tokens before + LIMIT. + + * lisp/progmodes/cc-mode.el (c-fl-decl-start): Accept a + backward search as succeeding if it hits point-min. + +2024-09-21 Manuel Giraud <manuel@ledu-giraud.fr> + + Don't activate midnight-mode when loading 'midnight' + + * lisp/midnight.el (midnight-mode): Call 'midnight-delay-set' again + when the mode is activated. + (midnight-delay-set): Only start the timer if the mode is turned + on. (Bug#73291) + * etc/NEWS: Document the change in behaviour. + +2024-09-21 Stefan Kangas <stefankangas@gmail.com> + + Delete redundant declarations of 'electric' variables + + * lisp/progmodes/js.el (electric-layout-rules): + * lisp/progmodes/octave.el (electric-layout-rules): + * lisp/progmodes/python.el (electric-indent-inhibit): + * lisp/textmodes/rst.el (electric-indent-inhibit): Delete redundant + declarations; 'electric' is preloaded since Emacs 24.4. + +2024-09-21 Stefan Kangas <stefankangas@gmail.com> + + Add Python keywords "aiter" and "anext" + + * lisp/progmodes/python.el (python-font-lock-keywords-level-2) + (python--treesit-builtins): Add "aiter" and "anext" keywords, + introduced in Python 3.10. + +2024-09-21 Stefan Kangas <stefankangas@gmail.com> + + Add all exceptions up to Python 3.13 as keywords + + * lisp/progmodes/python.el + (python-font-lock-keywords-maximum-decoration) + (python--treesit-exceptions): Add all built-in exceptions in Python 3.13 + as keywords. Missing from the list was "BaseExceptionGroup", + "EncodingWarning", "ModuleNotFoundError", and "PythonFinalizationError". + +2024-09-21 Stefan Kangas <stefankangas@gmail.com> + + Add subword-mode toggle to python-mode menu + + * lisp/progmodes/python.el (python-mode-map): Add subword-mode + toggle to menu. + +2024-09-21 Stefan Kangas <stefankangas@gmail.com> + + Support electric-layout-mode in python-base-mode + + * lisp/progmodes/python.el (python-base-mode): Add support for + 'electric-layout-mode'. + +2024-09-21 Eli Zaretskii <eliz@gnu.org> + + Fix merging of NEWS from emacs-30. + +2024-09-21 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + ecfebb5abb8 ; Always set 'emoji--insert-buffer' + 35e356f958a Fix font-lock of last character before EOB under 'whitesp... + 01ebe6de895 Fix 'whitespace-mode' with 'missing-newline-at-eof' + +2024-09-21 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + b7f6cde419f Disable xwidgets with recent webkitgtk versions (Bug#66068) + a6dafbc2bc5 ; * lisp/editorconfig.el (editorconfig-indentation-alist)... + 0834106a620 Fix treesit--merge-ranges (bug#73324) + 76c6b4d2799 Fix midnight-mode documentation + f7782522207 ; Fix my email address + db22efca8d4 editorconfig.el: Fix too naive sync from upstream + 0f12d6dd23c ; * etc/NEWS: Announce 'doc-view-mpdf--use-svg'. + 29d50e245f8 * lisp/progmodes/eglot.el (eglot--signal-textDocument/did... + + # Conflicts: + # etc/NEWS + # lisp/treesit.el + +2024-09-21 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 4b9a8fd6074 etags-regen-file-extensions: Add .pm + 956f14ae5e9 * src/treesit.c (treesit_debug_print_parser_list): Fix co... + 300d05ecb4c Type-check argument to network-lookup-address-info + 0f0f21b7f27 ; Improve doc strings of options related to numbered backups + f0daa2f2153 Conservative heuristic for tree-sitter parser ranges (bug... + 035024b4e5a ; Fix treesit.c printing + 8771310a10d ; * admin/notes/unicode: Need to run textsec-tests (bug#7... + 4c6f45fa8ee Re-enable GC mark trace buffer by default + c6077015894 ; * src/haiku_support.cc: Correct last change. + ae22ad7f624 ; Add even more tests for previous commit + 460b9d705ab Fix treesit_sync_visible_region's range fixup code (bug#7... + 81347c1aaf2 ; * etc/PROBLEMS: Fix last change (bug#73207). + a82b7f3e823 Document unavailability of frame geometry on Wayland + +2024-09-21 Paul Nelson <ultrono@gmail.com> + + Add option for delete-pair to mark end of region + + * lisp/emacs-lisp/lisp.el (delete-pair-push-mark): New user option. + (delete-pair): Use it. (Bug#73284) + + * etc/NEWS: Announce the new user option. + +2024-09-21 Vincenzo Pupillo <v.pupillo@gmail.com> + + Add user option to enable Doxygen syntax highlighting (bug#72814) + + Both 'c-ts-mode' and 'java-ts-mode' have a new user option, + 'c-ts-mode-enable-doxygen' and 'java-ts-mode-enable-doxygen' + (defaults to nil) which allow to enable syntax highlighting + of comment blocks based on the Doxygen grammar. + + * lisp/progmodes/c-ts-mode.el: Add the 'c-ts-mode-enable-doxygen' + user option variable to disable doxygen grammar. + Notifies the user if doxygen grammar is not available. + * lisp/progmodes/c-ts-mode.el (c-ts-mode, c++-ts-mode): Use the + new 'c-ts-mode-enable-doxygen' option. + * lisp/progmodes/java-ts-mode.el: Add the + 'java-ts-mode-enable-doxygen' user option variable to disable + doxygen grammar. Notifies the user if doxygen grammar is not + available. + * lisp/progmodes/java-ts-mode.el (java-ts-mode): Use the new + 'java-ts-mode-enable-doxygen' option. + + * etc/NEWS: Document the change. + +2024-09-21 Eli Zaretskii <eliz@gnu.org> + + Fix 'regexp-replace' in WDired + + * src/search.c (Freplace_match): Remove the test that + search_regs.num_regs != num_regs. It is deemed unnecessary now, + and could produce false positives. (Bug#73018) + +2024-09-21 Michael Albinus <michael.albinus@gmx.de> + + * test/infra/gitlab-ci.yml (.tree-sitter-template): Add treesit.el. + +2024-09-21 Michael Albinus <michael.albinus@gmx.de> + + Use (sit-for 0) in Tramp + + * lisp/net/tramp.el (tramp-wait-for-regexp): Use (sit-for 0) in + order to avoid performace regression. + +2024-09-21 Yuan Fu <casouri@gmail.com> + + Add accessors for treesit-font-lock-settings + + Since each SETTING in treesit-font-lock-settings is considered an opaque + object, provide accessor functions for each field. + + * lisp/treesit.el: + (treesit-font-lock-settings): Update docstring. + (treesit-font-lock-setting-query): + (treesit-font-lock-setting-enable): + (treesit-font-lock-setting-feature): + (treesit-font-lock-setting-override): New functions. + (treesit--font-lock-setting-feature): Remove function. + (treesit--font-lock-setting-enable): Rename to + treesit--font-lock-setting-clone-enable to avoid confusion with + treesit-font-lock-setting-enable. + (treesit-add-font-lock-rules): Use renamed function. + (treesit-font-lock-fontify-region): Add a comment. + * doc/lispref/modes.texi (Parser-based Font Lock): Update manual. + +2024-09-21 David Fussner <dfussner@googlemail.com> + + Fix regexps for TeX xref backend + + * lisp/textmodes/tex-mode.el (tex-thingatpt-exclude-chars): Remove + variable. + (tex-thingatpt--beginning-of-symbol, tex-thingatpt--end-of-symbol): + Use hard-coded characters instead of variable. (Bug#53749) + +2024-09-20 Po Lu <luangruo@yahoo.com> + + Remove obsolete workaround + + * src/fontset.c (fontset_find_font): Don't refuse to cache + font objects whose registries do not agree with the font + specs. (bug#73363) + +2024-09-20 Mattias Engdegård <mattiase@acm.org> + + Speed up tall rectangular selections (bug#72830) + + Instead of setting the highlight overlay on every line in the selection, + only do so on the window-height worth of lines closest to point because + the rest aren't likely to be visible. + + This makes a massive difference for tall rectangular selections which + previously were so slow as to be unusable. + + (Tall selections are still slow if `select-active-regions` is non-nil, + but that is something that users can actually do something about.) + + * lisp/rect.el (rectangle--highlight-for-redisplay) + (rectangle--unhighlight-for-redisplay): + Replace call to `apply-on-rectangle`, which operates on every line, + with a loop over an approximate screenful. + Extend the `rectangle` overlay list structure with a value for point, + because `exchange-point-and-mark` must trigger a recomputation of + highlight overlays despite the selection not actually changing. + +2024-09-19 Eli Zaretskii <eliz@gnu.org> + + Fix M-TAB completion of variables in 'cond' + + * lisp/progmodes/elisp-mode.el (elisp-completion-at-point): Add + special support for 'cond, 'cond*', and 'bind*'. (Bug#73330) + +2024-09-19 Juri Linkov <juri@linkov.net> + + * lisp/dired-aux.el (dired-do-open): Optimize (bug#73004). + + Detect system-type only once, then iterate over files + for every system type separately. + +2024-09-19 Spencer Baugh <sbaugh@janestreet.com> + + Support numeric indexing in let-alist + + let-alist is very useful. But sometimes an alist contains a list in + the middle, which contains yet more alists. Previously, this was + somewhat painful to deal with, and required something like: + + (let-alist alist + (let-alist (nth 0 .a) + (let-alist (nth 3 .b) + .c))) + + Now, the following works: + + (let-alist alist + .a.0.b.3.c) + + * lisp/emacs-lisp/let-alist.el (let-alist--access-sexp): Properly + parse numbers to handle lists. (Bug#66509) + (let-alist--list-to-sexp): Use nth to handle numbers. + (let-alist): Update docs. + +2024-09-18 Juri Linkov <juri@linkov.net> + + Additional fix for kill-region-dwim (bug#69097) + + * lisp/simple.el (kill-region): Restore the original logic of + raising the error unless both 'beg' and 'end' are non-nil + since 'end' is always non-nil. + +2024-09-18 Juri Linkov <juri@linkov.net> + + More fixes for kill-region-dwim (bug#69097) + + * lisp/simple.el (kill-region-dwim): Move the default nil + to the top of choices. + (kill-region): Set the FORCE argument of 'mark' to non-nil + if kill-region-dwim is non-nil. That allows everyone to use + non-nil kill-region-dwim even if mark-even-if-inactive is nil. + Don't check 'last-command' if kill-region-dwim is non-nil. + That allows everyone to type C-w twice in a row to delete + two previous words. + +2024-09-18 Manuel Giraud <manuel@ledu-giraud.fr> + + Make `dired-do-open' work on more *nix systems + + * lisp/dired-aux.el (dired-do-open): Make `dired-do-open' work + on more *nix systems (bug#73004). + +2024-09-18 Paul Eggert <eggert@cs.ucla.edu> + + yes-or-no-p now uses blankp rather than SYNTAX + + * src/fns.c: Do not include syntax.h; no longer needed. + (Fyes_or_no_p): Use blankp rather than SYNTAX to check whether the + prompt ends in nonspace. That way, the test doesn’t depend on the + current buffer. + +2024-09-18 Po Lu <luangruo@yahoo.com> + + Fix layout of preferences activity on Android 35 + + * java/org/gnu/emacs/EmacsPreferencesActivity.java (onCreate): + Align list view to system windows. + +2024-09-18 F. Jason Park <jp@neverwas.me> + + Only conditionally resolve hosts in nsm-should-check + + Libraries like `socks' need to run `nsm-verify-connection' without + performing DNS lookups. This change allows them to achieve this by + binding `nsm-trust-local-network' to nil around calls to that function. + + * lisp/net/nsm.el (nsm-should-check): Rework in a functionally + equivalent way, except forgo calling both `network-lookup-address-info' + and `network-interface-list' unless the various conditions regarding + `nsm-trust-local-network' are first satisfied. Replace `mapc' with + `dolist' to align with modern sensibilities. (Bug#53941) + +2024-09-18 Paul Eggert <eggert@cs.ucla.edu> + + Use c-ctype.h in lib-src + + This fixes some unlikely bugs and removes the temptation + of using ctype.h. Although some uses were correct, + many weren't. + * lib-src/ebrowse.c: Include c-ctype.h, not ctype.h. + * lib-src/emacsclient.c: Include c-ctype.h, not ctype.h. + * lib-src/update-game-score.c: Include c-ctype.h, not ctype.h. + All uses changed. + +2024-09-18 Paul Eggert <eggert@cs.ucla.edu> + + Fix some #! misparsing in check_interpreter + + * exec/exec.c: Do not include ctype.h, as the kernel + does not care about the locale. + (check_interpreter): Treat only spaces and tabs as white space. + Do not inspect more bytes than were read. + Although the resulting code does not exactly match what + the Android kernel does, it’s closer than what it was before. + +2024-09-18 Paul Eggert <eggert@cs.ucla.edu> + + Fix misuse of toupper in sfnt_parse_style + + * src/sfntfont.c: Include c-ctype.h, not ctype.h. + (sfnt_parse_style): Upcase just initial ASCII letters; + that’s good enough here. + +2024-09-18 Paul Eggert <eggert@cs.ucla.edu> + + Fix yes-or-no-p with multibyte spaces + + Problem reported by Thomas Klausner (Bug#73307). + Emacs shouldn’t use ctype.h, as it doesn’t work for multibyte + chars and it doesn’t work with Emacs’s locale model anyway. + * src/fns.c: Include syntax.h, not ctype.h. + (Fyes_or_no_p): Check the character category with SYNTAX, not + with isspace, which assumes the current locale and works only + with single-byte characters. + +2024-09-17 Eshel Yaron <me@eshelyaron.com> + + New user option 'completion-preview-ignore-case' + + Completion Preview mode implicitly assumed that + 'completion-ignore-case' is nil, and while it can also work + with 'completion-ignore-case' non-nil, the results are a bit + different than what you get with 'completion-at-point'. Add + an option that controls case sensitivity explicitly and + specifically for Completion Preview mode, and clarify the + behavior when case differences are ignored. (Bug#73234) + + * lisp/completion-preview.el + (completion-preview-ignore-case): New user option. + +2024-09-17 Robert Pluim <rpluim@gmail.com> + + Fix idna-mapping-table following Unicode 16 changes + + The latest version of UTS #46 in Unicode 16 has changed the way it + indicates which codepoints are invalid in domain names, causing + 'idna-mapping-table' to contain incorrect information, which then breaks + 'textsec-domain-suspicious-p' and our test suite. (Bug#73312) + + * admin/unidata/unidata-gen.el (unidata-gen-idna-mapping): Check the + IDNA validity field in "IdnaMappingTable.txt" in addition to checking + the status field, as the latter can now be 'valid' for disallowed + codepoints. + +2024-09-17 Dmitry Gutov <dmitry@gutov.dev> + + Rename project-{find-file-in-root,root-find-file} + + * lisp/progmodes/project.el (project-root-find-file): + Rename from 'project-find-file-in-root' (bug#73044). + +2024-09-17 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + +2024-09-17 Paul Eggert <eggert@cs.ucla.edu> + + Remove unnecessary #include + + * src/sysdep.c: Don’t include utimens.h; hasn’t been + needed for a while. + +2024-09-15 Stefan Kangas <stefankangas@gmail.com> + + Add make-directory to symbol-releases.eld + + This avoids saying (incorrectly) that it was introduced in Emacs 23.1. + + * etc/symbol-releases.eld: Add 'make-directory'. + +2024-09-15 Stefan Kangas <stefankangas@gmail.com> + + Remove some XEmacs compat code from cperl-mode.el + + The 'initialize-new-tags-table' function is unconditionally available + after 'etags' has been loaded, which is done further up. + + * lisp/progmodes/cperl-mode.el (cperl-write-tags): Remove XEmacs compat + code. + +2024-09-15 Daniel Martín <mardani29@yahoo.es> + + ;; Fix typo in Grep Edit mode manual description (bug#73274). + +2024-09-15 Mattias Engdegård <mattiase@acm.org> + + * lisp/simple.el (kill-region-dwim): Rectify choice label. + +2024-09-15 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 709ce2aff14 Port to Haiku R1/beta5 + 21efdd5ef31 Fix c++-ts-mode font-lock for latest c++ grammar (bug#73191) + ffc00eac53d ; Set Transient's version and add admin/MAINTAINERS entry + 3822a5e5d12 * admin/update-copyright: Print reminder to do manual upd... + 43b678d3d26 * admin/notes/years: Update. + 38de992a5a3 * etc/TODO: New item "support indentation guides". + + # Conflicts: + # admin/notes/years + # doc/misc/transient.texi + # lisp/progmodes/c-ts-mode.el + # lisp/transient.el + +2024-09-14 Philip Kaludercic <philipk@posteo.net> + + Allow 'kill-region' to kill the last word when there is no region + + * etc/NEWS: Document the new user option. + * lisp/simple.el (kill-region-dwim): New option. + (kill-region): Respect 'kill-region-dwim'. (Bug#69097) + +2024-09-14 David Fussner <dfussner@googlemail.com> + + Update the etags/ctags test files + + * test/manual/etags/ETAGS.good_1: + * test/manual/etags/ETAGS.good_2: + * test/manual/etags/ETAGS.good_3: + * test/manual/etags/ETAGS.good_4: + * test/manual/etags/ETAGS.good_5: + * test/manual/etags/ETAGS.good_6: + * test/manual/etags/CTAGS.good: Update expected results from TeX + files. (Bug#53749) + +2024-09-14 David Fussner <dfussner@googlemail.com> + + Provide a modified xref backend for TeX buffers + + In addition to providing a new `xref' backend, the patch also improves + the general handling of expl3 syntax. Expl3 is the next-generation + LaTeX specification, and has for some time been available by default in + the LaTeX kernel. The new syntax co-exists in many files with the + standard LaTeX2e syntax, so we try at least minimally to separate the + way modes handle the two specifications, both to reduce + visually-disturbing interference between them and also to improve the + `xref' backend. (Bug#53749) + + * lib-src/etags.c (TeX_commands): Improve parsing of commands in TeX + buffers. + (TEX_defenv): Expand list of commands to tag by default in TeX buffers. + (TeX_help): + * doc/emacs/maintaining.texi (Tag Syntax): Document new tagged commands. + (Identifier Search): Add note about semantic-symref-filepattern-alist, + auto-mode-alist, and xref-find-references. + + * lisp/textmodes/tex-mode.el (tex-font-lock-suscript): Test for + underscore in expl3 files and regions, disable subscript face there. + (tex-common-initialization): Set up xref backend for in-tree TeX modes. + Detect expl3 files, and in others set up a list of expl3 regions. + (tex-expl-buffer-parse): New function called in previous. + (tex-expl-buffer-p): New variable to hold the result of previous. + (tex-expl-region-set): New function added to + 'syntax-propertize-extend-region-functions' hook. + (tex-expl-region-list): New variable to hold the result of previous. + (tex--xref-backend): New function to identify the xref backend. + (tex--thing-at-point, tex-thingatpt--beginning-of-symbol) + (tex-thingatpt--end-of-symbol, tex--bounds-of-symbol-at-point): + New functions to return 'thing-at-point' for xref backend. + (tex-thingatpt-exclude-chars): New variable to do the same. + (xref-backend-identifier-at-point): New TeX backend method to provide + symbols for processing by xref. + (xref-backend-identifier-completion-table) + (xref-backend-identifier-completion-ignore-case) + (xref-backend-definitions, xref-backend-apropos): Placeholders to + call the standard 'etags' xref backend methods. + (xref-backend-references): Wrapper to call the default xref backend + method, finding as many relevant files as possible and using a bespoke + syntax-propertize-function when required. + (tex--collect-file-extensions, tex-xref-syntax-function): Helper + functions for previous. + (tex-find-references-syntax-table, tex--buffers-list) + (tex--xref-syntax-fun, tex--old-syntax-function): New variables for + the same. + +2024-09-14 Eli Zaretskii <eliz@gnu.org> + + Fix indentation of Fortran do-loops + + * lisp/progmodes/fortran.el (fortran-calculate-indent): Fix regexp + for do-loops. Reported by Ken Mankoff <km@kenmankoff.com>. + (Bug#73218) + +2024-09-14 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + d509a356997 Fix regression in widget-move (bug#72995) + ef0276de82b ; * lisp/cus-edit.el (setopt): Doc fix. (Bug#73098) + b115c2d5eba ; * lisp/minibuffer.el (completion-pcm--merge-completions... + 3cda1fdc3b7 Correctly include fixed strings before a prefix wildcard ... + 57d93d0259a ; * lisp/treesit.el (treesit-major-mode-setup): Doc fix. + ad289f364e5 ; Improve documentation of 'easy-menu-define' + 3cad7cc8dc8 Set treesit-primary-parser for c and elixir ts mode + 2f243fb91d6 ; Minor doc fix in treesit.el + 6a6d7925c9d Fix range handling so it works for multibyte buffer (bug#... + 76faf7e6091 Revert "Read more on each call to treesit's buffer reader" + c70bd0e3fe9 Fix tree-sitter indent preset prev-adaptive-prefix + 272df33fb8b ; * CONTRIBUTE: Minor copyedits. + 8e1187e336f Improve NEWS entries + ca3932121a8 Don't fail uniquify-tests in non-version-controlled sourc... + 79f68597aba ; * etc/ORG-NEWS: Fix typo. + d66b70f3607 * doc/misc/auth.texi: Minor copy edits. + 2c6b7b2da9f ; * admin/MAINTAINERS: Remove some entries for Artur Mala... + 11e7ae3964e Fix bug#72254 + + # Conflicts: + # etc/NEWS + +2024-09-14 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 68530860ae9 ; * ChangeLog.4: Update. + fb1db366b98 ; * etc/AUTHORS: Update. + +2024-09-14 Sean Whitton <spwhitton@spwhitton.name> + + New commands unix-word-rubout, unix-filename-rubout + + * lisp/simple.el (forward-unix-word): New function. + (unix-word-rubout, unix-filename-rubout): New commands. + * etc/NEWS: Announce the new commands. + +2024-09-14 Cecilio Pardo <cpardo@imayhem.com> + + Support GUI dialogs and message boxes better on MS-Windows + + * src/w32menu.c (TASKDIALOG_COMMON_BUTTON_FLAGS, TASKDIALOG_FLAGS) + (PFTASKDIALOGCALLBACK, TASKDIALOG_BUTTON, TASKDIALOGCONFIG) + (TDN_CREATED, TDM_ENABLE_BUTTON, TDF_ALLOW_DIALOG_CANCELLATION) + (TD_INFORMATION_ICON) [!MINGW_W64]: Define. + (TaskDialogIndirect_Proc): Declare function type. + (TASK_DIALOG_MAX_BUTTONS): New macro. + (task_dialog_callback): New callback function. + (w32_popup_dialog): Add dialog implementation using TaskDialog. + (globals_of_w32menu): Load TaskDialogIndirect from comctl32.dll. + (Bug#20481) + +2024-09-14 Visuwesh <visuweshm@gmail.com> + + Make the *grep* buffer editable + + * lisp/progmodes/compile.el (compilation--update-markers): + Factor out function... + (compilation-next-error-function): ...from here. Adjust + to use the above. + * lisp/progmodes/grep.el (grep-edit--prepare-buffer) + (grep-edit-mode-map, grep-edit-mode-hook, grep-edit-mode) + (grep-change-to-grep-edit-mode, grep-edit-save-changes): Add + new 'grep-edit-mode' to make the grep results editable like + in 'occur-edit-mode' by using the 'occur' framework. + (grep-mode-map): Bind 'e' to the new command + 'grep-change-to-grep-edit-mode'. + * doc/emacs/building.texi (Grep Searching): Update Info + manual to include the above command. + * etc/NEWS: Announce the change. (Bug#70820) + +2024-09-14 Spencer Baugh <sbaugh@janestreet.com> + + Update completion-styles defcustom for variable overrides + + In 69ec333eab0b801949d33ef5ae505addc9061793 I allowed + completion-styles to contain a list of bindings. Now the + 'defcustom' type also supports this. + Since the type is somewhat unusual (a value in the list can be + either a symbol or a list) I had to add a new widget to support + it. + * lisp/minibuffer.el (completion--styles-type): Update to allow + setting variable overrides. + (completion-styles, completion-category-overrides) + (completion-pcm-leading-wildcard): Update :version. + + * lisp/wid-edit.el (widget-single-or-list-to-internal) + (single-or-list): Add. + +2024-09-14 Michael Albinus <michael.albinus@gmx.de> + + * lisp/net/tramp.el (tramp-wait-for-regexp): Deactivate (sit-for 0.005). + +2024-09-13 Stefan Kangas <stefankangas@gmail.com> + + * etc/symbol-releases.eld: Fix URL. + +2024-09-13 Robert Pluim <rpluim@gmail.com> + + Use stable URLs for files imported from Unicode + + * admin/notes/unicode: Point people at "admin/unidata/README" for URLs + for Unicode files. + * admin/unidata/README: Use stable URLs for the various files. Remove + dates, the files self-describe their dates anyway. + +2024-09-13 Robert Pluim <rpluim@gmail.com> + + Add notes about documenting default values + + * CONTRIBUTE: Ask people to document default values when adding new user + options. + +2024-09-13 Eli Zaretskii <eliz@gnu.org> + + Improve accuracy of character categories + + * lisp/international/characters.el: Assign 'digit' category to all + the characters whose Unicode 'general-category' is Nd. + + * admin/unidata/blocks.awk: Add code to assign 'symbol' category + to all characters belonging to the 'symbol' script. + + * etc/NEWS: Announce the above changes + +2024-09-12 Eli Zaretskii <eliz@gnu.org> + + Update Emacs sources for Unicode 16.0 + + * lisp/international/ucs-normalize.el (check-range): Update ranges + of character codes with decompositions. + * lisp/international/mule-cmds.el (ucs-names): Update unused + ranges. + * lisp/international/fontset.el (script-representative-chars) + (otf-script-alist, setup-default-fontset): Add new scripts. + * lisp/international/characters.el: + * admin/unidata/blocks.awk: + * test/manual/BidiCharacterTest.txt: + * test/lisp/international/ucs-normalize-tests.el + (ucs-normalize-tests--failing-lines-part2): Update for Unicode + 16.0. + + * etc/NEWS: Announce support for Unicode 16.0. + +2024-09-12 Eli Zaretskii <eliz@gnu.org> + + Import updated Unicode files from Unicode 16.0 + + * admin/unidata/BidiBrackets.txt: + * admin/unidata/BidiMirroring.txt: + * admin/unidata/Blocks.txt: + * admin/unidata/IdnaMappingTable.txt: + * admin/unidata/NormalizationTest.txt: + * admin/unidata/PropertyValueAliases.txt: + * admin/unidata/ScriptExtensions.txt: + * admin/unidata/Scripts.txt: + * admin/unidata/SpecialCasing.txt: + * admin/unidata/UnicodeData.txt: + * admin/unidata/copyright.html: + * admin/unidata/emoji-data.txt: + * admin/unidata/emoji-sequences.txt: + * admin/unidata/emoji-test.txt: + * admin/unidata/emoji-variation-sequences.txt: + * admin/unidata/emoji-zwj-sequences.txt: Update from Unicode 16.0 + +2024-09-12 Manuel Giraud <manuel@ledu-giraud.fr> + + Human readable last display time of killed buffer + + * lisp/midnight.el (clean-buffer-list): Upon killing a buffer, + add a human readable last displayed information. (Bug#73150) + +2024-09-12 Manuel Giraud <manuel@ledu-giraud.fr> + + Simple typo in `clean-buffer-list' + + * lisp/midnight.el (clean-buffer-list): `delay' is always an + integer here. (Bug#73144) + +2024-09-12 Yuan Fu <casouri@gmail.com> + + Add Ftreesit_grammar_location + + * src/treesit.c (treesit_loaded_lang): New struct. + (treesit_load_language): Return a struct instead of just the language + object. The struct contains both the language object and the path to + the shared library. + (Ftreesit_language_available_p, Ftreesit_language_abi_version) + (treesit_ensure_query_compiled, Ftreesit_parser_create): Update + call of treesit_load_language. + (Ftreesit_grammar_location): New function. + +2024-09-11 Michael Albinus <michael.albinus@gmx.de> + + Allow to disable symbolic links check in Dired + + * doc/emacs/dired.texi (Misc Dired Features): + * doc/misc/tramp.texi (Frequently Asked Questions): + Explain dired-check-symlinks. + + * etc/NEWS: Describe dired-check-symlinks. + Fix typos. + + * lisp/dired.el (dired-check-symlinks): New defcustom. + (dired-font-lock-keywords): Use it. (Bug#73046) + +2024-09-11 Paul Nelson <ultrono@gmail.com> + + Add Ediff feature for copying all differences + + * lisp/vc/ediff-util.el (ediff-diff-to-diff): With universal + prefix, copy all differences. + + * doc/misc/ediff.texi (Quick Help Commands): Document the new feature. + * etc/NEWS: Announce the new feature. + + (Bug#72866) + +2024-09-11 Martin Rudalics <rudalics@gmx.at> + + For minibuffer windows record minibuffers only (Bug#72487) + + * src/minibuf.c (zip_minibuffer_stacks): Use wset type + functions. Call 'record-window-buffer' instead of + 'push-window-buffer-onto-prev' to handle all sorts of buffers + shown in minibuffer windows in a uniform way. + (read_minibuf): Call 'record-window-buffer' instead of + 'push-window-buffer-onto-prev' for same reason as previous. + * lisp/calculator.el (calculator-update-display) + (calculator-save-and-quit): Make sure calculator buffer is live + before operating on it. + * lisp/window.el (record-window-buffer): Handle case where + WINDOW is a minibuffer window: Unconditionally remove WINDOW's + buffer from WINDOW's list of previous buffers and push it if + and only if it is a live minibuffer (Bug#72487). Do not run + 'buffer-list-update-hook' if WINDOW is a minibuffer window. + (push-window-buffer-onto-prev): Make it an alias of + 'record-window-buffer' so it will run the latter's checks. + (replace-buffer-in-windows): Handle minibuffer windows and + rewrite doc-string accordingly. + * doc/lispref/windows.texi (Buffers and Windows): Explain + handling of minibuffer windows in 'replace-buffer-in-windows'. + +2024-09-11 fpi <git@pie.tf> + + Allow comments to organizer in icalendar event replies (Bug#72831) + + * lisp/gnus/gnus-icalendar.el + (gnus-icalendar-event--build-reply-event-body): Add optional COMMENT + argument to be inserted into the reply. + (gnus-icalendar-event-reply-from-buffer): Add COMMENT argument to be + passed through to gnus-icalendar-event--build-reply-event-body + (gnus-icalendar-reply-accept, gnus-icalendar-reply-tentative, + gnus-icalendar-reply-decline): If interactively called with a prefix + argument ask user for a COMMENT to add to the reply. + + * test/lisp/gnus/gnus-icalendar-tests.el + (gnus-icalendar-accept-with-comment, + gnus-icalendar-decline-without-changing-comment): New tests. + +2024-09-11 Po Lu <luangruo@yahoo.com> + + * src/treesit.h (struct Lisp_TS_Parser): Correct merge error. + +2024-09-11 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + ee3e3a63111 ; Update version number of exec/configure.ac + c5925b6ba5f Fix heex-ts-mode indentation following previews elixir-mo... + c3383be5f04 ; * admin/make-tarball.txt: Improve last change. + 8ddb54117f1 ; * admin/make-tarball.txt: Remove now unnecessary config... + 7e194d33f90 * lisp/ldefs-boot.el: Update. + 9019536ea66 Fix use of Uniscribe font driver in MinGW build + 5c55c860db7 Avoid crashes in redisplay in batch-mode testing + ba2190e1ae7 ; * etc/NEWS: Fix indentation. + 818c0cc9a51 eglot-test-rust-completion-exit-function: Fix failure in ... + f47297782bd ; * doc/lispref/searching.texi (Rx Notation): Simplify rx... + 03e56981675 Clarify the semantics of 'string-pixel-width' + 9f0603207b1 ; * src/treesit.c: Minor cleanups of recent changes. + e0d3f743957 * src/treesit.c (treesit_debug_print_parser_list): Fix fo... + bed38ded730 ; * src/treesit.c (treesit_debug_print_parser_list): Fix ... + 18c6487dbd0 ; * src/treesit.c: Add a prototype so there's no warning ... + bf23382f1f2 Read more on each call to treesit's buffer reader + 3435464452b Fix the range handling in treesit.c + 3fcec09f754 Add debugging function for treesit.c + 0fd259d166c Fix elixir-ts-mode's range query + 2329b36b1fb ; project-files-relative-names: Update docstring (bug#72701) + e55e2e1c6ba Make json-serialize always return a unibyte string (bug#7... + 89c99891b2b ; * doc/lispref/os.texi (Suspending Emacs): Fix last change. + 4f044d0d3df ; Improve documentation of 'suspend-emacs' + +2024-09-10 Michael Albinus <michael.albinus@gmx.de> + + Avoid 100% CPU load in Tramp + + * lisp/net/tramp.el (tramp-wait-for-regexp): Add (sit-for 0.005) + prior calling `tramp-accept-process-output'. This avoids 100% CPU + load. (Bug#73046) + +2024-09-09 Juri Linkov <juri@linkov.net> + + * src/xdisp.c (note_tab_bar_highlight): Remove fallback for help_echo_string. + + Don't use TAB_BAR_ITEM_CAPTION as the default value + when TAB_BAR_ITEM_HELP is not specified (bug#73050). + +2024-09-09 Michael Albinus <michael.albinus@gmx.de> + + Silence compiler error + + * lisp/net/tramp.el (tramp-file-name*): Embed `function-put' calls + with `tramp--with-startup'. + (tramp-active-command-completion-p) + * lisp/net/tramp-cache.el (tramp-get-hash-table): Remove declare + form. Add `tramp-suppress-trace' function property. + +2024-09-09 Mattias Engdegård <mattiase@acm.org> + + * etc/emacs_lldb.py (Lisp_Object): Recognise Lisp_Sub_Char_Table + +2024-09-09 Mattias Engdegård <mattiase@acm.org> + + Speed up LLDB support for debugging Emacs + + * etc/emacs_lldb.py (Lisp_Object): + Perform some numeric operations in Python instead of invoking LLDB + for evaluation. Add lots of caches. + +2024-09-08 Eli Zaretskii <eliz@gnu.org> + + Fix :type of some user options + + * lisp/which-key.el: + * lisp/progmodes/python.el: + * lisp/play/animate.el: + * lisp/pixel-scroll.el: + * lisp/image/image-dired.el: + * lisp/htmlfontify.el: Change :type of user options from 'float' + to 'number' where integer values make sense. (Bug#73098) + +2024-09-08 Vincenzo Pupillo <v.pupillo@gmail.com> + + Support for custom php.ini for the built-in PHP web server. + + A new CONFIG attribute, which defaults to 'php-ts-mode-php-config', + allows an alternative php.ini file to be specified for the built-in web + server. The 'php-ts-mode-run-php-webserver' function, when called + interactively with a prefix argument, also requires this new attribute. + * lisp/progmodes/php-ts-mode.el (php-ts-mode--parent-html-bol): + Fix docstring. + * lisp/progmodes/php-ts-mode.el (php-ts-mode-run-php-webserver): + New CONFIG attribute. Update docstring. + * lisp/progmodes/php-ts-mode.el (php-ts-mode--webserver-read-args): + Support the new TYPE. Update docstring. (Bug#72966) + +2024-09-08 Eli Zaretskii <eliz@gnu.org> + + Improve diagnostic of type mismatch in 'setopt' + + * lisp/cus-edit.el (setopt--set): Name the variable in the warning + message. (Bug#73084) + + * test/lisp/cus-edit-tests.el (test-setopt): Adjust test. + +2024-09-08 James Thomas <jimjoe@gmx.net> + + Keep local keymap out of vc-git-stash-get-at-point + + * lisp/vc/vc-git.el (vc-git-stash-get-at-point): + Return the substring without text properties (bug#72768). + +2024-09-07 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + b420e149b1e Fix a typo in ediff-init.el + e1304e9b1bb Fix 'chart-space-usage' on MS-Windows + 04c44405bf6 Fix alignment and documentation of vtable.el + 4d6fadb8d21 ; * lisp/which-key.el: Fix ':package-version' (bug#73072). + 54071b9cef2 ; Improve doc strings of 'tab-bar-mode' and 'tab-line-mode' + 87a8b12a0c4 Fix test failure in erc-networks-tests + dad0935cfcb ; * doc/emacs/building.texi (Lisp Libraries): Update (bug... + e4dc6711b02 Fix :hook in 'use-package' + c1cd036d27a ; * doc/lispref/modes.texi (Mode Line Data): Fox wording. + ae2463796f2 ; Caveats about using :eval in 'mode-line-format' + 4047072c7d8 Update FSF's address + 24f12bdd77e Support the new option in ruby-ts-mode too + 6c15b7710d4 Add new option ruby-bracketed-args-indent + 7799ef43354 Fix Rmail base64 and qp decoding of MIME payloads + 0def396fa8f Update to Org 9.7.11 + 8c044bd9726 ; Fix recent changes in documentation + e0d8879bcd5 * test/lisp/emacs-lisp/tabulated-list-tests.el: Add missi... + 4ff4b78f922 ; Small doc fixes + da980ad838e ; Reword some "allows Xing" + 2ca7d5649c6 ; More accurate text about how `equal` compares various o... + + # Conflicts: + # etc/NEWS + +2024-09-07 Eli Zaretskii <eliz@gnu.org> + + Remove low-level keyboard hook when attaching GDB to Emacs on Windows + + This fixes the problem whereby attaching GDB to a running Emacs + on MS-Windows would slow down keyboard input, because the + low-level keyboard hook installed by Emacs at startup was still + installed, but with Emacs stopped, the hook code couldn't run, + and therefore the OS would time-out waiting for the hook to + return. Now when GDB is attached to Emacs, it will remove the + hook right away. + * src/.gdbinit: Call 'remove_w32_kbdhook' if the keyboard hook is + already installed. + * src/alloc.c (defined_WINDOWSNT): New enum. + (gdb_make_enums_visible): Add 'defined_WINDOWSNT'. + +2024-09-07 Eli Zaretskii <eliz@gnu.org> + + Fix multisession.el when SQLite becomes unavailable + + This is for the case when the user customizes multisession + to use SQLite, but then built-in SQLite support becomes + unavailable for some reason (e.g., upgrade the OS). + * lisp/emacs-lisp/multisession.el (multisession-backend-value) + (multisession--backend-set-value, multisession--backend-values) + (multisession--backend-delete): Call next method if built-in + SQLite support is not available. Suggested by Stefan Monnier + <monnier@iro.umontreal.ca>. (Bug#72788) + +2024-09-07 F. Jason Park <jp@neverwas.me> + + Fix discrepancies in auth-source-pass vs netrc behavior + + The option `auth-source-pass-extra-query-keywords' aims to make its + back end hew as close to the other built-in ones as possible, except + WRT features not yet implemented, such as arbitrary "attribute" + retrieval and new entry creation. This change only concerns behavior + exhibited when the option is enabled. + + * lisp/auth-source-pass.el (auth-source-pass--match-parts): Account + for the case in which a query lacks a reference parameter for a + `:port' or `:user' but still requires one or both via the `:require' + keyword. Previously, such a query would fail even when an entry met + this requirement by simply specifying a field with any non-null value + corresponding to the required parameter. + (auth-source-pass--find-match-many): Account for the baseline case + where a matching entry lacks a secret and the user doesn't require + one. Although this function doesn't currently return so-called + "attributes" from the contents of a matching decrypted file, were it + to eventually, this case would no longer be academic. + * test/lisp/auth-source-pass-tests.el + (auth-source-pass-extra-query-keywords--req-noparam-miss-netrc) + (auth-source-pass-extra-query-keywords--req-noparam-miss) + (auth-source-pass-extra-query-keywords--req-param-netrc) + (auth-source-pass-extra-query-keywords--req-param): New tests. + (auth-source-pass-extra-query-keywords--netrc-baseline): New test + asserting behavior of netrc backend when passed a lone `:host' as a + query parameter. + (auth-source-pass-extra-query-keywords--baseline): Reverse expected + outcome to match that of the netrc reference implementation. + (bug#72441) + +2024-09-06 Spencer Baugh <sbaugh@janestreet.com> + + * etc/NEWS: Mention it. + + Add project-find-file-in-root (bug#73044) + + Several users have asked me for a command which is just + find-file, but starting from the project root. In large + projects, where project-files is expensive, this will have + substantially better performance than project-find-file. + + Also, it allows opening files which aren't included in + project-files without paying the further cost of running + project--files-in-directory (which is what happens when passing + INCLUDE-ALL=t to project-find-file). + + Also, it may help with user confusion about why + project-find-file doesn't behave like find-file (which I've + encountered a few times). + + This command is equivalent to C-x p o C-x C-f, but it's nice to + be able to bind it to a specific key. + + Overall, this is easy enough to provide, so let's just do that. + + * lisp/progmodes/project.el (project-find-file-in-root): Add. + + * etc/NEWS: Mention it. + +2024-09-06 Eli Zaretskii <eliz@gnu.org> + + Rework fix of MinGW build due to Gnulib update + + This commit finishes the rework started by reverting changes + to lib/sig2str.h, by adding Emacs-private additions to + signal.h. + * nt/inc/signal.h: New file, defines SIG2STR_MAX and + prototypes of 'sig2str' and 'str2sig'. + +2024-09-06 Eli Zaretskii <eliz@gnu.org> + + Revert "Fix MinGW build broken by recent update from Gnulib" + + This reverts commit b737c6125d69497ad5d2a29d4b5a2b17698992e5. + It is no longer needed with the introduction of nt/inc/signal.h. + +2024-09-06 Eli Zaretskii <eliz@gnu.org> + + Revert "; Fix last change in lib/sig2str.h." + + This reverts commit 91e7b47d6c56e7963be232de8057e1a3f710f1b5. + It is no longer needed with the introduction of nt/inc/signal.h. + +2024-09-06 Eli Zaretskii <eliz@gnu.org> + + Revert "; Another fix for str2sig.h" + + This reverts commit df57e44a08fd5c7dc159254a40f5d2e4d008e8df. + It is no longer needed with introduction of nt/inc/signal.h. + +2024-09-05 Eli Zaretskii <eliz@gnu.org> + + Fix MinGW build broken by recent update from Gnulib + + Gnulib moved the prototypes of 'sig2str' and 'str2sig' from + sig2str.h to signal.h, but MinGW does not use the Gnulib + signal.h header, and doesn't have these functions in its + own signal.h. + * lib/sig2str.h (SIG2STR_MAX, sig2str, str2sig): Define and + prototype if not already defined. + +2024-09-05 Po Lu <luangruo@yahoo.com> + + Better port to Android 35 + + * java/INSTALL: Don't refer users to build-tools 33.0.x. + + * java/res/values-v35/style.xml: New dark theme; define status + bar colors properly for this release. + +2024-09-04 Eshel Yaron <me@eshelyaron.com> + + New variable 'completion-preview-overlay-priority' + + * lisp/completion-preview.el: Update commentary. + (completion-preview-overlay-priority): New variable. + (completion-preview--make-overlay): Use it. (Bug#72762) + +2024-09-04 Po Lu <luangruo@yahoo.com> + + Port to Android 35 + + * configure.ac: Temporary workaround for Gnulib bug. Verify + that the provided android.jar corresponds to Android 35, or any + later version. + + * cross/ndk-build/Makefile.in (NDK_BUILD_SO_LDFLAGS): New + variable. + + * cross/ndk-build/ndk-resolve.mk + (NDK_LOCAL_A_NAMES_$(LOCAL_MODULE)): Define to + NDK_BUILD_SO_LDFLAGS by default to enable building binaries + with support for 16 kb page sizes. + + * java/AndroidManifest.xml.in: Target SDK 35. + + * java/INSTALL (16KB PAGE SIZES): New section. Replace + references to Android 34 with 35. + + * java/org/gnu/emacs/EmacsActivity.java (onCreate): Restore + pre-SDK 35 inset-relative placement. + + * java/org/gnu/emacs/EmacsFillPolygon.java (perform): Suppress + deprecation warnings, and document why. + + * m4/ndk-build.m4 (ndk_INIT, ndk_LATE): Check for and enable + toolchain support for 16 KB page sizes, if available. + (ndk_CONFIG_FILES): Export linker options so derived. + + * src/conf_post.h [__ANDROID_API__ < 35]: Include system time.h + and redefine timezone_t to rpl_timezone_t, so that the Gnulib + replacement may not conflict with the useless OS type. + +2024-09-01 Juri Linkov <juri@linkov.net> + + * lisp/progmodes/js.el: Improve sexp navigation in js-ts-mode (bug#72573) + + (js--treesit-sexp-nodes): Add "template_string", "template_substitution", + "property_identifier". + (js-ts-mode): Replace "template_string" with "string_fragment" + in 'text' part of 'treesit-thing-settings'. + +2024-09-01 Pip Cet <pipcet@protonmail.com> + + Explicitly include stdlib.h in src/image.c (Bug#72929) + + * src/image.c: Add include. + +2024-09-01 Stefan Kangas <stefankangas@gmail.com> + + Delete cc-compat.el from Makefile.in + + * lisp/Makefile.in: Delete obsolete file cc-compat.el. It has been + moved to obsolete/ and is compiled separately. + +2024-09-01 Stefan Kangas <stefankangas@gmail.com> + + Fix integer overflow when reading XPM + + * src/image.c (xpm_str_to_int): New function. + (xpm_load_image): Replace sscanf with strtol, to correctly handle + integer overflow when reading a malformed XPM file. (Bug#72245) + +2024-09-01 Stefan Kangas <stefankangas@gmail.com> + + Fix broken use-package tests + + * lisp/use-package/use-package-core.el (use-package-keywords): Change + keyword order to match the one before adding :pin, :ensure, :delight, + and :diminish directly to this list. This fixes some broken unit tests. + +2024-08-31 Mattias Engdegård <mattiase@acm.org> + + Better ad-hoc Emacs release of symbol introduction override + + The file etc/symbol-releases.eld now contains explicit version + information for selected symbols that our NEWS* scraper doesn't + resolve correctly. + + * etc/NEWS.unknown: Remove this file, replaced with... + * etc/symbol-releases.eld: ...this new file. + * lisp/help-fns.el (help-fns--first-release-override) + (help-fns--mention-first-function-release) + (help-fns--mention-first-variable-release): New. + (help-fns--mention-first-release): Try the override information first + before scraping the NEWS* files. + +2024-08-31 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 5fd75133cfe Make 'python-shell--with-environment' respect buffer-loca... + e27849ecf6e Avoid ANSI escape characters in Python output (bug#45938) + 4f521fa14c1 Fix handling of hook variables in 'use-package' + bb5576fc907 Work around Gnuplot bug in displaying plots + +2024-08-31 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 4b60267d832 Make Python skeletons available in 'python-ts-mode' as well + 62dcbfb776f Merge branch 'emacs-30' of git.savannah.gnu.org:/srv/git/... + 1baa62b2ac1 ; * etc/NEWS: Fix typos. + dfcfaa0ef58 More accurate documentation of 'equal' in ELisp Reference + baaf97ce1a1 ; Fix some ungrammatical uses of "allows to" + + # Conflicts: + # etc/NEWS + +2024-08-31 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + a0f740c88d8 ; * lisp/progmodes/flymake.el: Fix "Maintainer" header + a9433858131 ; * etc/AUTHORS: Update. + 762b85be27b ; Revert "; * admin/authors.el (authors-valid-file-names)... + e24d568b565 ; Revert "Revert "; * admin/authors.el (authors-ignored-f... + 2d723a280b3 Revert "; * admin/authors.el (authors-ignored-files): Add... + 2a5b129509f Revert "; * admin/authors.el (authors-ignored-files): Ign... + 0db53f14a29 ; * admin/authors.el (authors-ignored-files): Ignore Unic... + 6734b60c0c3 ; * admin/authors.el (authors-valid-file-names): Ignore U... + d809d53afc0 ; * admin/authors.el (authors-ignored-files): Add removed... + 766f69bab12 ; * etc/NEWS: Announce VC-dir "Tracking" header. (bug#68183) + 37a097d8663 ; * admin/authors.el (authors-aliases): Fix regexps. + 0fb50e26316 ; * admin/MAINTAINERS: Spencer Baugh maintains flymake.el. + d05d8c336c8 xwidget: Fix xwidget-at misinterpreting non-xwidget text-... + 13f69f254cf Fix rare segfaults due to freed fontsets + 427fb319dab ; * lisp/simple.el (use-region-beginning, use-region-end)... + + # Conflicts: + # admin/MAINTAINERS + # etc/NEWS + +2024-08-31 xenodium <me+gh@xenodium.com> (tiny change) + + Adds NSSpeechRecognitionUsageDescription to Info.plist.in + + Without this, we cannot launch processes that use macOS's + speech recognition APIs. + With NSSpeechRecognitionUsageDescription in place, macOS displays the + dialog asking the user to grant permission and allows the speech APIs + to be used from the process. + * nextstep/templates/Info.plist.in: Add + NSSpeechRecognitionUsageDescription key. (Bug#72827) + + * etc/NEWS: Announce the change. + +2024-08-31 Eli Zaretskii <eliz@gnu.org> + + Improve 'C-h o' in NEWS files + + * lisp/textmodes/emacs-news-mode.el (emacs-news--mode-common): + Modify syntax-table of NEWS modes to consider ' as string-quoting + character. Suggested by Visuwesh <visuweshm@gmail.com>. + (Bug#72757) + +2024-08-31 David Ponce <da_vid@orange.fr> + + Use 'with-work-macro' in 'string-pixel-width' + + Tweak the implementation of 'string-pixel-width' to run + faster and use less memory. Also cater for the case where + this function is called in parallel (bug#72689). + * lisp/emacs-lisp/subr-x.el (string-pixel-width): Use + `with-work-macro'. Prefer `remove-text-properties' to + `propertize' to avoid creating a new string on each call. + +2024-08-31 David Ponce <da_vid@orange.fr> + + New macro `with-work-buffer'. + + * lisp/emacs-lisp/subr-x.el (work-buffer--list) + (work-buffer-limit): New variables. + (work-buffer--get, work-buffer--release): New function. + (with-work-buffer): New macro. (Bug#72689) + + * etc/NEWS: Announce 'with-work-buffer'. + +2024-08-30 Jim Porter <jporterbugs@gmail.com> + + Add manual tests for the 'min-width' display property + + * test/manual/redisplay-testsuite.el (test-redisplay-5): Add some + newlines. + (test-redisplay-6): New function... + (test-redisplay): ... call it (bug#72721). + +2024-08-29 Eli Zaretskii <eliz@gnu.org> + + Document 'cond*' + + * doc/lispref/control.texi (cond* Macro): New subsection. + Text written by Richard Stallman <rms@gnu.org>. + * etc/NEWS: Document 'cond*'. + +2024-08-29 Jim Porter <jporterbugs@gmail.com> + + Support "/dev/null" as a target when creating Eshell handles + + Previously, you could only use this when setting the handle afterwards. + + * lisp/eshell/esh-io.el (eshell-set-output-handle): Don't catch + 'eshell-null-device' here... + (eshell-get-target): ... catch it here. + + * test/lisp/eshell/eshell-tests.el + (eshell-test/eshell-command/output-dev-null): New test (bug#72857). + +2024-08-29 Jim Porter <jporterbugs@gmail.com> + + Fix redirecting Eshell output to symbols in some places + + * lisp/eshell/esh-io.el (eshell-output-object-to-target): Don't require + TARGET to be bound. + + * lisp/eshell/em-script.el (eshell-execute-file): + * lisp/eshell/eshell.el (eshell-command): Quote the output/error + targets. + + * test/lisp/eshell/em-script-tests.el (eshell-execute-file-output): New + variable. + (em-script-test/execute-file/output-symbol): New test. + + * test/lisp/eshell/eshell-tests.el (eshell-command-output): New + variable. + (eshell-test/eshell-command/output-symbol): New test (bug#72857). + +2024-08-29 Jim Porter <jporterbugs@gmail.com> + + Use 'eshell-with-handles' in a few more places + + * lisp/eshell/em-alias.el (eshell-write-aliases-list): + * lisp/eshell/em-script.el (eshell-batch-file): + * lisp/eshell/esh-cmd.el (eshell-command-to-value): + * lisp/eshell/eshell.el (eshell-command): Use 'eshell-with-handles'. + + * test/lisp/eshell/esh-io-tests.el (eshell-test-file-string): Move to... + * test/lisp/eshell/eshell-tests-helpers.el (eshell-test-file-string): + ... here. + + * test/lisp/eshell/eshell-tests.el + (eshell-test/eshell-command/output-file): + * test/lisp/eshell/em-script-tests.el + (em-script-test/execute-file/output-file): New tests. + +2024-08-29 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + e6c72aec9d7 ; Fix typos + 9ffa38d3925 Eglot: fix completion highlighting (bug#72824) + d6880bc24dd ; * admin/make-tarball.txt: Document gotcha. + afee71273b7 Discuss commit log messages on feature branches + 77302ccb6aa * admin/authors.el (authors-fixed-entries): Update docstr... + 3a4839d1427 More consistent treesit-forward-sexp around comments (bug... + 31293155879 Improve php-ts-mode font lock and support latest grammar ... + b8c05d73a11 Fix tree-sitter local parser overlay cleanup routine + aa6ed7f67ec Fix copyright years by hand (Bug#72809) + +2024-08-28 Jim Porter <jporterbugs@gmail.com> + + Use 'eshell-with-handles' when executing an Eshell file + + This makes sure we close the handles as we should, which is important + for writing the output to an actual file (bug#72857). + + * lisp/eshell/em-script.el (esh-cmd): Require this, just to be explicit. + (eshell-execute-file): Use 'eshell-with-handles'. + +2024-08-28 Stefan Monnier <monnier@iro.umontreal.ca> + + (message-hide-headers): Don't bind `inhibit-modification-hooks` + + This binding dates back at least to 2004 (where we bound + `after-change-functions` instead). Maybe it had a real impact in the past, + but nowadays I can't see any effect other than maybe a negligible + performance improvement at the cost at breaking some uses of + `before-after-change-functions`. + + * lisp/gnus/message.el (message-hide-headers): + Don't bind `inhibit-modification-hooks`. + +2024-08-28 Mattias Engdegård <mattiase@acm.org> + + Send useless output in flymake-tests to /dev/null (bug#70716) + + * test/lisp/progmodes/flymake-resources/Makefile (check-syntax): + Avoid producing a useless file named `-.o` in the source tree. + +2024-08-27 Michael Albinus <michael.albinus@gmx.de> + + Hide tramp-mode + + * doc/misc/tramp.texi (Frequently Asked Questions): Remove tramp-mode. + + * lisp/net/tramp.el (tramp-mode): Make it a defvar. People shouldn't + customize it manually. + +2024-08-26 Michael Albinus <michael.albinus@gmx.de> + + Add convenience to Tramp + + * doc/misc/tramp.texi (Inline methods): Add tramp-docker-program, + tramp-podman-program, tramp-kubernetes-program, + tramp-toolbox-program, tramp-distrobox-program, + tramp-flatpak-program, tramp-apptainer-program, and + tramp-nspawn-program. + (Remote shell setup): Rearrange indices. + (Ssh setup): Say "user option" when needed. + (Keeping files encrypted): Add tramp-crypt-encfs-program. + (Frequently Asked Questions): Rearrange indices. Remove duplicate + text. Add tramp-mode. + + * lisp/net/tramp.el (tramp-active-command-completion-p): New defun. + + * lisp/net/tramp-cmds.el (tramp-cleanup-connection) + (tramp-cleanup-all-connections, tramp-cleanup-some-buffers) + (tramp-cleanup-all-buffers, tramp-rename-files): + * lisp/net/tramp-message.el (tramp-setup-debug-buffer): + Declare `completion'. + + * lisp/net/tramp-integration.el (tramp-info-link): New widget. + (tramp-widget-info-link-action): New defun. + + * lisp/net/tramp.el (tramp, tramp-mode, tramp-backup-directory-alist) + (tramp-auto-save-directory, tramp-encoding-shell) + (tramp-encoding-command-switch) + (tramp-encoding-command-interactive, tramp-default-method) + (tramp-default-method-alist, tramp-default-user) + (tramp-default-user-alist, tramp-default-host) + (tramp-default-host-alist, tramp-default-proxies-alist) + (tramp-save-ad-hoc-proxies, tramp-show-ad-hoc-proxies) + (tramp-restricted-shell-hosts-alist, tramp-local-host-regexp) + (tramp-shell-prompt-pattern, tramp-password-prompt-regexp) + (tramp-otp-password-prompt-regexp, tramp-wrong-passwd-regexp) + (tramp-terminal-type, tramp-syntax) + (tramp-ignored-file-name-regexp, tramp-chunksize) + (tramp-process-connection-type, tramp-remote-path) + (tramp-remote-process-environment) + (tramp-completion-multi-hop-methods) + (tramp-completion-use-auth-sources, tramp-use-file-attributes) + (tramp-inhibit-errors-if-setting-file-attributes-fail) + (tramp-allow-unsafe-temporary-files): + * lisp/net/tramp-adb.el (tramp-adb-program) + (tramp-adb-connect-if-not-connected): + * lisp/net/tramp-cache.el (tramp-connection-properties) + (tramp-persistency-file-name, tramp-completion-use-cache): + * lisp/net/tramp-cmds.el (tramp-cleanup-some-buffers-hook) + (tramp-default-rename-alist, tramp-confirm-rename-file-names) + (tramp-file-name-with-method): + * lisp/net/tramp-container.el (tramp-docker-program) + (tramp-podman-program, tramp-kubernetes-program) + (tramp-kubernetes-context, tramp-kubernetes-namespace) + (tramp-toolbox-program, tramp-distrobox-program) + (tramp-flatpak-program, tramp-apptainer-program) + (tramp-nspawn-program): + * lisp/net/tramp-crypt.el (tramp-crypt-encfs-program) + (tramp-crypt-encfsctl-program, tramp-crypt-encfs-option) + (tramp-crypt-save-encfs-config-remote): + * lisp/net/tramp-fuse.el (tramp-fuse-unmount-on-cleanup): + * lisp/net/tramp-gvfs.el (tramp-gvfs-methods): + * lisp/net/tramp-message.el (tramp-verbose, tramp-debug-to-file) + (tramp-debug-command-messages): + * lisp/net/tramp-rclone.el (tramp-rclone-program): + * lisp/net/tramp-sh.el (tramp-inline-compress-start-size) + (tramp-copy-size-limit, tramp-histfile-override) + (tramp-use-connection-share) + (tramp-use-scp-direct-remote-copying, tramp-sh-extra-args): + * lisp/net/tramp-sshfs.el (tramp-sshfs-program): Add `:link' key. + + * lisp/net/tramp.el (tramp-enable-method): Move function ... + * lisp/net/tramp-cmds.el (tramp-enable-method): ... here. + +2024-08-26 Stefan Monnier <monnier@iro.umontreal.ca> + + (pp): Indent lines right when starting in col > 0 + + This refines the fix for bug#72561: commit 0a500193087e fixes + the bug by changing `ert--pp-with-indentation-and-newline`, + but it turns out that `pp` was inconsistent (it sometimes + indented the subsequent lines correctly and sometimes not, + depending on the current-buffer's major mode). + So the fix really should be in `pp`, which is what this patch does. + + * lisp/emacs-lisp/pp.el (pp): Appropriately indent subsequent lines + if the first line is not inserted in column 0 (tho only when + printing into a buffer since otherwise it's somewhere between + ill-defined and impossible to implement). + * lisp/emacs-lisp/ert.el (ert--pp-with-indentation-and-newline): + Remove the indentation code after `pp` which was just working + around the bug in `pp`. Also remove the redundant addition of + `\n` since `pp` always does it nowadays. + * test/lisp/help-mode-tests.el (help-mode-tests-xref-on-pp): + Fix thinko. + +2024-08-25 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 9b299dd79c1 Revert a recent change that caused redisplay slowdown + 4eaab54896f ; * doc/lispref/display.texi (Low-Level Font): Fix wordin... + 0a500193087 Indent ERT failure explanations rigidly + 713069dd7a8 [Eglot] Stricter "expand common" behavior + 096730510cd eglot-tests.el: New tests for existing completion behavior + 969498c25d0 Remove dangerous HTML edit from admin.el + + # Conflicts: + # etc/EGLOT-NEWS + +2024-08-25 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 8c251a4c419 ; Mention in PROBLEMS issues with long popup menus + 0a626a64c70 * etc/emacs_lldb.py (Lisp_Object): PVEC_COMPILED -> PVEC_... + +2024-08-25 Jim Porter <jporterbugs@gmail.com> + + Improve computation of indent depth in SHR and 'visual-wrap-prefix-mode' + + Now, we get the average-width of the current font using + 'string-pixel-width' and a specified space display spec, which doesn't + require the buffer to be displayed in a window (bug#72771). + + * lisp/net/shr.el (shr-indent): + * lisp/visual-wrap.el (visual-wrap--content-prefix): Fix getting the + font when the buffer isn't displayed in a window. + (visual-wrap-fill-context-prefix): Fix indentation. + +2024-08-25 Mattias Engdegård <mattiase@acm.org> + + Faster region-beginning and region-end for rectangle selections + + * lisp/rect.el (rectangle--region-beginning, rectangle--region-end): + Make these run in O(1), not linear, time and space. + +2024-08-25 Eli Zaretskii <eliz@gnu.org> + + Fix handling of 'min-width' display property + + * src/xdisp.c (get_display_property, display_min_width): Rename + BUFPOS to CHARPOS, to avoid confusion (it is not necessarily a + buffer position). Suggested by Jim Porter <jporterbugs@gmail.com>. + (get_display_property): Call 'Fget_char_property' to support + 'min-width' properties of overlays as well. + (display_min_width): Handle the buffer and string cases more + accurately, without relying only on the values of positions. + (handle_display_prop, handle_single_display_spec): Pass correct + position to 'display_min_width', when iterating over a string. + (handle_display_prop): When OBJECT is a window, pass it to + display_min_width. + (set_iterator_to_next): Call 'display_min_width' when at end of a + display or overlay string. (Bug#72721) + + * etc/NEWS: Announce the support for overlays. + +2024-08-24 Yuan Fu <casouri@gmail.com> + + Fix Ftreesit_parser_create + + * src/treesit.c (Ftreesit_parser_create): We recently changed something + such that base buffer and indirect buffer appears to use separate + parser-lists. Therefore, creating a parser in one of the buffer + shouldn't reuse the parser in another buffer. + +2024-08-24 Yuan Fu <casouri@gmail.com> + + Fix tree-sitter test for indirect parser list + + * test/src/treesit-tests.el (treesit-indirect-buffer): Now the base + buffer shouldn't contain indirect buffer's parsers. + +2024-08-24 Yuan Fu <casouri@gmail.com> + + Make sure treesit-parse-string gc its temp buffer (bug#71012) + + * doc/lispref/parsing.texi (Using Parser): Add notice. + * lisp/treesit.el (treesit-parse-string): Remove function. + * src/treesit.c (make_treesit_parser): Init the new filed. + (treesit_delete_parser): Collect the temp buffer. + (Ftreesit_parse_string): New function. + * src/treesit.h (Lisp_TS_Parser): New field. + +2024-08-24 Björn Bidar <bjorn.bidar@thaodan.de> + + Forward user to auth-source inside url-basic-auth + + * lisp/url/url-auth.el (url-basic-auth): Forward the user if + provided by the url or found by 'auth-source' when searching + for secrets. Supplying 'auth-source' with the user when + matching secrets allows for more accurate retrieval and fixes + instances where the user enters an url that already contains + the user such as "user@host.de". (Bug#72526) + +2024-08-24 Michael Albinus <michael.albinus@gmx.de> + + Optimize Tramp's copy-directory + + * lisp/net/tramp-sh.el (tramp-sh-handle-copy-directory): + * lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory): + Don't check existence of DIRNAME, this is done in + `tramp-skeleton-copy-directory' already. + + * lisp/net/tramp-sh.el (tramp-sh-handle-copy-directory): + Apply `tramp-do-copy-or-rename-file-directly' if possible. + +2024-08-24 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 4211d85eec0 Fix rare segfaults due to freed fontsets + 44c26140b6e ; Fix infloop in checkdoc-next-docstring + 25f53721668 Avoid putting a dead buffer in the minibuffer window (Bug... + +2024-08-24 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 7e9d05e6d9b ; * admin/authors.el (authors-aliases): Escape periods. + +2024-08-24 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 8ccc165f95a * doc/man/emacsclient.1: Bump date. + +2024-08-24 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + a0b65be8eb0 * admin/authors.el (authors-aliases, authors-ignored-file... + 58088b36e8a * admin/authors.el: Pick-up version from emacs-29. + 9d7151c0ffa Add missing :version tags in use-package + 3f019167b85 Suppress shallow cloning on emba + + # Conflicts: + # lisp/use-package/use-package-core.el + # lisp/use-package/use-package-ensure.el + +2024-08-24 Spencer Baugh <sbaugh@janestreet.com> + + Allow customizing partial-completion to be more like substring + + The substring completion style completes "foo-bar" as "*foo-bar*". The + partial-completion completion style completes "foo-bar" as "foo*bar*". + + Previously, it was not possible to get completion of "foo-bar" to act as + "*foo*bar*", e.g. combining the partial-completion and substring styles. + This would be especially useful for things like project-find-file. + + Now it is possible by customizing the completion-pcm-leading-wildcard variable + to a non-nil value. + + Furthermore, it's convenient to be able to run + regular (completion-pcm-leading-wildcard=t, non-substring) + partial-completion before running completion-pcm-leading-wildcard=nil + partial-completion, since the former provides more narrowly targeted + completions. + + It's possible to do this by customizing completion-styles. Just add + '(partial-completion ((completion-pcm-leading-wildcard t))) and + '(partial-completion ((completion-pcm-leading-wildcard nil))) in that + order. Then the completion machinery will first run partial-completion + with completion-pcm-leading-wildcard=t, and if that returns no + completions, run partial-completion with + completion-pcm-leading-wildcard=nil. + + * lisp/minibuffer.el (completion--nth-completion): Allow an element of + completion-styles to contain a list of bindings. + (completion-styles): Document that. + (completion-pcm-leading-wildcard): Add. + (completion-pcm--string->pattern): Check completion-pcm-leading-wildcard. + (bug#70217) + +2024-08-24 Björn Bidar <bjorn.bidar@thaodan.de> + + Fix secret search with basic auth with a port in URL + + * lisp/url/url-auth.el (url-basic-auth): Fix retrieving of + secrets when the URL contains a port. Amending the port to + server breaks 'auth-source-search' matching for :host which + is redundant as it already specified in :port. (Bug#72526) + +2024-08-24 Gautier Ponsinet <gautier@gautierponsinet.xyz> + + Allow using pulse.el with a single color without pulsation + + * lisp/cedet/pulse.el (pulse-momentary-highlight-overlay): Add + the start color to the list of colors used for the pulsation + effect, to allow its use when 'pulse-iterations' is 1. + (Bug#72636) + +2024-08-24 Eli Zaretskii <eliz@gnu.org> + + Fix 'next-line' in batch mode. + + * lisp/simple.el (line-move-finish): Don't use 'vertical-motion' + in batch mode. Reported by john muhl <jm@pub.pink>. (Bug#72420) + +2024-08-23 Robert Pluim <rpluim@gmail.com> + + Create blessmail at build time instead of install time + + blessmail is built via the install target, which means it ends up owned + by the user doing the install. It's not installed, so build it at build + time instead. + + Reported by Michael Heerdegen <michael_heerdegen@web.de> in + <https://lists.gnu.org/archive/html/help-gnu-emacs/2024-08/msg00270.html> + + * Makefile.in (install): Move blessmail target from install to actual-all. + +2024-08-22 Philip Kaludercic <philipk@posteo.net> + + Add command to copy contents in a diff-mode buffer + + * lisp/vc/diff-mode.el (diff-mode-shared-map): Bind 'diff-kill-ring-save'. + (diff-mode-map): Ensure the "w" binding does not get prefixed. + (diff-kill-ring-save): Add the command. + * etc/NEWS: Mention 'diff-kill-ring-save'. (Bug#65380) + +2024-08-22 Eli Zaretskii <eliz@gnu.org> + + Fix C-n/C-p under both 'line-prefix' and 'visual-line-mode' + + * lisp/simple.el (line-move-finish): Use + 'truncated-partial-width-window-p' to query whether partial-width + lines are actually truncated on display. (Bug#72420) + +2024-08-22 Paul Eggert <eggert@cs.ucla.edu> + + GCC bug 58416 is fixed in GCC 15 + + * configure.ac (emacs_cv_gcc_bug_58416_CFLAGS): + No need for a workaround in GCC 15. + + 2024-08-19 Paul Eggert <eggert@cs.ucla.edu> + + Remove obsolete comment about ‘volatile’ + +2024-08-21 Stefan Kangas <stefankangas@gmail.com> + + Prefer static_assert to verify + + Although static_assert is C11-specific, and Emacs remains on C99, it + has been backported to older compilers by Gnulib. Gnulib has already + changed to prefer static_assert, and we can do the same. + + * lib-src/asset-directory-tool.c (main_2): + * src/alloc.c (BLOCK_ALIGN, aligned_alloc, lisp_align_malloc) + (vectorlike_nbytes, allocate_pseudovector): + * src/android.c (android_globalize_reference, android_set_dashes): + * src/android.h: + * src/androidfont.c (androidfont_draw, androidfont_text_extents): + * src/androidvfs.c: + * src/bidi.c (BIDI_CACHE_MAX_ELTS_PER_SLOT, bidi_find_bracket_pairs): + * src/buffer.c (init_buffer_once): + * src/casefiddle.c (do_casify_multibyte_string): + * src/dispnew.c (scrolling_window, scrolling): + * src/editfns.c (styled_format): + * src/emacs-module.c (module_extract_big_integer): + * src/fileio.c (Fdo_auto_save): + * src/fns.c (next_almost_prime, hash_string): + * src/fringe.c (init_fringe): + * src/keyboard.h (kbd_buffer_store_event_hold): + * src/keymap.c: + * src/lisp.h (memclear, reduce_emacs_uint_to_hash_hash, modiff_incr): + * src/lread.c (skip_lazy_string): + * src/pdumper.c (dump_bignum, Fdump_emacs_portable) + (dump_do_dump_relocation, pdumper_load): + * src/process.c (make_process, Fmake_process, connect_network_socket): + * src/regex-emacs.c: + * src/sort.c (tim_sort): + * src/sysdep.c (init_random, SSIZE_MAX): + * src/thread.c: + * src/timefns.c (trillion_factor): + * src/unexelf.c: + * src/xterm.c (x_send_scroll_bar_event): Prefer static_assert to Gnulib + verify. Remove import of verify.h, except when used for other reasons. + +2024-08-21 Mattias Engdegård <mattiase@acm.org> + + Simplify and speed up make-hash-table argument parsing + + * src/fns.c (get_key_arg): Remove. + (Fmake_hash_table): Traverse argument list once only. Don't allocate a + helper array. Use faster comparisons. + +2024-08-21 Martin Rudalics <rudalics@gmx.at> + + Fix two issues with 'window-deletable-p' + + * lisp/window.el (window-deletable-functions): Clarify + doc-string. + (window-deletable-p): Handle check whether WINDOW's frame can be + deleted via new function 'frame-deletable-p' (a comparison with + the frame returned by 'next-frame' fails in too many cases). Do + not try to run 'window-deletable-functions' in WINDOW's buffer + when WINDOW is internal. + * lisp/frame.el (frame-deletable-p): New function. + * doc/lispref/frames.texi (Deleting Frames): Describe new + function 'frame-deletable-p'. + * etc/NEWS: Mention 'frame-deletable-p'. + +2024-08-21 Michael Albinus <michael.albinus@gmx.de> + + Fix a Tramp bug when running several asynchronous processes + + * lisp/net/tramp-cache.el (tramp-get-hash-table): + Add ;;;###tramp-autoload cookie. + + * lisp/net/tramp.el (tramp-file-name-handler): Flush connection + properties "process-name" and "process-buffer". + + * test/lisp/net/tramp-tests.el + (tramp--test-deftest-direct-async-process): Skip when underlying + TEST has taken too much time. + (tramp--test-with-proper-process-name-and-buffer): Remove. + (tramp-test45-asynchronous-requests): Remove callees. + +2024-08-21 Protesilaos Stavrou <info@protesilaos.com> + + Update to modus-themes version 4.5.0 + + * doc/misc/modus-themes.org (COPYING): Update the version headers. + (Option to extend the palette): Document new user options. + (Full support for packages or face groups): Document more + packages that are explicitly supported by the themes. + (Acknowledgements): Update the list of people who have + contributed to the project in one way or another. + + * etc/themes/modus-operandi-deuteranopia-theme.el: + * etc/themes/modus-operandi-deuteranopia-theme.el: + * etc/themes/modus-operandi-tinted-theme.el: + * etc/themes/modus-operandi-tritanopia-theme.el: + * etc/themes/modus-vivendi-deuteranopia-theme.el: + * etc/themes/modus-vivendi-theme.el: + * etc/themes/modus-vivendi-tinted-theme.el: + * etc/themes/modus-vivendi-tritanopia-theme.el: Update the + palette of each theme and include the new user option to extend + its palette. + + * etc/themes/modus-themes.el: Cover more faces and include user + option for common extension to all theme palettes. + + Detailed release notes: + <https://protesilaos.com/codelog/2024-08-21-modus-themes-4-5-0/>. + +2024-08-21 Kévin Le Gouguec <kevin.legouguec@gmail.com> + + Restore vc-git helper function (bug#68183) + + * lisp/vc/vc-git.el (vc-git--cmds-in-progress): Restore; it was removed + in a previous refactoring patch, but we may still find use for it. + (vc-git-dir--in-progress-headers): Use it. + +2024-08-21 Kévin Le Gouguec <kevin.legouguec@gmail.com> + + Split vc-git-dir-extra-headers into more manageable chunks + + The current code requires a lot of eyeballing back-and-forth + to: + + - check where variables are actually used, what impact changing + them can have: in actuality, there are three distinct "groups" + of headers we compute, each with their own independent state; + - understand formatting details such as "who's in charge of the + newlines". + + To solve both issues, split that function into smaller ones, + each handling a "group" of headers. + + The only expected "functional" change is that, by propertizing + "\nHeader: " strings, the original code sometimes applied the + vc-dir-header face to the newline preceding a header; the new + code applies no faces to these newlines. + + This change would be visible to users with themes adding an + :extended background to vc-dir-header. In practice, no in-tree + theme is impacted. + + For bug#68183. + + * lisp/vc/vc-git.el (vc-git-dir--branch-headers): New function + to compute "Branch", "Tracking" and "Remote". + (vc-git--cmds-in-progress): Rename to... + (vc-git-dir--in-progress-headers): ... this, and compute + headers. + (vc-git-dir--stash-headers): New function to compute the + "Stash" header. + (vc-git-dir-extra-headers): Boil down to just setting + default-directory and assembling the headers from these new + helpers. + (vc-git--out-match): New function to call 'git' and capture + specific bits of output. + +2024-08-21 Kévin Le Gouguec <kevin.legouguec@gmail.com> + + Test more vc-dir scenarios with Git (bug#68183) + + * test/lisp/vc/vc-git-tests.el + (vc-git-test-dir-track-local-branch): Remove in favor of new + test. + (vc-git-test--start-branch): New helper to get a repository + going. + (vc-git-test--dir-headers): New helper to get a list of headers + in the current vc-dir buffer. + (vc-git-test-dir-branch-headers): New test, exercising the + original bug recipe plus more common scenarios. + +2024-08-20 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 3419e7ea522 Correct Android failure to open an old CJK font + 45ae4de0e7c * lisp/help-fns.el (help-definition-prefixes): Don't dele... + fc7581ae2ee ; Fix documentation of secure-hash functions + 21be5cadaf1 ; * lisp/subr.el (sha1): Fix typo in docstring. + 8715619d485 ; * etc/NEWS: Fix wording of last change. + 023d387a7bd Update to Org 9.7.10 + b54e8b3741b ; * etc/NEWS: Announce 'shr-fill-text'. + acfd91bc0c7 ; * lisp/emacs-lisp/compat.el: Fix header style. + 55337dc36a2 * test/infra/gitlab-ci.yml (.tree-sitter-template): Adapt... + d8e9eb73c2b Bump use-package version for Emacs 30.1 + 4d9d3fec1b9 * Makefile.in (CHANGELOG_HISTORY_INDEX_MAX): Bump. + 502285e84aa ; * admin/make-tarball.txt: Some clarifications. + +2024-08-20 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + d6726e6dfc7 Further fix of reading and writing profiler data + 30b2fae77b7 * Makefile.in (PREFERRED_BRANCH): Update to emacs-30. + 5397808e5bc ; Eliminate more C++ comments + 1463434907e ; Eliminate C++ comments and typo + +2024-08-20 Stefan Kangas <stefankangas@gmail.com> + + Delete defgroup use-package-ensure + + * lisp/use-package/use-package-core.el (use-package-ensure): + Delete defgroup. + (use-package-always-ensure, use-package-always-pin) + (use-package-ensure-function): Move defcustoms from above deleted + defgroup to the 'use-package' defgroup. + +2024-08-20 Stefan Kangas <stefankangas@gmail.com> + + Fix early use of use-package-always-ensure + + * lisp/use-package/use-package-core.el: + * lisp/use-package/use-package-delight.el: + * lisp/use-package/use-package-diminish.el: + * lisp/use-package/use-package-ensure.el: Move add-to-list for + 'use-package-keywords' and 'use-package-defaults' from here... + * lisp/use-package/use-package-core.el (use-package-ensure) + (use-package-keywords): ...to the default definition here. + + * lisp/use-package/use-package-ensure.el + (use-package-ensure): Move this defgroup... + (use-package-always-ensure) + (use-package-always-pin, use-package-ensure-function): ...and + these defcustoms from here... + * lisp/use-package/use-package-core.el (use-package-ensure) + (use-package-always-ensure, use-package-always-pin) + (use-package-ensure-function): ...to here. (Bug#72453) + +2024-08-20 Stefan Kangas <stefankangas@gmail.com> + + Mark tex-dvi-view-command as :risky + + * lisp/textmodes/tex-mode.el (tex-dvi-view-command): Mark as + :risky. + +2024-08-19 Paul Eggert <eggert@cs.ucla.edu> + + Remove stray obsolete comment about ‘volatile’ + + * src/lisp.h: Remove comment about ‘volatile’ that was mistakenly + left behind when 2013-10-03T04:58:56!monnier@iro.umontreal.ca + (adf2aa61404305e58e71cde0193bb650aff2c4b3) removed all the volatile + members of struct handler. + +2024-08-19 Juri Linkov <juri@linkov.net> + + * lisp/tab-bar.el: Improve tab-bar-auto-width-predicate-default (bug#71883). + + (tab-bar--auto-width-faces-default): New variable with the + value from the default value of tab-bar-auto-width-faces. + (tab-bar-auto-width-faces): Set the default value to + tab-bar--auto-width-faces-default. + (tab-bar-auto-width-predicate-default): For backwards-compatibility + use the old logic of checking tab-bar-auto-width-faces when its value + was changed. Otherwise, check for a symbol, but remove "current-group" + from the list of symbols. + +2024-08-19 Joseph Turner <joseph@breatheoutbreathe.in> + + Add abnormal hook to determine which tabs to auto-widen + + * lisp/tab-bar.el (tab-bar-auto-width-predicate-default): Default value + for tab-bar-auto-width-functions. + (tab-bar-auto-width-functions): New abnormal hook. + (tab-bar-auto-width): Run new abnormal hook until success instead of + comparing text properties. + +2024-08-18 Jim Porter <jporterbugs@gmail.com> + + Improve SHR/EWW support for 'visual-wrap-prefix-mode' + + * lisp/visual-wrap.el (visual-wrap--apply-to-line): Use + 'add-display-text-property' so we don't clobber other display + properties. + (visual-wrap--content-prefix): Remove special-case for spaces-only + indent prefix; this was an attempt to be helpful for variable-pitch + fonts, but in practice just interferes with matters. This case now + falls back to the one immediately following it (return the string of + spaces). Use 'string-pixel-width' instead of 'string-width'. + + * lisp/net/shr.el (shr-indent): Set 'shr-prefix-length' here to help + keep track of the prefixes of nestedly-indented elements. Set the + specified space width in terms of the default width of the current face. + * lisp/net/shr.el (shr-adaptive-fill-function): Use 'shr-prefix-length' + as set above to return a fill prefix. + + * lisp/net/eww.el (eww-render): Enable 'visual-wrap-prefix-mode' + alongside of 'visual-line-mode'. + (eww-mode): Set 'adaptive-fill-function' to + 'shr-adaptive-fill-function'. + + * etc/NEWS: Announce this change (bug#72485). + +2024-08-18 Eli Zaretskii <eliz@gnu.org> + + Fix finding tags by 'etags' in Java source code + + * lib-src/etags.c (C_entries): A comma is not special inside class + parameters <..>. (Bug#72402) + (hash, in_word_set): Regenerated after adding "@SuppressWarnings" + to wordlist[]. This avoids missing tags preceded by + "@SuppressWarnings". + +2024-08-17 Jim Porter <jporterbugs@gmail.com> + + Be more careful about aligning prefix lines in 'visual-wrap-prefix-mode' + + * lisp/visual-wrap.el (visual-wrap--apply-to-line): Ensure we don't + apply the 'min-width' property across multiple lines (bug#72681). + +2024-08-17 Paul Eggert <eggert@cs.ucla.edu> + + Pacify GCC 14 on recent read_char change + + * src/keyboard.c (read_char): Initialize c_volatile before + calling setjmp. Although not necessary for correctness, + and not needed for gcc 14.2.1 20240801 (Red Hat 14.2.1-1) + on x86-64 when built with --enable-gcc-warnings, + some GCC 14 x86-64 configurations issue a false positive + without this change. + Problem reported by Andrea Corallo in: + https://lists.gnu.org/r/emacs-devel/2024-08/msg00620.html + and fix suggested by Pip Cet in: + https://lists.gnu.org/r/emacs-devel/2024-08/msg00627.html + +2024-08-17 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 6a512ab032e Fix a typo in Eglot manual + 7b752a93a46 Fix dumping of Lisp profiles + bfe07eca598 Fix 'apropos-library' for 'define-symbol-props' + 5c1bd991396 Fix 'forward-comment' in 'toml-ts-mode' + e966dd5ee2c Document spell-checking of multiple languages + 8a072d1f05b Apply --display kluge for PGTK too + +2024-08-17 Spencer Baugh <sbaugh@janestreet.com> + + Stop subprocesses from using inherited or default PAGER + + At startup, set PAGER to "cat" so that any inherited or + default value of PAGER does not affect subprocesses of + Emacs. Pagers generally won't work when a subprocess + runs under Emacs. + Users can use 'comint-pager' (or other customizations) + to tell subprocesses to use a different specific pager. + * lisp/startup.el (normal-top-level): Set PAGER to 'cat', + if 'cat' is available. (Bug#72426) + +2024-08-17 Arash Esbati <arash@gnu.org> + + Delete matching of whitespace in ispell's LaTeX env names + + * lisp/textmodes/ispell.el (ispell-begin-tex-skip-regexp): Remove + matching of arbitrary whitespaces in LaTeX environment names when + wrapping them inside \begin{}. (bug#72262) + +2024-08-17 Eli Zaretskii <eliz@gnu.org> + + Fix script for characters in 3300..3357 range + + * admin/unidata/blocks.awk: The characters in the 3300..3357 range + are Katakana according to Unicode's Scripts.txt. + +2024-08-17 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 5c9de704cc8 ; * admin/make-tarball.txt: Minor copyedits. + 3fc16357832 ; * doc/lispref/strings.texi (Text Comparison): Improve i... + 45a78ec6c57 * lisp/files.el (require-with-check): Improve error messa... + 9a04b99b3d3 ; * src/data.c (Fsubrp): Improve docstring. + 4f3e8c3b4ed Improve documentation of ERT + ed8904937ec Disambiguate minor-mode variable in its function docstring + 505139e0bad Fix project-dired keybinding in manual + 9bedb957beb Improve documentation of time-parsing functions + + # Conflicts: + # doc/lispref/os.texi + # lisp/calendar/iso8601.el + # lisp/calendar/parse-time.el + +2024-08-17 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 4589f51c21d (project-find-regexp): Fix the temporary value of DEFAULT... + 616a93d185a Tag test in typescript-ts-mode-tests.el as unstable + e9e7e3908ab ; * lisp/files.el (require-with-check): Fix last change. + +2024-08-17 Eli Zaretskii <eliz@gnu.org> + + Add CJK Compatibility character to Han representative chars + + * lisp/international/fontset.el (script-representative-chars): Add + U+3410 to Han characters, to represent the 3400..4DBF block. + +2024-08-17 Paul Eggert <eggert@cs.ucla.edu> + + Fix x_construct_mouse_click || vs | typo + + * src/xterm.c (x_construct_mouse_click): ‘||’ → ‘|’. + Typo found by clang 18.1.6 -Wbool-operation. + +2024-08-17 Paul Eggert <eggert@cs.ucla.edu> + + Tune volatile in read_char + + * src/keyboard.c (read_char): Optimize access to a local volatile. + +2024-08-17 Paul Eggert <eggert@cs.ucla.edu> + + Don’t ignore -Wclobbered in keyboard.c + + This fixes Emacs bug#71744. + * src/keyboard.c: Do not ignore -Wclobbered. + (read_char): Fix violation of the C standard, where setjmp + clobbered c. Fix suggested by Pip Cet in + <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=71744#38> + +2024-08-17 Paul Eggert <eggert@cs.ucla.edu> + + Don’t ignore -Wclobbered in image.c + + This fix is also prompted by Emacs bug#71744. + * src/image.c: Do not ignore -Wclobbered. + (png_load_body): Fix violations of the C standard, where setjmp + clobbered c. Move mask_img decl to pacify GCC. + (jpeg_load_body): Don’t make fp volatile; solve that problem in a + better way, via a new fp_volatile local. Fix violations of the C + standard, where setjmp clobbered mgr, img, and ximg. If __GNUC__ + && !__clang__, add useless assignments to pacify GCC. + +2024-08-17 Paul Eggert <eggert@cs.ucla.edu> + + Don’t ignore -Wclobbered in eval.c + + This fix is also prompted by Emacs bug#71744. + * src/eval.c (CACHEABLE): Remove. All uses removed. + Do not ignore -Wclobbered. + (internal_lisp_condition_case): Fix violations of the C standard, + where setjmp clobbered oldhandlerlist, var, and clauses. + Rewrite to pacify GCC, by using a sentinel rather than a count, + which GCC incorrectly complained about, and by coalescing some + duplicate code. If GCC_LINT && __GNUC__ && !__clang__ add a useless + assignment to pacify GCC. + +2024-08-17 Paul Eggert <eggert@cs.ucla.edu> + + Don’t ignore -Wclobbered in emacs-module.c + + This fix is also prompted by Emacs bug#71744. + * src/emacs-module.c: Do not ignore -Wclobbered. + (MODULE_HANDLE_NONLOCAL_EXIT): Fix violations of the C standard, + where setjmp clobbered env and internal_cleanup. + (module_extract_big_integer) [GCC_LINT && __GNUC__ && !__clang__]: + Work around GCC -Wclobbered false positive for ‘sign’. + +2024-08-17 Paul Eggert <eggert@cs.ucla.edu> + + Don’t ignore -Wclobbered in bytecode.c + + This fix is prompted by Emacs bug#71744. + The working hypothesis is that there are some bugs in Emacs, + and some in GCC’s diagnostics, and that this patch + fixes the Emacs bugs and works around the GCC diagnostic bugs. + The hypothesis is that GCC diagnostic bugs occur when GCC + coalesces variables or temporaries and some variables + are clobbered by setjmp and some vars/temps are not. + Part of this hypothesis involves GCC diagnosing the wrong variables. + Instead of ignoring the diagnostics, which the hypothesis suggests + indicate either problems in Emacs or in GCC, fix the Emacs bugs + and pacify the GCC false positives, with comments about the GCC bugs. + GCC’s true positives are helpful enough in squashing obscure bugs like + Emacs bug#71744, that it’s worth going to some effort to pacify + -Wclobbered instead of ignoring it. + * src/bytecode.c: Do not ignore -Wclobbered. + (exec_byte_code): Fix violations of the C standard, where setjmp + clobbered quitcounter and bc. If GCC_LINT && __GNUC__ && !__clang__, + work around GCC -Wclobbered warnings for bytestr_data and vectorp. + +2024-08-16 Po Lu <luangruo@yahoo.com> + + Remove Hangul character from `han' representative character list + + * lisp/international/fontset.el (script-representative-chars): + U+3200 is a Hangul character that is predictably absent from CJK + fonts, such as are provided by Xiaomi devices. + +2024-08-16 Paul Eggert <eggert@cs.ucla.edu> + + Port better to NFS unlink + + I found this problem while looking into Bug#72641. + * lib-src/etags.c (do_move_file): + * lib-src/update-game-score.c (unlock_file): + * src/androidvfs.c (android_hack_asset_fd_fallback): + * src/filelock.c (current_lock_owner): + Treat unlink as successful if it fails because the file wasn’t there. + This can happen with some NFS implementations, due to its + retrying over the network to get at-least-once semantics. + Although most of Emacs’s calls to unlink were already doing this, + a few instances were not. + +2024-08-15 Paul Eggert <eggert@cs.ucla.edu> + + Remove empty (& invalid) lock files + + * src/filelock.c (current_lock_owner): + Remove empty lock files, as they are necessarily invalid + and can be caused by buggy file systems. + Problem reported by Michal Nazarewicz (bug#72641). + +2024-08-15 Paul Eggert <eggert@cs.ucla.edu> + + Refactor current_lock_owner + + * src/filelock.c (current_lock_owner): Refactor to make further + changes easier. This should not affect behavior. + +2024-08-15 Paul Eggert <eggert@cs.ucla.edu> + + Avoid some GC when locking/unlocking files + + * src/filelock.c (lock_file_1, current_lock_owner): + Don’t possibly invoke the garbage collector when + comparing lock file contents to host names. + +2024-08-15 Paul Eggert <eggert@cs.ucla.edu> + + Fix unlikely lock file integer overflow + + * src/filelock.c (within_one_second): Accept intmax_t first arg. + Avoid undefined behavior on integer overflow. + (current_lock_owner): Simplify based on within_one_second change. + +2024-08-15 Mattias Engdegård <mattiase@acm.org> + + Replace some EQ with BASE_EQ + + * src/eval.c (FletX, Flet, funcall_lambda) + (let_shadows_buffer_binding_p): + * src/data.c (set_blv_found, set_internal, default_value) + (set_default_internal, Flocal_variable_p): + * src/buffer.c (Fkill_buffer): + (mouse_face_overlay_overlaps, compare_overlays) + (report_overlay_modification): + BASE_EQ is safe because we don't actually compare symbols here. + +2024-08-15 Spencer Baugh <sbaugh@janestreet.com> + + Fix 'partial-completion' for candidates containing newlines + + 'partial-completion' tries to match a pattern containing wildcards + (such as `any' or `prefix') against completion candidates. + Wildcards are supposed to match any sequence of characters, but + 'completion-pcm--pattern->regex' transformed the wildcards into + ".*", which won't match sequences containing newlines. Fix this to + properly match anything by using "[^z-a]*" instead. + (That's (rx (* anything)).) + * lisp/minibuffer.el (completion-pcm--pattern->regex): Fix + regex. (Bug#72425) + +2024-08-15 Ulrich Müller <ulm@gentoo.org> + + Drop fallback code in date-to-time, update documentation + + * lisp/calendar/time-date.el (date-to-time): Drop fallback code. + Document that the default timezone is local time, rather than GMT. + * test/lisp/calendar/time-date-tests.el (test-date-to-time): + Add more test cases. + * doc/lispref/os.texi (Time Parsing): Document that 'date-to-time' + defaults to local time. + * etc/NEWS: Announce the change. (Bug#72570) + +2024-08-15 Paul Eggert <eggert@cs.ucla.edu> + + * lisp/calendar/time-date.el: Add comment. + +2024-08-14 Michael Albinus <michael.albinus@gmx.de> + + Tag treesit-indirect-buffer as :unstable + + * test/src/treesit-tests.el (treesit-indirect-buffer): + Tag it as :unstable on emba. + +2024-08-13 Michael Albinus <michael.albinus@gmx.de> + + * test/infra/gitlab-ci.yml (.tree-sitter-template): Adapt changes. + +2024-08-13 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + b585826a65e ; * lisp/files.el (require-with-check): Fix doc string an... + 6d55e94996e macOS: Wrong frame rectangle after wake (bug#71912) + c49724b9649 ; Grammar fixes + 5c3d340e001 Fix format 2 cmap handling in sfnt.c + +2024-08-12 Paul Eggert <eggert@cs.ucla.edu> + + Document time-parsing functions a bit better + + See <https://bugs.gnu.org/72570#14> + +2024-08-12 Po Lu <luangruo@yahoo.com> + + Remove extraneous entries for `han' from script-representative-chars + + * lisp/international/fontset.el (script-representative-chars): + Remove characters that are either Kana, obsolete, or radicals, + which interferes with the discovery of real Chinese fonts, and + does not impact font resolution on free systems with Fontconfig. + +2024-08-12 Michael Albinus <michael.albinus@gmx.de> + + Adapt cache settings on emba. + + * test/infra/gitlab-ci.yml (.job-template): Remove cache:policy. + (.gnustep-template, .filenotify-gio-template, .eglot-template) + (.tree-sitter-template, .native-comp-template): Remove cache. + +2024-08-11 Michael Albinus <michael.albinus@gmx.de> + + Adapt emba cache settings + + * test/infra/gitlab-ci.yml (.build-template, .test-template) + (.gnustep-template, .filenotify-gio-template, .eglot-template) + (.tree-sitter-template, .native-comp-template): Add job specific + cache settings. + +2024-08-10 Richard Stallman <rms@gnu.org> + + Fix buglet. + + * lisp/emacs-lisp/cond-star.el (cond*-match): Move a backquote. + +2024-08-10 Pip Cet <pipcet@protonmail.com> + + Fix coordinate transformations in sfnt.c + + * src/sfnt.c (sfnt_transform_coordinates): + (sfnt_transform_f26dot6): Fix calculation of transformed coordinates in + the very rare case of arbitrary transformation matrices. + +2024-08-10 Pip Cet <pipcet@protonmail.com> + + Make ftcrfont_close idempotent + + This prevents crashes when running code like: + + (let ((font (open-font (find-font (font-spec ...))))) + (close-font font) + (close-font font)) + + * src/ftcrfont.c (ftcrfont_close): Make sure the function can be run + several times in a row without crashing. + +2024-08-10 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 4dd953d3cc3 * lisp/epg.el (epg--start): Don't convert EOL on encoding... + +2024-08-10 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + a0406f7c12e ; Improve documentation of 'add-to-list' + bd6dfb97ff0 NS: Fix scroll-bar setting code (bug#72331) + +2024-08-10 Manuel Giraud <manuel@ledu-giraud.fr> + + Reuse already read `capabilities' + + * lisp/mail/smtpmail.el (smtpmail-via-smtp): Reuse already read + `capabilities'. (Bug#72544) + +2024-08-09 Kien Nguyen <kien.n.quang@gmail.com> (tiny change) + + Use SetHandleInformation to set NOINHERIT in UCRT64 + + * src/w32.c (init_ntproc) [_UCRT]: Use SetHandleInformation to + prevent standard handles from being inherited, instead of relying + on MSVCRT-only behavior. For the details of the problem, see + https://lists.gnu.org/archive/html/emacs-devel/2024-07/msg01129.html. + +2024-08-09 Thomas Fitzsimmons <fitzsim@fitzsim.org> + + Add PROBLEMS entry for bug#72517 + + * etc/PROBLEMS (X runtime problems): Document ssh -X session + hang-on-exit after deletion of remote emacsclient -c frame. + (bug#72517) + +2024-08-09 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 16462b1a62d Register for more Intents actions on Android + +2024-08-09 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + a1b8c2610a4 * lisp/help-macro.el: Add 'help-for-help-use-variable-pit... + a577eccdbbc ; * doc/lispref/strings.texi (String Conversion): Fix las... + d22e52375a6 Remove manual entry for string-to-int + 341e5795d5d Support minibuffer-visible-completions in completing-read... + 3e30c779a70 * lisp/imenu.el (imenu-flatten): Fix doc about annotation... + +2024-08-08 Michael Albinus <michael.albinus@gmx.de> + + Fix problem in tramp-container.el + + * lisp/net/tramp-container.el (tramp-kubernetes--context-namespace): + Handle nil list elements. + +2024-08-08 Paul Eggert <eggert@cs.ucla.edu> + + Port zoneinfo-world-style-list to Debian testing + + Problem reported by Gijs Hillenius <gijs@hillenius.net> in: + https://lists.gnu.org/r/emacs-devel/2024-08/msg00279.html + * lisp/time.el (zoneinfo-style-world-list): Use Asia/Kolkata + instead of Asia/Calcutta. The main name was changed in tzdata + 2008b every practical system has it now. Some systems do + not include backward-compatibility names, so it is better + to use the standard time now. + +2024-08-07 Augusto Stoffel <arstoffel@gmail.com> + + Eglot: send more accurate languageId strings to TeX servers + + bug#72343 + + * lisp/progmodes/eglot.el (eglot-server-programs): Rework TeX-mode entry + +2024-08-07 João Távora <joaotavora@gmail.com> + + Eglot: simplify eglot--lookup-mode + + No longer reorder the LANGUAGES return value to have the + originating mode upfront, since it doesn't seem to serve any + practical purpose anymore. + + bug#72343 + + * lisp/progmodes/eglot.el (eglot--lookup-mode): Simplify. + + * test/lisp/progmodes/eglot-tests.el + (eglot-test-server-programs-guess-lang): Adjust. + +2024-08-07 Gerd Möllmann <gerd@gnu.org> + + Bind TAB not <tab> in M-x lldb + + * lisp/progmodes/gud.el (lldb): Bind TAB not <tab> so that it also works + on terminals. + +2024-08-07 Randy Taylor <dev@rjt.dev> + + Fix cmake-ts-mode number fontification (Bug#72228) + + * lisp/progmodes/cmake-ts-mode.el (cmake-ts-mode--constants): + Remove "1" and "0". + (cmake-ts-mode--font-lock-settings): Match negative numbers. + +2024-08-07 Andrea Corallo <acorallo@gnu.org> + + Clean-up warning due to unused lexical variable + + * lisp/progmodes/c-ts-common.el (c-ts-common--fill-block-comment): + Remove 'start-mask-done'. + +2024-08-07 Yuan Fu <casouri@gmail.com> + + Merge from savannah/emacs-30 + +2024-08-07 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 679f7ccc49f Prevent accesses to /content files without a GUI connection + f0a7eec5a7d * lisp/net/tramp-integration.el (shortdoc): Use `tramp--w... + fb642d9cf54 Merge branch 'emacs-30' of git.savannah.gnu.org:/srv/git/... + f1e37ae423f Avoid crashes in very large buffers with long lines + 4dc9e99349d Update description of string comparison functions + 3817355aed5 Add sanity check when adding Tramp functions to shortdoc + 1bbb3220179 ; * lisp/erc/erc-fill.el (erc-fill-wrap-mode): Doc fix. + 3f6e7e1da68 js-ts-mode: Make jsdoc's "description" block a comment (b... + 1c7e00f4f65 Also condition cjk-misc font-spec on Android + b89d65df5fa ; * etc/PROBLEMS: How to install sources on SUSE Linux (b... + 729b17c2026 ; * src/lread.c (Fload): Add comment. (Bug#72433) + bfb1aee9989 Fix ':defer nil' in 'use-package' + d787817076e Document unsupported color Emoji on OpenBSD + db1f749db55 Fix regressions in Customize caused by 'widget-unselected... + f94d58008eb Avoid inserting extra space in SVG data + 292fcd20099 Fix c-ts-common filling function (bug#71760) + e50d597f450 Fix missing type checks before specbind + + # Conflicts: + # lisp/progmodes/c-ts-common.el + +2024-08-06 Ulrich Müller <ulm@gentoo.org> + + * lisp/format.el (format-alist): Make 'duden' format write-only. + +2024-08-06 Juri Linkov <juri@linkov.net> + + * lisp/tab-bar.el (tab-bar--format-tab-group): Add 'current-group'. + + Use current-group symbol for current tab group item (bug#71883). + +2024-08-05 Pip Cet <pipcet@protonmail.com> + + Avoid compiler warning + + * src/timefns.c (Fdecode_time): Use 'UNINIT' to avoid a warning with + gcc 14 and checking enabled. + +2024-08-05 Pip Cet <pipcet@protonmail.com> + + Fix typo in pdumper.c + + * src/pdumper.c (dump_interval_node): Call 'dump_field_fixup_later' with + the correct arguments. Discovered by Danny McClanahan. + +2024-08-05 Pip Cet <pipcet@protonmail.com> + + * src/search.c (Fre__describe_compiled): Use 'CHECK_STRING'. + +2024-08-05 Mattias Engdegård <mattiase@acm.org> + + Avoid warning when building on macOS versions < 14 (bug#72440) + + * src/nsterm.m ([EmacsView initFrameFromEmacs:]): + The clipsToBounds property of NSView is only public from macOS 14 on. + +2024-08-05 Jonas Bernoulli <jonas@bernoul.li> + + Update to Transient v0.7.4-1-g3d9e9358 + +2024-08-05 Gerd Möllmann <gerd@gnu.org> + + Restore a default before macOS 14 API change (bug#72440) + + * src/nsterm.m ([EmacsView initFrameFromEmacs:]): Set clipsToBounds to + YES. + +2024-08-05 Juri Linkov <juri@linkov.net> + + * lisp/tab-bar.el (tab-bar-tab-group-format-default): Hide hints. + + Don't display hints when tab-bar-show-inactive-group-tabs is customized + to t (bug#71939). Suggested by Ship Mints <shipmints@gmail.com>. + +2024-08-05 Yuan Fu <casouri@gmail.com> + + Fix c-ts-common filling + + * lisp/progmodes/c-ts-common.el: + (c-ts-common--fill-block-comment): Exclude the last line from filling if + it only has non-word characters like *=-. + * test/lisp/progmodes/c-ts-mode-resources/filling.erts: Fir the + multi-line test and add a single line test. + +2024-08-04 Jim Porter <jporterbugs@gmail.com> + + Add support for variable-pitch fonts in 'visual-wrap-prefix-mode' + + * lisp/emacs-lisp/subr-x.el (string-pixel-width): Allow passing BUFFER + to use the face remappings from that buffer when calculating the width. + + * lisp/visual-wrap.el (visual-wrap--prefix): Rename to... + (visual-wrap--adjust-prefix): ... this, and support PREFIX as a number. + (visual-wrap-fill-context-prefix): Make obsolete in favor of... + (visual-wrap--content-prefix): ... this. + (visual-wrap-prefix-function): Extract inside of loop into... + (visual-wrap--apply-to-line): ... this. + + * doc/lispref/display.texi (Size of Displayed Text): Update + documentation for 'string-pixel-width'. + + * etc/NEWS: Announce this change. + +2024-08-04 Philip Kaludercic <philipk@posteo.net> + + Clarify that 'pcase-lambda' only destructs + + * lisp/emacs-lisp/pcase.el (pcase-lambda): Copy notice from + 'pcase-let', indicating that pcase-lambda won't pattern match + like 'pcase', but just try to destruct with uncertain side + effects if this fails. (Bug#71503) + +2024-08-04 Michael Albinus <michael.albinus@gmx.de> + + Remove further compat code from Tramp + + * lisp/net/tramp-adb.el (tramp-adb-handle-process-file): + Use `process-file-return-signal-string'. + + * lisp/net/tramp-cache.el (tramp-dump-connection-properties): + Use "lisp-data" for persistency file. + + * lisp/net/tramp-cmds.el (tramp-cleanup-this-connection) + (tramp-rename-these-files, tramp-recompile-elpa): + Declare `completion'. + + * lisp/net/tramp-container.el (tramp-kubernetes--container) + (tramp-kubernetes--pod, tramp-kubernetes--namespace): Make more + robust. + + * lisp/net/tramp-crypt.el (tramp-crypt-remove-directory): + Declare `completion'. + + * lisp/net/tramp-gvfs.el (file-notyify-callback): Declare. + + * lisp/net/tramp-sh.el (process-file-return-signal-string) + (vc-handled-backends): Don't declare. + + * lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory): + Use `copy-directory-create-symlink'. + + * lisp/net/tramp.el (tramp-skeleton-write-region): Use `lock-file' and + `unlock-file'.. + (tramp-handle-make-lock-file-name): Use `remote-file-name-inhibit-locks'. + (tramp-handle-unlock-file): Use `remote-file-name-inhibit-locks' + and `userlock--handle-unlock-error'. + (tramp-handle-shell-command): Use `shell-command-buffer-name-async' + and `shell-command-buffer-name'. + (tramp-read-passwd): Remove workaround. + +2024-08-03 Eli Zaretskii <eliz@gnu.org> + + Improve font search and handling on MS-Windows + + * src/w32font.c: Add commentary about font search on MS-Windows. + (w32font_coverage_ok, add_font_entity_to_list) + (font_supported_scripts): Consider the coverage OK if a font has + only the SIP bit set, but also sets relevant codepage bits in the + CSB bits. + (font_supported_scripts): Fix script for USB bit 99. + * src/font.c (font_parse_fcname, font_parse_family_registry) + [HAVE_NTGUI]: Don't consider hyphenated suffixes of some Windows + fonts as not belonging to the family name. + * src/w32uniscribe.c (uniscribe_check_otf_1): Increase tags[] + array size, to avoid the E_OUTOFMEMORY error for some fonts. + + * lisp/international/fontset.el (font-encoding-alist): Add + 'unicode-sip'. + +2024-08-03 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 8d073823c61 Revert "Remove redundant byte-swapping boundary" + c25687e860f Fix various typos reported by Pip Cet + +2024-08-03 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + e539a5c7d79 NS: Fix placement of candidate window (bug#72422) + 94fe5894d99 ; * lisp/touch-screen.el: Correct commentary. + +2024-08-03 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + ef5466c2675 Avoid aborts when buffer is modified during its redisplay + cb421286d2e Fix c++-ts-mode indentation for templace (bug#72263) + +2024-08-03 Eli Zaretskii <eliz@gnu.org> + + Fix 'script-representative-chars' for the 'han' script + + * lisp/international/fontset.el (script-representative-chars): + Remove from 'han' codepoints that belong to 'cjk-misc'. + +2024-08-02 Richard Stallman <rms@gnu.org> + + Install cond* + + * lisp/emacs-lisp/cond-star.el: New file. + +2024-08-02 Eli Zaretskii <eliz@gnu.org> + + Fix display of empty margins when default face is remapped + + * src/xdisp.c (display_line): Append space glyphs to margin areas + if the default face is remapped and nothing is written to the + margin area of this screen line. + (produce_special_glyphs): If the truncation/continuation glyphs do + not specify a face, use the remapped default face, not the + original frame-global default face. Reported by Nicolas + P. Rougier <nicolas.rougier@inria.fr> in + https://lists.gnu.org/archive/html/emacs-devel/2024-07/msg01217.html. + +2024-08-02 Eli Zaretskii <eliz@gnu.org> + + Fix finding anchor references after 'Info-on-current-buffer' + + * lisp/info.el (Info--record-tag-table): New function, extracted + from 'Info-find-node-2'. + (Info-find-node-2, Info-on-current-buffer): Use + 'Info--record-tag-table'. (Bug#72391) + +2024-08-01 Martin Rudalics <rudalics@gmx.at> + + Fix regression in 'todo-test-todo-quit02' + + * lisp/window.el (switch-to-prev-buffer): If BURY-OR-KILL is + non-nil, remove any 'quit-restore' or 'quit-restore-prev' + parameter referencing the old buffer too. This fixes a + regression when running 'todo-test-todo-quit02' from 'ert' + (reported by Andrea Corallo <acorallo@gnu.org>). + +2024-08-01 Michael Albinus <michael.albinus@gmx.de> + + Fix edge cases in tramp-crypt.el + + * lisp/net/tramp-crypt.el (tramp-crypt-handle-set-visited-file-modtime) + (tramp-crypt-handle-verify-visited-file-modtime): New defuns. + (tramp-crypt-file-name-handler-alist): Use them. + (tramp-crypt-handle-lock-file): Care about `buffer-file-name'. + (tramp-crypt-handle-unlock-file): Remove compat code. + +2024-08-01 Mattias Engdegård <mattiase@acm.org> + + Remove misspelled rx category `chinse-two-byte` + + * lisp/emacs-lisp/rx.el (rx--categories): Remove misspelled variant + present in Emacs 21-1-24.3, correct name since 24.4. + * etc/NEWS: Announce. + +2024-08-01 Martin Rudalics <rudalics@gmx.at> + + Improve window/buffer handling code + + The purpose of these changes is to improve the code handling the + display of buffers in windows, switching to previous and next + buffers in windows and restoring a previous state after quitting + or killing buffers. In particular it does: + + - Add a new window parameter 'quit-restore-prev' so a window can + keep its initial 'quit-restore' parameter and undoing a sequence + of quit window operations becomes more reliable (Bug#59862). + + - Optionally have 'kill-buffer' call 'quit-restore-window' for + all windows showing the argument buffer (Bug#59862). + + - Add a new hook so it's possible to avoid that a window gets + deleted implicitly by functions like 'kill-buffer' (Bug#71386). + + - Add a new option to make 'quit-restore-window' delete windows + more aggressively (Bug#59862). + + - Immediately remove killed buffers from all windows' previous + and next buffers. For windows that are already dead, use a weak + hash table to be used by 'kill-buffer'. This avoids any special + handling of such windows by the garbage collector. + + - Immediately remove 'quit-restore' and 'quit-restore-prev' + window parameters that reference killed buffers. These + parameters have no more use once their buffers got killed. + + - Make sure that internal windows do not have any previous and + next buffers. This fixes a silly memory leak. + + - Make sure that after set_window_buffer and some wset_buffer + calls the buffer now shown in the window does not appear in the + lists of that window's previous and next buffers. The old + behavior could make functions investigating these lists + erroneously believe that there still existed some other buffer + to switch to. + + * src/alloc.c (mark_discard_killed_buffers): Remove function. + (mark_window): No more filter previous and next buffer lists. + * src/window.h (struct window): Move up prev_buffers and + next-buffers in structure; they are now treated by the collector + as usual. + * src/window.c (window_discard_buffer_from_alist) + (window_discard_buffer_from_list) + (window_discard_buffer_from_window) + (window_discard_buffer_from_dead_windows) + (Fwindow_discard_buffer): New functions. + (set_window_buffer): Discard BUFFER from WINDOW's previous and + next buffers. + (make_parent_window): Make sure internal windows have no previous + and next buffers. + (make_window): Don't initialize window's previous and next + buffers, they are handled by allocate_window now. + (Fdelete_window_internal): Add WINDOW to window_dead_windows_table. + (Fset_window_configuration): Remove resurrected window from + window_dead_windows_table. Make sure buffers set by wset_buffer + calls are not recorded in window's previous and next buffers. + (delete_all_child_windows): Add deleted windows to + window_dead_windows_table. + (window_dead_windows_table): New weak hash table to record dead + windows that are stored in saved window configurations. + * src/buffer.c (Fkill_buffer): Call new function + 'window_discard_buffer_from_dead_windows'. + * lisp/window.el (window-deletable-functions): New hook. + (window-deletable-p): Update doc-string. Run + 'window-deletable-functions' (Bug#71386). + (unrecord-window-buffer): New argument ALL. Move body to + 'window-discard-buffer-from-window' so that if ALL is non-nil, + WINDOW's 'quit-restore' and 'quit-restore-prev' parameters get + removed too. + (switch-to-prev-buffer): Don't care about killed buffers here; + 'replace-buffer-in-windows' should have done that already. Use + 'unrecord-window-buffer'. + (switch-to-next-buffer): Don't care about killed buffers here; + 'replace-buffer-in-windows' should do that now. + (kill-buffer-quit-windows): New option. + (delete-windows-on): Update doc-string. Handle new option + 'kill-buffer-quit-windows'. Update 'unrecord-window-buffer' + calls. + (replace-buffer-in-windows): Update doc-string. Handle new + option 'kill-buffer-quit-windows' (Bug#59862). Update call to + 'unrecord-window-buffer'. + (quit-restore-window-no-switch): New option. + (quit-restore-window): Update doc-string. Handle additional + values of BURY-OR-KILL so to not kill a buffer about to be + killed by the caller. Handle 'quit-restore-prev' parameter + (Bug#59862). Handle new option 'quit-restore-window-no-switch' + (Bug#59862). + (quit-windows-on): Update doc-string. Call 'quit-window-hook' + and call 'quit-restore-window' directly so that the buffer does + not get buried or killed by the latter. Update + 'unrecord-window-buffer' call. + (display-buffer-record-window): Update doc-string. Handle new + `quit-restore-prev' parameter (Bug#59862). + (switch-to-buffer): Call 'display-buffer-record-window' so a + latter 'quit-restore-window' can use its parameters. + * doc/lispref/windows.texi (Deleting Windows): Describe implicit + deletion of windows and new hook 'window-deletable-functions'. + (Buffers and Windows): Update description of + 'replace-buffer-in-windows'. Describe new option + 'kill-buffer-quit-windows'. + (Quitting Windows): Describe 'quit-restore-prev' parameter and + new option 'quit-restore-window-no-switch'. Update description + of 'quit-restore-window'. + (Window Parameters): Mention 'quit-restore-prev' parameter. + * etc/NEWS: Add entries for 'window-deletable-functions', + 'kill-buffer-quit-windows', 'quit-restore-window-no-switch'. + mention new parameter 'quit-restore-prev' and new argument + values for 'quit-restore-window'. + +2024-08-01 Po Lu <luangruo@yahoo.com> + + Conclude previous change + + * lisp/international/fontset.el (script-representative-chars) + <han>: Remove practically unattested characters, since this + variable is not used in font resolution on MS-Windows any + longer. + +2024-08-01 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 1154d8aafe2 Better resolve bug#72188 + ceb5a152227 MacOS: Let EmacsView implement NSTextInputClient + 9f7c1ace9f8 NS: Set frame position when entering/exiting fullscreen (... + 74fe889a93f Merge branch 'emacs-30' of git.savannah.gnu.org:/srv/git/... + abefd9514bc * lisp/tab-bar.el (tab-bar-move-tab-to-group): Fix for a ... + e09982f8f5a Merge branch 'emacs-30' of git.savannah.gnu.org:/srv/git/... + 5cf64d8377a Fix sporadic crashes and `select' failures in dumped images + a475360af98 Correct display of Doc View documents after tab switching + b0d927e1dce Merge branch 'emacs-30' of git.savannah.gnu.org:/srv/git/... + 469bc7c9686 Use 'kill-process' as a fallback when a pipe gets broken ... + 158835668df ; * doc/lispref/modes.texi (Mode Line Data): Fix formatting. + +2024-07-31 Eli Zaretskii <eliz@gnu.org> + + Revert "Re-enable displaying `han' characters on Android" + + This reverts commit bf0aeaa0d7a1581a095aa423e75d0d71cceb28cd. + The characters removed by this commit cause Emacs to select + sub-optimal fonts that lack many Chinese characters, because + Emacs generally stops looking for fonts when it finds the + first one that seems to match. + +2024-07-31 Stefan Monnier <monnier@iro.umontreal.ca> + + (vhdl-run-when-idle): Don't use `timer--triggered` + + * lisp/progmodes/vhdl-mode.el (vhdl-run-when-idle): Avoid relying + needlessly on internal accessor and fix last change to make sure + we always create a timer. + +2024-07-31 Po Lu <luangruo@yahoo.com> + + Re-enable displaying `han' characters on Android + + * lisp/international/fontset.el (script-representative-chars) + <han>: Remove several characters that were just recently + introduced into unicode and are consequently absent from many + fonts, so that they may match font specs specifying scripts + rather than QClang in the default fontset. + +2024-07-31 Yuan Fu <casouri@gmail.com> + + New variable treesit-language-remap-alist (bug#72388) + + * doc/lispref/parsing.texi (Using Parser): Manual entry for the new + variable. + * src/treesit.c (resolve_language_symbol): New function. + (Ftreesit_parser_create, Ftreesit_parser_list): Resolve language before + using it. + (Vtreesit_language_remap_alist): New variable. + +2024-07-31 Yuan Fu <casouri@gmail.com> + + Fix filling in c-ts-mode (bug#72116) + + The previous fix introduced a regression in the case when there's only a + single line in the block comment. In that case we don't want to add a + start at the second line: + + /* foo foo foo */ should => /* foo foo + foo */ + + rather than /* foo foo + * foo */ + + This commit fixes that. + + * lisp/progmodes/c-ts-common.el: + (c-ts-common--fill-block-comment): Don't mask the /*. + (c-ts-common--adaptive-fill-prefix): New function. + (c-ts-common-comment-setup): Don't set adaptive-regexp, change + adaptive-fill-first-line-regexp to work with the new + adaptive-fill-function. + * test/lisp/progmodes/c-ts-mode-resources/filling.erts: New tests + +2024-07-31 Yuan Fu <casouri@gmail.com> + + "Separate" tree-sitter parser list for indirect buffers + + When create a parser for the indirect buffer, set the buffer field of + the parser to the indirect buffer, but add the parser to the base + buffer's parser list. This way, all the parsers still get buffer + updates, but indirect buffer's parsers can have different narrowing than + the parsers of the base buffer. + + When returning the parser list of a buffer, do filtering and only return + the parser for that buffer. + + From user's POV, indirect buffers appear to have their own parser list. + + * doc/lispref/parsing.texi (Using Parser): Remove the text describing + indirect buffer's special case. + * src/treesit.c (Ftreesit_parser_create): When create a parser for the + indirect buffer, set the buffer field of the parser to the indirect + buffer, but add the parser to the base buffer's parser list. + (Ftreesit_parser_list): Filter parser list, only return parsers for this + buffer. + + xx + +2024-07-30 Richard Stallman <rms@gnu.org> + + Define custom var rmail-summary-starting-message. + + * lisp/mail/rmailsum.el (rmail-summary-starting-message): + New custom variable. + (rmail-new-summary-1): Use it. + +2024-07-30 Mattias Engdegård <mattiase@acm.org> + + vhdl-mode: don't use timer accessors in XEmacs + + * lisp/progmodes/vhdl-mode.el (vhdl-run-when-idle): + No need to activate a newly created idle timer; keep it as + compatibility (or voodoo) code for XEmacs which probably doesn't have + the timer accessors anyway. + +2024-07-29 Juri Linkov <juri@linkov.net> + + * lisp/tab-bar.el (tab-bar-show-inactive-group-tabs): New defcustom. + + (tab-bar-format-tabs-groups): Use it (bug#71939). + Suggested by Ship Mints <shipmints@gmail.com>. + +2024-07-29 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 5cf64d8377a Fix sporadic crashes and `select' failures in dumped images + a475360af98 Correct display of Doc View documents after tab switching + +2024-07-28 Jim Porter <jporterbugs@gmail.com> + + Merge from origin/emacs-30 + + 367c0490a82 ; * admin/MAINTAINERS: Note what I maintain + +2024-07-28 Philip Kaludercic <philipk@posteo.net> + + Simplify 'help-enable-variable-value-editing' using 'string-edit' + + * lisp/help-fns.el (help-fns--edit-variable): Remove variable + declaration, as 'string-edit' makes manually storing the + variable name unnecessary. + (help-fns-edit-variable): Use 'read-string-from-buffer' instead + of custom major mode. + (help-fns--edit-value-mode-map, help-fns--edit-value-mode) + (help-fns-edit-mode-done, help-fns-edit-mode-cancel): Remove + functionality provided by 'string-edit'. + +2024-07-28 Visuwesh <visuweshm@gmail.com> + + Add new optional argument NO-HIGHLIGHT to query-replace-read-args + + * lisp/replace.el (query-replace-read-args): Add new optional + argument to disable regexp highlighting. + + * lisp/dired-aux.el (dired-do-query-replace-regexp) + (dired-do-replace-regexp-as-diff) + (dired-do-find-regexp-and-replace): Revert last change, and use + the new argument instead. (bug#72147) + +2024-07-28 Juri Linkov <juri@linkov.net> + + * lisp/language/misc-lang.el ("Tifinagh"): Fix `language-info-alist'. + +2024-07-27 Jim Porter <jporterbugs@gmail.com> + + Use 'unwind-protect' to ensure that Eshell always closes I/O handles + + See bug#72220. + + * lisp/eshell/esh-cmd.el (eshell-with-handles): New macro... + (eshell-commands): ... use it. + (eshell-with-copied-handles): Remove STEAL-P and allow multiple body + forms (this is an incompatible change, but the macro is currently + internal despite the name). + (eshell-parse-command, eshell-do-pipelines) + (eshell-do-pipelines-synchronously, eshell--invoke-command-directly-p): + Remove handle stealing. + (eshell-structure-basic-command, eshell-do-command) + (eshell-lisp-command): Remove 'eshell-close-handles'. + (eshell-protect): Make obsolete. + (eshell-rewrite-for-command, eshell-rewrite-while-command) + (eshell-rewrite-if-command, (eshell-parse-pipeline): Remove + 'eshell-protect'. + + * lisp/eshell/esh-io.el (eshell-duplicate-handles): Make STEAL-P + obsolete. + + * lisp/eshell/esh-proc.el (eshell-gather-process-output): Call + 'eshell-protect-handles' one more time. Remove 'eshell-close-handles'. + + * lisp/eshell/esh-var.el (eshell-parse-variable-ref): Reimplement + $<COMMAND> form using 'eshell-with-handles'. + + * test/lisp/eshell/esh-cmd-tests.el + (esh-cmd-test/command-not-found/pipeline): New test. + + * test/lisp/eshell/em-tramp-tests.el + (em-tramp-test/should-replace-command): Adjust check for + 'eshell-with-copied-handles'. + +2024-07-27 Vincent Belaïche <vincentb1@users.sourceforge.net> + + Make sure SES always writes non abbreviated expressions to data area. + + Corrupted data area would occur when print-length or print-level are non nil. + +2024-07-27 Mattias Engdegård <mattiase@acm.org> + + Reduce type checks in arithcompare + + * src/data.c (coerce_marker, not_number_or_marker): New. + (arithcompare): Don't use NUMBERP to check types up-front since we + are going to branch on types anyway. + +2024-07-27 Mattias Engdegård <mattiase@acm.org> + + * src/data.c (arithcompare): Simplify fixnum/bignum comparisons. + + Noticed by Pip Cet. + +2024-07-27 Michael Albinus <michael.albinus@gmx.de> + + Revert "* test/lisp/net/tramp-tests.el (tramp-test42-utf8): Don't test "Tifinagh"." + + This reverts commit b9f2ef2a333fa7c813913dbba798c5ba8778eefd. + +2024-07-27 Michael Albinus <michael.albinus@gmx.de> + + * lisp/language/misc-lang.el ("Tifinagh"): Fix `sample-text'. + +2024-07-27 Mattias Engdegård <mattiase@acm.org> + + Simplify and speed up numeric comparisons + + This makes comparison functions (=, /=, <, <=, >, >=, min, max) quite + a bit faster (10-20 %). Bytecode ops on fixnums are not affected, + nor is `value<`. + + * src/data.c (arithcompare): Simplify the code to reduce the number of + branches. Remove the comparison code argument; instead, return the + relation encoded as bits, which can be tested cheaply. All callers + adapted. + * src/lisp.h (enum Arith_Comparison): Remove. + (Cmp_Bit_*, cmp_bits_t): New. + +2024-07-27 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 88e1ec22f27 Update to Org 9.7.9 + 1ae2f004473 Fix edge-case with 'which-key-dont-use-unicode' setter + 68a5f1f7d18 NS: prevent makeKeyWindow warnings (bug#69525) + 59a895ec499 ; * .gitignore: Add lisp/eshell/esh-groups.el. + 5c08cd4e7c3 ; * doc/emacs/cmdargs.texi (Initial Options): Fix last ch... + 309d0a71864 Add PROBLEMS entry for bug#72303 + 87389f9ff90 ; Improve documentation of 'line-prefix' and 'wrap-prefix'. + 268a2d10fc9 Improve documentation of '--init-directory' command-line ... + c27055a938a ; cperl-mode.el: Fix fontification of flip-flop (Bug#72296) + fcd4e4c895d ; * admin/MAINTAINERS: Add myself for maintaining some ar... + fdc133e97f6 Fix bug in server.el introduced by 0d7d835902df + af527051cd3 ; * admin/MAINTAINERS: Remove Nicolas Petton. + 7170282a59a lisp/minibuffer.el (completion--sifn-requote): Fix bug#72176 + 68906f184cb * admin/notes/spelling: Update note. + 9eea6be5abf Don't produce invalid XML with multi-line commenting style + b97786d9f6e ; * etc/NEWS: Entry for 'gnus-summary-limit-to-age' (bug#... + a7996615663 Standardize possessive apostrophe usage in manuals, docs,... + 67faaead754 Don't refer to obsolete finder group "wp" + + # Conflicts: + # etc/NEWS + +2024-07-27 Michael Albinus <michael.albinus@gmx.de> + + * test/lisp/net/tramp-tests.el (tramp-test42-utf8): Don't test "Tifinagh". + +2024-07-27 Michael Albinus <michael.albinus@gmx.de> + + Improve Tramp startup time + + * lisp/net/tramp-cmds.el (tramp-repository-branch) + (tramp-repository-version): + * lisp/net/tramp-message.el (tramp-repository-branch) + (tramp-repository-version): Declare. + + * lisp/net/trampver.el (tramp-repository-branch) + (tramp-repository-version): Remove ;;;###tramp-autoload cookie. + +2024-07-27 Liu Hui <liuhui1610@gmail.com> + + Use buffer-local value of 'comint-input-ring-size' + + When 'comint-read-input-ring' was reading history to the ring, + the global value of 'comint-input-ring-size' was used regardless + of the local value, due to the use of a temporary buffer. + This change fixes the problem. + * lisp/comint.el (comint-read-input-ring): Use buffer-local + value of the ring size. (Bug#72138) + +2024-07-27 Stefan Kangas <stefankangas@gmail.com> + + * lisp/net/nsm.el (nsm-verify-connection): Improve docstring. + +2024-07-26 Michael Albinus <michael.albinus@gmx.de> + + Tramp: Handle hops with "%" in their names + + * lisp/net/tramp.el (tramp-dissect-file-name, tramp-compute-multi-hops): + Handle hops with "%" in their names, like USER%DOMAIN or POD%NAMESPACE. + +2024-07-26 Eli Zaretskii <eliz@gnu.org> + + Add support for Tifinagh script + + * lisp/leim/quail/tifinagh.el: New file. Contributed by Adam Oudad + <adam.oudad@gmail.com>. + * lisp/language/misc-lang.el ("Tifinagh"): New language environment. + + * etc/HELLO: Add a greeting in Tifinagh. + * etc/NEWS: Announce the addition of Tifinagh. + +2024-07-25 Eli Zaretskii <eliz@gnu.org> + + Fix display of 'display' strings in RTL paragraphs at window-start + + * src/xdisp.c (handle_single_display_spec) + (get_overlay_strings_1, push_prefix_prop): Initialize bidi + paragraph direction if not yet done. (Bug#72287) + +2024-07-25 Mattias Engdegård <mattiase@acm.org> + + Use timer accessors instead of aref/aset + + * lisp/emacs-lisp/timer-list.el (list-timers): + * lisp/gnus/mail-source.el (mail-source-start-idle-timer): + * lisp/play/gamegrid.el (gamegrid-set-timer): + * lisp/progmodes/vhdl-mode.el (vhdl-run-when-idle): + * lisp/simple.el (analyze-text-conversion): + * lisp/time.el (display-time-event-handler): + Use timer accessors. + +2024-07-25 Michael Albinus <michael.albinus@gmx.de> + + Tramp's method "kubernetes" supports now optional namespace + + * doc/misc/tramp.texi (Inline methods): Extend Kubernetes host + name syntax by an optional namespace. + (Kubernetes setup): Mention optional namespace part of the host name. + + * etc/NEWS: Tramp's method "kubernetes" supports now optional namespace. + Fix typos. + + * lisp/net/tramp-container.el (tramp-kubernetes-namespace): + Initialize with nil. Adapt docstring. + (tramp-kubernetes--name-regexp): New defconst. + (tramp-kubernetes--host-name-regexp): Change in order to cover + also an optional namespace. (Bug#59797) + (tramp-kubernetes--namespace): New defun. + (tramp-kubernetes--context-namespace): Use it. + (tramp-skeleton-kubernetes-vector): Add sanity check for + superfluous user name or port number. + +2024-07-25 Tassilo Horn <tsdh@gnu.org> + + Fix jumping to page in DocView's text contents (bug#72275) + + * lisp/doc-view.el (doc-view-open-text): Set page-delimiter to the form + feed character in the text contents buffer (bug#72275). + +2024-07-25 Paul Eggert <eggert@cs.ucla.edu> + + Fix process-attributes rss and pmem on GNU/Linux + + Problem reported by Rahguzar <https://bugs.gnu.org/72278>. + * src/sysdep.c (system_process_attributes): + [GNU_LINUX || CYGWIN || __ANDROID__]: When computing rss and pmem, + don’t assume pagesize is 4096; it could be greater. + +2024-07-25 Tassilo Horn <tsdh@gnu.org> + + Describe that DocView text contents display is in a separate buffer + + * doc/emacs/misc.texi (Document View): Adjust the docs to describe the + new behavior (separate buffer for the text contents) from bug#72241. + +2024-07-25 Manuel Giraud <manuel@ledu-giraud.fr> + + bug#72241: 31.0.50; [PATCH] Use a dedicated buffer for `doc-view-open-text' + + Here is an updated version of this patch. WDYT? + + From 6e32534012cafeda1d7e67aab23a8206bc887c9f Mon Sep 17 00:00:00 2001 + From: Manuel Giraud <manuel@ledu-giraud.fr> + Date: Sun, 21 Jul 2024 18:52:52 +0200 + Subject: [PATCH] Use a dedicated buffer for `doc-view-open-text' + + * lisp/doc-view.el (doc-view-open-text): Create a new "text + contents" buffer and switch to it. + (doc-view-toggle-display): Switch back to the document buffer + and kill the "text contents" one. + * etc/NEWS: Mention the change. + +2024-07-24 Stefan Kangas <stefankangas@gmail.com> + + Delete defgroup "wp" obsolete since Emacs 26 + + * lisp/cus-edit.el (wp): Delete defgroup obsolete since Emacs 26. + (text): Don't inherit obsolete customization group 'wp'. + * lisp/finder.el (finder-known-keywords): Delete 'wp' keyword. + +2024-07-24 Stefan Kangas <stefankangas@gmail.com> + + (error): Remove support for old calling convention + + * lisp/subr.el (error): Remove support for the Emacs 22 calling + convention '(error &rest args)'. + +2024-07-24 Andrea Corallo <acorallo@gnu.org> + + Add some basic checking for function type declarations + + * lisp/emacs-lisp/byte-run.el (byte-run--anonymize-arg-list): New function. + (byte-run--set-function-type): Add some basic checking for + the function type being declared. + +2024-07-24 Andrea Corallo <acorallo@gnu.org> + + Merge from savannah/emacs-30 + + 976416bebe2 Fix some function type declaration + 23549d71751 * src/image.c (gui_put_x_image): Avoid memory leak. + cb633820c15 ; * doc/misc/use-package.texi (Getting Started): Fix word... + +2024-07-24 Michael Albinus <michael.albinus@gmx.de> + + Adapt Tramp tests + + * test/lisp/net/tramp-archive-tests.el (ert-resource-directory-format) + (ert-resource-directory-trim-left-regexp) + (ert-resource-directory-trim-right-regexp, ert-resource-directory) + (ert-resource-file): Don't define. + (tramp-archive--test-emacs28-p): Remove. + (top): Remove unneeded skips. Use original objects instead of + their `tramp-compat-' counterparts when possible. + + * test/lisp/net/tramp-tests.el (seq): Don't require. + (lock-file-name-transforms, process-file-return-signal-string) + (remote-file-name-inhibit-locks, dired-copy-dereference): Don't declare. + (ert-resource-directory-format) + (ert-resource-directory-trim-left-regexp) + (ert-resource-directory-trim-right-regexp, ert-resource-directory) + (ert-resource-file): Don't define. + (tramp--test-emacs28-p): Remove. + (top): Remove unneeded skips. Use original objects instead of + their `tramp-compat-' counterparts when possible. + +2024-07-24 Michael Albinus <michael.albinus@gmx.de> + + Remove Emacs 27 compatibility from Tramp + + * doc/misc/tramp.texi (Frequently Asked Questions): + Adapt supported Emacs versions. + + * doc/misc/trampver.texi: + * lisp/net/trampver.el: Change version to "2.8.0-pre". + + * lisp/net/tramp-compat.el (tramp-compat-file-modes) + (tramp-compat-set-file-modes, tramp-compat-set-file-times) + (tramp-compat-directory-files) + (tramp-compat-directory-files-and-attributes) + (tramp-compat-directory-empty-p, tramp-compat-null-device) + (tramp-compat-string-replace, tramp-compat-string-search) + (tramp-compat-make-lock-file-name) + (tramp-compat-file-name-concat) + (tramp-compat-replace-regexp-in-region, tramp-compat-length<) + (tramp-compat-length>, tramp-compat-length=) + (tramp-compat-always): Remove. + + * lisp/net/tramp-adb.el: + * lisp/net/tramp-androidsu.el: + * lisp/net/tramp-archive.el: + * lisp/net/tramp-cache.el: + * lisp/net/tramp-cmds.el: + * lisp/net/tramp-compat.el: + * lisp/net/tramp-crypt.el: + * lisp/net/tramp-fuse.el: + * lisp/net/tramp-gvfs.el: + * lisp/net/tramp-message.el: + * lisp/net/tramp-sh.el: + * lisp/net/tramp-smb.el: + * lisp/net/tramp-sshfs.el: + * lisp/net/tramp-sudoedit.el: + * lisp/net/tramp.el: Use original objects instead of their + `tramp-compat-' counterparts when possible. + +2024-07-24 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 3a76354e092 Adapt last change to non-NS systems + +2024-07-24 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + b5543c54bf0 Fix NULL pointer dereferences in xpm_load_image + +2024-07-24 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 1ee8579eb7d Fix bug#72255 + 05629d3af0a Delete redundant "a.k.a." in use-package.texi + c7609464f70 Document (use-package 'emacs) declarations + de9f9add138 Improve 'emacs-news-view-mode' menus and bindings + 7588e1f8a9f ; * src/xdisp.c (Fformat_mode_line): Doc fix. + 2074e94c3b1 Fix disappearing bar cursor on Hebrew text (bug#72230) + 1aaadc8aec5 Fix DocView with DVI files + c1382257aa8 ; Fix typo in use-package.texi + caf7426f0ca FIx spurious fontification of variable in Java Mode + 9b426e15abd Correctly typeset nil and t in texinfo + f050b9c5033 Fix Tramp IPv6 handling in tests + 46b192c04b1 Update to Org 9.7.8-5-gfdf0e0 + 87f41b937bc Fix Ftreesit_parser_create + +2024-07-24 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + c66bda1a19a Improve treesit-node-child-by-field-name docstring + 85773ab9771 Minor copyedits in tree-sitter starting guide + 2dacec1609a Update tag for prebuilt tree-sitter grammars + 68615a38669 Fix punctuation and doc style in treesit.c + 00adee897ac ; Fix punctuation in docs + ab29b28d4ba Fix DocView with PostScript files + +2024-07-23 Juri Linkov <juri@linkov.net> + + * lisp/isearch.el: Exit Isearch after deleting the frame (bug#41338). + + (isearch-mode): Add 'isearch-done' to 'delete-frame-functions'. + (isearch-done): Remove 'isearch-done' from 'delete-frame-functions'. + +2024-07-23 Juri Linkov <juri@linkov.net> + + * lisp/isearch.el: Preserve original value of overriding-terminal-local-map. + + (isearch--saved-local-map): New variable (bug#72229). + (isearch-mode): Set isearch--saved-local-map to + overriding-terminal-local-map. + (isearch-done): Set overriding-terminal-local-map back to + isearch--saved-local-map. + (isearch-mouse-2): Let-bind overriding-terminal-local-map to + isearch--saved-local-map. + (isearch-done): Move comment intended to be docstring to docstring. + +2024-07-23 Po Lu <luangruo@yahoo.com> + + Better reproduce mouse event coalescence during touch event translation + + * lisp/touch-screen.el (touch-screen-handle-touch): Save the + confines of the current mouse glyph before initiating simple + translation. + +2024-07-23 Visuwesh <visuweshm@gmail.com> + + Don't highlight matches in dired query-replace commands + + * lisp/dired-aux.el (dired-do-query-replace-regexp) + (dired-do-replace-regexp-as-diff) + (dired-do-find-regexp-and-replace): Turn off lazy highlighting + when reading the regexp from the user to avoid highlighting + regexp matches in the dired buffer. (bug#72147) + +2024-07-23 Stefan Kangas <stefankangas@gmail.com> + + * src/comp.c (obj_to_reloc): Use eassume. + +2024-07-22 Stefan Kangas <stefankangas@gmail.com> + + Use SBYTES instead of strlen in treesit.c + + * src/treesit.c (treesit_ensure_query_compiled) + (Ftreesit_node_child_by_field_name, treesit_initialize_query): + Use SBYTES instead of strlen. + +2024-07-22 Po Lu <luangruo@yahoo.com> + + Prohibit unbinding of built-in variables + + * src/data.c (set_internal): Signal error if a BLV with a + redirect or a forwarded symbol is being unbound. + + * test/src/data-tests.el (binding-test-makunbound-built-in): New + test. + +2024-07-22 Yuan Fu <casouri@gmail.com> + + Fix segfault when deleting tree-sitter query (bug#72238) + + * src/treesit.c (treesit_delete_query): Only delete query and cursor + when they are non-NULL. + +2024-07-21 Theodor Thornhill <theo@thornhill.no> + + Add link to commit compatibility function handles + + * lisp/progmodes/typescript-ts-mode.el + (tsx-ts-mode--indent-compatibility-b893426): Add link to GitHub. + +2024-07-21 Theodor Thornhill <theo@thornhill.no> + + Improve one test (bug#71998) + + * test/lisp/progmodes/typescript-ts-mode-resources/indent.erts (Name): + Add pre-indent state. + +2024-07-21 Theodor Thornhill <theo@thornhill.no> + + Signal error on wrong typescript dialect + + * + lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode-wrong-dialect-error): + New error. + + * + lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode--check-dialect): + Helper function. + + * + lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode--indent-rules, + tsx-ts-mode--font-lock-compatibility-bb1f97b, + tsx-ts-mode--font-lock-compatibility-function-expression, + tsx-ts-mode--font-lock-compatibility-function-expression, + typescript-ts-mode--font-lock-settings): Use the new helper. + +2024-07-21 Michael Albinus <michael.albinus@gmx.de> + + * lisp/progmodes/go-ts-mode.el (go-ts-mode-build-tags): Fix :version. + +2024-07-21 Ankit R Gadiya <git@argp.in> + + Add commands to run unit tests in 'go-ts-mode' + + * lisp/progmodes/go-ts-mode.el (go-ts-mode-build-tags): New variable. + (go-ts-mode-map): Add new bindings. + (go-ts-mode--get-build-tags-flag, go-ts-mode--compile-test) + (go-ts-mode--find-defun-at, go-ts-mode--get-function-regexp) + (go-ts-mode--get-functions-in-range) + (go-ts-mode--get-test-regexp-at-point) + (go-ts-mode-test-function-at-point, go-ts-mode-test-this-file) + (go-ts-mode-test-this-package): New functions. + + * etc/NEWS: Mention the change. + + (Bug#70939) + +2024-07-21 Paul Eggert <eggert@cs.ucla.edu> + + Fix bool vector length overflow + + * src/alloc.c (make_clear_bool_vector): It’s now the caller’s + responsibility to make sure the bool vector length is in range. + Add an eassert to double-check this. This lets some locals be + ptrdiff_t not EMACS_INT. + (Fmake_bool_vector, Fbool_vector): + Check that bool vector lengths are in range. + * src/lisp.h (BOOL_VECTOR_LENGTH_MAX): New macro. + (bool_vector_words, bool_vector_bytes): Avoid undefined + behavior if size == EMACS_INT_MAX - (BITS_PER_BITS_WORD - 1). + This is mostly theoretical but it’s easy to do it right. + * src/lread.c (read_bool_vector): Use EMACS_INT, not just ptrdiff_t. + Check that length doesn’t exceed BOOL_VECTOR_LENGTH_MAX. + This fixes an unlikely integer overflow where the calculated size + went negative. + +2024-07-21 Paul Eggert <eggert@cs.ucla.edu> + + Change list-length intptr_t to ptrdiff_t + + * src/fns.c (list_length, Fsafe_length, Fproper_list_p): + Use ptrdiff_t not intptr_t for accumulator, since result is ptrdiff_t. + This fixes a minor glitch in 2019-01-11T05:35:31!eggert@cs.ucla.edu + where I removed unnecessary overflow checks but forgot to change types. + This change should alter generated code only on oddball platforms where + ptrdiff_t is narrower than intptr_t, e.g., CheriBSD. + +2024-07-20 Yuan Fu <casouri@gmail.com> + + Support dumping tree-sitter query (bug#69952) + + Previous commit allows Emacs to dump tree-sitter queries by simply + dumping the query string and language symbol, and left the query object + and cursor object as NULL. This commit makes sure Emacs doesn't crash + when loading the dumped query, by make sure Emacs can handle the case + where the cursor is NULL. + + * src/treesit.c (make_treesit_query): Initialize query with null cursor. + (treesit_ensure_query_cursor): New function. + (treesit_initialize_query): Ensure cursor is non-null. + * src/treesit.h (Lisp_TS_Query): Update documentation. + +2024-07-20 Sergey Vinokurov <serg.foo@gmail.com> + + Support compiled queries in pdump by dumping source (bug#69952) + + * src/pdumper.c (dump_vectorlike): Dump compiled queries. + * src/pdumper.c (dump_treesit_compiled_query): New function. + +2024-07-20 Paul Eggert <eggert@cs.ucla.edu> + + SAFE_ALLOCA fixes + + * src/comp.c (declare_imported_func, emit_simple_limple_call) + (declare_lex_function, compile_function): + * src/emacs-module.c (funcall_module): + * src/fns.c (Fstring_distance): + * src/font.c (font_sort_entities): + * src/haikumenu.c (digest_menu_items, haiku_menu_show): + * src/pgtkselect.c (Fpgtk_register_dnd_targets): + * src/xfns.c (Fx_begin_drag): + * src/xmenu.c (x_menu_show): + * src/xterm.c (x_dnd_compute_toplevels, handle_one_xevent) + (x_term_init): + Prefer SAFE_NALLOCA to doing size multiplication by hand, to catch + unlikely integer overflows. + * src/comp.c (emit_simple_limple_call): Fix bug where + SAFE_FREE was called too early, leading to unlikely + use of freed storage. + * src/xterm.c (handle_one_xevent): Remove side effects + from SAFE_ALLOCA args, as the args are evaluated twice. + +2024-07-20 Stefan Kangas <stefankangas@gmail.com> + + Avoid magic values in xfont_list + + * src/xfont.c (xfont_list): Avoid magic values. + +2024-07-20 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + 816c53c2d9d Fix bibtex validation for non-file buffers + ab7c40ea52a Fix Imenu in 'emacs-news-view-mode' + ea30ffc52b3 ; * doc/misc/gnus.texi (Agent Caveats): Fix doc + 07b1a36f78c ; * src/sqlite.c (Fsqlite_load_extension): Add "vec0" to ... + 96f1db89ee7 Avoid errors in 'icomplete-vertical-mode' + 55110d1fda2 Document GNU ELPA copyright in tips.texi + 079e5a03156 Improve register-use-preview docstring + e4760109ac8 Miscellaneous checkdoc fixes + +2024-07-20 Paul Eggert <eggert@cs.ucla.edu> + + Avoid accessing uninitialized bool_vector words + + Although loading uninitialized works from memory and then ignoring + the result works fine on conventional architectures, it + technically has undefined behavior in C, so redo bool_vector + allocation so that the code never does that. This can improve + performance when allocating large vectors of nil, since calloc can + clear the memory lazily. + * src/alloc.c (make_clear_bool_vector): New function, + a generalization of make_uninit_bool_vector. + (make_uninit_bool_vector): Use it. + (Fmake_bool_vector): If !INIT, rely on make_clear_bool_vector. + * src/alloc.c (Fbool_vector): + * src/fns.c (Freverse): Don’t access uninitialized bool_vector words. + +2024-07-20 Eli Zaretskii <eliz@gnu.org> + + Fix setup of fonts for 'han' script. + + * lisp/international/fontset.el (script-representative-chars): Add + more CJK representative characters to 'han' script. (Bug#72188) + +2024-07-20 Po Lu <luangruo@yahoo.com> + + Fix compilation on builds with native rectangle structures + + * src/androidgui.h (CONVERT_TO_NATIVE_RECT) + (CONVERT_FROM_EMACS_RECT): Delete redundant macro definitions. + + * src/xdisp.c (Fremember_mouse_glyph) [CONVERT_TO_EMACS_RECT]: + Expand CONVERT_TO_EMACS_RECT to convert native rectangles into + a readable format if required. Reported by Stefan Kangas + <stefankangas@gmail.com>. + +2024-07-20 Po Lu <luangruo@yahoo.com> + + Respect mouse-fine-graned-tracking in touch screen simple translation + + * lisp/touch-screen.el (touch-screen-current-tool): Expand doc + string. + (touch-screen-handle-point-update): Record extents of glyph + beneath the mouse as computed by `remember_mouse_glyph' if + necessary, and defer generation of mouse-movement events till + the mouse exit it. + + * src/xdisp.c (Fremember_mouse_glyph): New function. + (syms_of_xdisp): Define new subr. + +2024-07-19 Paul Eggert <eggert@cs.ucla.edu> + + Work around GCC bug 58416 on 32-bit x86 + + * configure.ac (C_SWITCH_MATCHINE): On 32-bit x86 with GCC 4+, + append -mfpmath=sse (if SSE2 is known to work) or -fno-tree-sra + (otherwise) to work around GCC bug 58416. + * etc/NEWS: Mention this. + +2024-07-19 Paul Eggert <eggert@cs.ucla.edu> + + In ‘INSTALL’ put configure vars in one section + + * INSTALL: Move description of CFLAGS etc. into the section headed + “Here is a complete list of the variables you may want to set” + since they are also variables one might want to set. + +2024-07-19 Stefan Monnier <monnier@iro.umontreal.ca> + + Merge from origin/emacs-30 + + a478423d19f * lisp/progmodes/peg.el (peg-syntax-classes): Typo (bug#7... + 951fb93956d * lisp/transient.el (static-if): Remove duplicated defini... + 0218fb21437 Adapt file-remote-p doc + 34c1094e607 ; Fix typo in etc/ORG-NEWS (Bug#72186) + 5916b172bdc * etc/TODO: Delete item about merging Magit. + a6cab228d4d ; Fix typos + 41dc28244f2 * doc/man/emacs.1.in: Add "No warranty" notice. + b2ac3435867 ; * doc/man/emacs.1.in: Improve wording. + 110b3d08d73 Improve emacs man page description of --user flag + 4911f08912a Checkdoc fixes in allout-widgets.el + 109b592d77b Checkdoc fixes in subr.el + 46436720787 Checkdoc fixes in touch-screen.el + 9889774c62e Checkdoc fixes in treesit.el + + # Conflicts: + # etc/NEWS + +2024-07-19 Jim Porter <jporterbugs@gmail.com> + + Don't set exit info in Eshell if the command is being piped elsewhere + + Previously, the exit info in Eshell was that of the last command that + finished, rather than the last command in a pipeline. + + * lisp/eshell/esh-cmd.el (eshell-exec-lisp) + (eshell-lisp-command): Check whether the command is being piped. + + * lisp/eshell/esh-proc.el (eshell-gather-process-output): Record whether + the command is being piped... + (eshell-sentinel): ... and do the right thing with that info. + + * test/lisp/eshell/esh-proc-tests.el + (esh-proc-test/sigpipe-exits-process): Check the exit status to ensure + we don't report the first process's SIGPIPE exit. + +2024-07-19 Jim Porter <jporterbugs@gmail.com> + + Split out exit code parts of 'eshell-close-handles' into a new function + + * lisp/eshell/esh-cmd.el (eshell-last-command-status) + (eshell-last-command-result): Move here from esh-io.el. + (eshell-set-exit-info): New function, extracted from + 'eshell-close-handles'. + + * lisp/eshell/esh-io.el (eshell-close-handles): Make old calling + convention obsolete. Update callers to use 'eshell-set-exit-info' as + needed. + +2024-07-19 Philip Kaludercic <philipk@posteo.net> + + * lisp/which-key.el: Bump version to 3.6.1 + + This is necessary to trigger a new ELPA release. + +2024-07-19 Peder O. Klingenberg <peder@klingenberg.no> + + Visualize ranking of last game when adding scores + + * lisp/play/gamegrid.el (gamegrid-add-score-insecure): Move point to + the score just added, or end of buffer if the new score did not make + the list. This makes it easier to see where the last game + ranked. (Bug#72185) + +2024-07-18 Jim Porter <jporterbugs@gmail.com> + + Allow specifying stdout/stderr separately in some Eshell commands + + * lisp/eshell/eshell.el (eshell-command): Add ERROR-TARGET. + * lisp/eshell/em-script.el (eshell-execute-file): Make interactive, and + add ERROR-TARGET. + + * doc/misc/eshell.texi (One-Off Commands, Scripts): Update + documentation. + + * etc/NEWS: Announce this change. + +2024-07-18 Jim Porter <jporterbugs@gmail.com> + + Improve implementation of built-in Eshell "kill" command + + * lisp/eshell/esh-proc.el (eshell/kill): Fix handling of commands like + "kill 123". Use REMOTE when signalling PIDs in remote directories. + Signal using process objects when possible. Report errors when failing + to signal. + + * test/lisp/eshell/esh-proc-tests.el (esh-proc-test/kill/process-id) + (esh-proc-test/kill/process-object): New tests (bug#72013). + +2024-07-18 Jim Porter <jporterbugs@gmail.com> + + Handle broken pipes in a better way in Eshell + + * lisp/eshell/esh-proc.el (eshell-insertion-filter): Send SIGPIPE + delaying for Tramp and falling back to SIGTERM for MS-Windows + (bug#72117). + +2024-07-18 Jim Porter <jporterbugs@gmail.com> + + Improve handling of deferrable Eshell commands + + Now, we use the 'eshell-deferrable' wrapper to wrap a form that returns + a process (or list thereof). This improves upon the old method, which + failed to handle 'eshell-replace-command' correctly. In that case, + Eshell would fail to unmark commands as deferrable when necessary + (e.g. for commands in pipelines). + + * lisp/eshell/esh-cmd.el (eshell-deferrable-commands): Make into a + defvar. + (eshell-deferrable): New function... + (eshell-structure-basic-command): ... use it. + (eshell-trap-errors): Rename to... + (eshell-do-command): ... this, and use 'eshell-deferrable'. Update + callers. + (eshell--unmark-deferrable): Remove. Update callers. + (eshell-execute-pipeline): Remove 'eshell-process-identity'. + (eshell-process-identity, eshell-named-command*, eshell-lisp-command*): + Make obsolete. + + * test/lisp/eshell/esh-cmd-tests.el (eshell-test-replace-command): New + function. + (esh-cmd-test/pipeline/replace-command): New test. + +2024-07-18 Stefan Kangas <stefankangas@gmail.com> + + Fix minor code style issue in pgtkfns.c + + * src/pgtkfns.c (pgtk_get_defaults_value) + (pgtk_set_defaults_value): Fix code style. + +2024-07-18 Stefan Kangas <stefankangas@gmail.com> + + Avoid overflow in pgtk_is_numeric_char + + * src/pgtkfns.c (PATH_MAX_LEN): New macro. + (parse_resource_key): Avoid overflow if a key is RESOURCE_KEY_MAX_LEN + long by making the array larger. + +2024-07-18 Stefan Kangas <stefankangas@gmail.com> + + Use strnlen to avoid unnecessary work in pgtkfns.c + + * src/pgtkfns.c (pgtk_get_defaults_value, pgtk_set_defaults_value): + Factor out new function... + (pgtk_check_resource_key_length): ...to here. Avoid unnecessary work by + using strnlen. + +2024-07-18 Eli Zaretskii <eliz@gnu.org> + + Minor cleanup of code in insdel.c + + * src/insdel.c (del_range_2): Update *_BYTE variables _after_ + updating the corresponding character values. This follows what we + do everywhere else, and allows to put a watchpoint on, say, Z_BYTE + to check consistency between the character and byte counts. See + bug#72165 for one situation where it is useful. + +2024-07-18 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 4c35382e983 ; * src/emacs.c (syms_of_emacs) <Vsystem_type>: Fix doc s... + 34882d52432 Port better to Android 3.0 + 765cfaed775 ; * doc/emacs/anti.texi (Antinews): Fix typos (bug#72167). + 7093504da2d ; Fix typos (bug#72167) + 8c7c4f4baaa New Tramp tests + 85d2d7982d4 Update Tramp manual + 504bdd560af ; Fix last change + 3ccebbe17b7 Fix 'toggle-window-dedicated' documentation + 719d5753ca6 ; * doc/lispref/help.texi (Keys in Documentation): Add cr... + e3bba63ecb9 Checkdoc fixes in transient.el + +2024-07-17 Paul Eggert <eggert@cs.ucla.edu> + + Go back to preferring -isystem to -I + + * configure.ac: Go back to preferring -isystem to -I, + as headers like <gobject/gparam.h> still need it. This + reverts almost all of 2024-07-16T02:25:44!eggert@cs.ucla.edu, + except that the ‘nw="$nw -Wsystem-headers"’ line continues to + be removed as it is no longer needed due to recent Gnulib changes. + Problem reported by Eli Zaretskii in: + https://lists.gnu.org/r/emacs-devel/2024-07/msg00756.html + +2024-07-17 Robert Pluim <rpluim@gmail.com> + + Add history variables for find-func entry points + + * lisp/emacs-lisp/find-func.el (find-function--read-history-library): + New defvar. + (read-library-name): Use it in 'completing-read' calls. + (find-function--read-history-function, + find-function--read-history-variable, find-function--read-history-face): + New defvars. + (find-function-read): Use them in 'completing-read' calls. + +2024-07-17 Yuan Fu <casouri@gmail.com> + + Handle an edge case in c-ts-mode filling (bug#72116) + + * lisp/progmodes/c-ts-common.el: + (c-ts-common-comment-setup): Add a new regexp branch. + +2024-07-17 João Távora <joaotavora@gmail.com> + + Eglot: supported nested {} patterns in globs + + The tailwindcss-language server issues patterns like this: + + **/{tailwind,tailwind.config,tailwind.*.config,\ + tailwind.config.*}.{js,cjs,ts,mjs} + + Notive the nested "*" blob inside the the {} group. + + Eglot used to reject them in 'workspace/didChangeWatchedFiles' requests, + responding with "Internal Error". This could confuse some servers. Now + I've done some changes to the state machine generation and it supports + them. + + * lisp/progmodes/eglot.el (eglot--glob-parse): Relax parser. + (eglot--glob-fsm): New helper. + (eglot--glob-compile, eglot--glob-emit-{}): Use it. + + * test/lisp/progmodes/eglot-tests.el (eglot-test-glob-test): + Uncomment some test cases. + + Github-reference: https://github.com/joaotavora/eglot/issues/1403 + +2024-07-16 Paul Eggert <eggert@cs.ucla.edu> + + Check for more ‘find’ failures and port ‘find’ + + * Makefile.in (install-eln), configure.ac (emacs_cv_find_delete): + * make-dist: Use ‘find ... -exec CMD {} +’ rather than ‘find + ... -exec CMD {} \;’ so that if CMD fails, ‘find’ fails too. + * Makefile.in (install-eln): Port to ‘find’ implementations that + behave differently from GNU ‘find’ when given an argument + that contains ‘{}’ within a longer string. POSIX allows + this behavior. + +2024-07-16 Paul Eggert <eggert@cs.ucla.edu> + + Quote BIN_DESTDIR better + + * Makefile.in (BIN_DESTDIR, install-eln, uninstall): + * src/Makefile.in ($(pdmp)): + Be more consistent about quoting BIN_DESTDIR and ELN_DESTDIR, + avoiding double-quoting ''like this'' which does not work as + expected. + +2024-07-16 Paul Eggert <eggert@cs.ucla.edu> + + Prefer -I to -isystem + + * configure.ac: Simplify configuration by using -I instead of + -isystem, as -isystem is no longer helpful for suppressing + diagnostics (and likely has not been helpful for years). + Do not suppress -Wsystem-headers, as Gnulib no longer enables it. + +2024-07-16 Paul Eggert <eggert@cs.ucla.edu> + + Simplify time form analysis + + This does not change behavior; it merely refactors the code + for simplicity. + * src/timefns.c (enum timeform, struct form_time): + Remove. All uses removed. + (decode_time_components): Accept HZ instead of FORM. + This saves a switch. All uses changed. + (decode_lisp_time): Return union c_time instead of struct form_time. + All uses changed. + (lisp_time_cform): Remove. All uses changed to just use + decode_lisp_time. + (time_arith, Ftime_convert): Check (TICKS . HZ) form directly + using CONSP, instead of using the old struct form_time. + That's fast enough here. + +2024-07-16 Paul Eggert <eggert@cs.ucla.edu> + + Test !FASTER_TIMEFNS with builtin resolutions + + * src/timefns.c (timespec_hz, trillion, ztrillion): + If !FASTER_TIMEFNS, do not optimize the calculations of + these variables. This gives better test coverage of the + slow-path code, when compiling with -DFASTER_TIMEFNS=0. + (NEED_ZTRILLION_INIT): Move up, to simplify #ifdefery. + Now defined or not defined, instead of being 1 or not defined, + since it is used only via #ifdef. + +2024-07-16 Paul Eggert <eggert@cs.ucla.edu> + + Make ztrillion static + + * src/timefns.c (ztrillion): Now static, when it is a variable, + since no other module uses it. + +2024-07-16 Paul Eggert <eggert@cs.ucla.edu> + + Fix buffer size problem in print_bool_vector + + * src/print.c (print_bool_vector): Don’t assume SIZE fits + into ptrdiff_t, since it is an EMACS_INT. This + pacifies gcc -Wformat-overflow on i686 --with-wide-int. + +2024-07-16 Paul Eggert <eggert@cs.ucla.edu> + + alloc.c: ckd_add, not by-hand checks + + * src/alloc.c (lmalloc, lrealloc): Prefer ckd_add to + by-hand checks for integer addition overflow. + +2024-07-16 Paul Eggert <eggert@cs.ucla.edu> + + Fix get_conversion_field --with-wide-wint overflow + + * src/textconv.c (get_conversion_field): Set max value to + PTRDIFF_MAX, not MOST_POSITIVE_FIXNUM, since the variable is + ptrdiff_t, not EMACS_INT. Problem caught by gcc -Woverflow on a + 32-bit platform with --with-wide-int. + +2024-07-16 Paul Eggert <eggert@cs.ucla.edu> + + Pacify -Wmissing-variable-declarations for lisp_malloc_user + + * src/alloc.c (lisp_malloc_user) [!USE_LSB_TAG]: + Provide extern decl. + +2024-07-16 Paul Eggert <eggert@cs.ucla.edu> + + Pacify 32-bit GCC 14.1.1 in timer_check_2 + + * src/keyboard.c (timer_check_2): Refactor to make flow control + more obvious, to pacify -Wanalyzer-use-of-uninitialized-value with + gcc 14.1.1 20240607 (Red Hat 14.1.1-5) on i686. + +2024-07-16 Paul Eggert <eggert@cs.ucla.edu> + + Use Gnulib workaround for Android strnlen bug + + The workaround for the Android 5.0 (API 21) strnlen bug + is now done in m4/strnlen.m4, taken from Gnulib, so + there is no need for Emacs to have its own workaround. + * configure.ac (ORIGINAL_AC_FUNC_STRNLEN, AC_FUNC_STRNLEN): + Remove. + +2024-07-16 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + +2024-07-16 Michael Albinus <michael.albinus@gmx.de> + + Adapt tressitter tests on EMBA + + * test/infra/Makefile.in (TREE-SITTER-FILES): Simplify. + + * test/infra/test-jobs.yml: Regenerate. + +2024-07-16 Stefan Kangas <stefankangas@gmail.com> + + Make error messages adhere to our standards + + * src/cygw32.c (chdir_to_default_directory): + * src/fns.c (secure_hash): + * src/keyboard.c (Finternal_handle_focus_in): + * src/keymap.c (store_in_keymap): + * src/pgtkfns.c (pgtk_set_scroll_bar_foreground) + (pgtk_set_scroll_bar_background, Fx_export_frames) + (Fpgtk_set_monitor_scale_factor, pgtk_get_defaults_value) + (pgtk_set_defaults_value, Fpgtk_print_frames_dialog) + (pgtk_get_monitor_scale_factor): + * src/pgtkterm.c (pgtk_set_parent_frame): + * src/process.c (network_interface_info, send_process): + * src/w32.c (w32_read_registry): + * src/w32fns.c (Fw32_read_registry): + * src/window.c (Frecenter): + * src/xfns.c (Fx_export_frames, Fx_print_frames_dialog) + (x_set_mouse_color): Make 'error' message strings follow our guidelines. + More specifically, they should not end in a period, and normally also be + capitalized. See '(elisp) Programming Tips'. + +2024-07-16 Po Lu <luangruo@yahoo.com> + + Merge remote-tracking branch 'savannah/master' into master-android-1 + +2024-07-16 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + a7b68c25640 Fix intermittent failure of dired-test-bug27243-02 + fc25b4d8370 * etc/TODO: Refer to Bug#72127 for Magit assignments. + 17c62c1242f Rename treesitter test + +2024-07-16 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 68b7806c319 Support passing signals like 'SIGCODE' to 'tramp-signal-p... + 510ca5e84b5 Merge branch 'emacs-30' of git.sv.gnu.org:/srv/git/emacs ... + fe28ba5d55b ; Replace quotes with @code{...} in texinfo files + ecc8516d9ca ; Replace (non-)nil with (non-)@code{nil} in texinfo files + 3407e274999 Don't save to history from 'eshell-command' when aborting + +2024-07-16 Stefan Kangas <stefankangas@gmail.com> + + Delete commented out code from `signal_or_quit` + + * src/eval.c (signal_or_quit): Delete code commented out since 2001. + +2024-07-16 Stefan Kangas <stefankangas@gmail.com> + + Prefer `memcpy` to `strcpy` in image.c + + * src/image.c (lookup_image, xpm_cache_color) + (imagemagick_create_cache): Prefer 'memcpy' to 'strcpy'. + +2024-07-16 Stefan Kangas <stefankangas@gmail.com> + + Restrict loop variable scope in `xpm_str_to_color_key` + + * src/image.c (xpm_str_to_color_key): Restrict scope of + loop variable. + +2024-07-16 Spencer Baugh <sbaugh@janestreet.com> + + Add project argument to project-kill-buffers + + Previously, project-kill-buffers always called (project-current t). A + Lisp program could change what project project-kill-buffers operated + on by binding project-current-directory-override. However, in some + edge cases (for example, if the project was deleted between looking it + up and calling project-kill-buffers) this might fail to detect a + project, and so (project-current t) would prompt the user. + + To avoid this, accept the project to kill buffers for as an argument. + + * lisp/progmodes/project.el (project-kill-buffers): Take project as an + optional argument (bug#72019). + +2024-07-15 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 5ec73eca57c Update to Org 9.7.7-2-gf308d3 + 33ba72f52fd Fix decoding 'display' properties with SVG images in Enri... + 174a0b7642b * configure.ac (D8): Fix typo. + c56e837a10e ; * src/android.c (setEmacsParams): Delete unused variable. + +2024-07-15 Michael Albinus <michael.albinus@gmx.de> + + Extend treesitter tests on emba + + * test/infra/Dockerfile.emba (emacs-tree-sitter): Install c-ashrp + grammar. + + * test/infra/Makefile.in (TREE-SITTER-FILES): Add csharp-mode-tests.el. + (tree-sitter-files): Rename from tree-sitter-files-template. + Generate .tree-sitter-files. + + * test/infra/gitlab-ci.yml (test-tree-sitter): Extend .tree-sitter-files. + + * test/infra/test-jobs.yml: Regenerate. + +2024-07-14 Eli Zaretskii <eliz@gnu.org> + + Improve support for Tifinagh + + * lisp/international/fontset.el (script-representative-chars) + (setup-default-fontset): Add support for Tifinagh. + +2024-07-14 Mattias Engdegård <mattiase@acm.org> + + Further time decoding tidying + + * src/timefns.c (enum timeform): Reorder. + (decode_time_components, decode_lisp_time): Simplify and clean up. + +2024-07-14 Eli Zaretskii <eliz@gnu.org> + + Minor improvement in 'rmail-redecode-body' + + * lisp/mail/rmail.el (rmail-redecode-body): Signal user-error if + 'rmail-enable-mime' is non-nil; doc fix. + +2024-07-14 Paul Eggert <eggert@cs.ucla.edu> + + Minor renaming in timefns.c + + * src/timefns.c (current_time_in_cform): Rename this static + function from current_time_in_form, since this is about enum cform + not enum timeform. Use changed. + +2024-07-14 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + b00fc31dd1d Do not set LD_LIBRARY_PATH during Android initialization + 04bf3172f03 ; Set Transient's version + e6f78485aa6 ; Fix typos in 'which-key-mode' (bug#72093) + +2024-07-13 Jim Porter <jporterbugs@gmail.com> + + Treat SVG images like other image types in 'shr-put-image' + + For both SVG and no-SVG builds, this works as expected (in the no-SVG + case, it would raise an error which subsequently gets ignored). + However, compared to the previous implementation, this lets users resize + SVG images just like every other image type (bug#71913). + + * lisp/net/shr.el (shr-put-image): Don't special-case SVGs. + +2024-07-13 Eli Zaretskii <eliz@gnu.org> + + Fix renaming symlinks on MS-Windows + + * src/w32.c (sys_rename_replace): Handle renames of a symlink. + This makes 'wdired-tests' succeed on MS-Windows. + +2024-07-13 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + a6c78ccf5f2 ; * src/w32fns.c (Fw32_notification_close): Fix typo (bug... + febafe37884 * test/lisp/wdired-tests.el (wdired-test-bug34915): Fix f... + 846b79b6d02 Fix 'wdired-test-unfinished-edit-01' + bc154cba130 ; * src/search.c (Fre_search_forward): Clarify doc string... + 53291e3d46e Fontify destructor in c++-ts-mode + d77f8a34750 Fix invalid defcustom type for erc-buffers option + d68a4ea3ec6 ; Fix 'ibuffer-do-isearch{-regexp}' + 8b1a0f8695a Fix infloop in 'shell-resync-dirs' + ce13eee5ab7 ; * src/image.c (free_image_cache): Add assertion. (Bug#... + +2024-07-13 Vincenzo Pupillo <vincenzo.pupillo@unimi.it> + + Fontify doxygen support to 'c-ts-mode', 'c++-ts-mode' and 'java-ts-mode' + + Add doxygen support to 'c-ts-mode', 'c++-ts-mode' and + 'java-ts-mode' using tree-sitter-doxygen from + github.com/tree-sitter-grammars. + * lisp/progmodes/c-ts-common.el + (c-ts-mode-doxygen-comment-font-lock-settings): Add font locking + rules for doxygen comment. + + * lisp/progmodes/c-ts-mode.el (c-ts-mode--feature-list): Add + 'document' feature. + (c-ts-mode--doxygen-comment-regex): New regular expression for + doxygen comments. + (c-ts-mode, c++-ts-mode): Add support for doxygen parser. + * lisp/progmodes/java-ts-mode.el (java-ts-mode): Add support for + doxygen parser. (Bug#71874) + +2024-07-13 Mattias Engdegård <mattiase@acm.org> + + Simplify timestamp decoding + + * src/timefns.c (current_time_in_form, time_spec_invalid): New. + (enum timeform): Remove TIMEFORM_INVALID. + (decode_time_components): Move handling of TIMEFORM_INVALID, + TIMEFORM_TICKS_HZ and TIMEFORM_NIL... + (decode_lisp_time): ...here, avoiding the detour. + +2024-07-12 Juri Linkov <juri@linkov.net> + + * lisp/gnus/mm-uu.el (mm-uu-type-alist): Fix end-regexp of git-format-patch. + + Replace git-format-patch end-regexp "^-- " with "^$". + The regexp "^-- " was intended to mark the end + of the git-formatted patch. However, git-format-patch + can produce patches without a signature. Also often + patches are just copy-pasted from the output of 'C-x v d'. + Therefore, now an empty line marks the end of the patch + since properly formatted patches don't contain an empty line + and properly configured MUAs don't strip whitespace from patches. + Suggested by Luis Henriques <henrix@camandro.org> and + Kévin Le Gouguec <kevin.legouguec@gmail.com> in bug#72059. + +2024-07-12 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + b22ab99f0a8 Render more Android functions safe to execute in a batch ... + +2024-07-12 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + a5ef9e25680 Document means of executing Emacs from unrelated Android ... + 0de0056fd6b Don't emit a prompt in Eshell when a background command i... + ec1e300a215 Fix reference from buffer-stale-function docstring + +2024-07-11 Andrea Corallo <acorallo@gnu.org> + + Add a type-check--optim test + + * test/src/comp-tests.el (comp-tests-type-branch-optim-checker): New function. + (comp-tests-type-branch-optim): Add new test. + +2024-07-11 Andrea Corallo <acorallo@gnu.org> + + Some clean-up in comp-tests.el + + * test/src/comp-tests.el (comp-tests-cond-rw-checked-function) + (comp-tests-cond-rw-checker-val) + (comp-tests-cond-rw-expected-type) + (comp-tests-cond-rw-checker-type): Remove. + +2024-07-11 Andrea Corallo <acorallo@gnu.org> + + Fix 'comp--type-check-optim-block' it using 'comp-cstr-type-p' + + * lisp/emacs-lisp/comp.el (comp--type-check-optim-block): Better + condition. + +2024-07-11 Andrea Corallo <acorallo@gnu.org> + + Generalize 'comp-cstr-symbol-p' + + * lisp/emacs-lisp/comp-cstr.el (comp-cstr-symbol-p): Make use of + 'comp-cstr-type-p'. + +2024-07-11 Andrea Corallo <akrl@sdf.org> + + Add 'comp-type-check-optim' pass + + * lisp/emacs-lisp/comp.el (comp-passes): Add 'comp--type-check-optim'. + (comp--type-check-optim-block, comp--type-check-optim): New functions. + +2024-07-11 Andrea Corallo <acorallo@gnu.org> + + Split 'comp--ssa' code + + * lisp/emacs-lisp/comp.el (comp--ssa-function): New function. + (comp--ssa): Update. + +2024-07-11 Paul Eggert <eggert@cs.ucla.edu> + + Rename timefns static function lisp_time_struct + + * src/timefns.c (lisp_time_cform): Rename from lisp_time_struct, + since it no longer returns a struct, and now accepts CFORM. + All uses changed. + +2024-07-11 Paul Eggert <eggert@cs.ucla.edu> + + Avoid mpz for some common timestamp cases + + Performance problem reported by Gerd Möllmann and Mattias Engdegård in: + https://lists.gnu.org/r/emacs-devel/2024-06/msg00530.html + https://lists.gnu.org/r/emacs-devel/2024-06/msg00539.html + * src/timefns.c (CFORM_SECS_ONLY): The exact tv_nsec value is now + ignored if nonnegative (i.e., the only thing that matters is that + it’s nonnegative). + (decode_time_components): Use intmax_t instead of mpz arithmetic + if the tick count fits. Add another ‘default: eassume (false);’ + so that the revised code pacifies --enable-gcc-warnings with GCC + 11.4.0 on x86-64. + +2024-07-11 Paul Eggert <eggert@cs.ucla.edu> + + Decode current time directly to timespec + + * src/timefns.c (decode_time_components): If FASTER_TIMEFNS, when + returning the current time and the desired form is struct timespec + or time_t, return it directly rather than converting it to struct + ticks_hz and then to struct timespec. This can avoid some mpz + calculations and/or bignums. + +2024-07-11 Paul Eggert <eggert@cs.ucla.edu> + + In timefns.c avoid by-hand overflow checking + + Prefer functions like ckd_add to do overflow checking, instead of + doing it by hand, to simplify and I hope to make things a bit less + error prone. + * src/timefns.c (TIME_T_MIN, TIME_T_MAX): Remove. All by-hand + overflow checking replaced with calls to ckd_add or ckd_mul. + (s_ns_to_timespec): New static function, that uses ckd_add + instead of by-hand overflow checking. + (ticks_hz_to_timespec): Use it. + (check_tm_member): Use mpz_fits_sint_p and mpz_get_si rather + than mpz_to_intmax and by-hand overflow checking. + +2024-07-11 Paul Eggert <eggert@cs.ucla.edu> + + Optimize smallish mpz to native int conversion + + * src/bignum.c (make_integer_mpz, mpz_to_intmax): + If FASTER_BIGNUM, optimize the common case where the value fits in + long int. In this case we can use mpz_fits_slong_p and mpz_get_si + instead of looping with mpz_getlimbn. + (mpz_to_uintmax): Likewise for unsigned long int and mpz_get_ui. + +2024-07-11 Paul Eggert <eggert@cs.ucla.edu> + + New FASTER_BIGNUM macro to test slow-path code + + * src/bignum.h (FASTER_BIGNUM): New macro. + (mpz_set_intmax, mpz_set_uintmax): Optimize only if FASTER_BIGNUM. + Also, use ckd_add to test for overflow instead of doing it by hand. + +2024-07-11 Paul Eggert <eggert@cs.ucla.edu> + + In timefns, call natnump only for non-fixnums + + * src/timefns.c (decode_time_components): Call Fnatnump only + for non-fixnums, as we need to special-case 0 anyway. + +2024-07-11 Paul Eggert <eggert@cs.ucla.edu> + + In timefns, do gcd reduction more often + + * src/timefns.c (ticks_hz_hz_ticks): Reduce by gcd + even if t.ticks is not a fixnum, since that’s easy. + +2024-07-11 Paul Eggert <eggert@cs.ucla.edu> + + In timefns, prefer ui mul and div + + * src/timefns.c (ticks_hz_hz_ticks): If the multiplier + is a fixnum that fits in unsigned long, use mpz_mul_ui + instead of the more-expensive mpz_mul. Similarly, if the + divisor is a fixnum that fits in unsigned long, use + mpz_fdiv_q_ui instead of mpz_fdiv_q. + +2024-07-11 Paul Eggert <eggert@cs.ucla.edu> + + Reduce size of integer product in timefns + + * src/timefns.c (emacs_gcd): New static function. + (ticks_hz_hz_ticks): Use it to reduce the size of the integer + product in the common case when converting from ns to ps. For + that, we need to multiply t.ticks only by 10³, not multiply by + 10¹² and then divide by 10⁹. This avoids the need to use bignums + in a significant number of cases. + +2024-07-11 Paul Eggert <eggert@cs.ucla.edu> + + Rename timefns internals + + The old names didn’t fit in the conventions used for newer names. + * src/timefns.c (struct ticks_hz): Rename from struct lisp_time. + (union c_time): Rename lt to th. + (ticks_hz_hz_ticks): Rename from lisp_time_hz_ticks. + (ticks_hz_seconds): Rename from lisp_time_seconds. + All uses changed. + +2024-07-11 Paul Eggert <eggert@cs.ucla.edu> + + Speed up decode-time when not doing subseconds + + * src/timefns.c (Fdecode_time): Avoid some unnecessary conversions + in the common case where subsecond resolution is not required. + +2024-07-11 Paul Eggert <eggert@cs.ucla.edu> + + Push some time conversions down + + * src/timefns.c: Push some time conversions down to lower level fns. + This is a win in its own right and should allow for further speedups. + (lisp_to_timespec): Remove; this convenience function is no longer + needed now that there would be only one caller. Remaining caller + changed to use definiens. + (enum cform): New constant CFORM_TIMESPEC. Also, CFORM_SECS_ONLY + now generates a struct timespec instead of a struct lisp_time. + (union c_time.ts): New member. + (decode_ticks_hz): Handle new struct timespec cases. + (decode_float_time, lisp_time_struct): New arg cform, and return + union c_time rather than struct lisp_time. All callers changed. + (list4_to_timespec, lisp_time_argument, lisp_seconds_argument): + Let lower-level function do the conversion, to allow for better + optimization. + +2024-07-11 Paul Eggert <eggert@cs.ucla.edu> + + Split lisp_to_timespec in two + + * src/timefns.c (ticks_hz_to_timespec): New function, + which is almost all the old lisp_to_timespec but with + a 2-arg API. This should help further changes. + (lisp_to_timespec): Use it. + +2024-07-11 Paul Eggert <eggert@cs.ucla.edu> + + Refactor decode_ticks_hz via switch + + * src/timefns.c (decode_ticks_hz): Change ?: to ‘switch’, + for benefit of future changes. + +2024-07-11 Paul Eggert <eggert@cs.ucla.edu> + + Refactor timefns order + + Move definitions around in timefns.c. This does not affect the + implementation; it merely makes future changes easier to follow. + * src/timefns.c (frac_to_double, mpz_time, lisp_to_timespec) + (enum cform, union c_time, decode_ticks_hz): Move earlier. + +2024-07-11 Paul Eggert <eggert@cs.ucla.edu> + + Refactor timefns more functionally + + Use a more-functional style in timefns.c, rather than passing + pointers to objects that are filled in. Although this does not + change behavior, it should help future improvements to the code. + * src/keyboard.c (decode_timer): Return a possibly-invalid struct + timespec instead of storing a timespec into a location specified + by an arg, and returning bool. All callers changed. + * src/systime.h (struct lisp_time): Move from here to src/timefns.c, + since the type is private to timefns.c. + * src/timefns.c (decode_float_time, decode_ticks_hz): + Return timestamp instead of storing it into a location specified + by an arg. All callers changed. + (enum cform, union c_time, struct err_time, struct form_time): + New types, to aid functional style. + (decode_time_components): Return struct err_time + instead of returning err and storing timestamp into a location + specified by an arg. New arg cform. All callers changed. + (decode_lisp_time): Return struct form_time instead of returning + form and storing timestamp into a location specified by an arg. + New arg cform, replacing decode_secs_only. All callers changed. + (list4_to_timespec): Return possibly-invalid timestamp instead + of returning a bool and storing timestamp into a location specified + by an arg. All callers changed. + (lisp_time_struct): Omit no-longer-needed arg PFORM. + All callers changed. + +2024-07-11 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + e0b271e279b Take precautions against ill-formed content URIs + 9331ab056a4 etags-regen-mode: Handle TAGS buffer being killed + ef3f26ec02d ; Tag ERC multiline blanks test as :expensive + 945335fec1e Improve 'put-image' documentation + c38d5cc3b28 Improve 'set-fontset-font' documentation + 7de4dbea08f Adapt Tramp's "run0" method + 871585db4ca * test/src/sqlite-tests.el (sqlite-execute-batch): Declar... + 5cf8d60e0de Capitalize "Dired" and "Lisp" in docstrings + 37475c9af7a Document Eshell entry points + + # Conflicts: + # etc/NEWS + +2024-07-10 Paul Eggert <eggert@cs.ucla.edu> + + * lib/timespec-sub.c: Copy manually from Gnulib. + +2024-07-10 Michael Albinus <michael.albinus@gmx.de> + + Extend dbus-test04-call-method-authorizable + + * test/lisp/net/dbus-tests.el + (dbus--test-method-authorizable-handler): New defun. + (dbus-test04-call-method-authorizable): Extend test. + +2024-07-10 Po Lu <luangruo@yahoo.com> + + * configure.ac: Fix typo in commentary of strlen substitute. + +2024-07-10 Jim Porter <jporterbugs@gmail.com> + + Improve Eshell's behavior when waiting for processes + + This has a few benefits. First, it fixes a race condition when killing + old processes in 'eshell-command'. Second, the "wait" built-in command + is now more useful. Finally, killing processes when exiting Eshell (via + 'eshell-round-robin-kill') should be much faster. + + * lisp/eshell/esh-proc.el (esh-opt): Require. + (eshell-wait-for-process): Make obsolete in favor of... + (eshell-wait-for-processes): ... this. Accept a timeout and support + PIDs. Update callers. + (eshell/wait): New implementation accepting -t/--timeout. + (eshell-round-robin-kill): Use 'eshell-wait-for-processes'. + + * lisp/eshell/eshell.el (eshell-command): Use 'eshell-round-robin-kill'. + + * doc/misc/eshell.texi (List of Built-ins): Document the new "wait" + behavior. + + * etc/NEWS: Announce this change. + +2024-07-10 Jim Porter <jporterbugs@gmail.com> + + Don't use the Lisp implementation of "kill" in remote Eshell directories + + * lisp/eshell/esh-proc.el (eshell/kill): When in a remote directory, + fall back to the external "kill" program (bug#72013). + +2024-07-09 Andrea Corallo <acorallo@gnu.org> + + * test/src/comp-tests.el (compile-forms): Simplify test. + +2024-07-09 Andrea Corallo <acorallo@gnu.org> + + Support interpreted functions as input for 'native-compile' (bug#71934) + + * lisp/emacs-lisp/comp.el (comp--spill-lap-single-function): New function. + (comp--spill-lap-function): Make use of and do not accept + '(closure ...' as input. + (comp--spill-lap-function): Specialize on interpreted functions as + well. + (native-compile): Update doc. + * test/src/comp-tests.el (compile-interpreted-functions): New test. + +2024-07-09 Mattias Engdegård <mattiase@acm.org> + + Use cheaper string constructors + + * src/coding.c (make_string_from_utf8): + * src/fileio.c (file_name_directory): + * src/lread.c (Fintern): + * src/gnutls.c (Fgnutls_format_certificate): + Use `make_multibyte_string` and `make_unibyte_string` instead of + more expensive `make_specified_string` and `make_string_from_bytes`. + +2024-07-09 Michael Albinus <michael.albinus@gmx.de> + + Warn if D-Bus error "InteractiveAuthorizationRequired" occurs + + * lisp/net/dbus.el + (dbus-error-interactive-authorization-required): New defconst. + (dbus-warn-interactive-authorization-required): New defun. + (dbus-event-error-functions): Add it. + +2024-07-09 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 8350ebd22e9 Fix bug#71929 + 8f96e0064fa ; Change `imap-shell-host` docstring to mention SSH + +2024-07-09 Michael Albinus <michael.albinus@gmx.de> + + Adapt dbus-tests.el + + * test/lisp/net/dbus-tests.el + (dbus-test04-call-method-authorizable): New test. + (dbus--test-signal-handler): Remove debug message. + +2024-07-09 Steven Allen <steven@stebalien.com> + + Support interactive D-Bus authorization + + When invoking D-Bus methods, let the user enable interactive + authorization by passing an :authorizable t parameter. This makes + it possible to D-Bus methods that require polkit authorization. + + * configure.ac (HAVE_DBUS_MESSAGE_SET_ALLOW_INTERACTIVE_AUTHORIZATION): + Set a new variable if `dbus_message_set_allow_interactive_authorization' + is available. + + * src/dbusbind.c (dbus-message-internal): Allow interactive + authorization by passing :authorizable t. + + * doc/misc/dbus.texi (Synchronous Methods, Asynchronous Methods): + * etc/NEWS: + * lisp/net/dbus.el (dbus-call-method-asynchronously): Document the + new parameter. + +2024-07-09 Michael Albinus <michael.albinus@gmx.de> + + Make D-Bus tests stable + + * test/lisp/net/dbus-tests.el (dbus-debug): Declare, not define. + (dbus--test-event-expected): New defvar. + (dbus--test-signal-handler): Check for `dbus--test-event-expected'. + (dbus-test05-register-signal-with-nils) + (dbus-test08-register-monitor): Adapt tests. + +2024-07-09 Andrea Corallo <acorallo@gnu.org> + + Merge from savannah/emacs-30 + + 671ad83026e Fix bug#70697 with respect to fringe bitmaps + 15c591bad62 Fix byte-compiler warning in calc.el + + # Conflicts: + # lisp/calc/calc.el + +2024-07-09 Andrea Corallo <acorallo@gnu.org> + + Silence a warning in 'calc-embedded-open-close-new-formula-alist' + + * lisp/calc/calc.el (calc-embedded-open-close-new-formula-alist): + Silence warning. + +2024-07-09 Andrea Corallo <acorallo@gnu.org> + + * etc/TODO (Native compiler improvements): Add entry. + +2024-07-09 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + dce31372a60 editorconfig-core-handle.el: Fix regressions in fnmatch h... + ed2986494c7 Checkdoc fixes in `url/*.el` + 846c0e10ffa Checkdoc fixes in `term/*.el` + 3977aa07568 Checkdoc fixes in `mh-e/*.el` + 521f740d013 Checkdoc fixes in `calc/*.el` + 336aa6ab17a Checkdoc fixes in `textmodes/*.el` + e19fd6a22de Checkdoc fixes in `gnus/*.el` + 7350457c793 Checkdoc fixes in `eshell/*.el` + 23c1ba81ddd Checkdoc fixes in `emulation/*.el` + c85f67a66df Checkdoc fixes in `erc/*.el` + e392382e2e2 Checkdoc fixes in `vc/*.el` + ef7364b070e Checkdoc fixes in `emacs-lisp/*.el` + 5fe1ae0e843 Checkdoc fixes in `mail/*.el` + e43e9d09986 Checkdoc fixes in `net/*.el` + 4c6e9f5b004 Improve `use-package-vc-valid-keywords` docstring format + 928180f32be ; * etc/TODO: New item on installing Magit. + c193a702dc2 ; Improve a recent change to the documentation + 6ebc5d5c278 ; Delete fixed item from etc/TODO: "proced on macOS" + 7b2778e3a3d ; Delete fixed NS bug from etc/TODO + 84552ff395c Revert "Fix link to major mode variable in docstring" + 198063ba643 * etc/TODO: Add item to convert documentation to 'setopt'. + 92de67829ca Prefer 'setopt' in browse-url docs + 76683853905 ; Improve 'native-comp-debug' documentation + +2024-07-08 Stefan Kangas <stefankangas@gmail.com> + + Make checkdoc recognize "U.S." acronym + + * lisp/emacs-lisp/checkdoc.el (checkdoc-in-abbreviation-p): Recognize + "U.S." acronym. + +2024-07-08 Pip Cet <pipcet@protonmail.com> + + perl-mode: fix bug introduced in bd86a6c4fde + + * lisp/progmodes/perl-mode.el (perl-calculate-indent): Use + `save-excursion' around code that modifies point. + +2024-07-08 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 67f291ddae3 Correct conditions for iconification on Android + 130c3efa108 Fix execution of MS-Windows app execution aliases in Eshell + fffab032b05 Improve 'tab-line-tabs-fixed-window-buffers' sorting perf... + +2024-07-08 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + f4c0459ed3e Fix Tramp parser + 47c79b62dd0 Checkdoc fixes in progmodes + 6757f8e67d3 Checkdoc fixes in Org Mode + 9fcee3c1d1e Clarify `checkdoc-max-keyref-before-warn` docstring + b249f022f12 * lisp/files.el (insert-directory): Quote switches in wil... + 8911d53ce5d Fix uses of 'dired-omit-mode' (bug#71905) + +2024-07-07 Michael Albinus <michael.albinus@gmx.de> + + Adapt Tramp version + + * doc/misc/trampver.texi: + * lisp/net/trampver.el (tramp-version): Adapt Tramp versions. + +2024-07-07 Stefan Kangas <stefankangas@gmail.com> + + Mark `browse-url-default-scheme` as :risky + + * lisp/net/browse-url.el (browse-url-default-scheme): Mark as + risky file local variable. + +2024-07-07 Stefan Kangas <stefankangas@gmail.com> + + Make `checkdoc-verb-check-experimental-flag` default to nil + + This user option leads to a very large amount of false positives in + practice. In my personal experience, almost all occurrences that are + flagged are false positives. Flipping the default to something less + intrusive should hopefully encourage more use of checkdoc. + + * lisp/emacs-lisp/checkdoc.el + (checkdoc-verb-check-experimental-flag): Switch the default to nil. + +2024-07-07 Stefan Kangas <stefankangas@gmail.com> + + checkdoc: Flag formatting mistakes in warnings + + * lisp/emacs-lisp/checkdoc.el (checkdoc-message-text-next-string) + (checkdoc-message-text-engine): Flag formatting mistakes in warnings. + (checkdoc--warning-function-re): New variable. + +2024-07-07 Stefan Kangas <stefankangas@gmail.com> + + checkdoc: Minor code cleanups + + * lisp/emacs-lisp/checkdoc.el + (checkdoc-message-text-search): Use 'while-let'. + (checkdoc-message-text-engine): Use 'when' and 'unless'. + +2024-07-07 Stefan Kangas <stefankangas@gmail.com> + + Fix fontification of network files in `awk-mode` + + * lisp/progmodes/cc-awk.el (awk-font-lock-keywords): Fix fontification + of special network file names such as "/inet4/tcp/0/localhost/daytime". + See Info node '(gawk) TCP/IP Networking'. + +2024-07-07 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 8589fd9cae2 * src/androidvfs.c (android_saf_check_nonnull): Fix typo. + +2024-07-07 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 99e510977b2 Correct JNI string error checking and miscellaneous corre... + bbe95a8ceab Correctly highlight SYMTAB in `awk-mode` + 9625e4af994 Fix formatting of tables with thead/tfoot but no tbody + +2024-07-07 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 48f4c9cbbc1 ; Reflow "Commentary" in lisp-mnt.el + 22155753a46 ; * lisp/emacs-lisp/comp-run.el (native--compile-async): ... + 235b9e85a67 package-buffer-info: Move 'require' earlier + +2024-07-07 Stefan Kangas <stefankangas@gmail.com> + + Fontify `mkbool` as function in `awk-mode` + + * lisp/progmodes/cc-awk.el (awk-font-lock-keywords): + Fontify 'mkbool' function, added in gawk version 5.2. + See Info node '(gawk) Boolean Functions'. + +2024-07-06 Yuan Fu <casouri@gmail.com> + + Add a heuristic for type font-lock in rust-ts-mode (bug#69625) + + * lisp/progmodes/rust-ts-mode.el: + (rust-ts-mode--font-lock-settings): Add rule. + +2024-07-06 Stefan Kangas <stefankangas@gmail.com> + + checkdoc: Relax footer line check for recent Emacs + + * lisp/emacs-lisp/checkdoc.el (checkdoc-file-comments-engine): + Don't require a footer line unless 'lm-package-needs-footer-line' + returns true. + +2024-07-06 Stefan Kangas <stefankangas@gmail.com> + + Make `lm-homepage` into an obsolete alias for 'lm-website' + + * lisp/emacs-lisp/lisp-mnt.el (lm-homepage): Make into an obsolete + function alias for 'lm-website'. + +2024-07-06 Stefan Kangas <stefankangas@gmail.com> + + Make `lm-verify` obsolete in favor of checkdoc + + * lisp/emacs-lisp/lisp-mnt.el (lm-verify): Make obsolete in favor + of checkdoc. + +2024-07-06 Stefan Kangas <stefankangas@gmail.com> + + Add new function `lm-package-needs-footer-line` + + * lisp/emacs-lisp/lisp-mnt.el (lm-package-needs-footer-line): + Factor out new function... + * lisp/emacs-lisp/package.el (package-buffer-info): ...from here. + * lisp/emacs-lisp/lisp-mnt.el (lm-verify): Use above new function. + * test/lisp/emacs-lisp/lisp-mnt-tests.el + (lm-tests--lm-package-needs-footer-line/empty-dependencies) + (lm-tests--lm-package-needs-footer-line/old-version) + (lm-tests--lm-package-needs-footer-line/new-version): + New tests. + +2024-07-06 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + f910514721e Fix treesit range rule for jsdoc + de3fa00a614 Fix documentation of 'balance-windows' + c986387c79f nnatom: Ensure some parsed values are one line + 2fb6a98ecfa nnfeed: (Mostly) fix group descriptions + 74b82e6802e Eglot: support deprecated MarkedString (bug#71353) + a6a588ccf10 ; * doc/lispref/strings.texi (Creating Strings): Followup... + a3e57a29bec ; Fix doc string of 'string-fill' + 1b5cf29431a Fix returning to original TTY frame after 'rmail-reply' + 814710067f0 Improve warnings from native compiler + cefec59df7b Document adding package dependency on Emacs version + d190cb0e886 Fix file-name detection in Dired under -F + +2024-07-06 Thierry Volpiatto <thievol@posteo.net> + + Allow using multiple buffers in 'eshell-command' + + Provide the same functionality as 'async-shell-command-buffer' but for + 'eshell-command'. + + Co-Authored-By: Jim Porter <jporterbugs@gmail.com> + + * lisp/eshell/eshell.el (eshell-command-async-buffer): New option... + (eshell-command): ... use it. + + * lisp/eshell/esh-proc.el (eshell-sentinel): Check for buffer liveness + in 'finish-io'. + + * test/lisp/eshell/eshell-tests.el + (eshell-test/eshell-command/output-buffer/async-kill): New test. + + * etc/NEWS: Announce this change (bug#71554). + +2024-07-05 Stefan Monnier <monnier@iro.umontreal.ca> + + perl-mode.el: Improve indent after hanging open-paren + + Make the indentation of the code right after an open paren/brace + use the same rule as already used to indent the corresponding + matching paren/brace. + + * lisp/progmodes/perl-mode.el (perl-calculate-indent): + Use `perl-indent-new-calculate`s "virtual" indentation instead of + approximating it with `current-indentation`. + +2024-07-05 Po Lu <luangruo@yahoo.com> + + Enable Gnulib substitute on Android systems with defective strnlen + + * configure.ac (AC_FUNC_STRNLEN): Detect a bug where strnlen is + liable to integer overflows if addition of the search limit to + the string would also overflow. + + * src/xdisp.c (store_mode_line_string): Remove stopgap measure. + +2024-07-05 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 334d5132207 (edebug--called-interactively-skip): Fix bug#71934 + 6e8b9ccaec2 ; * lisp/ibuffer.el (ibuffer-mode): Doc fix. + 3eaf1abbff8 Fix MS-Windows build with native-compilation + fc375359edd Tag dbus-test05-register-signal-with-nils as unstable + 99230d7080f ; * src/w32fns.c (funhook): Restore mistakenly lost line. + 81a7358a33b Merge branch 'emacs-30' of git.savannah.gnu.org:/srv/git/... + b085d683962 Fix treesit test (bug#71907) + f39cf0beb74 Focus more on MS-Windows than MS-DOS in FAQ + d64396b8e42 Autoload some string functions + bd482b745aa Merge branch 'emacs-30' of git.savannah.gnu.org:/srv/git/... + b5341831353 * etc/NEWS: Fix typos. + 850fc68481a ; (grep-read-files): Fix completion table + 28532599358 Merge branch 'emacs-30' of git.savannah.gnu.org:/srv/git/... + 921d40759e5 Remove a reference to a non-existant variable from a doc-... + 5d2a115ab03 ; * src/fns.c (value_cmp): ASCIIfy. + +2024-07-04 Pip Cet <pipcet@protonmail.com> + + Fix dumping finalizers with pdumper + + * src/pdumper.c (dump_finalizer): Use `out' (a pointer to a finalizer) + rather than `&out' (a pointer to a pointer to a finalizer). + +2024-07-04 Stefan Kangas <stefankangas@gmail.com> + + Remove redundant `require`s + + * lisp/gnus/canlock.el (sha1): + * lisp/international/utf7.el (base64): + * lisp/net/hmac-md5.el (md5): + * lisp/org/ob-processing.el (sha1): + * lisp/org/org-feed.el (sha1): + * test/lisp/net/rfc2104-tests.el (sha1, md5): Don't require features + that are built-in, and always provided. + +2024-07-04 Jim Porter <jporterbugs@gmail.com> + + In SHR, load from URL cache if possible when zooming images + + * lisp/net/shr.el (shr-replace-image): New function extracted from... + (shr-image-fetched): ... here. + (shr-zoom-image): Check URL cache and call 'shr-replace-image' if we + can. + +2024-07-04 Jim Porter <jporterbugs@gmail.com> + + Fix the different image zoom levels in SHR to work as expected + + * lisp/net/shr.el (shr-image-zoom-levels): New option. + (shr-image-zoom-level-alist): New variable. + (shr-zoom-image): Take POSITION and ZOOM-LEVEL arguments. Consult + 'shr-image-zoom-levels'. + (shr-put-image): Use 'shr-image-zoom-level-alist'. + (shr-rescale-image): Only reset width *or* height when either is too + large. + (shr--image-zoom-original-size, shr--image-zoom-image-size) + (shr--image-zoom-fill-height): New functions. + + * etc/NEWS: Announce this change. + +2024-07-04 Jim Porter <jporterbugs@gmail.com> + + In SHR, keep track of image sizes as specified by the HTML + + Previously, these values got lost when zooming the image. + + * lisp/net/shr.el (shr-tag-img): Set 'image-dom-size'... + (shr-zoom-image): ... use it. Rename 'size' to 'zoom'. + (shr-image-fetched): Rename 'image-size' to 'image-zoom'. + (shr-put-image): Accept the zoom level as ':zoom' and document it. + Previously, FLAGS was a mix of alist and plist(!). + + * test/lisp/net/shr-tests.el (shr-test/zoom-image): Rename "size" to + "zoom". + +2024-07-04 Jim Porter <jporterbugs@gmail.com> + + Slice images based on their height in SHR, not their zoom level + + * lisp/net/shr.el (shr-sliced-image-height): New option... + (shr-put-image): ... use it. Compute the number of slices in relation + to the image height; this way, each slice is roughly the height of a + line of ordinary text. + + * test/lisp/net/shr-tests.el (shr-test/zoom-image): Update test, since + zooming no longer necessarily triggers slicing. + + * doc/misc/eww.texi (Advanced): Document 'shr-sliced-image-proportion'. + + * etc/NEWS: Announce this change. + +2024-07-04 Mattias Engdegård <mattiase@acm.org> + + Compare fixnums and floats accurately in value< + + Make `value<` compare fixnums and floats by value, as `<` does, instead + of coercing the fixnum to a float first which is what C would do. + This matters when the fixnum cannot be represented as a float. For + example, C would evaluate + + 72057594037927935 < 72057594037927936.0 + + to false since the operands are converted to the same floating-point + number. + + * src/fns.c (fixnum_float_cmp): New. + (value_cmp): Use it. + * test/src/fns-tests.el (fns-value<-ordered, fns-value<-unordered): + New test cases. + +2024-07-03 Spencer Baugh <sbaugh@janestreet.com> + + Prefer to run find and grep in parallel in rgrep (bug#71094) + + * lisp/progmodes/grep.el (grep-compute-defaults): Prefer `gnu' for + grep-find-use-xargs over `exec-plus', but not on Windows. (bug#71094) + +2024-07-03 Po Lu <luangruo@yahoo.com> + + Adapt doc-view-set-slice-using-mouse to touch-screen input + + * doc/lispref/commands.texi (Touchscreen Events): Document means + of unconditionally enabling simple conversion. + + * lisp/doc-view.el (doc-view-set-slice-using-mouse): Bind + touch-screen-simple-mouse-conversion to t, and read translated + mouse events with read-key rather than read-event. + + * lisp/subr.el (read-key): Don't permit idle timer to interfere + with reporting of translated mouse events. + + * lisp/touch-screen.el (touch-screen-simple-mouse-conversion): + New variable. + (touch-screen-handle-point-up, touch-screen-handle-touch): + Unconditionally enable `mouse-drag' translation if set. Decide + whether to send drag or mouse events by the values of the two + touchpoints' XY positions and point and double-click-fuzz, as in + make_lispy_event. + +2024-07-02 Stefan Monnier <monnier@iro.umontreal.ca> + + (dump_interval_node): Remove unused arg `offset` + + * src/pdumper.c (dump_interval_node): Remove unused arg `offset`. + (dump_overlay): Adjust call accordingly. + +2024-07-02 Stefan Monnier <monnier@iro.umontreal.ca> + + (buf_*pos_to_*pos): Fix minor off-by one + + * src/marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): + Slightly restructure the markers loop so we check `distance` + also before "consider"ing the first marker. + +2024-07-02 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + b5341831353 * etc/NEWS: Fix typos. + 850fc68481a ; (grep-read-files): Fix completion table + 921d40759e5 Remove a reference to a non-existant variable from a doc-... + 4c64b990873 ; * etc/NEWS: Fix level of several entrries. + 459e635099b ; * etc/NEWS: Fix typo. + 7050128cfe9 ; * src/search.c (Fmatch_beginning, Fmatch_end): Doc fix. + + # Conflicts: + # etc/NEWS + +2024-07-02 Po Lu <luangruo@yahoo.com> + + Port seccomp acceleration to Linux 3.5.0 + + * etc/NEWS: Update correspondingly. + + * exec/Makefile.in (config-mips.m4): Don't define rule + or predicate $(LOADOBJS) on it elsewhere than on MIPS. + + * exec/README: Direct developers to GDB. + + * exec/trace.c (finish_exec): Resume the tracee after reporting + an error in `exec'. + (after_fork): If seccomp is enabled on Android, and the kernel + is 4.7 or earlier, detect whether revisions to the sequencing of + seccomp events have been backported from 4.8. + (exec_waitpid): Resume the process with PTRACE_CONT after + receiving an unknown signal. + (exec_init): Cease disabling seccomp on Android kernels earlier + than 4.8. + +2024-07-01 Po Lu <luangruo@yahoo.com> + + * exec/exec.c (exec_0): Restore erroneously deleted statement. + + * configure.ac: Provide for invocations where no cache file is set. + + * configure.ac: Create a cache file for libexec. + +2024-07-01 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 1647494c04a ; * etc/NEWS: Clarify. + b2c966f8396 ; * src/treesit.c (Ftreesit_query_capture): Fix typo. + ae385794206 * java/res/mipmap-v26/emacs_icon.xml: Define monospace icon. + b2d99c0d0aa Improve `sentence-end-double-space` docstring + + # Conflicts: + # etc/NEWS + +2024-07-01 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 2f71460d52f More updates of documentation for Emacs 30 + a9df581c403 ; * etc/NEWS: Copy-edit. + dfbdd38f701 Revert "; * etc/NEWS: Move items to "Incompatible Lisp Ch... + + # Conflicts: + # etc/NEWS + +2024-07-01 Po Lu <luangruo@yahoo.com> + + Optimize process execution on Android + + * exec/configure.ac (REENTRANT): Remove option for reentrancy. + (PROGRAM_COUNTER, HAVE_SECCOMP): Define register providing the + program counter and enable seccomp if its headers are available. + + * exec/exec.c (write_load_command): Avoid defining unused + variable. + (exec_0): Remove code specific to REENTRANT configurations. + + * exec/exec.h (struct exec_tracee) <exec_data, data_size>: New + fields for loader instructions and their size. + + * exec/exec1.c (main): Call exec_init before forking. + + * exec/mipsel-user.h (ELF_NGREG): Delete definition. + (struct mipsel_regs): Reduce number of gregs to 32, but + introduce separate fields for special registers. + + * exec/trace.c (use_seccomp_p): New variable; defile to false if + !HAVE_SECCOMP. + (remove_tracee): Cease providing for non-reentrant + configurations. Release executable data if present. + (handle_clone_prepare): Likewise. Resume process with + PTRACE_CONT if seccomp-based interception is enabled. + (handle_clone, check_signal): Resume processes as above. + (handle_exec): Divide into two functions, with only rewriting + the system call and generating instructions for the loader + remaining in the first, and copying such instructions into the + loader's stack removed into a new function, `finish_exec'. + (finish_exec): New function. + (handle_readlinkat, handle_openat): Abolish non-REENTRANT + configurations. + (process_system_call): Divide exec system calls into two phases, + disambiguated by the value of tracee->waiting_for_syscall. Typo + fixes. Accommodate syscall-exit-stops where the signal was + initially intercepted by `seccomp_system_call'. + (interesting_syscalls): New array. + (ARRAYELTS): New macro. + (seccomp_system_call, establish_seccomp_filter): New function. + (tracing_execve) [HAVE_SECCOMP]: Establish a seccomp filter if + this is to be enabled. + (after_fork): Provide PTRACE_O_TRACESECCOMP. Resume process + with PTRACE_CONT if seccomp-based interception is enabled. + (exec_waitpid): Resume process with PTRACE_CONT if seccomp-based + interception is enabled. Dispatch stops identifying as + PTRACE_EVENT_SECCOMP to `seccomp_system_call'. + (exec_init): Establish whether it is possible to enable seccomp. + +2024-06-30 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 64851d101a8 Improve Android "adaptive icon" + 9b294059d71 Fix documentation for Emacs 30 + f50167ab95e ; Update NEWS and corresponding manuals + 4e22ef870c4 Add D-Bus test + f784d946d44 ; Repair corruption in etc/DEBUG + c750fbb539e ; * etc/DEBUG: Advice for debugging Emacs on OpenBSD (bug... + 38179f85f8f Merge remote-tracking branch 'savannah/scratch/windows-98... + 72cf9964f3c Inaccuracy in efaq.texi + fc48e9e8ed5 ; Fix typos in DOS Makefile scripts + 9b8d754579f ; * etc/NEWS: Explain Nextstep. + 8819e5a45d5 Fix treesit crash (bug#71681) + eaf2dc96c1f ; Fix SHR test on MS-Windows + 57880f597c5 Delete redundant mention of `with-eval-after-load' + ea8ce984342 * doc/misc/efaq.texi (New in Emacs 30): Fix typos. + 45a20d781a9 ; Fix typos in symbols + d95f039af43 Document security fixes in FAQ + d063af203c8 Add "New in Emacs 30" to FAQ + ca6b484162b ; * etc/NEWS: Move "Minibuffer and Completions" + 35c46663e49 ; * etc/NEWS: Move item to "Lisp Changes". + 0515b38d289 ; * etc/NEWS: Move keyboard macro items closer together. + 22af3a71039 ; * etc/NEWS: More copy-edits. + 000ef8876ae ; * etc/NEWS: Move items to "Incompatible Lisp Changes". + 4088dc8e4ce ; * etc/NEWS: Rearrange "Incompatible Lisp Changes". + 179800f36bb ; * lisp/epg.el (epg--start): Add commentary about encoding. + 73898f0214c Fix non-ASCII filename operatiion on EasyPG (bug#71500) + a65b6aac6b5 Silence warning with global minor mode :predicate + f5f7343ac41 ; * etc/NEWS: Move an item to "Startup Changes" + c95066bf188 ; * etc/NEWS: Move some Lisp items to better place. + bf7db88ce1f ; * etc/NEWS: Rearrange "Editing Changes in Emacs 30.1" + 000424eb9eb ; * etc/NEWS: Make touch screen support more prominent. + 5b5671587fb ; * etc/NEWS: Rearrange "Changes in Emacs 30.1". + 31124abdefe ; * lisp/thingatpt.el (sexp-at-point): Doc fix (bug#71777). + 44f269d6e60 Fix: make 'xwidget-webkit-scroll-backward' scroll backwards + 358085997c6 Merge branch 'emacs-30' of git.savannah.gnu.org:/srv/git/... + 736b7cad406 Add jsdoc support to php-ts-mode in <script> element + 5f3d964e397 Update to Transient v0.7.2-4-gf75bc48d + 2d8881d5267 Fix typo incurring leaks of face structures + 219501dd629 ; Fix use of @footnote in cc-mode.texi + c7be2dcac44 Merge branch 'emacs-30' of git.sv.gnu.org:/srv/git/emacs ... + f0a48799756 Sync with Tramp 2.7.1 + 53dcf2b9492 ; * etc/NEWS: Move the mwheel entry to a better place. + a5726782d03 ; Sort tree-sitter modes in NEWS + daa89dc939e ; * etc/NEWS: Rearrange "New Modes and Packages in Emacs ... + 4ddbf4f70ef ; * etc/NEWS: Move many items. + 437b1ced268 ; * etc/NEWS: Copy-edits. + 7372b2eb302 Expand docstring of which-key-mode + df0eb5be1ea Improve documentation of 'remove-overlays' in ELisp manual + 73c1252bb6b Fix link to major mode variable in docstring + c4ad54812ac Make `shell-mode' more robust + c4ec905c9a9 Correct ommissions in rmc.el + bf862fc2770 * lisp/hi-lock.el: More fixes related to revert-buffer. + 6cc8ffae9a6 Update to Org 9.7.5-9-ga091ca + c477443ab80 ; Fix typo in lua-ts-mode.el + 6e5e4d61939 ; Add 'eglot-ensure' option to 'lua-ts-mode-hook' + 58a2f36a8b9 ; * etc/NEWS: Copy edit. + df53ef176ac Merge branch 'emacs-30' of git.savannah.gnu.org:/srv/git/... + 039e6ffd866 Write Antinews for Emacs 30 ELisp Reference + bf8c9f702ba (eval-last-sexp): Fix bug#71774 + 6d94090cadc * lisp/hi-lock.el: More fixes for revert-buffer (bug#57534) + 280c91782af * lisp/hi-lock.el (hi-lock-revert-buffer-rehighlight): Im... + 339310d0205 * lisp/tab-bar.el (tab-bar-select-restore-windows): Impro... + c1e7569a925 Write Antinews for Emacs 30 user manual + 233f683da8f ; * lisp/erc/erc-backend.el (erc-server-reconnect-timeout... + 20a672b3b2b Change ERC version for Emacs 30 to 5.6.0.30.1 + cbede3d43df * src/w32uniscribe.c (syms_of_w32uniscribe_for_pdumper): ... + 6f9f9a21555 Fix two tests for --without-all build + 98daa10f065 ; * etc/PROBLEMS (PGTK): Remove redundant 2nd PGTK section. + ced33bc2397 Fix handling of non-nil 'dired-movement-style' + b1e9b6fd67d ; * lisp/gnus/message.el (message-idna-to-ascii-rhs): Doc... + 5eb9a0d2c79 ; * etc/NEWS: Fix last change (bug#71720). + 6ec77f580dd Do not prematurely truncate python eldoc string + f475a1a2544 ; Fix simple-tests as fallout of last change + aa10d0c5ac1 Add tests for `kill-whole-line' (bug#65734) + 058bb4ca25a kill-whole-line: Honor visibility; fix kill-ring when rea... + e45173d114e * lisp/hi-lock.el (hi-lock-file-patterns-policy): Add val... + d6afb017deb * lisp/progmodes/xref.el (xref-revert-buffer-restore-poin... + 8d55b38e2a1 Fix Cygwin build + 82125b1a661 Use 'revert-function' in *xref* buffer + 860840621a1 Prevent crashes and related issues if initial activity is... + d5c6eb1f964 Doc fix in 'php-ts-mode' + fb15affde8c Avoid compiler warnings in the Cygwin-w32 build + 8d354925ddb Add new face 'widget-unselected' to wid-edit.el + 1809f6a93ef Always perform Eshell process cleanup runs in the Eshell ... + 8b1841021c0 Avert crash in store_mode_line_string on Android 5.0 and ... + e7c85f9235a Use HarfBuzz in Cygwin-w32 build + 8e3e206bd32 ; * src/buffer.c (syms_of_buffer) <mode-line-format>: ASC... + fe0d9dfb3b1 ; * lisp/treesit.el (treesit--syntax-propertize-start): F... + 2f18929319a Fix tabbing between widgets (bug#70594) + 6ad6507532b ; * lisp/which-key.el (which-key-dont-use-unicode): Add :... + 60b38c317bb * lisp/touch-screen.el (touch-screen-inhibit-drag): Anoth... + a4ca30ac2e0 Fix rescaling of images via 'text-scale-mode' in EWW + 0e43606b20d * lisp/touch-screen.el (touch-screen-inhibit-drag): Fix t... + 1b4c5627211 Fix latent side-effects of respecting field boundaries in... + e4046f33ab8 ; * lisp/simple.el (undo-auto--boundaries): Doc fix (bug#... + 008eeb21fdb ; * lisp/language/cyrillic.el: Delete obsolete commentary... + 680155d3f03 Add missing builtin package declarations + ce4f56caf71 Extend treesitter tests on emba + 7e8a97ac788 Show entries from key-translation-map in which-key mode + 4a0958642d9 * lisp/tab-bar.el (tab-bar-tab-group-face-function): Impr... + a769f171e7e ; Fix flymake tests with GCC 14. + 96e27c2ecf9 Don't show char name for multi-char translations + 0715abfa86a Reset ls-lisp-use-string-collate when ls-lisp-emulation c... + 4fcc38966bf Update to Transient v0.7.2-1-gf273c0c8 + b7d5ca3a8fb * doc/misc/calc.texi (Musical Notes): Fix typo. + 164f75822b2 ; Fix typos + 768e92b9c02 Update options that depend on 'which-key-dont-use-unicode' + 4b2682b17cd ; Remove debugging message in Completion Preview test + 73a58329a69 Fix omission of updates to child frames on Android + 0edacf2aa7e Add jsdoc support to js-ts-mode + cace0cbee93 ; Restore inadvertently removed line. + 2b04effb13d ; * test/lisp/net/shr-tests.el (shr-test--rendering-check... + 6619aec6bca ; Don't run new 'shr-test/zoom-image' when built without ... + 5d19bfda321 ; * admin/release-branch.txt: Update and fix typo. + fb11294d415 ; Fix typos + d9bd1718f9a Backport: Minor changes in tramp-tests.el + 1728de5a776 Backport: Tramp: Fix bug#71709, and other minor changes + dd0fc6aff60 New branch emacs-30 + bc72c33ac38 * admin/admin.el: (set-version): Fix regexp for configure... + 60475a73d17 Disable Ffile_system_info for Android special directories + 18e7a9f3d0c Restore functionality on Windows 98 + 5f8a9cd4b6f Fix a bug in 'switch-to-buffer' + 5f9b5803bea Fix zooming images in SHR + 6f2036243f2 ; Doc fix in 'php-ts-mode'. + 2f1c882a16e Colorize CSS property value like `css--fontify-region' + dd0994aa36c Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs + 486ea8ef5ac * configure.ac: Disable kqueue on Haiku. + 737fa7c5292 Fix 'Customize' menu entry for 'php-ts-mode' + cb7be6035ee Fix compilation on prerelease versions of Haiku + 2b848a4e504 Fix FIXME in comment + 77e3a56507d Update SKK-JISYO.L from upstream + e5bae788614 Update publicsuffix.txt from upstream + bf5f74288b7 Add assignment form as `etc/copyright-assign.txt` + fcd37988048 ; Merge from origin/emacs-29 + 0f01cb0ebd1 Bump Emacs version to 29.4.50 + 014aab9847a Fix for grammar change of keyword "virtual" in tree-sitte... + fa364a0d469 Revert "; * etc/HISTORY: Delete never-released Emacs 28.3." + a81417e5766 Update Tramp version (don't merge to master) + ff389163ee8 Manually merge NEWS.29 from emacs-29 + ea057131220 ; * etc/HISTORY: Delete never-released Emacs 28.3. + d3469978b89 Merge from origin/emacs-29 + 3739342a4e9 ; Merge from origin/emacs-29 + 38e738a35eb Merge from origin/emacs-29 + 4c4c94fa105 ; Merge from origin/emacs-29 + 1313b8966ae Merge from origin/emacs-29 + 4a76af51bb6 Replace literal whitespace with `\s` + e41dd2241f7 ; Merge from origin/emacs-29 + 8520ec829d3 ; * lisp/editorconfig.el (editorconfig-indentation-alist)... + 99161fb7140 Fix non-existing `editorconfig-set-indentation-python-mode` + fd15d89ec51 Merge remote-tracking branch 'origin/emacs-29' into emacs-29 + 6a299b3cace Release Emacs 29.4 + 3f3c08bcc76 Add before-save-hook to man page files + 7b0e6cb3ffa Use UTC when generating man page timestamps + a7cb642a9fc Merge from origin/emacs-29 + 6491d11b53a ; Merge from origin/emacs-29 + 2f39a4b28a9 Merge from origin/emacs-29 + 150e2b979c1 ; * src/xfns.c (unwind_create_frame): Add missing definit... + 75fdeef7b49 Allow to expand truncated long lines in *Compilation* buf... + fb1b188e1ad Eglot: Fix command execution (bug#71642) + 155cc89de02 Support for indentation of PHP alternative syntax control... + 7f7b28a2500 ; Wayland SECONDARY selection problem + 11fb3510f48 Prevent auto-revert when deleting entry (bug#71264) + a4fe4ca93cf Fix font lock regex for user defined constant in PHP + e1ba4ebb495 Make Compilation mode recognize non-legacy Kotlin/Gradle ... + 4f030834994 ; Improve documentation of EditorConfig support + c0bfe429485 List Andrea Corallo as co-maintainer in ack.texi + b3d6880512f * admin/MAINTAINERS: Add myself in (co-)maintainers. + 7cc939bf27e ; * lisp/ldefs-boot.el: Regenerated for Emacs 29.4 + 959eacc2a70 Bump Emacs version to 29.4 + 9a02fce714c Update files for Emacs 29.4 + d96c54d3883 * admin/authors.el: Update for Emacs 29.4 + fd207432e50 * etc/NEWS: Update for Emacs 29.4 + c645e1d8205 org-link-expand-abbrev: Do not evaluate arbitrary unsafe ... + 50a237c4689 Update Tramp version (don't merge to master) + f3e80dd0f70 * admin/emacs-shell-lib: Backport to Bash 4.4 or older. + ce85d3811da Fix bug#49289 also for other auth-source backends + + # Conflicts: + # etc/NEWS + +2024-06-30 Paul Eggert <eggert@cs.ucla.edu> + + Update from gnulib + +2024-06-30 Po Lu <luangruo@yahoo.com> + + Respect --disable-build-details in Android builds + + * java/Makefile.in (BUILD_DETAILS, GEN_BUILD_DETAILS): New + variables. + (install_tmp): Tolerate failures in generation of metadata files + and prefix commands for such generation with GEN_BUILD_DETAILS. + + * lisp/version.el (android-read-build-system) + (android-read-build-time): Return nil if metadata file does not + exist. + +2024-06-30 Po Lu <luangruo@yahoo.com> + + * build-aux/ndk-module-extract.awk: Do not generate newlines in output. + +2024-06-30 Po Lu <luangruo@yahoo.com> + + Enable caching values generated by the Android build system + + * build-aux/ndk-build-helper-1.mk: + + * build-aux/ndk-build-helper-2.mk: + + * build-aux/ndk-build-helper.mk: Do not generate file names with + redundant directory separators, to port to systems where the + semantics of this are undefined. + + * configure.ac: Provide a cache file to the recursive invocation + of configure if one is specified for the initial. + + * cross/ndk-build/Makefile.in (my-dir): Better conform to the + original ndk-build by generating directory names with no + trailing separator. + + * m4/ndk-build.m4 (ndk_resolve_import_module, ndk_SEARCH_MODULE): + Cache the names of Android.mk files and the commands produced + from them. + +2024-06-30 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 72cf9964f3c Inaccuracy in efaq.texi + fc48e9e8ed5 ; Fix typos in DOS Makefile scripts + 9b8d754579f ; * etc/NEWS: Explain Nextstep. + 8819e5a45d5 Fix treesit crash (bug#71681) + eaf2dc96c1f ; Fix SHR test on MS-Windows + 57880f597c5 Delete redundant mention of `with-eval-after-load' + ea8ce984342 * doc/misc/efaq.texi (New in Emacs 30): Fix typos. + 45a20d781a9 ; Fix typos in symbols + d95f039af43 Document security fixes in FAQ + d063af203c8 Add "New in Emacs 30" to FAQ + ca6b484162b ; * etc/NEWS: Move "Minibuffer and Completions" + 35c46663e49 ; * etc/NEWS: Move item to "Lisp Changes". + 0515b38d289 ; * etc/NEWS: Move keyboard macro items closer together. + 22af3a71039 ; * etc/NEWS: More copy-edits. + 000ef8876ae ; * etc/NEWS: Move items to "Incompatible Lisp Changes". + 4088dc8e4ce ; * etc/NEWS: Rearrange "Incompatible Lisp Changes". + 179800f36bb ; * lisp/epg.el (epg--start): Add commentary about encoding. + 73898f0214c Fix non-ASCII filename operatiion on EasyPG (bug#71500) + a65b6aac6b5 Silence warning with global minor mode :predicate + f5f7343ac41 ; * etc/NEWS: Move an item to "Startup Changes" + c95066bf188 ; * etc/NEWS: Move some Lisp items to better place. + bf7db88ce1f ; * etc/NEWS: Rearrange "Editing Changes in Emacs 30.1" + 000424eb9eb ; * etc/NEWS: Make touch screen support more prominent. + 5b5671587fb ; * etc/NEWS: Rearrange "Changes in Emacs 30.1". + 31124abdefe ; * lisp/thingatpt.el (sexp-at-point): Doc fix (bug#71777). + 44f269d6e60 Fix: make 'xwidget-webkit-scroll-backward' scroll backwards + 358085997c6 Merge branch 'emacs-30' of git.savannah.gnu.org:/srv/git/... + 736b7cad406 Add jsdoc support to php-ts-mode in <script> element + 5f3d964e397 Update to Transient v0.7.2-4-gf75bc48d + + # Conflicts: + # etc/NEWS + +2024-06-30 Po Lu <luangruo@yahoo.com> + + Update the DJGPP configuration scripts + + * msdos/sedlibmk.inp (HAVE_WCHAR_T): Delete edit of variable + removed from Gnulib. + +2024-06-30 Paul Eggert <eggert@cs.ucla.edu> + + Don’t define LC_COLLATE, LC_CTYPE + + * src/sysdep.c (LC_COLLATE, LC_CTYPE): Remove unnecessary + macro defns. They’re always available. + +2024-06-30 Paul Eggert <eggert@cs.ucla.edu> + + Assume setlocale exists + + Like locale.h, it was standardized by C89, is universally + available now, and some code already assumes it. + * configure.ac: Do not check for setlocale. + * src/emacs.c (setlocale) [!HAVE_SETLOCALE]: Remove. + (fixup_locale, synchronize_locale, Vprevious_system_time_locale) + (synchronize_system_time_locale): Define even if !HAVE_SETLOCALE. + * src/sysdep.c (emacs_setlocale): Simplify by assuming HAVE_SETLOCALE. + +2024-06-30 Paul Eggert <eggert@cs.ucla.edu> + + Do not worry about whether locale.h is includable + + * src/emacs.c, src/lread.c, src/sysdep.c: Remove preconditions + from including locale.h. It was standardized in C89, is universal + now, and some code already assumes it. + +2024-06-30 Paul Eggert <eggert@cs.ucla.edu> + + Update from Gnulib by running admin/merge-gnulib + + * m4/wchar_t.m4: Remove; no longer needed. + +2024-06-29 Paul Eggert <eggert@cs.ucla.edu> + + Remove unused m4/printf-posix-rpl.m4 + + * m4/printf-posix-rpl.m4: Remove unused file. + This is leftover from an old Android branch, + and the m4 macros are no longer needed in the master branch. + +2024-06-29 Stefan Kangas <stefankangas@gmail.com> + + Complete to "nil" in directory local variables skeleton + + * lisp/autoinsert.el (auto-insert-alist): Make "nil" a completion + candidate for the directory local variables skeleton. The "nil" value + means "any mode" in the context of directory local variable files. + +2024-06-29 Stefan Kangas <stefankangas@gmail.com> + + Support grep.el better in `python-base-mode` + + * lisp/progmodes/python.el (python-base-mode): When mode is first + enabled, add *.py alias to 'grep-files-aliases', and add common Python + tooling directories to 'grep-find-ignored-directories'. + +2024-06-29 Eshel Yaron <me@eshelyaron.com> + + Inherit text props in Completion Preview insertion commands + + When completing with Completion Preview mode commands, + inherit text properties from surrounding text similarly to + other completion commands, such as 'completion-at-point'. + + * lisp/completion-preview.el (completion-preview-insert) + (completion-preview-partial-insert) + (completion-preview-complete): Use 'insert-and-inherit' + instead of 'insert' to insert text for completion. + * test/lisp/completion-preview-tests.el + (completion-preview-insert-inherits-text-properties): New + test. + +2024-06-29 Björn Lindström <bkhl@elektrubadur.se> + + Make whitespace.el's cleanup add missing final newline + + * lisp/whitespace.el (whitespace-cleanup-region): If cleaning + up at end of file, add missing newline if indicated by + 'whitespace-style'. (Bug#71499) + + * etc/NEWS: Announce the change in behavior. + +2024-06-29 Po Lu <luangruo@yahoo.com> + + Merge from origin/emacs-30 + + 2d8881d5267 Fix typo incurring leaks of face structures + 219501dd629 ; Fix use of @footnote in cc-mode.texi + c7be2dcac44 Merge branch 'emacs-30' of git.sv.gnu.org:/srv/git/emacs ... + f0a48799756 Sync with Tramp 2.7.1 + 53dcf2b9492 ; * etc/NEWS: Move the mwheel entry to a better place. + a5726782d03 ; Sort tree-sitter modes in NEWS + daa89dc939e ; * etc/NEWS: Rearrange "New Modes and Packages in Emacs ... + 4ddbf4f70ef ; * etc/NEWS: Move many items. + 437b1ced268 ; * etc/NEWS: Copy-edits. + 7372b2eb302 Expand docstring of which-key-mode + df0eb5be1ea Improve documentation of 'remove-overlays' in ELisp manual + 73c1252bb6b Fix link to major mode variable in docstring + c4ad54812ac Make `shell-mode' more robust + + # Conflicts: + # etc/NEWS + +2024-06-29 Jules Tamagnan <jtamagnan@gmail.com> + + Flag checkdoc-package-keywords-flag as a :safe variable + + * lisp/emacs-lisp/checkdoc.el: Mark 'checkdoc-package-keywords-flag' + as a safe local variable. (Bug#71812) + +2024-06-28 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + c4ec905c9a9 Correct ommissions in rmc.el + bf862fc2770 * lisp/hi-lock.el: More fixes related to revert-buffer. + 6cc8ffae9a6 Update to Org 9.7.5-9-ga091ca + c477443ab80 ; Fix typo in lua-ts-mode.el + 6e5e4d61939 ; Add 'eglot-ensure' option to 'lua-ts-mode-hook' + 58a2f36a8b9 ; * etc/NEWS: Copy edit. + df53ef176ac Merge branch 'emacs-30' of git.savannah.gnu.org:/srv/git/... + 039e6ffd866 Write Antinews for Emacs 30 ELisp Reference + bf8c9f702ba (eval-last-sexp): Fix bug#71774 + 6d94090cadc * lisp/hi-lock.el: More fixes for revert-buffer (bug#57534) + 280c91782af * lisp/hi-lock.el (hi-lock-revert-buffer-rehighlight): Im... + 339310d0205 * lisp/tab-bar.el (tab-bar-select-restore-windows): Impro... + c1e7569a925 Write Antinews for Emacs 30 user manual + 233f683da8f ; * lisp/erc/erc-backend.el (erc-server-reconnect-timeout... + + # Conflicts: + # etc/NEWS + +2024-06-28 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 6f9f9a21555 Fix two tests for --without-all build + +2024-06-27 Stefan Monnier <monnier@iro.umontreal.ca> + + (buf_bytepos_to_charpos): Fix mixup introduced in commit b300052fb4ef + + * src/marker.c (buf_bytepos_to_charpos): Don't compare byte-positions + with char-positions. + +2024-06-27 F. Jason Park <jp@neverwas.me> + + Change ERC version to 5.6.1-git + + * doc/misc/erc.texi: Change ERCVER to 5.6.1. + * lisp/erc/erc.el: (erc-version): Change working version to 5.6.1-git. + Do the same for the package Version header. Don't bother updating + `customize-package-emacs-version-alist' until needed. + +2024-06-27 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 98daa10f065 ; * etc/PROBLEMS (PGTK): Remove redundant 2nd PGTK section. + ced33bc2397 Fix handling of non-nil 'dired-movement-style' + b1e9b6fd67d ; * lisp/gnus/message.el (message-idna-to-ascii-rhs): Doc... + 5eb9a0d2c79 ; * etc/NEWS: Fix last change (bug#71720). + 6ec77f580dd Do not prematurely truncate python eldoc string + f475a1a2544 ; Fix simple-tests as fallout of last change + aa10d0c5ac1 Add tests for `kill-whole-line' (bug#65734) + 058bb4ca25a kill-whole-line: Honor visibility; fix kill-ring when rea... + e45173d114e * lisp/hi-lock.el (hi-lock-file-patterns-policy): Add val... + d6afb017deb * lisp/progmodes/xref.el (xref-revert-buffer-restore-poin... + 82125b1a661 Use 'revert-function' in *xref* buffer + + # Conflicts: + # etc/NEWS + +2024-06-27 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 860840621a1 Prevent crashes and related issues if initial activity is... + d5c6eb1f964 Doc fix in 'php-ts-mode' + fb15affde8c Avoid compiler warnings in the Cygwin-w32 build + 8d354925ddb Add new face 'widget-unselected' to wid-edit.el + + # Conflicts: + # etc/NEWS + +2024-06-27 Po Lu <luangruo@yahoo.com> + + Disable preprocessing of assembler files with m4 on non-MIPS systems + + * exec/Makefile.in (is_mips): New substitution. + (.s.o): Avoid calling m4 unless it be set. + + * exec/configure.ac: Substitute is_mips, and don't generate + config-mips.m4 otherwise. + + * exec/loader-x86.s: + + * exec/loader-x86_64.s: Use assembler rather than m4-defined + comment syntax. + +2024-06-27 Stefan Kangas <stefankangas@gmail.com> + + Improve Local Directory Variables auto-insert + + * lisp/autoinsert.el (auto-insert-alist): Confirm after entering + in a non-existent mode in Local Directory Variables skeleton. + +2024-06-27 Stefan Kangas <stefankangas@gmail.com> + + Support .dir-locals-2.el in `auto-insert-mode` + + * lisp/autoinsert.el (auto-insert-alist): Use Directory Local Variables + skeleton also for ".dir-locals-2.el". + +2024-06-26 Stefan Monnier <monnier@iro.umontreal.ca> + + (quail-input-method): Fix bug#70541 + + * lisp/international/quail.el (quail-input-method): Don't bind + `inhibit-modification-hooks`. + (quail-point-in-conversion-region): Simplify. + +2024-06-26 Eshel Yaron <me@eshelyaron.com> + + Minor improvements to new Completion Preview commands + + * lisp/completion-preview.el (Commentary): Mention + `completion-preview-partial-insert' and elaborate about + `completion-preview-insert-sexp'. + (completion-preview--barf-if-no-preview): New function. + (completion-preview-insert, completion-preview-complete): + Use it. + (completion-preview-partial-insert): Rename arg to FUN; only + compute (+ end (length aft)) once; bind 'deactivate-mark' to + nil while inserting/deleting to allow commands that use this + function to work as expected with 'shift-select-mode'; + improve behavior when called with point not at the start of + the completion preview overlay (e.g. when point is in the + middle of a multi-word symbol and this function is called + via 'completion-preview-insert-word'); add the base part of + the completion candidate to when calling exit-function. + (completion-preview-insert-word): Improve docsting, rename + argument ARG to N. + (completion-preview-insert-sexp): Likewise, and also remove + second argument INTERACTIVE. + (completion-preview--active-p): Rename to... + (completion-preview-active-p): ...this. Make this function + public so users can leverage it for their own commands. + Extend docstring to explain how to do that. + + * test/lisp/completion-preview-tests.el + (completion-preview-insert-calls-exit-function) + (completion-preview-insert-word): Break long lines. + (completion-preview-insert-sexp) + (completion-preview-insert-nonsubword) + (completion-preview-insert-subword): Fix docstrings. + (completion-preview-insert-mid-symbol): New test. + +2024-06-26 Jules Tamagnan <jtamagnan@gmail.com> + + New commands 'completion-preview-insert-{word,sexp}' + + * lisp/completion-preview.el + (completion-preview-partial-insert): New function. + (completion-preview-insert-word) + (completion-preview-insert-sexp): New commands. + (completion-preview-commands): Add them. + (Commentary): Document them. + (completion-preview-active-mode-map): Add comment. + * test/lisp/completion-preview-tests.el + (completion-preview-insert-calls-exit-function): Update. + (completion-preview-insert-nonsubword) + (completion-preview-insert-subword) + (completion-preview-insert-sexp): New tests. (Bug#71716) + +2024-06-26 Jim Porter <jporterbugs@gmail.com> + + Always perform Eshell process cleanup runs in the Eshell buffer + + Previously, some code executed in a timer, which could execute in the + wrong buffer, leading to a hang. + + * lisp/eshell/esh-proc.el (eshell-sentinel): Use 'with-current-buffer' + in the timer function. + + * test/lisp/eshell/esh-proc-tests.el (eshell-test-value): New variable. + (esh-proc-test/sentinel/change-buffer): New test. + +2024-06-26 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 8b1841021c0 Avert crash in store_mode_line_string on Android 5.0 and ... + e7c85f9235a Use HarfBuzz in Cygwin-w32 build + 8e3e206bd32 ; * src/buffer.c (syms_of_buffer) <mode-line-format>: ASC... + +2024-06-26 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 2f18929319a Fix tabbing between widgets (bug#70594) + 6ad6507532b ; * lisp/which-key.el (which-key-dont-use-unicode): Add :... + +2024-06-25 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 60b38c317bb * lisp/touch-screen.el (touch-screen-inhibit-drag): Anoth... + +2024-06-25 Jim Porter <jporterbugs@gmail.com> + + Support rescaling sliced images in EWW via 'text-scale-mode' + + * src/xdisp.c (find_display_property): When the property value has + multiple elements, return the whole list. + + * lisp/net/eww.el (eww--rescale-images): Use 'get-display-property'. + + * doc/lispref/display.texi (Display Property): Describe the new + 'get-display-property' behavior (bug#71741). + +2024-06-25 Jim Porter <jporterbugs@gmail.com> + + Fix rescaling of images via 'text-scale-mode' in EWW + + * lisp/net/eww.el (eww--rescale-images): Handle a :scale of 'default' + (bug#71741). + +2024-06-25 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 0e43606b20d * lisp/touch-screen.el (touch-screen-inhibit-drag): Fix t... + +2024-06-25 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 1b4c5627211 Fix latent side-effects of respecting field boundaries in... + e4046f33ab8 ; * lisp/simple.el (undo-auto--boundaries): Doc fix (bug#... + 008eeb21fdb ; * lisp/language/cyrillic.el: Delete obsolete commentary... + 680155d3f03 Add missing builtin package declarations + +2024-06-25 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 7e8a97ac788 Show entries from key-translation-map in which-key mode + 4a0958642d9 * lisp/tab-bar.el (tab-bar-tab-group-face-function): Impr... + a769f171e7e ; Fix flymake tests with GCC 14. + 96e27c2ecf9 Don't show char name for multi-char translations + 0715abfa86a Reset ls-lisp-use-string-collate when ls-lisp-emulation c... + 4fcc38966bf Update to Transient v0.7.2-1-gf273c0c8 + +2024-06-25 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 164f75822b2 ; Fix typos + 768e92b9c02 Update options that depend on 'which-key-dont-use-unicode' + 4b2682b17cd ; Remove debugging message in Completion Preview test + +2024-06-24 Andreas Schwab <schwab@suse.de> + + * doc/misc/calc.texi (Musical Notes): Fix typo. + +2024-06-24 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 73a58329a69 Fix omission of updates to child frames on Android + +2024-06-24 Po Lu <luangruo@yahoo.com> + + Merge from savannah/emacs-30 + + 0edacf2aa7e Add jsdoc support to js-ts-mode + cace0cbee93 ; Restore inadvertently removed line. + 2b04effb13d ; * test/lisp/net/shr-tests.el (shr-test--rendering-check... + 6619aec6bca ; Don't run new 'shr-test/zoom-image' when built without ... + 5d19bfda321 ; * admin/release-branch.txt: Update and fix typo. + fb11294d415 ; Fix typos + +2024-06-23 Stefan Kangas <stefankangas@gmail.com> + + Ignore all dot-files in .gitignore + + * .gitignore: Ignore all dot-files except for those checked into Git. + This makes us less opinionated about using tools in the Emacs tree. + +2024-06-23 Stefan Kangas <stefankangas@gmail.com> + + Delete obsolete file process.cocci + + * admin/coccinelle/process.cocci: Delete file. This semantic patch was + converting code to use the PVAR macro, which was removed by Paul Eggert + on 2012-08-17 (commit 6a09a33b5551). + +2024-06-23 Stefan Kangas <stefankangas@gmail.com> + + Allow git 1.8.2 features in .gitignore + + * .gitignore: Assume git 1.8.2 or later; we already use the '**' feature + from that version since 2021. + +2024-06-23 Stefan Kangas <stefankangas@gmail.com> + + Prefer setq-local in reftex + + * lisp/textmodes/reftex-global.el (reftex-find-duplicate-labels) + (reftex-isearch-minor-mode): + * lisp/textmodes/reftex-index.el (reftex-index-mode) + (reftex-display-index, reftex-index-initialize-phrases-buffer) + (reftex-index-phrases-mode): + * lisp/textmodes/reftex-sel.el (reftex-select-label-mode) + (reftex-select-bib-mode, reftex-insert-docstruct, reftex-select-item): + * lisp/textmodes/reftex-toc.el (reftex-toc-mode, reftex-toc): + * lisp/textmodes/reftex.el (reftex-fontify-select-label-buffer): + Prefer setq-local. + +2024-06-23 Eli Zaretskii <eliz@gnu.org> + + * src/puresize.h (BASE_PURESIZE): Increase. + +2024-06-23 Eli Zaretskii <eliz@gnu.org> + + Update emacs-module for Emacs 31 + + * src/module-env-31.h: New file. + * src/module-env-30.h: + * configure.ac: + * src/emacs-module.h.in: Update emacs-module files for Emacs 31. + +2024-06-23 Eli Zaretskii <eliz@gnu.org> + + * lisp/cus-edit.el (customize-changed-options-previous-release): Bump version. + +2024-06-23 Eli Zaretskii <eliz@gnu.org> + + Bump Emacs version to 31.0.50 + + * README: + * configure.ac: + * nt/README.W32: + * msdos/sed2v2.inp: + * etc/refcards/ru-refcard.tex: + * etc/NEWS: Bump Emacs version to 31.0.50. + * etc/NEWS.30: New file. + +2024-06-23 Eli Zaretskii <eliz@gnu.org> + + Merge from origin/emacs-30 + + dd0fc6aff60 New branch emacs-30 + bc72c33ac38 * admin/admin.el: (set-version): Fix regexp for configure... + +2024-06-22 Michael Albinus <michael.albinus@gmx.de> + + Minor changes in tramp-tests.el + + * test/lisp/net/tramp-tests.el (tramp--test-shell-file-name): + Use connection-local value. + (tramp--test-shell-command-switch): New defun. + (tramp-test28-process-file) + (tramp-test34-explicit-shell-file-name): Use it. + (tramp--test-supports-processes-p): Simplify. + (tramp--test-check-files): Use `tramp-compat-seq-keep'. + (tramp-test45-asynchronous-requests): Don't let-bind `shell-file-name'. + (tramp-test45-asynchronous-requests): Adjust timer. + (tramp-test45-asynchronous-requests): Add another test message. + +2024-06-22 Michael Albinus <michael.albinus@gmx.de> + + Tramp: Fix bug#71709, and other minor changes + + * lisp/net/tramp-message.el (tramp-backtrace): Print also in batch mode. + + * lisp/net/tramp.el (tramp-skeleton-file-exists-p): Check for + property only. + (tramp-skeleton-make-process): Don't set `default-directory'. + (tramp-handle-make-process): Set it. (Bug#71709) + 2025-08-14 Eli Zaretskii <eliz@maintain0p.gnu.org> * Version 30.2 released. @@ -1460,7 +64583,7 @@ This file records repository revisions from commit 1cda0967b4d3c815fc610794ad6a8fc2b913a3c5 (exclusive) to -commit 49d64bfb1a4ca5fc8b3a4d215fb6cabbb9780f9b (inclusive). +commit 311f1fe2ba2a4d069715c992ba839645b55a9427 (inclusive). See ChangeLog.4 for earlier changes. ;; Local Variables: diff --git a/Makefile.in b/Makefile.in index 849a75c82c5..698895b79d1 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1313,7 +1313,7 @@ ChangeLog: ./$(emacslog) -o $(CHANGELOG) -n $(CHANGELOG_HISTORY_INDEX_MAX) # Check that we are in a good state for changing history. -PREFERRED_BRANCH = emacs-30 +PREFERRED_BRANCH = emacs-31 preferred-branch-is-current: git branch | grep -q '^\* $(PREFERRED_BRANCH)$$' unchanged-history-files: diff --git a/admin/authors.el b/admin/authors.el index 697f697f1f9..4771c101e56 100644 --- a/admin/authors.el +++ b/admin/authors.el @@ -49,9 +49,11 @@ files.") ("Alexander Gramiak" "Alex Gramiak") ("Alexandru Harsanyi" "Alex Harsanyi") ("Álvar Jesús Ibeas Martín" "Álvar Ibeas") + ("Álvaro Ramírez" "Alvaro Ramirez" "xenodium") (nil "ambihelical") ("Andrea Corallo" "AndreaCorallo") ("Andrii Kolomoiets" "andreyk\\.mad@gmail\\.com") + ("André A. Gomes" "Andre A. Gomes") ("Andrew Csillag" "Drew Csillag") ("Andrew G Cohen" "Andrew Cohen") ("Anna M. Bigatti" "Anna Bigatti") @@ -226,6 +228,7 @@ files.") (nil "pillule") (nil "psyberbits@gmail\\.com") ("Paul Eggert" "Paul R\\. Eggert") + ("Paul Nelson" "Paul D. Nelson") ("Pavel Janík" "Pavel Janík Ml\\." "Pavel Janik Ml\\." "Pavel Janik") ("Pavel Kobiakov" "Pavel Kobyakov") ("Per Abrahamsen" "Per Abhiddenware") @@ -700,7 +703,11 @@ Changes to files matching one of the regexps in this list are not listed.") "lisp/org/ob-picolisp.el" "lisp/obsolete/levents.el" "lisp/obsolete/lucid.el" - "lisp/obsolete/old-whitespace.el") + "lisp/obsolete/old-whitespace.el" + "doc/misc/modus-themes.texi" + "doc/misc/elisp-semantic-highlighting.org" + "lisp/emacs-lisp/scope.el" + "etc/yow.lines") "List of files and directories to ignore. Changes to files in this list are not listed.") @@ -1164,7 +1171,42 @@ AUTHORS file. There are also some more recent manual additions.") "admin/notes/tree-sitter/build-module/batch.sh" "doc/misc/gnus-coding.texi" "gnus-coding.texi" - "doc/misc/org.texi") + "doc/misc/org.texi" + ;; Unexec & pure space removal. + "src/puresize.h" + "src/sheap.c" + "src/sheap.h" + "src/unexec.h" + "src/unexaix.c" + "src/unexcoff.c" + "src/unexcw.c" + "src/unexelf.c" + "src/unexhp9k800.c" + "src/unexmacosx.c" + "src/unexsol.c" + "src/unexw32.c" + "src/firstfile.c" + "src/lastfile.c" + ;; Removed. + "nt/configure.bat" + "lisp/obsolete/cc-compat.el" + "lisp/obsolete/info-edit.el" + "lisp/obsolete/otodo-mode.el" + "lisp/obsolete/rcompile.el" + "lisp/terminal.el" + "lisp/obsolete/vi.el" + "lisp/obsolete/vip.el" + "doc/misc/vip.texi" + "lisp/obsolete/ws-mode.el" + "lisp/obsolete/yow.el" + "test/lisp/erc/resources/base/reconnect/ping-pong.eld" + "test/lisp/erc/resources/base/reconnect/proxy-solo.eld" + "test/lisp/erc/resources/erc-d/resources/proxy-solo.eld" + "admin/coccinelle/process.cocci" + "admin/coccinelle/window.cocci" + "admin/coccinelle/frame.cocci" + ;; Merged into various files in cl-lib. + "lisp/emacs-lisp/cl-types.el" "test/lisp/emacs-lisp/cl-types-tests.el") "File names which are valid, but no longer exist (or cannot be found) in the repository.") @@ -1416,7 +1458,7 @@ in the repository.") ("lisp/new/eww.el" . "eww.el") ; an actual typo in ChangeLog.3 ("gssapi.el" . "gssapi.el") ("lisp/gnus/gssapi.el" . "gssapi.el") - ("imap.el" . "net/imap.el") + ("imap.el" . "imap.el") ("mailcap.el" . "mailcap.el") ("gnus/mailcap.el" . "mailcap.el") ("lisp/gnus/mailcap.el" . "mailcap.el") @@ -1726,7 +1768,17 @@ in the repository.") ("lisp/vt100-led.el" . "lisp/obsolete/vt100-led.el") ("lisp/mail/metamail.el" . "lisp/obsolete/metamail.el") ("lisp/sb-image.el" . "lisp/obsolete/sb-image.el") - ("lisp/cedet/semantic/grammar-wy.el" . "lisp/cedet/semantic/grm-wy-boot.el")) + ("lisp/cedet/semantic/grammar-wy.el" . "lisp/cedet/semantic/grm-wy-boot.el") + ("lisp/vc/vc-dav.el" . "vc-dav.el") + ("test/lisp/vc/vc-tests.el" . "vc-tests.el") + ("admin/notes/elpa" . "elpa.md") + ("etc/NEWS.unknown" . "symbol-releases.eld") + ("test/lisp/eshell/eshell-tests-helpers.el" . "eshell-tests-helpers.el") + ("test/lisp/package-vc-tests.el" . "package-vc-tests.el") + ("test/lisp/vc/vc-misc-tests.el" . "vc-test-misc.el") + ("admin/treesit-admin.el" . "treesit-admin.el") + ("java/incrementing-version-code" . "AndroidManifest.xml.in") + ("etc/ctags.1" "ctags.1")) "Alist of files which have been renamed during their lifetime. Elements are (OLDNAME . NEWNAME).") diff --git a/etc/AUTHORS b/etc/AUTHORS index ff7c2cc4ee6..4547a4c618d 100644 --- a/etc/AUTHORS +++ b/etc/AUTHORS @@ -9,14 +9,15 @@ Aaron Ecay: changed ob-R.el ob-core.el org-src.el ox-latex.el nsterm.m ob-awk.el ob-exp.el ob-python.el ob-tangle.el org-bibtex.el org-id.el org.el org.texi package.el paren.el -Aaron Jensen: changed nsterm.m frameset.el xdisp-tests.el xdisp.c - Info.plist.in comp.el flyspell.el icomplete.el mouse.el - ruby-bracketed-args-indent.rb ruby-mode-tests.el ruby-mode.el server.el +Aaron Jensen: changed nsterm.m frameset.el ruby-bracketed-args-indent.rb + ruby-mode.el xdisp-tests.el xdisp.c Info.plist.in comp.el flyspell.el + icomplete.el mouse.el ruby-mode-tests.el ruby-ts-mode.el server.el systhread.c w32term.c xterm.c Aaron Larson: co-wrote bibtex.el -Aaron L. Zeng: changed savehist.el +Aaron L. Zeng: changed savehist.el emacs-module-tests.el emacs-module.c + eval.c lisp.h vc-hg.el Aaron S. Hawley: wrote lisp-tests.el undo-tests.el and changed simple.el files.texi isearch.el morse.el sgml-mode.el @@ -45,14 +46,16 @@ Adam Gołębiowski: changed lib-src/Makefile.in Adam Hupp: changed emacs.py emacs2.py emacs3.py gud.el progmodes/python.el +Adam Oudad: wrote tifinagh.el + Adam Porter: changed vtable.el tab-line.el cl-macs.el map.el control.texi map-tests.el pcase-tests.el tab-bar.el variables.texi vtable.texi Adam Sjøgren: changed mml2015.el shr.el spam.el xterm.c blink.xpm braindamaged.xpm cry.xpm dead.xpm evil.xpm forced.xpm frown.xpm gnus-sum.el grin.xpm gtkutil.c indifferent.xpm message.el - reverse-smile.xpm sad.xpm smile.xpm wry.xpm gnus-html.el - and 10 other files + reverse-smile.xpm sad.xpm smile.xpm wry.xpm gnus-delay.el + and 13 other files Adam Sokolnicki: changed ruby-mode.el @@ -81,7 +84,8 @@ and changed nsterm.m nsfns.m nsfont.m nsterm.h nsmenu.m configure.ac Agustín Martín: changed ispell.el flyspell.el fixit.texi -Ahmed Khanzada: changed battery.el nsterm.m +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 Gauland: wrote em-tramp.el and changed eshell.texi em-term.el em-unix.el erc-match.el em-cmpl.el @@ -109,13 +113,15 @@ and changed url-expand.el process.c url-parse.el w32proc.c message.el Alakazam Petrofsky: changed hanoi.el +Alan Coopersmith: changed configure.ac + Alan Mackenzie: wrote cc-awk.el debug-early.el and co-wrote cc-align.el cc-cmds.el cc-defs.el cc-engine.el cc-fonts.el cc-langs.el cc-mode.el cc-styles.el cc-vars.el and changed cc-mode.texi bytecomp.el minibuf.c edebug.el subr.el window.c - follow.el frame.c lisp.h display.texi eval.c keyboard.c lread.c - syntax.texi xdisp.c macroexp.el progmodes/compile.el programs.texi - fns.c font-lock.el modes.texi and 203 other files + frame.c follow.el lisp.h macroexp.el display.texi eval.c keyboard.c + lread.c syntax.texi xdisp.c progmodes/compile.el programs.texi + byte-run.el fns.c font-lock.el and 207 other files Alan Modra: changed unexelf.c @@ -127,10 +133,10 @@ Alan Shutko: changed diary-lib.el calendar.el bindings.el cal-hebrew.el solar.el Alan Third: wrote dabbrev-tests.el image-transforms-tests.el -and changed nsterm.m nsterm.h nsfns.m image.c nsmenu.m configure.ac - nsimage.m ns-win.el macfont.m dispextern.h nsfont.m frame.el - display.texi xdisp.c emacs.c frame.c frame.h image.el macos.texi - nsselect.m xterm.c and 39 other files +and changed nsterm.m nsterm.h image.c nsfns.m nsmenu.m configure.ac + nsimage.m ns-win.el macfont.m dispextern.h nsfont.m display.texi + frame.el xdisp.c emacs.c frame.c frame.h image.el macos.texi nsselect.m + xterm.c and 73 other files Alan Zimmerman: changed eglot.el @@ -141,8 +147,8 @@ and changed sieve.el gnus-msg.el gnus.texi message.el sieve.texi Albert L. Ting: changed gnus-group.el mail-hist.el -Aleksandr Vityazev: changed cl.texi epa.el epa.texi tramp-compat.el - treesit.el +Aleksandr Vityazev: changed vc.el cl.texi epa.el epa.texi package-vc.el + tramp-compat.el treesit.el Aleksei Gusev: changed progmodes/compile.el @@ -167,8 +173,8 @@ Alexander Klimov: changed files.el calc-graph.el files.texi man.el rx.el Alexander Kreuzer: changed nnrss.el -Alexander Kuleshov: changed dns-mode.el files.texi image-mode.el - keyboard.c ld-script.el xdisp.c +Alexander Kuleshov: changed dns-mode.el ld-script.el files.texi + image-mode.el keyboard.c xdisp.c Alexander L. Belikoff: wrote erc.el @@ -206,9 +212,9 @@ and changed emacs3.py vc-hooks.el vc.el xml.el Alexandr Vityazev: changed shortdoc.el Alex Bochannek: changed gnus-sum.el gnus.texi gnus-score.el gnus-topic.el - gnus-util.el gnus-fun.el gnus-group.el gnus.el ange-ftp.el gnus-art.el - kmacro-tests.el kmacro.el newst-ticker.el newsticker.texi nnimap.el - tramp-sh.el + gnus-util.el gnus-fun.el gnus-group.el gnus.el ange-ftp.el erc-track.el + gnus-art.el kmacro-tests.el kmacro.el newst-ticker.el newsticker.texi + nnimap.el tramp-sh.el vc-src.el Alex Coventry: changed files.el @@ -255,15 +261,13 @@ Ali Bahrami: changed configure configure.ac sol2-10.h Alin C. Soare: changed lisp-mode.el hexl.el Allen Li: changed abbrev.el abbrev-tests.el abbrevs.texi find-dired.el - recentf.el sending.texi autoload.el bookmark.el comint.el dired-aux.el - dired-x.el dired.texi elec-pair.el gnus-group.el misc.texi nsm.el + recentf.el sending.texi bookmark.el comint.el dired-aux.el dired-x.el + dired.texi elec-pair.el gnus-group.el misc.texi nsm.el progmodes/compile.el ring-tests.el ring.el sequences.texi subr.el xref.el Allen S. Rout: changed org-capture.el -Alon Albert: wrote rcompile.el - Alp Aker: changed nsfont.m nsterm.m buff-menu.el nsfns.m nsmenu.m nsterm.h configure.ac macfont.m mule-cmds.el nsselect.m process.c window.el @@ -272,17 +276,19 @@ Al Petrofsky: changed term.el Álvar Jesús Ibeas Martín: changed TUTORIAL.es emacs-lisp-intro.texi +Álvaro Ramírez: changed send-to.el Info.plist.in dired-tests.el dired.el + mouse.el ns-win.el nsfns.m nsterm.m + Alyssa Ross: changed progmodes/compile.el simple.el vc-git.el Ami Fischman: changed bindings.el calendar.el diary-lib.el print.c savehist.el vc-git.el -Amin Bandali: changed erc.el erc-button.el erc.texi erc-backend.el - erc-compat.el erc-match.el erc-track.el erc-dcc.el - erc-desktop-notifications.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 11 other files +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 Amos Bird: changed xfns.c @@ -290,6 +296,8 @@ Amritpal Singh: changed decompress.c Anand Mitra: changed gnus-sum.el +Anatolii Smolianinov: changed eglot.el + Anders Holst: wrote hippie-exp.el Anders Lindgren: wrote autorevert.el cwarn.el faceup-test-basics.el @@ -301,14 +309,18 @@ and changed nsterm.m nsfns.m nsmenu.m nsterm.h font-lock.el nsimage.m Anders Waldenborg: changed emacsclient.c -Andrea Corallo: wrote comp-common.el comp-cstr-tests.el comp-cstr.el - comp-run.el comp-tests.el comp.c comp.el syncdoc-type-hierarchy.el +Andrea Alberti: changed dispextern.h faces.el xdisp.c 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 + comp.el syncdoc-type-hierarchy.el and changed pdumper.c lread.c bytecomp.el configure.ac startup.el - loadup.el comp.h lisp.h cl-macs.el comp-test-funcs.el cl-preloaded.el - subr.el Makefile.in data.c elisp-mode.el nadvice.el alloc.c byte-run.el - emacs.c lisp/Makefile.in advice.el and 101 other files + comp-test-funcs.el lisp.h loadup.el comp.h cl-macs.el cl-preloaded.el + subr.el Makefile.in byte-run.el data.c elisp-mode.el nadvice.el alloc.c + emacs.c lisp/Makefile.in advice.el and 104 other files -André A. Gomes: changed ispell.el +André A. Gomes: changed bug-reference.el comint-tests.el comint.el + ispell.el Andrea Greselin: changed electric.el @@ -348,14 +360,14 @@ Andreas Politz: changed buffer-tests.el buffer.c itree.h filenotify.el inotify.c itree.c alloc.c editfns.c xdisp.c buffer.h bytecomp.el check-sanitize.sh configure.ac elp.el emacs-compat.h filecache.el fileio.c filenotify-tests.el fns.c frame.c ibuffer.el - and 30 other files + and 29 other files Andreas Rottmann: changed emacsclient.1 emacsclient.c misc.texi server.el Andreas Schwab: changed configure.ac lisp.h xdisp.c process.c alloc.c coding.c Makefile.in emacs.c files.el fileio.c keyboard.c fns.c lread.c xterm.c src/Makefile.in editfns.c print.c eval.c font.c xfns.c sysdep.c - and 664 other files + and 660 other files Andreas Seltenreich: changed nnweb.el gnus.texi message.el gnus-sum.el gnus.el nnslashdot.el gnus-srvr.el gnus-util.el mm-url.el mm-uu.el @@ -372,7 +384,7 @@ Andre Spiegel: changed vc.el vc-hooks.el vc-cvs.el vc-rcs.el vc-sccs.el parse-time.el startup.el tramp-vc.el vc-arch.el vc-mcvs.el vc-svn.el vcdiff viper-util.el -Andrés Ramírez: changed viper-cmd.el viperCard.tex +Andrés Ramírez: changed viper-cmd.el semantic/complete.el viperCard.tex Andre Srinivasan: changed gnus-group.el gnus-sum.el gnus.texi message.el mm-decode.el mml.el nnmail.el @@ -397,8 +409,8 @@ Andrew Eggenberger: changed cl-extra.el seq.el Andrew G Cohen: wrote nnselect.el spam-wash.el and changed nnir.el gnus-sum.el nnimap.el gnus-group.el gnus.texi gnus-search.el gnus-msg.el gnus-art.el gnus-int.el gnus.el - auth-source.el gnus-cache.el mailcap.el nnagent.el nnheader.el - nnspool.el deps.mk dns.el doc-view.el fns-tests.el fns.c + auth-source.el gnus-cache.el mailcap.el message.el message.texi + nnagent.el nnheader.el nnspool.el deps.mk dns.el doc-view.el and 21 other files Andrew Hall: changed paren.el @@ -409,7 +421,7 @@ Andrew Hyatt: changed bug-triage CONTRIBUTE buffer.c face-remap.el Andrew Innes: changed makefile.nt w32fns.c w32term.c w32.c w32proc.c fileio.c ms-w32.h w32-fns.el dos-w32.el w32term.h makefile.def unexw32.c w32menu.c w32xfns.c addpm.c cmdproxy.c emacs.c w32-win.el - w32inevt.c configure.bat lread.c and 126 other files + w32inevt.c configure.bat lread.c and 125 other files Andrew L. Moore: changed executable.el @@ -461,33 +473,37 @@ and changed erc.el erc-nicks-tests.el erc-tests.el erc.texi Angelo Graziosi: changed sysdep.c term.c +Ankit R Gadiya: changed go-ts-mode.el + Anmol Khirbat: changed ido.el Anna M. Bigatti: wrote cal-html.el Ansgar Burchardt: changed latin-ltx.el -Antero Mejr: changed custom.texi eww.el files.el variables.texi - em-unix.el eshell.texi files-tests.el pcmpl-git.el pcmpl-unix.el +Antero Mejr: changed files.el custom.texi emacsbug.el eww.el pcmpl-git.el + scheme.el variables.texi em-unix.el eshell.texi files-tests.el image.el + pcmpl-unix.el Antoine Beaupré: changed vc-git.el Antoine Kalmbach: changed README.md eglot.el -Antoine Levitt: changed gnus-group.el gnus-sum.el message.texi ada-prj.el +Antoine Levitt: changed gnus-group.el gnus-sum.el message.texi ange-ftp.el cus-edit.el dired-x.el ebnf2ps.el emerge.el erc-button.el erc-goodies.el erc-stamp.el erc-track.el files.el find-file.el gnus-art.el gnus-uu.el gnus.el gnus.texi message.el mh-funcs.el - and 9 other files + mh-mime.el and 8 other files Antonin Houska: changed newcomment.el Antonio Ruiz: changed handwrite.el Arash Esbati: changed reftex-vars.el efaq-w32.texi reftex-cite.el - reftex-tests.el reftex-parse.el reftex.el gnus.texi reftex-auc.el - reftex-dcr.el reftex-ref.el tex-mode.el align.el eglot.el ffap.el - ispell.el maintaining.texi nnmaildir.el reftex-global.el reftex-toc.el + reftex-tests.el reftex.texi reftex-parse.el reftex.el gnus.texi + ispell.el reftex-auc.el reftex-dcr.el reftex-ref.el tex-mode.el + align.el eglot.el ffap.el latexenc.el maintaining.texi nnmaildir.el + reftex-global.el reftex-toc.el Arik Mitschang: changed smime.el @@ -512,7 +528,8 @@ and changed frames.texi generic-x.el texinfo.el Arnold Noronha: changed ido.el -Arsen Arsenović: changed typescript-ts-mode.el +Arsen Arsenović: changed cc-langs.el c-ts-common.el ruler-mode.el + typescript-ts-mode.el Artem Chuprina: changed message.el @@ -525,13 +542,15 @@ Arthur Miller: changed help-fns.el ange-ftp.el bytecomp.el comp.c comp.el ls-lisp.el sysdep.c tramp-adb.el tramp-rclone.el tramp-sh.el tramp-smb.el tramp.el w32.c wdired.el +Arto Jantunen: changed em-alias-tests.el em-alias.el shr.el + Artur Malabarba: wrote char-fold-tests.el faces-tests.el isearch-tests.el let-alist.el simple-tests.el sort-tests.el tabulated-list-tests.el and changed package.el isearch.el char-fold.el files.el tabulated-list.el - package-test.el menu-bar.el replace.el bytecomp.el faces.el files-x.el + package-tests.el menu-bar.el replace.el bytecomp.el faces.el files-x.el custom.el custom.texi help-fns.el let-alist-tests.el simple.el subr-tests.el align.el bindings.el cl-lib-tests.el cl-macs.el - and 43 other files + and 41 other files Artyom Loenko: changed Info.plist.in @@ -539,6 +558,8 @@ Arun Isaac: changed quail/indian.el Arun Persaud: changed org-agenda.el org-src.el +Asher Copeland: changed simple.el + Asher Gordon: changed gomoku.el mml.el Ashish Shukla: changed emacs-gnutls.texi gnutls.el comp.el @@ -558,11 +579,11 @@ August Feng: changed bookmark.el Augustin Chéneau: changed c-ts-mode.el treesit.el Augusto Stoffel: co-wrote ansi-osc.el -and changed progmodes/python.el isearch.el eglot.el comint.el eldoc.el - progmodes/compile.el project.el README.md dired.el files.el - font-lock.el glasses.el man.el misc.texi modes.texi outline.el - pcmpl-git.el pcmpl-gnu.el pcmpl-linux.el pcmpl-rpm.el pcmpl-unix.el - and 11 other files +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 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 @@ -576,7 +597,8 @@ Axel Svensson: changed characters.el display.texi x-win.el Aymeric Agon-Rambosson: changed indent.el Azeem Hasan: wrote pakistan.el -and changed shr.el eww.el proced.el +and changed proced.el shr.el eww.el modes.texi pcmpl-rpm.el + tabulated-list.el url-queue.el Bahodir Mansurov: changed quail/cyrillic.el @@ -586,28 +608,30 @@ B. Anyos: changed w32term.c Baoqiu Cui: changed org-docbook.el +Baptiste Strazzulla: changed newst-plainview.el + +Barra Ó Catháin: changed bindings.el register.el regs.texi + Barry A. Warsaw: wrote elp.el man.el regi.el reporter.el supercite.el -and co-wrote cc-align.el cc-cmds.el cc-compat.el cc-defs.el cc-engine.el - cc-guess.el cc-langs.el cc-menus.el cc-mode.el cc-styles.el cc-vars.el +and co-wrote cc-align.el cc-cmds.el cc-defs.el cc-engine.el cc-guess.el + cc-langs.el cc-menus.el cc-mode.el cc-styles.el cc-vars.el and changed c++-mode.el cplus-md1.el syntax.c syntax.h Barry Fishman: changed configure.ac gnu-linux.h image.c Barry O'Reilly: changed simple.el lisp.h undo-tests.el eval.c keyboard.c markers.texi alloc.c bytecode.c casetab.c data.c fileio.c fw.el idle.el - insdel.c lread.c pulse.el search.c subr.el text.texi timer-tests.el - undo.c + insdel.c lread.c search.c subr.el text.texi timer-tests.el undo.c Bartosz Duszel: changed allout.el bib-mode.el cc-cmds.el hexl.el icon.el menu-bar.el meta-mode.el mouse.el pascal.el perl-mode.el senator.el - sendmail.el ses.el simple.el verilog-mode.el vi.el vip.el viper-cmd.el + sendmail.el ses.el simple.el verilog-mode.el vip.el viper-cmd.el xscheme.el -Basil L. Contovounesios: changed simple.el subr.el message.el eww.el - modes.texi custom.el text.texi bibtex.el eglot-tests.el js.el - gnus-sum.el internals.texi subr-tests.el customize.texi display.texi - files.texi gnus-art.el gnus-group.el gnus-win.el gnus.texi gravatar.el - and 371 other files +Basil L. Contovounesios: changed simple.el subr.el message.el modes.texi + eww.el custom.el text.texi bibtex.el display.texi eglot-tests.el js.el + json.el battery.el gnus-sum.el image.c internals.texi project.el + subr-tests.el customize.texi files.texi gnus-art.el and 404 other files Bastian Beischer: changed semantic/complete.el calc-yank.el include.el mru-bookmark.el refs.el senator.el @@ -643,8 +667,8 @@ Benjamin Ragheb: changed fortune.el Benjamin Riefenstahl: changed files.el image-mode.el nnrss-tests.el w32select.c emacs.c image.el lisp.h mac-win.el macterm.c ms-w32.h - mule-cmds.el mule-tests.el mule.el nnrss.el runemacs.c tcl.el thumbs.el - w32.c w32.h + mule-cmds.el mule-tests.el mule.el nnrss.el runemacs.c tcl.el w32.c + w32.h Benjamin Rutt: co-wrote gnus-dired.el and changed vc.el gnus-msg.el message.el diff-mode.el ffap.el nnimap.el @@ -663,6 +687,8 @@ Ben North: changed outline.el buffer.c fill.el isearch.el lisp-mode.el Ben Scuron: changed etags-regen.el +Ben Simms: changed nsimage.m nsterm.m + Benson Chu: changed font-lock.el tab-bar.el tramp-sh.el Bernhard Herzog: changed vc-hg.el menu.c xsmfns.c @@ -702,14 +728,21 @@ and changed mh-customize.el mh-search.el mh-alias.el mh-e.texi Makefile image.el mh-tool-bar.el mh-xemacs.el display.texi mh-pick.el and 82 other files +Billy Lei: wrote burmese.el + Billy Zheng: changed README.md eglot.el +Binbin Ye: changed json-ts-mode-tests.el json-ts-mode.el + Bjarte Johansen: wrote ob-sed.el and changed use-package-bind-key.el +Björn Bidar: changed sieve.el url-auth.el browse-url.el nnregistry.el + sieve.texi + Björn Holby: changed vhdl-mode.el -Björn Lindström: changed rcirc.texi +Björn Lindström: changed rcirc.texi whitespace.el Bjørn Mork: changed nnimap.el gnus-agent.el message.el mml2015.el @@ -743,6 +776,8 @@ Bogdan Creanga: changed sequences.texi strings.texi symbols.texi Bojan Petrovic: changed pop3.el +Boris Buliga: changed nsterm.m + Boris Goldowsky: wrote avoid.el descr-text.el enriched.el facemenu.el format.el shadowfile.el and changed fill.el simple.el indent.el paragraphs.el cmds.c intervals.c @@ -784,6 +819,8 @@ Brent Goodrick: changed abbrev.el Brent Westbrook: changed eudcb-mailabbrev.el +Bret Mogilefsky: co-wrote lua-mode.el + Brian Burns: changed INSTALL INSTALL.W64 Brian Cully: wrote tramp-container.el @@ -795,7 +832,7 @@ Brian D. Carlstrom: changed gud.el smtpmail.el Brian Fox: changed Makefile.in Makefile configure.ac minibuf.c dired.el files.el lib-src/Makefile.in oldXMenu/Makefile.in rmail.el search.c simple.el sysdep.c compile.el forms.texi frame.c keyboard.c make-dist - subr.el systty.h texindex.c xterm.c and 47 other files + subr.el systty.h texindex.c xterm.c and 46 other files Brian Jenkins: changed frame.c frames.texi hooks.texi @@ -813,7 +850,7 @@ Brian Palmer: changed erc.el erc-list.el Brian Preble: changed abbrev.el apropos.el asm-mode.el awk-mode.el bytecomp.el c++-mode.el cal.el calc.el chistory.el cl-indent.el compare-w.el compile.el dabbrev.el debug.el diary.el diff.el dired.el - doctex.el doctor.el ebuff-menu.el echistory.el and 129 other files + doctex.el doctor.el ebuff-menu.el edebug.el and 124 other files Brian P Templeton: changed erc.el erc-compat.el erc-fill.el erc-nickserv.el erc-pcomplete.el erc-stamp.el erc-track.el lread.c @@ -825,11 +862,13 @@ Brian van den Broek: changed org.texi Bruce Stephens: changed calc-ext.el +Bruno Boal: changed erc-spelling.el + Bruno Félix Rezende Ribeiro: changed os.texi finder.el functions.texi gnus.texi info.el lisp-mnt.el package.el Bruno Haible: co-wrote po.el -and changed INSTALL emacs.1 epaths.in info.el paths.el +and changed INSTALL emacs.1 epaths.in info.el Bryan C. Mills: changed lread.c @@ -886,7 +925,10 @@ and changed ox.el ox-latex.el org.texi org-remember.el orgcard.tex Caveh Jalali: changed configure.ac intel386.h sol2-4.h -Cecilio Pardo: changed DEVEL.HUMOR +Cecilio Pardo: changed w32-win.el w32dwrite.c w32fns.c w32term.c + w32gdiplus.h w32image.c w32term.h DEVEL.HUMOR configure.ac dispextern.h + frames.texi image.c mailcap.el sgml-mode.el sound.c w32font.c w32menu.c + w32select.c w32uniscribe.c yank-media.el Cédric Chépied: changed newst-treeview.el tree-widget.el @@ -899,7 +941,8 @@ Changwoo Ryu: changed files.el Chao-Hong Liu: changed TUTORIAL.cn TUTORIAL.zh -Charalampos Mitrodimas: changed keymap.el locate.el srecode/find.el +Charalampos Mitrodimas: changed keymap.el locate.el nsterm.m + srecode/find.el Charles A. Roelli: changed vc.el nsterm.m simple.el nsfns.m isearch.el nsmenu.m nsterm.h process.c register.el diff-mode.el display.texi @@ -934,12 +977,12 @@ and co-wrote longlines.el tango-dark-theme.el tango-theme.el and changed simple.el display.texi xdisp.c files.el frames.texi cus-edit.el files.texi custom.el subr.el text.texi faces.el keyboard.c startup.el package.el misc.texi emacs.texi modes.texi mouse.el - custom.texi image.c window.el and 934 other files + custom.texi image.c window.el and 903 other files Chris Chase: co-wrote idlw-shell.el idlwave.el -Chris Feng: changed dispnew.c keyboard-tests.el keyboard.c autoload.el - frame.c process.c +Chris Feng: changed dispnew.c keyboard-tests.el keyboard.c frame.c + process.c Chris Foote: changed progmodes/python.el @@ -969,6 +1012,8 @@ Chris Newton: changed url-http.el Chris Prince: changed w32term.c +Chris Roberts: changed sqlite.c + Chris Smith: wrote icon.el and changed icon-mode.el @@ -1004,10 +1049,14 @@ Christian Plaunt: wrote soundex.el Christian Schwarzgruber: changed epa.el +Christian Vogler: co-wrote lua-mode.el + Christian von Roques: changed mml2015.el epg.el gnus-start.el Christian Wittern: changed image-mode.el +Christoph Badura: changed log-edit-tests.el log-edit.el + Christoph Bauer: changed configure.ac Christoph Conrad: changed gnus-agent.el gnus-score.el qp.el @@ -1016,7 +1065,7 @@ Christoph Dittmann: changed ox-beamer.el Christophe de Dinechin: co-wrote ns-win.el -Christophe Deleuze: changed ange-ftp.el icalendar.el image-dired.el +Christophe Deleuze: changed ange-ftp.el icalendar.el Christoph Egger: changed configure.ac @@ -1049,7 +1098,7 @@ Christopher Wellons: changed emacs-lisp/cl-lib.el hashcash.el viper-cmd.el viper-ex.el viper-init.el viper.el Christophe Troestler: changed rust-ts-mode.el gnus-icalendar.el epg.el - newcomment.el + font-lock-number.rs font-lock.rs newcomment.el rust-ts-mode-tests.el Christoph Göttschkes: changed make-mode.el @@ -1060,9 +1109,9 @@ Christoph Scholtes: changed README.W32 progmodes/python.el stdint.h progmodes/grep.el and 5 other files Christoph Wedler: wrote antlr-mode.el -and changed progmodes/python.el format.el gnus-art.el gnus-picon.el - message.el prog-mode.el python-tests.el register.el smiley.el - texinfmt.el +and changed progmodes/python.el files.el format.el gnus-art.el + gnus-picon.el message.el prog-mode.el python-tests.el register.el + smiley.el texinfmt.el Chris Zheng: changed gnutls.c calculator.el json.c w32-win.el @@ -1095,13 +1144,17 @@ and changed calc.el replace.el update-game-score.c calc-ext.el calc-misc.el calc-macs.el calc-mode.el calc-graph.el gamegrid.el calc-aent.el calc-bin.el calc-embed.el calc-keypd.el calc-math.el calc-prog.el calc-units.el calcalg2.el font-core.el info.el calc-alg.el - calc-arith.el and 81 other files + calc-arith.el and 80 other files Colin Williams: changed calc.texi Colin Woodbury: changed cl-seq.el files.el progmodes/python.el files.texi frame.c macros.texi shortdoc.el +Collin Funk: changed coding.c configure.ac fns-tests.el fns.c + gnulib-comp.m4 gnulib.mk.in gnutls-tests.el merge-gnulib sha3.c sha3.h + sha3.m4 text.texi + Constantin Kulikov: changed server.el startup.el Constantino Calancha: changed dired.el @@ -1159,8 +1212,8 @@ Damon Anton Permezel: wrote hanoi.el (public domain) Damyan Pepper: changed font.c font.h ftfont.c w32font.c Dan Christensen: changed gnus-sum.el nndoc.el nnfolder.el gnus-art.el - gnus-group.el gnus-registry.el gnus-score.el gnus-util.el nnmail.el - spam.el time-date.el + gnus-group.el gnus-registry.el gnus-score.el gnus-util.el nnimap.el + nnmail.el spam.el time-date.el Dan Davison: wrote ob-matlab.el ob-octave.el and co-wrote ob-R.el ob-core.el ob-exp.el ob-java.el ob-lob.el ob-perl.el @@ -1184,15 +1237,17 @@ Daniel Colascione: wrote alloc-tests.el generator-tests.el generator.el lisp-tests.el and co-wrote js.el and changed keyboard.c emacs.c w32fns.c alloc.c image.c cl-macs.el - frame.c lisp.h src/Makefile.in configure.ac frame.el process.c xterm.el - sh-script.el xfaces.c xterm.c coding.c cygw32.c data.c dbusbind.c fns.c - and 213 other files + frame.c lisp.h src/Makefile.in term.el configure.ac frame.el process.c + xfaces.c xterm.el sh-script.el xterm.c coding.c cygw32.c data.c + dbusbind.c and 227 other files Daniel Dehennin: changed gnus-mlspl.el mml2015.el gnus-msg.el gnus.texi mm-decode.el nnmail.el ox.el Daniel E. Doherty: changed calc.texi +Daniel Eklöf: changed xterm.el + Daniel Elliott: changed octave.el Daniel Engeler: changed sysdep.c elisp.texi emacs.texi internals.texi @@ -1207,12 +1262,12 @@ Daniel Freeman: changed eglot.el js.el eglot.texi Daniel Gröber: changed rxvt.el Daniel Hackney: wrote package-tests.el -and co-wrote package.el -and changed package-test.el package-x.el ange-ftp.el - automated/Makefile.in browse-url.el dbus.el dired-x.el ediff-diff.el - ediff-init.el ediff-merg.el ediff-mult.el ediff-util.el ediff-wind.el - ediff.el emacsclient.c emerge.el eudc.el eudcb-ldap.el eww.el finder.el - imap.el and 6 other files +and co-wrote package-activate.el package.el +and changed ange-ftp.el automated/Makefile.in browse-url.el dbus.el + dired-x.el ediff-diff.el ediff-init.el ediff-merg.el ediff-mult.el + ediff-util.el ediff-wind.el ediff.el emacsclient.c emerge.el eudc.el + eudcb-ldap.el eww.el finder.el imap.el pcvs.el printing.el + and 4 other files Daniel Jensen: changed apropos.el @@ -1244,8 +1299,10 @@ Daniel McClanahan: changed lisp-mode.el Daniel M Coffman: changed arc-mode.el Daniel Mendler: co-wrote compat.el -and changed minibuffer.el minibuf.texi simple.el elp.el help-fns.el - info.el minibuf.c minibuffer-tests.el xref.el +and changed minibuffer.el simple.el browse-url.el ibuffer.el crm.el + eww.el minibuf.texi project.el buffer-tests.el buffer.c buffer.h + dispextern.h display.texi faces.el frame.c frame.h package.el + picture.el subr-tests.el subr.el window.c and 30 other files Daniel M German: co-wrote org-protocol.el @@ -1254,7 +1311,7 @@ Daniel Néri: changed message.el Daniel Ortmann: changed paragraphs.el Daniel Pettersson: changed jsonrpc.el em-cmpl.el erc-dcc-tests.el - erc-dcc.el + erc-dcc.el nsterm.m Daniel Pfeiffer: wrote conf-mode.el copyright.el executable.el sh-script.el skeleton.el two-column.el @@ -1279,6 +1336,8 @@ Daniel Schoepe: changed gnus-sum.el Daniel Semyonov: wrote nnatom.el nnfeed.el and changed mairix.el gnus.el gnus.texi package-vc.el +Daniel Watson: changed eww.el + Dani Moncayo: changed msys-to-w32 Makefile.in configure.ac buffers.texi lists.texi mini.texi INSTALL README.W32 basic.texi custom.texi dired.texi display.texi emacs-lisp-intro.texi files.texi killing.texi @@ -1291,7 +1350,7 @@ and co-wrote hideshow.el and changed vc.el configure.ac vc-hg.el vc-git.el src/Makefile.in vc-bzr.el sysdep.c emacs.c process.c vc-cvs.el lisp.h term.c vc-hooks.el xterm.c keyboard.c vc-svn.el xterm.el callproc.c darwin.h - term.el gnu-linux.h and 920 other files + term.el gnu-linux.h and 911 other files Danny Freeman: changed treesit-tests.el treesit.el @@ -1331,7 +1390,7 @@ and co-wrote latin-ltx.el socks.el and changed configure.ac help.el mule-cmds.el fortran.el mule-conf.el xterm.c browse-url.el mule.el coding.c src/Makefile.in european.el fns.c mule-diag.el simple.el wid-edit.el cus-edit.el cus-start.el - files.el keyboard.c byte-opt.el info.el and 771 other files + files.el keyboard.c byte-opt.el info.el and 768 other files Dave Pearson: wrote 5x5.el quickurl.el @@ -1359,7 +1418,7 @@ David Byers: changed minibuf.c David Cadé: changed mpc.el -David Caldwell: changed unexmacosx.c vc-hooks.el +David Caldwell: changed nsterm.m unexmacosx.c vc-hooks.el David Casperson: changed font-core.el menu-bar.el tex-mode.el @@ -1380,12 +1439,16 @@ and changed cedet/semantic.el db.el insert.el semantic/complete.el c.by c.el db-el.el db-file.el db-find.el ede-grammar.el eieio-opt.el eieio.el eieio.texi gnus.texi registry.el srecode/compile.el wisent/python.el analyze.el bovine/el.el bovine/grammar.el - decorate/mode.el and 88 other files + decorate/mode.el and 87 other files Davide Pola: changed comp-cstr.el comp-run.el David Florness: changed eglot.el +David Fussner: changed package-vc.el tex-mode.el CTAGS.good ETAGS.good_1 + ETAGS.good_2 ETAGS.good_3 ETAGS.good_4 ETAGS.good_5 ETAGS.good_6 + etags.c maintaining.texi + David Gillespie: wrote calc-aent.el calc-alg.el calc-arith.el calc-bin.el calc-comb.el calc-cplx.el calc-embed.el calc-ext.el calc-fin.el calc-forms.el calc-frac.el calc-funcs.el calc-graph.el calc-help.el @@ -1413,7 +1476,7 @@ David Hull: changed etags.c vc-hg.el David Hunter: changed flymake.el ms-w32.h process.c -David J. Biesack: changed antlr-mode.el quickurl.el +David J. Biesack: changed antlr-mode.el David J. MacKenzie: changed configure.ac Makefile.in etags.c fakemail.c cvtmail.c movemail.c termcap.c wakeup.c yow.c Makefile avoid.el b2m.c @@ -1426,12 +1489,12 @@ and changed sendmail.el xmenu.c David Kastrup: changed greek.el replace.el subr.el efaq.texi search.c gnus-art.el help.el keymaps.texi mouse.el woman.el ange-ftp.el calc.el cperl-mode.el desktop.el ebrowse.el info.el keyboard.c keymap.c - keymap.h kmacro.el lisp-mnt.el and 98 other files + keymap.h kmacro.el lisp-mnt.el and 96 other files David Lawrence: changed comint.el simple.el files.el c++-mode.el compile.el inf-lisp.el shell.el emerge.el tex-mode.el c-mode.el cl.el dired.el getdate.y gnus.el history.el lisp-mode.el lisp.el mh-e.el - rnews.el subr.el Makefile and 79 other files + rnews.el subr.el Makefile and 77 other files David Leatherman: co-wrote erc-nicks.el and changed erc-nicks-tests.el erc-tests.el erc.el erc.texi @@ -1479,10 +1542,10 @@ 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 image.el w32menu.c w32term.c close.png close.xpm empty.png +and changed subr-x.el wid-edit.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 leaf.xpm no-guide.png - no-guide.xpm no-handle.png no-handle.xpm and 25 other files + handle.png handle.xpm keyboard.c leaf.png and 36 other files David Raynes: changed ns-win.el @@ -1512,10 +1575,10 @@ Debarshi Ray: changed erc-backend.el erc.el Decklin Foster: changed nngateway.el -Deepak Goel: changed idlw-shell.el ada-xref.el feedmail.el files.el - find-func.el flymake.el mh-search.el mh-seq.el mh-thread.el mh-xface.el - org.el simple.el vc.el vhdl-mode.el wdired.el README ada-mode.el - allout.el appt.el apropos.el artist.el and 85 other files +Deepak Goel: changed feedmail.el files.el find-func.el flymake.el + mh-search.el mh-seq.el mh-thread.el mh-xface.el org.el simple.el vc.el + vhdl-mode.el wdired.el README allout.el appt.el apropos.el artist.el + bibtex.el bindings.el bookmark.el and 78 other files D. E. Evans: changed basic.texi @@ -1535,8 +1598,8 @@ Denis Zubarev: changed treesit-tests.el progmodes/python.el Deniz Dogan: changed rcirc.el simple.el css-mode.el TUTORIAL.sv commands.texi erc-backend.el erc-log.el erc.el image.el iswitchb.el - lisp-mode.el process.c progmodes/python.el quickurl.el rcirc.texi - vc/vc-bzr.el wdired.el window.el + lisp-mode.el process.c progmodes/python.el rcirc.texi vc/vc-bzr.el + wdired.el window.el Dennis Gilmore: changed sparc.h @@ -1565,7 +1628,7 @@ Devon Sean McCullough: changed url-http.el buff-menu.el comint.el Dhruva Krishnamurthy: changed emacsclient.c fontset.c image.c sound.c w32proc.c -Diancheng Wang: changed gdb-mi.el gud.el +Diancheng Wang: changed gud.el gdb-mi.el Diane Murray: changed erc.el erc-backend.el erc-menu.el erc-button.el erc-track.el erc-match.el erc-nets.el erc-list.el erc-autoaway.el @@ -1587,6 +1650,8 @@ and changed nntp.el message.el gnus-group.el gnus-sum.el gnus-msg.el gnus-util.el message.texi nnmail.el rect.el cl-indent.el gmm-utils.el and 10 other files +Diep Pham: changed eglot.el + Dieter Deyke: changed vc-src.el Dieter Schoen: wrote ob-lua.el @@ -1605,7 +1670,7 @@ Dionisio E Alonso: changed eglot.el Dirk Herrmann: co-wrote bibtex.el -Dirk-Jan C. Binnema: changed org-agenda.el +Dirk-Jan C. Binnema: changed configure.ac org-agenda.el xwidget.c Dirk Ullrich: changed ispell.el @@ -1616,7 +1681,7 @@ Dmitri Paduchikh: changed advice.el Dmitry Antipov: changed lisp.h xdisp.c alloc.c xterm.c frame.c buffer.c xfns.c window.c font.c w32term.c frame.h keyboard.c nsterm.m w32fns.c editfns.c xterm.h xfaces.c dispnew.c fileio.c dispextern.h fns.c - and 276 other files + and 271 other files Dmitry Bolshakov: changed hideshow.el @@ -1627,11 +1692,11 @@ Dmitry Gorbik: changed org.el Dmitry Gutov: wrote elisp-mode-tests.el etags-regen.el jit-lock-tests.el json-tests.el vc-hg-tests.el xref-tests.el -and changed xref.el project.el ruby-mode.el ruby-ts-mode.el vc-git.el - js.el elisp-mode.el ruby-mode-tests.el vc.el etags.el package.el - vc-hg.el minibuffer.el simple.el symref/grep.el progmodes/python.el - ruby-ts-mode-tests.el treesit.el dired-aux.el log-edit.el - rust-ts-mode.el and 175 other files +and changed project.el xref.el ruby-mode.el vc-git.el ruby-ts-mode.el + vc.el elisp-mode.el js.el etags.el ruby-mode-tests.el vc-hg.el + package.el minibuffer.el maintaining.texi simple.el symref/grep.el + progmodes/python.el ruby-ts-mode-tests.el treesit.el dired-aux.el + project-tests.el and 189 other files Dmitry Kurochkin: changed isearch.el @@ -1666,15 +1731,17 @@ and co-wrote color.el and changed dired.el cus-edit.el imenu.el info.el ls-lisp.el menu-bar.el dired-aux.el dired.texi faces.el files.el frame.el help-fns.el help-mode.el help.el help.texi isearch.el modes.texi mouse.el - wid-edit.el ange-ftp.el apropos.el and 25 other files + wid-edit.el ange-ftp.el apropos.el and 24 other files + +Dr.Sc.Kawamoto,Takuji: changed nsterm.m Duncan Findlay: changed frame.el keyboard.c xterm.el -Earl Hyatt: changed kmacro.el autotype.texi ffap.el kmacro.texi map.el - seq-tests.el sequences.texi windows.texi control.texi cus-edit.el - edmacro.el eshell.texi hi-lock.el map-tests.el misc.texi package-vc.el - package.texi pcase-tests.el pcase.el replace.el search.texi - and 4 other files +Earl Hyatt: changed kmacro.el autotype.texi cl-macs-tests.el ffap.el + kmacro.texi map.el seq-tests.el sequences.texi windows.texi + cl-lib-tests.el cl-macs.el cl.texi control.texi cus-edit.el delsel.el + edmacro.el eshell.texi hi-lock.el map-tests.el mark.texi misc.texi + and 10 other files E. Choroba: changed cperl-mode.el simple.el @@ -1714,13 +1781,17 @@ Ehud Karni: changed rmail.el aviion-intel.h complete.el configure.ac Eirik Fuller: changed ralloc.c xterm.c -E. Jay Berkenbilt: changed b2m.c flyspell.el ispell.el unrmail.el - whitespace.el window.h +E. Jay Berkenbilt: changed b2m.c flyspell.el unrmail.el whitespace.el + window.h Elad Lahav: changed configure.ac -Elías Gabriel Pérez: changed flymake.el flymake.texi image.c w32term.c - w32term.h +Elías Gabriel Pérez: wrote ring-bell-fns.el +and changed hideshow.el programs.texi treesit.el hideshow-tests.el + progmodes/python.el electric.el fortran.el icon.el lisp-mode.el + lua-mode.el nxml-mode.el progmodes/f90.el project.el sgml-mode.el + tab-line.el verilog-mode.el vhdl-mode.el README bibtex.el cc-mode.el + display.texi and 58 other files Elias Oltmanns: changed tls.el gnus-agent.el gnus-cite.el gnus-int.el gnus-srvr.el gnus.el nnimap.el @@ -1739,8 +1810,8 @@ Eli Zaretskii: wrote [bidirectional display in xdisp.c] 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 window.c - dispextern.h lisp.h and 1409 other files + dispnew.c frames.texi files.texi w32proc.c xfaces.c process.c window.c + dispextern.h and 1437 other files Eliza Velasquez: changed server.el simple.el @@ -1759,14 +1830,16 @@ Emanuele Giaquinta: changed configure.ac rxvt.el charset.c etags.c Emil Åström: co-wrote prolog.el +Emil Ingelman Sahlén: changed window.el + Emilio C. Lopes: changed woman.el cmuscheme.el help.el vc.el advice.el animate.el apropos.el artist.el bookmark.el cal-menu.el calc-prog.el calc-store.el calcalg3.el calendar.el calendar.texi checkdoc.el code-pages.el codepage.el completion.el cus-edit.el diff.el - and 58 other files + and 57 other files Emmanuel Briot: wrote xml.el -and changed ada-mode.el ada-stmt.el ada-prj.el ada-xref.el +and changed ada-stmt.el Era Eriksson: changed bibtex.el dired.el json.el ses.el ses.texi shell.el tramp.el tramp.texi @@ -1790,6 +1863,8 @@ and changed mh-utils.el mh-e.el mh-comp.el mh-mime.el Eric Eide: changed gnus-xmas.el +Eric Frederickson: changed eshell.texi + Eric Hanchrow: changed erc.el vc-git.el TUTORIAL.es abbrev.el autorevert.el cperl-mode.el dired.el emacsclient.c env.el frames.texi ibuf-ext.el ispell.el ldap.el make-dist opascal.el progmodes/python.el @@ -1799,7 +1874,8 @@ Eric Hanchrow: changed erc.el vc-git.el TUTORIAL.es abbrev.el Eric Knauel: changed gnus.el spam-report.el spam.el -Eric Marsden: changed gnus-cache.el url-util.el +Eric Marsden: changed bytecomp.el gnus-cache.el process.c processes.texi + url-util.el Eric M. Ludlam: wrote analyze.el analyze/complete.el analyze/debug.el args.el auto.el autoconf-edit.el base.el bovine.el bovine/debug.el @@ -1838,16 +1914,16 @@ and changed c.srt ede.texi info.el rmail.el speedbspec.el cedet.el ede-autoconf.srt ede-make.srt eieio.texi gud.el sb-dir-minus.xpm sb-dir-plus.xpm sb-dir.xpm sb-mail.xpm sb-pg-minus.xpm sb-pg-plus.xpm sb-pg.xpm sb-tag-gt.xpm sb-tag-minus.xpm sb-tag-plus.xpm - and 35 other files + and 34 other files -Eric Schulte: wrote ob-awk.el ob-calc.el ob-comint.el ob-css.el - ob-ditaa.el ob-dot.el ob-emacs-lisp.el ob-eval.el ob-forth.el - ob-gnuplot.el ob-haskell.el ob-js.el ob-latex.el ob-makefile.el - ob-ocaml.el ob-org.el ob-ruby.el ob-sass.el ob-shell.el ob-sql.el - ob-sqlite.el ob-table.el ob-tangle.el ob.el org-plot.el -and co-wrote ob-C.el ob-R.el ob-core.el ob-exp.el ob-fortran.el - ob-java.el ob-lisp.el ob-lob.el ob-maxima.el ob-perl.el ob-python.el - ob-ref.el ob-scheme.el ol-bibtex.el +Eric Schulte: wrote ob-awk.el ob-calc.el ob-comint.el ob-css.el ob-dot.el + ob-emacs-lisp.el ob-eval.el ob-forth.el ob-gnuplot.el ob-haskell.el + ob-js.el ob-latex.el ob-makefile.el ob-ocaml.el ob-org.el ob-ruby.el + ob-sass.el ob-shell.el ob-sql.el ob-sqlite.el ob-table.el ob-tangle.el + ob.el org-plot.el +and co-wrote ob-C.el ob-R.el ob-core.el ob-ditaa.el ob-exp.el + ob-fortran.el ob-java.el ob-lisp.el ob-lob.el ob-maxima.el ob-perl.el + ob-python.el ob-ref.el ob-scheme.el ol-bibtex.el and changed org.texi org.el ob-clojure.el org-exp-blocks.el ob-sh.el org-bibtex.el ox.el ox-latex.el org-src.el ob-plantuml.el ob-keys.el ob-screen.el org-macs.el org-table.el org-agenda.el org-mouse.el @@ -1865,7 +1941,7 @@ and co-wrote make-mode.el and changed vc.el vc-hooks.el vc-svn.el vc-cvs.el vc-git.el vc-rcs.el vc-sccs.el vc-hg.el vc-bzr.el vc-dispatcher.el files.texi vc-mcvs.el vc-mtn.el files.el vc-arch.el comint.el emacsbug.el simple.el vc-src.el - Makefile.in add-log.el and 275 other files + Makefile.in add-log.el and 269 other files Eric Youngdale: changed etags-vmslib.c @@ -1879,7 +1955,7 @@ Erik Naggum: wrote disp-table.el mailheader.el parse-time.el and changed simple.el emacs.c files.el lread.c rmail.el alloc.c editfns.c keyboard.c apropos.el configure.ac dispnew.c filelock.c fns.c keymap.c lisp.h print.c process.c add-log.el buffer.c casetab.c cl-macs.el - and 114 other files + and 113 other files Erik Toubro Nielsen: changed gnus-sum.el gnus-topic.el @@ -1889,22 +1965,24 @@ Ernest N. Mamikonyan: changed texinfo.el Ernesto Alfonso: changed simple.el -E Sabof: changed hi-lock.el image-dired.el +E Sabof: changed hi-lock.el -Eshel Yaron: wrote completion-preview.el -and changed eglot.el emoji.el eww.el help-fns.el info.el programs.texi - text-mode.el window.c xdisp.c xref.el bookmark.el - completion-preview-tests.el dictionary.el easy-mmode.el eldoc.el - emacs.texi eww.texi fixit.texi frames.texi help-mode.el help.el - and 14 other files +Eshel Yaron: wrote completion-preview.el elisp-scope.el +and changed completion-preview-tests.el programs.texi eglot.el + elisp-mode.el emacs.texi emoji.el eww.el help-fns.el info.el + minibuffer-tests.el minibuffer.el text-mode.el window.c xdisp.c xref.el + bookmark.el dictionary.el display.texi easy-mmode.el eldoc.el + elec-pair.el and 21 other files Espen Skoglund: wrote pascal.el Espen Wiborg: changed utf-7.el -Ethan Bradford: changed ispell.el ange-ftp.el gnus.el gnuspost.el lpr.el +Ethan Bradford: changed ange-ftp.el gnus.el gnuspost.el lpr.el mailalias.el vt-control.el +Ethan Kong: changed fns.c + Ethan Ligon: changed org-docbook.el ox-html.el Etienne Prud’Homme: changed align.el css-mode-tests.el css-mode.el @@ -1933,13 +2011,21 @@ Evgeny Roubinchtein: changed mail-source.el pc-select.el Evgeny Zajcev: changed battery.el image.c image.el quail.el +Ewan Townshend: wrote [24-bit color support for MS-Windows console] +and changed cmdargs.texi faces.el msdos.texi startup.el term.c + tty-colors.el w32console.c w32console.el xdisp.c + Exal de Jesus Garcia Carrillo: changed erc-sound.el erc.texi Eyal Lotem: changed ido.el +Eyal Soha: changed tramp-sh.el + Fabián Ezequiel Gallina: wrote progmodes/python.el subr-x-tests.el and changed python-tests.el subr-x.el imenu.el wisent/python.el +Fabio Natali: changed eww.el + Fabrice Bauzac: changed objects.texi dired-aux.el fixit.texi ibuf-ext.el search.texi @@ -1953,7 +2039,7 @@ and changed org-agenda.el Fabrice Popineau: changed ms-w32.h w32.c w32fns.c w32heap.c w32term.c configure.ac lisp.h unexw32.c buffer.c emacs.c image.c w32heap.h w32proc.c w32term.h INSTALL addsection.c alloc.c dispextern.h - emacs-x64.manifest emacs-x86.manifest etags.c and 24 other files + emacs-x64.manifest emacs-x86.manifest etags.c and 23 other files Fangrui Song: changed eglot.el @@ -1986,8 +2072,6 @@ Felix Lee: changed flyspell.el outline.el cl.texi data.c gud.el nntp.el Felix Mueller: changed nsterm.m -Felix S. T. Wu: co-wrote vi.el (public domain) - Feng Li: changed calc-ext.el pascal.el which-func.el Feng Shu: changed org.el org.texi ox.el ox-html.el ox-latex.el xwidget.el @@ -2007,14 +2091,14 @@ Filipp Gunbin: changed ldap.el compilation.txt progmodes/compile.el compile-tests.el custom.el dabbrev.el epa-ks.el ert.el eudc-vars.el eudc.texi and 19 other files -Filippo Argiolas: changed eglot.el eglot.texi +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-goodies.el erc-button.el erc.texi - erc-networks.el foonet.eld erc-fill-tests.el erc-compat.el erc-dcc.el - erc-match.el erc-speedbar.el erc-sasl.el erc-scenarios-common.el - erc-networks-tests.el erc-stamp-tests.el erc-track.el - and 193 other files + erc-stamp.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 + and 209 other files Flemming Hoejstrup Hansen: changed forms.el @@ -2031,7 +2115,7 @@ Florian V. Savigny: changed sql.el Florian Weimer: changed message.el configure.ac gnus.el coding.c gnus-sum.el gnus.texi mm-decode.el mm-util.el -F. Moukayed: changed erc-goodies.el mm-view.el +F. Moukayed: changed erc-goodies.el mm-view.el rcirc.el Francesco Pizzolante: changed org-clock.el org-macs.el org.el ox-html.el @@ -2039,7 +2123,7 @@ Francesco Potortì: wrote cmacexp.el and changed etags.c man.el delta.h etags.1 undigest.el rmail.el comint.el configure.ac maintaining.texi uniquify.el latin-post.el etags.el latin-alt.el lib-src/Makefile.in sgml-mode.el Makefile.in data.c - european.el filelock.c files.el generic-x.el and 45 other files + european.el filelock.c files.el generic-x.el and 44 other files Francesc Rocher: changed splash.png splash.svg startup.el README cus-start.el gnus.el gnus.png gnus.svg macterm.c splash.pbm splash.xpm @@ -2092,10 +2176,10 @@ Frederic Pierresteguy: wrote widget.c and changed xmenu.c xterm.c xfns.c dpx2.h lwlib.c rmailsum.el rmail.el xlwmenu.c xterm.h lwlib-Xaw.c lwlib-Xlw.c configure.ac lwlib-Xaw.h lwlib-int.h xdisp.c compile.el editfns.c fns.c frame.h hilit19.el - keyboard.c and 10 other files + keyboard.c and 9 other files Frederik Fouvry: changed sendmail.el TUTORIAL.nl emacs.bash faces.el - filecache.el mailalias.el rmail.el thumbs.el + filecache.el mailalias.el rmail.el Fred Fish: changed linux.h unexcoff.c @@ -2120,8 +2204,12 @@ Gábor Vida: changed gnus-demon.el auth-source.el ido.el Gabriel Do Nascimento Ribeiro: changed remember.el tab-line.el mb-depth.el repeat.el tab-bar.el bookmark.el cmuscheme.el comint.el dired-tests.el dired.el esh-mode.el etags.el faces.el gnus-sum.el - goto-addr.el hl-line.el ibuf-ext.el idlwave.el inf-lisp.el mh-gnus.el - mh-letter.el and 18 other files + goto-addr.el hl-line.el ibuf-ext.el inf-lisp.el mh-gnus.el mh-letter.el + mh-mime.el and 16 other files + +Gabriel Santos: changed batch.sh browse-url.el build.sh eglot.el + font-lock-package.go go-ts-mode-tests.el go-ts-mode.el image-dired.el + indent-mod.erts indent-work.erts treesit.el Gaby Launay: changed auth-source-pass.el @@ -2146,7 +2234,7 @@ Gary Wong: changed termcap.c tparam.c Gaute B Strokkenes: changed imap.el gnus-fun.el mail-source.el process.c -Gautier Ponsinet: changed calendar.texi +Gautier Ponsinet: changed calendar.texi newst-backend.el G Dinesh Dutt: changed etags.el @@ -2193,9 +2281,9 @@ George V. Reilly: changed emacs.ico makefile.nt Gerd Möllmann: wrote authors.el ebrowse.el jit-lock.el tooltip.el and changed xdisp.c xterm.c dispnew.c dispextern.h xfns.c xfaces.c - window.c keyboard.c lisp.h faces.el alloc.c buffer.c startup.el xterm.h - fns.c term.c configure.ac simple.el frame.c xmenu.c emacs.c - and 626 other files + window.c keyboard.c lisp.h faces.el alloc.c buffer.c term.c startup.el + frame.c xterm.h fns.c configure.ac simple.el minibuf.c xmenu.c + and 631 other files Gergely Nagy: changed erc.el @@ -2225,7 +2313,7 @@ and changed configure.ac Makefile.in src/Makefile.in calendar.el lisp/Makefile.in diary-lib.el files.el make-dist rmail.el progmodes/f90.el bytecomp.el admin.el misc/Makefile.in simple.el authors.el startup.el emacs.texi lib-src/Makefile.in display.texi - ack.texi subr.el and 1796 other files + ack.texi subr.el and 1753 other files Glynn Clements: wrote gamegrid.el snake.el tetris.el @@ -2277,7 +2365,7 @@ Gregory Chernov: changed nnslashdot.el Gregory Heytings: changed xdisp.c editfns.c subr.el keyboard.c buffer.c dispextern.h lisp.h buffer.h Makefile.in display.texi efaq.texi emake files.el isearch.el minibuffer.el bytecode.c composite.c positions.texi - bytecomp.el help-fns.el lread.c and 80 other files + bytecomp.el help-fns.el lread.c and 79 other files Grégory Mounié: changed display.texi hi-lock.el man.el xfns.c @@ -2290,12 +2378,14 @@ Greg Stark: changed gnus-ems.el timezone.el Guanpeng Xu: changed add-log.el TUTORIAL.cn display.texi mouse.el pcomplete.el search.c subr.el type-break.el +Guilherme De Almeida Suckevicz: changed tab-bar.el + Gunnar Horrigmo: changed gnus-sum.el Gustaf Waldemarson: changed gdb-mi.el -Gustav Hållberg: changed descr-text.el diff-mode.el progmodes/compile.el - rect.el vc.el +Gustav Hållberg: changed descr-text.el diff-mode.el gud.el + progmodes/compile.el rect.el vc.el Gustav Wikström: changed org-agenda.el org.texi @@ -2355,10 +2445,10 @@ H. Dieter Wilhelm: changed calc-help.el maintaining.texi paragraphs.el Heiko Muenkel: changed b2m.c Helmut Eller: wrote peg.el -and changed emacs-lisp/debug.el lisp-mode.el xref.el CTAGS.good - ETAGS.good_1 ETAGS.good_2 ETAGS.good_3 ETAGS.good_4 ETAGS.good_5 - ETAGS.good_6 bytecomp-tests.el bytecomp.el cl-indent.el cl-macs.el - elisp-mode.el ert.el etags.c etags.el eval.c faces.el and 5 other files +and changed lisp.h data.c pdumper.c buffer.c charset.c charset.h + emacs-lisp/debug.el fns-tests.el lisp-mode.el lread.c xref.el + CTAGS.good ETAGS.good_1 ETAGS.good_2 ETAGS.good_3 ETAGS.good_4 + ETAGS.good_5 ETAGS.good_6 alloc.c bytecomp-tests.el and 19 other files Helmut Waitzmann: changed gnus-sum.el gnus.texi @@ -2368,7 +2458,7 @@ Henrik Enberg: changed rmailout.el gnus-art.el gnus-msg.el lread.c mail/rmailmm.el rmail.el rmailedit.el rmailkwd.el rmailmsc.el rmailsort.el rmailsum.el xfaces.c -Henrique Martins: changed mh-mime.el mh-xface.el +Henrique Martins: changed mh-mime.el mh-thread.el mh-xface.el Henry Guillaume: wrote find-file.el @@ -2414,7 +2504,9 @@ Hrvoje Nikšić: wrote croatian.el savehist.el and changed gnus-xmas.el message.el nnmail.el fileio.c fns.c gnus-art.el gnus-salt.el gnus-spec.el mm-decode.el simple.el add-log.el appt.el arc-mode.el avoid.el bookmark.el cal-china.el cal-tex.el calendar.el - cl-indent.el cmacexp.el comint.el and 83 other files + cl-indent.el cmacexp.el comint.el and 81 other files + +Huang Jing: changed nxml-mode.el window.c windows.texi Huan Nguyen: changed treesit.el @@ -2424,7 +2516,8 @@ Hugh Brown: changed progmodes/grep.el building.texi Hugh Daschbach: changed dbus-tests.el dbus.el org.gnu.Emacs.TestDBus.xml -Hugo Heagren: changed window.el windows.texi bindings.el modes.texi +Hugo Heagren: changed window.el windows.texi bindings.el keymap.el + modes.texi Hynek Schlawack: changed gnus-art.el gnus-sum.el @@ -2456,12 +2549,12 @@ Ihor Radchenko: wrote org-element-ast.el org-fold-core.el org-fold.el and changed org.el files.el ox.el buffer.c emacsclient.desktop eval-tests.el fns.c lisp.h mm-view.el org-macro.el buffer.h editfns.c filelock.c help-mode.el internals.texi mhtml-mode.el minibuf.c oc.el - ol.el org-element.el pdumper.c and 3 other files + ol.el org-element.el pdumper.c and 4 other files Iku Iwasa: changed auth-source-pass-tests.el auth-source-pass.el Ikumi Keita: changed display.texi files.el characters.el fill.el - japan-util.el kinsoku.el minibuf.c + japan-util.el kinsoku.el minibuf.c reftex.el Ilja Weis: co-wrote gnus-topic.el @@ -2470,6 +2563,8 @@ Illia Danko: changed README.md eglot.el Illia Ostapyshyn: changed cus-start.el calc-graph.el emacs-mime.texi mml-smime.el mml.el +Ilya Chernyshov: changed time-date.el + Ilya N. Golubev: changed mm-util.el shell.el Ilya Shlyakhter: changed org.el ob-lilypond.el org-clock.el @@ -2552,7 +2647,8 @@ Iwamuro Motonori: changed gnus-kill.el Jaap-Henk Hoepman: changed mm-decode.el -Jacek Chrząszcz: changed ispell.el +Jacek Świerk: changed compilation.txt compile-tests.el + progmodes/compile.el Jack Coughlin: changed calc-prog.el @@ -2561,6 +2657,7 @@ Jack Duthen: changed which-func.el Jack Repenning: changed unexelfsgi.c Jackson Ray Hamilton: changed js.el files.el sgml-mode.el + typescript-ts-mode.el Jack Twilley: changed message.el @@ -2568,6 +2665,9 @@ Jacob Leeming: changed csharp-mode.el Jacob Morzinski: changed mh-comp.el +Jacob S. Gordon: changed calc-tests.el calc.texi calccomp.el time.el + calc.el editfns-tests.el editfns.c pp.el strings.texi + Jacques Duthen: co-wrote ps-print.el ps-samp.el Jae-hyeon Park: changed fontset.el gnus-icalendar.el @@ -2581,8 +2681,8 @@ Jai Flack: changed gnus-search.el Jake Moss: changed gdb-mi.el -Jakub Ječmínek: changed gnus-score.el TUTORIAL.cs org-table.el - progmodes/python.el python-tests.el rmail.texi +Jakub Ječmínek: changed gnus-score.el progmodes/python.el python-tests.el + TUTORIAL.cs dired.el nnmbox.el org-table.el rmail.texi Jakub-W: changed calculator.el @@ -2598,7 +2698,10 @@ and changed org-lparse.el org.el org.texi ox.el icomplete.el OrgOdtContentTemplate.xml OrgOdtStyles.xml hi-lock.el replace.el minibuffer.el org-footnote.el org-inlinetask.el register.el doc-view.el etags.el htmlfontify.el ido.el indian.el iswitchb.el org-bbdb.el - org-compat.el and 6 other files + org-compat.el and 5 other files + +James Cherti: changed sh-script.el eldoc.el outline.el + progmodes/python.el yaml-ts-mode.el James Clark: wrote nxml-enc.el nxml-maint.el nxml-mode.el nxml-ns.el nxml-outln.el nxml-parse.el nxml-rap.el nxml-util.el rng-cmpct.el @@ -2625,7 +2728,8 @@ James TD Smith: changed org.el org-colview.el org-clock.el org.texi James Thomas: changed eww.el nnmail.el quail/indian.el gnus-cache.el - gnus-msg.el gnus.texi ind-util.el info-look.el progmodes/python.el + gnus-msg.el gnus.texi ind-util.el info-look.el nnfeed.el + progmodes/python.el tab-bar.el vc-git.el window.el windows.texi James Troup: changed gnus-sum.el @@ -2654,6 +2758,8 @@ Jan Moringen: co-wrote srecode/cpp.el tango-dark-theme.el tango-theme.el and changed dbus.el dbus.texi dbusbind.c eieio.el faces.el idle.el insert.el log-edit.el srecode/find.el wisent/python.el zeroconf.el +Janneke Nieuwenhuizen: changed shell.el + Jan Nieuwenhuizen: changed gud.el info.el TUTORIAL.nl add-log.el compilation.txt compile-tests.el emacs.c emacsclient.c gnus-start.el nnmh.el progmodes/compile.el server.el startup.el @@ -2675,10 +2781,10 @@ and changed gnus-score.el gnus-logic.el Jan Vroonhof: changed gnus-cite.el gnus-msg.el nntp.el Jared Finder: wrote window-tool-bar.el -and changed commands.texi menu-bar.el term.c tab-line.el xt-mouse.el - frame.c frames.texi isearch.el modes.texi mouse.el subr.el tmm.el - tool-bar.el wid-edit.el windows.texi artist.el dired.el dispnew.c - ediff-wind.el ediff.el elisp.texi and 16 other files +and changed xt-mouse.el xterm.el term.c commands.texi menu-bar.el + frames.texi subr.el tab-line.el wid-edit.el windows.texi frame.c + ielm.el isearch.el modes.texi mouse.el ruler-mode.el termhooks.h tmm.el + tool-bar.el xdisp.c xt-mouse-tests.el and 21 other files Jarek Czekalski: changed keyboard.c callproc.c mini.texi minibuf.c misc.texi server.el shell.el w32fns.c xgselect.c @@ -2688,9 +2794,10 @@ and changed add-log.el filecache.el progmodes/grep.el comint.el gnus-art.el gnus-sum.el gnus.texi ispell.el lisp-mnt.el man.el nnmail.el apropos.el autorevert.el checkdoc.el cperl-mode.el css-mode.el desktop.el em-ls.el emacs-lisp/debug.el emacsclient.1 - executable.el and 24 other files + executable.el and 23 other files Jarmo Hurri: wrote ob-processing.el +and co-wrote ob-ditaa.el and changed org-gnus.el org-table.el org.texi Jarno Malmari: wrote url-auth-tests.el @@ -2740,9 +2847,10 @@ Jay McCarthy: changed org-colview.el 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 idlw-toolbar.el comint.el idlwave.texi vc.el - bibtex.el eglot.el files.texi hideshow.el idlw-complete-structtag.el - misc.texi mouse.el shr.el table.html table.txt tree-widget.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 Jean Abou Samra: changed scheme.el @@ -2789,9 +2897,11 @@ and changed mh-e.el mh-comp.el mh-utils.el mh-mime.el mh-customize.el Jeff Spencer: changed dired.el +Jeff Valk: changed files.el + Jeff Walsh: changed pgtkterm.c pgtkterm.h gtkutil.c pgtkfns.c comp.c - pgtkmenu.c image.c xdisp.c configure.ac ftcrfont.c pgtkgui.h pgtkim.c - pgtkselect.c pgtkselect.h xwidget.c + pgtkmenu.c image.c xdisp.c atimer.c configure.ac ftcrfont.c pgtkgui.h + pgtkim.c pgtkselect.c pgtkselect.h xwidget.c Jelle Licht: changed auth-source-pass-tests.el auth-source-pass.el @@ -2803,15 +2913,16 @@ Jens Lautenbacher: changed gnus.el Jens Lechtenbörger: wrote gnus-util-tests.el mml-sec-tests.el and changed mml-sec.el gnus-util.el message.texi mml-smime.el mml1991.el - mml2015.el message.el package.el package.texi + mml2015.el imap.el message.el package.el package.texi Jens Petersen: wrote find-func.el and changed mule-cmds.el pcmpl-rpm.el -Jens Schmidt: changed plstore.el comint.el elisp-mode.el epa.texi - isearch.el auth.texi comp-common.el comp.el epa-file.el epg.el - files-tests.el files.el gnus.texi ldap.el lisp.el loadup.el macroexp.el - nadvice.el sgml-mode.el +Jens Schmidt: changed plstore.el comint.el editfns.c elisp-mode.el + emacs.c epa.texi isearch.el package-tests.el tips.texi + arc-mode-tests.el arc-mode.el auth.texi comp-common.el comp.el + edebug-test-code.el edebug-tests.el edebug.el edebug.texi + editfns-tests.el elisp.texi epa-file.el and 32 other files Jens Toivo Berger Thielemann: changed word-help.el @@ -2827,9 +2938,10 @@ Jérémie Courrèges-Anglas: changed kqueue.c org.texi ox-latex.el Jeremy Bertram Maitin-Shepard: changed erc.el erc-backend.el erc-button.el erc-track.el mml.el -Jeremy Bryant: changed which-key.el cl-extra.el abbrev.el cl-macs.el - display.texi emacs-lisp/cl-lib.el files.texi functions.texi help.texi - rmail.el simple.el +Jeremy Bryant: changed which-key.el cl-extra.el .gdbinit DEBUG abbrev.el + cl-macs.el cond-star.el control.texi display.texi emacs-lisp/cl-lib.el + eval.c files.texi functions.texi help.texi package.el rmail.el + saveplace.el simple.el Jérémy Compostella: changed tramp-sh.el mml.el battery.el keyboard.c windmove.el window.el xdisp.c @@ -2853,7 +2965,7 @@ and changed gnus-sum.el gnus-art.el message.el gnus-group.el gnus-msg.el gnus.el gnus-util.el rfc2047.el mm-bodies.el mm-util.el mml.el mm-decode.el nnrss.el gnus-srvr.el gnus-topic.el nnmail.el gnus-start.el gnus-uu.el gnus.texi spam-stat.el gnus-score.el - and 200 other files + and 199 other files Jhair Tocancipa Triana: changed gnus-audio.el @@ -2868,7 +2980,7 @@ and co-wrote pcvs.el wyse50.el and changed keyboard.c xterm.c xfns.c window.c process.c ymakefile dispnew.c xdisp.c sysdep.c configure.ac lisp.h Makefile.in keymap.c configure make-dist buffer.c frame.c screen.c simple.el alloc.c emacs.c - and 404 other files + and 400 other files Jim Diamond: changed server.el @@ -2878,7 +2990,7 @@ and changed emacs.texi emacsclient.c functions.texi hp300bsd.h rmail.el Jim Meyering: changed lread.c make-docfile.c w32.c w32font.c configure.ac copyright.el ebrowse.c emacs.c nsfont.m pop.c term.c xfaces.c xselect.c xterm.c alloc.c artist.el autoinsert.el buffer.h callproc.c character.h - charset.c and 55 other files + charset.c and 54 other files Jimmy Aguilar Mena: changed xdisp.c simple.el xfaces.c minibuffer.el dispextern.h mini.texi mouse.el compilation.txt face-remap.el @@ -2889,11 +3001,11 @@ Jimmy Yuen Ho Wong: changed nsm.el gnutls.c gnutls.el disass.el eglot.el Jim Paris: changed process.c -Jim Porter: changed eshell.texi esh-cmd.el esh-var.el esh-var-tests.el - eshell-tests.el esh-proc.el esh-io.el esh-cmd-tests.el esh-util.el - esh-arg.el esh-mode.el esh-proc-tests.el eshell-tests-helpers.el - tramp.el em-cmpl.el em-pred.el em-unix.el em-dirs.el em-glob.el - eshell/eshell.el em-cmpl-tests.el and 137 other files +Jim Porter: changed esh-cmd.el eshell.texi esh-var.el esh-var-tests.el + esh-proc.el eshell-tests.el esh-io.el esh-cmd-tests.el esh-util.el + esh-arg.el esh-proc-tests.el eww.el esh-mode.el eshell-tests-helpers.el + em-unix.el eshell/eshell.el em-glob.el em-pred.el em-cmpl.el em-dirs.el + tramp.el and 145 other files Jim Radford: changed gnus-start.el @@ -2941,11 +3053,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 README.md eldoc.el minibuffer.el - EGLOT-NEWS flymake-proc.el flymake.texi eglot.texi elisp-mode.el +and changed flymake.el icomplete.el EGLOT-NEWS 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 xref.el - json-tests.el and 69 other files + lread.c text.texi Makefile flymake-ui.el progmodes/python.el project.el + xref.el and 74 other files Jochen Hein: changed gnus-art.el @@ -2998,7 +3110,7 @@ Johan Bockgård: changed erc.el cl-macs.el pcase.el erc-backend.el erc-button.el erc-match.el icomplete.el mouse-sel.el subr.el xdisp.c browse-url.el bytecomp.el custom.el display.texi edebug.el eieio.el erc-compat.el erc-nickserv.el erc-ring.el erc-speak.el erc-track.el - and 63 other files + and 62 other files Johan Claesson: changed cl.texi filecache.el files-x.el help-fns.el tabulated-list.el term.el @@ -3049,14 +3161,16 @@ John Mastro: changed auth-source.el ibuffer.el w32heap.c John Mongan: changed progmodes/f90.el John Muhl: wrote lua-ts-mode.el -and changed indent.erts batch.sh lua-ts-mode-tests.el align-tests.el - align.el calculator.el font-lock.lua java-ts-mode.el lua-ts-mode.erts - movement.erts mpc.el speedbar.el sqlite-mode.el which-function.lua +and changed lua-mode.el mpc.el indent.erts lua-ts-mode-tests.el batch.sh + font-lock.lua align-tests.el align.el browse-url.el calculator.el + diff-mode.el hide-show.lua hideshow.el java-ts-mode.el lua-ts-mode.erts + movement.erts pgtk-win.el ruby-mode.el speedbar.el sqlite-mode.el + which-function.lua x-win.el John Paul Wallington: changed ibuffer.el ibuf-ext.el subr.el help-fns.el - rmail.el files.el thumbs.el bindings.el fns.c xfns.c arc-mode.el - bytecomp.el cus-theme.el font-lock.el hexl.el ibuf-macs.el info.el - minibuf.c re-builder.el simple.el startup.el and 135 other files + rmail.el files.el bindings.el fns.c xfns.c arc-mode.el bytecomp.el + cus-theme.el font-lock.el hexl.el ibuf-macs.el info.el minibuf.c + re-builder.el simple.el startup.el apropos.el and 130 other files John Shahid: changed term.el easy-mmode.el tramp.el window.c window.el env.el flymake.el term.c termhooks.h terminal.c windows.texi @@ -3067,23 +3181,23 @@ John Tobey: changed gud.el John W. Eaton: co-wrote octave.el -John Wiegley: wrote align.el bind-key.el cal-bahai.el em-alias.el - em-banner.el em-basic.el em-cmpl.el em-dirs.el em-glob.el em-hist.el - em-ls.el em-pred.el em-prompt.el em-rebind.el em-script.el em-smart.el - em-term.el em-unix.el em-xtra.el erc-identd.el esh-arg.el esh-cmd.el - esh-ext.el esh-io.el esh-mode.el esh-module.el esh-opt.el esh-proc.el - esh-util.el esh-var.el eshell-tests-helpers.el eshell-tests.el - eshell/eshell.el eudcb-mab.el isearchb.el org-attach.el org-crypt.el - org-habit.el pcmpl-cvs.el pcomplete.el remember.el timeclock.el - use-package-bind-key.el use-package-core.el use-package-delight.el - use-package-diminish.el use-package-ensure.el use-package-jump.el - use-package-lint.el use-package.el +John Wiegley: wrote align.el bind-key.el cal-bahai-tests.el cal-bahai.el + em-alias.el em-banner.el em-basic.el em-cmpl.el em-dirs.el em-glob.el + em-hist.el em-ls.el em-pred.el em-prompt.el em-rebind.el em-script.el + em-smart.el em-term.el em-unix.el em-xtra.el erc-identd.el esh-arg.el + esh-cmd.el esh-ext.el esh-io.el esh-mode.el esh-module.el esh-opt.el + esh-proc.el esh-util.el esh-var.el eshell-tests-helpers.el + eshell-tests.el eshell/eshell.el eudcb-mab.el isearchb.el org-attach.el + org-crypt.el org-habit.el pcmpl-cvs.el pcomplete.el remember.el + timeclock.el use-package-bind-key.el use-package-core.el + use-package-delight.el use-package-diminish.el use-package-ensure.el + use-package-jump.el use-package-lint.el use-package.el and co-wrote org-pcomplete.el and changed org-clock.el org-agenda.el erc-chess.el org.el erc.el - iswitchb.el ido.el alloc.c allout.el auth-source.el cal-menu.el - calendar.el control.texi desktop.el diary-lib.el erc-bbdb.el - erc-button.el erc-complete.el erc-fill.el erc-ibuffer.el erc-list.el - and 25 other files + iswitchb.el ido.el alloc.c holidays.el align-tests.el allout.el + auth-source.el cal-menu.el calendar.el calendar.texi control.texi + desktop.el diary-lib.el erc-bbdb.el erc-button.el erc-complete.el + and 27 other files John Williams: changed bytecomp-tests.el etags.el @@ -3094,18 +3208,18 @@ Jon Anders Skorpen: changed ox-publish.el Jonas Bernoulli: wrote transient.el and changed emoji.el epa.el epa-file.el lisp-mnt.el tips.texi dired-aux.el dired-x.el dired.el eieio.el epa-dired.el font-lock.el - progmodes/compile.el simple.el transient.texi allout.el button.el - check-declare.el comint.el cus-edit.el editorconfig-conf-mode.el - editorconfig-core-handle.el and 25 other files + icomplete.el loaddefs-gen.el progmodes/compile.el simple.el + transient.texi allout.el button.el check-declare.el comint.el + cus-edit.el and 30 other files Jonas Hoersch: changed org-inlinetask.el org.el Jonathan Ganc: changed vc-git.el Jonathan I. Kamens: changed pop.c movemail.c rmail.el configure.ac b2m.pl - lib-src/Makefile.in Makefile.in config.in files.el pop.h terminal.el - vc.el gnus-sum.el jka-compr.el rmailout.el rnewspost.el sendmail.el - simple.el timezone.el vc-hooks.el + lib-src/Makefile.in Makefile.in config.in files.el pop.h vc.el + gnus-sum.el jka-compr.el rmailout.el rnewspost.el sendmail.el simple.el + timezone.el vc-hooks.el Jonathan Kyle Mitchell: changed em-dirs.el em-ls.el em-unix.el esh-cmd.el esh-ext.el esh-mode.el xdisp.c @@ -3139,8 +3253,8 @@ Jon K Hellan: wrote utf7.el Joost Diepenmaat: changed org.el -Joost Kremers: changed vtable.texi control.texi reftex-toc.el - vtable-tests.el vtable.el +Joost Kremers: changed vtable.el vtable.texi control.texi reftex-toc.el + vtable-tests.el Joram Schrijver: changed eglot.el @@ -3157,7 +3271,7 @@ Jørgen Kvalsvik: changed c-ts-mode.el indent.erts Jorgen Schäfer: wrote erc-autoaway.el erc-goodies.el erc-spelling.el and changed erc.el erc-track.el erc-backend.el erc-match.el misc.el erc-stamp.el erc-button.el erc-fill.el erc-members.el erc-truncate.el - erc-compat.el package-test.el progmodes/python.el Makefile erc-dcc.el + erc-compat.el package-tests.el progmodes/python.el Makefile erc-dcc.el erc-ibuffer.el erc-macs.el erc-page.el erc-pcomplete.el erc-sound.el minibuffer.el and 15 other files @@ -3166,23 +3280,26 @@ Jorge P. De Morais Neto: changed TUTORIAL cl.texi Jose A. Ortega Ruiz: changed doc-view.el misc.texi mixal-mode.el gnus-sum.el imenu.el url-http.el -Jose E. Marchesi: changed ada-mode.el gomoku.el simple.el smtpmail.el +Jose E. Marchesi: changed gomoku.el simple.el smtpmail.el José L. Doménech: changed dired-aux.el -Jose Marino: changed idlw-shell.el - Joseph Arceneaux: wrote xrdb.c and changed xterm.c xfns.c keyboard.c screen.c dispnew.c xdisp.c window.c x-win.el fileio.c buffer.c xterm.h minibuf.c editfns.c lread.c process.c alloc.c buffer.h files.el screen.el insdel.c emacs.c - and 106 other files + and 103 other files + +Joseph Mingrone: changed tramp.el Joseph M. Kelsey: changed fileio.c skeleton.el Joseph Turner: changed package-vc.el minibuffer.el subr.el image.el - display.texi image-tests.el info.el ispell.el lists.texi package.el - package.texi records.texi shortdoc.el shorthands.el subr-tests.el + color-tests.el color.el display.texi files.el image-tests.el info.el + ispell.el lists.texi minibuf.texi package.el package.texi records.texi + shortdoc.el shorthands.el subr-tests.el tab-bar.el vtable.el + +Josh Berdine: changed latin-ltx.el Josh Elsasser: changed eglot.el README.md configure.ac @@ -3199,10 +3316,11 @@ Joshua Datko: changed fortune.el Joshua Varner: changed intro.texi Jostein Kjønigsen: changed csharp-mode.el typescript-ts-mode.el eglot.el - js.el progmodes/compile.el README dotnet-appconfig.rnc + js.el sh-script.el progmodes/compile.el progmodes/python.el schemas.xml + README dockerfile-ts-mode.el dotnet-appconfig.rnc dotnet-packages-config.rnc dotnet-packages-props.rnc dotnet-resx.rnc - json-ts-mode.el msbuild.rnc nuget.rnc nuspec.rnc nxml-mode.el - schemas.xml treesit.el + dotnet-slnx.rnc files.el json-ts-mode.el msbuild.rnc nuget.rnc + nuspec.rnc nxml-mode.el and 3 other files Jouni K. Seppänen: changed gnus.texi nnimap.el mm-url.el @@ -3219,19 +3337,20 @@ and co-wrote help-tests.el keymap-tests.el and changed subr.el desktop.el w32fns.c bs.el faces.el simple.el emacsclient.c files.el server.el help-fns.el xdisp.c org.el w32term.c w32.c buffer.c keyboard.c ido.el image.c window.c eval.c allout.el - and 1228 other files + and 1191 other files Juan Pechiar: changed ob-octave.el Juergen Kreileder: changed imap.el nnimap.el -Juergen Nickelsen: wrote ws-mode.el - -Jules Tamagnan: changed progmodes/python.el +Jules Tamagnan: changed progmodes/python.el checkdoc.el + completion-preview-tests.el completion-preview.el Julian Gehring: changed org.texi orgcard.tex -Julian Scheid: changed tramp.el cl-extra.el color.el ert.el +Julian Scheid: changed tramp.el cl-extra.el color.el + comp-test-direct-call-dup.el comp-test-direct-call.el comp-tests.el + comp.el ert.el Julien Avarre: changed gnus-fun.el @@ -3260,6 +3379,7 @@ Jurgen De Backer: changed progmodes/compile.el Jürgen Hartmann: changed window.el Jürgen Hötzel: wrote tramp-adb.el +and co-wrote lua-mode.el and changed callproc.c eglot.el tramp-gvfs.el tramp-sh.el comint.el em-unix.el esh-util.el tramp-cache.el tramp.el url-handlers.el wid-edit.el @@ -3267,10 +3387,10 @@ and changed callproc.c eglot.el tramp-gvfs.el tramp-sh.el comint.el Juri Linkov: wrote compose.el emoji.el files-x.el misearch.el repeat-tests.el replace-tests.el tab-bar-tests.el tab-bar.el tab-line.el -and changed isearch.el simple.el info.el replace.el dired.el dired-aux.el - minibuffer.el window.el progmodes/grep.el outline.el subr.el vc.el - mouse.el diff-mode.el repeat.el files.el image-mode.el menu-bar.el - vc-git.el project.el search.texi and 491 other files +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 525 other files Jussi Lahdenniemi: changed w32fns.c ms-w32.h msdos.texi w32.c w32.h w32console.c w32heap.c w32inevt.c w32term.h @@ -3300,12 +3420,12 @@ and co-wrote longlines.el tramp-sh.el tramp.el and changed message.el gnus-agent.el gnus-sum.el files.el nnmail.el tramp.texi nntp.el gnus.el simple.el ange-ftp.el dired.el paragraphs.el bindings.el files.texi gnus-art.el gnus-group.el man.el INSTALL - Makefile.in crisp.el fileio.c and 45 other files + Makefile.in crisp.el fileio.c and 44 other files Kailash C. Chowksey: changed HELLO ind-util.el kannada.el knd-util.el lisp/Makefile.in loadup.el -Kai Ma: changed nsterm.m +Kai Ma: changed building.texi nsterm.m progmodes/compile.el Kai Tetzlaff: changed sieve-manage.el ox-publish.el sieve.el url-http.el @@ -3346,7 +3466,7 @@ and changed simple.el files.el CONTRIBUTE doc-view.el image-mode.el Karl Heuer: changed keyboard.c lisp.h xdisp.c buffer.c xfns.c xterm.c alloc.c files.el frame.c configure.ac window.c data.c minibuf.c editfns.c fns.c process.c Makefile.in fileio.c simple.el keymap.c - indent.c and 447 other files + indent.c and 442 other files Karl Kleinpaste: changed gnus-sum.el gnus-art.el gnus-picon.el gnus-score.el gnus-uu.el gnus-xmas.el gnus.el mm-uu.el mml.el nnmail.el @@ -3366,9 +3486,10 @@ Karol Ostrovsky: changed configure.ac src/Makefile.in Károly Lőrentey: changed xfns.c bindings.el keyboard.c menu-bar.el buffer.c coding.c frame.el print.c rxvt.el simple.el spam.el sysdep.c x-win.el xdisp.c xt-mouse.el xterm.c xterm.h .gdbinit AT386.el HELLO - README and 101 other files + README and 100 other files -Karthik Chikmagalur: changed pcmpl-unix.el +Karthik Chikmagalur: wrote timeout.el +and changed hideshow.el pcmpl-unix.el programs.texi Katsuhiro Hermit Endo: changed gnus-group.el gnus-spec.el @@ -3389,9 +3510,10 @@ Kaveh R. Ghazi: changed delta88k.h xterm.c Kayvan Sylvan: changed supercite.el -Kazuhiro Ito: changed coding.c epg.el japan-util.el uudecode.el - flow-fill.el font.c image.c keyboard.c language/japanese.el - make-mode.el starttls.el xdisp.c +Kazuhiro Ito: changed coding.c epg.el image.c japan-util.el uudecode.el + flow-fill.el font.c keyboard.c language/japanese.el loadup.el + make-mode.el rfc6068.el starttls.el subr.el treesit.c w32-nt.el + w32-win.el xdisp.c Kazushi Marukawa: changed filelock.c hexl.c profile.c unexalpha.c @@ -3412,7 +3534,7 @@ Keith Packard: changed font.c Kelly Dean: changed simple.el help-mode.el desktop.el files.el lisp.el register.el easy-mmode.el fileio.c help-fns.el help-macro.el help.el - keyboard.c package-x.el rect.el windmove.el winner.el + keyboard.c rect.el windmove.el winner.el Kelvin White: changed erc.el erc-pcomplete.el erc.texi erc-backend.el erc-ring.el erc-stamp.el @@ -3430,7 +3552,7 @@ and co-wrote ps-def.el ps-mule.el ps-print.el ps-samp.el quail.el and changed coding.c mule-cmds.el mule.el fontset.c charset.c xdisp.c font.c fontset.el xterm.c fileio.c mule-conf.el ftfont.c characters.el fns.c mule-diag.el coding.h charset.h ccl.c xfaces.c editfns.c - composite.c and 386 other files + composite.c and 370 other files Kenichi Okada: co-wrote sasl-cram.el sasl-digest.el @@ -3490,11 +3612,11 @@ Kevin Greiner: changed gnus-agent.el gnus-sum.el gnus-start.el Kevin Layer: changed mml.el w32proc.c -Kévin Le Gouguec: changed files-tests.el files.el progmodes/python.el - font-lock.el gnus-sum.el shr.el vc-git-tests.el blockquote.html - blockquote.txt conceal.svg configure.ac dired-aux-tests.el dired-aux.el - electric-tests.el faces.el font-lock-tests.el fontset.el gnus.el - leim/Makefile.in message.texi project.el and 11 other files +Kévin Le Gouguec: changed files-tests.el vc-git-tests.el files.el + progmodes/python.el vc-git.el font-lock.el gnus-sum.el shr.el + blockquote.html blockquote.txt button-tests.el button.el conceal.svg + configure.ac dired-aux-tests.el dired-aux.el electric-tests.el faces.el + font-lock-tests.el fontset.el gnus.el and 13 other files Kevin Rodgers: changed compile.el mailabbrev.el progmodes/compile.el dired-x.el files.el ange-ftp.el byte-opt.el desktop.el diff-mode.el @@ -3506,16 +3628,18 @@ Kevin Ryde: wrote info-xref.el and changed info-look.el info.el checkdoc.el cl.texi compilation.txt etags.c arc-mode.el ffap.el gnus-art.el gnus-sum.el mule.el os.texi progmodes/compile.el woman.el browse-url.el copyright.el dig.el - files.el flyspell.el keyboard.c mailcap.el and 88 other files + files.el flyspell.el keyboard.c mailcap.el and 84 other files + +Kien Nguyen: changed w32.c browse-url.el comp.c files.el -Kien Nguyen: changed browse-url.el comp.c files.el w32.c +Kierin Bell: wrote iroquoian.el Kim F. Storm: wrote bindat.el cua-base.el cua-gmrk.el cua-rect.el ido.el keypad.el kmacro.el and changed xdisp.c dispextern.h process.c simple.el window.c keyboard.c xterm.c dispnew.c subr.el w32term.c lisp.h fringe.c display.texi macterm.c alloc.c fns.c xfaces.c keymap.c xfns.c xterm.h .gdbinit - and 249 other files + and 248 other files Kimit Yada: changed copyright.el @@ -3529,8 +3653,6 @@ Kirill A. Korinskiy: changed fortune.el Kirk Kelsey: changed make-mode.el vc-hg.el -Kishore Kumar: changed terminal.el - Kiso Katsuyuki: changed tab-line.el Kjartan Óli Ágústsson: changed doc-view.el @@ -3566,11 +3688,11 @@ Koichi Arakawa: changed tramp-sh.el w32proc.c Konrad Hinsen: wrote ol-eshell.el and changed ob-python.el -Konstantin Kharlamov: changed indent.erts smerge-mode.el - typescript-ts-mode.el diff-mode.el files.el ada-mode.el alloc.c +Konstantin Kharlamov: changed files.el indent.erts progmodes/python.el + smerge-mode.el typescript-ts-mode.el conf-mode.el diff-mode.el alloc.c autorevert.el calc-aent.el calc-ext.el calc-lang.el cc-mode.el cperl-mode.el css-mode.el cua-rect.el dnd.el ebnf-abn.el ebnf-dtd.el - ebnf-ebx.el emacs-module-tests.el epg.el and 33 other files + ebnf-ebx.el emacs-module-tests.el and 34 other files Konstantin Kliakhandler: changed org-agenda.el @@ -3578,6 +3700,8 @@ Konstantin Novitsky: changed progmodes/python.el Kristian Hole: changed sql.el +Kristoffer Balintona: changed flyspell.el log-edit.el minibuffer.el + Kristoffer Grönlund: wrote wombat-theme.el Krzysztof Jurewicz: changed erc.el secrets.el @@ -3625,7 +3749,7 @@ Lars Brinkhoff: changed records.texi fns.c lread.c data.c elisp.texi Lars Hansen: changed desktop.el tramp.el info.el mh-e.el dired-x.el dired-x.texi dired.el ls-lisp.el rmail.el dired.c files.texi hilit-chg.el misc.texi url-auth.el url-cache.el url-dired.el url-ftp.el - url-irc.el url-misc.el url-news.el url-privacy.el and 39 other files + url-irc.el url-misc.el url-news.el url-privacy.el and 38 other files Lars Lindberg: wrote msb.el and co-wrote dabbrev.el imenu.el @@ -3655,7 +3779,7 @@ and co-wrote gnus-kill.el gnus-mh.el gnus-msg.el gnus-score.el and changed subr.el simple.el gnus.texi files.el display.texi process.c help-fns.el text.texi image.c dired.el help.el image.el package.el edebug.el shortdoc.el dired-aux.el gnutls.c minibuffer.el subr-x.el - auth-source.el smtpmail.el and 1061 other files + auth-source.el smtpmail.el and 1050 other files Lars Rasmusson: changed ebrowse.c @@ -3668,6 +3792,10 @@ Laurence Warne: changed proced-tests.el proced.el progmodes/python.el Laurent Martelli: changed mm-decode.el +Laurent Stacul: changed CTAGS.good CTAGS.good_crlf CTAGS.good_update + ETAGS.good_1 ETAGS.good_2 ETAGS.good_3 ETAGS.good_4 ETAGS.good_5 + ETAGS.good_6 ETAGS.good_7 README etags.c test1.ru + Lawrence Mitchell: wrote erc-backend.el erc-log.el and changed erc.el ox-latex.el org.el ox.el erc-match.el erc-nets.el erc-nickserv.el ox-html.el browse-url.el erc-button.el erc-compat.el @@ -3675,15 +3803,18 @@ and changed erc.el ox-latex.el org.el ox.el erc-match.el erc-nets.el cl-macs.el erc-autoaway.el erc-autojoin.el and 25 other files Lawrence R. Dodd: co-wrote dired-x.el -and changed fortran.el ispell.el sendmail.el cmuscheme.el comint.el - compile.el dired.el find-dired.el gnus.el gud.el inf-lisp.el info.el - lisp.el man.el minibuf.c rcs2log rmail.el simple.el terminal.el - text-mode.el tpu-edt.el and 3 other files +and changed fortran.el sendmail.el cmuscheme.el comint.el compile.el + dired.el find-dired.el gnus.el gud.el inf-lisp.el info.el lisp.el + man.el minibuf.c rcs2log rmail.el simple.el text-mode.el tpu-edt.el + two-column.el vc.el Lee Bochicchio: changed abbrev-tests.el Lee Duhem: changed eval.c +Lee Thompson: wrote syriac.el +and changed HELLO misc-lang.el + Leigh Stoller: changed emacsclient.c server.el Lele Gaifax: changed progmodes/python.el TUTORIAL.it python-tests.el @@ -3691,20 +3822,22 @@ Lele Gaifax: changed progmodes/python.el TUTORIAL.it python-tests.el flymake-proc.el flymake.texi isearch.el pgtkfns.c xterm.c Lennart Borgman: co-wrote ert-x.el -and changed nxml-mode.el tutorial.el re-builder.el window.el ada-xref.el - buff-menu.el emacs-lisp/debug.el emacsclient.c filesets.el flymake.el - help-fns.el isearch.el linum.el lisp-mode.el lisp.el mouse.el - progmodes/grep.el recentf.el remember.el replace.el reveal.el - and 6 other files +and changed nxml-mode.el tutorial.el re-builder.el window.el buff-menu.el + emacs-lisp/debug.el emacsclient.c filesets.el flymake.el help-fns.el + isearch.el lisp-mode.el lisp.el mouse.el progmodes/grep.el recentf.el + remember.el replace.el reveal.el ruby-mode.el shell.el + and 4 other files Lennart Staflin: changed dired.el diary-ins.el diary-lib.el tq.el xdisp.c +Leo C. Stein: changed latin-ltx.el ffap.el + Leo Liu: wrote calc-tests.el pcmpl-x.el and changed octave.el ido.el rcirc.el files.el subr.el lisp-mode.el eldoc.el simple.el flymake.el smie.el abbrev.el progmodes/python.el cfengine.el cl-extra.el cl-macs.el emacs-lisp/cl-lib.el fns.c progmodes/compile.el register.el rng-valid.el thingatpt.el - and 166 other files + and 165 other files Leonard H. Tower Jr.: changed rnews.el rnewspost.el emacsbug.el rmailout.el sendmail.el @@ -3719,6 +3852,8 @@ Leo P. White: changed eieio-custom.el Leo Vivier: changed dired-aux.el +Lester Longley: changed cond-star.el + Le Trung Dan: changed files.el files.texi package-vc.el shortdoc.el Levin Du: changed parse-time.el org-clock.el @@ -3737,15 +3872,21 @@ Liang Wang: changed etags.el Liāu, Kiong-Gē 廖宮毅: changed comp.c mingw-cfg.site -Lin Sun: changed python-tests.el progmodes/python.el calc.el esh-mode.el - eww.el ls-lisp-tests.el ls-lisp.el master.el package-test-server.py - package-tests.el package.el +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 Lin Zhou: changed w32fns.c w32term.h -Liu Hui: changed python-tests.el em-hist.el progmodes/python.el bibtex.el - dired.el eglot.el em-hist-tests.el eshell.texi pcmpl-linux.el - saveplace.el strokes.el wdired.el +Liu Hui: changed calendar.el progmodes/python.el diary-lib.el + python-tests.el cal-hebrew.el cal-move.el comint.el em-hist.el + ffap-tests.el ffap.el holidays.el bibtex.el cal-bahai.el cal-china.el + cal-islam.el cal-julian.el cal-menu.el calendar-tests.el calendar.texi + dired.el eglot.el and 14 other files Lixin Chin: changed bibtex.el @@ -3757,6 +3898,8 @@ Logan Perkins: changed keyboard.c Loïc Lemaître: changed typescript-ts-mode.el +Lua Viana Reis: changed eglot.el + Luca Capello: changed mm-encode.el Lucas Werkmeister: changed emacs.c emacs.service nxml-mode.el @@ -3772,7 +3915,7 @@ Luc Teirlinck: wrote help-at-pt.el and changed files.el autorevert.el cus-edit.el subr.el simple.el frames.texi startup.el display.texi files.texi dired.el comint.el modes.texi custom.texi emacs.texi fns.c frame.el ielm.el minibuf.texi - variables.texi buffers.texi commands.texi and 212 other files + variables.texi buffers.texi commands.texi and 210 other files Ludovic Courtès: wrote nnregistry.el and changed configure.ac gnus.texi loadup.el @@ -3791,6 +3934,7 @@ Lukas Huonker: changed tetris.el Łukasz Stelmach: changed erc.el message.el ps-print.el cookie1.el gnus-group.el gnus-logic.el gnutls.c gtkutil.c nsm.el org-agenda.el org-bbdb.el org.el org.texi ox-html.el ox.el shr.el simple.el + time-date-tests.el time-date.el Luke Lee: changed hideif.el @@ -3800,7 +3944,7 @@ Lute Kamstra: changed modes.texi emacs-lisp/debug.el generic-x.el generic.el font-lock.el simple.el subr.el battery.el debugging.texi easy-mmode.el elisp.texi emacs-lisp/generic.el hl-line.el info.el octave.el basic.texi bindings.el calc.el cmdargs.texi diff-mode.el - doclicense.texi and 289 other files + doclicense.texi and 283 other files Lynn Slater: wrote help-macro.el @@ -3823,11 +3967,11 @@ Malcolm Purvis: changed spam-stat.el Manoj Srivastava: wrote manoj-dark-theme.el -Manuel Giraud: changed image-dired.el xdisp.c vc.el image.c ox-html.el - bookmark.el doc-view.el find-dired.el image-dired-util.el keyboard.c - longlines.el ox-publish.el dired.el dispextern.h gdb-mi.el gnus.el - paragraphs.el simple.el androidterm.c basic.texi battery.el - and 30 other files +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 Manuel Gómez: changed speedbar.el @@ -3845,6 +3989,8 @@ Marc Fleischeuers: changed files.el Marc Girod: changed informat.el rmail.el rmailsum.el sendmail.el +Marc Herbert: changed gnus.el + Marcin Borkowski: wrote fill-tests.el lisp-tests.el and changed battery.el doc-view.el elisp-mode-tests.el fill.el lisp.el parse-time.el studly.el @@ -3858,7 +4004,7 @@ Marco Centurion: changed dired-aux.el files.el files.texi Marco Melgazzi: changed term.el Marco Wahl: wrote ol-eww.el -and changed org-agenda.el page-ext.el ffap.el kmacro.el kmacro.texi +and changed page-ext.el org-agenda.el ffap.el kmacro.el kmacro.texi org.el scroll-lock-tests.el scroll-lock.el Marco Walther: changed mips-siemens.h unexelfsni.c unexsni.c @@ -3934,10 +4080,10 @@ Marko Kohtala: changed info.el Mark Osbourne: changed hexl-mode.el Mark Oteiza: wrote mailcap-tests.el md4-tests.el xdg-tests.el xdg.el -and changed image-dired.el dunnet.el mpc.el eww.el json.el calc-units.el - lcms.c subr-x.el subr.el message.el tex-mode.el cl-macs.el cl.texi - ibuffer.el lcms-tests.el mailcap.el progmodes/python.el cl-print.el - eldoc.el emacs-lisp/chart.el files.el and 172 other files +and changed dunnet.el mpc.el eww.el json.el calc-units.el lcms.c + subr-x.el subr.el message.el tex-mode.el cl-macs.el cl.texi ibuffer.el + lcms-tests.el mailcap.el progmodes/python.el cl-print.el eldoc.el + emacs-lisp/chart.el files.el htmlfontify.el and 167 other files Mark Plaksin: changed nnrss.el term.el @@ -3962,7 +4108,7 @@ and changed cus-edit.el files.el progmodes/compile.el rmail.el tex-mode.el find-func.el rmailsum.el simple.el cus-dep.el dired.el mule-cmds.el rmailout.el checkdoc.el configure.ac custom.el emacsbug.el gnus.el help-fns.el ls-lisp.el mwheel.el sendmail.el - and 126 other files + and 123 other files Markus Sauermann: changed lisp-mode.el @@ -4008,14 +4154,15 @@ Martin Neitzel: changed supercite.el Martin Pohlack: changed iimage.el pc-select.el -Martin Rudalics: changed window.el window.c windows.texi frame.c xdisp.c - xterm.c frames.texi w32fns.c w32term.c xfns.c frame.el display.texi - frame.h help.el cus-start.el buffer.c window.h mouse.el dispnew.c - keyboard.c nsfns.m and 216 other files +Martin Rudalics: co-wrote window-x.el +and changed window.el window.c windows.texi frame.c xdisp.c frames.texi + xterm.c w32fns.c frame.el w32term.c xfns.c frame.h display.texi + cus-start.el buffer.c help.el keyboard.c mouse.el window.h dispnew.c + gtkutil.c and 220 other files Martin Stjernholm: wrote cc-bytecomp.el -and co-wrote cc-align.el cc-cmds.el cc-compat.el cc-defs.el cc-engine.el - cc-fonts.el cc-langs.el cc-menus.el cc-mode.el cc-styles.el cc-vars.el +and co-wrote cc-align.el cc-cmds.el cc-defs.el cc-engine.el cc-fonts.el + cc-langs.el cc-menus.el cc-mode.el cc-styles.el cc-vars.el and changed cc-fix.el nnimap.el cc-guess.el cc-mode-19.el cc-mode.texi lisp/Makefile.in ack.texi awk-mode.el cc-awk.el cc-lobotomy.el cc-make.el cc-subword.el files.el generic-x.el gnus-agent.el @@ -4028,8 +4175,6 @@ Martin Thornquist: changed gnus-group.el gnus-topic.el Martyn Jago: wrote ob-lilypond.el and changed ob-emacs-lisp.el -Masahiko Sato: wrote vip.el - Masahiro Nakamura: changed mpc.el tramp.texi nsterm.m w32fns.c keyboard.c ns-win.el nsmenu.m nsterm.h package.el refcard.tex shortdoc.el strokes.el @@ -4046,8 +4191,8 @@ Masatake Yamato: wrote add-log-tests.el imenu-tests.el ld-script.el subword.el and co-wrote cc-guess.el and changed etags.el asm-mode.el hexl.el xdisp.c bindings.el man.el - xfaces.c simple.el vc.el wid-edit.el add-log.el etags.c faces.el - pcvs.el progmodes/compile.el progmodes/cpp.el register.el ruler-mode.el + xfaces.c register.el simple.el vc.el wid-edit.el add-log.el etags.c + faces.el pcvs.el progmodes/compile.el progmodes/cpp.el ruler-mode.el sh-script.el buffer.c cc-langs.el and 80 other files Masayuki Ataka: changed texinfmt.el texinfo.el characters.el cmuscheme.el @@ -4063,7 +4208,8 @@ Mathias Megyei: changed lisp/Makefile.in Mathieu Othacehe: changed tramp-adb.el -Mats Lidell: changed TUTORIAL.sv european.el gnus-art.el org-element.el +Mats Lidell: changed TUTORIAL.sv european.el gnus-art.el info.el + org-element.el Matt Armstrong: changed itree.c buffer-tests.el itree.h buffer.c alloc.c buffer.h display.texi editfns.c filelock-tests.el package.el pdumper.c @@ -4074,11 +4220,10 @@ Matt Beshara: changed js.el nsfns.m Matt Bisson: changed xterm.c -Matt Curtis: changed pulse.el - Matt Fidler: changed package.el -Matthew Bauer: changed comint.el shell.el startup.el +Matthew Bauer: changed comint.el eldoc.el jit-lock.el eglot.el shell.el + startup.el Matthew Carter: changed sql.el @@ -4100,7 +4245,7 @@ Matthew Newton: changed imenu.el Matthew Smith: changed typescript-ts-mode-tests.el -Matthew Tromp: changed ielm.el +Matthew Tromp: changed flymake.el ielm.el simple.el Matthew White: changed buffer.c bookmark-tests.el bookmark.el test-list.bmk @@ -4115,8 +4260,8 @@ Matthias Meulien: wrote ansi-osc-tests.el and co-wrote ansi-osc.el and changed diff-mode.el progmodes/python.el bookmark.el vc-dir.el comint.el outline.el vc.el buff-menu.el doc-view.el eww.el gnus-sum.el - help-mode.el image-dired.el info.el man.el prog-mode.el project.el - simple.el tab-bar.el tabify.el vc-git.el and 3 other files + help-mode.el info.el man.el prog-mode.el project.el remember.el + simple.el speedbar.el tab-bar.el tabify.el and 4 other files Matthias Wiehl: changed gnus.el @@ -4131,14 +4276,16 @@ Matt Hodges: changed textmodes/table.el faces.el iswitchb.el simple.el edebug.texi eldoc.el em-hist.el em-pred.el fixit.texi icon.el ido.el locate.el paragraphs.el pcomplete.el repeat.el and 3 other files -Mattias Engdegård: changed byte-opt.el bytecomp.el bytecomp-tests.el - fns.c subr.el rx.el lisp.h rx-tests.el lread.c searching.texi eval.c - bytecode.c print.c alloc.c calc-tests.el progmodes/compile.el - fns-tests.el macroexp.el subr-tests.el cconv.el data.c - and 789 other files +Mattias Engdegård: changed byte-opt.el bytecomp.el fns.c + bytecomp-tests.el subr.el rx.el lisp.h lread.c rx-tests.el eval.c + searching.texi bytecode.c print.c alloc.c calc-tests.el + progmodes/compile.el subr-tests.el fns-tests.el data.c macroexp.el + cconv.el and 806 other files Mattias M: changed asm-mode-tests.el asm-mode.el +Mattias Roux: changed autoinsert.el autotype.texi autoinsert-tests.el + Matt Kramer: changed tab-line.el Matt Lundin: changed org-agenda.el org.el org-bibtex.el org-footnote.el @@ -4156,13 +4303,17 @@ Matt Swift: changed dired.el editfns.c lisp-mode.el mm-decode.el outline.el progmodes/compile.el rx.el simple.el startup.el Mauro Aranda: changed wid-edit.el cus-edit.el wid-edit-tests.el custom.el - widget.texi perl-mode.el cperl-mode-tests.el cus-edit-tests.el - custom-tests.el customize.texi checkdoc-tests.el checkdoc.el - cus-theme.el custom.texi files.texi filesets.el gnus.texi octave.el - pong.el align.el auth-source.el and 80 other files + widget.texi perl-mode.el cus-edit-tests.el customize.texi + cperl-mode-tests.el cus-theme.el custom-tests.el checkdoc-tests.el + checkdoc.el custom.texi files.texi filesets.el gnus.texi help-fns.el + octave.el pong.el vc.el and 90 other files + +Maxim Cournoyer: changed gnus.texi lisp-mode-tests.el lisp-mode.el Maxime Edouard Robert Froumentin: changed gnus-art.el mml.el +Maximilian Kueffner: wrote ob-csharp.el + Maxim Nikulin: changed mailcap.el os.texi timefns.c Max Mikhanosha: changed org-agenda.el org-habit.el keyboard.c org.el @@ -4179,13 +4330,13 @@ Michael Albinus: wrote autorevert-tests.el dbus-tests.el dbus.el tramp-cmds.el tramp-compat.el tramp-crypt.el tramp-ftp.el tramp-fuse.el tramp-gvfs.el tramp-integration.el tramp-message.el tramp-rclone.el tramp-smb.el tramp-sshfs.el tramp-sudoedit.el tramp-tests.el - url-tramp-tests.el url-tramp.el vc-tests.el zeroconf.el -and co-wrote tramp-cache.el tramp-sh.el tramp.el -and changed tramp.texi tramp-adb.el trampver.el trampver.texi files.el - dbusbind.c gitlab-ci.yml files.texi ange-ftp.el dbus.texi - file-notify-tests.el Dockerfile.emba autorevert.el tramp-container.el - tramp-fish.el kqueue.c os.texi files-x.el shell.el simple.el README - and 333 other files + url-tramp-tests.el url-tramp.el zeroconf.el +and co-wrote tramp-cache.el tramp-sh.el tramp.el vc-tests.el +and changed tramp.texi tramp-adb.el trampver.el trampver.texi + gitlab-ci.yml files.el dbusbind.c files.texi ange-ftp.el + Dockerfile.emba dbus.texi file-notify-tests.el autorevert.el + tramp-container.el auth-source.el tramp-fish.el README kqueue.c + infra/Makefile.in test-jobs.yml test/Makefile.in and 363 other files Michael Ben-Gershon: changed acorn.h configure.ac riscix1-1.h riscix1-2.h unexec.c @@ -4199,13 +4350,13 @@ Michaël Cadilhac: changed browse-url.el fr-dired-ref.tex gnus-sum.el gnus.texi ido.el Makefile emacsbug.el files.el fill.el flyspell.el fr-refcard.tex ispell.el meta-mode.el nnrss.el anti.texi battery.el blackbox.el bs.el calccard.tex callint.c cmuscheme.el - and 58 other files + and 57 other files Michael D. Ernst: wrote reposition.el -and changed dired-x.el uniquify.el ispell.el bibtex.el rmail.el dired.el - simple.el dired-aux.el gud.el rmailsum.el bytecomp.el compare-w.el - complete.el fill.el shadow.el texnfo-upd.el vc.el allout.el comint.el - cust-print.el edebug.el and 28 other files +and changed dired-x.el uniquify.el bibtex.el rmail.el dired.el simple.el + dired-aux.el gud.el rmailsum.el bytecomp.el compare-w.el complete.el + fill.el shadow.el texnfo-upd.el vc.el allout.el comint.el cust-print.el + edebug.el ediff.texi and 27 other files Michael Downes: changed gnus-sum.el @@ -4221,11 +4372,11 @@ Michael Gschwind: wrote iso-cvt.el Michael Harnois: changed nnimap.el -Michael Heerdegen: changed pp.el subr.el bytecomp.el cl-macs.el advice.el - control.texi copyright.el css-mode.el dired.el easy-mmode.el - eieio-core.el filesets.el gv.el hi-lock.el macroexp.el modula2.el - ob-C.el ob-core.el ob-exp.el ob-groovy.el ob-haskell.el - and 237 other files +Michael Heerdegen: changed pp.el subr.el bytecomp.el cl-macs.el gv.el + ob-exp.el advice.el control.texi copyright.el css-mode.el dired.el + easy-mmode.el eieio-core.el filesets.el hi-lock.el hideshow.el + macroexp.el modula2.el ob-C.el ob-core.el ob-groovy.el + and 236 other files Michael Hendricks: changed help.el @@ -4266,7 +4417,7 @@ Michael Olson: changed erc.el erc-backend.el Makefile erc-track.el erc-log.el erc-stamp.el erc-autoaway.el erc-dcc.el erc-goodies.el erc-list.el erc-compat.el erc-identd.el erc.texi erc-bbdb.el erc-match.el erc-notify.el erc-ibuffer.el erc-services.el remember.el - erc-button.el erc-nicklist.el and 54 other files + erc-button.el erc-nicklist.el and 53 other files Michael Orlitzky: changed tex-mode.el @@ -4275,8 +4426,8 @@ Michael Piotrowski: changed gnus-art.el gnus-sum.el ps-print.el Michael R. Cook: changed gnus-sum.el gnus-topic.el gnus-art.el Michael R. Mauger: changed sql.el sql-tests.el comint.el emacsclient.c - comint-tests.el cua-base.el custom.el facemenu.el recentf.el replace.el - server.el tramp.el w32fns.c + zone.el comint-tests.el cua-base.el custom.el facemenu.el + jka-cmpr-hook.el recentf.el replace.el server.el tramp.el w32fns.c Michael R. Wolf: changed ange-ftp.el @@ -4286,7 +4437,8 @@ Michael Schuldt: changed calc-comb.el Michael Shields: changed spam.el gnus-art.el gnus-sum.el gnus-cite.el server.el Makefile.in gnus-group.el gnus.el intel386.h nndraft.el - pgg-def.el window.c window.el + pgg-def.el use-package-core.el use-package-tests.el use-package.texi + window.c window.el Michael Sperber: changed org.el nnmail.el aix3-1.h aix4-2.h gnus-sum.el gnus.texi mail-source.el mailcap.el nnml.el org-capture.el @@ -4369,7 +4521,7 @@ Mike Kazantsev: changed erc-dcc.el Mike Kupfer: changed mh-comp.el mh-e.el mh-mime.el mh-utils.el files.el ftcrfont.c mh-compat.el mh-funcs.el mh-utils-tests.el emacs-mime.texi files.texi gnus-mh.el gnus.texi mh-acros.el mh-e.texi mh-identity.el - mh-scan.el variables.texi xftfont.c + mh-scan.el mh-thread.el variables.texi xftfont.c Mike Lamb: changed em-unix.el esh-util.el pcmpl-unix.el @@ -4401,7 +4553,7 @@ Miles Bader: wrote button.el face-remap.el image-file.el macroexp.el and changed comint.el faces.el simple.el editfns.c xfaces.c xdisp.c info.el minibuf.c display.texi quick-install-emacs wid-edit.el xterm.c dispextern.h subr.el window.el cus-edit.el diff-mode.el xfns.c - bytecomp.el help.el lisp.h and 272 other files + bytecomp.el help.el lisp.h and 266 other files Milton Wulei: changed gdb-ui.el @@ -4430,11 +4582,12 @@ Mohsin Kaleem: changed cus-face.el dispextern.h eglot.el term.c Mon Key: changed animate.el imap.el syntax.el -Morgan Smith: changed image-dired.el doc-view.el window.el - esh-var-tests.el esh-var.el eshell.texi gnus-group-tests.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 Willcock: changed tempo.el electric.el ert-font-lock.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 Moritz Maxeiner: changed commands.texi cus-start.el dispnew.c xdisp.c @@ -4455,10 +4608,10 @@ Muchenxuan Tong: changed org-agenda.el org-mobile.el org-timer.el Murata Shuuichirou: changed coding.c -M Visuwesh: changed dired-aux.el image.el ind-util.el quail/indian.el - delsel.el doc-view.el eww.el find-dired.el mailcap.el mouse.el shr.el - arc-mode.el comint.el dired-x.el dired.el easy-mmode.el emacsbug.el - ffap.el files.el files.texi gnus-group.el and 19 other files +M Visuwesh: changed dired-aux.el doc-view.el dired.el help-fns.el + image.el ind-util.el misc.texi quail/indian.el shr.el delsel.el eww.el + find-dired.el mailcap.el mouse.el project.el vc-git.el arc-mode.el + building.texi calc-ext.el calc-mode.el calc.el and 35 other files Myles English: changed org-clock.el @@ -4477,7 +4630,7 @@ Nakamura Toshikazu: changed w32fns.c Nali Toja: changed configure.ac -Naofumi Yasufuku: changed search.c tramp-sh.el +Naofumi Yasufuku: changed auth-source-pass.el search.c tramp-sh.el Naohiro Aota: changed fontset.c ftfont.c gnus-art.el mm-view.el tls.el xftfont.c @@ -4494,13 +4647,11 @@ Nathan J. Williams: changed imap.el Nathan Moreau: changed vc.el Nathan Trapuzzano: changed cconv.el cl-macs.el cperl-mode.el gnus.texi - linum.el progmodes/python.el python-tests.el + progmodes/python.el python-tests.el Nathan Weizenbaum: changed js.el progmodes/python.el -Neal Sidhwaney: changed lisp-mode-tests.el lisp-mode.el - -Neal Ziring: co-wrote vi.el (public domain) +Neal Sidhwaney: changed lisp-mode-tests.el lisp-mode.el subr-tests.el Neil Mager: wrote appt.el @@ -4531,7 +4682,8 @@ Nicholas Maniscalco: changed term.el Nicholas Strauss: changed lunar.el -Nicholas Vollmer: changed emacs.1.in checkdoc.el easy-mmode.el +Nicholas Vollmer: changed emacs.1.in checkdoc.el dictionary.el + easy-mmode.el Nick Alcock: changed control.texi customize.texi display.texi files.el frames.texi gnus.el keymaps.texi modes.texi nonascii.texi syntax.texi @@ -4550,9 +4702,9 @@ Nick Helm: changed dired-aux.el eldoc.el help.el help.texi nsterm.m Nick Roberts: wrote gdb-mi.el t-mouse.el and changed gdb-ui.el gud.el building.texi tooltip.el speedbar.el - bindings.el thumbs.el xt-mouse.el .gdbinit DEBUG cc-mode.el comint.el - keyboard.c subr.el frames.texi help-mode.el progmodes/compile.el - xdisp.c display.texi term.c vc-svn.el and 145 other files + bindings.el xt-mouse.el .gdbinit DEBUG cc-mode.el comint.el keyboard.c + subr.el frames.texi help-mode.el progmodes/compile.el xdisp.c + display.texi term.c vc-svn.el break.pbm and 144 other files Nick Savage: changed help-mode.el @@ -4568,6 +4720,8 @@ Nicolás Bértolo: changed comp.c comp.el emacs.c lread.c comp.h lisp.h Nicolas Calderon Asselin: changed org-clock.el +Nicolas Despres: changed window.el windows.texi + Nicolas Goaziou: wrote oc-basic.el oc-biblatex.el oc-bibtex.el oc-csl.el oc-natbib.el oc.el ol-doi.el org-duration.el org-element.el org-keys.el org-lint.el org-macro.el org-num.el ox-ascii.el ox-latex.el ox-md.el @@ -4624,7 +4778,7 @@ Nils Ackermann: changed message.el nnmh.el reftex-vars.el Nitish Chinta: changed progmodes/python.el sendmail.el simple.el -N. Jackson: changed emacs.texi forms.texi gnus.info os.texi +N. Jackson: changed emacs.texi forms.texi gnus.texi os.texi Noah Evans: changed follow.el @@ -4633,7 +4787,7 @@ and co-wrote erc-dcc.el and changed rsz-mini.el emacs-buffer.gdb comint.el files.el Makefile mailabbrev.el sendmail.el shell.el src/sysdep.c subr.el timer.el xfns.c yow.el apropos.el battery.el bytecomp.el calc.el coding.c complete.el - config.in configure.ac and 24 other files + config.in configure.ac and 22 other files Noah Lavine: changed tramp.el @@ -4648,7 +4802,7 @@ Noam Postavsky: changed progmodes/python.el lisp-mode.el bytecomp.el lisp-mode-tests.el term.el xdisp.c cl-macs.el eval.c simple.el data.c emacs-lisp/debug.el modes.texi elisp-mode.el help-fns.el subr.el ert.el isearch.el processes.texi search.c cl-print.el diff-mode.el - and 362 other files + and 361 other files Nobuyoshi Nakada: co-wrote ruby-mode.el and changed ehelp.el ruby-mode-tests.el @@ -4686,14 +4840,14 @@ Olaf Sylvester: wrote bs.el Olaf Trygve Berglihn: changed bibtex.el -Ola Nilsson: changed sh-script.el +Ola Nilsson: changed make-mode.el sh-script.el Ole Aamot: changed compile.el Oleg Pykhalov: changed gnus-sum.el -Oleg S. Tihonov: changed cyrillic.el ispell.el language/cyrillic.el - map-ynp.el subr.el +Oleg S. Tihonov: changed cyrillic.el language/cyrillic.el map-ynp.el + subr.el Oleh Krehel: co-wrote subr-tests.el and changed dired-aux.el outline.el checkdoc.el files.el subr.el buffer.c @@ -4712,8 +4866,7 @@ Oliver Scholz: wrote ipa-praat.el and changed gamegrid.el gnus-cite.el nonascii.texi rx.el startup.el update-game-score.c -Oliver Seidel: wrote otodo-mode.el -and co-wrote todo-mode.el +Oliver Seidel: co-wrote todo-mode.el Olivier Certner: wrote vc-cvs-tests.el and changed erc-track.el erc-ibuffer.el vc-cvs.el ediff-diff.el @@ -4744,8 +4897,8 @@ and changed ph.el Óscar Fuentes: changed ido.el password-cache.el progmodes/grep.el ses.el vc-hooks.el xfns.c CPP-DEFINES INSTALL.W64 addpm.c addsection.c browse-url.el callproc.c cmdproxy.c configure.ac diff-mode.el - em-cmpl.el emacsclient.c keyboard.c ms-w32.h preprep.c vc-bzr.el - and 11 other files + em-cmpl.el emacsclient.c keyboard.c ms-w32.h vc-bzr.el vc-cvs.el + and 10 other files Osmo Karppinen: changed erc.el @@ -4781,9 +4934,9 @@ and changed imenu.el make-mode.el Paul Eggert: wrote rcs2log and co-wrote cal-dst.el and changed lisp.h configure.ac alloc.c fileio.c process.c editfns.c - sysdep.c xdisp.c fns.c image.c data.c emacs.c keyboard.c lread.c - xterm.c eval.c gnulib-comp.m4 merge-gnulib callproc.c Makefile.in - buffer.c and 1892 other files + sysdep.c xdisp.c fns.c image.c emacs.c keyboard.c data.c lread.c + xterm.c merge-gnulib eval.c gnulib-comp.m4 Makefile.in callproc.c + frame.c and 1899 other files Paul Fisher: changed fns.c @@ -4797,6 +4950,12 @@ and changed message.el gnus-util.el gnus-int.el gnus.el gnus-agent.el Paul M. Rodriguez: changed eglot.el +Paul Nelson: changed bind-key.el foldout.el reftex-global.el + reftex-parse.el repeat-tests.el rmail.texi rmailsum.el tex-mode.el + building.texi calendar.el calendar.texi display.texi ediff-util.el + ediff.el ediff.texi fixit.texi gud.el ispell.el keymap.el lisp.el + mail/rmailmm.el and 22 other files + Paul Pogonyshev: changed subr.el byte-opt.el bytecomp.el desktop.el emacs-lisp/debug.el eval.c package.el progmodes/python.el which-func.el align.el bytecode.c cc-langs.el cl-macs.el configure.ac dabbrev.el @@ -4811,7 +4970,7 @@ Paul Reilly: changed dgux.h lwlib-Xm.c lwlib.c xlwmenu.c configure.ac lwlib/Makefile.in mail/rmailmm.el rmailedit.el rmailkwd.el and 10 other files -Paul Rivier: changed ada-mode.el mixal-mode.el reftex-vars.el reftex.el +Paul Rivier: changed mixal-mode.el reftex-vars.el reftex.el Paul Rubin: changed config.h sun2.h texinfmt.el window.c @@ -4833,21 +4992,25 @@ Pavel Janík: co-wrote eudc-bob.el eudc-export.el eudc-hotlist.el and changed keyboard.c xterm.c COPYING xdisp.c process.c emacs.c lisp.h menu-bar.el ldap.el make-dist xfns.c buffer.c coding.c eval.c fileio.c flyspell.el fns.c indent.c Makefile.in callint.c cus-start.el - and 702 other files + and 689 other files Pavel Kobiakov: wrote flymake-proc.el flymake.el and changed flymake.texi Peder O. Klingenberg: wrote dns-mode-tests.el -and changed dns-mode.el icalendar.el mm-decode.el org.el calc-comb.el - calc.texi dunnet.el emacsbug.el emacsclient.c eww.el gnus.texi - misc.texi snake.el subr.el url-http.el url-queue.el url-util.el - url-vars.el url.texi +and changed url-http.el dns-mode.el icalendar.el mm-decode.el org.el + calc-comb.el calc.texi dunnet.el emacsbug.el emacsclient.c eww.el + gamegrid.el gnus.texi misc.texi snake.el subr.el url-queue.el + url-util.el url-vars.el url.texi Pedro Andres Aranda Gutierrez: changed cus-face.el xfaces.c P. E. Jareth Hein: changed gnus-util.el +Pengji Zhang: changed bindings.el buff-menu.el comint.el display.texi + em-hist.el eshell.texi flow-fill-tests.el flow-fill.el flymake-cc.el + modes.texi reftex-ref.el reftex-sel.el xdisp.c + Per Abrahamsen: wrote cus-dep.el cus-edit.el cus-face.el cus-start.el custom.el double.el gnus-cite.el gnus-cus.el progmodes/cpp.el wid-browse.el wid-edit.el widget.el xt-mouse.el @@ -4855,7 +5018,7 @@ and co-wrote gnus-score.el and changed message.el menu-bar.el gnus.el gnus-art.el gnus-msg.el gnus-group.el gnus-sum.el frame.el gnus-draft.el tool-bar.el widget.texi apropos.el easymenu.el facemenu.el faces.el gnus-srvr.el - gnus-uu.el ispell.el lisp-mode.el makefile.el mouse.el + gnus-uu.el lisp-mode.el makefile.el mouse.el nnmail.el and 30 other files Per Bothner: wrote term.el @@ -4874,10 +5037,10 @@ Perry E. Metzger: changed xdisp.c bindings.el buffer.c display.texi Perry Smith: wrote ruby-ts-mode.el and changed eglot.el ruby-ts-mode-tests.el -Per Starbäck: changed ispell.el characters.el dired.el gnus-start.el BUGS +Per Starbäck: changed characters.el dired.el gnus-start.el BUGS apropos.el bibtex.el bytecomp.el charset.h coding.c doctor.el emacs.c - european.el iso-transl.el pcmpl-gnu.el progmodes/python.el replace.el - startup.el trouble.texi vc.el xdisp.c + european.el iso-transl.el ispell.el pcmpl-gnu.el progmodes/python.el + replace.el startup.el trouble.texi vc.el xdisp.c Pete Beardmore: changed semantic/complete.el idle.el @@ -4913,11 +5076,12 @@ Peter Münster: changed image-dired.el gnus-delay.el gnus-demon.el Peter O'Gorman: changed configure.ac frame.h hpux10-20.h termhooks.h -Peter Oliver: changed emacsclient.desktop emacsclient-mail.desktop - Makefile.in emacs-mail.desktop configure.ac misc.texi server.el - admin.el dired-tests.el ediff-diff.el emacs.c emacs.desktop - emacs.metainfo.xml emacsclient.1 incrementing-version-code perl-mode.el - ruby-mode-tests.el vc-sccs.el wdired-tests.el +Peter Oliver: changed emacsclient.desktop emacs.metainfo.xml + emacsclient-mail.desktop Makefile.in emacs-mail.desktop + treesit-admin.el configure.ac dired-tests.el efaq.texi misc.texi + server.el term.c AndroidManifest.xml.in Dockerfile.emba admin.el + compat-template.html ediff-diff.el emacs.c emacs.desktop emacsclient.1 + perl-mode.el and 6 other files Peter Povinec: changed term.el @@ -4926,7 +5090,7 @@ Peter Rosin: changed configure.ac Peter Runestig: changed configure.bat dos-w32.el emacs.rc.in w32fns.c zone-mode.el -Peter Seibel: changed cl-indent.el lisp-mode.el +Peter Seibel: changed cl-indent.el lisp-mode.el pcmpl-git.el Peter S. Galbraith: wrote mh-alias.el mh-identity.el mh-inc.el mh-limit.el @@ -4970,12 +5134,13 @@ Philip Hudson: changed em-hist.el Philip Jackson: wrote find-cmd.el ol-irc.el and changed org-irc.el -Philip Kaludercic: wrote epa-ks.el package-vc.el +Philip Kaludercic: wrote epa-ks.el newcomers-presets-theme.el + package-vc.el scrape-elpa.el and co-wrote compat.el -and changed rcirc.el package.el vc.el rcirc.texi vc-git.el package.texi - project.el which-key.el eglot.el message.el loaddefs-gen.el simple.el - subr.el vc-hg.el .dir-locals.el bytecomp.el custom.el gravatar.el - help.el outline.el vc-svn.el and 73 other files +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 + 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 @@ -5000,10 +5165,10 @@ Philipp Stephani: wrote callint-tests.el checkdoc-tests.el cl-preloaded-tests.el ediff-diff-tests.el eval-tests.el ido-tests.el lread-tests.el mouse-tests.el startup-tests.el xt-mouse-tests.el and changed emacs-module.c emacs-module-tests.el configure.ac json.c - process.c eval.c internals.texi json-tests.el process-tests.el - pdumper.c alloc.c emacs-module.h.in emacs.c lread.c nsterm.m - bytecomp.el lisp.h seccomp-filter.c callproc.c cl-macs.el gtkutil.c - and 189 other files + internals.texi process.c eval.c json-tests.el process-tests.el + pdumper.c alloc.c emacs-module.in.h emacs.c lisp.h lread.c nsterm.m + bytecomp.el seccomp-filter.c callproc.c cl-macs.el gtkutil.c + and 190 other files Philipp Uhl: changed secrets.el @@ -5013,16 +5178,16 @@ Phillip Lord: wrote ps-print-tests.el w32-feature.el and changed build-zips.sh build-dep-zips.py lisp/Makefile.in undo.c simple.el test/Makefile.in README-scripts README-windows-binaries emacs.nsi Makefile Makefile.in keyboard.c viper-cmd.el README.W32 - elisp-mode-tests.el ldefs-clean.el loadup.el autoload.el - automated/Makefile.in cmds.c dired.el and 171 other files + elisp-mode-tests.el ldefs-clean.el loadup.el automated/Makefile.in + cmds.c dired.el eieio-tests.el and 168 other files Phil Sainty: wrote autoload-longlines-mode-tests.el autoload-major-mode-tests.el autoload-minor-mode-tests.el so-long-tests-helpers.el so-long-tests.el so-long.el spelling-tests.el and changed buffer.c modes.texi term.el comint.el diff.el goto-addr.el - xdisp.c cl-macs.el derived.el easy-mmode.el ecomplete.el emacs.texi - files.texi lisp.el misc.texi package.el progmodes/grep.el simple.el - subr-x.el subword.el trouble.texi + tab-bar.el window.el xdisp.c cl-macs.el comp-run.el derived.el + easy-mmode.el ecomplete.el emacs.texi files.texi ibuffer.el lisp.el + misc.texi package.el progmodes/grep.el and 6 other files Phil Sung: changed wdired.el dired.texi follow.el progmodes/python.el @@ -5052,6 +5217,8 @@ Pieter Van Prooijen: changed xsettings.c ftcrfont.c xsettings.h Piet van Oostrum: changed data.c fileio.c flyspell.el smtpmail.el +Pig Fang: changed eglot.el + Pinku Surana: changed sql.el Piotr Kwiecinski: changed eglot.el @@ -5061,22 +5228,27 @@ Piotr Trojanek: changed gnutls.c process.c Piotr Zieliński: wrote org-mouse.el Pip Cet: wrote image-circular-tests.el -and changed xdisp.c comp.c byte-opt.el fns.c pdumper.c alloc.c - display.texi eval.c ftcrfont.c image.c sfnt.c xterm.c DEBUG - bytecomp-tests.el bytecomp.el ccl-tests.el ccl.c ccl.el cl-macs.el - cmds.c comint.el and 34 other files +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 Platon Pronko: changed tramp.el Po Lu: wrote tramp-androidsu.el and changed xterm.c haikuterm.c xfns.c haiku_support.cc android.c xterm.h - configure.ac xwidget.c sfnt.c EmacsService.java haiku_support.h - androidterm.c haikufns.c android.texi keyboard.c pgtkterm.c frames.texi - nsterm.m pixel-scroll.el sfntfont.c EmacsWindow.java - and 535 other files + configure.ac xwidget.c EmacsService.java sfnt.c androidterm.c + haiku_support.h haikufns.c android.texi keyboard.c pgtkterm.c + frames.texi nsterm.m EmacsWindow.java pixel-scroll.el sfntfont.c + and 582 other files Pontus Michael: changed simple.el +Pooya Moradi: changed eglot.el + +Pranshu Sharma: co-wrote window-x.el +and changed gnus-salt.el + Prateek Sharma: changed progmodes/python.el Prestoo Ten: changed screen.el @@ -5089,9 +5261,18 @@ Protesilaos Stavrou: wrote modus-operandi-deuteranopia-theme.el modus-vivendi-deuteranopia-theme.el modus-vivendi-theme.el modus-vivendi-tinted-theme.el modus-vivendi-tritanopia-theme.el and changed modus-themes.org eww.el vc-dir.el TUTORIAL.el_GR log-view.el - modus-themes.texi time.el vc-git.el appt.el apropos.el custom.el - diff-mode.el language/greek.el log-edit.el minibuffer.el perl-mode.el - shortdoc.el shr.el vc-cvs.el vc-hg.el vc-svn.el vc/vc-bzr.el + time.el vc-git.el appt.el apropos.el custom.el diff-mode.el flymake.el + ibuffer.el language/greek.el log-edit.el minibuffer.el package.el + perl-mode.el shortdoc.el shr.el vc-cvs.el and 5 other files + +Przemsyław Kryger: wrote package-vc-tests.el + +Przemysław Alexander Kamiński: changed buffer-tests.el buffer.c buffer.h + dispextern.h display.texi frame.c frame.h nsterm.m picture.el simple.el + subr-tests.el subr.el window.c window.el window.h xdisp.c + +Przemysław Kryger: changed package-vc-tests.el package-vc.el package.el + vc-git-tests.el vc-tests.el Przemysław Wojnowski: wrote obarray-tests.el sgml-mode-tests.el and changed abbrev-tests.el abbrev.el cl-lib-tests.el loadup.el @@ -5102,8 +5283,8 @@ Puneeth Chaganti: changed org.texi ox.el org-agenda.el org-capture.el Qiantan Hong: changed xwidget.c -Qifan Wang: changed auth-source-tests.el auth-source.el eww.texi - newst-backend.el newst-plainview.el shr.el +Qifan Wang: changed newst-backend.el auth-source-tests.el auth-source.el + eww.texi newst-plainview.el shr.el Radon Rosborough: changed package.el custom.texi package.texi startup.el eval.c lread.c org.texi os.texi xterm.c @@ -5116,6 +5297,9 @@ 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 + Raimon Grau: changed thingatpt.el calc-fin.el eww.el replace.el thingatpt-tests.el @@ -5160,11 +5344,11 @@ Randall Smith: changed dired.el Randal Schwartz: wrote pp.el -Randy Taylor: changed go-ts-mode.el build.sh dockerfile-ts-mode.el - eglot.el batch.sh cmake-ts-mode.el rust-ts-mode.el c-ts-mode.el - cus-theme.el font-lock.el font-lock.go java-ts-mode.el js.el - json-ts-mode.el modes.texi progmodes/python.el project.el sh-script.el - typescript-ts-mode.el yaml-ts-mode.el +Randy Taylor: changed go-ts-mode.el build.sh cmake-ts-mode.el + dockerfile-ts-mode.el eglot.el batch.sh rust-ts-mode.el c-ts-mode.el + yaml-ts-mode.el configure.ac cus-theme.el emacs.c font-lock.el + font-lock.go java-ts-mode.el js.el json-ts-mode.el modes.texi + progmodes/python.el project.el sh-script.el and 6 other files Ransom Williams: changed files.el @@ -5189,7 +5373,7 @@ Reiner Steib: wrote gmm-utils.el and changed message.el gnus.texi gnus-art.el gnus-sum.el gnus-group.el gnus.el mml.el gnus-faq.texi mm-util.el gnus-score.el message.texi gnus-msg.el gnus-start.el gnus-util.el spam-report.el mm-uu.el spam.el - mm-decode.el files.el gnus-agent.el nnmail.el and 170 other files + mm-decode.el files.el gnus-agent.el nnmail.el and 169 other files Remek Trzaska: changed gnus-ems.el @@ -5199,6 +5383,8 @@ Remington Furman: changed thingatpt.el Rémi Vanicat: changed ox-icalendar.el org-table.el +Renato Ferreira: changed tramp.el + Renaud Rioboo: changed nnmail.el René Kyllingstad: changed editfns.c mule-cmds.el pcomplete.el @@ -5207,11 +5393,11 @@ Reto Zimmermann: wrote vera-mode.el and co-wrote vhdl-mode.el and changed vhdl-mode.texi -Reuben Thomas: changed ispell.el whitespace.el dired-x.el files.el - sh-script.el emacsclient-tests.el remember.el README emacsclient.c - misc.texi msdos.c simple.el INSTALL ada-mode.el ada-xref.el alloc.c - arc-mode.el authors.el config.bat copyright cperl-mode.el - and 38 other files +Reuben Thomas: co-wrote lua-mode.el +and changed ispell.el whitespace.el dired-x.el files.el sh-script.el + emacsclient-tests.el remember.el README emacsclient.c misc.texi msdos.c + simple.el INSTALL alloc.c arc-mode.el authors.el config.bat copyright + cperl-mode.el dired-x.texi dired.el and 37 other files Ricardo Martins: changed eglot.el @@ -5238,7 +5424,18 @@ and changed bovine.texi db-global.el gud.el loading.texi python-wy.el Richard King: wrote filelock.c uniquify.el userlock.el -Richard Lawrence: changed calendar.el org-agenda.el ox-latex.el +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 + import-legacy-function.ics import-legacy-vars.ics + import-non-recurring-all-day.ics import-rrule-anniversary.ics + and 8 other files Richard Levitte: changed vc-mtn.el @@ -5247,7 +5444,6 @@ Richard L. Pieri: wrote pop3.el Richard M. Heiberger: changed tex-mode.el Richard Mlynarik: wrote cl-indent.el ebuff-menu.el ehelp.el rfc822.el - terminal.el yow.el and changed files.el rmail.el simple.el info.el sysdep.c bytecomp.el startup.el keyboard.c fileio.c process.c sendmail.el window.c editfns.c unexec.c xfns.c keymap.c lisp-mode.el minibuf.c buffer.c dired.el @@ -5260,7 +5456,7 @@ and co-wrote cc-align.el cc-cmds.el cc-defs.el cc-engine.el cc-langs.el and changed files.el keyboard.c simple.el xterm.c xdisp.c rmail.el fileio.c process.c sysdep.c buffer.c xfns.c window.c subr.el configure.ac startup.el sendmail.el emacs.c Makefile.in editfns.c - info.el dired.el and 1339 other files + info.el dired.el and 1328 other files Richard Ryniker: changed sendmail.el @@ -5313,11 +5509,11 @@ Roberto Rodríguez: changed glossary.texi widget.texi Robert P. Goldman: changed org.texi ob-exp.el org.el ox-latex.el Robert Pluim: wrote nsm-tests.el -and changed configure.ac process.c keymap.el blocks.awk processes.texi - custom.texi font.c network-stream-tests.el emoji-zwj.awk ftfont.c - gtkutil.c process-tests.el unicode vc-git.el display.texi files.texi - network-stream.el nsterm.m terminal.c char-fold.el gnutls.el - and 218 other files +and changed process.c configure.ac keymap.el network-stream-tests.el + blocks.awk processes.texi custom.texi emoji-zwj.awk font.c + process-tests.el display.texi unicode ftfont.c gtkutil.c nsterm.m + vc-git.el files.texi message.el network-stream.el terminal.c auth.texi + and 233 other files Robert Thorpe: changed cus-start.el indent.el rmail.texi @@ -5344,6 +5540,14 @@ Rodrigo Real: changed pt-br-refcard.tex Roger Breitenstein: changed smtpmail.el +Roi Martin: changed fill.el fill-tests.el ert-tests.el text.texi + cmake-ts-mode.el ert.el fill-region.erts go-ts-mode.el js.el calc.texi + comp-run.el csharp-mode.el elixir-ts-mode.el ert.texi erts-fail.erts + erts-file-test-list-fail.erts erts-file-test-list.erts erts-pass.erts + fill-paragraph-semlf-c-mode.erts + fill-paragraph-semlf-emacs-lisp-mode.erts + fill-paragraph-semlf-markdown-mode.erts and 12 other files + Roland B. Roberts: changed buffer.h callproc.c dired.c files.el gnus-group.el gnus-sum.el process.c sort.el sysdep.c systty.h @@ -5354,7 +5558,7 @@ and co-wrote find-dired.el progmodes/compile.el and changed compile.el add-log.el configure.ac files.el vc.el simple.el mailabbrev.el comint.el Makefile.in buffer.c upd-copyr.el menu-bar.el etags.c mem-limits.h ralloc.c src/Makefile.in fileio.c data.c process.c - rlogin.el rmail.el and 139 other files + rlogin.el rmail.el and 137 other files Roland Winkler: wrote proced.el and changed bibtex.el faces.el crm.el find-dired.el bookmark.el process.c @@ -5370,12 +5574,14 @@ Romain Francoise: changed efaq.texi message.el make-dist gnus.texi dired-x.el Makefile.in comint.el fileio.c ibuf-ext.el subr.el configure.ac files.texi gnus-sum.el gnus-uu.el progmodes/compile.el puresize.h replace.el startup.el doclicense.texi emacs.c gnus-fun.el - and 149 other files + and 148 other files Roman Belenov: changed which-func.el Ronan Waide: changed smtpmail.el +Ron Parker: changed editorconfig-core-handle.el + Ron Schnell: wrote dunnet.el and changed misc.texi @@ -5393,16 +5599,16 @@ R Primus: changed eglot.el Rüdiger Sonderfeld: wrote inotify-tests.el reftex-tests.el and changed eww.el octave.el shr.el bibtex.el configure.ac - misc/Makefile.in reftex-vars.el vc-git.el TUTORIAL.de ada-mode.el - autoinsert.el building.texi bytecomp.el calc-lang.el cc-langs.el - dired.texi editfns.c emacs.c emacs.texi epa.el erc.el - and 40 other files + misc/Makefile.in reftex-vars.el vc-git.el TUTORIAL.de autoinsert.el + building.texi bytecomp.el calc-lang.el cc-langs.el dired.texi editfns.c + emacs.c emacs.texi epa.el erc.el eww.texi and 39 other files Rudolf Adamkovič: co-wrote quail/slovak.el -and changed compilation.txt compile-tests.el progmodes/compile.el - calc-units.el files.el ispell.el scheme.el +and changed nsterm.m compilation.txt compile-tests.el ispell.el + progmodes/compile.el calc-units.el comint.el files.el hi-lock.el + message.el scheme.el sql.el -Rudolf Schlatte: changed README.md eglot.el iso-transl.el +Rudolf Schlatte: changed README.md eglot.el iso-transl.el vc-hooks.el Ruijie Yu: changed TUTORIAL.cn arc-mode-tests.el arc-mode.el @@ -5447,7 +5653,9 @@ Ryszard Kubiak: co-wrote ogonek.el R-Zip: changed eglot.el Sacha Chua: wrote erc-pcomplete.el -and changed erc.el org.el erc-button.el org.texi shr.el +and changed erc.el org.el erc-button.el image-dired.el org.texi shr.el + +Sahil Kang: changed pdumper.c Saito Takuya: changed mule.el progmodes/compile.el @@ -5467,7 +5675,7 @@ Sam Steingold: wrote gulp.el midnight.el and changed progmodes/compile.el cl-indent.el simple.el vc-cvs.el vc.el mouse.el vc-hg.el files.el gnus-sum.el tex-mode.el etags.el font-lock.el sgml-mode.el subr.el window.el ange-ftp.el inf-lisp.el - message.el package.el rcirc.el shell.el and 216 other files + message.el package.el rcirc.el shell.el and 211 other files Samuel Bronson: changed custom.el emacsclient.c keyboard.c progmodes/grep.el semantic/format.el unexmacosx.c @@ -5528,10 +5736,14 @@ Scott Frazer: wrote deeper-blue-theme.el whiteboard-theme.el Scott M. Meyers: changed cmacexp.el +Sean Allred: changed project.el + Sean Bright: changed emacs.nsi Sean Connor: changed gnus-sum.el +Sean Devlin: changed calc.el package.el calc-tests.el calc.texi + Sean Neakums: changed gnus-msg.el gnus-uu.el supercite.el Sean O'Halpin: changed ob.el @@ -5542,10 +5754,12 @@ Sean O'Rourke: changed complete.el comint.el dabbrev.el find-func.el Sean Sieger: changed emacs-lisp-intro.texi Sean Whitton: wrote em-elecslash.el em-extpipe-tests.el em-extpipe.el -and changed vc-git.el project.el vc.el bindings.el server.el simple.el - subr.el vc-dispatcher.el window.el eshell-tests.el eshell.texi - subr-x.el .dir-locals.el cl-macs.el eshell-tests-helpers.el files.texi - ftfont.c remember.el startup.el term.el INSTALL and 40 other files + vc-test-misc.el +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 Sebastian Fieber: changed gnus-art.el mm-decode.el mm-view.el @@ -5559,6 +5773,8 @@ and changed add-log.el Sebastian Miele: changed simple-tests.el simple.el strings.texi +Sebastián Monía: changed eww.el url-parse-tests.el url-parse.el + Sebastian Reuße: changed find-dired.el Sebastian Rose: co-wrote org-protocol.el @@ -5609,13 +5825,15 @@ Sergey Poznyakoff: changed rmail.el mh-mime.el rmail.texi smtpmail.el Sergey Trofimov: changed window.el -Sergey Vinokurov: changed data.c buffer.c emacs-module-tests.el +Sergey Vinokurov: changed data.c pdumper.c buffer.c emacs-module-tests.el emacs-module.c memory-report.el Sergio Durigan Junior: changed eudcb-bbdb.el gdb-mi.el Sergio Martinez: changed nnimap.el +Sergio Pastor Pérez: changed indent.c + Sergio Pokrovskij: changed TUTORIAL.eo Seweryn Kokot: changed positions.texi searching.texi @@ -5633,6 +5851,8 @@ Shawn Boles: changed url-cookie.el Shawn M. Carey: wrote [some early FreeBSD support] +Shay Elkin: changed nsfns.m + Shenghuo Zhu: wrote binhex.el gnus-rfc1843.el mm-extern.el mm-partial.el mm-url.el mm-uu.el mml2015.el nnrss.el rfc1843.el uudecode.el and co-wrote gnus-dired.el nnfolder.el @@ -5640,11 +5860,11 @@ and changed gnus-art.el message.el gnus-sum.el gnus-msg.el gnus.el gnus-agent.el mm-decode.el mm-util.el gnus-group.el mml.el gnus-start.el gnus-util.el mm-view.el nnslashdot.el nnmail.el nntp.el gnus-topic.el gnus-xmas.el rfc2047.el mail-source.el gnus-win.el - and 93 other files + and 92 other files Shigeru Fukaya: wrote bytecomp-tests.el -and changed apropos.el bs.el byte-opt.el bytecomp.el elint.el rx-new.el - ses.el subr.el texinfmt.el +and changed apropos.el bs.el byte-opt.el bytecomp.el rx-new.el ses.el + subr.el texinfmt.el Shingo Tanaka: changed files.el @@ -5684,7 +5904,7 @@ and changed css-mode.el project.el json-tests.el json.el scss-mode.scss sgml-mode.el less-css-mode.less maintaining.texi modes.texi page.el ring.el rot13.el scheme.el sql.el apropos.el asm-mode.el autoconf.el autoinsert.el browse-url.el check-declare.el color.el - and 18 other files + and 17 other files Simona Arizanova: changed help.el @@ -5713,7 +5933,7 @@ and co-wrote comint.el shell.el and changed font-lock.el fast-lock.el lazy-lock.el rmail.el fortran.el sendmail.el subr.el dired.el sh-script.el texinfo.el add-log.el compile.el outline.el help.el menu-bar.el perl-mode.el ps-print.el - rmailsum.el bytecomp.el cc-fonts.el data.c and 58 other files + rmailsum.el bytecomp.el cc-fonts.el data.c and 57 other files Simon Schubert: changed json.el @@ -5721,6 +5941,8 @@ Simon South: co-wrote opascal.el Simon Thum: changed ob-maxima.el +Siyuan Chen: changed cua-base.el + Skip Collins: changed w32fns.c w32term.c w32term.h Skykanin-: changed eglot.el @@ -5730,12 +5952,13 @@ Slava Akhmechet: changed eglot.texi Sławomir Nowaczyk: changed emacs.py progmodes/python.el TUTORIAL.pl flyspell.el ls-lisp.el w32proc.c -Spencer Baugh: wrote uniquify-tests.el which-func-tests.el -and changed project.el minibuffer.el simple.el flymake.el - progmodes/grep.el vc-hg.el data-tests.el mini.texi minibuffer-tests.el - startup.el uniquify.el which-func.el alloc.c autorevert.el bindings.el - casefiddle-tests.el casefiddle.c comint.el crm.el dired-aux.el - dired-x.el and 22 other files +Spencer Baugh: wrote map-ynp-tests.el uniquify-tests.el + which-func-tests.el +and changed minibuffer.el project.el minibuffer-tests.el simple.el + flymake.el process.c progmodes/grep.el startup.el vc-hg.el crm.el + mini.texi uniquify.el comint.el data-tests.el dired-aux.el + easy-mmode.el eglot.el elisp-mode.el ffap.el flymake.texi keymap.c + and 48 other files Spencer Thomas: changed dabbrev.el emacsclient.c gnus.texi server.el unexcoff.c @@ -5762,10 +5985,10 @@ Stefan Kangas: wrote bookmark-tests.el cal-julian-tests.el studly-tests.el tabify-tests.el time-tests.el timezone-tests.el underline-tests.el uudecode-tests.el wallpaper.el warnings-tests.el and co-wrote help-tests.el keymap-tests.el -and changed image-dired.el efaq.texi package.el cperl-mode.el checkdoc.el - subr.el help.el simple.el bookmark.el dired.el files.el gnus.texi - dired-x.el browse-url.el erc.el keymap.c image-mode.el ediff-util.el - eglot.el speedbar.el woman.el and 1811 other files +and changed subr.el package.el image-dired.el checkdoc.el efaq.texi + cperl-mode.el help.el simple.el progmodes/python.el dired.el files.el + bookmark.el browse-url.el gnus.texi keymap.c dired-x.el erc.el image.c + cl-macs.el message.el subr-tests.el and 1947 other files Stefan Merten: co-wrote rst.el @@ -5779,10 +6002,10 @@ Stefan Monnier: wrote bibtex-style.el bytecomp-tests.el pcvs-util.el radix-tree.el regexp-opt-tests.el reveal.el smerge-mode.el smie.el subword-tests.el track-changes.el vc-mtn.el and co-wrote font-lock.el gitmerge.el pcvs.el visual-wrap.el -and changed subr.el simple.el cl-macs.el bytecomp.el keyboard.c files.el - lisp.h vc.el eval.c xdisp.c alloc.c buffer.c sh-script.el help-fns.el - progmodes/compile.el tex-mode.el lread.c keymap.c package.el window.c - edebug.el and 1728 other files +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 1743 other files Stefano Facchini: changed gtkutil.c @@ -5808,6 +6031,14 @@ Steinar Bang: changed gnus-setup.el imap.el 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 + +Stephane Zermatten: changed term-tests.el term.el ansi-osc.el + Stephan Stahl: changed which-func.el buff-menu.el buffer.c dired-x.texi ediff-mult.el @@ -5815,11 +6046,11 @@ Stephen A. Wood: changed fortran.el Stephen Berman: wrote todo-mode-tests.el and co-wrote todo-mode.el visual-wrap.el -and changed wid-edit.el wdired.el todo-mode.texi wdired-tests.el - dabbrev-tests.el diary-lib.el dired.el dired-tests.el doc-view.el - files.el info.el minibuffer.el outline.el todo-test-1.todo widget.texi - allout.el dabbrev.el eww.el find-dired.el frames.texi hl-line.el - and 78 other files +and changed dired.el wid-edit.el wdired.el dired-tests.el files.el + todo-mode.texi dabbrev-tests.el wdired-tests.el diary-lib.el + menu-bar.el minibuffer.el dabbrev.el dired-aux.el doc-view.el info.el + outline.el simple.el todo-test-1.todo widget.texi INSTALL_BEGIN + allout.el and 89 other files Stephen C. Gilardi: changed configure.ac @@ -5831,22 +6062,22 @@ and changed diary-lib.el octave.el org-agenda.el locate.el replace.el allout.el autoinsert.el avoid.el backquote.el battery.el bib-mode.el bruce.el c-mode.el ccl.el and 79 other files -Stephen Gildea: wrote refcard.tex +Stephen Gildea: wrote refcard.tex time-stamp.el and co-wrote mh-funcs.el mh-search.el -and changed time-stamp.el time-stamp-tests.el mh-e.el mh-utils-tests.el - mh-junk.el mh-utils.el mh-comp.el files.texi mh-show.el mh-e.texi - test-all-mh-variants.sh files.el mh-customize.el mh-folder.el - mh-scan.el mh-xface-tests.el backups.texi comp-tests.el compile.texi - dns-mode.el emacs.texi and 24 other files +and changed time-stamp-tests.el mh-e.el mh-utils-tests.el files.texi + mh-junk.el mh-utils.el mh-comp.el mh-show.el find-func.el mh-e.texi + mh-folder.el symbols.texi test-all-mh-variants.sh ert.texi files.el + functions.texi mh-customize.el mh-scan.el mh-xface-tests.el tips.texi + backups.texi and 44 other files Stephen J. Turnbull: changed ediff-init.el strings.texi subr.el Stephen Leake: wrote elisp-mode-tests.el -and changed ada-mode.el ada-xref.el elisp-mode.el xref.el eglot.el - window.el mode-local.el project.el CONTRIBUTE ada-prj.el vc-mtn.el - ada-stmt.el cedet-global.el ede/generic.el simple.el autoload.el - bytecomp.el cl-generic.el ede/locate.el files.texi functions.texi - and 36 other files +and changed elisp-mode.el xref.el eglot.el window.el mode-local.el + project.el CONTRIBUTE vc-mtn.el ada-stmt.el cedet-global.el + ede/generic.el simple.el bytecomp.el cl-generic.el ede/locate.el + files.texi functions.texi package.el progmodes/grep.el windows.texi + INSTALL.REPO and 31 other files Stephen Pegoraro: changed xterm.c @@ -5858,9 +6089,11 @@ Steve Fisk: co-wrote cal-tex.el Steve Grubb: changed vcdiff -Steven Allen: changed functions.texi nadvice.el package-vc.el - em-prompt.el esh-mode.el tramp-gvfs.el tramp-integration.el - url-expand.el use-package-core.el use-package-tests.el xdg.el +Steven Allen: changed dbus.texi functions.texi nadvice.el package-vc.el + c-ts-common.el configure.ac dbus.el dbusbind.c desktop.el + display-fill-column-indicator.el eglot-tests.el eglot.el em-prompt.el + emacsbug.el esh-mode.el eww-tests.el eww.el flymake.el + font-lock-no-parent.rs frame.el linum.el and 19 other files Steven De Herdt: changed vc/vc-bzr.el @@ -5986,9 +6219,9 @@ Tassilo Horn: wrote doc-view.el and co-wrote ol-gnus.el and changed bug-reference.el reftex-vars.el tex-mode.el browse-url.el gnus.texi reftex-cite.el tsdh-dark-theme.el tsdh-light-theme.el - gnus-sum.el maintaining.texi file-notify-tests.el gnus-art.el misc.texi - reftex.el org-gnus.el prog-mode.el simple.el subword.el dired.el - image-mode.el json.el and 105 other files + gnus-sum.el maintaining.texi misc.texi simple.el dired.el + file-notify-tests.el gnus-art.el paren.el reftex.el org-gnus.el + prog-mode.el subword.el image-mode.el and 105 other files Tatsuya Ichikawa: changed gnus-agent.el gnus-cache.el @@ -6009,7 +6242,7 @@ and changed spam.el gnus.el nnimap.el gnus.texi gnutls.c gnus-sum.el auth.texi cfengine.el gnus-sync.el gnus-util.el gnus-start.el netrc.el gnutls.h message.el spam-stat.el .gitlab-ci.yml encrypt.el mail-source.el nnir.el nnmail.el auth-source-tests.el - and 125 other files + and 124 other files Terje Rosten: changed xfns.c version.el xterm.c xterm.h @@ -6026,13 +6259,15 @@ T.F. Torrey: changed org-rmail.el ox.el Thamer Mahmoud: changed arabic.el +Thanos Apollo: changed quail/greek.el + Theodore Jump: changed makefile.nt makefile.def w32-win.el w32faces.c Theodor Thornhill: changed typescript-ts-mode.el java-ts-mode.el - c-ts-mode.el eglot.el js.el csharp-mode.el css-mode.el indent.erts + c-ts-mode.el eglot.el js.el csharp-mode.el indent.erts css-mode.el project.el treesit.el json-ts-mode.el html-ts-mode.el eglot-tests.el prog-mode.el simple.el EGLOT-NEWS c-ts-common.el java-ts-mode-tests.el - movement.erts positions.texi programs.texi and 17 other files + movement.erts positions.texi programs.texi and 18 other files Theresa O'Connor: wrote json.el and changed erc.el erc-viper.el erc-log.el erc-track.el viper.el @@ -6047,18 +6282,18 @@ and co-wrote hideshow.el and changed ewoc.el vc.el info.el processes.texi zone.el lisp-mode.el scheme.el text.texi vc-rcs.el display.texi fileio.c files.el vc-git.el TUTORIAL.it bindat.el cc-vars.el configure.ac dcl-mode.el diff-mode.el - dired.el elisp.texi and 169 other files + dired.el elisp.texi and 165 other files Thierry Banel: co-wrote ob-C.el and changed calc-arith.el Thierry Emery: changed kinsoku.el timezone.el url-http.el wid-edit.el -Thierry Volpiatto: changed register.el bookmark.el files.el dired-aux.el - eshell/eshell.el gnus-sum.el keyboard.c net-utils.el package.el +Thierry Volpiatto: changed register.el bookmark.el eshell/eshell.el + files.el dired-aux.el gnus-sum.el keyboard.c net-utils.el package.el tramp.el woman.el eldoc.el files.texi image-mode.el info.el man.el minibuffer.el pcmpl-gnu.el subr.el use-package.el winner.el - and 22 other files + and 26 other files Thomas Bach: changed wisent/python.el @@ -6074,7 +6309,7 @@ Thomas Dorner: changed ange-ftp.el Thomas Dye: changed org.texi org-bibtex.el ob-R.el org.el Thomas Fitzsimmons: wrote soap-client.el -and changed soap-inspect.el eudc-vars.el eudc.el eudc.texi ldap.el +and changed soap-inspect.el eudc.el eudc-vars.el eudc.texi ldap.el ntlm.el url-http.el eudcb-bbdb.el eudcb-ldap.el eudc-bob.el eudc-tests.el ntlm-tests.el eudc-export.el eudcb-ph.el package.el README authinfo bbdb diary-lib.el display.texi eudc-capf.el @@ -6130,15 +6365,18 @@ Tim Harper: changed ns-win.el Tim Howe: changed org-clock.el -Tim Landscheidt: changed gnus-art.el eieio-opt.el gnus.texi icalendar.el - sort.el ws-mode.el +Tim Landscheidt: changed gnus-art.el eieio-opt.el flymake.texi gnus.texi + icalendar.el ruby-mode.el sort.el ws-mode.el Timo Juhani Lindfors: changed gnus-msg.el Timo Lilja: changed mail-source.el Timo Myyrä: changed battery.el configure.ac english.el european.el - language/japanese.el mule-conf.el systhread.c + language/japanese.el log-view.el maintaining.texi mule-conf.el + systhread.c + +Timon Reinold: changed eww.el flyspell.el Timo Savola: changed emacs.c gtkutil.c startup.el x-win.el xfns.c xterm.c xterm.h @@ -6148,7 +6386,8 @@ Timo Taipalus: changed display.texi image.c image.el Timothee Denizou: changed tetris.el Tim Ruffing: changed keyboard.c calc-prog.el emacs.service keyboard.h - macros.c dbus.el ftcrfont.c macros.h process.c subr.el term.c + macros.c term.c dbus.el ftcrfont.c macros.h process.c subr.el + termchar.h Tim Van Holder: changed emacsclient.c Makefile.in configure.ac progmodes/compile.el which-func.el @@ -6160,7 +6399,7 @@ and changed ibuffer.el dired.el ibuf-ext.el dired-tests.el replace.el dired-aux.el simple.el replace-tests.el subr.el dired.texi files.el ibuf-macs.el ibuffer-tests.el ls-lisp.el cl-macs.el diff-mode.el cl-seq.el dired-x.el display.texi ediff-ptch.el em-ls.el - and 116 other files + and 115 other files Titus von der Malsburg: changed window.el display.texi simple.el windows.texi @@ -6183,6 +6422,9 @@ Toby Cubitt: co-wrote avl-tree.el and changed org-capture.el org.el org-agenda.el cl-macs.el org-clock.el org-colview.el org.texi +Toby Dylan Hocking: changed compilation.txt compile-tests.el + progmodes/compile.el + Toby Speight: changed generic-x.el window.el Toke Høiland-Jørgensen: changed gnutls.c nnmaildir.el smime.el @@ -6194,9 +6436,10 @@ Tomas Abrahamsson: wrote artist.el Tomas Fabrizio Orsi: changed net-utils.el -Tomas Nordin: changed progmodes/python.el subr.el +Tomas Nordin: changed diff-mode-tests.el diff-mode.el progmodes/python.el + subr.el view.el -Tomas Volf: changed esh-mode.el +Tomas Volf: changed esh-mode.el message.el Tomasz Gajewski: changed cpp-root.el @@ -6242,11 +6485,11 @@ Tom Regner: changed notifications.el Tom Seddon: changed w32font.c Tom Tromey: wrote bug-reference.el erc-list.el package-x.el -and co-wrote package.el tcl.el +and co-wrote package-activate.el package.el tcl.el and changed data.c lisp.h js.el buffer.c data-tests.el mhtml-mode.el alloc.c css-mode.el js-tests.el process.c window.c bytecode.c editfns.c files.el fns.c keyboard.c keymap.c lread.c makefile.el xfns.c cmds.c - and 210 other files + and 208 other files Tom Willemse: changed elec-pair.el package.el perl-mode.el prog-mode.el progmodes/python.el simple.el @@ -6275,7 +6518,7 @@ and changed net Toru Tomabechi: wrote language/tibetan.el quail/tibetan.el tibet-util.el Toru Tsuneyoshi: changed ange-ftp.el buff-menu.el cus-start.el fileio.c - files.el fill.el lisp.h tramp.el w32fns.c + files.el fill.el lisp.h tramp-sh.el tramp.el w32fns.c Toshiaki Nomura: changed uxpds.h @@ -6285,8 +6528,10 @@ Travis Jeffery: changed nextstep/templates/Info.plist.in Trent W. Buck: changed rcirc.el remember.el rx.el -Trevor Murphy: changed eglot.el find-dired.el gnus.texi nnimap.el org.el - window.el +Trevor Arjeski: changed erc.el gnus.el + +Trevor Murphy: changed window.el dispextern.h display.texi eglot.el + faces.el find-dired.el gnus.texi nnimap.el org.el xdisp.c xfaces.c Trevor Spiteri: changed progmodes/grep.el @@ -6298,7 +6543,7 @@ Troels Henriksen: changed EGLOT-NEWS README.md eglot.el Troels Nielsen: changed process.c buffer.c progmodes/compile.el window.el -Troy Brown: changed eglot.el +Troy Brown: changed eglot.el align.el Troy Hinckley: changed progmodes/compile.el @@ -6339,9 +6584,9 @@ Ulrich Leodolter: changed w32proc.c Ulrich Müller: changed configure.ac calc-units.el Makefile.in emacsclient-mail.desktop lib-src/Makefile.in src/Makefile.in version.el - bindings.el doctor.el emacs.1 files.el gamegrid.el gud.el + bindings.el calc-ext.el doctor.el emacs.1 files.el gamegrid.el gud.el language/cyrillic.el server.el strings.texi ChgPane.c ChgSel.c HELLO - INSTALL XMakeAssoc.c and 56 other files + INSTALL and 61 other files Ulrich Neumerkel: changed xterm.c @@ -6350,8 +6595,8 @@ Ulrich Ölmann: changed misc.texi Ulrik Vieth: wrote meta-mode.el and changed files.el -Umut Tuna Akgül: changed tabulated-list.el cal-julian-tests.el - cl-preloaded.el image-file.el parse-time.el rcirc.el +Umut Tuna Akgül: changed rcirc.el tabulated-list.el cal-julian-tests.el + cl-preloaded.el image-file.el lisp-mode.el parse-time.el print-tests.el Ury Marshak: changed nsfns.m @@ -6406,22 +6651,27 @@ and changed ob-sql.el org.el Viktor Slavkovikj: changed rmail.el +Vili Aapro: changed elisp-mode.el + Ville Skyttä: changed mh-comp.el pgg.el tcl.el Vincent Belaïche: wrote ses-tests.el and changed ses.el ses.texi 5x5.el calc-alg.el calc-vec.el calc.texi compilation.txt doc/translations/fr/misc/ses-fr.texi autotype.texi cal-tex.el calc-embed.el calc-help.el calc-misc.el calc.el - configure.bat floatfns.c macroexp.el org.el package.el - progmodes/compile.el recentf.el and 4 other files + configure.bat erc-scenarios-spelling.el ert-x-tests.el ert-x.el + ert.texi floatfns.c macroexp.el and 9 other files Vincent Bernat: changed gnus-int.el nnimap.el xsettings.c Vincent Del Vecchio: changed info.el mh-utils.el -Vincenzo Pupillo: wrote php-ts-mode.el -and changed js.el cmake-ts-mode.el typescript-ts-mode.el c-ts-mode.el - c-ts-common.el java-ts-mode.el Makefile.in +Vincenzo Pupillo: wrote mhtml-ts-mode.el php-ts-mode.el +and changed js.el c-ts-mode.el java-ts-mode.el c-ts-common.el + cmake-ts-mode.el typescript-ts-mode.el speedbar.el treesit.el + Makefile.in compilation.txt compile-tests.el css-mode.el frames.texi + html-ts-mode.el progmodes/compile.el progmodes/python.el speedbar.texi + sql.el treesit-admin.el yaml-ts-mode.el Vince Salvino: changed msdos.texi w32.c w32fns.c @@ -6454,14 +6704,18 @@ Vladimir Alexiev: changed arc-mode.el nnvirtual.el tmm.el Vladimir Kazanov: wrote ert-font-lock-tests.el ert-font-lock.el and changed ert.texi broken.js correct.js display.texi frame.c java.srt - no-asserts.js text.texi xdisp.c + keyboard-tests.el no-asserts.js text.texi xdisp.c Vladimir Lomov: changed ox-html.el -Vladimir Nikishkin: changed scm.el textmodes/table.el +Vladimir Nikishkin: wrote ispell-aspell-tests.el ispell-hunspell-tests.el + ispell-international-ispell-tests.el ispell-tests-common.el + ispell-tests.el +and changed fake-aspell-new.bash README fake-aspell.bash ispell.el + recentf.el scm.el test/Makefile.in textmodes/table.el Vladimir Panteleev: wrote bat-mode-tests.el -and changed eglot.el ert.texi xselect.c bat-mode.el +and changed eglot.el ert.texi xselect.c bat-mode.el sqlite-mode.el Vladimir Sedach: changed shell.el @@ -6483,13 +6737,15 @@ Wenjamin Petrenko: changed files-x.el filesets.el Werner Benger: changed keyboard.c +Werner Fink: changed seccomp-filter.c + Werner Lemberg: wrote sisheng.el vntelex.el and co-wrote vnvni.el and changed TUTORIAL.de calc.texi chinese.el emacs.1 european.el - idlwave.el language/czech.el language/slovak.el lispref/Makefile.in - reftex-vars.el reftex.el reftex.texi supercite.el advice.el - calc-forms.el calc-sel.el calendar.el china-util.el cl-macs.el cl.texi - complete.el and 53 other files + language/czech.el language/slovak.el lispref/Makefile.in reftex-vars.el + reftex.el reftex.texi supercite.el advice.el calc-forms.el calc-sel.el + calendar.el china-util.el cl-macs.el cl.texi complete.el cperl-mode.el + and 51 other files Werner Meisner: changed lwlib-Xm.c @@ -6526,6 +6782,8 @@ and changed url-handlers.el url-file.el url-methods.el url-vars.el url-ftp.el url-history.el url-irc.el url-misc.el url-parse.el url-privacy.el and 3 other files +William O'Brien: changed go-ts-mode.el + William Parsons: changed ange-ftp.el William Smith: changed strftime.c @@ -6571,7 +6829,7 @@ and changed configure.ac gmalloc.c gnus-agent.el image-mode.el man.el Wolfgang Lux: changed nsterm.m keyboard.c -Wolfgang Rupprecht: wrote float-sup.el floatfns.c sup-mouse.el +Wolfgang Rupprecht: wrote float-sup.el floatfns.c and changed process.c alloc.c callint.c config.in configure.ac data.c fns.c lisp-mode.el lisp.h loadup.el lread.c net-utils.el nntp.el print.c sort.el @@ -6591,15 +6849,12 @@ Xavier Maillard: changed gnus-faq.texi gnus-score.el mh-utils.el spam.el Xiaoyue Chen: changed esh-proc.el -Xie Qi: changed simple.el dired.el customize.texi display.texi - functions.texi keymap.el loading.texi progmodes/python.el xdisp.c - Xi Lu: changed etags.c htmlfontify.el ruby-mode.el CTAGS.good_crlf CTAGS.good_update Makefile TUTORIAL.cn crlf eww.el filesets.el man-tests.el man.el shortdoc.el tramp-sh.el -Xiyue Deng: changed emacs-lisp-intro.texi strings.texi functions.texi - smtpmail.el symbols.texi +Xiyue Deng: changed emacs-lisp-intro.texi strings.texi smtpmail.el + functions.texi package.el package.texi symbols.texi Xuan Wang: changed warnings.el @@ -6635,14 +6890,14 @@ Yasuoka Masahiko: changed configure.ac Yasushi Shoji: changed org-clock.el org.texi ox-ascii.el -Yavor Doganov: changed configure.ac Makefile.in emacs.1 etags.1 make-dist - nsfont.m +Yavor Doganov: changed configure.ac nsterm.m Makefile.in emacs.1 etags.1 + image.c make-dist nsfont.m nsimage.m pdumper.c Ye Qianchuan: changed descr-text.el Yichao Yu: changed pgtkim.c pgtkterm.c pgtkterm.h xfns.c xterm.c -Yikai Zhao: changed memory-report.el sh-script.el +Yikai Zhao: changed memory-report.el project.el sh-script.el Yilkal Argaw: changed manoj-dark-theme.el @@ -6670,10 +6925,10 @@ and changed fontset.el message.el nnheader.el nnmail.el 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 indent.erts - treesit.h typescript-ts-mode.el c-ts-common.el css-mode.el - java-ts-mode.el rust-ts-mode.el go-ts-mode.el print.c sh-script.el - configure.ac csharp-mode.el gdb-mi.el and 79 other files + 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 Yuanle Song: changed rng-xsd.el @@ -6681,7 +6936,9 @@ Yuchen Pei: changed calendar.texi diary-lib.el icalendar-tests.el Yue Daian: wrote cl-font-lock.el -Yue Yi: changed peg.texi +Yue Yi: changed peg.texi sqlite-mode.el w32.c w32.h w32proc.c + +Yuhei Kikuchi: changed editorconfig-core-handle.el Yu-ji Hosokawa: changed README.W32 @@ -6713,18 +6970,23 @@ Yuuki Harano: changed pgtkterm.c pgtkfns.c pgtkterm.h gtkutil.c Yuya Nishihara: changed vc-hooks.el Yuzhana Ego: changed custom.texi diff-mode.el emacs-lisp-intro.texi - info.el + info.el css-mode.el Yves Baumes: changed package.el Zachary Kanfer: changed org.el cus-edit.el files.el files.texi keyboard.c newcomment.el simple.el +Zach Shaftel: changed bytecomp-tests.el bytecomp.el gv.el print.c + profiler-tests.el profiler.c + Zajcev Evgeny: changed display.texi image.c battery.el buffer.c dispextern.h fileio.c lread.c svg.el window.el xdisp.c Zaz Brown: changed misc.el +Zeke Dou: changed emacs.c + Zhang Wei: changed chinese.el characters.el mule-cmds.el xfns.c erc.el faces.el fontset.el mm-util.el mule.el org-publish.el rfc2047.el x-win.el @@ -6733,7 +6995,7 @@ Zhang Weize: wrote ob-plantuml.el Zhehao Lin: changed xfaces.c -Zhengyi Fu: changed bookmark.el +Zhengyi Fu: changed bookmark.el executable.el Zhiwei Chen: changed hideif.el @@ -6755,10 +7017,14 @@ and changed fontset.el HELLO language/indian.el quail/indian.el loadup.el IdnaMappingTable.txt NormalizationTest.txt PropertyValueAliases.txt ScriptExtensions.txt Scripts.txt SpecialCasing.txt UnicodeData.txt characters.el confusables.txt copyright.html emoji-data.txt - emoji-sequences.txt and 7 other files + emoji-sequences.txt and 8 other files উৎসব রায়: changed quail/indian.el +谢骐 Xie Qi: changed simple.el dired.el files.el customize.texi + display.texi functions.texi keymap.el loading.texi progmodes/python.el + xdisp.c + Local Variables: mode: emacs-authors coding: utf-8 |
