]> git.eshelyaron.com Git - emacs.git/log
emacs.git
17 months ago; * etc/EGLOT-NEWS (Upcoming 1.14): Update.
João Távora [Sun, 2 Apr 2023 23:00:18 +0000 (00:00 +0100)]
; * etc/EGLOT-NEWS (Upcoming 1.14): Update.

17 months agoEldoc: bump package version to 1.14.0
João Távora [Sun, 2 Apr 2023 22:40:31 +0000 (23:40 +0100)]
Eldoc: bump package version to 1.14.0

* lisp/emacs-lisp/eldoc.el (Version): Bump to 1.14.0

17 months ago; Eldoc: fix doc of e-d-functions w.r.t. :origin keyword
João Távora [Sun, 2 Apr 2023 22:38:37 +0000 (23:38 +0100)]
; Eldoc: fix doc of e-d-functions w.r.t. :origin keyword

* lisp/emacs-lisp/eldoc.el (eldoc-documentation-functions): Fix.

17 months ago; Eglot: removed unused dependency on 'array.el'
João Távora [Sun, 2 Apr 2023 22:33:23 +0000 (23:33 +0100)]
; Eglot: removed unused dependency on 'array.el'

* lisp/progmodes/eglot.el (array): Don't require

17 months agoEglot: load built-in GNU ELPA dependencies explicitly
João Távora [Sun, 2 Apr 2023 22:31:10 +0000 (23:31 +0100)]
Eglot: load built-in GNU ELPA dependencies explicitly

Because of outstanding bug#62576, it's way to easy for users to get
confused by the M-x package-install process for Eglot.

Whenever an Eglot release depends on a new version of a GNU ELPA :core
package which is _also_ provided built-in, M-x package-install will
install that dependency, but will not always load it on top of the
built-in one.

The solution is to not use "require" for now.  This may potentially
lead to double "loads", but that should in principle be idempotent.

* lisp/progmodes/eglot.el (project, eldoc, seq, flymake, xref, jsonrpc)
(external-completion): Load, don't require.

17 months agoEglot: improve caching in eglot-completion-at-point
João Távora [Wed, 29 Mar 2023 18:30:04 +0000 (19:30 +0100)]
Eglot: improve caching in eglot-completion-at-point

When answering the :textDocument/completion request, LSP servers
provide a :isIncomplete flag in the response, which allows Eglot to
know if "further typing should result in recomputing [the completions]
list.

If :isIncomplete is false (i.e. the full set was returned), Eglot
caches the response in a global variable eglot--capf-cache that
persists for the duration of the "completion session", taken to be the
interval between two calls to completion-in-region-mode.

If the cache has been set, and Eglot detects that "further typing" has
happened, it is safe to use the cache instead of making a request to
the server.

Thus eglot--capf-cache-flush, added to completion-in-region-mode-hook,
is used to flush this cache.  Since the popular Company completion
package doesn't use completion-in-region-mode, eglot--capf-cache-flush
is also added to its company-after-completion-hook.

* lisp/progmodes/eglot.el (eglot--managed-mode): Set
'completion-in-region-mode-hook and company-after-completion-hook.
(eglot--capf-cache): New variable.
(eglot--capf-cache-flush): New function.
(eglot-completion-at-point): Rework.

* etc/EGLOT-NEWS: Update.

17 months agoEglot: take advantage of new Eldoc options for signature doc
João Távora [Sat, 25 Mar 2023 19:53:14 +0000 (19:53 +0000)]
Eglot: take advantage of new Eldoc options for signature doc

Only echo the "active signature", send all the other signatures for
the *eldoc* buffer.

* lisp/progmodes/eglot.el (eglot--sig-info): Rework protocol.
(eglot-signature-eldoc-function): Rework.

17 months agoEglot: declare support for markdown also for signatures
João Távora [Fri, 24 Mar 2023 22:17:44 +0000 (22:17 +0000)]
Eglot: declare support for markdown also for signatures

* lisp/progmodes/eglot.el
(eglot--accepted-formats): new helper.
(eglot-client-capabilities): use it.

17 months agoEglot: define eglot--ensure-list with defalias
João Távora [Fri, 24 Mar 2023 22:16:49 +0000 (22:16 +0000)]
Eglot: define eglot--ensure-list with defalias

This avoids annoying obsoletion warnings when compiling the whole buffer.

* lisp/progmodes/eglot.el (eglot--ensure-list): define with defalias.

17 months agoEglot: remove hacky advice of jsonrpc-request
João Távora [Wed, 29 Mar 2023 21:48:54 +0000 (22:48 +0100)]
Eglot: remove hacky advice of jsonrpc-request

The vast majority of Eglot sync requests to the server need to inform
the server of any pending changes to the buffer beforehand, so that
the server has up-to-date information to do its job.

But doing so at the expense of ugly advice of jsonrpc-request is ill
advised.  Introduce eglot--request helper instead and use that.

Use this opportunity to conduct a review of Eglot sync requests and
come to the conclusion that all need to send any changes beforehand.
Nevertheless, an IMMEDIATE kwarg to eglot--request was added to
bypassing this.

* lisp/progmodes/eglot.el
(eglot--request): New helper.
(eglot-shutdown)
(eglot-execute-command)
(eglot-workspace-configuration)
(eglot--signal-textDocument/willSave)
(eglot--workspace-symbols)
(eglot--lsp-xrefs-for-method)
(xref-backend-apropos)
(eglot-format)
(eglot-completion-at-point)
(eglot-imenu)
(eglot-rename)
(eglot-code-actions): Use eglot--request.

17 months agoUse the 'interactive' spec to set arguments for 'eshell-command'
Jim Porter [Fri, 31 Mar 2023 02:38:30 +0000 (19:38 -0700)]
Use the 'interactive' spec to set arguments for 'eshell-command'

* lisp/eshell/eshell.el (eshell-read-command): New function...
(eshell-command): ... use it.  Additionally, require the COMMAND
argument, and rename ARG to TO-CURRENT-BUFFER.

