aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/os
diff options
context:
space:
mode:
authorbfredl <bjorn.linse@gmail.com>2024-06-01 09:53:45 +0200
committerGitHub <noreply@github.com>2024-06-01 09:53:45 +0200
commit2008fe7b85a8c03cbff3ed51c5715ddf5cb555fd (patch)
tree3fe96507019c1d493f2e7f5212c35f063195b29d /src/nvim/os
parent50f6d364c661b88a1edc5ffc8e284d1c0ff70810 (diff)
parentc13c50b752dca322a5ec77dea6188c9e3694549b (diff)
downloadrneovim-2008fe7b85a8c03cbff3ed51c5715ddf5cb555fd.tar.gz
rneovim-2008fe7b85a8c03cbff3ed51c5715ddf5cb555fd.tar.bz2
rneovim-2008fe7b85a8c03cbff3ed51c5715ddf5cb555fd.zip
Merge pull request #29106 from bfredl/rwstream
refactor(io): separate types for read and write streams
Diffstat (limited to 'src/nvim/os')
-rw-r--r--src/nvim/os/input.c12
-rw-r--r--src/nvim/os/pty_process_unix.c6
-rw-r--r--src/nvim/os/pty_process_win.c8
-rw-r--r--src/nvim/os/shell.c6
4 files changed, 16 insertions, 16 deletions
diff --git a/src/nvim/os/input.c b/src/nvim/os/input.c
index 60b5b48745..cfe8696cdd 100644
--- a/src/nvim/os/input.c
+++ b/src/nvim/os/input.c
@@ -41,7 +41,7 @@ typedef enum {
kInputEof,
} InbufPollResult;
-static Stream read_stream = { .closed = true }; // Input before UI starts.
+static RStream read_stream = { .s.closed = true }; // Input before UI starts.
static RBuffer *input_buffer = NULL;
static bool input_eof = false;
static bool blocking = false;
@@ -59,7 +59,7 @@ void input_init(void)
void input_start(void)
{
- if (!read_stream.closed) {
+ if (!read_stream.s.closed) {
return;
}
@@ -70,12 +70,12 @@ void input_start(void)
void input_stop(void)
{
- if (read_stream.closed) {
+ if (read_stream.s.closed) {
return;
}
rstream_stop(&read_stream);
- stream_close(&read_stream, NULL, NULL);
+ rstream_may_close(&read_stream);
}
#ifdef EXITFREE
@@ -138,7 +138,7 @@ int os_inchar(uint8_t *buf, int maxlen, int ms, int tb_change_cnt, MultiQueue *e
uint64_t wait_start = os_hrtime();
cursorhold_time = MIN(cursorhold_time, (int)p_ut);
if ((result = inbuf_poll((int)p_ut - cursorhold_time, events)) == kInputNone) {
- if (read_stream.closed && silent_mode) {
+ if (read_stream.s.closed && silent_mode) {
// Drained eventloop & initial input; exit silent/batch-mode (-es/-Es).
read_error_exit();
}
@@ -489,7 +489,7 @@ bool input_available(void)
return rbuffer_size(input_buffer) != 0;
}
-static void input_read_cb(Stream *stream, RBuffer *buf, size_t c, void *data, bool at_eof)
+static void input_read_cb(RStream *stream, RBuffer *buf, size_t c, void *data, bool at_eof)
{
if (at_eof) {
input_eof = true;
diff --git a/src/nvim/os/pty_process_unix.c b/src/nvim/os/pty_process_unix.c
index 4d34e8fac4..cfa4dcada7 100644
--- a/src/nvim/os/pty_process_unix.c
+++ b/src/nvim/os/pty_process_unix.c
@@ -169,7 +169,7 @@ int pty_process_spawn(PtyProcess *ptyproc)
int status = 0; // zero or negative error code (libuv convention)
Process *proc = (Process *)ptyproc;
- assert(proc->err.closed);
+ assert(proc->err.s.closed);
uv_signal_start(&proc->loop->children_watcher, chld_handler, SIGCHLD);
ptyproc->winsize = (struct winsize){ ptyproc->height, ptyproc->width, 0, 0 };
uv_disable_stdio_inheritance();
@@ -208,8 +208,8 @@ int pty_process_spawn(PtyProcess *ptyproc)
&& (status = set_duplicating_descriptor(master, &proc->in.uv.pipe))) {
goto error;
}
- if (!proc->out.closed
- && (status = set_duplicating_descriptor(master, &proc->out.uv.pipe))) {
+ if (!proc->out.s.closed
+ && (status = set_duplicating_descriptor(master, &proc->out.s.uv.pipe))) {
goto error;
}
diff --git a/src/nvim/os/pty_process_win.c b/src/nvim/os/pty_process_win.c
index 12831ff05f..f73baed490 100644
--- a/src/nvim/os/pty_process_win.c
+++ b/src/nvim/os/pty_process_win.c
@@ -55,7 +55,7 @@ int pty_process_spawn(PtyProcess *ptyproc)
wchar_t *env = NULL;
const char *emsg = NULL;
- assert(proc->err.closed);
+ assert(proc->err.s.closed);
if (!os_has_conpty_working() || (conpty_object = os_conpty_init(&in_name,
&out_name, ptyproc->width,
@@ -72,10 +72,10 @@ int pty_process_spawn(PtyProcess *ptyproc)
pty_process_connect_cb);
}
- if (!proc->out.closed) {
+ if (!proc->out.s.closed) {
out_req = xmalloc(sizeof(uv_connect_t));
uv_pipe_connect(out_req,
- &proc->out.uv.pipe,
+ &proc->out.s.uv.pipe,
out_name,
pty_process_connect_cb);
}
@@ -216,7 +216,7 @@ static void wait_eof_timer_cb(uv_timer_t *wait_eof_timer)
Process *proc = (Process *)ptyproc;
assert(ptyproc->finish_wait != NULL);
- if (proc->out.closed || proc->out.did_eof || !uv_is_readable(proc->out.uvstream)) {
+ if (proc->out.s.closed || proc->out.did_eof || !uv_is_readable(proc->out.s.uvstream)) {
uv_timer_stop(&ptyproc->wait_eof_timer);
pty_process_finish2(ptyproc);
}
diff --git a/src/nvim/os/shell.c b/src/nvim/os/shell.c
index 2a10510b0f..958faa4d22 100644
--- a/src/nvim/os/shell.c
+++ b/src/nvim/os/shell.c
@@ -987,7 +987,7 @@ static void dynamic_buffer_ensure(DynamicBuffer *buf, size_t desired)
buf->data = xrealloc(buf->data, buf->cap);
}
-static void system_data_cb(Stream *stream, RBuffer *buf, size_t count, void *data, bool eof)
+static void system_data_cb(RStream *stream, RBuffer *buf, size_t count, void *data, bool eof)
{
DynamicBuffer *dbuf = data;
@@ -1151,7 +1151,7 @@ end:
ui_flush();
}
-static void out_data_cb(Stream *stream, RBuffer *buf, size_t count, void *data, bool eof)
+static void out_data_cb(RStream *stream, RBuffer *buf, size_t count, void *data, bool eof)
{
size_t cnt;
char *ptr = rbuffer_read_ptr(buf, &cnt);
@@ -1331,7 +1331,7 @@ static void shell_write_cb(Stream *stream, void *data, int status)
msg_schedule_semsg(_("E5677: Error writing input to shell-command: %s"),
uv_err_name(status));
}
- stream_close(stream, NULL, NULL);
+ stream_close(stream, NULL, NULL, false);
}
/// Applies 'shellxescape' (p_sxe) and 'shellxquote' (p_sxq) to a command.