From: Yuan Fu Date: Thu, 26 Jan 2023 07:12:41 +0000 (-0800) Subject: Fix call to treesit_record_change in insdel.c X-Git-Tag: emacs-29.0.90~593 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=4bd06ce2a9fa1601aff5a5fcab7411e5fce20d28;p=emacs.git Fix call to treesit_record_change in insdel.c The start position of the change shouldn't be PT_BYTE, IIUC PT_BYTE is actually the end position. * src/insdel.c (insert_from_buffer): Move to here. (insert_from_buffer_1): Remove call to treesit_record_change. --- diff --git a/src/insdel.c b/src/insdel.c index b51767bf527..33dea569b24 100644 --- a/src/insdel.c +++ b/src/insdel.c @@ -1175,9 +1175,19 @@ insert_from_buffer (struct buffer *buf, { ptrdiff_t opoint = PT; +#ifdef HAVE_TREE_SITTER + ptrdiff_t obyte = PT_BYTE; +#endif + insert_from_buffer_1 (buf, charpos, nchars, inherit); signal_after_change (opoint, 0, PT - opoint); update_compositions (opoint, PT, CHECK_BORDER); + +#ifdef HAVE_TREE_SITTER + eassert (PT_BYTE >= 0); + eassert (PT_BYTE >= obyte); + treesit_record_change (obyte, obyte, PT_BYTE); +#endif } static void @@ -1305,12 +1315,6 @@ insert_from_buffer_1 (struct buffer *buf, /* Insert those intervals. */ graft_intervals_into_buffer (intervals, PT, nchars, current_buffer, inherit); -#ifdef HAVE_TREE_SITTER - eassert (outgoing_nbytes >= 0); - eassert (PT_BYTE >= 0); - treesit_record_change (PT_BYTE, PT_BYTE, PT_BYTE + outgoing_nbytes); -#endif - adjust_point (nchars, outgoing_nbytes); }