summaryrefslogtreecommitdiff
path: root/src/insdel.c
diff options
context:
space:
mode:
authorYuan Fu <casouri@gmail.com>2023-01-25 23:12:41 -0800
committerYuan Fu <casouri@gmail.com>2023-01-25 23:14:35 -0800
commit4bd06ce2a9fa1601aff5a5fcab7411e5fce20d28 (patch)
treee8cc5e8fceeb3dd44a748fa85fc6a1176f360f4f /src/insdel.c
parent00675aa724a6e18d03c2ccc63269ef03c67086ec (diff)
downloademacs-4bd06ce2a9fa1601aff5a5fcab7411e5fce20d28.tar.gz
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.
Diffstat (limited to 'src/insdel.c')
-rw-r--r--src/insdel.c16
1 files changed, 10 insertions, 6 deletions
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);
}