aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/channel.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/channel.h')
-rw-r--r--src/nvim/channel.h51
1 files changed, 28 insertions, 23 deletions
diff --git a/src/nvim/channel.h b/src/nvim/channel.h
index 9bc0df3615..8d14f465c1 100644
--- a/src/nvim/channel.h
+++ b/src/nvim/channel.h
@@ -1,13 +1,13 @@
#ifndef NVIM_CHANNEL_H
#define NVIM_CHANNEL_H
-#include "nvim/main.h"
-#include "nvim/event/socket.h"
-#include "nvim/event/process.h"
-#include "nvim/os/pty_process.h"
-#include "nvim/event/libuv_process.h"
#include "nvim/eval/typval.h"
+#include "nvim/event/libuv_process.h"
+#include "nvim/event/process.h"
+#include "nvim/event/socket.h"
+#include "nvim/main.h"
#include "nvim/msgpack_rpc/channel_defs.h"
+#include "nvim/os/pty_process.h"
#define CHAN_STDIO 1
#define CHAN_STDERR 2
@@ -43,6 +43,10 @@ typedef struct {
} StderrState;
typedef struct {
+ LuaRef cb;
+} InternalState;
+
+typedef struct {
Callback cb;
dict_T *self;
garray_T buffer;
@@ -74,6 +78,7 @@ struct Channel {
Stream socket;
StdioPair stdio;
StderrState err;
+ InternalState internal;
} stream;
bool is_rpc;
@@ -105,18 +110,18 @@ static inline Stream *channel_instream(Channel *chan)
FUNC_ATTR_NONNULL_ALL
{
switch (chan->streamtype) {
- case kChannelStreamProc:
- return &chan->stream.proc.in;
+ case kChannelStreamProc:
+ return &chan->stream.proc.in;
- case kChannelStreamSocket:
- return &chan->stream.socket;
+ case kChannelStreamSocket:
+ return &chan->stream.socket;
- case kChannelStreamStdio:
- return &chan->stream.stdio.out;
+ case kChannelStreamStdio:
+ return &chan->stream.stdio.out;
- case kChannelStreamInternal:
- case kChannelStreamStderr:
- abort();
+ case kChannelStreamInternal:
+ case kChannelStreamStderr:
+ abort();
}
abort();
}
@@ -125,18 +130,18 @@ static inline Stream *channel_outstream(Channel *chan)
FUNC_ATTR_NONNULL_ALL
{
switch (chan->streamtype) {
- case kChannelStreamProc:
- return &chan->stream.proc.out;
+ case kChannelStreamProc:
+ return &chan->stream.proc.out;
- case kChannelStreamSocket:
- return &chan->stream.socket;
+ case kChannelStreamSocket:
+ return &chan->stream.socket;
- case kChannelStreamStdio:
- return &chan->stream.stdio.in;
+ case kChannelStreamStdio:
+ return &chan->stream.stdio.in;
- case kChannelStreamInternal:
- case kChannelStreamStderr:
- abort();
+ case kChannelStreamInternal:
+ case kChannelStreamStderr:
+ abort();
}
abort();
}