mirror of
https://github.com/neovim/neovim.git
synced 2024-12-20 03:05:11 -07:00
fix(startup): report --startuptime error to stderr (#31131)
Problem: Crash when initializing for --startuptime errors.
Solution: Report the error to stderr, as neither logging nor messages
have been initialized yet.
(cherry picked from commit 17e00d0cc6
)
This commit is contained in:
parent
f8ee92feec
commit
57b0fecd47
@ -955,7 +955,7 @@ void time_init(const char *fname, const char *process_name)
|
||||
const size_t bufsize = 8192; // Big enough for the entire --startuptime report.
|
||||
time_fd = fopen(fname, "a");
|
||||
if (time_fd == NULL) {
|
||||
semsg(_(e_notopen), fname);
|
||||
fprintf(stderr, _(e_notopen), fname);
|
||||
return;
|
||||
}
|
||||
startuptime_buf = xmalloc(sizeof(char) * (bufsize + 1));
|
||||
@ -967,8 +967,7 @@ void time_init(const char *fname, const char *process_name)
|
||||
XFREE_CLEAR(startuptime_buf);
|
||||
fclose(time_fd);
|
||||
time_fd = NULL;
|
||||
ELOG("time_init: setvbuf failed: %d %s", r, uv_err_name(r));
|
||||
semsg("time_init: setvbuf failed: %d %s", r, uv_err_name(r));
|
||||
fprintf(stderr, "time_init: setvbuf failed: %d %s", r, uv_err_name(r));
|
||||
return;
|
||||
}
|
||||
fprintf(time_fd, "--- Startup times for process: %s ---\n", process_name);
|
||||
|
@ -82,6 +82,25 @@ describe('startup', function()
|
||||
assert_log("require%('vim%._editor'%)", testfile, 100)
|
||||
end)
|
||||
|
||||
it('--startuptime does not crash on error #31125', function()
|
||||
eq(
|
||||
"E484: Can't open file .",
|
||||
fn.system({
|
||||
nvim_prog,
|
||||
'-u',
|
||||
'NONE',
|
||||
'-i',
|
||||
'NONE',
|
||||
'--headless',
|
||||
'--startuptime',
|
||||
'.',
|
||||
'-c',
|
||||
'42cquit',
|
||||
})
|
||||
)
|
||||
eq(42, api.nvim_get_vvar('shell_error'))
|
||||
end)
|
||||
|
||||
it('-D does not hang #12647', function()
|
||||
clear()
|
||||
local screen
|
||||
|
Loading…
Reference in New Issue
Block a user