17 months agoFix using background commands in 'eshell-command'
Jim Porter [Fri, 31 Mar 2023 02:31:30 +0000 (19:31 -0700)]
Fix using background commands in 'eshell-command'

This regressed due to the patch for bug#53715, which changed how
Eshell pipelines return the processes in the pipeline (bug#62556).

* lisp/eshell/esh-cmd.el (eshell-parse-command): When creating
background commands, wrap the process(es) in a cons cell whose CAR is
':eshell-background'.  This lets us use fewer heuristics...
(eshell-eval-command): ... here.  Additionally, keep the result and
the incomplete delimiter separate.

* lisp/eshell/eshell.el (eshell-command): Check ':eshell-background'
and use a more-robust method for setting the output target.

* test/lisp/eshell/eshell-tests.el (eshell-test/eshell-command/simple)
(eshell-test/eshell-command/pipeline)
(eshell-test/eshell-command/background)
(eshell-test/eshell-command/background-pipeline): New tests.

17 months agolisp/simple.el (inhibit-auto-fill): New var
Stefan Monnier [Sun, 2 Apr 2023 21:54:02 +0000 (17:54 -0400)]
lisp/simple.el (inhibit-auto-fill): New var

* lisp/simple.el (inhibit-auto-fill): New var.
(internal-auto-fill): Obey it.
(newline): Use it instead of binding `auto-fill-function`, so
as to avoid messing up the state if something wants to enable/disable
`auto-fill-mode` during the course of the let binding (bug#62419).

17 months agosrc/eval.c: Fix bug#62419
Stefan Monnier [Sun, 2 Apr 2023 21:45:58 +0000 (17:45 -0400)]
src/eval.c: Fix bug#62419

Yup, almost 40 years after ELisp first combined them, buffer-local
and let bindings still don't work quite right :-(

The "automatically buffer-local if set" semantics should follow the
principle that it becomes buffer-local iff the var's current binding
refers to the top-level/global/non-let binding.

* src/eval.c (let_shadows_buffer_binding_p): Disregard non-global
let-bindings.

* test/src/eval-tests.el (eval-test--bug62419): New test.

17 months ago; Add tests for synchronous processes in Eshell
Jim Porter [Sat, 1 Apr 2023 04:32:44 +0000 (21:32 -0700)]
; Add tests for synchronous processes in Eshell

Normally, Eshell only uses synchronous processes on MS-DOS, so this is
hard to test.  To get around this, let the tests explicitly request
synchronous processes.

* lisp/eshell/esh-proc.el (eshell-supports-asynchronous-processes):
New variable...
(eshell-gather-process-output): ... use it, and remove some incorrect
code updating Eshell's internal markers (the async code path doesn't
do this, so neither should the sync path).

* lisp/eshell/esh-cmd.el (eshell-execute-pipeline): Use
'eshell-supports-asynchronous-processes'.

* test/lisp/eshell/esh-proc-tests.el
(esh-proc-test/emacs-command): New function.
(esh-proc-test/emacs-echo, esh-proc-test/emacs-upcase): New variables.
(esh-proc-test/synchronous-proc/simple/interactive)
(esh-proc-test/synchronous-proc/simple/command-result)
(esh-proc-test/synchronous-proc/pipeline/interactive)
(esh-proc-test/synchronous-proc/pipeline/command-result): New tests.

17 months agoAvoid shadowing variables in some Eshell command forms
Jim Porter [Sun, 19 Mar 2023 02:18:28 +0000 (19:18 -0700)]
Avoid shadowing variables in some Eshell command forms

* lisp/eshell/esh-cmd.el (eshell-rewrite-for-command): Make
'for-items' an uninterned symbol.
(eshell-as-subcommand): Correct docstring.
(eshell-do-command-to-value): Mark obsolete.
(eshell-command-to-value): Move binding of 'value' outside of the
macro's result, and remove call to 'eshell-do-command-to-value'.

* test/lisp/eshell/esh-cmd-tests.el
(esh-cmd-test/subcommand-shadow-value)
(esh-cmd-test/for-loop-for-items-shadow): New tests.
(esh-cmd-test/for-name-loop, esh-cmd-test/for-name-shadow-loop):
Rename to...
(esh-cmd-test/for-loop-name, esh-cmd-test/for-loop-name-shadow):
... these.

17 months agoAdd some icons (bug#62562)
Yuan Fu [Fri, 31 Mar 2023 04:58:05 +0000 (21:58 -0700)]
Add some icons (bug#62562)

* etc/images/symbols/README: New file.
* etc/images/symbols/*.svg: New icons.

17 months ago; * src/fns.c: Use if instead of #ifdef
Mattias Engdegård [Sat, 1 Apr 2023 08:53:50 +0000 (10:53 +0200)]
; * src/fns.c: Use if instead of #ifdef

* src/fns.c (HAVE_FAST_UNALIGNED_ACCESS, load_unaligned_size_t):
Always define these.
(Fstring_lessp): Use if instead of #ifdef.

17 months ago; * src/fns.c (HAVE_FAST_UNALIGNED_ACCESS): Check in missing edit.
Po Lu [Sat, 1 Apr 2023 06:25:47 +0000 (14:25 +0800)]
; * src/fns.c (HAVE_FAST_UNALIGNED_ACCESS): Check in missing edit.

17 months ago; * src/fns.c (Fstring_lessp): Fix coding style.
Po Lu [Sat, 1 Apr 2023 06:24:22 +0000 (14:24 +0800)]
; * src/fns.c (Fstring_lessp): Fix coding style.

17 months ago; * src/fns.c (Fstring_lessp): Port to RISCs.
Po Lu [Sat, 1 Apr 2023 06:23:32 +0000 (14:23 +0800)]
; * src/fns.c (Fstring_lessp): Port to RISCs.

17 months agoUpdate publicsuffix.txt from upstream
Stefan Kangas [Sat, 1 Apr 2023 04:00:47 +0000 (06:00 +0200)]
Update publicsuffix.txt from upstream

* etc/publicsuffix.txt: Update from
https://publicsuffix.org/list/public_suffix_list.dat
dated 2023-03-18 16:17:52 UTC.

17 months ago; Auto-commit of loaddefs files.
Stefan Kangas [Sat, 1 Apr 2023 03:10:48 +0000 (05:10 +0200)]
; Auto-commit of loaddefs files.

17 months agoAllow null date in gnus-icalendar-event--decode-datefield
Andrew G Cohen [Thu, 16 Mar 2023 10:43:35 +0000 (18:43 +0800)]
Allow null date in gnus-icalendar-event--decode-datefield

* lisp/gnus/gnus-icalendar.el:
(gnus-icalendar-event--decode-datefield): Don't throw an error if the
event date is missing.

17 months agoReset 'gnus-current-window-configuration' on edit-form exit.
Andrew G Cohen [Thu, 9 Mar 2023 08:05:31 +0000 (16:05 +0800)]
Reset 'gnus-current-window-configuration' on edit-form exit.

* lisp/gnus/gnus.el: New variable gnus-prev-cwc.
* lisp/gnus/gnus-art.el (gnus-article-edit-mode):
New local variable gnus-prev-cwc.
(gnus-article-edit-article):  Store original
gnus-current-window-configuration as gnus-prev-cwc.
(gnus-article-edit-done, gnus-article-edit-exit): Restore
gnus-current-window-configuration from gnus-prev-cwc.
* lisp/gnus/gnus-eform.el (gnus-edit-form-mode):
New local variable gnus-prev-cwc.
(gnus-edit-form):  Store original
gnus-current-window-configuration as gnus-prev-cwc.
(gnus-edit-form-done, gnus-edit-form-exit): Restore
gnus-current-window-configuration from gnus-prev-cwc.

17 months agoUse completion when mark limiting in gnus summary buffers
Andrew G Cohen [Sun, 13 Mar 2022 23:59:25 +0000 (07:59 +0800)]
Use completion when mark limiting in gnus summary buffers

* lisp/gnus/gnus-sum.el (gnus-summary-limit-to-marks)
(gnus-summary-limit-exclude-marks): Use completing-read to complete on
marks in the current summary buffer.

17 months agoTrack article while moving between gnus groups
Andrew G Cohen [Sun, 13 Mar 2022 23:47:39 +0000 (07:47 +0800)]
Track article while moving between gnus groups

* lisp/gnus/gnus-sum.el (gnus-current-move-article): New variable to
track article while moving.
(gnus-summary-move-article): Set gnus-current-move-article when
moving/copying/crossposting or respooling.

17 months agoMake string-lessp vectorisation safer
Mattias Engdegård [Fri, 31 Mar 2023 18:13:18 +0000 (20:13 +0200)]
Make string-lessp vectorisation safer

Use memcpy for loading unaligned words on platforms where this can be
done efficiently.  This guards against problems arising from future
compiler autovectorisation improvements that might cause instructions
that require aligned addresses to be emitted, and should also work
with an address sanitiser enabled.

* src/fns.c (HAVE_FAST_UNALIGNED_ACCESS): Only define when optimising.
(load_unaligned_size_t): New.
(Fstring_lessp): Use load_unaligned_size_t.
* src/lisp.h (UNALIGNED_LOAD_SIZE): Remove now unused macro.

17 months agoAllow old input to include continuation lines in shell-mode
Bob Rogers [Fri, 31 Mar 2023 07:57:32 +0000 (09:57 +0200)]
Allow old input to include continuation lines in shell-mode

* lisp/shell.el (shell-get-old-input-include-continuation-lines): New
defcustom (default nil).
(shell-get-old-input): New function.  Like
'comint-get-old-input-default' but include all continuation lines if
'shell-get-old-input-include-continuation-lines' is non-nil.
(shell-mode): Install shell-get-old-input.  (Bug#61069)

* etc/NEWS: Advertise the new defcustom.

17 months ago* test/infra/Dockerfile.emba (emacs-eglot): Adapt software selection.
Michael Albinus [Fri, 31 Mar 2023 12:17:54 +0000 (14:17 +0200)]
* test/infra/Dockerfile.emba (emacs-eglot): Adapt software selection.

17 months ago* lisp/net/tramp.el (tramp-accept-process-output): Use `with-local-quit'.
Michael Albinus [Fri, 31 Mar 2023 07:45:23 +0000 (09:45 +0200)]
* lisp/net/tramp.el (tramp-accept-process-output): Use `with-local-quit'.

17 months agoAdd treesit-node-get
Yuan Fu [Fri, 24 Mar 2023 20:13:05 +0000 (13:13 -0700)]
Add treesit-node-get

* doc/lispref/parsing.texi (Retrieving Nodes): Add manual entry.
* lisp/treesit.el (treesit-node--get): New function.

17 months ago; * test/lisp/dired-aux-tests.el: remove mistaken unwind-protect
Mattias Engdegård [Wed, 29 Mar 2023 20:16:37 +0000 (22:16 +0200)]
; * test/lisp/dired-aux-tests.el: remove mistaken unwind-protect

17 months agoRework zeroconf integration into tramp-gvfs.el
Michael Albinus [Wed, 29 Mar 2023 18:22:04 +0000 (20:22 +0200)]
Rework zeroconf integration into tramp-gvfs.el

* lisp/net/tramp-gvfs.el (tramp-gvfs-enabled): Do not check for
:system bus.
(tramp-gvfs-mounttypes): New defconst.
(tramp-gvfs-maybe-open-connection): Use it.
(top): Call zeroconf only when :system bus is available.

17 months agoAvoid unwind-protect without unwind forms in cl-letf
Mattias Engdegård [Wed, 29 Mar 2023 15:03:31 +0000 (17:03 +0200)]
Avoid unwind-protect without unwind forms in cl-letf

* lisp/emacs-lisp/cl-macs.el (cl--letf): Use unwind-protect only if
necessary, avoiding a warning.

17 months agoWarn about unwind-protect without unwind forms
Mattias Engdegård [Wed, 29 Mar 2023 11:21:26 +0000 (13:21 +0200)]
Warn about unwind-protect without unwind forms

`unwind-protect` without unwind forms is not just pointless but often
indicates a mistake where the intended unwind part is misplaced, as in

    (unwind-protect (progn PROT-FORMS UNWIND-FORMS))   ; oops

or

    (unwind-protect PROT-FORM) UNWIND-FORMS            ; also oops

or entirely forgotten for that matter.  Warning about this makes
sense, and the warning can always be silenced by removing the
`unwind-protect` altogether if it shouldn't be there in the first
place.

* lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Implement
warning.
* etc/NEWS: Announce.
* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp-test--with-suppressed-warnings): Add test case.

17 months agoFix D-Bus event loop when executing a keyboard macro
Michael Albinus [Wed, 29 Mar 2023 14:10:29 +0000 (16:10 +0200)]
Fix D-Bus event loop when executing a keyboard macro

* lisp/net/dbus.el (dbus-call-method): Don't loop for events when
`executing-kbd-macro' is non-nil.  (Bug#62018)

17 months agoAdd clojure-ts-mode to eglot-server-programs
dannyfreeman [Sat, 25 Mar 2023 19:13:41 +0000 (15:13 -0400)]
Add clojure-ts-mode to eglot-server-programs

* lisp/progmodes/eglot.el (eglot-server-programs): Add
clojure-ts-mode.  (Bug#62449)

17 months ago* test/infra/Dockerfile.emba (emacs-eglot): Adapt software selection.
Michael Albinus [Wed, 29 Mar 2023 11:18:15 +0000 (13:18 +0200)]
* test/infra/Dockerfile.emba (emacs-eglot): Adapt software selection.

17 months agoMerge from origin/emacs-29
Stefan Kangas [Wed, 29 Mar 2023 04:30:09 +0000 (06:30 +0200)]
Merge from origin/emacs-29

3965c65d5e2 ; * lisp/subr.el (read-char-choice): Fix last change.
c1eac5b6586 Improve documentation of 'read-choice' and related symbols
a8c9283e170 Revert "Comp fix calls to redefined primtives with op-byt...
8b66d8abd01 Revert "* lisp/emacs-lisp/comp.el (comp-emit-set-call-sub...
4ec4f614c71 ; Fix incompatibility in 'display-buffer-assq-regexp'
ba3ade58f3b Skip ruby-ts-imenu-index test if needed
9133446db87 Fix Eglot Tramp tests on EMBA
5b351bc7fa9 * test/infra/Dockerfile.emba (emacs-gnustep): Instrument ...

17 months agoruby-ts-mode: Rehash which nodes should be treated as sexps
Dmitry Gutov [Tue, 28 Mar 2023 22:08:55 +0000 (01:08 +0300)]
ruby-ts-mode: Rehash which nodes should be treated as sexps

* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode): Recognize smaller
syntactic elements as sexps too (bug#62416).  Also do that for
heredocs, regexps and symbol arrays.  But drop binary expressions
(including assignments) since they led to non-intuitive behavior.

17 months agoAvoid parsing some Eshell forms when performing completion
Jim Porter [Tue, 21 Mar 2023 00:25:54 +0000 (17:25 -0700)]
Avoid parsing some Eshell forms when performing completion

During completion, we want to evaluate most Eshell forms
(e.g. variable references), but skip others (e.g. globbing,
subcommands).  For globbing, we want to pass the literal glob to
Pcomplete so it can use the glob for selecting completion candidates.
For subcommands (including Lisp forms), we especially want to avoid
evaluation, since they can produce arbitary side effects!  (Bug#50470)

* lisp/eshell/esh-cmd.el (eshell-allow-commands): New variable...
(eshell-commands-forbidden): New error...
(eshell-named-command, eshell-lisp-command): ... use them.

* lisp/eshell/em-cmpl.el (eshell-complete--eval-argument-form):
Disallow command forms and handle errors ourselves.
(eshell-complete-parse-arguments): Don't parse glob characters.

* test/lisp/eshell/em-cmpl-tests.el
(em-cmpl-test/parse-arguments/unevaluated-subcommand)
(em-cmpl-test/parse-arguments/unevaluated-lisp-form)
(em-cmpl-test/parse-arguments/unevaluated-inner-subcommand)
(em-cmpl-test/file-completion/glob, em-cmpl-test/command-completion)
(em-cmpl-test/subcommand-completion): New tests.
(em-cmpl-test/parse-arguments/pipeline): Remove superfluous
let-binding.
(em-cmpl-test/file-completion/after-list): Use a list variable rather
than a subexpression; the latter is no longer evaluated during
completion.
(em-cmpl-test/lisp-function-completion): Check "$(func)" syntax.

17 months agoSimplify parsing subcommands slightly
Jim Porter [Tue, 21 Mar 2023 00:25:24 +0000 (17:25 -0700)]
Simplify parsing subcommands slightly

This mainly reduces some overly-deep indentation, but also fixes some
minor issues with the "$<subcmd>" form: it unnecessarily added " >
TEMP" (we already set this later via 'eshell-create-handles'), and it
didn't properly unescape inner double quotes.

* lisp/eshell/esh-cmd.el (eshell-parse-subcommand-argument): Simplify.

* lisp/eshell/esh-var.el (eshell-parse-variable-ref): Simplify and
fix edge cases in "$<subcmd>".

* test/lisp/eshell/esh-var-tests.el
(esh-var-test/quoted-interp-temp-cmd): Adjust test to check behavior
of inner double quotes.

17 months ago; Fix an edge case in how 'eshell-do-eval' handles 'let' bodies
Jim Porter [Tue, 21 Mar 2023 00:24:28 +0000 (17:24 -0700)]
; Fix an edge case in how 'eshell-do-eval' handles 'let' bodies

* lisp/eshell/esh-cmd.el (ehell-do-eval): Use 'car-safe'; the object
in question might not be a cons cell.

17 months ago; * lisp/subr.el (read-char-choice): Fix last change.
Eli Zaretskii [Tue, 28 Mar 2023 18:31:51 +0000 (21:31 +0300)]
; * lisp/subr.el (read-char-choice): Fix last change.

17 months agoImprove documentation of 'read-choice' and related symbols
Eli Zaretskii [Tue, 28 Mar 2023 18:08:12 +0000 (21:08 +0300)]
Improve documentation of 'read-choice' and related symbols

* doc/lispref/commands.texi (Reading One Event):
* lisp/subr.el (read-char-choice-use-read-key, read-char-choice)
(read-char-choice-with-read-key, y-or-n-p-use-read-key): Improve
documentation of these functions and variables.

17 months agoRevert "Comp fix calls to redefined primtives with op-bytecode (bug#61917)"
Andrea Corallo [Tue, 28 Mar 2023 12:56:47 +0000 (14:56 +0200)]
Revert "Comp fix calls to redefined primtives with op-bytecode (bug#61917)"

This reverts commit 263d6c38539691c954f4c3057cbe8d5468499b91.

These patch series caused a number of regression and more analysis is
required.

17 months agoRevert "* lisp/emacs-lisp/comp.el (comp-emit-set-call-subr): Improve..."
Andrea Corallo [Tue, 28 Mar 2023 12:56:37 +0000 (14:56 +0200)]
Revert "* lisp/emacs-lisp/comp.el (comp-emit-set-call-subr): Improve..."

This reverts commit 4a7a0c9a9f521b04b23580901e9c0a662b504e32.

These patch series caused a number of regression and more analysis is
required.

17 months ago; Fix incompatibility in 'display-buffer-assq-regexp'
Eli Zaretskii [Tue, 28 Mar 2023 11:08:29 +0000 (14:08 +0300)]
; Fix incompatibility in 'display-buffer-assq-regexp'

* lisp/window.el (display-buffer-assq-regexp): Make it accept a
buffer's name again, as it did in Emacs 28.  This makes computing
the buffer's name inside the function unnecessary.
(display-buffer): Always pass the buffer's name to
'display-buffer-assq-regexp'.  (Bug#62417)

17 months agoSkip ruby-ts-imenu-index test if needed
Michael Albinus [Tue, 28 Mar 2023 11:04:09 +0000 (13:04 +0200)]
Skip ruby-ts-imenu-index test if needed

* test/lisp/progmodes/ruby-ts-mode-tests.el (ruby-ts-imenu-index):
Add check for treesitter.

17 months agoFix Eglot Tramp tests on EMBA
Michael Albinus [Tue, 28 Mar 2023 10:43:01 +0000 (12:43 +0200)]
Fix Eglot Tramp tests on EMBA

* test/lisp/progmodes/eglot-tests.el (eglot--call-with-tramp-test):
Bind `tramp-allow-unsafe-temporary-files' with t.  (Bug#62289)

17 months ago* test/infra/Dockerfile.emba (emacs-gnustep): Instrument "make V=1 ...".
Michael Albinus [Tue, 28 Mar 2023 07:38:07 +0000 (09:38 +0200)]
* test/infra/Dockerfile.emba (emacs-gnustep): Instrument "make V=1 ...".

17 months agoFix expansion of globs that contain a ~USER reference
Jim Porter [Tue, 28 Mar 2023 03:58:55 +0000 (20:58 -0700)]
Fix expansion of globs that contain a ~USER reference

This regressed from the fix to bug#28064, and was discovered here:
<https://lists.gnu.org/archive/html/bug-gnu-emacs/2023-03/msg01744.html>.

* lisp/eshell/em-dirs.el (eshell-expand-user-reference): Let FILE be a
list, and move the implementation to...
(eshell-expand-user-reference-1): ... here.

* lisp/eshell/em-glob.el (eshell-add-glob-modifier): Remove special
handling for expanding user references; it's better to keep it in
"em-dirs.el".

17 months agoEnable ASLR for dynamic libraries on Cygwin
Ken Brown [Sun, 26 Mar 2023 19:02:30 +0000 (15:02 -0400)]
Enable ASLR for dynamic libraries on Cygwin

This seems to avoid the fork failures described in etc/PROBLEMS
("Fork failures in a build with native compilation").

* lisp/treesit.el (treesit--install-language-grammar-1):
* lisp/emacs-lisp/comp.el (native-comp-driver-options): Add the
linker flag "-Wl,-dynamicbase" on Cygwin.

17 months agoMerge from origin/emacs-29
Stefan Monnier [Mon, 27 Mar 2023 21:16:59 +0000 (17:16 -0400)]
Merge from origin/emacs-29

edc460e3b6c Fix accidental backward-incompatible change (bug#62417)
cbef1422fe3 ruby-ts-mode: Fix/simplify Imenu index generation
a0d5fba74a6 (ruby-ts--align-chain): Use 'equal' to check for an exact...

17 months ago; Merge from origin/emacs-29
Stefan Monnier [Mon, 27 Mar 2023 21:16:59 +0000 (17:16 -0400)]
; Merge from origin/emacs-29

The following commit was skipped:

f631c90e791 ; Use string-search instead of string-match[-p] in ruby-t...

17 months agoMerge from origin/emacs-29
Stefan Monnier [Mon, 27 Mar 2023 21:16:59 +0000 (17:16 -0400)]
Merge from origin/emacs-29

0337131bfa1 Update to Transient v0.3.7-218-g3dbb22a
a8c23677d39 Update to Org 9.6.2
45b16bfb496 Skip failing tests on Cygwin with native compilation (bug...
8b4a494d8d4 Fix GNUSTEP tests on EMBA

# Conflicts:
# test/infra/gitlab-ci.yml

17 months ago; Merge from origin/emacs-29
Stefan Monnier [Mon, 27 Mar 2023 21:16:58 +0000 (17:16 -0400)]
; Merge from origin/emacs-29

The following commit was skipped:

a952bdd6af0 Fix primary selection modification during `term-mouse-pas...

17 months agoMerge from origin/emacs-29
Stefan Monnier [Mon, 27 Mar 2023 21:16:58 +0000 (17:16 -0400)]
Merge from origin/emacs-29

b08bf828605 ; Fix :version of the new defcustom
d941666d859 ; Fix last change
e19b7da7b09 Add 'eww-default-download-directory'.
564c26bdbeb ; Fix edebug spec for 'gv-define-simple-setter' (bug#62256)

17 months ago; Merge from origin/emacs-29
Stefan Monnier [Mon, 27 Mar 2023 21:16:58 +0000 (17:16 -0400)]
; Merge from origin/emacs-29

The following commits were skipped:

9107b2dec1f * doc/lispref/modes.texi: Improve docs for obsolete '%m' ...
59b7086838e Improve docs for global-mode-string / %M construct
207176e6b1c * src/buffer.c (mode-line-format): Document %o and %q con...
9cfae822fb3 * src/buffer.c (mode-line-format): Remove docs for obsole...

17 months agoMerge from origin/emacs-29
Stefan Monnier [Mon, 27 Mar 2023 21:16:58 +0000 (17:16 -0400)]
Merge from origin/emacs-29

8f42db010d1 Improve indenting "case" in Python
c4d490490dc ; * test/src/fns-tests.el: Fix last change
875e77a66a6 * test/infra/Dockerfile.emba (emacs-native-comp): Add zli...
64a2b0d36fe Fix failure of fns-tests-collate-strings on Cygwin
90fc6b987ad * lisp/savehist.el (savehist-save): Preserve shared struc...
08fbc133756 Adapt Tramp manual
accb3871668 Fix system time sampling on MS-Windows
33d436eefa1 Fix treesit_ensure_parsed (bug#62333)
d93a439846f * lisp/help-fns.el (find-lisp-object-file-name): Fix bug#...
be8147c53f9 Improve "Bugs" in the Emacs manual

17 months ago; Merge from origin/emacs-29
Stefan Monnier [Mon, 27 Mar 2023 21:16:58 +0000 (17:16 -0400)]
; Merge from origin/emacs-29

The following commit was skipped:

82523dc621a Fix Eglot progress reporting

17 months agoMerge commit '1bc9dfc5bee'
Stefan Monnier [Mon, 27 Mar 2023 21:14:27 +0000 (17:14 -0400)]
Merge commit '1bc9dfc5bee'

17 months ago* test/infra/Dockerfile.emba (emacs-eglot): Adapt software selection.
Michael Albinus [Mon, 27 Mar 2023 16:32:49 +0000 (18:32 +0200)]
* test/infra/Dockerfile.emba (emacs-eglot): Adapt software selection.

17 months agoFix Tramp error messages
Michael Albinus [Mon, 27 Mar 2023 13:46:44 +0000 (15:46 +0200)]
Fix Tramp error messages

* lisp/net/tramp.el:
* lisp/net/tramp-cmds.el:
* lisp/net/tramp-crypt.el:
* lisp/net/tramp-gvfs.el:
* lisp/net/tramp-sh.el:
* lisp/net/tramp-smb.el: Fix error messages.

17 months agoFix accidental backward-incompatible change (bug#62417)
João Távora [Mon, 27 Mar 2023 11:25:16 +0000 (12:25 +0100)]
Fix accidental backward-incompatible change (bug#62417)

This code used to work, but with the change of 59ecf25fc860 it stopped
working:

   (defun foop (buffer-name _alist) (string-match "foop" buffer-name))
   (add-to-list 'display-buffer-alist '(foop . display-buffer-other-frame))

This change makes it work again, restoring compatibility.

* lisp/subr.el (buffer-match-p): Fix and adjust docstring.
* lisp/window.el (display-buffer-alist): Adjust docstring.
(display-buffer-assq-regexp): Make good on promise of display-buffer-alist.

17 months agoruby-ts-mode: Fix/simplify Imenu index generation
Dmitry Gutov [Mon, 27 Mar 2023 00:49:13 +0000 (03:49 +0300)]
ruby-ts-mode: Fix/simplify Imenu index generation

* lisp/progmodes/ruby-ts-mode.el (ruby-ts--full-name): Drop '#'
from the end of resulting string when the node is not a method.
Support 'singleton_method' nodes.
(ruby-ts--imenu-helper): Simplify, to create a "flat" list of
entries, rather than a nested one.  The previous implementation
had problems (like producing a nested structure of full-qualified
names, thus creating a lot of textual repetition), seems easier to
just follow ruby-mode's example here, at least for Emacs 29's
release.

* test/lisp/progmodes/ruby-ts-mode-tests.el (ruby-ts-imenu-index):
New test.

17 months ago(ruby-ts--align-chain): Use 'equal' to check for an exact match
Dmitry Gutov [Sun, 26 Mar 2023 23:11:16 +0000 (02:11 +0300)]
(ruby-ts--align-chain): Use 'equal' to check for an exact match

* lisp/progmodes/ruby-ts-mode.el (ruby-ts--align-chain): Use
'equal' to check for an exact match rather than substring.

17 months ago; Use string-search instead of string-match[-p] in ruby-ts-mode.el
Mattias Engdegård [Sun, 26 Mar 2023 10:09:41 +0000 (12:09 +0200)]
; Use string-search instead of string-match[-p] in ruby-ts-mode.el

* lisp/progmodes/ruby-ts-mode.el (ruby-ts--align-chain):
Use the much faster string-search when just searching for a substring.

(cherry picked from commit 0724c6dbdaef2c549409836ba4f7999e05aa31fe)

17 months agoHave Xref inherit input method when reading identifiers
Philip Kaludercic [Sun, 26 Mar 2023 11:50:27 +0000 (13:50 +0200)]
Have Xref inherit input method when reading identifiers

* lisp/progmodes/xref.el (xref--read-identifier): Set
INHERIT-INPUT-METHOD flag to non-nil.  (Bug#61299)

17 months agoAdd option to register packages as projects
Philip Kaludercic [Tue, 14 Mar 2023 10:50:31 +0000 (11:50 +0100)]
Add option to register packages as projects

* lisp/emacs-lisp/package-vc.el (package-vc-register-as-project): Add
new option.
(project-remember-projects-under): Declare function for usage in
'package-vc--clone'.
(package-vc--clone): Respect 'package-vc-register-as-project'.
* etc/NEWS: Document the feature.

17 months agoUpdate to Transient v0.3.7-218-g3dbb22a
Jonas Bernoulli [Sun, 26 Mar 2023 21:53:03 +0000 (23:53 +0200)]
Update to Transient v0.3.7-218-g3dbb22a

17 months agoUpdate to Org 9.6.2
Kyle Meyer [Sun, 26 Mar 2023 21:01:14 +0000 (17:01 -0400)]
Update to Org 9.6.2

17 months ago* test/infra/Dockerfile.emba (emacs-eglot): Adapt software selection.
Michael Albinus [Sun, 26 Mar 2023 18:47:25 +0000 (20:47 +0200)]
* test/infra/Dockerfile.emba (emacs-eglot): Adapt software selection.

17 months agoAdd sanity check in tramp-gvfs.el
Michael Albinus [Sun, 26 Mar 2023 18:47:12 +0000 (20:47 +0200)]
Add sanity check in tramp-gvfs.el

* lisp/net/tramp-gvfs.el (tramp-gvfs-listmountableinfo)
(tramp-gvfs-listmounttypes): New defconst.
(tramp-gvfs-maybe-open-connection): Add sanity check whether GVFS
backend is available.

17 months agoImplement list-system-processes on Cygwin
Ken Brown [Sat, 25 Mar 2023 22:59:33 +0000 (18:59 -0400)]
Implement list-system-processes on Cygwin

* configure.ac (HAVE_PROCFS): Define to 1 on Cygwin.  (Bug#62462)

17 months agoSkip failing tests on Cygwin with native compilation (bug#62450)
Ken Brown [Sat, 25 Mar 2023 20:37:51 +0000 (16:37 -0400)]
Skip failing tests on Cygwin with native compilation (bug#62450)

* test/Makefile.in (TEST_NATIVE_COMP): New variable, used to
determine whether to run tests tagged with :nativecomp.  Set it to
"no" on Cygwin and to $(HAVE_NATIVE_COMP) otherwise.

* test/lisp/emacs-lisp/benchmark-tests.el (benchmark-tests): Skip
on Cygwin with native-compilation.

17 months agoFix GNUSTEP tests on EMBA
Michael Albinus [Sun, 26 Mar 2023 12:20:05 +0000 (14:20 +0200)]
Fix GNUSTEP tests on EMBA

* configure.ac (LIBS_GNUSTEP): Adapt CPPFLAGS and CFLAGS.  (Bug#62210)
Proposed by Po Lu <luangruo@yahoo.com>.

* test/infra/gitlab-ci.yml (build-image-gnustep)
(test-gnustep): Uncomment jobs.

17 months ago* lisp/term.el (term-mouse-paste) Do not treat as a yank command (bug#58608)
Phil Sainty [Sun, 26 Mar 2023 12:19:19 +0000 (01:19 +1300)]
* lisp/term.el (term-mouse-paste) Do not treat as a yank command (bug#58608)

This command sends the primary selection to the inferior process
rather than inserting it into the buffer, and it's entirely up to the
process as to whether anything at all gets inserted into the buffer as
a result, so this is not a `yank' as far as Emacs is concerned.

17 months agoFix primary selection modification during `term-mouse-paste' (bug#58608)
Phil Sainty [Sun, 26 Mar 2023 12:06:52 +0000 (01:06 +1300)]
Fix primary selection modification during `term-mouse-paste' (bug#58608)

* lisp/term.el (term-mouse-paste): Prevent the primary selection from
being changed in the process of sending it to the inferior process.

17 months agoFix primary selection modification during `term-mouse-paste' (bug#58608)
Phil Sainty [Sun, 26 Mar 2023 12:06:52 +0000 (01:06 +1300)]
Fix primary selection modification during `term-mouse-paste' (bug#58608)

* lisp/term.el (term-mouse-paste): Prevent the primary selection from
being changed in the process of sending it to the inferior process.

17 months agoFix 'go-ts-mode's incorrect docstring inserted for methods
Evgeni Kolev [Wed, 8 Feb 2023 15:16:02 +0000 (17:16 +0200)]
Fix 'go-ts-mode's incorrect docstring inserted for methods

The docstring inserted with go-ts-mode's C-c C-d was incorrectly
prefixed with the receiver "(myStruct).":

    // (myStruct).act
    func (m *myStruct) act () {...}

The above docstring is not correct because the receiver "myStruct"
should not be in the docstring.  This commit fixes the incorrect
behavior.
* lisp/progmodes/go-ts-mode.el (go-ts-mode--defun-name): New
optional argument SKIP-PREFIX.
(go-ts-mode-docstring): Call (go-ts-mode--defun-name t)
instead of (treesit-defun-name).  (Bug#62371)

17 months ago; Fix :version of the new defcustom
Eli Zaretskii [Sun, 26 Mar 2023 11:58:40 +0000 (14:58 +0300)]
; Fix :version of the new defcustom

17 months ago; Fix last change
Eli Zaretskii [Sun, 26 Mar 2023 11:56:57 +0000 (14:56 +0300)]
; Fix last change

* lisp/net/eww.el (eww-download-directory): Rename from
'eww-default-download-directory'.  All users changed.  Change
:type to be a directory.  Doc fix.  (Bug#62435)

17 months agoAdd 'eww-default-download-directory'.
Xi Lu [Sat, 25 Mar 2023 13:38:48 +0000 (21:38 +0800)]
Add 'eww-default-download-directory'.

* lisp/net/eww.el (eww-default-download-directory): New defcustom.
(eww--download-directory): Use it.  (Bug#62435)

17 months ago; Fix edebug spec for 'gv-define-simple-setter' (bug#62256)
Matus Goljer [Sun, 26 Mar 2023 11:20:19 +0000 (13:20 +0200)]
; Fix edebug spec for 'gv-define-simple-setter' (bug#62256)

17 months ago* src/buffer.c (mode-line-format): Reorder and reformat %-construct docs
Phil Sainty [Sun, 14 Aug 2022 11:17:38 +0000 (23:17 +1200)]
* src/buffer.c (mode-line-format): Reorder and reformat %-construct docs

The original formatting dates back to the earliest commits.  It saved
a few lines but was harder to follow.  As windows are typically taller
now than the terminals of the time, this reformatting now makes better
sense for readabiity.  See bug#57080.

* doc/lispref/modes.texi: Order change for consistency.  Add index.

17 months ago* doc/lispref/modes.texi: Improve docs for obsolete '%m' construct
Phil Sainty [Sun, 14 Aug 2022 11:16:48 +0000 (23:16 +1200)]
* doc/lispref/modes.texi: Improve docs for obsolete '%m' construct

Bug #57080.

17 months agoImprove docs for global-mode-string / %M construct
Phil Sainty [Sun, 14 Aug 2022 11:14:51 +0000 (23:14 +1200)]
Improve docs for global-mode-string / %M construct

* src/xdisp.c (global-mode-string): Update docstring.
* doc/lispref/modes.texi: Update manual.

17 months ago* src/buffer.c (mode-line-format): Document %o and %q constructs
Phil Sainty [Sun, 14 Aug 2022 11:11:43 +0000 (23:11 +1200)]
* src/buffer.c (mode-line-format): Document %o and %q constructs

Missed from commit b0b02ca7f3e06d0f092df6f81babd1277bf93b0f.

17 months ago* src/buffer.c (mode-line-format): Remove docs for obsolete %t construct
Phil Sainty [Sun, 14 Aug 2022 10:34:41 +0000 (22:34 +1200)]
* src/buffer.c (mode-line-format): Remove docs for obsolete %t construct

This documentation had been previously removed in 1999 in [1]
but was subsequently restored again in a different form in 2006
in [2] as the construct was still supported on some systems.
However it looks like it hasn't done what that documentation
indicated since [3] in 2011, and the final remnant of this
functionality was removed in [4] in 2013; so it seems clear that
it's no longer supported and shouldn't be documented now.

[1] commit 08de62001945d4dd32a3d6af44da05804cb296d5
[2] commit dafbe726b89a36010f3f24bb1efe4ace0a5f7f0f
[3] commit 05c652517317d10690aaf0a6aa0bc876382b9d82
[4] commit 8549f9e89bd9288c4c709d183a5bf8f07dbeed3d

17 months ago* doc/lispref/modes.texi: Improve docs for obsolete '%m' construct
Phil Sainty [Sun, 14 Aug 2022 11:16:48 +0000 (23:16 +1200)]
* doc/lispref/modes.texi: Improve docs for obsolete '%m' construct

Bug #57080.

17 months agoImprove docs for global-mode-string / %M construct
Phil Sainty [Sun, 14 Aug 2022 11:14:51 +0000 (23:14 +1200)]
Improve docs for global-mode-string / %M construct

* src/xdisp.c (global-mode-string): Update docstring.
* doc/lispref/modes.texi: Update manual.

17 months ago* src/buffer.c (mode-line-format): Document %o and %q constructs
Phil Sainty [Sun, 14 Aug 2022 11:11:43 +0000 (23:11 +1200)]
* src/buffer.c (mode-line-format): Document %o and %q constructs

Missed from commit b0b02ca7f3e06d0f092df6f81babd1277bf93b0f.

17 months ago* src/buffer.c (mode-line-format): Remove docs for obsolete %t construct
Phil Sainty [Sun, 14 Aug 2022 10:34:41 +0000 (22:34 +1200)]
* src/buffer.c (mode-line-format): Remove docs for obsolete %t construct

This documentation had been previously removed in 1999 in [1]
but was subsequently restored again in a different form in 2006
in [2] as the construct was still supported on some systems.
However it looks like it hasn't done what that documentation
indicated since [3] in 2011, and the final remnant of this
functionality was removed in [4] in 2013; so it seems clear that
it's no longer supported and shouldn't be documented now.

[1] commit 08de62001945d4dd32a3d6af44da05804cb296d5
[2] commit dafbe726b89a36010f3f24bb1efe4ace0a5f7f0f
[3] commit 05c652517317d10690aaf0a6aa0bc876382b9d82
[4] commit 8549f9e89bd9288c4c709d183a5bf8f07dbeed3d

17 months agoUse string-search instead of string-match[-p] when possible
Mattias Engdegård [Sun, 26 Mar 2023 10:09:41 +0000 (12:09 +0200)]
Use string-search instead of string-match[-p] when possible

* lisp/progmodes/c-ts-mode.el
(c-ts-mode--standalone-parent-skip-preproc):
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--align-chain):
* lisp/treesit.el (treesit-max-buffer-size)
(treesit--check-manual-coverage):
Use the much faster string-search when just searching for a substring.

17 months agoImprove indenting "case" in Python
kobarity [Sat, 25 Mar 2023 13:59:05 +0000 (22:59 +0900)]
Improve indenting "case" in Python

* lisp/progmodes/python.el (python-info-dedenter-statement-p): Do not
consider the first "case" in the block as dedenter.
* test/lisp/progmodes/python-tests.el
(python-info-dedenter-opening-block-positions-7)
(python-info-dedenter-statement-p-6): New tests. (Bug#62092)

17 months ago* lisp/gnus/nnselect.el (nnselect-request-thread): Correctly parse queries.
Andrew G Cohen [Sun, 26 Mar 2023 00:26:18 +0000 (08:26 +0800)]
* lisp/gnus/nnselect.el (nnselect-request-thread): Correctly parse queries.

17 months ago* test/infra/Dockerfile.emba (emacs-eglot): Adapt software selection.
Michael Albinus [Sat, 25 Mar 2023 17:29:25 +0000 (18:29 +0100)]
* test/infra/Dockerfile.emba (emacs-eglot): Adapt software selection.

17 months agoConnection-local variables are applied in buffers visiting a remote file
Michael Albinus [Sat, 25 Mar 2023 17:28:55 +0000 (18:28 +0100)]
Connection-local variables are applied in buffers visiting a remote file

* etc/NEWS: Connection-local variables are applied in buffers
visiting a remote file.

* test/lisp/net/tramp-tests.el (tramp-test34-connection-local-variables):
Fix test.