summaryrefslogtreecommitdiff
path: root/ChangeLog.5
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2026-05-07 20:08:43 +0100
committerSean Whitton <spwhitton@spwhitton.name>2026-05-07 20:08:43 +0100
commit1ec79b48f3802b71b017399aef29b2dbdc5e7d2d (patch)
treefc12d18b187c6139c2355056579b80631abd1f7e /ChangeLog.5
parent991f6100eb1fa9c78a723f48ea903971d7c44de9 (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.
Diffstat (limited to 'ChangeLog.5')
-rw-r--r--ChangeLog.563125
1 files changed, 63124 insertions, 1 deletions
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: