mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
patch 8.1.0537: ui_breakcheck() may be called recursively
Problem: ui_breakcheck() may be called recursively, which doesn't work. Solution: When called recursively, just return. (James McCoy, closes #3617)
This commit is contained in:
14
src/ui.c
14
src/ui.c
@@ -403,9 +403,17 @@ ui_breakcheck(void)
|
||||
void
|
||||
ui_breakcheck_force(int force)
|
||||
{
|
||||
int save_updating_screen = updating_screen;
|
||||
static int recursive = FALSE;
|
||||
int save_updating_screen = updating_screen;
|
||||
|
||||
/* We do not want gui_resize_shell() to redraw the screen here. */
|
||||
// We could be called recursively if stderr is redirected, calling
|
||||
// fill_input_buf() calls settmode() when stdin isn't a tty. settmode()
|
||||
// calls vgetorpeek() which calls ui_breakcheck() again.
|
||||
if (recursive)
|
||||
return;
|
||||
recursive = TRUE;
|
||||
|
||||
// We do not want gui_resize_shell() to redraw the screen here.
|
||||
++updating_screen;
|
||||
|
||||
#ifdef FEAT_GUI
|
||||
@@ -419,6 +427,8 @@ ui_breakcheck_force(int force)
|
||||
updating_screen = TRUE;
|
||||
else
|
||||
reset_updating_screen(FALSE);
|
||||
|
||||
recursive = FALSE;
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
|
Reference in New Issue
Block a user