Commit graph

14804 commits

Author SHA1 Message Date
Eli Zaretskii 251827829d Merge from origin/emacs-31
cf1d8f9bc9 ; Improve documentation of deletion of composed characters
2890334e70 Improve Tramp manual
56f3336189 'speedbar-window' now run 'speedbar-before-delete-hook' (...
62b891880c ; * lisp/simple.el (next-error-follow-minor-mode): Copyedit.
49c6767723 ; newcomers-presets: Mention using copy-theme-options.
c709b66dcb flymake-show-buffer-diagnostics: Fix interactive form
2026-09-05 07:04:40 -04:00
Sean Whitton a834ad2ede newcomers-presets: Set some more user options
* etc/themes/newcomers-presets-theme.el (newcomers-presets): Set
set-mark-command-repeat-pop, kill-do-not-save-duplicates,
help-window-select and window-combination-resize.
2026-09-04 16:39:34 +01:00
Sean Whitton 49c6767723 ; newcomers-presets: Mention using copy-theme-options. 2026-09-04 16:11:26 +01:00
Sean Whitton ab1d6868ed Improve presentation of query-replace-show-preview
* doc/emacs/search.texi (Replace):
* etc/NEWS:
* lisp/replace.el (query-replace-show-preview): Docs
improvements.
(replace-preview-only-replacement): Rename ...
(replace-preview-only-replacement): ... to this.  All uses
changed.
2026-09-03 11:42:04 +01:00
Eli Zaretskii a55e9ccc60 ; * etc/NEWS: Fix wording of a recently-added entry. 2026-09-03 07:32:18 +03:00
Rahul Martim Juliato 3b721dd39a Let 'query-replace-show-preview' be a function (bug#81583)
Suggested by Juri Linkov <juri@linkov.net>.

* lisp/replace.el (query-replace-show-preview): Drop the values
t and 'both' in favor of the two functions that implement them.
(query-replace-preview-match): Doc fix.
(replace-preview-propertize): Rename from
'replace-preview--propertize' and make it public, so that the
preview functions can be copied and adapted.
(replace-preview-only-replacement, replace-preview-both): New
functions.
(replace-preview--format): Call the value of
'query-replace-show-preview'.
(replace-preview-setup): Preview only if the value is a
function.
* etc/NEWS: Update the entry.
* doc/emacs/search.texi (Replace): Document the new values.
* test/lisp/replace-tests.el (replace-tests--preview)
(replace-tests-preview-cleanup, replace-tests-preview-disabled)
(replace-tests-preview-invisible-match): Use the new functions.
(replace-tests-preview-both, replace-tests-preview-function):
New tests.
2026-09-02 22:01:58 +03:00
Sean Whitton e630bc4fd7 ; Fix some recently added docs. 2026-09-02 11:23:02 +01:00
Michael Albinus bc965039cd ; * etc/NEWS: Presentational fixes and improvements. 2026-09-02 12:19:22 +02:00
Dmitry Gutov 8e23cbb85f Make log-edit-headers-separator inherit from separator-line
* lisp/vc/log-edit.el (log-edit-headers-separator):
Make it inherit from the face separator-line (bug#81753).

* etc/NEWS: Mention it.
2026-09-02 07:05:04 +03:00
Dmitry Gutov 9e05c0360c Merge branch 'xref-find-by-kind' 2026-09-02 06:25:40 +03:00
Paul H. McClelland f03523c1eb Recognize comment-prefixed headings in outlines
When the new user option 'outline-use-comment-regexp' is non-nil,
enabling 'outline-minor-mode' configures 'outline-regexp',
'outline-level', and 'outline-search-function' to recognize outline
headings prefixed by a comment, such as ";;; *" and ";;; **".  The
pattern comes from the buffer-local 'outline-comment-regexp' when set,
and otherwise from a default built from 'comment-start' and the new
option 'outline-comment-regexp-suffix'.  The heading level is the
length of the regexp's group 1.  The previous values are saved and
restored when the mode is disabled.  All of the new code is kept in a
self-contained section at the end of outline.el.

* lisp/outline.el (outline-comment-regexp): New buffer-local variable.
(outline-comment-regexp-suffix, outline-use-comment-regexp): New user
options.
(outline--saved-outline-regexp, outline--saved-outline-level)
(outline--saved-outline-search-function, outline--comment-regexp): New
internal variables.
(outline--comment-level, outline--default-comment-regexp)
(outline--setup-from-comment-regexp, outline--restore-from-comment-regexp):
New functions.
(outline-minor-mode): Call 'outline--setup-from-comment-regexp' on
activation and 'outline--restore-from-comment-regexp' on deactivation.
* lisp/emacs-lisp/lisp-mode.el (lisp-mode-variables): Set
'outline-comment-regexp' to recognize ";;; *" headings.
* etc/NEWS: Announce the new options (bug#81054).
2026-08-31 21:44:05 +03:00
Paul Eggert 0899936ea1 Mark timezone-world-timezones obsolete
* lisp/timezone.el (timezone-world-timezones): Now obsolete.
2026-08-31 11:30:07 -07:00
Paul Eggert 6dfaa91c28 Mark math-tzone-name obsolete
* lisp/calc/calc-forms.el (math-tzone-names): Use
make-obsolete-variable instead of merely saying in the doc string
that the variable is obsolete.  Move the doc for this
obsolete variable here, from the manual.
2026-08-31 11:30:07 -07:00
Dmitry Gutov 58bb38a367 ; Mention 'M-g .' more prominently 2026-08-31 19:57:42 +03:00
Eli Zaretskii da804bbdd5 ; * etc/NEWS: Announce IME support on w32 TTY frames. (Bug#81495) 2026-08-31 15:08:45 +03:00
Dmitry Gutov 056970df23 Change bindings for xref-find-by-kind, and add to NEWS
* lisp/progmodes/xref.el: Change the proposed bindings from M-' to M-g M-.

* lisp/menu-bar.el (menu-bar-goto-menu): Add menu item.

* doc/emacs/maintaining.texi: Update the binding.

* etc/NEWS: Document the commant.
2026-08-31 12:03:38 +03:00
Joshua Murphy 8a287a3888 viper-ex: Implement z command
* lisp/emulation/viper-ex.el (ex-token-alist):
Add 'z' command
(ex-adjust-window-point): Add var to track previous point
(ex-adjust-window-count): Add var to track previous count
(ex-adjust-window): Implement 'z' command
* etc/NEWS: Document 'z' command
2026-08-29 19:15:30 +03:00
Eli Zaretskii e9cc6f70c3 Merge from origin/emacs-31
8c18e3d4e8 ; * etc/PROBLEMS: Problems with pasting non-ASCII (bug#81...
2026-08-29 07:17:50 -04:00
Eli Zaretskii 8c18e3d4e8 ; * etc/PROBLEMS: Problems with pasting non-ASCII (bug#81417). 2026-08-29 13:40:32 +03:00
Eli Zaretskii b28750b822 ; * etc/NEWS: Announce addition of 'uuid' library. 2026-08-26 15:38:49 +03:00
Roi Martin e156410d30 Add button to diff failed erts-file test output in ERT
* doc/misc/ert.texi (Running Tests Interactively): Mention diff button.
* etc/NEWS: Add entry.
* lisp/emacs-lisp/ert.el (ert--erts-file-test-execution-observer): Add
docstring.
(ert--erts-file-test-description, ert--erts-file-test-mismatch): New
structures.
(ert--erts-file-test-diff-button): New button type.
(ert--erts-file-test-diff-button-action): New function.
(ert-results-pop-to-erts-file-tests-for-test-at-point): Mention diff
button in docstring.
(ert-test--erts-test): Use `ert--erts-file-test-description' and
`ert--erts-file-test-mismatch' structures.
* test/lisp/emacs-lisp/ert-resources/erts-fail-point.erts (Name): New
test file.
* test/lisp/emacs-lisp/ert-tests.el (ert-test-list-of-erts-file-tests):
Use `ert--erts-file-test-description' structure.
(ert-test-erts-file-test-output-mismatch): New test.  (Bug#81685)
2026-08-26 14:17:41 +02:00
Juri Linkov 60d0df24d3 * lisp/dired.el (dired-jump-map): Remove key 'j' bound to 'dired-jump'.
It caused a usability conflict with 'j' bound to 'dired-goto-file'
(bug#81672).
2026-08-25 18:24:44 +03:00
Rahul Martim Juliato 49f3888c5d Add new options to 'query-replace-show-preview' (bug#81583)
* lisp/replace.el (query-replace-show-preview): Accept 'both'
and a function of two arguments as values.  Doc fix.
(query-replace-preview-match): New face.
(replace-preview--propertize, replace-preview--format): New
functions.
(replace-preview-update): Use 'replace-preview--format'.
* etc/NEWS: Update the entry.
2026-08-24 18:35:11 +03:00
Sean Whitton cd83b6e815 Bump Emacs version to 31.1.50
* README:
* configure.ac:
* exec/configure.ac:
* java/AndroidManifest.xml.in (Version-code):
* nt/README.W32:
* msdos/sed2v2.inp: Bump Emacs version to 31.1.50.

* etc/NEWS: Add headers for Emacs 31.2.
2026-08-24 11:46:20 +01:00
Sean Whitton f392a3ffc1 Merge from origin/emacs-31
a360712c9d ; Update exported ChangeLog files and etc/AUTHORS
2026-08-24 11:29:00 +01:00
Sean Whitton a360712c9d ; Update exported ChangeLog files and etc/AUTHORS
* ChangeLog.5:
* etc/AUTHORS: Update.
2026-08-24 10:35:47 +01:00
Eli Zaretskii b33d4088a6 ; * etc/NEWS: Fix wording and punctuation of last change. 2026-08-23 11:48:50 +03:00
Kai Ma 23b0f4bdb9 ; * etc/NEWS: Document improved Emoji support on text terminals. 2026-08-23 11:47:28 +03:00
Eli Zaretskii 998547c55f Merge from origin/emacs-31
062dcd2aea Fix prev-adaptive-prefix anchor (bug#61314)
32025c709e ; * etc/NEWS: Fix typos and wording.
0914969e0e ; Update "Antinews" in ELisp manual
1988e330c1 ; Update "Antinews" in the Emacs user manual
1744376add ; * admin/authors.el (authors-aliases): Add Yifei Yao.
426dca6849 ; * test/lisp/tab-bar-tests.el (tab-bar-tests-quit-restor...

# Conflicts:
#	etc/NEWS
2026-08-22 05:09:45 -04:00
Eli Zaretskii c5922d820b ; Fix last change
* lisp/emulation/viper-ex.el: Fix commentary.

* etc/NEWS: Fix filling and punctuation.
2026-08-22 11:31:23 +03:00
Joshua Murphy 449392bddb viper-ex: Implement list and number commands
* lisp/emulation/viper-ex.el (ex-ambiguous-char-map): Add mapping
of ambiguous chars to their equivalents.
(ex-token-alist): Add list and number commands.
(ex-print, ex-print-display-lines): Add args to print line-numbers
or unambiguously.
* etc/NEWS: Document new ex commands.  (Bug#81282)
2026-08-22 11:27:30 +03:00
Jim Porter f856da36cd Allow evaluating Eshell forms using lexical binding
* lisp/eshell/esh-cmd.el (eshell-lexical-binding): New option.
(eshell--eval): New defsubst...
(eshell-do-eval, eshell-exec-lisp):
* lisp/eshell/esh-var.el (eshell-parse-variable-ref):
* lisp/eshell/em-banner.el (eshell-banner-initialize): ... use it.

* lisp/eshell/em-ls.el (eshell-ls-applicable): Evaluate form using
lexical binding.

* test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test--binding-check): New
function.
(esh-cmd-test/lexical-binding, esh-cmd-test/dynamic-binding): New tests.

* etc/NEWS: Announce this change.
2026-08-19 18:13:45 -07:00
Eli Zaretskii 32025c709e ; * etc/NEWS: Fix typos and wording. 2026-08-19 17:30:35 +03:00
F. Jason Park 0300db0ae5 Remove choice from erc-dangerous-host-highlight-type
;; * etc/ERC-NEWS: Revise wording from recent mechanical change.

* lisp/erc/erc-match.el (erc-match--opt-pat-cache, erc-pals, erc-fools):
Update doc.
(erc-dangerous-host-highlight-type): Remove nonsensical
`nick-or-mention' value introduced for ERC 5.7 and Emacs 32 via
bug#73798.  It doesn't make sense to highlight mentions of a dangerous
host, only its associated nicknames, which ERC has no knowledge of.
(erc-match--opt-pat-get): Apply `sxhash-equal' to input in order to
protect keys from retroactive mutation.  Otherwise, a user applying
`setcar' to a cached `erc-fools' value could corrupt the cache.
(erc-match-mention-beg-rx-sexp, erc-match-mention-any-rx-sexp): New
variables to expose how ERC looks for "addressees" in a message body.
(erc-match--opt-pat-make-addr-beg): Defer to
`erc-match-mention-beg-rx-sexp' variable for regexp.
(erc-match--opt-pat-make-addr-end, erc-match--opt-pat-make-addr-any):
Rename former to latter and use `erc-match-mention-any-rx-sexp' for
regexp.
(erc-match--user-nuh-or-mention-p): Use updated function name.
(erc-match-highlight-by-part): Use `match-data' to detect the "last
thing searched" by the predicate.
* test/lisp/erc/erc-match-tests.el
(erc-match-message/fool/nick-or-mention): Remove test associated with
nonexistent value `nick-or-mention' for option
`erc-dangerous-host-highlight-type'.
(erc-match--opt-pat-cache): Use updated function name, sort character
alternatives in bracket expression, update format of expected output to
include hashes.

;; (erc-match-tests--hl-type-nick)
;; (erc-match-message/fool/nick)
;; (erc-match-message/dangerous-host/nick/legacy)
;; (erc-match-tests--hl-type-message)
;; (erc-match-message/dangerous-host/message)
;; (erc-match-message/dangerous-host/message/legacy)
;; (erc-match-tests--hl-type-all)
;; (erc-match-message/fool/all)
;; (erc-match-message/dangerous-host/all/legacy)
;; (erc-match-tests--hl-type-nick-or-keyword)
;; (erc-match-tests--hl-type-keyword): Use realistic value for
;; option `erc-dangerous-hosts'.
2026-08-18 19:47:02 -07:00
Jim Porter d5fea6863c Document Eshell's Lisp pipes feature
* doc/misc/eshell.texi (List of Built-ins): Document 'accumulate',
'apply-lines', and 'map-lines'.
(Pipelines): Add menu.
(Lisp Pipelines): New section.
(Bugs and ideas): Remove implemented idea.

* etc/NEWS: Announce this change.
2026-08-18 19:14:05 -07:00
Andrew Hyatt 8a8d9b5c6a Make electric-pair-mode respect field boundaries (bug#50236)
Among other potential benefits, this makes e-p-m work correctly in all
comint-based modes.

* lisp/elec-pair.el (electric-pair-field-search-size): New variable.
(electric-pair-post-self-insert-function): Tweak, call
electric--pair-psif-1 (electric--pair-psif-1): New helper from old
electric-pair-post-self-insert-function.

* etc/NEWS: Call out change.

* lisp/comint.el (electric-pair-field-search-size): Forward declare.
(comint-mode): Set electric-pair-field-search-size to 1000.

* test/lisp/electric-tests.el (preserve-balance)
(preserve-balance-not-across-fields): New tests.

Co-authored-by: João Távora <joaotavora@gmail.com>
2026-08-18 12:07:11 +01:00
Arsen Arsenović 5d128bf355 compile.el: Handle GCC 16 nested notes
* lisp/progmodes/compile.el
(compilation-error-regexp-alist-alist): New gcc-nested-notes
entry (bug#81308).
* etc/compilation.txt (GCC nested notes): New section.
2026-08-18 10:45:57 +01:00
Sean Whitton 18a2141b76 Merge from origin/emacs-31
a15b05c009 ; Update ChangeLog.5 and etc/HISTORY for the 31.1 release.
2026-08-17 18:42:22 +01:00
Sean Whitton c1ad9d2720 Merge from origin/emacs-31
4458f68df1 ; Update exported ChangeLog files and etc/AUTHORS
0968d7e5e2 ; Update acknowledgements for Emacs 31.
d30a86ba2c ; Fill in missing :version and :package-version metadata.
6dedbb722d ; * admin/release-process: Combine two 'make' commands.
e1f465d993 * doc/misc/efaq.texi (New in Emacs 31): New node.
eca43790ac ; * etc/NEWS: Remove temporary +++/--- lines.
8b38548dd5 ; Document native-compile-directory.
8e33b6a059 ; Document C-x <UP> in shell-mode.
61c7285a95 ; Document project-remember-project.
ced4d70ee0 Add "VTE" to list of auto-enabled xterm-mouse-mode terminals
91a630245f ; * lisp/speedbar.el (speedbar-window--close): Doc fix.
0792252594 Handle 'speedbar-buffer' kill when in 'speedbar-window-mo...
951ee70ee3 ; * lisp/simple.el (char-uppercase-p): Fix a typo.

# Conflicts:
#	etc/NEWS
2026-08-17 18:42:21 +01:00
Sean Whitton a15b05c009 ; Update ChangeLog.5 and etc/HISTORY for the 31.1 release. 2026-08-17 15:14:38 +01:00
Sean Whitton 4458f68df1 ; Update exported ChangeLog files and etc/AUTHORS
* ChangeLog.5:
* etc/AUTHORS: Update.
2026-08-17 14:55:26 +01:00
Sean Whitton e1f465d993 * doc/misc/efaq.texi (New in Emacs 31): New node. 2026-08-17 12:21:40 +01:00
Sean Whitton eca43790ac ; * etc/NEWS: Remove temporary +++/--- lines. 2026-08-17 11:39:37 +01:00
Sean Whitton 8b38548dd5 ; Document native-compile-directory. 2026-08-17 11:38:08 +01:00
Sean Whitton 8e33b6a059 ; Document C-x <UP> in shell-mode. 2026-08-17 11:31:34 +01:00
Sean Whitton 61c7285a95 ; Document project-remember-project. 2026-08-17 11:23:30 +01:00
Juri Linkov 664f160297 New value 'with-completions-popup' of 'icomplete-in-buffer' (bug#81537)
* etc/NEWS: Announce the change.

* lisp/minibuffer.el (completion--icomplete-in-buffer-p):
Remove function.
(completion-list-inhibit-functions): New variable.
(completion-list-inhibit-p): New function.
(completion--do-completion, completion--in-region-1): Replace
'completion--icomplete-in-buffer-p' with
'completion-list-inhibit-p'.

* lisp/icomplete.el (icomplete-in-buffer):
Add new value 'with-completions-popup'.
(icomplete-list-inhibit): New function.
(icomplete--in-region-setup): Add/remove
'icomplete-list-inhibit' from/to
'completion-list-inhibit-functions'.
2026-08-16 18:31:26 +03:00
Eli Zaretskii f4e2065697 ; Minor fixes of the last change
* etc/NEWS: Fix last changes.

* doc/lispref/internals.texi (Module Canvas API):
* doc/lispref/display.texi (Canvas Images): Fix punctuation and
markup.
2026-08-16 12:28:31 +03:00
Divya Ranjan d5f515e4a3 New image type canvas
Canvas images support efficient updating and refreshing.  An image
specifier with ':type canvas' creates a canvas image.  The canvas has an
associated writable pixel buffer.  After changing the ':data' vector or
writing to the pixel buffer a call to 'canvas-refresh' redraws the
canvas image.  See bug#80281.

Co-Authored-By: Divya Ranjan <divya@subvertising.org>
Co-Authored-By: Daniel Mendler <mail@daniel-mendler.de>

Canvas changes:

* doc/lispref/display.texi (Images): Add Canvas Images to menu.
(Canvas Images): New node documenting canvas image objects, the
`:data-width', `:data-height', `:data' and `:file' properties, and
`canvas-refresh'.
* doc/lispref/elisp.texi (Top): Reference new Canvas Images node.
* doc/lispref/internals.texi (Writing Dynamic Modules): Add Module
Canvas API to menu.
(Module Canvas API): New node documenting `canvas_data' module function.
* etc/NEWS: Announce the addition.
* lisp/image.el (create-image): Add `:id' to image specification of
canvas images.
* src/dispextern.h (struct image): Add `refresh', `original_width' and
`original_height' fields.
(redraw_image_glyphs, canvas_data): New prototypes.
* src/emacs-module.c (module_canvas_data): New function.
(initialize_environment): Register `canvas_data' module function.
* src/image.c (struct canvas): New struct for canvas.
(canvas_prepare_for_display, canvas_free_unused): New forward
declarations.
(prepare_image_for_display): Call `canvas_prepare_for_display' when the
canvas refresh counter has changed.  Set image `original_width' and
`original_height'.
(filter_image_spec): Exclude `:data' from the image cache key for canvas
images, so mutating the data vector in place does not create a new cache
entry.
(Fclear_image_cache): Call `canvas_free_unused'.
(image_set_transform): Use CAIRO_FILTER_GOOD instead of
CAIRO_FILTER_BEST for canvas images, for performance.  Do not set image
`original_width' and `original_height'.
(canvas_image_p, canvas_free_unused, canvas_apply_data, canvas_get)
(canvas_parse, canvas_load, canvas_prepare_for_display, canvas_data):
New functions implementing canvas creation, resizing, and reloading of
`:data' or `:file' content.
(Fcanvas_refresh): New defun `canvas-refresh', with an optional
RELOAD-DATA argument to reread `:data' or `:file'.
(initialize_image_type, syms_of_image): Register the `canvas' image type
and `canvas-refresh'.
* src/module-env-32.h (canvas_data): New prototype.
* src/nsimage.m (ns_image_reset): New function to recreate an NS pixmap
to update the canvas.
* src/nsterm.h: Add prototype for `ns_image_reset'.
* src/xdisp.c (redraw_image_glyphs_window)
(redraw_image_glyphs_window_tree, redraw_image_glyphs): New functions to
redraw only the glyphs referencing a given canvas image spec, falling
back to a full frame redraw if the frame is garbaged.
* test/src/emacs-module-resources/mod-test.c (mod-test-canvas-read)
(mod-test-canvas-write, mod-test-canvas-invalid): New helper functions.
* test/src/emacs-module-tests.el (test-canvas-gen-file)
(mod-test-canvas/valid, mod-test-canvas/invalid, mod-test-canvas/vector)
(mod-test-canvas/vector-reload, mod-test-canvas/unibyte)
(mod-test-canvas/file, mod-test-canvas/gc-stress): New tests.
2026-08-16 12:16:41 +03:00
Eli Zaretskii b9e1a4d164 ; Fix merge snafu in etc/NEWS.31. 2026-08-15 11:05:37 -04:00