diff options
-rw-r--r-- | src/nvim/event/stream.c | 7 | ||||
-rw-r--r-- | test/functional/fixtures/tty-test.c | 3 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/nvim/event/stream.c b/src/nvim/event/stream.c index 7c8014dead..d1a53fa4b6 100644 --- a/src/nvim/event/stream.c +++ b/src/nvim/event/stream.c @@ -97,6 +97,13 @@ void stream_close(Stream *stream, stream_close_cb on_stream_close, void *data) stream->close_cb = on_stream_close; stream->close_cb_data = data; +#ifdef WIN32 + if (UV_TTY == uv_guess_handle(stream->fd)) { + // Undo UV_TTY_MODE_RAW from stream_init(). #10801 + uv_tty_set_mode(&stream->uv.tty, UV_TTY_MODE_NORMAL); + } +#endif + if (!stream->pending_reqs) { stream_close_handle(stream); } diff --git a/test/functional/fixtures/tty-test.c b/test/functional/fixtures/tty-test.c index e2a78a594b..4438b73a22 100644 --- a/test/functional/fixtures/tty-test.c +++ b/test/functional/fixtures/tty-test.c @@ -38,6 +38,9 @@ bool owns_tty(void) static void walk_cb(uv_handle_t *handle, void *arg) { if (!uv_is_closing(handle)) { +#ifdef WIN32 + uv_tty_set_mode(&tty, UV_TTY_MODE_NORMAL); +#endif uv_close(handle, NULL); } } |