]> git.eshelyaron.com Git - emacs.git/log
emacs.git
22 months ago; * lisp/emacs-lisp/eldoc.el (eldoc-display-in-echo-area): Fix typo.
Yuan Fu [Thu, 23 Feb 2023 01:55:30 +0000 (17:55 -0800)]
; * lisp/emacs-lisp/eldoc.el (eldoc-display-in-echo-area): Fix typo.

22 months agoEglot: implement inlay hints (bug#61412, bug#61066)
João Távora [Tue, 21 Feb 2023 14:14:05 +0000 (14:14 +0000)]
Eglot: implement inlay hints (bug#61412, bug#61066)

Inlay hints are small text annotations to specific parts of the whole
buffer, not unlike diagnostics, but designed to help readability
instead of indicating problems.  For example, a C++ LSP server can
serve hints about positional parameter names in function calls and a
variable's automatically deduced type.  Emacs can display these hints
in many little 0-length overlays with an 'before-string property, thus
helping the user remember those types and parameter names.

Since inlay hints are potentially a large amount of data to request
from the LSP server, the implementation strives to be as parsimonious
as possible with these requests.

So, by default, inlay hints are only requested for the visible
portions of the buffer across windows showing this buffer.  This is
done by leveraging the 'window-scroll-functions' variable, making for
a reasonably complex implementation involving per-window timers.  When
scrolling a window, it may take a short amount of time for inlay hints
to "pop in".  The new user variable 'eglot-lazy-inlay-hints' can be
used to exert some control over this.

Specifically, if the variable's value is set to 'nil', then inlay
hints are greedily fetched for the whole buffer every time a change
occurs.  This is a much simpler mode of operation which may avoid
problems, but is also likely much slower in large buffers.

Also, because the inlay feature is probably visually suprising to
some, it is turned OFF by default, which is not the usual practice of
Eglot (at least not when the necessary infrastructure is present).
This decision may be changed soon.  Here's a good one-liner for
enabling it by default in every Eglot-managed buffer:

   (add-hook 'eglot-managed-mode-hook #'eglot-inlay-hints-mode)

I haven't tested inlay hints extensively across many LSP servers, so I
would appreciate any testing, both for functional edge cases and
regarding performance.  There are possibly more optimization
oportunities in the "lazy" mode of operation, like more aggressively
deleting buffer overlays that are not in visible parts of the buffer.

Though I ended up writing this one from scratch, I want to thank
Dimitry Bolopopsky <dimitri@belopopsky.com> and Chinmay Dala
<dalal.chinmay.0101@gmail.com> for suggestions and early patches.

* lisp/progmodes/eglot.el (eglot--lsp-interface-alist): Define
InlayHint.
(eglot-client-capabilities): Announce 'inlayHint' capability.
(eglot-ignored-server-capabilities): Add :inlayHintProvider.
(eglot--document-changed-hook): New helper hook.
(eglot--after-change): Use it.
(eglot-inlay-hint-face, eglot-type-hint-face)
(eglot-parameter-hint-face): New faces.
(eglot--update-hints-1, eglot--inlay-hints-after-scroll)
(eglot--inlay-hints-fully, eglot--inlay-hints-lazily): New helpers.
(eglot-lazy-inlay-hints): New user variable.
(eglot-inlay-hints-mode): New minor mode.
(eglot--maybe-activate-editing-mode): Try to activate
eglot-inlay-hints-mode.
(eglot--before-change): Remove overlays immediately in the
area being changed.
(eglot--managed-mode-off): Remove overlays.

* doc/misc/eglot.texi (Eglot Features): Mention inlay hints.
(Eglot Variables): Mention eglot-lazy-inlay-hints.

22 months agoEglot: run eglot-managed-mode-hook after LSP didOpen
João Távora [Wed, 22 Feb 2023 18:44:39 +0000 (18:44 +0000)]
Eglot: run eglot-managed-mode-hook after LSP didOpen

This allows using the hook for interacting with the LSP server using
the current buffer as the subject of that interaction ("document" in
LSP parlance).

* lisp/progmodes/eglot.el (eglot--maybe-activate-editing-mode):
Run eglot-managed-mode-hook here.
(eglot--managed-mode): Not here.

22 months agoEglot: restore eldoc-documentation-functions on shutdown
João Távora [Wed, 22 Feb 2023 18:50:46 +0000 (18:50 +0000)]
Eglot: restore eldoc-documentation-functions on shutdown

* lisp/progmodes/eglot.el (eglot--managed-mode): Restore
eldoc-documentation-functions when shutting down eglot.

22 months agoEglot: simplify capability-checking code
João Távora [Tue, 21 Feb 2023 13:59:04 +0000 (13:59 +0000)]
Eglot: simplify capability-checking code

* lisp/progmodes/eglot.el (eglot--server-capable-or-lose): New helper.
(eglot--signal-textDocument/willSave)
(eglot--signal-textDocument/didSave): Tweak docstring.
(eglot--workspace-symbols, xref-backend-identifier-at-point)
(eglot-format, eglot-completion-at-point, eglot-rename)
(eglot-code-actions): Use new eglot--server-capable-or-lose.

22 months agoEglot: go back to setting eldoc-documentation-strategy again
João Távora [Wed, 22 Feb 2023 18:05:00 +0000 (18:05 +0000)]
Eglot: go back to setting eldoc-documentation-strategy again

This commits reverts part of

   commit e83c78b8c7784254c2c6f043530ab325c2fa7f16
   Author: João Távora <joaotavora@gmail.com>
   Date:   Mon Feb 20 22:43:50 2023 +0000

       Eglot: respect user's Eldoc configuration by default

In that commit, I did what many longstanding issues and users were
suggesting and removed Eglot's override of two Eldoc user
configuration varibles.

I verified that Eglot's behaviour would stay mostly unaltered but my
tests were very incomplete.  In short there is no way that Eglot can
work acceptably with the default setting of
'eldoc-documentation-strategy', which is
'eldoc-documentation-default'.  So it must be changed, either globally
or locally in Eglot's minor mode.

This is true for any situation where both synchronous and asynchronous
documentation sources are present.  In Eglot's case there are two
asynchronous sources which have more importance than the synchronous
source.  So any other strategy except the
'eldoc-documentation-default' makes sense.

* lisp/progmodes/eglot.el (eglot--managed-mode): Set
eldoc-documentation-strategy to eldoc-documentation-compose.

22 months ago; * etc/NEWS: Fix typo again
Martin Rudalics [Wed, 22 Feb 2023 17:48:33 +0000 (18:48 +0100)]
; * etc/NEWS: Fix typo again

22 months ago; * etc/NEWS (C-x v !): Additional text.
Sean Whitton [Wed, 22 Feb 2023 17:17:08 +0000 (10:17 -0700)]
; * etc/NEWS (C-x v !): Additional text.

22 months ago; * doc/emacs/vc1-xtra.texi (Preparing Patches): Wording tweaks.
Sean Whitton [Wed, 22 Feb 2023 17:10:04 +0000 (10:10 -0700)]
; * doc/emacs/vc1-xtra.texi (Preparing Patches): Wording tweaks.

22 months ago; * doc/emacs/anti.texi (Antinews): Adjust to latest changes.
Eli Zaretskii [Wed, 22 Feb 2023 15:40:00 +0000 (17:40 +0200)]
; * doc/emacs/anti.texi (Antinews): Adjust to latest changes.

22 months agoMerge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs into emacs-29
Michael Albinus [Wed, 22 Feb 2023 14:35:48 +0000 (15:35 +0100)]
Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs into emacs-29

22 months ago; * etc/NEWS: Fix typos.
Michael Albinus [Wed, 22 Feb 2023 14:35:03 +0000 (15:35 +0100)]
; * etc/NEWS: Fix typos.

22 months agoYield to erc-move-to-prompt before unhiding prompt
F. Jason Park [Wed, 22 Feb 2023 14:24:17 +0000 (06:24 -0800)]
Yield to erc-move-to-prompt before unhiding prompt

* lisp/erc/erc-backend.el (erc--hide-prompt): Change hook depth from 0
to 91 to allow the `move-to-prompt' module to do its thing.  This
feature was added by bug#54826 and first appeared in Emacs 29.
* lisp/erc/erc-common.el (erc-server-user): Remove erroneous comment.
The `buffers' field is a list of buffers.
* test/lisp/erc/erc-tests.el (erc-hide-prompt): Use `erc--target'
instead of `erc-default-recipients' because this is new code.

22 months ago; Improve doc string of 'C-q'
Eli Zaretskii [Wed, 22 Feb 2023 14:24:59 +0000 (16:24 +0200)]
; Improve doc string of 'C-q'

* lisp/simple.el (read-quoted-char-radix, quoted-insert): Doc fix.

22 months ago; Clarify "kill files" in Gnus manual
Eli Zaretskii [Wed, 22 Feb 2023 13:40:26 +0000 (15:40 +0200)]
; Clarify "kill files" in Gnus manual

* doc/misc/gnus.texi (Scoring): Make the reference to kill files
less vague.  (Bug#61325)

22 months ago* lisp/progmodes/python.el (python--import-sources): Fix regexp (bug#61648)
Augusto Stoffel [Mon, 20 Feb 2023 09:49:22 +0000 (10:49 +0100)]
* lisp/progmodes/python.el (python--import-sources): Fix regexp (bug#61648)

22 months agoDo not error out on non image file (bug#61639)
Manuel Giraud [Sun, 19 Feb 2023 20:03:57 +0000 (21:03 +0100)]
Do not error out on non image file (bug#61639)

* lisp/image/image-dired.el
(image-dired-display-thumbs): Do not insert non image file and do not
display image-dired buffer if it is empty.

22 months agoExplain effect of variable-pitch fonts on fill-column
Eli Zaretskii [Wed, 22 Feb 2023 13:16:25 +0000 (15:16 +0200)]
Explain effect of variable-pitch fonts on fill-column

* doc/emacs/text.texi (Fill Commands):
* doc/emacs/display.texi (Displaying Boundaries):
* lisp/display-fill-column-indicator.el
(display-fill-column-indicator-mode): Document caveats of using
variable-pitch fonts with 'fill-column' and its indicator.
(Bug#61677)

22 months agoAvoid division by zero in get_narrowed_* functions
Eli Zaretskii [Wed, 22 Feb 2023 12:55:05 +0000 (14:55 +0200)]
Avoid division by zero in get_narrowed_* functions

* src/xdisp.c (get_narrowed_width, get_narrowed_len): Return at
least 1 as the value.  (Bug#61704)

22 months ago; Fix documentation of 'icon-title-format'.
Eli Zaretskii [Tue, 21 Feb 2023 20:06:30 +0000 (22:06 +0200)]
; Fix documentation of 'icon-title-format'.

22 months ago* etc/NEWS: Mention new buffer display action alist entries
Martin Rudalics [Tue, 21 Feb 2023 17:49:04 +0000 (18:49 +0100)]
* etc/NEWS: Mention new buffer display action alist entries

22 months ago; * src/xterm.c (x_update_end): Condition on HAVE_XDBE
Robert Pluim [Tue, 21 Feb 2023 17:05:32 +0000 (18:05 +0100)]
; * src/xterm.c (x_update_end): Condition on HAVE_XDBE

22 months agoFix build --without-xdbe
Eli Zaretskii [Tue, 21 Feb 2023 16:15:35 +0000 (18:15 +0200)]
Fix build --without-xdbe

* src/xterm.c (x_end_cr_clip, handle_one_xevent): Condition
double-buffering code on HAVE_XDBE.  (Bug#61667)

22 months agoImprove dnd-direct-save-remote-files docstring
Robert Pluim [Tue, 21 Feb 2023 15:55:21 +0000 (16:55 +0100)]
Improve dnd-direct-save-remote-files docstring

* lisp/dnd.el (dnd-direct-save-remote-files): Reword.

22 months agoAdd 'process-status' to process shortdoc
Robert Pluim [Tue, 21 Feb 2023 15:45:21 +0000 (16:45 +0100)]
Add 'process-status' to process shortdoc

* lisp/emacs-lisp/shortdoc.el (process): Add 'process-status'.

22 months ago* lisp/emacs-lisp/comp.el (comp--trampoline-abs-filename): Improve 5d0b45cd67b
Andrea Corallo [Tue, 21 Feb 2023 13:58:28 +0000 (14:58 +0100)]
* lisp/emacs-lisp/comp.el (comp--trampoline-abs-filename): Improve 5d0b45cd67b

22 months agoImprove text about deleting windows
Robert Pluim [Tue, 21 Feb 2023 15:35:25 +0000 (16:35 +0100)]
Improve text about deleting windows

* doc/emacs/windows.texi (Change Window): Improve grammar around
'delete-window-choose-selected'.

22 months agoMake 'emacs-news-cycle-tag' work at all levels
Robert Pluim [Tue, 21 Feb 2023 14:20:56 +0000 (15:20 +0100)]
Make 'emacs-news-cycle-tag' work at all levels

* lisp/textmodes/emacs-news-mode.el (emacs-news-cycle-tag): Search for
a heading starting with 2 or more '*' rather than exactly 3.
* test/lisp/textmodes/emacs-news-mode-resources/cycle-tag.erts
(Point-Char): Add tests for 2 and 4 '*' levels.

22 months agoRepair mistake in a previous edmacro-sanitize-string change
Mattias Engdegård [Mon, 20 Feb 2023 11:55:09 +0000 (12:55 +0100)]
Repair mistake in a previous edmacro-sanitize-string change

* lisp/edmacro.el (edmacro-sanitize-for-string):
This condition should not have been 'repaired' but removed altogether.
Do so now, fixing bug#61647.

Reported by Eduardo Ochs.

(cherry picked from commit 4eefadad0670ad1c3da2505d734e528d54c76bef)

22 months agoregex-emacs.c: Reduce the use of backtracking a bit further
Stefan Monnier [Tue, 21 Feb 2023 02:22:41 +0000 (21:22 -0500)]
regex-emacs.c: Reduce the use of backtracking a bit further

bug#61514 exhibited some undesirable backtracking in a case where
it's easy to avoid it by making `mutually_exclusive_p` just a bit
more careful.

* src/regex-emacs.c (mutually_exclusive_p): Handle `on_failure_jump`s.

* test/src/regex-emacs-tests.el (regexp-tests-backtrack-optimization):
Add a few tests.

22 months agoEglot: respect user's Eldoc configuration by default
João Távora [Mon, 20 Feb 2023 22:43:50 +0000 (22:43 +0000)]
Eglot: respect user's Eldoc configuration by default

This change addresses the problems reported in many Elglot reports
dating back to early 2021 at least:

  https://github.com/joaotavora/eglot/issues/648
  https://github.com/joaotavora/eglot/issues/894
  https://github.com/joaotavora/eglot/issues/920
  https://github.com/joaotavora/eglot/issues/1031
  https://github.com/joaotavora/eglot/issues/1171

In one form or another, the reports point out that the multiple pieces
of information about the "thing at point" made available by the LSP
server are not all being considered by the ElDoc system.

The reason for this is Eglot setting/trampling the variables
'eldoc-documentation-strategy' and 'eldoc-documentation-functions' in
its minor more entry function.

The reason it did that is historical and is partially described in the
issues above.  But, evidently, it never made much sense, because so
many people want to override it, which requires setting
'eldoc-documentation-strategy' to the non-default value
'eldoc-documentation-compose'.

The problem was made worse by the fact that setting it as usual in
either the Customize menu or their init file didn't work, requiring a
fairly complex Elisp snippet.  That is now solved as of this commit.

If the user does not do any setting, then Eglot works basically the
same as before (i.e. shows only one piece of information).

It is arguable that the default value for
'eldoc-documentation-strategy' should change globally to
'eldoc-documentation-compose', but that has other subtle implications
and is not part of this commit.

* lisp/progmodes/eglot.el (eglot--managed-mode): Don't set Eldoc
variables greedily.

22 months agoMake the native compiler always use `make-temp-file' for temporary files
Andrea Corallo [Mon, 20 Feb 2023 20:03:58 +0000 (21:03 +0100)]
Make the native compiler always use `make-temp-file' for temporary files

* src/comp.c (CALL4I): Define macro.
(Fcomp__compile_ctxt_to_file): Use `make-temp-file' instead of
`make-temp-file-internal'.
* lisp/emacs-lisp/comp.el (comp--trampoline-abs-filename): Likewise.

22 months ago; * lisp/progmodes/rust-ts-mode.el (treesit-node-end): Declare.
Eli Zaretskii [Mon, 20 Feb 2023 17:30:02 +0000 (19:30 +0200)]
; * lisp/progmodes/rust-ts-mode.el (treesit-node-end): Declare.

22 months agoUpdate to Transient v0.3.7-216-gfe40342
Jonas Bernoulli [Mon, 20 Feb 2023 15:36:16 +0000 (16:36 +0100)]
Update to Transient v0.3.7-216-gfe40342

22 months agoAdd declaration_list to c-ts-common-indent-type-regexp-alist
Daniel Martín [Sun, 19 Feb 2023 21:57:54 +0000 (22:57 +0100)]
Add declaration_list to c-ts-common-indent-type-regexp-alist

* lisp/progmodes/c-ts-mode.el (c-ts-base-mode): Consider a
"declaration_list" a block. (Bug#61635)
* test/lisp/progmodes/c-ts-mode-resources/indent.erts (Code): Add a
test case.

22 months agoTypescript-ts-mode: Add switch case handling
Theodor Thornhill [Mon, 20 Feb 2023 12:38:55 +0000 (13:38 +0100)]
Typescript-ts-mode: Add switch case handling

* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--indent-rules): New rules.

22 months agoFix object initializer for csharp-mode (bug#61541)
Theodor Thornhill [Sun, 19 Feb 2023 19:48:36 +0000 (20:48 +0100)]
Fix object initializer for csharp-mode (bug#61541)

* lisp/progmodes/csharp-mode.el (csharp-guess-basic-syntax): Make sure
we check the openers as well as closers.

22 months agoUpdate to Org 9.6.1-34-geea8da
Kyle Meyer [Mon, 20 Feb 2023 05:41:31 +0000 (00:41 -0500)]
Update to Org 9.6.1-34-geea8da

22 months agoImprove tree-sitter indent anchor prev-adaptive-prefix (bug#61314)
Yuan Fu [Sun, 19 Feb 2023 20:22:27 +0000 (12:22 -0800)]
Improve tree-sitter indent anchor prev-adaptive-prefix (bug#61314)

Now prev-adaptive-prefix looks at the current line and checks if it
begins with a prefix itself.  If it does, prev-adaptive-prefix tries
to place the anchor before the prefix on the previous line, rather
than after it.

 - prev line
 - this line -> This line starts with a "-", i.e., begins with a
                prefix, so we place the anchor at the beginning of the
                 "-" of the previous line, rather than after it

 - prev line
   this line -> This line doesn't start with a prefix, so the anchor
                is placed after the previous line's "-".

* doc/lispref/modes.texi (Parser-based Indentation): Update manual.
* lisp/treesit.el:
(treesit-simple-indent-presets): Add local variable
this-line-has-prefix, base what anchor to return on the value of
this-line-has-prefix and whether the prev line has a prefix.

22 months agoAdjust jsx indentation
Theodor Thornhill [Sat, 18 Feb 2023 22:10:13 +0000 (23:10 +0100)]
Adjust jsx indentation

We can use the fact that 'treesit-indent-1' uses 'treesit-node-on'
when on a whitespace to set the actual current node as parent.  Now we
can correctly indent the 'jsx_text' nodes.  We also add some more
electric-indent-chars so that auto-indenting of jsx behaves a little
more fluently.

* lisp/progmodes/js.el (js--treesit-indent-rules): Add new rules.
(js-ts-mode): Add more indent-chars.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--indent-rules): Add new rules.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-base-mode): Add more indent-chars and layout rules.

22 months agoCleanup preproc indent for c-ts-mode (bug#61558)
Theodor Thornhill [Fri, 17 Feb 2023 19:46:19 +0000 (20:46 +0100)]
Cleanup preproc indent for c-ts-mode (bug#61558)

* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Make sure we
indent to great-grand-parent if inside an #ifdef...#endif block.  If
grand-parent is root node, then don't indent one step.
(c-ts-mode--preproc-offset): New helper anchor function to calculate
indent offset.

22 months agoAdd comment style toggle for c-ts-mode (bug#61550)
Theodor Thornhill [Fri, 17 Feb 2023 22:46:24 +0000 (23:46 +0100)]
Add comment style toggle for c-ts-mode (bug#61550)

* lisp/progmodes/c-ts-mode.el (c-ts-mode-toggle-comment-style): New
command.
(c-ts-base-mode-map): Add binding.
(c-ts-mode-set-modeline): New function.
(c-ts-mode): Set modeline.
(c++-ts-mode): Set modeline.

22 months ago* lisp/simple.el (choose-completion): Check for completion-in-region-mode.
Juri Linkov [Sun, 19 Feb 2023 19:30:02 +0000 (21:30 +0200)]
* lisp/simple.el (choose-completion): Check for completion-in-region-mode.

Don't use base-affixes when completion-use-base-affixes is non-nil
in completion-in-region-mode (bug#61535).

22 months agorust-ts-mode--font-lock-settings: Avoid the explicit 'default' face
Dmitry Gutov [Sun, 19 Feb 2023 17:18:19 +0000 (19:18 +0200)]
rust-ts-mode--font-lock-settings: Avoid the explicit 'default' face

* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--fontify-scope)
(rust-ts-mode--fontify-tail): New functions.
(rust-ts-mode--font-lock-settings): Use them instead of a lot of
more complex queries (bug#61302).  Thus avoid having to create
block fontification by other features using the 'default' face.
Replace the catch-all query for 'variable' with an enumeration of
possible parent nodes.

22 months ago* lisp/progmodes/xref.el: Bump the version.
Dmitry Gutov [Sun, 19 Feb 2023 12:27:27 +0000 (14:27 +0200)]
* lisp/progmodes/xref.el: Bump the version.

22 months agoxref--insert-xrefs: Use 'shadow' for the line number colon
Dmitry Gutov [Thu, 9 Feb 2023 19:57:18 +0000 (21:57 +0200)]
xref--insert-xrefs: Use 'shadow' for the line number colon

* lisp/progmodes/xref.el (xref--insert-xrefs): Use face 'shadow' for
the line number colon instead of continuing it face (bug#61340).

(cherry picked from commit d6d25a3c221e566de4df5319181e9ba9a8df285e)

22 months ago* lisp/progmodes/xref.el (xref--insert-xrefs): Remove extra space (bug#61340).
Juri Linkov [Wed, 8 Feb 2023 07:34:49 +0000 (09:34 +0200)]
* lisp/progmodes/xref.el (xref--insert-xrefs): Remove extra space (bug#61340).

(cherry picked from commit 643a11c6e5defc0a34da1a53b64aa1e097298923)

22 months agoBackport: Fix xref-clear-marker-stack refactoring mistake
Mattias Engdegård [Thu, 26 Jan 2023 11:36:20 +0000 (12:36 +0100)]
Backport: Fix xref-clear-marker-stack refactoring mistake

* lisp/progmodes/xref.el (xref-clear-marker-stack):
Clear the history correctly.  Changing a lexical variable has no effect.

(cherry picked from commit dfdc0f5fb7b10e737c3c8e2bdb1eb873a1e91bd7)

22 months ago; Merge from origin/emacs-28
Stefan Kangas [Sun, 19 Feb 2023 16:38:00 +0000 (17:38 +0100)]
; Merge from origin/emacs-28

The following commit was skipped:

a44d906740f ; Commit files changed by "autoreconf -i -I m4 --force"

22 months agoMerge from origin/emacs-28
Stefan Kangas [Sun, 19 Feb 2023 16:37:59 +0000 (17:37 +0100)]
Merge from origin/emacs-28

f5a99945b6f ; Update ChangeLog for Emacs 28.3
f7bd5ac5521 Update HISTORY for Emacs 28.3

# Conflicts:
# etc/NEWS

22 months ago; Merge from origin/emacs-28
Stefan Kangas [Sun, 19 Feb 2023 16:35:20 +0000 (17:35 +0100)]
; Merge from origin/emacs-28

The following commits were skipped:

ba3aba3096a Bump Emacs version to 28.3
e61d743d440 Update NEWS for Emacs 28.3

22 months agoMerge from origin/emacs-28
Stefan Kangas [Sun, 19 Feb 2023 16:35:20 +0000 (17:35 +0100)]
Merge from origin/emacs-28

4a77fcb1478 Update ChangeLog and AUTHORS for Emacs 28.3

22 months ago; Merge from origin/emacs-28
Stefan Kangas [Sun, 19 Feb 2023 16:35:20 +0000 (17:35 +0100)]
; Merge from origin/emacs-28

The following commits were skipped:

e339926272a Fix etags local command injection vulnerability
5d05ea803e9 Fixed ctags local command execute vulnerability
22fb5ff5126 Fix ruby-mode.el local command injection vulnerability (b...
807d2d5b3a7 Fix htmlfontify.el command injection vulnerability.
ae9bfed50db Fix storing email into nnmail by Gnus

22 months ago; Improve image-dired-thumbnail-storage docstring
Stefan Kangas [Sun, 19 Feb 2023 16:27:19 +0000 (17:27 +0100)]
; Improve image-dired-thumbnail-storage docstring

* lisp/image/image-dired.el (image-dired-thumbnail-storage):
Improve docstring.

22 months ago; * doc/emacs/dired.texi (Image-Dired): Fix last change.
Eli Zaretskii [Sun, 19 Feb 2023 15:09:18 +0000 (17:09 +0200)]
; * doc/emacs/dired.texi (Image-Dired): Fix last change.

22 months agoMore doc on image-dired-dired-* (bug#61624)
Manuel Giraud [Sun, 19 Feb 2023 11:19:02 +0000 (12:19 +0100)]
More doc on image-dired-dired-* (bug#61624)

* doc/emacs/dired.texi (Image-Dired): Some fixes and more
documentation about image-dired-dired-* commands.

22 months agoEglot: improve treatment of completion items without :sortText (bug#61532)
Theodor Thornhill [Sun, 19 Feb 2023 11:11:13 +0000 (11:11 +0000)]
Eglot: improve treatment of completion items without :sortText (bug#61532)

Previously, defaulting to the empty string put candidates without
:sortText to the top of the list.  since string-lessp is safe with nil
arguments, this makes them sort to the end instead.

* lisp/progmodes/eglot.el (eglot-completion-at-point): Simplify.

22 months ago; * admin/make-tarball.txt: Minor copyedit.
Stefan Kangas [Sun, 19 Feb 2023 10:35:31 +0000 (11:35 +0100)]
; * admin/make-tarball.txt: Minor copyedit.

22 months ago; Commit files changed by "autoreconf -i -I m4 --force" emacs-28.3-rc1
Stefan Kangas [Fri, 17 Feb 2023 22:44:39 +0000 (23:44 +0100)]
; Commit files changed by "autoreconf -i -I m4 --force"

* build-aux/config.guess:
* build-aux/config.sub: Update files changed by running "autoreconf -i
-I m4 --force".  Do not merge.

22 months ago; Update ChangeLog for Emacs 28.3
Stefan Kangas [Fri, 17 Feb 2023 22:33:33 +0000 (23:33 +0100)]
; Update ChangeLog for Emacs 28.3

* ChangeLog.3: Refresh for Emacs 28.3.
* etc/NEWS: Add more information about fixed vulnerabilities.

22 months agoFix invocation of File->Close from the menu bar
Eli Zaretskii [Sun, 19 Feb 2023 09:29:32 +0000 (11:29 +0200)]
Fix invocation of File->Close from the menu bar

* lisp/simple.el (kill-buffer--possibly-save): Don't request
LONG-FORM from 'read-multiple-choice' if GUI dialog should be
used.
* lisp/emacs-lisp/rmc.el (read-multiple-choice): Doc fix.
(read-multiple-choice--short-answers): Don't append "?" to
CHOICES and don't display the prompt in the echo area if GUI
dialog is used.  Use 'use-dialog-box-p'.  (Bug#61553)

22 months ago; Improve documentation of 'native-comp-enable-subr-trampolines'
Eli Zaretskii [Sun, 19 Feb 2023 09:04:57 +0000 (11:04 +0200)]
; Improve documentation of 'native-comp-enable-subr-trampolines'

* doc/lispref/compile.texi (Native-Compilation Variables):
Document the interpretation of non-absolute directory names that
are the value of 'native-comp-enable-subr-trampolines'.

22 months agoUpdate thumbnail buffer's header more
Manuel Giraud [Tue, 14 Feb 2023 14:08:17 +0000 (15:08 +0100)]
Update thumbnail buffer's header more

* lisp/image/image-dired.el (image-dired-display-thumbs): Call
image-dired--update-header-line.  (Bug#61508)

22 months ago(treesit-query-validate): Fix reusing the output buffer
Dmitry Gutov [Sat, 18 Feb 2023 21:52:47 +0000 (23:52 +0200)]
(treesit-query-validate): Fix reusing the output buffer

* lisp/treesit.el (treesit-query-validate): Fix the "Buffer is
read-only" error when an output buffer already exists.

22 months ago(rust-ts-mode--font-lock-settings): Highlight closure parameters
Dmitry Gutov [Sat, 18 Feb 2023 21:51:17 +0000 (23:51 +0200)]
(rust-ts-mode--font-lock-settings): Highlight closure parameters

* lisp/progmodes/rust-ts-mode.el
(rust-ts-mode--font-lock-settings): Highlight closure parameters.

22 months ago* Fix `native-comp-enable-subr-trampolines' semantic
Andrea Corallo [Sat, 18 Feb 2023 21:44:05 +0000 (22:44 +0100)]
* Fix `native-comp-enable-subr-trampolines' semantic

* lisp/emacs-lisp/comp.el (comp--trampoline-abs-filename): Interpret
`native-comp-enable-subr-trampolines' relative to
`invocation-directory'.

22 months agoFix documentation of 'just-one-space' and 'delete-horizontal-space'
Eli Zaretskii [Sat, 18 Feb 2023 18:03:33 +0000 (20:03 +0200)]
Fix documentation of 'just-one-space' and 'delete-horizontal-space'

* lisp/simple.el (just-one-space, delete-horizontal-space):
Mention the effect of prefix argument.  (Bug#61609)

22 months ago; Remove NEWS entry about deleted variable.
Eli Zaretskii [Sat, 18 Feb 2023 17:48:22 +0000 (19:48 +0200)]
; Remove NEWS entry about deleted variable.

22 months ago; Fix wording of last change.
Eli Zaretskii [Sat, 18 Feb 2023 17:45:33 +0000 (19:45 +0200)]
; Fix wording of last change.

22 months agoFix 'display-buffer-use-least-recent-window'
martin rudalics [Sun, 12 Feb 2023 09:33:11 +0000 (10:33 +0100)]
Fix 'display-buffer-use-least-recent-window'

* src/window.c (Fwindow_use_time): Doc fix.
(Fwindow_bump_use_time): Bump use time of the seleceted window as
well.  Doc fix.

* lisp/window.el (display-buffer-avoid-small-windows): Remove.
All users changed.
(window--display-buffer): Bump window use time when requested.
(display-buffer--lru-window): New function.
(display-buffer-use-some-window): Use it.
(display-buffer-use-least-recent-window): Rewrite and enhance doc
string.

* doc/lispref/windows.texi (Selecting Windows)
(Buffer Display Action Functions, Buffer Display Action Alists)
(The Zen of Buffer Display): Improve and update documentation of
window selection and display facilities.

22 months agoFix point moving when calling python-shell-send-region
kobarity [Mon, 13 Feb 2023 15:30:15 +0000 (00:30 +0900)]
Fix point moving when calling python-shell-send-region

* lisp/progmodes/python.el (python-shell-buffer-substring): Add
`save-excursion' to prevent the point from moving.
* test/lisp/progmodes/python-tests.el (python-tests-should-not-move):
New helper function to assert that point does not move while calling a
function.
(python-shell-buffer-substring-*): Use
`python-tests-should-not-move'. (Bug#61463)

22 months ago(project-try-vc): Remove unused defvar/require
Omar Polo [Sat, 18 Feb 2023 13:10:57 +0000 (15:10 +0200)]
(project-try-vc): Remove unused defvar/require

* lisp/progmodes/project.el (project-try-vc):
Remove unused defvar/require (bug#61577).

22 months ago; Fix typo
Stefan Kangas [Sat, 18 Feb 2023 12:39:14 +0000 (13:39 +0100)]
; Fix typo

22 months agoDelete redundant question from Gnus FAQ
Stefan Kangas [Sat, 18 Feb 2023 12:35:37 +0000 (13:35 +0100)]
Delete redundant question from Gnus FAQ

* doc/misc/gnus-faq.texi (FAQ 1-2): Delete redundant question.
(FAQ 1-1, FAQ 1-3): Adjust accordingly.

22 months agoSlightly improve hashcash documentation
Stefan Kangas [Sat, 18 Feb 2023 12:00:04 +0000 (13:00 +0100)]
Slightly improve hashcash documentation

* lisp/mail/hashcash.el: Improve Commentary.
(hashcash-program):
* lisp/gnus/message.el (message-generate-hashcash): Improve
docstring.

22 months agoFix cursor motion when there's line-prefix and display string at BOL
Eli Zaretskii [Sat, 18 Feb 2023 11:40:56 +0000 (13:40 +0200)]
Fix cursor motion when there's line-prefix and display string at BOL

* src/xdisp.c (move_it_in_display_line_to): Handle 'line-prefix' and
'wrap-prefix' when the screen line has a display string at its
beginning.  (Bug#61580)

22 months agoFix comment in treesit_record_change (bug#61369)
Yuan Fu [Sat, 18 Feb 2023 10:20:12 +0000 (02:20 -0800)]
Fix comment in treesit_record_change (bug#61369)

Turns out the previous commit message and comment is not entirely
correct: the old behavior is in fact wrong, not just "correct but has
problems".

Here is why the old code is wrong:

|visible range|     -> markup for visible range

updated range       -> markup for updated range
-------------

First we have some text

|aaaaaa|

Now we insert something at the beginning, because we clip
new_end_offset to visible_end, out of eight b's inserted, only the
first six are known to tree-sitter.

|bbbbbbbbaaaa|aa  start: 0, old_end: 0, new_end: 6
 ------

In treesit_sync_visible_region, we sync up visible region, but the two
missing b's are not in the updated range.

|bbbbbbbbaaaaaa|  start: 12, old_end: 12, new_end: 14
             --

The old behavior not only is wrong, but also doesn't make much sense.

* src/treesit.c (treesit_record_change): Update comment.

22 months agoSpell out RPN abbreviation in Calc manual intro
Stefan Kangas [Sat, 18 Feb 2023 09:57:27 +0000 (10:57 +0100)]
Spell out RPN abbreviation in Calc manual intro

* doc/misc/calc.texi (What is Calc, Demonstration of Calc)
(RPN Tutorial): Spell out "Reverse Polish notation" abbreviation.

22 months agoFix some uses of 'use-dialog-box'
Eli Zaretskii [Sat, 18 Feb 2023 08:58:00 +0000 (10:58 +0200)]
Fix some uses of 'use-dialog-box'

* lisp/frame.el (display-mouse-p): Fix return value on MS-Windows
in batch invocations.
* lisp/hi-lock.el (hi-lock-unface-buffer): Don't consider
'last-nonmenu-event' being nil as a mouse event, for the purpose
of using dialog boxes.

22 months agoFix hi-lock-tests when 'use-dialog-box' is non-nil
Eli Zaretskii [Sat, 18 Feb 2023 08:45:12 +0000 (10:45 +0200)]
Fix hi-lock-tests when 'use-dialog-box' is non-nil

* test/lisp/hi-lock-tests.el (hi-lock-case-fold)
(hi-lock-unhighlight): Bind 'use-dialog-box' to nil.

22 months agoFix regression due to change in face sort order by 'face-list'
Eli Zaretskii [Sat, 18 Feb 2023 07:37:34 +0000 (09:37 +0200)]
Fix regression due to change in face sort order by 'face-list'

* lisp/faces.el (x-create-frame-with-faces): Undo reversing of
the face list, which is no longer necessary, since 'face-list's
sorting order has been reversed recently.  (Bug#61521)

22 months ago* lisp/files.el (file-equal-p): Work around Haiku stat bug.
Po Lu [Sat, 18 Feb 2023 03:03:07 +0000 (11:03 +0800)]
* lisp/files.el (file-equal-p): Work around Haiku stat bug.

22 months ago; * src/treesit.c: Improve sectioning.
Po Lu [Sat, 11 Feb 2023 01:26:11 +0000 (09:26 +0800)]
; * src/treesit.c: Improve sectioning.

22 months ago(project-vc-backend-markers-alist): Add entry for vc-got
Dmitry Gutov [Fri, 17 Feb 2023 22:54:02 +0000 (00:54 +0200)]
(project-vc-backend-markers-alist): Add entry for vc-got

* lisp/progmodes/project.el (project-vc-backend-markers-alist):
Add entry for vc-got (bug#61577).  Bump the version.

22 months agoproject.el: Extract backend->marker association for a defvar
Dmitry Gutov [Fri, 17 Feb 2023 22:50:29 +0000 (00:50 +0200)]
project.el: Extract backend->marker association for a defvar

* lisp/progmodes/project.el (project-vc-backend-markers-alist):
Extract from 'project-try-vc'.
(project-try-vc): Update accordingly (bug#61577).

22 months agoDon't completely clip into visible range in treesit_record_change
Yuan Fu [Fri, 17 Feb 2023 22:21:49 +0000 (14:21 -0800)]
Don't completely clip into visible range in treesit_record_change

(Bug#61369)

From
    min (visible_end, max (visible_beg, new_end_byte)) - visible_beg
to
    max (visible_beg, new_end_byte) - visible_beg

* src/treesit.c (treesit_record_change): We don't clip the new end
into the visible range anymore.  If you think of it, when inserting in
a narrowed region, the visible region is always extended to
accommodate more text, rather than pushing text at the end to keep the
size of the visible region.

22 months ago* lisp/treesit.el (treesit-node-at): Update docstring (bug#61529).
Dmitry Gutov [Fri, 17 Feb 2023 15:06:53 +0000 (17:06 +0200)]
* lisp/treesit.el (treesit-node-at): Update docstring (bug#61529).

22 months ago; Minor copyedit of NEWS wrt *-ts-modes
Eli Zaretskii [Fri, 17 Feb 2023 14:57:09 +0000 (16:57 +0200)]
; Minor copyedit of NEWS wrt *-ts-modes

* etc/NEWS: Add desktop.el caveat for when restarting after trying
the *-ts-modes.  Suggested by Alan Mackenzie <acm@muc.de>.

22 months ago* lisp/calc/calc.el (calc-mode): Improve docstring.
Stefan Kangas [Fri, 17 Feb 2023 14:23:19 +0000 (15:23 +0100)]
* lisp/calc/calc.el (calc-mode): Improve docstring.

22 months ago; Improve and update documentation of native compilation
Eli Zaretskii [Fri, 17 Feb 2023 14:15:51 +0000 (16:15 +0200)]
; Improve and update documentation of native compilation

* src/comp.c (syms_of_comp) <native-comp-enable-subr-trampolines>
<native-comp-eln-load-path>: Doc fixes.

* lisp/emacs-lisp/comp.el (native-comp-never-optimize-functions):
Doc fix.

* doc/lispref/compile.texi (Native-Compilation Variables):
Document 'native-comp-jit-compilation' and
'native-comp-enable-subr-trampolines'.

22 months agoBump Emacs version to 28.3
Stefan Kangas [Fri, 17 Feb 2023 10:07:42 +0000 (11:07 +0100)]
Bump Emacs version to 28.3

* README:
* configure.ac:
* msdos/sed2v2.inp:
* nt/README.W32: Bump Emacs version to 28.3.

22 months agoUpdate ChangeLog and AUTHORS for Emacs 28.3
Stefan Kangas [Fri, 17 Feb 2023 09:43:58 +0000 (10:43 +0100)]
Update ChangeLog and AUTHORS for Emacs 28.3

* ChangeLog.3:
* etc/AUTHORS: Update for Emacs 28.3.

22 months agoUpdate HISTORY for Emacs 28.3
Stefan Kangas [Fri, 17 Feb 2023 10:09:17 +0000 (11:09 +0100)]
Update HISTORY for Emacs 28.3

22 months agoUpdate NEWS for Emacs 28.3
Stefan Kangas [Fri, 17 Feb 2023 10:01:27 +0000 (11:01 +0100)]
Update NEWS for Emacs 28.3

* etc/NEWS: Update for Emacs 28.3.

22 months agoFix etags local command injection vulnerability
lu4nx [Tue, 6 Dec 2022 07:42:40 +0000 (15:42 +0800)]
Fix etags local command injection vulnerability

* lib-src/etags.c: (escape_shell_arg_string): New function.
(process_file_name): Use it to quote file names passed to the
shell.  (Bug#59817)

(cherry picked from commit 01a4035c869b91c153af9a9132c87adb7669ea1c)

22 months agoFixed ctags local command execute vulnerability
lu4nx [Fri, 25 Nov 2022 06:38:29 +0000 (14:38 +0800)]
Fixed ctags local command execute vulnerability

* lib-src/etags.c:

(clean_matched_file_tag): New function
(do_move_file): New function
(readline_internal):
Add `leave_cr` parameter, if true, include the \r character

* test/manual/etags/CTAGS.good_crlf: New file
* test/manual/etags/CTAGS.good_update: New file
* test/manual/etags/crlf: New file
* test/manual/etags/Makefile: Add `ctags -u` test cases

(cherry picked from commit d48bb4874bc6cd3e69c7a15fc3c91cc141025c51)

22 months agoFix ruby-mode.el local command injection vulnerability (bug#60268)
Xi Lu [Fri, 23 Dec 2022 04:52:48 +0000 (12:52 +0800)]
Fix ruby-mode.el local command injection vulnerability (bug#60268)

* lisp/progmodes/ruby-mode.el
(ruby-find-library-file): Fix local command injection vulnerability.

(cherry picked from commit 9a3b08061feea14d6f37685ca1ab8801758bfd1c)

22 months agoFix htmlfontify.el command injection vulnerability.
Xi Lu [Sat, 24 Dec 2022 08:28:54 +0000 (16:28 +0800)]
Fix htmlfontify.el command injection vulnerability.

* lisp/htmlfontify.el (hfy-text-p): Fix command injection
vulnerability.  (Bug#60295)

(cherry picked from commit 1b4dc4691c1f87fc970fbe568b43869a15ad0d4c)

22 months agoMerge 'emacs-29' into 'feature/inhibit-native-comp-cleanup'
Andrea Corallo [Fri, 17 Feb 2023 10:14:38 +0000 (11:14 +0100)]
Merge 'emacs-29' into 'feature/inhibit-native-comp-cleanup'

22 months agoFix order of faces in 'face-list'
Eli Zaretskii [Fri, 17 Feb 2023 08:27:39 +0000 (10:27 +0200)]
Fix order of faces in 'face-list'

* lisp/faces.el (frame-face-alist, face-list): Sort faces in
decreasing order of face IDs.  Patch by Brennan Vincent
<brennan@umanwizard.com>.  (Bug#61521)

Copyright-paperwork-exempt: yes