diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-01-24 20:00:55 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-01-24 20:00:55 +0000 |
commit | dff97e65eb1bb24c44c2b7430a480888d8afb3f4 (patch) | |
tree | 68e5fc1a4ce83826c7933cdbf91abb4bf497a894 | |
parent | 50e05254450954f04183efc7bc871527a67868b8 (diff) | |
download | vim-git-dff97e65eb1bb24c44c2b7430a480888d8afb3f4.tar.gz |
patch 8.2.4208: using setbufvar() may change the window titlev8.2.4208
Problem: Using setbufvar() may change the window title.
Solution: Do not redraw when creating the autocommand window. (closes #9613)
-rw-r--r-- | src/autocmd.c | 3 | ||||
-rw-r--r-- | src/testdir/test_functions.vim | 23 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 27 insertions, 1 deletions
diff --git a/src/autocmd.c b/src/autocmd.c index 37f2480a8..a10be9b92 100644 --- a/src/autocmd.c +++ b/src/autocmd.c @@ -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 diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim index 156a75277..3f197ca3d 100644 --- a/src/testdir/test_functions.vim +++ b/src/testdir/test_functions.vim @@ -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>" diff --git a/src/version.c b/src/version.c index 6703e8faf..3b7cddd9f 100644 --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 4208, +/**/ 4207, /**/ 4206, |