mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
feat(tui): add error logging (#16615)
This commit is contained in:
parent
734fba0d88
commit
34d88edaec
@ -308,23 +308,39 @@ static void terminfo_start(UI *ui)
|
|||||||
// Enable bracketed paste
|
// Enable bracketed paste
|
||||||
unibi_out_ext(ui, data->unibi_ext.enable_bracketed_paste);
|
unibi_out_ext(ui, data->unibi_ext.enable_bracketed_paste);
|
||||||
|
|
||||||
|
int ret;
|
||||||
uv_loop_init(&data->write_loop);
|
uv_loop_init(&data->write_loop);
|
||||||
if (data->out_isatty) {
|
if (data->out_isatty) {
|
||||||
uv_tty_init(&data->write_loop, &data->output_handle.tty, data->out_fd, 0);
|
ret = uv_tty_init(&data->write_loop, &data->output_handle.tty, data->out_fd, 0);
|
||||||
|
if (ret) {
|
||||||
|
ELOG("uv_tty_init failed: %s", uv_strerror(ret));
|
||||||
|
}
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
uv_tty_set_mode(&data->output_handle.tty, UV_TTY_MODE_RAW);
|
ret = uv_tty_set_mode(&data->output_handle.tty, UV_TTY_MODE_RAW);
|
||||||
|
if (ret) {
|
||||||
|
ELOG("uv_tty_set_mode failed: %s", uv_strerror(ret));
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
int retry_count = 10;
|
int retry_count = 10;
|
||||||
// A signal may cause uv_tty_set_mode() to fail (e.g., SIGCONT). Retry a
|
// A signal may cause uv_tty_set_mode() to fail (e.g., SIGCONT). Retry a
|
||||||
// few times. #12322
|
// few times. #12322
|
||||||
while (uv_tty_set_mode(&data->output_handle.tty, UV_TTY_MODE_IO) == UV_EINTR
|
while ((ret = uv_tty_set_mode(&data->output_handle.tty, UV_TTY_MODE_IO)) == UV_EINTR
|
||||||
&& retry_count > 0) {
|
&& retry_count > 0) {
|
||||||
retry_count--;
|
retry_count--;
|
||||||
}
|
}
|
||||||
|
if (ret) {
|
||||||
|
ELOG("uv_tty_set_mode failed: %s", uv_strerror(ret));
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
uv_pipe_init(&data->write_loop, &data->output_handle.pipe, 0);
|
ret = uv_pipe_init(&data->write_loop, &data->output_handle.pipe, 0);
|
||||||
uv_pipe_open(&data->output_handle.pipe, data->out_fd);
|
if (ret) {
|
||||||
|
ELOG("uv_pipe_init failed: %s", uv_strerror(ret));
|
||||||
|
}
|
||||||
|
ret = uv_pipe_open(&data->output_handle.pipe, data->out_fd);
|
||||||
|
if (ret) {
|
||||||
|
ELOG("uv_pipe_open failed: %s", uv_strerror(ret));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
flush_buf(ui);
|
flush_buf(ui);
|
||||||
}
|
}
|
||||||
@ -1086,8 +1102,14 @@ static void tui_mode_change(UI *ui, String mode, Integer mode_idx)
|
|||||||
// after calling uv_tty_set_mode. So, set the mode of the TTY again here.
|
// after calling uv_tty_set_mode. So, set the mode of the TTY again here.
|
||||||
// #13073
|
// #13073
|
||||||
if (data->is_starting && data->input.in_fd == STDERR_FILENO) {
|
if (data->is_starting && data->input.in_fd == STDERR_FILENO) {
|
||||||
uv_tty_set_mode(&data->output_handle.tty, UV_TTY_MODE_NORMAL);
|
int ret = uv_tty_set_mode(&data->output_handle.tty, UV_TTY_MODE_NORMAL);
|
||||||
uv_tty_set_mode(&data->output_handle.tty, UV_TTY_MODE_IO);
|
if (ret) {
|
||||||
|
ELOG("uv_tty_set_mode failed: %s", uv_strerror(ret));
|
||||||
|
}
|
||||||
|
ret = uv_tty_set_mode(&data->output_handle.tty, UV_TTY_MODE_IO);
|
||||||
|
if (ret) {
|
||||||
|
ELOG("uv_tty_set_mode failed: %s", uv_strerror(ret));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
tui_set_mode(ui, (ModeShape)mode_idx);
|
tui_set_mode(ui, (ModeShape)mode_idx);
|
||||||
@ -2081,8 +2103,11 @@ static void flush_buf(UI *ui)
|
|||||||
fwrite(bufs[i].base, bufs[i].len, 1, data->screenshot);
|
fwrite(bufs[i].base, bufs[i].len, 1, data->screenshot);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
uv_write(&req, STRUCT_CAST(uv_stream_t, &data->output_handle),
|
int ret = uv_write(&req, STRUCT_CAST(uv_stream_t, &data->output_handle),
|
||||||
bufs, (unsigned)(bufp - bufs), NULL);
|
bufs, (unsigned)(bufp - bufs), NULL);
|
||||||
|
if (ret) {
|
||||||
|
ELOG("uv_write failed: %s", uv_strerror(ret));
|
||||||
|
}
|
||||||
uv_run(&data->write_loop, UV_RUN_DEFAULT);
|
uv_run(&data->write_loop, UV_RUN_DEFAULT);
|
||||||
}
|
}
|
||||||
data->bufpos = 0;
|
data->bufpos = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user