Mercurial > vim
changeset 25921:203b0f3a741a v8.2.3494
patch 8.2.3494: illegal memory access in utf_head_off
Commit: https://github.com/vim/vim/commit/b07626d4afa73dd2af0f03c0d59eed25ee159ef9
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Oct 11 15:40:43 2021 +0100
patch 8.2.3494: illegal memory access in utf_head_off
Problem: Illegal memory access in utf_head_off.
Solution: Check cursor position when reselecting the Visual area.
(closes #8963)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 11 Oct 2021 16:45:04 +0200 |
parents | 116d870cb436 |
children | 81b51d907419 |
files | src/normal.c src/testdir/test_visual.vim src/version.c |
diffstat | 3 files changed, 23 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/normal.c +++ b/src/normal.c @@ -5671,8 +5671,7 @@ nv_visual(cmdarg_T *cap) { curwin->w_cursor.lnum += resel_VIsual_line_count * cap->count0 - 1; - if (curwin->w_cursor.lnum > curbuf->b_ml.ml_line_count) - curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count; + check_cursor(); } VIsual_mode = resel_VIsual_mode; if (VIsual_mode == 'v')
--- a/src/testdir/test_visual.vim +++ b/src/testdir/test_visual.vim @@ -1265,5 +1265,25 @@ func Test_visual_block_with_virtualedit( call delete('XTest_block') endfunc +func Test_visual_reselect_with_count() + " this was causing an illegal memory access + let lines =<< trim END + + + + : + r<sfile> + exe "%norm e3\<c-v>kr\t" + : + + : + END + call writefile(lines, 'XvisualReselect') + source XvisualReselect + + bwipe! + call delete('XvisualReselect') +endfunc + " vim: shiftwidth=2 sts=2 expandtab