aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/os/input.c
diff options
context:
space:
mode:
authorbfredl <bjorn.linse@gmail.com>2024-05-30 12:59:02 +0200
committerbfredl <bjorn.linse@gmail.com>2024-05-31 15:01:13 +0200
commitc13c50b752dca322a5ec77dea6188c9e3694549b (patch)
tree048342b08d13f6df0b9c29b9b0b5d470322e6a0c /src/nvim/os/input.c
parent6566a59b3a6c8dabfa40f8debd0de96d875825e9 (diff)
downloadrneovim-c13c50b752dca322a5ec77dea6188c9e3694549b.tar.gz
rneovim-c13c50b752dca322a5ec77dea6188c9e3694549b.tar.bz2
rneovim-c13c50b752dca322a5ec77dea6188c9e3694549b.zip
refactor(io): separate types for read and write streams
This is a structural refactor with no logical changes, yet. Done in preparation for simplifying rstream/rbuffer which will require more state inline in RStream. The initial idea was to have RStream and WStream as sub-types symetrically but that doesn't work, as sockets are both reading and writing. Also there is very little write-specific state to start with, so the benefit of a separate WStream struct is a lot smaller. Just document what fields in `Stream` are write specific.
Diffstat (limited to 'src/nvim/os/input.c')
-rw-r--r--src/nvim/os/input.c12
1 files changed, 6 insertions, 6 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;