1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-11 05:51:21 -08:00
Commit graph

165695 commits

Author SHA1 Message Date
Jim Porter
093a360251 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.
2023-04-02 15:05:53 -07:00
Jim Porter
267fca267f 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.
2023-04-02 15:05:53 -07:00
Stefan Monnier
6df2941c1b 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).
2023-04-02 17:54:02 -04:00
Stefan Monnier
5223762e02 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.
2023-04-02 17:45:58 -04:00
Jim Porter
00144fa287 ; 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.
2023-04-02 14:15:45 -07:00
Jim Porter
97e35b1498 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.
2023-04-01 16:24:31 -07:00
Yuan Fu
626f2f7441
Add some icons (bug#62562)
* etc/images/symbols/README: New file.
* etc/images/symbols/*.svg: New icons.
2023-04-01 11:36:11 -07:00
Mattias Engdegård
f5891da70a ; * 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.
2023-04-01 11:00:34 +02:00
Po Lu
4bd1fc5966 ; * src/fns.c (HAVE_FAST_UNALIGNED_ACCESS): Check in missing edit. 2023-04-01 14:25:47 +08:00
Po Lu
c10c545ef2 ; * src/fns.c (Fstring_lessp): Fix coding style. 2023-04-01 14:24:22 +08:00
Po Lu
5276c08905 ; * src/fns.c (Fstring_lessp): Port to RISCs. 2023-04-01 14:23:52 +08:00
Stefan Kangas
204b652493 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.
2023-04-01 06:00:47 +02:00
Stefan Kangas
90be1f3adb ; Auto-commit of loaddefs files. 2023-04-01 05:10:48 +02:00
Andrew G Cohen
4c0e40b75b 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.
2023-04-01 09:55:41 +08:00
Andrew G Cohen
2c9ea31999 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.
2023-04-01 09:54:51 +08:00
Andrew G Cohen
9acfb7662c 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.
2023-04-01 09:51:42 +08:00
Andrew G Cohen
69f2036554 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.
2023-04-01 09:49:20 +08:00
Mattias Engdegård
6523359dfe 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.
2023-03-31 21:37:53 +02:00
Bob Rogers
6f496105e3 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.
2023-03-31 15:08:22 +02:00
Michael Albinus
c96bd1bf88 * test/infra/Dockerfile.emba (emacs-eglot): Adapt software selection. 2023-03-31 14:17:54 +02:00
Michael Albinus
06743df33a * lisp/net/tramp.el (tramp-accept-process-output): Use `with-local-quit'. 2023-03-31 09:45:23 +02:00
Yuan Fu
73a320801e
Add treesit-node-get
* doc/lispref/parsing.texi (Retrieving Nodes): Add manual entry.
* lisp/treesit.el (treesit-node--get): New function.
2023-03-30 21:55:22 -07:00
Mattias Engdegård
560c27a332 ; * test/lisp/dired-aux-tests.el: remove mistaken unwind-protect 2023-03-29 22:18:28 +02:00
Michael Albinus
bfa3500c3c 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.
2023-03-29 20:22:04 +02:00
Mattias Engdegård
e324060369 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.
2023-03-29 19:47:03 +02:00
Mattias Engdegård
9c31ee4686 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.
2023-03-29 19:47:03 +02:00
Michael Albinus
7177393826 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)
2023-03-29 16:10:29 +02:00
dannyfreeman
fea7708a48 Add clojure-ts-mode to eglot-server-programs
* lisp/progmodes/eglot.el (eglot-server-programs): Add
clojure-ts-mode.  (Bug#62449)
2023-03-29 15:12:21 +03:00
Michael Albinus
953ad30a52 * test/infra/Dockerfile.emba (emacs-eglot): Adapt software selection. 2023-03-29 13:18:15 +02:00
Stefan Kangas
f24aa0f46a Merge from origin/emacs-29
3965c65d5e ; * lisp/subr.el (read-char-choice): Fix last change.
c1eac5b658 Improve documentation of 'read-choice' and related symbols
a8c9283e17 Revert "Comp fix calls to redefined primtives with op-byt...
8b66d8abd0 Revert "* lisp/emacs-lisp/comp.el (comp-emit-set-call-sub...
4ec4f614c7 ; Fix incompatibility in 'display-buffer-assq-regexp'
ba3ade58f3 Skip ruby-ts-imenu-index test if needed
9133446db8 Fix Eglot Tramp tests on EMBA
5b351bc7fa * test/infra/Dockerfile.emba (emacs-gnustep): Instrument ...
2023-03-29 06:30:09 +02:00
Dmitry Gutov
2002ac376c 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.
2023-03-29 01:08:55 +03:00
Jim Porter
cde38f0df3 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.
2023-03-28 12:03:29 -07:00
Jim Porter
bb088885df 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.
2023-03-28 12:02:46 -07:00
Jim Porter
5b005f26a8 ; 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.
2023-03-28 11:43:27 -07:00
Eli Zaretskii
3965c65d5e ; * lisp/subr.el (read-char-choice): Fix last change. 2023-03-28 21:31:51 +03:00
Eli Zaretskii
c1eac5b658 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.
2023-03-28 21:08:12 +03:00
Andrea Corallo
a8c9283e17 Revert "Comp fix calls to redefined primtives with op-bytecode (bug#61917)"
This reverts commit 263d6c3853.

These patch series caused a number of regression and more analysis is
required.
2023-03-28 15:47:54 +02:00
Andrea Corallo
8b66d8abd0 Revert "* lisp/emacs-lisp/comp.el (comp-emit-set-call-subr): Improve..."
This reverts commit 4a7a0c9a9f.

These patch series caused a number of regression and more analysis is
required.
2023-03-28 15:47:47 +02:00
Eli Zaretskii
4ec4f614c7 ; 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)
2023-03-28 14:08:29 +03:00
Michael Albinus
ba3ade58f3 Skip ruby-ts-imenu-index test if needed
* test/lisp/progmodes/ruby-ts-mode-tests.el (ruby-ts-imenu-index):
Add check for treesitter.
2023-03-28 13:04:09 +02:00
Michael Albinus
9133446db8 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)
2023-03-28 12:43:01 +02:00
Michael Albinus
5b351bc7fa * test/infra/Dockerfile.emba (emacs-gnustep): Instrument "make V=1 ...". 2023-03-28 09:38:07 +02:00
Jim Porter
28a9438169 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".
2023-03-27 21:04:27 -07:00
Ken Brown
66b4394461 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.
2023-03-27 18:00:14 -04:00
Stefan Monnier
eb166287f3 Merge from origin/emacs-29
edc460e3b6 Fix accidental backward-incompatible change (bug#62417)
cbef1422fe ruby-ts-mode: Fix/simplify Imenu index generation
a0d5fba74a (ruby-ts--align-chain): Use 'equal' to check for an exact...
2023-03-27 17:16:59 -04:00
Stefan Monnier
b0d5f5168c ; Merge from origin/emacs-29
The following commit was skipped:

f631c90e79 ; Use string-search instead of string-match[-p] in ruby-t...
2023-03-27 17:16:59 -04:00
Stefan Monnier
47bce04e87 Merge from origin/emacs-29
0337131bfa Update to Transient v0.3.7-218-g3dbb22a
a8c23677d3 Update to Org 9.6.2
45b16bfb49 Skip failing tests on Cygwin with native compilation (bug...
8b4a494d8d Fix GNUSTEP tests on EMBA

# Conflicts:
#	test/infra/gitlab-ci.yml
2023-03-27 17:16:59 -04:00
Stefan Monnier
2b4e14e3ab ; Merge from origin/emacs-29
The following commit was skipped:

a952bdd6af Fix primary selection modification during `term-mouse-pas...
2023-03-27 17:16:58 -04:00
Stefan Monnier
dfa4fb9a2a Merge from origin/emacs-29
b08bf82860 ; Fix :version of the new defcustom
d941666d85 ; Fix last change
e19b7da7b0 Add 'eww-default-download-directory'.
564c26bdbe ; Fix edebug spec for 'gv-define-simple-setter' (bug#62256)
2023-03-27 17:16:58 -04:00
Stefan Monnier
701de494a0 ; Merge from origin/emacs-29
The following commits were skipped:

9107b2dec1 * doc/lispref/modes.texi: Improve docs for obsolete '%m' ...
59b7086838 Improve docs for global-mode-string / %M construct
207176e6b1 * src/buffer.c (mode-line-format): Document %o and %q con...
9cfae822fb * src/buffer.c (mode-line-format): Remove docs for obsole...
2023-03-27 17:16:58 -04:00