Merge pull request #9783 from justinmk/inccommand-ignore-redraw

This commit is contained in:
Justin M. Keyes 2019-04-14 11:25:24 +02:00 committed by GitHub
commit 9ddf99172c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 37 additions and 6 deletions

View File

@ -6392,6 +6392,7 @@ void ex_substitute(exarg_T *eap)
}
block_autocmds(); // Disable events during command preview.
input_disable_events();
char_u *save_eap = eap->arg;
garray_T save_view;
@ -6434,6 +6435,7 @@ void ex_substitute(exarg_T *eap)
restore_search_patterns();
win_size_restore(&save_view);
ga_clear(&save_view);
input_enable_events();
unblock_autocmds();
}

View File

@ -7807,11 +7807,12 @@ static void ex_redir(exarg_T *eap)
redir_off = FALSE;
}
/*
* ":redraw": force redraw
*/
/// ":redraw": force redraw
static void ex_redraw(exarg_T *eap)
{
if (State & CMDPREVIEW) {
return; // Ignore :redraw during 'inccommand' preview. #9777
}
int r = RedrawingDisabled;
int p = p_lz;
@ -7840,11 +7841,12 @@ static void ex_redraw(exarg_T *eap)
ui_flush();
}
/*
* ":redrawstatus": force redraw of status line(s)
*/
/// ":redrawstatus": force redraw of status line(s)
static void ex_redrawstatus(exarg_T *eap)
{
if (State & CMDPREVIEW) {
return; // Ignore :redrawstatus during 'inccommand' preview. #9777
}
int r = RedrawingDisabled;
int p = p_lz;

View File

@ -2607,3 +2607,30 @@ it(':substitute with inccommand during :terminal activity', function()
end)
end)
it(':substitute with inccommand, timer-induced :redraw #9777', function()
local screen = Screen.new(30,12)
clear()
command('set cmdwinheight=3')
command('call timer_start(10, {-> execute("redraw")}, {"repeat":-1})')
command('call timer_start(10, {-> execute("redrawstatus")}, {"repeat":-1})')
common_setup(screen, 'split', 'foo bar baz\nbar baz fox\nbar foo baz')
feed('gg')
feed(':%s/foo/ZZZ')
sleep(20) -- Allow some timer activity.
screen:expect([[
{12:ZZZ} bar baz |
bar baz fox |
bar {12:ZZZ} baz |
{15:~ }|
{15:~ }|
{15:~ }|
{11:[No Name] [+] }|
|1| {12:ZZZ} bar baz |
|3| bar {12:ZZZ} baz |
{15:~ }|
{10:[Preview] }|
:%s/foo/ZZZ^ |
]])
end)