0
0
mirror of https://github.com/vim/vim.git synced 2025-07-04 23:07:33 -04:00

patch 8.2.4208: using setbufvar() may change the window title

Problem:    Using setbufvar() may change the window title.
Solution:   Do not redraw when creating the autocommand window. (closes #9613)
This commit is contained in:
Bram Moolenaar 2022-01-24 20:00:55 +00:00
parent 50e0525445
commit dff97e65eb
3 changed files with 27 additions and 1 deletions

View File

@ -1518,7 +1518,10 @@ aucmd_prepbuf(
p_acd = FALSE;
#endif
// no redrawing and don't set the window title
++RedrawingDisabled;
(void)win_split_ins(0, WSP_TOP, aucmd_win, 0);
--RedrawingDisabled;
(void)win_comp_pos(); // recompute window positions
p_ea = save_ea;
#ifdef FEAT_AUTOCHDIR

View File

@ -1630,6 +1630,28 @@ func Test_setbufvar_options()
bwipe!
endfunc
func Test_setbufvar_keep_window_title()
CheckRunVimInTerminal
let lines =<< trim END
edit Xa.txt
let g:buf = bufadd('Xb.txt')
inoremap <F2> <C-R>=setbufvar(g:buf, '&autoindent', 1) ?? ''<CR>
END
call writefile(lines, 'Xsetbufvar')
let buf = RunVimInTerminal('-S Xsetbufvar', {})
call assert_match('Xa.txt', term_gettitle(buf))
call term_sendkeys(buf, "i\<F2>")
call TermWait(buf)
call term_sendkeys(buf, "\<Esc>")
call TermWait(buf)
call assert_match('Xa.txt', term_gettitle(buf))
call StopVimInTerminal(buf)
call delete('Xsetbufvar')
endfunc
func Test_redo_in_nested_functions()
nnoremap g. :set opfunc=Operator<CR>g@
function Operator( type, ... )
@ -2308,7 +2330,6 @@ endfunc
func Test_state()
CheckRunVimInTerminal
let g:test_is_flaky = 1
let getstate = ":echo 'state: ' .. g:state .. '; mode: ' .. g:mode\<CR>"

View File

@ -750,6 +750,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
4208,
/**/
4207,
/**/