Merge pull request #21591 from zeertzjq/vim-8.2.3773

vim-patch:8.2.{3773,3774}
This commit is contained in:
zeertzjq 2022-12-30 15:59:11 +08:00 committed by GitHub
commit cb9d68fe6d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 26 additions and 4 deletions

View File

@ -11,6 +11,7 @@
"after_each", "after_each",
"setup", "setup",
"teardown", "teardown",
"finally",
"lfs" "lfs"
] ]
}, },

View File

@ -903,7 +903,8 @@ struct tabpage_S {
win_T *tp_firstwin; ///< first window in this Tab page win_T *tp_firstwin; ///< first window in this Tab page
win_T *tp_lastwin; ///< last window in this Tab page win_T *tp_lastwin; ///< last window in this Tab page
long tp_old_Rows_avail; ///< ROWS_AVAIL when Tab page was left long tp_old_Rows_avail; ///< ROWS_AVAIL when Tab page was left
long tp_old_Columns; ///< Columns when Tab page was left long tp_old_Columns; ///< Columns when Tab page was left, -1 when
///< calling win_new_screen_cols() postponed
long tp_ch_used; ///< value of 'cmdheight' when frame size was set long tp_ch_used; ///< value of 'cmdheight' when frame size was set
diff_T *tp_first_diff; diff_T *tp_first_diff;

View File

@ -4277,7 +4277,9 @@ static int leave_tabpage(buf_T *new_curbuf, bool trigger_leave_autocmds)
tp->tp_firstwin = firstwin; tp->tp_firstwin = firstwin;
tp->tp_lastwin = lastwin; tp->tp_lastwin = lastwin;
tp->tp_old_Rows_avail = ROWS_AVAIL; tp->tp_old_Rows_avail = ROWS_AVAIL;
tp->tp_old_Columns = Columns; if (tp->tp_old_Columns != -1) {
tp->tp_old_Columns = Columns;
}
firstwin = NULL; firstwin = NULL;
lastwin = NULL; lastwin = NULL;
return OK; return OK;
@ -4340,8 +4342,13 @@ static void enter_tabpage(tabpage_T *tp, buf_T *old_curbuf, bool trigger_enter_a
if (curtab->tp_old_Rows_avail != ROWS_AVAIL || (old_off != firstwin->w_winrow)) { if (curtab->tp_old_Rows_avail != ROWS_AVAIL || (old_off != firstwin->w_winrow)) {
win_new_screen_rows(); win_new_screen_rows();
} }
if (curtab->tp_old_Columns != Columns && starting == 0) { if (curtab->tp_old_Columns != Columns) {
win_new_screen_cols(); // update window widths if (starting == 0) {
win_new_screen_cols(); // update window widths
curtab->tp_old_Columns = Columns;
} else {
curtab->tp_old_Columns = -1; // update window widths later
}
} }
lastused_tabpage = old_curtab; lastused_tabpage = old_curtab;

View File

@ -465,6 +465,19 @@ describe('startup', function()
clear{args={'--cmd', 'set packpath^=test/functional/fixtures', '--cmd', [[ lua _G.test_loadorder = {} vim.cmd "runtime! filen.lua" ]]}, env={XDG_CONFIG_HOME='test/functional/fixtures/'}} clear{args={'--cmd', 'set packpath^=test/functional/fixtures', '--cmd', [[ lua _G.test_loadorder = {} vim.cmd "runtime! filen.lua" ]]}, env={XDG_CONFIG_HOME='test/functional/fixtures/'}}
eq({'ordinary', 'FANCY', 'FANCY after', 'ordinary after'}, exec_lua [[ return _G.test_loadorder ]]) eq({'ordinary', 'FANCY', 'FANCY after', 'ordinary after'}, exec_lua [[ return _G.test_loadorder ]])
end) end)
it('window widths are correct when modelines set &columns with tabpages', function()
write_file('tab1.noft', 'vim: columns=81')
write_file('tab2.noft', 'vim: columns=81')
finally(function()
os.remove('tab1.noft')
os.remove('tab2.noft')
end)
clear({args = {'-p', 'tab1.noft', 'tab2.noft'}})
eq(81, meths.win_get_width(0))
command('tabnext')
eq(81, meths.win_get_width(0))
end)
end) end)
describe('sysinit', function() describe('sysinit', function()