aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/memline.c
diff options
context:
space:
mode:
authorbfredl <bjorn.linse@gmail.com>2022-09-12 11:26:27 +0200
committerbfredl <bjorn.linse@gmail.com>2022-09-13 22:50:22 +0200
commit25e4af439f3b5620406776ca77417d897097a3e9 (patch)
tree989c4c155d4a6df07f75e04df75991c1a1063c10 /src/nvim/memline.c
parent738c204523e4da07468268ae89741f2c86887031 (diff)
downloadrneovim-25e4af439f3b5620406776ca77417d897097a3e9.tar.gz
rneovim-25e4af439f3b5620406776ca77417d897097a3e9.tar.bz2
rneovim-25e4af439f3b5620406776ca77417d897097a3e9.zip
fix(lua): make vim.str_utfindex and vim.str_byteindex handle NUL bytes
fixes #16290
Diffstat (limited to 'src/nvim/memline.c')
-rw-r--r--src/nvim/memline.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/nvim/memline.c b/src/nvim/memline.c
index 9d1ad5903d..c1c3308118 100644
--- a/src/nvim/memline.c
+++ b/src/nvim/memline.c
@@ -2296,8 +2296,9 @@ void ml_add_deleted_len_buf(buf_T *buf, char_u *ptr, ssize_t len)
if (inhibit_delete_count) {
return;
}
- if (len == -1) {
- len = (ssize_t)STRLEN(ptr);
+ ssize_t maxlen = (ssize_t)STRLEN(ptr);
+ if (len == -1 || len > maxlen) {
+ len = maxlen;
}
curbuf->deleted_bytes += (size_t)len + 1;
curbuf->deleted_bytes2 += (size_t)len + 1;