1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-04-21 05:21:37 -07:00
Commit graph

164057 commits

Author SHA1 Message Date
Stefan Kangas
99feed933a Merge from origin/emacs-29
0754173c92 ; Fix docstring
014232d384 Eglot: eglot--servers-by-xrefed-file doesn't need to be v...
bbe35c280c Prevent stale servers when using eglot-extend-to-xref
9bf13a3fb9 ; * src/alloc.c (Fmemory_info): Doc fix.
baa33a5c05 * etc/tutorials/TUTORIAL.cn: Fix typos.  (Bug#60221)
98d7f76b45 Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/...
a488a6870a Add alias for removed font-lock function
02e046566e Set beginning/end-of-defun-function in treesit-major-mode...
7dea58b88d Add treesit-defun-at-point and fix c-ts-mode-indent-defun
69123d4aa4 ; Fix treesit--defuns-around
05d8310fb5 Use the new keyword ':repeat' in repeatable keymaps.
2022-12-23 06:30:12 +01:00
Jim Porter
17bf6a829c Simplify handling of /dev/null redirection in Eshell
This also fixes an issue where "echo hi > foo > /dev/null" didn't
write to the file "foo".  (Note that users can still use their
system's null device name when redirecting; Eshell doesn't need to do
anything special to support that.)

* lisp/eshell/esh-io.el (eshell-virtual-targets): Add "/dev/null".
(eshell-set-output-handle): Handle 'eshell-null-device'.

* test/lisp/eshell/esh-io-tests.el
(esh-io-test/redirect-subcommands/dev-null)
(esh-io-test/virtual/dev-null, esh-io-test/virtual/dev-null/multiple):
New tests.
2022-12-22 11:35:12 -08:00
Jim Porter
6defbd65b6 Fix handling of output handles in nested Eshell forms
Previously, the output handles in nested forms would be reset to the
default, leading to wrong behavior for commands like

  {echo a; echo b} > file

"b" would be written to "file" as expected, but "a" would go to
standard output (bug#59545).

* lisp/eshell/esh-cmd.el (eshell-parse-command): Use
'eshell-with-copied-handles' for each statement within the whole
Eshell command.

* test/lisp/eshell/esh-io-tests.el (esh-io-test/redirect-subcommands)
(esh-io-test/redirect-subcommands/override)
(esh-io-test/redirect-subcommands/interpolated): New tests.

* test/lisp/eshell/em-script-tests.el
(em-script-test/source-script/redirect)
(em-script-test/source-script/redirect/dev-null): New tests.
(em-script-test/source-script, em-script-test/source-script/arg-vars)
(em-script-test/source-script/all-args-var): Tweak names/docstrings.

* test/lisp/eshell/em-extpipe-tests.el (em-extpipe-tests--deftest):
Skip over the newly-added 'eshell-with-copied-handles' form when
checking the parse results.

* test/lisp/eshell/em-tramp-tests.el (em-tramp-test/su-default)
(em-tramp-test/su-user, em-tramp-test/su-login)
(em-tramp-test/sudo-shell, em-tramp-test/sudo-user-shell)
(em-tramp-test/doas-shell, em-tramp-test/doas-user-shell): Update
expected command forms.
2022-12-22 11:35:12 -08:00
Jim Porter
54087e84df Add 'eshell-duplicate-handles' to return a copy of file handles
* lisp/eshell/esh-io.el (eshell-create-handles): Support creating with
multiple targets for stdout and/or stderr.  Make the targets for a
handle always be a list, and store whether the targets are the default
in a separate 'default' field.
(eshell-protect-handles, eshell-close-handles)
(eshell-copy-output-handle, eshell-interactive-output-p)
(eshell-output-object): Update for changes in 'eshell-create-handles'.
(eshell-duplicate-handles, eshell-get-targets): New functions.

* lisp/eshell/esh-cmd.el (eshell-copy-handles): Rename and alias to...
(eshell-with-copied-handles): ... this function, and use
'eshell-duplicate-handles'.
(eshell-execute-pipeline): Use 'eshell-duplicate-handles'.
2022-12-22 11:35:12 -08:00
Michael Albinus
d3f1682ae9 Handle make-directory return values in file name handlers
* lisp/net/ange-ftp.el (ange-ftp-make-directory): Handle return
values.

* lisp/net/tramp.el (tramp-skeleton-make-directory): New defmacro.
Handle also return values.
* lisp/net/tramp-adb.el (tramp-adb-handle-make-directory):
* lisp/net/tramp-crypt.el (tramp-crypt-handle-make-directory):
* lisp/net/tramp-fuse.el (tramp-fuse-handle-make-directory):
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-make-directory):
* lisp/net/tramp-sh.el (tramp-sh-handle-make-directory):
* lisp/net/tramp-smb.el (tramp-smb-handle-make-directory):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-make-directory):
Use it.

