0
0
mirror of https://github.com/vim/vim.git synced 2025-09-25 03:54:15 -04:00

patch 8.2.4151: reading beyond the end of a line

Problem:    Reading beyond the end of a line.
Solution:   For block insert only use the offset for correcting the length.
This commit is contained in:
Bram Moolenaar
2022-01-20 12:10:48 +00:00
parent 8aa0e6c60d
commit 57df9e8a9f
3 changed files with 13 additions and 17 deletions

View File

@@ -529,24 +529,9 @@ block_insert(
}
if (has_mbyte && spaces > 0)
{
int off;
// avoid copying part of a multi-byte character
offset -= (*mb_head_off)(oldp, oldp + offset);
// Avoid starting halfway a multi-byte character.
if (b_insert)
{
off = (*mb_head_off)(oldp, oldp + offset + spaces);
spaces -= off;
count -= off;
}
else
{
// spaces fill the gap, the character that's at the edge moves
// right
off = (*mb_head_off)(oldp, oldp + offset);
offset -= off;
}
}
if (spaces < 0) // can happen when the cursor was moved
spaces = 0;