]> git.eshelyaron.com Git - emacs.git/log
emacs.git
3 weeks agoAdd 'treesit-forward-comment' with 'forward-comment-function'
Juri Linkov [Sat, 25 Jan 2025 18:14:15 +0000 (20:14 +0200)]
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).

(cherry picked from commit 63df2164903e0cd6819187483a64b892aa7e0219)

3 weeks ago* lisp/treesit.el: Display treesit-explore buffer below selected window.
Juri Linkov [Sat, 25 Jan 2025 17:59:56 +0000 (19:59 +0200)]
* 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).

(cherry picked from commit 3bc6b88cc71b8ccc96b5e61d895e5208009aa3c0)

3 weeks ago(scope-define-global-minor-mode): Remove.
Eshel Yaron [Sun, 26 Jan 2025 18:48:11 +0000 (19:48 +0100)]
(scope-define-global-minor-mode): Remove.

3 weeks agoscope.el: Optimize.
Eshel Yaron [Sun, 26 Jan 2025 18:21:35 +0000 (19:21 +0100)]
scope.el: Optimize.

3 weeks ago(elisp-completion-at-point): Complete custom theme names
Eshel Yaron [Sun, 26 Jan 2025 18:11:30 +0000 (19:11 +0100)]
(elisp-completion-at-point): Complete custom theme names

3 weeks ago(cl-case): Leave keywords unquoted.
Eshel Yaron [Sun, 26 Jan 2025 18:10:53 +0000 (19:10 +0100)]
(cl-case): Leave keywords unquoted.

3 weeks agoRemove 'ispell-help'
Eshel Yaron [Sun, 26 Jan 2025 18:10:31 +0000 (19:10 +0100)]
Remove 'ispell-help'

3 weeks ago; (let-alist): Document double-dot escape syntax.
Eshel Yaron [Sun, 26 Jan 2025 07:56:15 +0000 (08:56 +0100)]
; (let-alist): Document double-dot escape syntax.

3 weeks agoHandle `let-alist' double-dot escape
Eshel Yaron [Sun, 26 Jan 2025 07:55:39 +0000 (08:55 +0100)]
Handle `let-alist' double-dot escape

4 weeks agoscope.el: Finalize refactor and let-alist support
Eshel Yaron [Sat, 25 Jan 2025 18:54:19 +0000 (19:54 +0100)]
scope.el: Finalize refactor and let-alist support