* test/lisp/net/tramp-tests.el (tramp-test13-make-directory):
Handle return values.
2022-12-22 19:39:59 +01:00
Ikumi Keita
0754173c92 ; Fix docstring
* lisp/textmodes/reftex-vars.el
(reftex-allow-detached-macro-args): Fix macro name in docstring.
2022-12-22 18:23:34 +01:00
João Távora
014232d384 Eglot: eglot--servers-by-xrefed-file doesn't need to be value-weak
* lisp/progmodes/eglot.el (eglot--servers-by-xrefed-file): Doesn't
need to be weak.
2022-12-22 15:44:11 +00:00
João Távora
bbe35c280c Prevent stale servers when using eglot-extend-to-xref
A weak-valued hash-table is not enough to guarantee that a reference
to a zombie server in eglot--servers-by-xrefed-file variable won't
survive long enough to confuse the next call to eglot--current-server
in some buffers.

So, before this fix it was common to get "Process EGLOT ... not
running" errors if some xref-extended buffers (like system libraries)
were open and M-x eglot-reconnect was issued.  This should be
prevented now.

Note however, that even after this the eglot-extend-to-xref logic is
still flawed.  For example, if a buffer for the xref-extended buffer
happens to be already visited by the time M-. is issued to navigate to
it, Eglot won't be activated.  A half-decent workaround is to kill the
buffer and re-visit it.

