mirror of
https://github.com/neovim/neovim.git
synced 2025-09-23 19:48:32 +00:00
vim-patch:8.0.0274
Problem: When update_single_line() is called recursively, or another screen
update happens while it is busy, errors may occur.
Solution: Check and update updating_screen. (Christian Brabandt)
070b33da93
This commit is contained in:
@@ -487,9 +487,10 @@ void update_single_line(win_T *wp, linenr_T lnum)
|
|||||||
int j;
|
int j;
|
||||||
|
|
||||||
// Don't do anything if the screen structures are (not yet) valid.
|
// Don't do anything if the screen structures are (not yet) valid.
|
||||||
if (!screen_valid(true)) {
|
if (!screen_valid(true) || updating_screen) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
updating_screen = true;
|
||||||
|
|
||||||
if (lnum >= wp->w_topline && lnum < wp->w_botline
|
if (lnum >= wp->w_topline && lnum < wp->w_botline
|
||||||
&& foldedCount(wp, lnum, &win_foldinfo) == 0) {
|
&& foldedCount(wp, lnum, &win_foldinfo) == 0) {
|
||||||
@@ -507,6 +508,7 @@ void update_single_line(win_T *wp, linenr_T lnum)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
need_cursor_line_redraw = FALSE;
|
need_cursor_line_redraw = FALSE;
|
||||||
|
updating_screen = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user