]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix call to treesit_record_change in insdel.c
authorYuan Fu <casouri@gmail.com>
Thu, 26 Jan 2023 07:12:41 +0000 (23:12 -0800)
committerYuan Fu <casouri@gmail.com>
Thu, 26 Jan 2023 07:14:35 +0000 (23:14 -0800)
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.

src/insdel.c

index b51767bf52709fd6fc937659666179594b175e73..33dea569b241aa64caa4e6cd6c0e170e099fc1f8 100644 (file)
@@ -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);
 }
 \f