* lisp/progmodes/eglot.el (eglot--servers-by-xrefed-file): Move
up.
(eglot--on-shutdown): Make sure to cleanup
eglot--servers-by-xrefed-file.
2022-12-22 11:30:19 +00:00
Eli Zaretskii
9bf13a3fb9 ; * src/alloc.c (Fmemory_info): Doc fix. 2022-12-22 13:02:45 +02:00
Xi Lu
baa33a5c05 * etc/tutorials/TUTORIAL.cn: Fix typos. (Bug#60221) 2022-12-22 11:19:15 +02:00
Eli Zaretskii
98d7f76b45 Merge branch 'emacs-29' of git.savannah.gnu.org:/srv/git/emacs into emacs-29 2022-12-22 11:00:41 +02:00
Benson Chu
a488a6870a Add alias for removed font-lock function
As part of 18947103fa,
`font-lock-fontify-syntactically-region' was renamed to
`font-lock-default-fontify-sytactically'.

* lisp/font-lock.el (font-lock-fontify-syntactically-region): Add
obsolete alias for the renamed function.

Copyright-paperwork-exempt: yes
2022-12-22 10:57:34 +02:00
Yuan Fu
02e046566e
Set beginning/end-of-defun-function in treesit-major-mode-setup
* lisp/treesit.el (treesit-major-mode-setup): Set them.
2022-12-22 00:42:49 -08:00
Yuan Fu
7dea58b88d
Add treesit-defun-at-point and fix c-ts-mode-indent-defun
* lisp/treesit.el (treesit-defun-at-point): New function.
* lisp/progmodes/c-ts-mode.el (c-ts-mode-indent-defun): Implement with
treesit-defun-at-point.
2022-12-22 00:42:49 -08:00
Yuan Fu
69123d4aa4
; Fix treesit--defuns-around
Now it doesn't move point.

* lisp/treesit.el (treesit--defuns-around): Wrap some code with
save-excursion.
2022-12-22 00:42:49 -08:00
Juri Linkov
05d8310fb5 Use the new keyword ':repeat' in repeatable keymaps.
* lisp/bindings.el (undo-repeat-map)
(buffer-navigation-repeat-map, next-error-repeat-map)
(page-navigation-repeat-map):
* lisp/comint.el (comint-repeat-map):
* lisp/dired.el (dired-jump-map):
* lisp/outline.el (outline-navigation-repeat-map)
(outline-editing-repeat-map):
* lisp/shell.el (shell-repeat-map):
* lisp/tab-bar.el (tab-bar-switch-repeat-map)
(tab-bar-move-repeat-map):
* lisp/window.el (other-window-repeat-map)
(resize-window-repeat-map):
* lisp/winner.el (winner-repeat-map):
* lisp/eshell/em-prompt.el (eshell-prompt-repeat-map):
* lisp/eshell/esh-mode.el (eshell-command-repeat-map):
Add the keyword ':repeat' to 'defvar-keymap' instead of
setting the symbol property 'repeat-map' explicitly.

* lisp/keymap.el (defvar-keymap): Check for 'props'
that is used in 'defvar-form'.
2022-12-22 10:03:09 +02:00
Po Lu
f681b76a7c Simplify X premultipled pixel allocation code
* src/xterm.c (x_premultiply_pixel): New function.
(x_query_colors): Improve documentation.
(x_draw_fringe_bitmap, x_query_frame_background_color): Use
x_premultiply_pixel.
2022-12-22 15:51:15 +08:00
Stefan Kangas
e98ab3f458 ; Merge from origin/emacs-29
The following commit was skipped:

d6c8d5dbc9 When redirecting in Eshell, check for "/dev/null" specifi...
2022-12-22 06:30:10 +01:00
Stefan Kangas
08bb91c7df Merge from origin/emacs-29
e59216d3be * Invoke spawed Emacs processes with '-Q' when native com...
777b383dd0 Fix Eshell electric slash when used from the root directo...
c088cdad9e Fix the --without-all build with tree-sitter
ec9fbad908 Fix write-region to null device on MS-Windows
f35da11199 message: Do not default to eudc-capf-complete yet
98c16a8c88 ; * lisp/tab-bar.el: Remaining renaming of "fixed-width" ...
d76d7a3beb whitespace: Avoid mutating original buffer's markers in c...
2022-12-22 06:30:09 +01:00
Jim Porter
d6c8d5dbc9 When redirecting in Eshell, check for "/dev/null" specifically
This is so that users can type "cmd ... > /dev/null" in Eshell no
matter what their system's null device is called.  (Users can still
use their system's null device name when redirecting, too.  Eshell
doesn't need to do anything special to support that.)  This partially
reverts 67a8bdb90c.  See bug#59545.

Do not merge to master.

* lisp/eshell/esh-io.el (eshell-set-output-handle): Use "/dev/null"
literally.
2022-12-21 17:14:41 -08:00
Andrea Corallo
e59216d3be * Invoke spawed Emacs processes with '-Q' when native compiling (bug#60208)
* lisp/emacs-lisp/comp.el (comp-final): Invoke spawned Emacs with '-Q'.
(comp-run-async-workers): Likewise.
2022-12-21 23:29:33 +01:00
montag451
777b383dd0 Fix Eshell electric slash when used from the root directory of a remote host
* lisp/eshell/em-elecslash.el (eshell-electric-forward-slash): Insert
the remote prefix as determined by 'file-remote-p'.

Copyright-paperwork-exempt: Yes
2022-12-21 14:21:20 -08:00
Eli Zaretskii
c088cdad9e Fix the --without-all build with tree-sitter
* configure.ac (HAVE_TREE_SITTER): Set NEED_DYNLIB=yes, since
tree-sitter support requires dynlib.o.  (Bug#60061)
2022-12-21 21:53:03 +02:00
Eli Zaretskii
ec9fbad908 Fix write-region to null device on MS-Windows
* src/fileio.c (write_region) [WINDOWSNT]: Ignore EBADF errors
from fsync -- this means fsync is not supported for this file.
Happens, for example, with the null device.  (Bug#59545)
2022-12-21 21:23:51 +02:00
Alexander Adolf
f35da11199 message: Do not default to eudc-capf-complete yet
* lisp/gnus/message.el (message-mode): No longer add
eudc-capf-complete to the buffer-local value of
completion-at-point-functions.  (Bug#59314)
2022-12-21 12:36:30 -05:00
Juri Linkov
98c16a8c88 ; * lisp/tab-bar.el: Remaining renaming of "fixed-width" to "auto-width". 2022-12-21 19:30:24 +02:00
Richard Hansen
d76d7a3beb whitespace: Avoid mutating original buffer's markers in clones
* lisp/whitespace.el (whitespace--clone): New hook function that is
run after cloning a buffer that copies `whitespace-bob-marker' and
`whitespace-eob-marker' and changes the copies to point to the new
buffer (Bug#59618).
(whitespace-color-on): Register the hook function.
(whitespace-color-off): Unregister the hook function.

* test/lisp/whitespace-tests.el
(whitespace-tests--with-test-buffer): New macro.
(whitespace-tests--check-markers): New function.
(whitespace-tests--indirect-clone-breaks-base-markers)
(whitespace-tests--indirect-clone-markers)
(whitespace-tests--regular-clone-markers): New tests.
2022-12-21 16:02:30 +02:00
Mattias Engdegård
ad5a67996d Fix broken eww desktop restore reload prompt message insertion
* lisp/net/eww.el (eww-restore-desktop): Repair a malformed `cl-case`
clause.  This code probably never worked as intended.
2022-12-21 12:40:37 +01:00
Mattias Engdegård
c2f04019bf soap-client: fix validation against byte[]
* lisp/net/soap-client.el (soap-validate-xs-basic-type):
`byte[]` is read as the two Lisp values `byte` and `[]` but here the
symbol `byte[]` is intended: the brackets need escaping.
2022-12-21 12:07:32 +01:00
Stefan Kangas
05740f05b7 Merge from origin/emacs-29
12b2b8864c Fix empty pairs in js tree-sitter imenu alist (bug#59945)
6d9f367ead ; * lisp/treesit.el (treesit-simple-indent-presets): Fix ...
2022-12-21 06:30:10 +01:00
Charl P. Botha
12b2b8864c
Fix empty pairs in js tree-sitter imenu alist (bug#59945)
The current js--treesit-imenu, used by the JavaScript, TypeScript and
TSX tree-sitter modes, would return empty pairs in the imenu alist if
there were none of that type of symbol.

This would break both the built in imenu and also packages like
consult-imenu.

See https://github.com/minad/consult/issues/697 for the discussion
there.

* lisp/progmodes/js.el (js--treesit-imenu): Don't add nil indexes.

Copyright-paperwork-exempt: yes
2022-12-20 20:50:50 -08:00
Yuan Fu
6d9f367ead
; * lisp/treesit.el (treesit-simple-indent-presets): Fix typo. 2022-12-20 20:50:49 -08:00
Stefan Kangas
e871f21348 ; Manually fix merge errors in etc/NEWS 2022-12-21 02:38:13 +01:00
Stefan Kangas
2bbc554db6 Merge from origin/emacs-29
d3a76db88b * lisp/repeat.el: Fix repeat-keep-prefix to allow customi...
8ef3777d54 Correct capitalization of Lisp in the manual (bug#60222)
d03ea89378 eglot.el: Add vscode-json-languageserver to eglot-server-...
8550a99378 ; * src/emacs-module.h.in (enum emacs_funcall_exit): Fix ...
fb7f3999c5 ; Fix ruby-method-params-indent's :version value
cfbfd393b4 * lisp/progmodes/project.el (project--read-file-cpd-relat...
2b1fdbffcb ruby-method-params-indent: New user option
b9e813f79f ; ruby-indent-level: Improve the docstring
399433cc2b * lisp/progmodes/project.el: Filter out empty strings fro...
23f7c9c2a9 Fix storing email into nnmail by Gnus
63cdbd986b ; Really respect browse-url var in erc-compat
64163618d2 whitespace: Fix unintended change in buffer modification ...
a75d1da911 Make emacsclient add abbreviated file names to file-name-...
b3e7768a0e Repair setopt test after error demotion to warning
2022-12-21 02:37:17 +01:00
Sean Whitton
1424342225 vc-git-checkin: Don't try to apply an empty patch
* lisp/vc/vc-git.el (vc-git-checkin): Don't try to apply an empty
patch to the index, because in that case 'git apply' fails.
2022-12-20 16:09:12 -07:00
Sean Whitton
962bdfcdfe vc-git-checkin: Offer to unstage conflicting changes
* lisp/vc/vc-git.el (vc-git-checkin): When committing a patch, if
conflicting changes are already staged, offer to clear them, instead
of just immediately failing with "Index not empty" (bug#60126).
2022-12-20 16:09:12 -07:00
Juri Linkov
d3a76db88b * lisp/repeat.el: Fix repeat-keep-prefix to allow customizing it to non-nil.
* lisp/repeat.el (repeat-keep-prefix): Add or remove
'repeat-pre-hook' depending on the customized value.
(repeat-mode): Add or remove 'repeat-pre-hook' to/from
'pre-command-hook' when 'repeat-keep-prefix' is non-nil.
(repeat-pre-hook): New function.
(repeat-get-map, repeat-check-map): New function refactored from
'repeat-post-hook'.
(repeat-post-hook): Move some code to smaller functions.
(describe-repeat-maps): Set outline-regexp without ^L.

* test/lisp/repeat-tests.el (repeat-tests-keep-prefix):
Uncomment test case that is fixed now in bug#51281 and bug#55986.
2022-12-20 19:22:15 +02:00
Vibhav Pant
9fafeb2a66
Ensure that we are not aset-ing Lisp records in purespace.
* src/data.c (Faset): Enforce that Lisp records passed to aset are
impure with CHECK_IMPURE.
2022-12-20 21:29:54 +05:30
Daniel Martín
8ef3777d54 Correct capitalization of Lisp in the manual (bug#60222)
* doc/lispref/compile.texi (Native-Compilation Functions): Fix typo.
2022-12-20 17:46:33 +02:00
Brian Leung
d03ea89378 eglot.el: Add vscode-json-languageserver to eglot-server-programs
* lisp/progmodes/eglot.el (eglot-server-programs): Add the
alternative name of the vcscode JSON server.  (Bug#60198)
2022-12-20 16:30:16 +02:00
Philipp Stephani
8550a99378 ; * src/emacs-module.h.in (enum emacs_funcall_exit): Fix typo. 2022-12-20 13:29:49 +01:00
Stefan Kangas
8d6fb6498a ; Revert UK->US spelling fix in rx.el
* lisp/emacs-lisp/rx.el (rx--normalise-or-arg): Revert to British
spelling of internal symbol.
2022-12-20 12:00:38 +01:00
Po Lu
f47419766d Improve safety of calls to vendor-specific-keysyms
* src/xterm.c (x_term_init): Wrap call to
vendor-specific-keysyms inside safe_call.
2022-12-20 15:42:45 +08:00
Stefan Kangas
b4941419c5 ; Fix typos in some function names
* lisp/cedet/semantic/decorate/include.el
(semantic-decoration-unparsed-include-reference-reset): Rename
from 'semantic-decoration-unparsed-include-refrence-reset'.
* lisp/emacs-lisp/rx.el (rx--normalize-or-arg): Rename from
'rx--normalise-or-arg'.
* lisp/frame.el (frame--current-background-mode): Rename from
'frame--current-backround-mode'.
* lisp/url/url-future.el (url-future-canceled-p): Rename from
'url-future-cancelled-p'.  Update all uses.  Make old names into
obsolete function aliases.
2022-12-20 06:15:55 +01:00
Dmitry Gutov
fb7f3999c5 ; Fix ruby-method-params-indent's :version value 2022-12-20 02:58:48 +02:00
Sean Whitton
8739cba1ee ; * lisp/vc/vc.el (vc-prepare-patch): Fix typo. 2022-12-19 17:17:05 -07:00
Sean Whitton
aaca72806e vc-prepare-patch: Number the attached patches
* lisp/gnus/mml.el (mml-attach-buffer): New FILENAME argument.
* lisp/vc/vc.el (vc--subject-to-file-name): New function.
(vc-prepare-patch): When vc-prepare-patches-separately is nil,
generate file names for the attached patches.
Call vc--subject-to-file-name, and then prepend numbers indicating the
ordering of the patches (bug#60147).
2022-12-19 17:17:03 -07:00
Juri Linkov
cfbfd393b4 * lisp/progmodes/project.el (project--read-file-cpd-relative): Optimize. 2022-12-19 21:47:28 +02:00
Dmitry Gutov
2b1fdbffcb ruby-method-params-indent: New user option
* lisp/progmodes/ruby-mode.el (ruby-method-params-indent):
New option (bug#60110).

(ruby-smie-rules): Use it.

* etc/NEWS: Mention it.

* test/lisp/progmodes/ruby-mode-resources/ruby.rb:
Ensure the var's value is default.

* test/lisp/progmodes/ruby-mode-resources/ruby-method-params-indent.rb:
New file.

* test/lisp/progmodes/ruby-mode-tests.el (ruby-deftest-indent):
New macro, use it to run the indentation test using the new file.
Disable the :expensive-test tag, because neither runs for "longer
than some few seconds", both take significantly below 1s.
2022-12-19 21:06:07 +02:00
Dmitry Gutov
b9e813f79f ; ruby-indent-level: Improve the docstring 2022-12-19 21:06:07 +02:00