fix(options): no matter what is said, 'cmdheight' is tab-local (susy baka)

This commit is contained in:
bfredl 2022-10-04 11:28:30 +02:00
parent 6ae144a921
commit 7746f641b8
3 changed files with 16 additions and 12 deletions

View File

@ -185,11 +185,11 @@ void early_init(mparm_T *paramp)
init_locale();
#endif
// Allocate the first window and buffer.
// Can't do anything without it, exit when it fails.
if (!win_alloc_first()) {
os_exit(0);
}
// tabpage local options (p_ch) must be set before allocating first tabpage.
set_init_tablocal();
// Allocate the first tabpage, window and buffer.
win_alloc_first();
TIME_MSG("init first window");
alist_init(&global_alist); // Init the argument list to empty.

View File

@ -147,6 +147,13 @@ typedef enum {
# include "option.c.generated.h"
#endif
void set_init_tablocal(void)
{
// susy baka: cmdheight calls itself OPT_GLOBAL but is really tablocal!
int ch_idx = findoption("cmdheight");
p_ch = (long)options[ch_idx].def_val;
}
/// Initialize the options, first part.
///
/// Called only once from main(), just after creating the first buffer.

View File

@ -3865,13 +3865,12 @@ void close_others(int message, int forceit)
}
// Allocate the first window and put an empty buffer in it.
// Called from main().
//
// Return FAIL when something goes wrong.
int win_alloc_first(void)
// Only called from main().
void win_alloc_first(void)
{
if (win_alloc_firstwin(NULL) == FAIL) {
return FAIL;
// allocating first buffer before any autocmds should not fail.
abort();
}
first_tabpage = alloc_tabpage();
@ -3880,8 +3879,6 @@ int win_alloc_first(void)
curtab->tp_firstwin = firstwin;
curtab->tp_lastwin = lastwin;
curtab->tp_curwin = curwin;
return OK;
}
// Init `aucmd_win`. This can only be done after the first window