Skip to content

Commit

Permalink
patch 8.2.4219: reading before the start of the line
Browse files Browse the repository at this point in the history
Problem:    Reading before the start of the line.
Solution:   Check boundary before trying to read the character.
  • Loading branch information
brammool committed Jan 25, 2022
1 parent 806d037 commit 44db821
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/register.c
Expand Up @@ -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--;
Expand Down
7 changes: 7 additions & 0 deletions src/testdir/test_visual.vim
Expand Up @@ -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

Expand Down
2 changes: 2 additions & 0 deletions src/version.c
Expand Up @@ -750,6 +750,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
4219,
/**/
4218,
/**/
Expand Down

0 comments on commit 44db821

Please sign in to comment.