4 weeks ago(when-let*): Warn if body is empty
Stefan Monnier [Sat, 25 Jan 2025 15:39:12 +0000 (10:39 -0500)]
(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*`.

(cherry picked from commit 442d04081bbe9913def50b543e499422c4ad9ece)

4 weeks ago; * src/term.c (handle_one_term_event): Fix last change.
Eli Zaretskii [Sat, 25 Jan 2025 14:59:40 +0000 (16:59 +0200)]
; * src/term.c (handle_one_term_event): Fix last change.

(cherry picked from commit e8f173f0ba9327033781429ea9a1d99ff8d2f751)

4 weeks agoRestore the old behavior of `bookmark-write-file'
Zhengyi Fu [Thu, 23 Jan 2025 05:35:16 +0000 (13:35 +0800)]
Restore the old behavior of `bookmark-write-file'

* lisp/bookmark.el (bookmark-write-file): Use 'pp-28' to avoid
filling the bookmarks.  (Bug#75775)

Copyright-paperwork-exempt: yes
(cherry picked from commit 67903f5909db5c6140eeffebfaf818b4f93625d5)

4 weeks agoFix the mistake that led to the reverts
Gerd Möllmann [Sat, 25 Jan 2025 13:43:17 +0000 (14:43 +0100)]
Fix the mistake that led to the reverts

* src/terminal.c (raw_cursor_to): Fix reversed arguments.

(cherry picked from commit 1d086441166f564d8f8cd4945cb9590410c9676b)

4 weeks agoReapply "Multi-tty: selected frame can be a GUI frame"
Gerd Möllmann [Sat, 25 Jan 2025 13:28:18 +0000 (14:28 +0100)]
Reapply "Multi-tty: selected frame can be a GUI frame"

This reverts commit d93d822285813b89f2444ef93c5747cbeb67a46b.

(cherry picked from commit 20f26723774d50292f21487fb21b92355444d678)

4 weeks agoReapply "Fix mouse position handling for nested tty child frames"
Gerd Möllmann [Sat, 25 Jan 2025 13:28:13 +0000 (14:28 +0100)]
Reapply "Fix mouse position handling for nested tty child frames"

This reverts commit e2cc52dbcd196f95cc79c6c6d899b9e86e696fe5.

(cherry picked from commit ccf3f8d21e346ac1fdb092079227c37f987f253d)

4 weeks agoReapply "Fix tty-frame-at for nested tty child frames"
Gerd Möllmann [Sat, 25 Jan 2025 13:28:11 +0000 (14:28 +0100)]
Reapply "Fix tty-frame-at for nested tty child frames"

This reverts commit 9ad28959d6895720865c0718bf60f4b7b0b144f3.

(cherry picked from commit e839b83c828fe09546edcc46dcfc5e09dd39b9fe)

4 weeks agoReapply "Fix cursor positioning of nested tty child frames"
Gerd Möllmann [Sat, 25 Jan 2025 13:28:09 +0000 (14:28 +0100)]
Reapply "Fix cursor positioning of nested tty child frames"

This reverts commit 65036323fc1cdf18a7812b1c922583e6466972a6.

(cherry picked from commit 26b144f241c7843b635415f2b68b8c3df0b23e02)

4 weeks agoReapply "Simplify absolute (x, y) computation on ttys"
Gerd Möllmann [Sat, 25 Jan 2025 13:28:03 +0000 (14:28 +0100)]
Reapply "Simplify absolute (x, y) computation on ttys"

This reverts commit 13fdcd730ff63bf79caace9a6e46aff5f944b1b7.

(cherry picked from commit 945ed044cd8ab67ccbbc185c19f500f723cd9045)

4 weeks agoDelete all overlays that belong to an editable-field
Mauro Aranda [Sat, 18 Jan 2025 11:25:40 +0000 (08:25 -0300)]
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.

(cherry picked from commit d4220a17c4ecf4639a276352149218077c1d6315)

4 weeks agopython-mode: add 'exit' and 'quit' to the list of block-enders
Konstantin Kharlamov [Tue, 21 Jan 2025 15:34:54 +0000 (18:34 +0300)]
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)

(cherry picked from commit 0514619b2c944ae17fbf649496595c5e866ff785)

4 weeks agolisp: Introduce a `lisp-fill-paragraph-as-displayed' variable.
Maxim Cournoyer [Tue, 21 Jan 2025 02:50:44 +0000 (11:50 +0900)]
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.

Fixes: bug#56197
(cherry picked from commit 192355e54af91ad6e7d1343071a749e1ced29400)

4 weeks agoAvoid error with empty search string in Customize
Mauro Aranda [Tue, 21 Jan 2025 00:16:48 +0000 (21:16 -0300)]
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)

(cherry picked from commit d4ca688abefa90cf3e54add036b32c06b7da6363)

4 weeks ago; Improve prompts and error messages in 'info-look'
Eli Zaretskii [Sat, 25 Jan 2025 10:10:32 +0000 (12:10 +0200)]
; Improve prompts and error messages in 'info-look'

* lisp/info-look.el (info-lookup-change-mode): Improve text of
prompt and error messages.  (Bug#75634)

(cherry picked from commit 062da7003f98cb8352e9cc91e0a8fd7de11b2bd1)

4 weeks ago; Clean up 'xterm-mouse-mode' auto-enabling vars
Jared Finder [Sun, 19 Jan 2025 05:06:00 +0000 (21:06 -0800)]
; Clean up 'xterm-mouse-mode' auto-enabling vars

* lisp/term/xterm.el (xterm--auto-xt-mouse-allowed-names)
(xterm--auto-xt-mouse-allowed-types): Use `rx' macro and
update docstring.  (Bug#74833)

(cherry picked from commit 0f3d4e157fb9e638f568128096c818d4485b60fa)

4 weeks agoReload <pkg>-loaddefs when replacing built-in packages
Stefan Monnier [Wed, 19 Jun 2024 20:35:56 +0000 (16:35 -0400)]
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/
(cherry picked from commit 5878c9ae7c958af1828e85a7b4d922c1a8c1b6bf)

4 weeks agoibuffer: Display column titles in header line
Daniel Mendler [Sat, 11 Jan 2025 15:36:56 +0000 (16:36 +0100)]
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)

(cherry picked from commit 5294d450da47734bbe2ca259505674bcae5ff573)

4 weeks agolisp/repeat.el: Don't expose `cl-extra/cl-lib` distinction
Stefan Monnier [Sat, 25 Jan 2025 09:42:01 +0000 (04:42 -0500)]
lisp/repeat.el: Don't expose `cl-extra/cl-lib` distinction

(cherry picked from commit 5ee12424b600fe5d677f6b526ab038bad4747f83)

4 weeks agoibuffer: New defcustom `ibuffer-human-readable-size'
Daniel Mendler [Sat, 11 Jan 2025 13:22:02 +0000 (14:22 +0100)]
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)

(cherry picked from commit 35576fde5670dffe104a6b2a76837a1f0a4c16ce)

