Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
patch 8.2.4563: "z=" in Visual mode may go beyond the end of the line
Problem:    "z=" in Visual mode may go beyond the end of the line.
Solution:   Adjust "badlen".
  • Loading branch information
brammool committed Mar 13, 2022
1 parent b29b968 commit 5c68617
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 0 deletions.
4 changes: 4 additions & 0 deletions src/spellsuggest.c
Expand Up @@ -506,6 +506,10 @@ spell_suggest(int count)
curwin->w_cursor.col = VIsual.col;
++badlen;
end_visual_mode();
// make sure we don't include the NUL at the end of the line
line = ml_get_curline();
if (badlen > STRLEN(line) - curwin->w_cursor.col)
badlen = STRLEN(line) - curwin->w_cursor.col;
}
// Find the start of the badly spelled word.
else if (spell_move_to(curwin, FORWARD, TRUE, TRUE, NULL) == 0
Expand Down
15 changes: 15 additions & 0 deletions src/testdir/test_spell.vim
Expand Up @@ -456,6 +456,21 @@ func Test_spellsuggest_timeout()
call assert_fails('set spellsuggest=timeout:--9', 'E474:')
endfunc

func Test_spellsuggest_visual_end_of_line()
let enc_save = &encoding
set encoding=iso8859

" This was reading beyond the end of the line.
norm R00000000000
sil norm 0
sil! norm i00000)
sil! norm i00000)
call feedkeys("\<CR>")
norm z=

let &encoding = enc_save
endfunc

func Test_spellinfo()
new
let runtime = substitute($VIMRUNTIME, '\\', '/', 'g')
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 */
/**/
4563,
/**/
4562,
/**/
Expand Down

0 comments on commit 5c68617

Please sign in to comment.