forked from aniani/vim
patch 8.0.0962: crash with virtualedit and joining lines
Problem: Crash with virtualedit and joining lines. (Joshua T Corbin, Neovim #6726) Solution: When using a mark check that coladd is valid.
This commit is contained in:
11
src/misc2.c
11
src/misc2.c
@@ -605,7 +605,18 @@ check_cursor_col_win(win_T *win)
|
||||
else if (ve_flags == VE_ALL)
|
||||
{
|
||||
if (oldcoladd > win->w_cursor.col)
|
||||
{
|
||||
win->w_cursor.coladd = oldcoladd - win->w_cursor.col;
|
||||
if (win->w_cursor.col < len && win->w_cursor.coladd > 0)
|
||||
{
|
||||
int cs, ce;
|
||||
|
||||
/* check that coladd is not more than the char width */
|
||||
getvcol(win, &win->w_cursor, &cs, NULL, &ce);
|
||||
if (win->w_cursor.coladd > ce - cs)
|
||||
win->w_cursor.coladd = ce - cs;
|
||||
}
|
||||
}
|
||||
else
|
||||
/* avoid weird number when there is a miscalculation or overflow */
|
||||
win->w_cursor.coladd = 0;
|
||||
|
Reference in New Issue
Block a user