4 weeks agoQuote identifiers in SQL queries in 'sqlite-mode'
Vladimir Panteleev [Wed, 15 Jan 2025 18:33:23 +0000 (18:33 +0000)]
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)

(cherry picked from commit 5e0fc49f3b14928f08eb314b15f70ccbb2ce7229)

4 weeks agoRevert "Simplify absolute (x, y) computation on ttys"
Gerd Möllmann [Sat, 25 Jan 2025 08:39:56 +0000 (09:39 +0100)]
Revert "Simplify absolute (x, y) computation on ttys"

This reverts commit 5e132835ad320be1d5c45ffbf83d67d16fc7bf96.

(cherry picked from commit 13fdcd730ff63bf79caace9a6e46aff5f944b1b7)

4 weeks agoRevert "Fix cursor positioning of nested tty child frames"
Gerd Möllmann [Sat, 25 Jan 2025 08:39:54 +0000 (09:39 +0100)]
Revert "Fix cursor positioning of nested tty child frames"

This reverts commit 8cbb3c7335ff03b6fae4efeae126e91993cb962a.

(cherry picked from commit 65036323fc1cdf18a7812b1c922583e6466972a6)

4 weeks agoRevert "Fix tty-frame-at for nested tty child frames"
Gerd Möllmann [Sat, 25 Jan 2025 08:39:51 +0000 (09:39 +0100)]
Revert "Fix tty-frame-at for nested tty child frames"

This reverts commit 9693f2a95ad14bf0caa34e60d72722d4dd4d85c9.

(cherry picked from commit 9ad28959d6895720865c0718bf60f4b7b0b144f3)

4 weeks agoRevert "Fix mouse position handling for nested tty child frames"
Gerd Möllmann [Sat, 25 Jan 2025 08:39:47 +0000 (09:39 +0100)]
Revert "Fix mouse position handling for nested tty child frames"

This reverts commit f37559a1ee035d184bc4db6e4f597281d3ac6879.

(cherry picked from commit e2cc52dbcd196f95cc79c6c6d899b9e86e696fe5)

4 weeks agoRevert "Multi-tty: selected frame can be a GUI frame"
Gerd Möllmann [Sat, 25 Jan 2025 08:39:11 +0000 (09:39 +0100)]
Revert "Multi-tty: selected frame can be a GUI frame"

This reverts commit 57b7c07b3709d9a2b2c70e0c8218a52448368a12.

(cherry picked from commit d93d822285813b89f2444ef93c5747cbeb67a46b)

4 weeks ago; * admin/admin.el (set-version): Note about Android.
Eli Zaretskii [Sat, 25 Jan 2025 08:38:29 +0000 (10:38 +0200)]
; * admin/admin.el (set-version): Note about Android.

(cherry picked from commit 52dc01f1c8b3c14405cc9ce2a825ea68edcdadc8)

4 weeks agoMulti-tty: selected frame can be a GUI frame
Gerd Möllmann [Sat, 25 Jan 2025 06:54:56 +0000 (07:54 +0100)]
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.

(cherry picked from commit 57b7c07b3709d9a2b2c70e0c8218a52448368a12)

4 weeks agoFix mouse position handling for nested tty child frames
Gerd Möllmann [Sat, 25 Jan 2025 06:33:45 +0000 (07:33 +0100)]
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.

(cherry picked from commit f37559a1ee035d184bc4db6e4f597281d3ac6879)

4 weeks agoFix tty-frame-at for nested tty child frames
Gerd Möllmann [Sat, 25 Jan 2025 05:43:49 +0000 (06:43 +0100)]
Fix tty-frame-at for nested tty child frames

* src/term.c (tty_frame_at): Translate child frame origin to absolute
coordinates.

(cherry picked from commit 9693f2a95ad14bf0caa34e60d72722d4dd4d85c9)

4 weeks agoFix cursor positioning of nested tty child frames
Gerd Möllmann [Sat, 25 Jan 2025 04:44:03 +0000 (05:44 +0100)]
Fix cursor positioning of nested tty child frames

* src/terminal.c (cursor_to, raw_cursor_to): Fix translation to root
coordinates.

(cherry picked from commit 8cbb3c7335ff03b6fae4efeae126e91993cb962a)

4 weeks agoSimplify absolute (x, y) computation on ttys
Gerd Möllmann [Sat, 25 Jan 2025 04:33:13 +0000 (05:33 +0100)]
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.

(cherry picked from commit 5e132835ad320be1d5c45ffbf83d67d16fc7bf96)

4 weeks agoAvoid double spaces around abbrevations in Texinfo
Stefan Kangas [Fri, 24 Jan 2025 16:32:17 +0000 (17:32 +0100)]
Avoid double spaces around abbrevations in Texinfo

