Mercurial > vim
changeset 27382:123b0747fa10 v8.2.4219
patch 8.2.4219: reading before the start of the line
Commit: https://github.com/vim/vim/commit/44db8213d38c39877d2148eff6a72f4beccfb94e
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Jan 25 21:26:17 2022 +0000
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.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 25 Jan 2022 22:30:03 +0100 |
parents | c4d24fdb7fe5 |
children | 3086d6127d94 |
files | src/register.c src/testdir/test_visual.vim src/version.c |
diffstat | 3 files changed, 10 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/register.c +++ b/src/register.c @@ -1474,7 +1474,7 @@ yank_copy_line(struct block_def *bd, lon { 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--;
--- a/src/testdir/test_visual.vim +++ b/src/testdir/test_visual.vim @@ -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