0
0
mirror of https://github.com/vim/vim.git synced 2025-07-24 10:45:12 -04:00

patch 9.0.1189: invalid memory access with folding and using "L"

Problem:    Invalid memory access with folding and using "L".
Solution:   Prevent the cursor from moving to line zero.
This commit is contained in:
Bram Moolenaar 2023-01-13 14:17:58 +00:00
parent c0c2c26265
commit 232bdaaca9
3 changed files with 12 additions and 1 deletions

View File

@ -3729,7 +3729,8 @@ nv_scroll(cmdarg_T *cap)
{
(void)hasFolding(curwin->w_cursor.lnum,
&curwin->w_cursor.lnum, NULL);
--curwin->w_cursor.lnum;
if (curwin->w_cursor.lnum > curwin->w_topline)
--curwin->w_cursor.lnum;
}
}
else

View File

@ -1675,4 +1675,12 @@ func Test_sort_closed_fold()
bwipe!
endfunc
func Test_indent_with_L_command()
" The "L" command moved the cursor to line zero, causing the text saved for
" undo to use line number -1, which caused trouble for undo later.
new
sil! norm 8R V{zf8=Lu
bwipe!
endfunc
" vim: shiftwidth=2 sts=2 expandtab

View File

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