* doc/emacs/custom.texi (Init Rebinding):
* doc/emacs/dired.texi (Operating on Files):
* doc/emacs/emacs.texi (Top):
* doc/emacs/emerge-xtra.texi (Emerge):
* doc/emacs/files.texi (Files):
* doc/emacs/frames.texi (Drag and Drop):
* doc/emacs/misc.texi (Hyperlinking):
* doc/emacs/modes.texi (Modes):
* doc/emacs/mule.texi (Input Methods):
* doc/emacs/windows.texi (Window Tool Bar):
* doc/lispintro/emacs-lisp-intro.texi
(Lexical & Dynamic Binding Differences):
* doc/lispref/elisp.texi (Top):
* doc/lispref/functions.texi (Functions, Generic Functions):
* doc/lispref/hash.texi (Defining Hash):
* doc/lispref/keymaps.texi (Creating Keymaps):
* doc/lispref/lists.texi (Property Lists):
* doc/lispref/modes.texi (%-Constructs):
* doc/lispref/nonascii.texi (Character Properties):
* doc/lispref/processes.texi (Misc Network):
* doc/lispref/searching.texi (Regexp Functions):
* doc/lispref/syntax.texi (Syntax Table Internals):
* doc/lispref/text.texi (Filling, Checksum/Hash)
(JSONRPC deferred requests):
* doc/misc/calc.texi (What is Calc, Modes Tutorial):
* doc/misc/cc-mode.texi (List Line-Up, Operator Line-Up)
(Custom Macros, Indenting Directives):
* doc/misc/efaq.texi (Colors on a TTY, Security risks with Emacs):
* doc/misc/eglot.texi (Eglot Variables):
* doc/misc/erc.texi (Connecting):
* doc/misc/eshell.texi (Aliases, Completion):
* doc/misc/flymake.texi (Backend functions):
* doc/misc/gnus-faq.texi (FAQ 5 - Composing messages):
* doc/misc/gnus.texi (Gnus Unplugged, Window Layout)
(Filtering Incoming Mail, History):
* doc/misc/idlwave.texi (Online Help, Catalogs):
* doc/misc/wisent.texi (Wisent Overview): Be more consistent with
abbreviations.  Use @: or comma or rewrite to avoid double spaces.
Ref: https://lists.gnu.org/r/emacs-devel/2025-01/msg00909.html

(cherry picked from commit fb282da2a0756d4e6de16b5879e42204f0d33e5b)

4 weeks ago; time-stamp: Rename some internal symbols
Stephen Gildea [Fri, 24 Jan 2025 18:12:58 +0000 (10:12 -0800)]
; time-stamp: Rename some internal symbols

* lisp/time-stamp.el: (time-stamp-string-preprocess): Rename 'alt-form'
to 'colon-cnt' because it is now an integer.
* test/lisp/time-stamp-tests.el: Rename 'formatz-generate-tests' to
'define-formatz-tests'.

(cherry picked from commit a00e6e7143d5ebf7282b5e5b410e1bd882634d57)

4 weeks ago; * lisp/time-stamp.el: Improve two documentation strings
Stephen Gildea [Fri, 24 Jan 2025 17:44:03 +0000 (09:44 -0800)]
; * lisp/time-stamp.el: Improve two documentation strings

(cherry picked from commit 77fe4fbeffc723337bd295e593c8062cd4ab7e43)

4 weeks ago; * doc/emacs/files.texi: only one time stamp index entry
Stephen Gildea [Fri, 24 Jan 2025 16:54:13 +0000 (08:54 -0800)]
; * doc/emacs/files.texi: only one time stamp index entry

(cherry picked from commit 0d38f1d07b27ad3634a667388c39d55ed2bb6137)

4 weeks ago; Skip commit bc1ab8ac3d8fd8f42641ad45820df995525ddf0b
Eshel Yaron [Sat, 25 Jan 2025 17:45:20 +0000 (18:45 +0100)]
; Skip commit bc1ab8ac3d8fd8f42641ad45820df995525ddf0b

4 weeks ago; Fix previous change
Robert Pluim [Fri, 24 Jan 2025 14:58:47 +0000 (15:58 +0100)]
; Fix previous change

* doc/emacs/fixit.texi (Spelling): Use "personal" instead of
"private" dictionary.

(cherry picked from commit b41ef43af19479279f6f967e3cb9e6b0aa3622d8)

4 weeks agoIspell: Use "personal dictionary" terminology consistently
Rudolf Adamkovič [Fri, 24 Jan 2025 09:52:14 +0000 (10:52 +0100)]
Ispell: Use "personal dictionary" terminology consistently

