Commit graph

94743 commits

Author SHA1 Message Date
Andrea Corallo
931663f123 Silence 3 warnings for non sqlite builds
* lisp/emacs-lisp/multisession.el (sqlite-commit)
(sqlite-transaction, sqlite-rollback): Declare.
2024-05-19 14:54:10 +02:00
Michael Albinus
c4cc905d6b Add connection-local variable `tramp-direct-async-process'
* doc/misc/tramp.texi (Predefined connection information):
Remove "direct-async-process".
(Remote processes): Explain connection-local variable
tramp-direct-async-process.

* etc/NEWS: Add connection-local variable 'tramp-direct-async-process'.

* lisp/net/tramp-compat.el (tramp-compat-connection-local-p): Sync with
Emacs source.
(tramp-compat-connection-local-value): New defalias.

* lisp/net/tramp-message.el (tramp-warning): New defsubst.

* lisp/net/tramp.el (tramp-direct-async-process): New defvar.
(tramp-direct-async-process-p): Use connection-local variable for
check.  (Bug#70959)

* test/lisp/net/tramp-tests.el
(tramp--test-deftest-direct-async-process):
Use connection-local-variable `tramp-direct-async-process'.
2024-05-19 14:13:03 +02:00
Stefan Kangas
92cd24f405 Add convenience binding for html-paragraph to mhtml-mode
* lisp/textmodes/sgml-mode.el (html-mode-map): Bind 'C-c C-c p' to
'html-paragraph'.  (Bug#70533)
2024-05-19 10:46:51 +02:00
Eli Zaretskii
dbd50ccd8e ; * lisp/color.el (color-oklab-to-xyz): Doc fix. 2024-05-19 11:23:19 +03:00
Robert Church
c5e5940ba4 Add Oklab color space utility functions in color.el.
* lisp/color.el (color-oklab-to-xyz, color-oklab-to-srgb)
(color-srgb-to-oklab): New functions.  (Bug#70963)

* test/lisp/color-tests.el (color-tests-oklab-to-xyz)
(color-tests-xyz-to-oklab, color-tests-srgb-to-oklab)
(color-tests-oklab-to-srgb): New tests.
2024-05-19 11:14:56 +03:00
Morgan Smith
42d444114d * lisp/window.el (fit-window-to-buffer): Fix width calculation
When PIXELWISE is nil, we still calculate width in pixels and
then convert it to columns.  However, part of the calculation
was using columns where it should have used pixels.  (Bug#70894)
2024-05-19 11:07:09 +03:00
Jared Finder
b80a2cbdb6 Fix byte compiler warnings in window-tool-bar.el
* lisp/window-tool-bar.el (window-tool-bar--static-if)
(window-tool-bar--ignored-event-types): Avoid byte compiler
seeing variables obsolete in Emacs 30 and up.  (Bug#68765)
2024-05-19 09:41:47 +03:00
Stefan Kangas
9ec124e59a * lisp/play/doctor.el: Add a few more word meanings. 2024-05-19 01:15:20 +02:00
F. Jason Park
fee637468b Reconcile erc-stamp--date-stamps when merging buffers
* etc/ERC-NEWS: Mention new face `erc-information'.
* lisp/erc/erc-button.el (erc-button-add-buttons): Skip buttonization
when the "msg prop" `erc--skip' is present and contains the symbol
`button'.  Set `alist' to nil in the same guard condition as a
roundabout way of suppressing further processing.
* lisp/erc/erc-networks.el (erc--insert-admin-message): Forward
declaration.
(erc-networks--insert-transplanted-content)
(erc-networks--transplant-buffer-content): Replace former with latter.
Change signature to take source and destination buffers as parameters.
(erc-networks--transplant-target-buffer-function): New function-valued
variable.
(erc-networks--target-transplant-in-progress-p): New variable, a flag
for downstream code to detect when a transplant is underway.
(erc-networks--reclaim-orphaned-target-buffers): Defer to
`erc-networks--transplant-target-buffer-function' to handle the actual
transplant business.  Crucially, kill the buffer afterwards instead of
beforehand.  If new buffer-association bugs emerge related to the
combining of old or renamed target buffers, this reordering may be at
fault.
(erc-networks--copy-over-server-buffer-contents): Pass old and new
buffers to `erc-networks--insert-transplanted-content'.
* lisp/erc/erc-stamp.el
(erc-stamp--defer-date-insertion-on-post-modify): Set `fn' slot of
`erc-stamp--date' instance to `ignore' when running the actual
callback in order to conserve a little space.
(erc-stamp--date-mode): Add and remove hook members for
`erc-networks--copy-server-buffer-functions' and
`erc-networks--transplant-target-buffer-function'.
(erc-insert-timestamp-left-and-right): Always clear
`erc-timestamp-last-inserted-right' to ensure a right stamp
accompanies every date stamp.
(erc-stamp--dedupe-date-stamps)
(erc-stamp--dedupe-date-stamps-from-buffer)
(erc-stamp--dedupe-date-stamps-from-target-buffer): New functions.
Date stamp behavior was revamped as part of bug#60936.
* lisp/erc/erc.el (erc-informational): New face.
(erc--insert-admin-message): New function to hide some "msg prop"
complexity from "upstream" libraries, like `erc-networks', and thus
avoid more forward-declarations.  A less smelly approach would be to
devise a general interface owned by such libraries, or erc-common,
that `erc-mode' could then hook into on init.
(erc-display-message-highlight): Make face matching more limber to
accommodate the convention of face names lacking a "-face" suffix.
(erc-message-english-graft): New variable.
(erc-kill-channel): Inhibit execution of hook when
`erc-networks--target-transplant-in-progress-p' is non-nil.
* test/lisp/erc/erc-networks-tests.el
(erc-networks--rename-server-buffer--no-existing--orphan)
(erc-networks--rename-server-buffer--existing--reuse)
(erc-networks--rename-server-buffer--local-match)
(erc-networks--rename-server-buffer--local-nomatch): Use helper to
initialize markers.
* test/lisp/erc/erc-stamp-tests.el (erc-stamp--dedupe-date-stamps):
New test.  (Bug#70928)
2024-05-18 15:48:05 -07:00
F. Jason Park
cf7cc4c630 Don't kill server buffer with erc-kill-buffer-on-part
* etc/ERC-NEWS: Mention new flag `erc-killing-buffer-on-part-p' and
the renaming of `erc-kill-channel'.
* lisp/erc/erc-backend.el (erc-server-PART): Only kill a buffer on
behalf of `erc-kill-buffer-on-part' when the buffer hasn't already
been killed, and bind `erc-killing-buffer-on-part-p' to t when doing
so.
* lisp/erc/erc-log.el (erc-conditional-save-buffer): Don't save logs
when the buffer parameter is nil because that causes the server buffer
to be saved out.  It's possible that user code relying on this
longstanding bug will be affected, however, by default, the server
buffer will also be saved out independently at designated junctures.
* lisp/erc/erc.el (erc-part-hook): Redo doc string.
(erc-killing-buffer-on-part-p): New variable, a flag to prevent
redundant execution of `erc-kill-channel-hook' members concerned with
parted channels.
(erc-kill-buffer-on-part): Tweak doc string.
(erc-kill-channel-hook): Use new name for `erc-kill-channel',
`erc-part-channel-on-kill'.
(erc-kill-channel, erc-part-channel-on-kill): Rename former to latter,
and inhibit execution when `erc-killing-buffer-on-part-p' is non-nil.
* test/lisp/erc/erc-scenarios-base-kill-on-part.el: New file.
(Bug#70840)
2024-05-18 15:48:05 -07:00
Augusto Stoffel
e8feb04cc6 comint.el: Add applicable modes to 'interactive' forms
* lisp/comint.el (comint-dynamic-list-input-ring-select)
(comint-dynamic-list-input-ring, comint-restore-input)
(comint-previous-input, comint-next-input)
(comint-previous-matching-input, comint-next-matching-input)
(comint-previous-matching-input-from-input)
(comint-next-matching-input-from-input)
(comint-replace-by-expanded-history, comint-magic-space)
(comint-history-isearch-backward)
(comint-history-isearch-backward-regexp, comint-send-input)
(comint-truncate-buffer, comint-strip-ctrl-m)
(comint-show-maximum-output, comint-copy-old-input, comint-bol)
(comint-send-invisible, comint-delete-output, comint-write-output)
(comint-append-output-to-file, comint-show-output)
(comint-clear-buffer, comint-interrupt-subjob, comint-kill-subjob)
(comint-quit-subjob, comint-stop-subjob, comint-continue-subjob)
(comint-kill-input, comint-delchar-or-maybe-eof, comint-send-eof)
(comint-backward-matching-input, comint-forward-matching-input)
(comint-next-prompt, comint-previous-prompt)
(comint-insert-previous-argument, comint-kill-whole-line)
(comint-kill-region, comint-dynamic-complete-filename)
(comint-replace-by-expanded-filename)
(comint-dynamic-list-filename-completions)
(comint-get-next-from-history, comint-accumulate)
(comint-goto-process-mark, comint-bol-or-process-mark)
(comint-set-process-mark, comint-redirect-cleanup)
(comint-redirect-send-command)
(comint-redirect-send-command-to-process, comint-fontify-input-mode):
Add mode to interactive form.  (Bug#70555)
2024-05-19 00:29:10 +02:00
nibon7
d1d031aea6 eglot: Add blueprint language server (Bug#70015)
* lisp/progmodes/eglot.el (eglot-server-programs): Add
blueprint-compiler.
2024-05-18 23:37:20 +02:00
kobarity
c97e7a2da2 Improve fontification of Python assignments with type hints
* lisp/progmodes/python.el (python-font-lock-keywords-maximum-decoration):
Fontify type hints of assignment statement.  (Bug#69357)
* test/lisp/progmodes/python-tests.el
(python-font-lock-assignment-statement-11)
(python-font-lock-assignment-statement-12)
(python-font-lock-assignment-statement-13)
(python-font-lock-assignment-statement-18): Add fontification of type
hints.
(python-font-lock-assignment-statement-19): New test.
2024-05-18 22:22:34 +02:00
Stefan Kangas
96f64c156c Fix double periods in doctor-symptoms
* lisp/play/doctor.el (doctor-symptoms): Don't produce double periods.
2024-05-18 19:25:42 +02:00
Dmitry Gutov
6badb1260a minibuffer-completion-help: Fix earlier mistake
* lisp/minibuffer.el (minibuffer-completion-help): Fix earlier
mistake.  Instead of altering a variable whose value is
immutable (and already captured in a saved list), move the
reference to said list to a lexical binding and alter that
list's second element instead.

https://lists.gnu.org/archive/html/emacs-devel/2024-05/msg00875.html
2024-05-18 16:30:57 +03:00
Ergus
2e862f81a3 Add support for Rust compilation messages
* etc/compilation.txt (Rust): Add Rust/cargo examples.

* lisp/progmodes/compile.el
(compilation-error-regexp-alist-alist): Add rust/cargo error and
warning patterns.  (Bug#70794)
2024-05-18 13:51:01 +03:00
Tony Zorman
a019d2bd56 use-package: Add ':ignored-files' support to ':vc' keyword
* lisp/use-package/use-package-core.el (use-package-split-when):
New utility function to split a list whenever a specified
predicate returns t.
(use-package-vc-valid-keywords): A new defconst to gather all
allowed keywords.
(use-package-normalize--vc-arg): Properly normalize the
':ignored-files' keyword, in that the following are all valid
ways of entering files:
  :ignored-files "a"
  :ignored-files ("a")
  :ignored-files "a" "b" "c"
  :ignored-files ("a" "b" "c")
(use-package-normalize/:vc): Adjust normalization, now that we
do not necessarily receive a valid plist as an input.  (Bug#66567)

* test/lisp/use-package/use-package-tests.el
(use-package-test-normalize/:vc): Add tests for ':ignored-files'
keyword.
2024-05-18 13:30:45 +03:00
Tony Zorman
426176c75e use-package: Update list of valid :vc keywords
* lisp/use-package/use-package-core.el: Add ':shell-command'
and ':make' to valid keywords.  (Bug#66567)
2024-05-18 13:27:47 +03:00
Eli Zaretskii
82a31e27e6 Fix printing the result by 'eval-print-last-sexp'
* lisp/progmodes/elisp-mode.el (elisp--eval-last-sexp): Record the
desired output stream before evaluating the expression.
(Bug#70931)
2024-05-18 12:55:34 +03:00
Jared Finder
be03dda5b0 Adding window-tool-bar package (bug#68765).
* lisp/window-tool-bar.el: New file.
2024-05-18 12:47:04 +03:00
Jared Finder
da325ff7b2 Add user option to only display default tool bar
This works well with `window-tool-bar-mode', to be added in upcoming
commit.  Then the default tool bar is displayed frame-wide and
mode-specific tool bars are displayed in the window that mode is
active in.

* lisp/tool-bar.el (tool-bar-always-show-default): New user option.
(tool-bar--cache-key, tool-bar-make-keymap-1): Return default tool bar
when option is set.
2024-05-18 12:46:22 +03:00
Jared Finder
fd3ab22a3e Inform user when tab-line-mode command makes no change
* lisp/tab-line.el (tab-line-mode): Display message when command is
run on already altered tab-line-format.
2024-05-18 12:46:22 +03:00
Joost Kremers
4f27d763bb Make 'vtable-insert-object' more versatile
* lisp/emacs-lisp/vtable.el (vtable-insert-object): Rename
argument AFTER-OBJECT to LOCATION; allow use of index to
refer to the insertion position; add argument BEFORE.
(Bug#70664).

* etc/NEWS:
* doc/misc/vtable.texi (Interface Functions): Document the
change.

* test/lisp/emacs-lisp/vtable-tests.el
(test-vtable-insert-object): New test.
2024-05-18 11:52:33 +03:00
Dmitry Gutov
db039399cc Fix project-find-regexp in remote projects
* lisp/progmodes/xref.el (xref--hits-file-prefix):
New variable.  Something to prepend to each file name (bug#69233).
(xref--convert-hits): Use it to also store the "default directory"
part of the filename conditionally on whether it's remote.
(xref--collect-matches): Use the new variable here.
2024-05-18 03:39:50 +03:00
Dmitry Gutov
646b8da4a5 xref--group-name-for-display: Undo most of the latest change
* lisp/progmodes/xref.el (xref--group-name-for-display):
Remove the DD-SUFFIX parameter, returning the function more like
to how it was (bug#69233).
(xref--analyze, xref--add-log-current-defun):
Revert the previous change accordingly.

* test/lisp/progmodes/xref-tests.el: Undo the last change.
2024-05-18 03:32:48 +03:00
Jim Porter
2f7d011d18 Add new Eshell built-in command 'funcall'
* lisp/eshell/esh-cmd.el (eshell/funcall): New function...

* test/lisp/eshell/em-glob-tests.el (em-glob-test/expand/splice-results)
(em-glob-test/expand/no-splice-results)
(em-glob-test/expand/explicitly-splice-results)
(em-glob-test/expand/explicitly-listify-results):
* test/lisp/eshell/esh-var-tests.el
(esh-var-test/quoted-interp-lisp-indices)
(esh-var-test/quoted-interp-cmd-indices)
(esh-var-test/interp-convert-quoted-var-number)
(esh-var-test/quoted-interp-convert-var-number)
(esh-var-test/quoted-interp-convert-quoted-var-number)
(esh-var-test/last-status-var-lisp-command)
(esh-var-test/last-result-var-split-indices)
(esh-var-test/last-arg-var-split-indices): ... use it in tests.

* doc/misc/eshell.texi (List of Built-ins): Describe this command.
2024-05-16 20:33:18 -07:00
Dmitry Gutov
113bd2082c ; Fix search in remote project with relative file names 2024-05-17 01:06:11 +03:00
Harald Jörg
54a7268763 ; cperl-mode.el: prevent Emacs from "freezing" (Bug#70948)
* cperl-mode.el (defconst): Replace the rx expression for
`cperl--basic-identifier-rx' with its actual macro expansion.
This makes it efficient under Emacs 29.3, where the expansion
by rx.el could make Emacs freeze with a crafted Perl source
(Bug#70948).
2024-05-16 22:22:37 +02:00
Harald Jörg
96269209a3 ;cperl-mode.el: Allow running under Emacs >=27
I would like to advertise cperl-mode.el from the repository as a
workaround for bug#70948.  This can be achieved by safeguarding
the call to derived-mode-add-parents with a version check.

* lisp/progmodes/cperl-mode.el: Call derived-mode-add-parents only
if it is available.
2024-05-16 21:58:34 +02:00
Philip Kaludercic
650ee9e071
; Fix wrong-type-argument in 'rcirc-handler-INVITE'
* lisp/net/rcirc.el (rcirc-handler-INVITE): Use
'with-rcirc-process-buffer' instead of passing a process to
'buffer-local-value'.
2024-05-16 19:51:48 +02:00
Stefan Monnier
acfb2c6163 (describe-package-1): Handle (nil . "string") in :maintainer
* lisp/emacs-lisp/package.el (describe-package-1): Refine the
check to distinguish the old single-maintainer format from the
new multi-maintainer format.  (bug#69712)
2024-05-16 11:04:50 -04:00
Stefan Monnier
ee3ef57c24 * lisp/loadup.el: Add workaround for occasional "bootstrap" failure 2024-05-16 09:50:39 -04:00
Andrea Corallo
1b622ff66e * Fix bootstrap with checking enabled
* lisp/emacs-lisp/comp.el (comp--limplify-top-level): Set function
safety.
2024-05-16 07:53:48 +02:00
Jim Porter
59b889885d ; * lisp/eshell/esh-ext.el (eshell-remote-command): Improve last change. 2024-05-15 22:22:56 -07:00
Jim Porter
e260bf1be7 Use "/local:" prefix in Eshell to run local commands when cwd is remote
* lisp/eshell/esh-ext.el (eshell-explicit-remote-commands)
(eshell-explicit-command): Update docstrings.
(eshell--local-prefix): New constant.
(eshell-handle-remote-command): Remove.
(eshell-quoted-file-command): New function...
(eshell-ext-initialize): ... add it as a hook.
(eshell-remote-command): Support running commands on localhost.
(eshell-connection-local-command): Rename from
'eshell-external-command'.
(eshell-external-command): New implementation calling
'eshell-remote-command' or 'eshell-connection-local-command' as
appropriate.

* test/lisp/eshell/esh-ext-tests.el
(esh-ext-test/explicitly-local-command): Update test.

* doc/misc/eshell.texi (Remote Access): Update documentation.

* etc/NEWS: Update announcement.
2024-05-15 18:50:54 -07:00
Sean Whitton
c85294a613 (eglot--managed-mode): Avoid calling track-changes unregistered
* lisp/progmodes/eglot.el (eglot--managed-mode): Unregister from
track-changes after `eglot-shutdown` since that function may
call `eglot--signal-textDocument/didChange`.  (bug#70927)
2024-05-15 14:50:18 -04:00
Sean Whitton
5900cf92ea vc-git-root-log-format: Explicitly match periods
* lisp/vc/vc-git.el (vc-git-root-log-format): Explicity match
periods, rather than matching them only because '.' matches any
chars.
2024-05-15 19:04:09 +01:00
Mattias Engdegård
3a0fc5bb3f ; * lisp/gnus/mml-smime.el: Need cl-lib at runtime now. 2024-05-15 15:23:18 +02:00
Stefan Monnier
85043246f1 (xref--collect-matches): Move inhibit-modification-hooks binding down
* lisp/progmodes/xref.el (xref--collect-matches): Move the
inhibit-modification-hooks binding a little down (bug#53749).
(xref--show-common-initialize): Add sharp-quoting.
2024-05-15 00:22:05 +03:00
Eli Zaretskii
0a008401dc Avoid another warning (bug#70942). 2024-05-14 20:45:58 +03:00
Eli Zaretskii
4a973ce7e2 Fix some compilation warnings
Reported by Jacob Faibussowitsch <jacob.fai@gmail.com>

* lisp/net/eww.el (imagep): Declare.

* src/xdisp.c (note_fringe_highlight): Now compiled only if
HAVE_WINDOW_SYSTEM.
2024-05-14 20:42:11 +03:00
Andrea Corallo
060914d6c1 * lisp/gnus/nnatom.el (libxml-parse-xml-region): Declare to silence warning. 2024-05-14 17:48:39 +02:00
Illia Ostapyshyn
8074c08cd5 Use proper smime-keys entry for S/MIME signatures using OpenSSL
bug#67931

* doc/misc/emacs-mime.texi (MML Definition):
* lisp/gnus/mml.el (mml-parse-1): Add chainfile parameter to sign tags.
* lisp/gnus/mml-smime.el (mml-smime-openssl-sign-query): Include the
additional certificates from smime-keys in MML tag generation as
chainfile parameters.
(mml-smime-openssl-sign): Forward chainfile entries from the parsed tag
alist to smime-sign-buffer.
; * lisp/gnus/smime.el (smime-sign-region): Fix typo in documentation.
; (smime-sign-buffer): Improve documentation to match smime-sign-region.
2024-05-14 07:44:40 -07:00
Andrea Corallo
b87670b564 * Allow for optional function name parameter in 'ftype' declaration
* lisp/emacs-lisp/byte-run.el (defun-declarations-alist): Allow for
optional function name parameter in 'ftype' declaration.
2024-05-14 11:17:25 +02:00
Andrea Corallo
6e1bb713f6 Change 'type' declaration to 'ftype'
* lisp/window.el (get-lru-window, get-largest-window)
(one-window-p): Update function type declaration.
* lisp/subr.el (ignore, error, zerop, fixnump, bignump, lsh)
(last, eventp, mouse-movement-p, log10, memory-limit)
(internal-pop-keymap): Likewise.
* lisp/simple.el (count-lines, mark, string-empty-p): Likewise.
* lisp/files.el (parse-colon-path): Likewise.
* lisp/env.el (getenv): Likewise.
* lisp/emacs-lisp/regexp-opt.el (regexp-opt): Likewise.
* lisp/emacs-lisp/lisp.el (buffer-end): Likewise.
* lisp/emacs-lisp/comp.el (comp--final): Likewise.
* lisp/custom.el (custom-variable-p): Likewise.
* lisp/emacs-lisp/byte-run.el (defun-declarations-alist): Rename 'type'
-> 'ftype'.
2024-05-14 11:17:25 +02:00
Michael Albinus
041aa3ffc6 Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs 2024-05-14 10:50:17 +02:00
Michael Albinus
dd13ab0756 Trace Tramp user error
* lisp/net/tramp-androidsu.el (tramp-androidsu-maybe-open-connection):
Use `tramp-user-error' for the traces.
2024-05-14 10:49:52 +02:00
Po Lu
becdee7482 ; * lisp/net/tramp-androidsu.el (tramp-androidsu-handle-make-process): Typo. 2024-05-14 16:20:17 +08:00
Po Lu
65b0446633 Port tramp-androidsu to a wider variety of systems
* lisp/net/tramp-androidsu.el
(tramp-androidsu-maybe-open-connection): Search for `su' when
the connection is initiated; replace PATH of inferior shell with
trap-androidsu-remote-path.
(tramp-androidsu-handle-make-process): Do not provide username
if root.
2024-05-14 16:15:14 +08:00
Juri Linkov
407b88333b Add documentation about sorting Imenu completions (bug#70846)
* doc/emacs/programs.texi (Imenu): Document how Imenu completions
can be sorted.

* lisp/imenu.el (imenu-sort-function): Explain in the docstring
how to sort Imenu completions.
2024-05-14 09:55:52 +03:00