1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-05 19:31:02 -08:00
Commit graph

96997 commits

Author SHA1 Message Date
shipmints
bea00a0799 Add tramp-cleanup-bufferless-connections (bug#76417)
* doc/misc/tramp.texi (Cleanup remote connections): Add
'tramp-cleanup-bufferless-connections'.

* etc/NEWS: Announce 'tramp-cleanup-bufferless-connections'.

* lisp/net/tramp-cmds.el:
(tramp-list-remote-buffer-connections): New function.
(tramp-cleanup-bufferless-connections): New command.
(tramp-list-remote-buffers): Account for 'buffer-file-name'.
2025-02-25 11:34:49 +01:00
Michael Albinus
53eec34da1 Fix tramp-find-executable
* lisp/net/tramp-sh.el (tramp-find-executable): Use "command -pv",
it isbetter supported in different shells.  (Bug#76521)
2025-02-25 09:37:28 +01:00
Gerd Möllmann
4183705018 Improve menu-bar-item-at-x
* lisp/menu-bar.el (menu-bar-item-at-x): Handle case of duplicate keys
in the menu-bar definition.
2025-02-25 09:26:23 +01:00
Stefan Kangas
d1d85e0f35 Prefer incf to cl-incf in progmodes/*.el
* lisp/progmodes/bug-reference.el (bug-reference--overlay-bounds):
* lisp/progmodes/c-ts-common.el (c-ts-common-statement-offset):
* lisp/progmodes/compile.el (compilation--note-type):
* lisp/progmodes/ebrowse.el (ebrowse-files-table)
(ebrowse-fill-member-table, ebrowse-find-pattern)
(ebrowse-draw-member-short-fn, ebrowse-gather-statistics):
* lisp/progmodes/elixir-ts-mode.el
(elixir-ts--electric-pair-string-delimiter):
* lisp/progmodes/gdb-mi.el (gdb-thread-list-handler-custom):
* lisp/progmodes/grep.el (grep-filter):
* lisp/progmodes/hideif.el (hif-backward-comment, hif-__COUNTER__)
(hif-token-concatenation, hif-find-define):
* lisp/progmodes/js.el (js--pstate-is-toplevel-defun)
(js-beginning-of-defun, js-end-of-defun, js--pitems-to-imenu)
(js--imenu-to-flat, js-ts--syntax-propertize):
* lisp/progmodes/tcl.el (tcl--syntax-of-quote):
* lisp/progmodes/typescript-ts-mode.el
(tsx-ts--syntax-propertize-captures): Prefer incf to cl-incf.
2025-02-25 08:28:30 +01:00
Stefan Kangas
60b071e224 Make cl-gensym obsolete in favor of built-in gensym
* lisp/emacs-lisp/cl-macs.el (cl-gensym): Declare function
obsolete in favor of gensym, added in Emacs 26.1.  The only reason
for its existence is that it allows an integer argument, but
that's not really useful, so it's better to remove this complexity.
Ref: https://lists.gnu.org/r/emacs-devel/2017-09/msg00313.html
* doc/misc/cl.texi (Symbols, Creating Symbols, Efficiency Concerns)
(Obsolete Setf Customization): Don't document above obsolete function.
* lisp/emacs-lisp/cl-macs.el (cl--parse-loop-clause):
* lisp/emacs-lisp/edebug.el (edebug-make-form-wrapper):
* lisp/obsolete/cl.el (cl--function-convert, lexical-let):
* lisp/obsolete/thumbs.el (thumbs-temp-file):
* lisp/progmodes/eglot.el (eglot--lambda)
(eglot--when-live-buffer, eglot--when-buffer-window)
(eglot--collecting-xrefs, eglot--glob-parse):
* lisp/progmodes/flymake.el (flymake--run-backend):
* test/lisp/emacs-lisp/package-tests.el (with-package-test):
* test/lisp/progmodes/eglot-tests.el (eglot--guessing-contact):
* test/lisp/progmodes/elisp-mode-tests.el
(elisp-shorthand-read-buffer, elisp-shorthand-read-from-string): Prefer
plain gensym to cl-gensym in files that can depend on Emacs 26.1.
* lisp/jsonrpc.el (jsonrpc-lambda, jsonrpc-request): Prefer gensym to
cl-gensym only when defined, as this file supports Emacs 25.1
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-lib-test-gensym): Simplify
test as 'should' no longer uses cl-gensym.
2025-02-25 01:25:15 +01:00
Stefan Kangas
1a22bc0fd6 Use cl-with-gensyms in a few more cases
* doc/misc/cl.texi (Macro Bindings):
* lisp/emacs-lisp/comp.el (comp--with-sp):
* lisp/emacs-lisp/subr-x.el (with-buffer-unmodified-if-unchanged):
* lisp/eshell/em-extpipe.el (eshell-extpipe--or-with-catch):
* lisp/international/mule-cmds.el (with-locale-environment):
* lisp/kmacro.el (kmacro-menu--marks-exist-p):
* test/lisp/emacs-lisp/cl-extra-tests.el (cl-lib-test-remprop):
* test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-deduplicate):
* test/lisp/emacs-lisp/ert-tests.el (ert-test-special-operator-p):
* test/lisp/kmacro-tests.el (kmacro-tests-should-insert)
(kmacro-tests-should-match-message):
* test/lisp/replace-tests.el (replace-tests-with-undo): Use
cl-with-gensyms instead of bare gensym call.
2025-02-25 01:23:33 +01:00
João Távora
7bb53815d2 Eglot: add out-of-box support for neocmakelsp
* lisp/progmodes/eglot.el (eglot-server-programs): Add
neocmakelsp.
2025-02-24 23:38:15 +00:00
João Távora
e4c911adea Eglot: use eglot-advertise-cancellation in more situations
The async requests frequently issued by ElDoc are a significant
source of request pile-up on the server side (for some servers).

With this change, Eglot will issue additional LSP
$/cancelRequest notifications for in-flight requests of certain
kinds in the pre-command hook.

This required a small change to the 'jsonrpc-async-request'
entrypoint.

This feature is experimental.

* lisp/jsonrpc.el (jsonrpc-async-request): No longer returns nil.

* lisp/progmodes/eglot.el (eglot--inflight-async-requests): New variable.
(eglot--cancel-inflight-async-requests): New function.
(eglot--async-request): New function.
(eglot--pre-command-hook): Call eglot--cancel-inflight-async-requests.
(eglot-signature-eldoc-function, eglot-hover-eldoc-function)
(eglot-highlight-eldoc-function, eglot-code-action-suggestion):
Use eglot--async-request.
2025-02-24 23:38:15 +00:00
Mauro Aranda
363adcc69d Fix bad fontification of inactive widgets
* lisp/wid-edit.el (widget-specify-inactive): When a widget is
already inactive, still move the overlay to the desired
positions.  Improve docstring.  (Bug#69941)

* doc/misc/widget.texi (default): Document the need to call the
:deactivate function when modifying an inactive widget.

* test/lisp/wid-edit-tests.el
(widget-test-modification-of-inactive-widget): New test
2025-02-24 19:55:31 -03:00
Stefan Kangas
60232a30e3 ; Set :version on recently changed user option
* lisp/vc/vc-hooks.el (vc-directory-exclusion-list): Set :version.
2025-02-24 22:45:58 +01:00
Stefan Kangas
706970fc25 Add Obsolete-since header to hashcash.el
* lisp/obsolete/hashcash.el: Add Obsolete-since header.  (Bug#76195)
2025-02-24 22:45:58 +01:00
Stefan Kangas
074b32d53f Move hashcash.el to lisp/obsolete
* lisp/mail/hashcash.el: Move from here...
* lisp/obsolete/hashcash.el: ...to here.  (Bug#76195)
2025-02-24 22:45:58 +01:00
Stefan Kangas
250f421475 Drop hashcash support from Gnus and Message mode
* lisp/gnus/gnus.el (gnus-install-group-spam-parameters): Remove
'spam-use-hashcash' option.
* lisp/gnus/message.el (message-generate-hashcash): Mark as
obsolete, default to nil unconditionally.
(message-send-mail, message-setup-1, message-resend): Don't
generate hashcash headers.
* lisp/gnus/spam.el (hashcash): Don't require.
(spam-use-hashcash):
(spam-check-hashcash): Mark as obsolete.
(spam-install-hooks): Don't install 'spam-use-hashcash' hook.
* doc/misc/message.texi (Mail Headers): Don't document above
obsoleted variable 'message-generate-hashcash'.
* doc/misc/gnus.texi (Hashcash): Delete section.
(Anti-spam Hashcash Payments): Delete subsection.
(Extending the Spam package): Don't mention Hashcash.  (Bug#76195)
2025-02-24 22:45:58 +01:00
Stefan Kangas
7d5fe06e79 Make cl-declare obsolete
* lisp/emacs-lisp/cl-macs.el (cl-declare): Make obsolete.
* doc/misc/cl.texi (Declarations): Don't document above obsolete
macro.  (Bug#63288)
2025-02-24 22:21:46 +01:00
Stefan Kangas
c9e681aa0c Move buffer related functions from ert-x.el to ert.el
* lisp/emacs-lisp/ert-x.el (ert--text-button)
(ert--format-test-buffer-name, ert--test-buffers)
(ert--test-buffer-button, ert--test-buffer-button-action)
(ert--call-with-test-buffer, ert-with-test-buffer)
(ert-with-buffer-selected, ert-kill-all-test-buffers)
(ert-call-with-buffer-renamed, ert-buffer-string-reindented): Move
from here...
* lisp/emacs-lisp/ert.el (ert--text-button)
(ert--format-test-buffer-name, ert--test-buffers)
(ert--test-buffer-button, ert--test-buffer-button-action)
(ert--call-with-test-buffer, ert-with-test-buffer)
(ert-kill-all-test-buffers, ert-with-buffer-selected)
(ert-call-with-buffer-renamed, ert-with-buffer-renamed): ...to
here.
* doc/misc/ert.texi (Helpers for Buffers): Break out new section...
(Helper Functions): ...from here.
* lisp/emacs-lisp/ert-x.el (ert-with-test-buffer-selected): Move
obsolete definition to the end of the file.

* test/lisp/emacs-lisp/ert-x-tests.el
(ert--hash-table-to-alist, ert-test-test-buffers)
(ert-test-with-buffer-selected/current)
(ert-test-with-buffer-selected/selected)
(ert-test-with-buffer-selected/nil-buffer)
(ert-test-with-buffer-selected/modification-hooks)
(ert-test-with-buffer-selected/read-only)
(ert-test-with-buffer-selected/return-value)
(ert-test-with-test-buffer-selected/modification-hooks)
(ert-test-with-test-buffer-selected/read-only)
(ert-test-with-test-buffer-selected/return-value)
(ert-test-with-test-buffer-selected/buffer-name): Move tests from
here...
* test/lisp/emacs-lisp/ert-tests.el
(ert--hash-table-to-alist, ert-test-test-buffers)
(ert-test-with-buffer-selected/current)
(ert-test-with-buffer-selected/selected)
(ert-test-with-buffer-selected/nil-buffer)
(ert-test-with-buffer-selected/modification-hooks)
(ert-test-with-buffer-selected/read-only)
(ert-test-with-buffer-selected/return-value)
(ert-test-with-test-buffer-selected/selected)
(ert-test-with-test-buffer-selected/modification-hooks)
(ert-test-with-test-buffer-selected/read-only)
(ert-test-with-test-buffer-selected/return-value)
(ert-test-with-test-buffer-selected/buffer-name): ...to here.
* test/lisp/progmodes/hideshow-tests.el (ert-x):
* test/lisp/simple-tests.el (ert-x):
* test/lisp/whitespace-tests.el (ert-x): Don't require.
2025-02-24 20:45:41 +01:00
Stefan Kangas
d9f165b129 ; Delete outdated comment from ert-x.el 2025-02-24 20:45:19 +01:00
Stefan Kangas
13ca18e1f7 Support selecting buffer in ert-with-test-buffer
* lisp/emacs-lisp/ert-x.el (ert-with-test-buffer): Add new keyword
argument :selected to make the buffer current and selected.
(ert-with-test-buffer-selected): Make obsolete and redefine in
terms of ert-with-test-buffer.

* doc/misc/ert.texi (Helper Functions): Document above new
:selected keyword argument, and remove documentation of
ert-with-test-buffer-selected.

* test/lisp/emacs-lisp/ert-x-tests.el
(ert-test-with-test-buffer-selected/selected)
(ert-test-with-test-buffer-selected/modification-hooks)
(ert-test-with-test-buffer-selected/read-only)
(ert-test-with-test-buffer-selected/return-value)
(ert-test-with-test-buffer-selected/buffer-name):
* test/lisp/progmodes/hideshow-tests.el
(hideshow-tests-with-temp-buffer-selected):
* test/lisp/simple-tests.el (kill-whole-line-invisible)
(kill-whole-line-read-only, kill-whole-line-after-other-kill)
(kill-whole-line-buffer-boundaries)
(kill-whole-line-line-boundaries):
* test/lisp/whitespace-tests.el
(whitespace-tests--with-test-buffer, whitespace-tests--global): Use
ert-with-test-buffer instead of ert-with-test-buffer-selected.
2025-02-24 20:43:53 +01:00
Stefan Kangas
637c73d3a8 Use cl-with-gensyms in with-sqlite-transaction
* lisp/sqlite.el (cl-lib): Require at compile-time.
(with-sqlite-transaction): Use cl-with-gensyms.
2025-02-24 19:35:55 +01:00
Stefan Kangas
0eada9e1d3 Prefer incf to cl-incf in textmodes/*.el
* lisp/textmodes/css-mode.el (css--rgb-color):
* lisp/textmodes/reftex-dcr.el (reftex-view-regexp-match):
* lisp/textmodes/reftex-global.el (reftex-find-duplicate-labels)
(reftex-renumber-simple-labels, reftex-translate):
* lisp/textmodes/reftex-index.el (reftex-index-select-tag)
(reftex-index-phrases-info, reftex-query-index-phrase):
* lisp/textmodes/reftex-parse.el (reftex-where-am-I)
(reftex-what-macro, reftex-nth-arg, reftex-section-number):
* lisp/textmodes/reftex-ref.el (reftex-uniquify-label):
* lisp/textmodes/reftex-sel.el (reftex-insert-docstruct):
* lisp/textmodes/reftex.el (reftex-next-multifile-index)
(reftex-compile-variables, reftex-parse-args)
(reftex-select-external-document):
* lisp/textmodes/rst.el (rst-display-hdr-hierarchy)
(rst-toc-insert-children, rst-apply-indented-blocks)
(rst-enumerate-region, rst-convert-bullets-to-enumeration):
* lisp/textmodes/tex-mode.el (tex-count-words): Prefer incf to cl-incf.
2025-02-24 19:27:47 +01:00
Robert Pluim
ee04b7da80 * lisp/msb.el (msb-mode-map): Use 'defvar-keymap'. 2025-02-24 18:56:30 +01:00
Juri Linkov
24e8477aa2 Better support for nil enable-local-variables in vc-find-revision-no-save
* lisp/vc/diff-mode.el (diff-syntax-fontify-props):
* lisp/vc/vc.el (vc-find-revision-no-save):
Use enable-local-variables as is only when it's one of these values:
:safe, :all, or nil.  Otherwise, for all remaining values that query,
use :safe.  Also use non-nil 'find-file' arg of 'normal-mode'.
https://lists.gnu.org/archive/html/emacs-devel/2025-02/msg00897.html
2025-02-24 19:51:13 +02:00
Robert Pluim
0c8ec155f6 Use 'password-colon-equivalents' when matching "Re" variants
* lisp/mail/mail-utils.el (mail--wrap-re-regexp): Use
'password-colon-equivalents'.
2025-02-24 18:31:36 +01:00
Rudi Schlatte
bca04d3c58 Add ".jj" to vc-directory-exclusion-list
* lisp/vc/vc-hooks.el (vc-directory-exclusion-list): Add ".jj", a
directory used by the jujutsu version control system.  (Bug#76524)
2025-02-24 18:24:41 +01:00
Martin Rudalics
a205d55452 Optionally have 'display-buffer' reuse windows of indirect buffers
* lisp/window.el (window-indirect-buffer-p): New function.
(get-buffer-window-list): New argument INDIRECT.
(display-buffer-reuse-window): New alist entry 'reuse-indirect'
to reuse a window indirectly related to the BUFFER argument.
* doc/lispref/windows.texi (Buffers and Windows): Describe new
function 'window-indirect-buffer-p' and new argument INDIRECT of
'get-buffer-window-list'.
(Buffer Display Action Functions): Describe new action alist
entry 'reuse-indirect'.
* etc/NEWS: Announce new argument for 'get-buffer-window-list' and
new 'display-buffer' action alist entry 'reuse-indirect'.
2025-02-24 10:17:10 +01:00
Gerd Möllmann
02fbdbf4ff Handle case of not knowing a frame when mouse moved
* lisp/xt-mouse.el (xterm-mouse--handle-mouse-movement): Don't call
display--update-for-mouse-movement if we don't have a frame.
2025-02-24 05:51:41 +01:00
Stefan Kangas
45f5f718a0 Use cl-with-gensyms in ert-with-message-capture
* lisp/emacs-lisp/ert-x.el (ert-with-message-capture): Use
cl-with-gensyms.
2025-02-24 00:45:20 +01:00
Stefan Kangas
ae8522af41 Prefer incf to cl-incf in gnus/*.el
* lisp/gnus/gnus-agent.el (gnus-agent-load-local)
(gnus-agent-expire-group-1, gnus-agent-update-files-total-fetched-for):
* lisp/gnus/gnus-art.el (gnus-article-header-rank):
* lisp/gnus/gnus-async.el (gnus-async-wait-for-article):
* lisp/gnus/gnus-cache.el (gnus-cache-update-file-total-fetched-for):
* lisp/gnus/gnus-registry.el (gnus-registry-import-eld):
* lisp/gnus/gnus-salt.el (gnus-pick-line-number, gnus-tree-minimize)
(gnus-generate-vertical-tree):
* lisp/gnus/gnus-spec.el (gnus-correct-substring):
* lisp/gnus/gnus-start.el (gnus-ask-server-for-new-groups, gnus-method-rank):
* lisp/gnus/gnus-sum.el (gnus-data-update-list)
(gnus-summary-number-of-articles-in-thread, gnus-build-sparse-threads)
(gnus-summary-prepare-threads, gnus-invisible-cut-children)
(gnus-summary-limit-children, gnus-expunge-thread)
(gnus-summary-refer-references, gnus-summary-update-mark)
(gnus-summary-hide-all-threads, gnus-summary-save-parts-1):
* lisp/gnus/gnus-topic.el (gnus-topic-articles-in-topic)
(gnus-topic-prepare-topic, gnus-topic-display-missing-topic)
(gnus-topic-update-topic-line):
* lisp/gnus/gnus-uu.el (gnus-uu-post-encoded):
* lisp/gnus/gnus-win.el (gnus-configure-frame):
* lisp/gnus/mail-source.el (mail-source-fetch-directory)
(mail-source-fetch-maildir, mail-source-fetch-imap):
* lisp/gnus/message.el (message-remove-header)
(message-remove-first-header, message-make-caesar-translation-table):
* lisp/gnus/mm-encode.el (mm-qp-or-base64):
* lisp/gnus/mml.el (mml-compute-boundary, mml-compute-boundary-1):
* lisp/gnus/nnatom.el (nnatom--read-links):
* lisp/gnus/nnbabyl.el (nnbabyl-retrieve-headers):
* lisp/gnus/nndoc.el (nndoc-oe-dbx-dissection, nndoc-dissect-buffer)
(nndoc-dissect-mime-parts-sub):
* lisp/gnus/nneething.el (nneething-retrieve-headers):
* lisp/gnus/nnheader.el (nnheader-generate-fake-message-id)
(nnheader-insert-head, nnheader-translate-file-chars):
* lisp/gnus/nnimap.el (nnimap-find-wanted-parts-1)
(nnimap-retrieve-group-data-early, nnimap-send-command):
* lisp/gnus/nnmail.el (nnmail-process-babyl-mail-format)
(nnmail-process-unix-mail-format, nnmail-process-mmdf-mail-format)
(nnmail-get-new-mail-1):
* lisp/gnus/nnmaildir.el (nnmaildir--scan):
* lisp/gnus/nnrss.el (nnrss-check-group):
* lisp/gnus/nnselect.el (nnselect-request-thread):
* lisp/gnus/nnspool.el (nnspool-retrieve-headers):
* lisp/gnus/nntp.el (nntp-retrieve-headers)
(nntp-finish-retrieve-group-infos, nntp-retrieve-groups)
(nntp-retrieve-articles, nntp-retrieve-headers-with-xover):
* lisp/gnus/nnvirtual.el (nnvirtual-create-mapping):
* lisp/gnus/nnweb.el (nnweb-google-parse-1, nnweb-google-create-mapping)
(nnweb-gmane-create-mapping):
* lisp/gnus/spam.el (spam-resolve-registrations-routine): Prefer incf to
cl-incf.
2025-02-23 21:25:55 +01:00
Stefan Kangas
7972a3448d Mark cdl.el as obsolete
* lisp/obsolete/cdl.el: Add Obsolete-since header.  It is fully
replaceable by shell-command and shell-command-on-region.
2025-02-23 14:57:18 +01:00
Stefan Kangas
827694ff28 Move cdl.el to obsolete/cdl.el
* lisp/cdl.el: Move from here...
* lisp/obsolete/cdl.el: ...to here.
2025-02-23 14:55:40 +01:00
Manuel Giraud
93f62f10f7 Fix DocView's text conversion on tty Emacs
* lisp/doc-view.el (doc-view-open-text): Defaults to first page
should `doc-view-current-page' return nil.  (Bug#72305)
2025-02-23 14:44:07 +01:00
Joseph Turner
71a4670a9f
Upgrade out-of-date VC package dependencies
* lisp/emacs-lisp/package-vc.el (package-vc-install-dependencies): Pass
the specified package version when checking if a package is installed.

(Bug#73781)
2025-02-23 12:22:16 +01:00
Martin Rudalics
499da9e1a9 Optionally inhibit implied resizing while frame is made (Bug#76275)
* src/frame.c (frame_inhibit_resize): Handle new value 'force'
for 'frame-inhibit-implied-resize' (Bug#76275).
(frame_inhibit_implied_resize): New value 'force' to inhibit
implied resizing while a new frame is made.
* lisp/cus-start.el (frame-inhibit-implied-resize): Make new
value 'force' customizable.
* doc/lispref/frames.texi (Implied Frame Resizing): Describe new
value 'force' of 'frame-inhibit-implied-resize'.
* etc/NEWS: Announce new value 'force' of
'frame-inhibit-implied-resize'.
2025-02-23 11:01:20 +01:00
Martin Rudalics
99410ba902 Implement new user option 'quit-window-kill-buffer' (Bug#76248)
* lisp/window.el (quit-window-kill-buffer): New option.
(quit-window): Handle it.
* doc/lispref/windows.texi (Quitting Windows): Describe new
option 'quit-window-kill-buffer'.
* etc/NEWS: Announce new option 'quit-window-kill-buffer'.
2025-02-23 10:19:49 +01:00
Eli Zaretskii
3a1195894e ; * lisp/emacs-lisp/cond-star.el (cond*): Fix whitespace. 2025-02-23 07:51:44 +02:00
Michael Heerdegen
8b0043ffd6 Fix diary not displaying some entries in european style
* lisp/calendar/calendar.el (diary-european-date-forms): Correctly
recognize times using a dot as separator.  (Bug#53702)
2025-02-23 06:34:58 +01:00
Stefan Kangas
dfce17103c ; Delete out-of-date comment in float-sup.el
* lisp/emacs-lisp/float-sup.el: Delete out-of-date comment.
2025-02-23 06:34:58 +01:00
Stefan Kangas
96e066be3d Mark kermit.el as obsolete
While Kermit is still developed, this Emacs support library is
essentially unchanged since it was added to Emacs, which seems to have
been in 1988.  It is also based on the old pre-Emacs 20 shell mode, so
it's not clear if it even works, and much less if it is relevant with
Kermit from this century.

There is also this modern alternative, from 1994, which seems far
more complete: https://www.kermitproject.org/archive.html#emacs

The bug tracker has stayed silent, so if anyone is still using it, they
will have to report a bug and ask us to unobsolete it.

* lisp/obsolete/kermit.el: Add Obsolete-since header.  Add link to
alternative library at kermitproject.org.
2025-02-23 06:34:58 +01:00
Stefan Kangas
29a7f63b5f Move kermit.el to obsolete/kermit.el
* lisp/kermit.el: Move from here...
* lisp/obsolete/kermit.el: ...to here.
2025-02-23 06:34:58 +01:00
Mauro Aranda
f549cedaa2 Fix comparison of current values for the key-sequence :type
* lisp/cus-edit.el (custom-variable-modified-p): Round-trip
the option value before comparing it against the widget's value.
This mostly fixes comparison against the obsolete key-sequence
widget, but could fix other corner cases, when the widget
accepts different types as values.  (Bug#76156)

* test/lisp/cus-edit-tests.el (cus-edit-test-bug76156)
(cus-edit-test-bug76156-2): New test options.
(cus-edit-test-unedited-option): New test.
2025-02-23 01:15:24 +01:00
Jostein Kjønigsen
2044f6d959 Improve fontification of docker-files
Add support for fontifying the following grammar-elements:
- image-declarations (image-name, image-tag & image alias)
- strings in more general terms
- string-expansion statements
- treat path-values as strings
- identifiers names for ENV and ARG statements
- argument values for ENV and ARG statements
* lisp/progmodes/dockerfile-ts-mode.el (dockerfile-ts-mode)
(dockerfile-ts-mode--font-lock-settings): Improve fontification.
(Bug#76481)
2025-02-23 01:03:00 +01:00
Stefan Kangas
ae37a1cc3d Prefer incf to cl-incf in emacs-lisp/*.el
* lisp/emacs-lisp/backtrace.el (backtrace--print-func-and-args):
* lisp/emacs-lisp/bindat.el (bindat--type):
* lisp/emacs-lisp/bytecomp.el (byte-recompile-directory):
* lisp/emacs-lisp/chart.el (chart-file-count):
* lisp/emacs-lisp/cl-extra.el (cl-parse-integer, cl--print-table):
* lisp/emacs-lisp/cl-generic.el (cl--defmethod-doc-pos):
* lisp/emacs-lisp/cl-indent.el (common-lisp-loop-part-indentation)
(common-lisp-indent-function-1, lisp-indent-defmethod):
* lisp/emacs-lisp/cl-lib.el (cl--set-substring):
* lisp/emacs-lisp/cl-macs.el (cl--parse-loop-clause):
* lisp/emacs-lisp/cl-preloaded.el (cl-struct-define):
* lisp/emacs-lisp/cl-print.el (cl-print--cons-tail)
(cl-print--vector-contents, cl-print--struct-contents)
(cl-print--string-props):
* lisp/emacs-lisp/cl-seq.el (cl-substitute):
* lisp/emacs-lisp/comp-cstr.el (comp--range-union)
(comp--range-intersection):
* lisp/emacs-lisp/comp.el (comp-vec-append, comp--gen-counter)
(comp--op-case, comp--limplify-lap-inst, comp--limplify-block)
(comp--limplify-function, comp--maybe-add-vmvar, comp--fwprop*):
* lisp/emacs-lisp/edebug.el (edebug--called-interactively-skip):
* lisp/emacs-lisp/eldoc.el (eldoc--invoke-strategy):
* lisp/emacs-lisp/elp.el (elp--make-wrapper):
* lisp/emacs-lisp/ert-x.el (ert-kill-all-test-buffers):
* lisp/emacs-lisp/ert.el (ert--stats-set-test-and-result)
(ert-write-junit-test-summary-report):
* lisp/emacs-lisp/memory-report.el (memory-report--symbol-plist)
(memory-report--object-size-1):
* lisp/emacs-lisp/oclosure.el (oclosure--index-table)
(oclosure--define-functions):
* lisp/emacs-lisp/package.el (package-menu--perform-transaction):
* lisp/emacs-lisp/smie.el (smie-set-prec2tab, smie-prec2->grammar)
(smie-config--guess, smie-config--guess-1):
* lisp/emacs-lisp/syntax.el (syntax-propertize-rules)
(syntax-ppss--update-stats):
* lisp/emacs-lisp/track-changes.el (track-changes--after): Prefer incf
to cl-incf.
2025-02-23 00:38:22 +01:00
Stefan Kangas
9d7d4db7eb Prefer decf to cl-decf
* lisp/auth-source-pass.el (auth-source-pass--find-match-many):
* lisp/calendar/time-date.el (decoded-time-add)
(decoded-time--alter-month, decoded-time--alter-day):
* lisp/dired.el (dired--move-to-next-line):
* lisp/dom.el (dom-pp):
* lisp/emacs-lisp/cl-macs.el (cl--transform-lambda):
* lisp/emacs-lisp/cl-print.el (cl-print-to-string-with-limit):
* lisp/emacs-lisp/cl-seq.el (cl-fill, cl-replace, cl-substitute):
* lisp/emacs-lisp/comp-cstr.el (comp--range-union)
(comp--range-intersection):
* lisp/emacs-lisp/comp.el (comp-vec-prepend, comp--emit-narg-prologue):
* lisp/emacs-lisp/edebug.el (edebug--strip-instrumentation):
* lisp/emacs-lisp/eldoc.el (eldoc--invoke-strategy):
* lisp/emacs-lisp/pp.el (pp--format-definition):
* lisp/emacs-lisp/smie.el (smie-config--guess-1):
* lisp/eshell/esh-io.el (eshell-close-handle, eshell-set-output-handle):
* lisp/gnus/gnus-async.el (gnus-async-prefetch-article):
* lisp/gnus/gnus-group.el (gnus-group-mark-group)
(gnus-group-yank-group):
* lisp/gnus/gnus-salt.el (gnus-tree-forward-line):
* lisp/gnus/gnus-score.el (gnus-decay-scores):
* lisp/gnus/gnus-srvr.el (gnus-browse-toggle-subscription-at-point):
* lisp/gnus/gnus-sum.el (gnus-build-sparse-threads, gnus-parent-headers)
(gnus-update-marks, gnus-summary-work-articles)
(gnus-summary-refer-parent-article, gnus-summary-next-thread)
(gnus-read-header, gnus-summary-insert-new-articles):
* lisp/gnus/gnus-topic.el (gnus-topic-forward-topic):
* lisp/gnus/gnus.el (gnus-short-group-name):
* lisp/gnus/message.el (message-remove-first-header)
(message-shorten-references, message-insert-screenshot):
* lisp/gnus/mm-url.el (mm-url-insert):
* lisp/gnus/nnselect.el (nnselect-push-info):
* lisp/ibuffer.el (ibuffer-backward-line, ibuffer-forward-line)
(ibuffer-map-lines):
* lisp/icomplete.el (icomplete--render-vertical):
* lisp/image/image-dired-external.el (image-dired-create-thumb-1):
* lisp/image/image-dired.el (image-dired-delete-char):
* lisp/mail/ietf-drums-date.el (ietf-drums-date--tokenize-string):
* lisp/mh-e/mh-utils.el (mh-sub-folders-parse):
* lisp/minibuffer.el (minibuffer-completion-help):
* lisp/mpc.el (mpc-cmd-move, mpc-songpointer-refresh-hairy):
* lisp/net/eww.el (eww-process-text-input):
* lisp/net/pop3.el (pop3-wait-for-messages, pop3-uidl-stat)
(pop3-uidl-dele):
* lisp/net/shr-color.el (shr-color-hue-to-rgb):
* lisp/play/5x5.el (5x5-up, 5x5-left):
* lisp/play/decipher.el (decipher-read-alphabet, decipher--digram-total)
(decipher-analyze-buffer):
* lisp/play/hanoi.el (hanoi-insert-ring, hanoi-move-ring):
* lisp/profiler.el (profiler-format-number)
(profiler-calltree-build-unified):
* lisp/progmodes/antlr-mode.el (antlr-next-rule, antlr-indent-line):
* lisp/progmodes/c-ts-common.el (c-ts-common-statement-offset):
* lisp/progmodes/ebrowse.el
(ebrowse-cyclic-display-next/previous-member-list):
* lisp/progmodes/hideif.el (hif-backward-comment):
* lisp/progmodes/js.el (js-beginning-of-defun, js-end-of-defun)
(js-ts--syntax-propertize):
* lisp/progmodes/typescript-ts-mode.el
(tsx-ts--syntax-propertize-captures):
* lisp/rect.el (rectangle--*-char):
* lisp/term.el (term-emulate-terminal):
* lisp/textmodes/reftex-cite.el (reftex-do-citation):
* lisp/textmodes/reftex-index.el (reftex-index-next-phrase):
* lisp/textmodes/reftex-parse.el (reftex-init-section-numbers):
* lisp/textmodes/reftex-sel.el (reftex-select-unmark):
* lisp/textmodes/reftex.el (reftex-silence-toc-markers):
* lisp/treesit.el (treesit-navigate-thing):
* lisp/vc/diff-mode.el (diff-sanity-check-context-hunk-half,
(diff-sanity-check-hunk):
* lisp/vc/pcvs-util.el (cvs-first):
* lisp/vc/smerge-mode.el (smerge-get-current):
* lisp/vc/vc-hg.el (vc-hg--glob-to-pcre):
* test/lisp/net/socks-tests.el
(socks-tests-perform-hello-world-http-request):
* test/src/buffer-tests.el (test-overlay-randomly): Prefer decf to
cl-defc in all code where we can.
2025-02-23 00:38:22 +01:00
Stefan Kangas
95fee880e4 New macros incf and decf
* lisp/emacs-lisp/cl-lib.el (cl-incf, cl-decf): Move macros from here...
* lisp/emacs-lisp/gv.el (incf, decf): ...to here.  Make old names into
aliases, documented as deprecated.
* lisp/obsolete/cl.el: Don't alias incf and decf.

* test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-test-incf)
(cl-lib-test-decf): Move tests from here...
* test/lisp/emacs-lisp/gv-tests.el (gv-incf, gv-decf): ...to here.

* doc/lispref/numbers.texi (Arithmetic Operations):
* lisp/emacs-lisp/shortdoc.el (number): Document incf and decf.

* doc/lispref/variables.texi (Multisession Variables):
* doc/misc/cl.texi (Organization, Modify Macros, Modify Macros)
(Modify Macros, Macro Bindings, For Clauses, Property Lists)
(Structures, Efficiency Concerns, Obsolete Setf Customization): Delete
cl-incf and cl-decf documentation, moving any relevant parts to lispref.
Delete some parts that seem to primarily regard implementation details
that do not warrant inclusion in lispref.  Update all examples to use
incf/decf.
2025-02-23 00:38:22 +01:00
Mauro Aranda
44a1c4a9ae Fix last commit to wid-edit.el
* lisp/wid-edit.el (widget-editable-list-entry-create): Don't
use save-excursion when indenting.  Previously, it was needed
because we inserted the :entry-format string, but we don't do
that anymore.  (Bug#53606)

https://lists.gnu.org/archive/html/emacs-devel/2025-02/msg00958.html
2025-02-22 23:04:14 +01:00
Stefan Monnier
c830caab2c (help--append-keystrokes-help): Fix bug#76341
* lisp/help.el (help--append-keystrokes-help): Silence the help message
when there is no help key.
2025-02-22 14:57:25 -05:00
Juri Linkov
1ffa052113 * lisp/treesit.el (treesit-up-list, treesit-outline-level): Improve.
Try to get the parent parser host node that contains the
embedded parser and continue the search from it (bug#76398).
2025-02-22 21:52:39 +02:00
Eli Zaretskii
ef8fdd269a Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs 2025-02-22 17:52:15 +02:00
Philip Kaludercic
72d7f19226
Fix bug where VC packages were missing summaries
* lisp/emacs-lisp/package-vc.el
(package-vc--generate-description-file): Run the heuristic to
determine the package summary if the current description is just
the default package summary.  (Bug#76065)
2025-02-22 16:05:29 +01:00
Stefan Kangas
702cb123fa ; Fix typos 2025-02-22 14:48:29 +01:00
Lockywolf
ce28916282 recentf.el: Add verbosity option
* lisp/recentf.el (recentf-show-messages): New defcustom to
control verbosity.
(recentf-save-list): Use that to control verbosity.  (Bug#67946)
2025-02-22 15:47:53 +02:00