main: do event_init before early_init #10183

Fixes https://github.com/neovim/neovim/issues/10172

* move log_init to event_init
* move init_signs to end of early_init
This commit is contained in:
Daniel Hahler 2019-06-12 14:22:42 +02:00 committed by Justin M. Keyes
parent babcf641ef
commit 6f27f5ef91
2 changed files with 10 additions and 4 deletions

View File

@ -141,6 +141,7 @@ static const char *err_extra_cmd =
void event_init(void)
{
log_init();
loop_init(&main_loop, NULL);
// early msgpack-rpc initialization
msgpack_rpc_init_method_table();
@ -185,7 +186,6 @@ bool event_teardown(void)
/// Needed for unit tests. Must be called after `time_init()`.
void early_init(void)
{
log_init();
env_init();
fs_init();
handle_init();
@ -222,6 +222,8 @@ void early_init(void)
TIME_MSG("inits 1");
set_lang_var(); // set v:lang and v:ctype
init_signs();
}
#ifdef MAKE_LIB
@ -257,12 +259,13 @@ int main(int argc, char **argv)
init_startuptime(&params);
event_init();
early_init();
// Check if we have an interactive window.
check_and_set_isatty(&params);
event_init();
// Process the command line arguments. File names are put in the global
// argument list "global_alist".
command_line_scan(&params);
@ -1312,8 +1315,6 @@ static void init_path(const char *exename)
// shipped with Windows package. This also mimics SearchPath().
os_setenv_append_path(exepath);
#endif
init_signs();
}
/// Get filename from command line, if any.

View File

@ -221,6 +221,11 @@ describe('startup', function()
clear{args={'--embed'}}
eq(2, eval('1+1'))
end)
it('does not crash when expanding cdpath during early_init', function()
clear{env={CDPATH='~doesnotexist'}}
eq(',~doesnotexist', eval('&cdpath'))
end)
end)
describe('sysinit', function()