Previously Emacs only looks for filenames like
libtree-sitter-json.so.0.0. Now Emacs also look for filenames
like libtree-sitter-json.so.15.0.
* src/treesit.c:
(treesit_load_language_push_for_each_suffix): Add versioned
candidate to candidate list too.
The docstring already warns against calling signal with a nil
error symbol, which is for internal use only, but we can avoid crashing
in this case.
* src/eval.c (Fsignal): Produce a "peculiar error" for more arguments
involving non-lists.
The previous fix fixed the problem that treesit-parser-create
always use the current buffer, but that introduce another subtle
problem: if an indirect buffer creates a parser, the parser
saves the base buffer rather than the indirect buffer. In Emacs
29, if you create a parser in an indirect buffer, the parser
saves the indirect buffer. This change of behavior breaks some
existing use-cases for people using indirect buffer with
tree-sitter.
In Emacs 31, indirect buffers and base buffer get their own
parser list, so this problem doesn't exist anymore. The fix is
only for Emacs 30.
* src/treesit.c (Ftreesit_parser_create): Use the buffer that's
given to treesit-parser-create, even if it's an indirect buffer.
* src/frame.c (delete_frame): Ignore tooltip frames when looking
for other frames on the same terminal. (Bug#76842)
(cherry picked from commit d2445c8c23)
* src/android.c (android_run_select_thread, android_init_events)
(android_select): Enable self-pipes on all Android versions <= 21.
The Android C library provides a functioning pselect on these
systems, but it does not apply the signal mask atomically.
(android_run_select_thread): Correct typo. This never produced
any adverse consequences, as the relevant signals would already
have been blocked by `setupSystemThread'.
Do not merge to master.
* src/keymap.c (Fcurrent_active_maps): For clicks on mode-line and
header-line, always override the keymaps at buffer position.
(Bug#75219)
(cherry picked from commit c41ea047a4)
* src/treesit.c (treesit_sync_visible_region): Use character position
instead of byte position when comparing to ranges, because the
ranges are in character position.
* src/minibuf.c (Fcompleting_read): Move part of doc string of
'read-from-minibuffer' to doc string of this function. Suggested
by Eshel Yaron <me@eshelyaron.com>.
* src/image.c (init_svg_functions, svg_load_image): The first
official version that introduces
'rsvg_handle_get_pixbuf_and_error' is 2.59.0 not 2.58.0.
(Bug#74606)
* src/frame.c (gui_set_scroll_bar_width)
(gui_set_scroll_bar_height): When the new size equals the old one
do not reset size to default size (Bug#74435).
* src/treesit.c (syms_of_treesit) <tree-sitter--library-abi>: New
internal variable.
* lisp/term/w32-win.el (dynamic-library-alist): Use
'tree-sitter--library-abi' to select a proper libtree-sitter DLL
version.
The original implementation went too far and caused unexpected
results.
* src/buffer.c (reset_buffer_local_variables): Second argument is
now 'int', and can be 0, 1, or 2.
(Fkill_all_local_variables): Call 'reset_buffer_local_variables'
with 2nd argument 2 if KILL-PERMANENT is non-nil. (Bug#74091)