channels: stderr channel

This commit is contained in:
Björn Linse
2017-06-09 08:40:24 +02:00
parent 90e5cc5484
commit 5af4703177
7 changed files with 120 additions and 56 deletions

View File

@@ -9,10 +9,14 @@
#include "nvim/eval/typval.h"
#include "nvim/msgpack_rpc/channel_defs.h"
#define CHAN_STDIO 1
#define CHAN_STDERR 2
typedef enum {
kChannelStreamProc,
kChannelStreamSocket,
kChannelStreamStdio,
kChannelStreamStderr,
kChannelStreamInternal
} ChannelStreamType;
@@ -30,6 +34,10 @@ typedef struct {
Stream out;
} StdioPair;
typedef struct {
bool closed;
} StderrState;
typedef struct {
Callback cb;
garray_T buffer;
@@ -56,6 +64,7 @@ struct Channel {
PtyProcess pty;
Stream socket;
StdioPair stdio;
StderrState err;
} stream;
bool is_rpc;
@@ -95,6 +104,7 @@ static inline Stream *channel_instream(Channel *chan)
return &chan->stream.stdio.out;
case kChannelStreamInternal:
case kChannelStreamStderr:
abort();
}
abort();
@@ -114,6 +124,7 @@ static inline Stream *channel_outstream(Channel *chan)
return &chan->stream.stdio.in;
case kChannelStreamInternal:
case kChannelStreamStderr:
abort();
}
abort();