* lisp/textmodes/ispell.el (ispell-command-loop, ispell-help): Use
consistent terminology when referring to "personal dictionary".
(Bug#75802)

(cherry picked from commit 5638b1d6bd41e822796cbba1e1692c0899183bb5)

4 weeks agoDisable more redisplay optimizations when child frames are visible
Gerd Möllmann [Fri, 24 Jan 2025 10:18:54 +0000 (11:18 +0100)]
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.

(cherry picked from commit 07a2a67e3bfd674daad7a7d8947a0ab67b4e13e8)

4 weeks ago; * src/dispnew.c (combine_updates_for_frame): Fix whitespace.
Eli Zaretskii [Fri, 24 Jan 2025 08:41:00 +0000 (10:41 +0200)]
; * src/dispnew.c (combine_updates_for_frame): Fix whitespace.

(cherry picked from commit 5e657ad1fe2567f7d21639dbac40949870fe76f9)

4 weeks agoRevert "; * src/dispnew.c (combine_updates_for_frame): Fix whitespace."
Eli Zaretskii [Fri, 24 Jan 2025 08:40:14 +0000 (10:40 +0200)]
Revert "; * src/dispnew.c (combine_updates_for_frame): Fix whitespace."

This reverts commit c941b94e51f4e5996718416ac908249cb71da1d9.
It was pushed by mistake.

(cherry picked from commit 6c633ece6e6743d9724ff116322e573ddf79d79f)

4 weeks ago; * src/dispnew.c (combine_updates_for_frame): Fix whitespace.
Eli Zaretskii [Fri, 24 Jan 2025 08:26:26 +0000 (10:26 +0200)]
; * src/dispnew.c (combine_updates_for_frame): Fix whitespace.

(cherry picked from commit c941b94e51f4e5996718416ac908249cb71da1d9)

4 weeks agoHandle update of invisible tty frames (bug#75056)
Gerd Möllmann [Thu, 23 Jan 2025 19:53:50 +0000 (20:53 +0100)]
Handle update of invisible tty frames (bug#75056)

* src/dispnew.c (combine_updates_for_frame): Don't assume root frame is
visible.

(cherry picked from commit 15315780ae36cc2af6e276165562dc793334c2f9)

4 weeks ago; Check man pages for mistakes less frequently
Stefan Kangas [Fri, 24 Jan 2025 00:53:21 +0000 (01:53 +0100)]
; Check man pages for mistakes less frequently

* admin/make-tarball.txt: Move checking man pages from here...
* admin/release-process: ...to here.

(cherry picked from commit cc791e7499fb2cc64a317e340fc90b45fb683da7)

4 weeks ago; * admin/release-process: Minor copy-edits.
Stefan Kangas [Fri, 24 Jan 2025 00:40:55 +0000 (01:40 +0100)]
; * admin/release-process: Minor copy-edits.

(cherry picked from commit 4ed4792e3b9f77a504925ca46b2181b5e823556b)

4 weeks agoSupport loading dynamic docstrings from Emacs <29
Stefan Kangas [Thu, 23 Jan 2025 23:44:21 +0000 (00:44 +0100)]
Support loading dynamic docstrings from Emacs <29

* src/doc.c (get_doc_string): Take absolute value to be compatible with
bytecode from Emacs <29.

(cherry picked from commit f14c24dbe7f65786115f8f62a337be45996c38b8)

4 weeks agoDon't use negative positions for docstrings
Stefan Kangas [Thu, 23 Jan 2025 23:16:08 +0000 (00:16 +0100)]
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.

(cherry picked from commit c7f6da7a4141a9f3492b8dbb0c1de710bd4757fa)

4 weeks agoFix GC bug causing incorrect 'format' output (Bug#75754)
Pip Cet [Wed, 22 Jan 2025 19:08:02 +0000 (19:08 +0000)]
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.

(cherry picked from commit ed5067e689a5e38795d5c27c5a688886d259a298)

4 weeks agoSimplify Fdocumentation and Fdocumentation_property
Stefan Kangas [Thu, 23 Jan 2025 17:45:14 +0000 (18:45 +0100)]
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.

(cherry picked from commit 990b0811adefb4b792d36797540e5773791437f9)

4 weeks agoAdd language server "ruff server" for Python
Stefan Kangas [Thu, 23 Jan 2025 17:32:29 +0000 (18:32 +0100)]
Add language server "ruff server" for Python

* lisp/progmodes/eglot.el (eglot-server-programs): Add "ruff
server" for Python.

(cherry picked from commit 4a867c823b77fc77be57f13d355fe9469281d653)

4 weeks agoFix go-ts-mode type declaration indentation (Bug#75785)
Randy Taylor [Thu, 23 Jan 2025 16:16:34 +0000 (11:16 -0500)]
Fix go-ts-mode type declaration indentation (Bug#75785)

* lisp/progmodes/go-ts-mode.el (go-ts-mode--indent-rules):
Add rule for type_declaration.

(cherry picked from commit 9e687c2871f8fd6146b0c5591d65ee61d8374c5e)

4 weeks agoEglot: skip Tramp tests except on Emacs 28+
João Távora [Thu, 23 Jan 2025 11:20:38 +0000 (11:20 +0000)]
Eglot: skip Tramp tests except on Emacs 28+

* test/lisp/progmodes/eglot-tests.el
(eglot--call-with-tramp-test): Fix

(cherry picked from commit c888e726ca9092fedd98e80e40c28b0fa54a34be)

4 weeks agoHandle tty menus overlapping child frames
Gerd Möllmann [Thu, 23 Jan 2025 14:30:30 +0000 (15:30 +0100)]
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.

(cherry picked from commit d83d090de1127d6e88e4ff33a617d8621a85a8cd)

4 weeks ago; * lisp/emacs-lisp/shortdoc.el (map): Fix copy'n'pasto.
Robert Pluim [Thu, 23 Jan 2025 12:27:40 +0000 (13:27 +0100)]
; * lisp/emacs-lisp/shortdoc.el (map): Fix copy'n'pasto.

(cherry picked from commit da3b93ff9658481fa81a1dbd49618ed8792f9f3b)

4 weeks ago; Minor improvements for doc strings in map.el
Eli Zaretskii [Thu, 23 Jan 2025 10:29:04 +0000 (12:29 +0200)]
; Minor improvements for doc strings in map.el

* lisp/emacs-lisp/map.el (map-let, map-put, map-apply)
(map-values-apply, map-some, map-every-p, map--merge)
(map-merge-with, map-put!): Doc fixes.

(cherry picked from commit f751b3afa4f5646625293cb5484606842f96495e)

4 weeks agoAdd shortdoc for map.el functions
Robert Pluim [Thu, 23 Jan 2025 10:17:12 +0000 (11:17 +0100)]
Add shortdoc for map.el functions

* lisp/emacs-lisp/shortdoc.el (map): New shortdoc group.

(cherry picked from commit 67480c159ed3a4b3c8a93f6dbe0317617cf6ee26)

4 weeks ago; Fix typos
Stefan Kangas [Thu, 23 Jan 2025 02:13:01 +0000 (03:13 +0100)]
; Fix typos

(cherry picked from commit cda78edc7d9194181bcda1790f29cb7cf3ceb0b9)

4 weeks ago; * src/w32.c (w32_memory_info): Fix coding style of last change.
Eli Zaretskii [Tue, 21 Jan 2025 19:25:15 +0000 (21:25 +0200)]
; * src/w32.c (w32_memory_info): Fix coding style of last change.

(cherry picked from commit ce50a1d3c18bcf0e5f51f4ed49f292f7be31010d)

4 weeks agoFix bug in w32_memory_info
Arthur Miller [Tue, 21 Jan 2025 18:10:14 +0000 (19:10 +0100)]
Fix bug in w32_memory_info

* src/w32.c (w32_memory_info): Initialize struct size.

(cherry picked from commit 58d3d4820ad327f07cea5894a9675bf30553461e)

4 weeks agoAvoid crashes in redisplay due to problematic font setups
Eli Zaretskii [Tue, 21 Jan 2025 12:24:57 +0000 (14:24 +0200)]
Avoid crashes in redisplay due to problematic font setups

* src/xdisp.c (handle_single_display_spec)
(produce_stretch_glyph): Avoid crashes if a face's font is NULL.
(Bug#75725)

(cherry picked from commit 77386412050fa348940bf83c5d736ff7b745d5d8)

4 weeks agoImprove 'key-valid-p' docstring
Robert Pluim [Fri, 17 Jan 2025 08:44:32 +0000 (09:44 +0100)]
Improve 'key-valid-p' docstring

* lisp/keymap.el (key-valid-p): Add "RET", "<return>", and "C-m"
examples.

(Bug#75586)

(cherry picked from commit 0e3687e6006ea93603a032056c6af99a242c6af5)

4 weeks agoMinor copyedits in internals.texi
Stefan Kangas [Sun, 19 Jan 2025 13:28:30 +0000 (14:28 +0100)]
Minor copyedits in internals.texi

* doc/lispref/internals.texi (Writing Emacs Primitives): Minor
copyedits.

(cherry picked from commit 9878092d2b9114d70149c3d9ce1c24e2825138ae)

4 weeks agoBetter document side-effect free and pure C functions
Stefan Kangas [Sun, 19 Jan 2025 12:57:23 +0000 (13:57 +0100)]
Better document side-effect free and pure C functions

* doc/lispref/internals.texi (Writing Emacs Primitives):
Document that side-effect free and pure properties of C functions
are defined in byte-opt.el.

(cherry picked from commit 4726900fdc5b0736feb03e928594eb64262f9bd5)

4 weeks ago; Fix documentation about faces of tool-tip text
Eli Zaretskii [Sat, 18 Jan 2025 13:07:52 +0000 (15:07 +0200)]
; Fix documentation about faces of tool-tip text

* lisp/tooltip.el (tooltip):
* src/frame.c (syms_of_frame) <use-system-tooltips>: Doc fixes.

(cherry picked from commit 04c475a39f25b09b557e3183bcd5340d75120e0c)

4 weeks agoStart refactoring scope.el
Eshel Yaron [Sat, 25 Jan 2025 17:39:23 +0000 (18:39 +0100)]
Start refactoring scope.el

4 weeks agoscope.el: Analyze minor mode definitions
Eshel Yaron [Thu, 23 Jan 2025 18:27:47 +0000 (19:27 +0100)]
scope.el: Analyze minor mode definitions

4 weeks agoDon't forget setting the top frame if not switching root frames
Gerd Möllmann [Thu, 23 Jan 2025 10:07:13 +0000 (11:07 +0100)]
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.

(cherry picked from commit 076cd69fc2e6edcc1d667266f0cf2f7743de0df5)

4 weeks agoFix setting a tty's top frame when switching frames
Gerd Möllmann [Thu, 23 Jan 2025 06:51:55 +0000 (07:51 +0100)]
Fix setting a tty's top frame when switching frames

* src/frame.c (do_switch_frame): Compare root frames correctly.

(cherry picked from commit b1ec006e9f9196c1f993e0373b20a5ffb548bb4f)

4 weeks ago; Skip commit 1dc529d4638469b828a24006dae5830dd9f794d0
Eshel Yaron [Thu, 23 Jan 2025 10:29:28 +0000 (11:29 +0100)]
; Skip commit 1dc529d4638469b828a24006dae5830dd9f794d0

4 weeks ago; Skip commit 796665b32e9431a923881eb4c02e45bf1639a7ff
Eshel Yaron [Thu, 23 Jan 2025 10:29:26 +0000 (11:29 +0100)]
; Skip commit 796665b32e9431a923881eb4c02e45bf1639a7ff

4 weeks ago; Skip commit 90b4c1b6f264773e33e7984af9a95b4b503ed02f
Eshel Yaron [Thu, 23 Jan 2025 10:29:23 +0000 (11:29 +0100)]
; Skip commit 90b4c1b6f264773e33e7984af9a95b4b503ed02f

4 weeks ago; Skip commit aa6d2a396a493736395533cacea6b5363a24c0b6
Eshel Yaron [Thu, 23 Jan 2025 10:29:16 +0000 (11:29 +0100)]
; Skip commit aa6d2a396a493736395533cacea6b5363a24c0b6

4 weeks agoReuse client cert for connectivity probing in ERC
F. Jason Park [Tue, 21 Jan 2025 00:32:53 +0000 (16:32 -0800)]
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.

(cherry picked from commit 331bcfaee51f7fa5ff0f6046f30e940452f3a8fe)

4 weeks ago; Don't quote localp argument to define-erc-module
F. Jason Park [Sat, 18 Jan 2025 19:12:50 +0000 (11:12 -0800)]
; Don't quote localp argument to define-erc-module

* etc/ERC-NEWS: Rearrange some entries for 5.6.1.
* lisp/erc/erc-fill.el (erc-fill-wrap-mode):
* lisp/erc/erc-goodies.el (erc-keep-place-indicator-mode)
(erc-command-indicator-mode):
* lisp/erc/erc-nicks.el (erc-nicks-mode):
* lisp/erc/erc-notify.el (erc-querypoll-mode):
* lisp/erc/erc-sasl.el (erc-sasl-mode):
* lisp/erc/erc-services.el (erc-services-regain-mode): Don't quote
localp argument.
* test/lisp/erc/erc-scenarios-misc.el (erc-nicks-track-faces/defer):
Skip on Emacs 27 due to recent CI failures.
* test/lisp/erc/erc-scenarios-misc.el (erc-scenarios-base-flood): Adjust
timeout.

(cherry picked from commit d6b210aa09d6a5464c91e71460d9852a4445d46e)

4 weeks agoEglot: unbreak a rarely run test
João Távora [Wed, 22 Jan 2025 22:25:03 +0000 (22:25 +0000)]
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.

(cherry picked from commit 92c5c1b786968b6d80f5d27455a40443a3a8f0e8)

4 weeks agoEglot: unbreak tests for older Emacsen
João Távora [Wed, 22 Jan 2025 22:24:26 +0000 (22:24 +0000)]
Eglot: unbreak tests for older Emacsen

* test/lisp/progmodes/eglot-tests.el (eglot-test-basic-symlink):
Use skip-unless

(cherry picked from commit 47a938c8890e81c4472018df52e62ab196efb103)

4 weeks agoEglot: fix edebug spec of eglot--dbind
João Távora [Wed, 22 Jan 2025 22:02:00 +0000 (22:02 +0000)]
Eglot: fix edebug spec of eglot--dbind

* lisp/progmodes/eglot.el (eglot--dbind): Fix edebug spec.

(cherry picked from commit 9068dcbd71b05bcb6ff2fdbb6e56375f8ac162fb)

4 weeks agoEglot: unbreak completion in Emacs 26.3 (at least)
João Távora [Wed, 22 Jan 2025 21:52:56 +0000 (21:52 +0000)]
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.

(cherry picked from commit 7e2f6ce0cb1e5eb2c686451836275acf234bc354)

4 weeks agoEglot: abandon compat.el
João Távora [Wed, 22 Jan 2025 21:43:10 +0000 (21:43 +0000)]
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.

(cherry picked from commit a60249b098d22093ec79b6cbc27a759b7b4f8883)

4 weeks agoEglot: abandon track-changes.el
João Távora [Wed, 22 Jan 2025 15:44:41 +0000 (15:44 +0000)]
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.

(cherry picked from commit ac902ddadcd236dfd1d610768569e26ea8fc5b7f)

4 weeks agoMinor image_error related cleanups
Stefan Kangas [Wed, 22 Jan 2025 22:42:13 +0000 (23:42 +0100)]
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.

(cherry picked from commit d3ada49a37e19d25170bf6322fee70d527055958)

4 weeks ago; * src/pdumper.c (dump_hash_table): Adjust hash; bitfields changed.
Pip Cet [Wed, 22 Jan 2025 19:50:31 +0000 (19:50 +0000)]
; * src/pdumper.c (dump_hash_table): Adjust hash; bitfields changed.

(cherry picked from commit bf55eb1a8ae95051ac5c8a646b2a106053d7b1b7)

4 weeks agoPort allows-stdout test to overly-suspicious bwrap
Paul Eggert [Wed, 22 Jan 2025 19:03:08 +0000 (11:03 -0800)]
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.

(cherry picked from commit 34166dcf9cbd961d4f53ce9029e179a21a12c001)

4 weeks agoDon’t silently truncate connection-lost diagnostic
Paul Eggert [Wed, 22 Jan 2025 06:25:48 +0000 (22:25 -0800)]
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.

(cherry picked from commit 2efffbe7731ba979540df851819af0ef15b94c62)

4 weeks agoCheck for snprintf truncation in pgtkterm
Paul Eggert [Wed, 22 Jan 2025 06:19:08 +0000 (22:19 -0800)]
Check for snprintf truncation in pgtkterm

* src/pgtkterm.c (pgtk_enumerate_devices):
Abort if snprintf truncated.

(cherry picked from commit db9ea9b77a0d03342bfe2a976b3943de5e5a4518)

4 weeks agoPort pdumper to unlikely long sprintf output
Paul Eggert [Wed, 22 Jan 2025 06:18:17 +0000 (22:18 -0800)]
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.

(cherry picked from commit 4a25ed300fec579f8fc75a53edbd9a6f74e2d44f)

4 weeks agoWhen debugging image.c, abort if silent truncation
Paul Eggert [Wed, 22 Jan 2025 06:16:22 +0000 (22:16 -0800)]
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.)

(cherry picked from commit 8ff7338fdd05fe6d21765711327a99c87cfd7613)

4 weeks agoDestroy GTK tool bar widget if it was never attached (bug#75636)
Pip Cet [Wed, 22 Jan 2025 00:51:33 +0000 (00:51 +0000)]
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.

(cherry picked from commit 6ea1e03fe7f9e49387789c86b8f91f6333de679c)

4 weeks agoPrefer snprintf to sprintf in image.c
Stefan Kangas [Tue, 21 Jan 2025 23:47:02 +0000 (00:47 +0100)]
Prefer snprintf to sprintf in image.c

* src/image.c (image_background, image_build_heuristic_mask)
(png_load_body): Prefer snprintf to sprintf.

(cherry picked from commit cdcfffd50a61058b135ddca1f748a5a20a7da32e)

4 weeks agoDelete some duplicate face attributes
Stefan Kangas [Tue, 21 Jan 2025 19:49:38 +0000 (20:49 +0100)]
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.

(cherry picked from commit 5f108cb663a9488c587507e4f723fe1e12732945)