* lisp/emacs-lisp/seq.el (seq-concatenate): Remove confusing
`(fn TYPE SEQUENCE...)` which made `help-function-arglist`
return less informative results and wasn't even consistent with
the rest of the docstring.
* lisp/emacs-lisp/shortdoc-doc.el (sequence): Revert last
change, since it's now redundant.
* lisp/emacs-lisp/cl-macs.el (cl-lambda-list, cl-lambda-list1):
Fix &key specification to support empty lists of keyword
arguments (bug#80878). Fix due to Thuna <thuna.cing@gmail.com>.
* lisp/net/eww.el (eww-handle-link): The HTML rel attribute's
value is a space-separated set of keywords, so split it before
matching against known keywords (bug#80816).
Copyright-paperwork-exempt: yes
* src/coding.c: Remove file wide ignore pragma for
-Wunused-but-set-variable.
(detect_coding_XXX) <consumed_chars>: Mention that this variable might
need to be declared with the MAYBE_UNUSED attribute.
(detect_coding_utf_8, detect_coding_emacs_mule, detect_coding_iso_2022)
(encode_designation_at_bol, detect_coding_sjis, detect_coding_big5)
(detect_coding_ccl, detect_coding_charset) <consumed_chars>: Use the
MAYBE_UNUSED attribute.
A reparse will make the TSTreeCursor or TSNode to possibly point
to freed memory (because the TSTree they point to is freed.)
* src/treesit.c (treesit_pred_with_guard): New function.
(treesit_predicate_pred):
(treesit_eval_predicates):
(Ftreesit_query_capture):
(treesit_traverse_match_predicate):
(treesit_build_sparse_tree): Add guard that signals if buffer is
changed when calling predicate function.
(Qtreesit_buffer_changed): New symbol.
To decide if a `defalias` will define a command, we need to look inside
the `lambda` and search for an interactive spec. Until now we assumed
`defalias`s argument would take the shape of `(function (lambda ...))`,
which failed miserably for `transient-define-prefix` which
macroexpands to `(defalias 'foo (lambda ...))` instead.
So make sure we macroexpand the arg to turn the `(lambda ...)` into
`(function (lambda ...))` before we try to dig into it.
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--make-autoload):
Macroexpand the `defalias` argument before checking if it's an
interactive function.
We were using the wrong key when inserting entries into
treesit--query-cache, making the cache both ineffective and
liable to grow without bound. On very long sessions, the cache
could end up using hundreds.
* lisp/treesit.el (treesit--compile-query-with-cache): Use
correct cache key.
These warnings are emitted at least by Texinfo 7.2.
* doc/misc/calc.texi (Introduction): Conditionally set prev node to
avoid warning.
(Interactive Tutorial): Update chapter title to match node name and
menu entry.
(Top): Add description to `Interactive Tutorial' menu entry.
(Bug#80923)
Fido-mode is meant for ido-mode emulation, so it makes some
sense C-r and C-s moves forward and backward in the list as
ido-mode once did. The price to pay is losing easy access to
isearch-backward/forward in completions. In fido-vertical-mode,
this price is unreasonably high given C-p and C-n are the
natural bindings for moving about in the vertical list.
* lisp/icomplete.el (icomplete-fido-mode-map): Disable C-s and C-r
in fido-vertical-mode.
This is the one case out of 1902 where the C name didn't match the subr
name.
* src/xfns.c (Fx_display_last_user_time): renamed to Fx_display_set_last_user_time
* lisp/treesit.el (treesit-ensure-installed): Use
treesit-language-available-p for checking if a language is
installed. treesit-ready-p also checks for buffer size, etc, so
it's not the right check.
e72afa9dbf replaced nil, which is invalid as a face definition,
with ((t (:inherit default))), but that does not actually result in
an "empty" face, which doesn't set any attributes. Instead it doubles
down on all attributes set for the default face. Replace that with
((t)), which accomplishes what appears to have been the intention.
* lisp/net/shr.el (shr-h4, shr-h5, shr-h6):
* lisp/nxml/nxml-mode.el (nxml-text):
* lisp/progmodes/make-mode.el (makefile-shell): Use empty face
definition ((t)), instead of ((t (:inherit default))).
* lisp/format-spec.el (format-spec): Call format-spec substitution
functions in current buffer. I.e., in the same buffer in which
substitution expressions are evaluated. Previously functions were
instead called in the temporary buffer used to deal with FORMAT.
The solution used is far from perfect, but hopefully it helps more
often than it hurts. And since it affects only completion, we hope
the cases where it hurts won't be too serious. (bug#32215)
* lisp/minibuffer.el (completion--sifn-regardless-of-system-users):
New function.
(completion--file-name-table): Use it.
* lisp/vc/vc-src.el (vc-src-register): Support "registering"
directories in FILES.
(vc-src-rename-file): Fix implementation and support renaming
directories.
* test/lisp/vc/vc-tests/vc-tests.el (vc-test--rename-file)
(vc-test-src-version-diff): Skip parts that don't work with SRC.
(Bug#80862)
* doc/emacs/vc1-xtra.texi (Outstanding Changes): Rename node
from this ...
(Unintegrated Changes): ... to this (bug#80434). References
changed.
* etc/NEWS: Document the change.
* lisp/vc/vc-git.el (vc-git-topic-outgoing-base)
(vc-git-log-view-mode):
* lisp/vc/vc-hg.el (vc-hg-print-log, vc-hg-log-view-mode):
* lisp/vc/vc.el (vc-root-diff-outstanding, vc-diff-outstanding)
(vc-log-outstanding, vc-root-log-outstanding):
Rename from these ...
(vc-root-diff-unintegrated, vc-diff-unintegrated)
(vc-log-unintegrated, vc-root-log-unintegrated):
... to these (bug#80434). All uses changed.
(vc-log-view-type): Rename 'log-outstanding' type to
'log-unintegrated'. All uses changed.
* lisp/vc/vc-hg.el (vc-hg-annotate-show-revision-numbers): New
option.
(vc-hg-annotate-command): If it's nil, show changeset hashes not
revision numbers by passing "-c" not "-n" to 'hg annotate'.
(vc-hg-annotate-re): Update.
* etc/NEWS: Document the change.
This behavior is more expected than throwing an error,
as passing NULL (closed db connection) to 'sqlite3_close'
is a "harmless no-op" according to the documentation.
* src/sqlite.c (sqlite-close): Ignore already closed connections.
(Bug#80908)
Copyright-paperwork-exempt: yes
* lisp/emacs-lisp/bytecomp.el (byte-compile-file): Check
'no-byte-compile' before issuing a warning. This prevents
false-positives when running into .dir-locals.el or -pkg.el
files. (Bug#80352)
* lisp/emacs-lisp/package.el (package--removable-packages):
Handle the fact that 'package--dependencies' doesn't return the
package itself as a dependency, so we have to check
'package-selected-packages' separately. Also fix the way we
check the return value of 'package--dependencies', keeping in
mind that the value is an alist. (Bug#80907)
This is a partial reversion of 931e04a34b.
* lisp/emacs-lisp/package.el (package--builtin-alist): Add a
function that loads 'finder-inf', which in turn will populate
'package--builtins', if necessary, caching the result.
(package--upgradeable-packages, describe-package-1)
(package-menu--refresh, package--mapc, package-get-descriptor):
Use the function instead of the variable.
If a host parser has some ranges, and an embedded parser also
has some ranges, the final range used by the embedded parser
should be an intersection of the two. This patch adds this
logic.
* lisp/treesit.el (treesit--range-verbose): New variable.
(treesit--intersect-ranges):
(treesit--set-embed-ranges): New function.
(treesit--update-ranges-non-local):
(treesit--update-ranges-local): Use the new functions.
* test/src/treesit-tests.el:
(treesit-intersect-ranges): New test.