0
0
mirror of https://github.com/vim/vim.git synced 2025-07-04 23:07:33 -04:00

patch 8.2.4219: reading before the start of the line

Problem:    Reading before the start of the line.
Solution:   Check boundary before trying to read the character.
This commit is contained in:
Bram Moolenaar 2022-01-25 21:26:17 +00:00
parent 806d037671
commit 44db8213d3
3 changed files with 10 additions and 1 deletions

View File

@ -1474,7 +1474,7 @@ yank_copy_line(struct block_def *bd, long y_idx, int exclude_trailing_space)
{
int s = bd->textlen + bd->endspaces;
while (VIM_ISWHITE(*(bd->textstart + s - 1)) && s > 0)
while (s > 0 && VIM_ISWHITE(*(bd->textstart + s - 1)))
{
s = s - (*mb_head_off)(bd->textstart, bd->textstart + s - 1) - 1;
pnew--;

View File

@ -1247,6 +1247,13 @@ func Test_visual_put_blockedit_zy_and_zp()
bw!
endfunc
func Test_visual_block_yank_zy()
new
" this was reading before the start of the line
exe "norm o\<C-T>\<Esc>\<C-V>zy"
bwipe!
endfunc
func Test_visual_block_with_virtualedit()
CheckScreendump

View File

@ -750,6 +750,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
4219,
/**/
4218,
/**/