diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/treesit.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/treesit.c b/src/treesit.c index 970754f3c1b..b047f0344cc 100644 --- a/src/treesit.c +++ b/src/treesit.c | |||
| @@ -1225,11 +1225,13 @@ treesit_read_buffer (void *parser, uint32_t byte_index, | |||
| 1225 | beg = NULL; | 1225 | beg = NULL; |
| 1226 | len = 0; | 1226 | len = 0; |
| 1227 | } | 1227 | } |
| 1228 | /* Normal case, read a character. */ | 1228 | /* Normal case, read until the gap or visible end. */ |
| 1229 | else | 1229 | else |
| 1230 | { | 1230 | { |
| 1231 | beg = (char *) BUF_BYTE_ADDRESS (buffer, byte_pos); | 1231 | beg = (char *) BUF_BYTE_ADDRESS (buffer, byte_pos); |
| 1232 | len = BYTES_BY_CHAR_HEAD ((int) *beg); | 1232 | ptrdiff_t gap_bytepos = buffer->text->gpt_byte; |
| 1233 | len = (byte_pos < gap_bytepos) | ||
| 1234 | ? gap_bytepos - byte_pos : visible_end - byte_pos; | ||
| 1233 | } | 1235 | } |
| 1234 | /* We never let tree-sitter to parse buffers that large so this | 1236 | /* We never let tree-sitter to parse buffers that large so this |
| 1235 | assertion should never hit. */ | 1237 | assertion should never hit. */ |