Merge pull request #14126 from janlazo/vim-8.2.2593

vim-patch:8.2.{2593,2594,2595}
This commit is contained in:
Jan Edmund Lazo 2021-03-13 10:38:21 -05:00 committed by GitHub
commit 9808c8d9dd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 54 additions and 3 deletions

View File

@ -387,9 +387,10 @@ static int put_view(
if (wp->w_alt_fnum) {
buf_T *const alt = buflist_findnr(wp->w_alt_fnum);
// Set the alternate file.
// Set the alternate file if the buffer is listed.
if ((flagp == &ssop_flags) && alt != NULL && alt->b_fname != NULL
&& *alt->b_fname != NUL
&& alt->b_p_bl
&& (fputs("balt ", fd) < 0
|| ses_fname(fd, alt, flagp, true) == FAIL)) {
return FAIL;

View File

@ -331,6 +331,20 @@ func Test_mkview_no_balt()
%bwipe
endfunc
func Test_mksession_no_balt()
edit Xtestfile1
edit Xtestfile2
bdelete Xtestfile1
mksession! Xtestview
source Xtestview
call assert_equal(0, buflisted('Xtestfile1'))
call delete('Xtestview')
%bwipe
endfunc
" Test :mkview with a file argument.
func Test_mkview_file()
" Create a view with line number and a fold.

View File

@ -634,6 +634,28 @@ func Test_opt_winminheight_term()
call delete('Xwinminheight')
endfunc
func Test_opt_winminheight_term_tabs()
" See test/functional/legacy/options_spec.lua
CheckRunVimInTerminal
" The tabline should be taken into account.
let lines =<< trim END
set wmh=0 stal=2
split
split
split
split
tabnew
END
call writefile(lines, 'Xwinminheight')
let buf = RunVimInTerminal('-S Xwinminheight', #{rows: 11})
call term_sendkeys(buf, ":set wmh=1\n")
call WaitForAssert({-> assert_match('E36: Not enough room', term_getline(buf, 11))})
call StopVimInTerminal(buf)
call delete('Xwinminheight')
endfunc
" Test for setting option value containing spaces with isfname+=32
func Test_isfname_with_options()
set isfname+=32

View File

@ -5501,8 +5501,8 @@ void win_setminheight(void)
// loop until there is a 'winminheight' that is possible
while (p_wmh > 0) {
const int room = Rows - p_ch - tabline_height();
const int needed = frame_minheight(topframe, NULL);
const int room = Rows - p_ch;
const int needed = min_rows() - 1; // 1 was added for the cmdline
if (room >= needed) {
break;
}

View File

@ -42,6 +42,20 @@ describe('set', function()
matches('E36: Not enough room', exc_exec('set wmh=1'))
end)
it('winminheight works with tabline', function()
local screen = Screen.new(20, 11)
screen:attach()
source([[
set wmh=0 stal=2
split
split
split
split
tabnew
]])
matches('E36: Not enough room', exc_exec('set wmh=1'))
end)
it('scroll works', function()
local screen = Screen.new(42, 16)
screen:attach()