summaryrefslogtreecommitdiffstats
path: root/src/structs.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/structs.h')
-rw-r--r--src/structs.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/structs.h b/src/structs.h
index c0339de81c..f3753306d5 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -1347,6 +1347,7 @@ typedef struct {
cbq_T ch_cb_head; /* dummy node for per-request callbacks */
char_u *ch_callback; /* call when a msg is not handled */
+ buf_T *ch_buffer; /* buffer to read from or write to */
} chanpart_T;
struct channel_S {
@@ -1395,6 +1396,12 @@ struct channel_S {
#define JO_ID 0x2000 /* "id" */
#define JO_STOPONEXIT 0x4000 /* "stoponexit" */
#define JO_EXIT_CB 0x8000 /* "exit-cb" */
+#define JO_OUT_IO 0x10000 /* "out-io" */
+#define JO_ERR_IO 0x20000 /* "err-io" (JO_OUT_IO << 1) */
+#define JO_IN_IO 0x40000 /* "in-io" (JO_OUT_IO << 2) */
+#define JO_OUT_NAME 0x80000 /* "out-name" */
+#define JO_ERR_NAME 0x100000 /* "err-name" (JO_OUT_NAME << 1) */
+#define JO_IN_NAME 0x200000 /* "in-name" (JO_OUT_NAME << 2) */
#define JO_ALL 0xffffff
#define JO_MODE_ALL (JO_MODE + JO_IN_MODE + JO_OUT_MODE + JO_ERR_MODE)
@@ -1402,6 +1409,14 @@ struct channel_S {
(JO_CALLBACK + JO_OUT_CALLBACK + JO_ERR_CALLBACK + JO_CLOSE_CALLBACK)
#define JO_TIMEOUT_ALL (JO_TIMEOUT + JO_OUT_TIMEOUT + JO_ERR_TIMEOUT)
+typedef enum {
+ JIO_NULL,
+ JIO_PIPE,
+ JIO_FILE,
+ JIO_BUFFER,
+ JIO_OUT
+} job_io_T;
+
/*
* Options for job and channel commands.
*/
@@ -1413,6 +1428,11 @@ typedef struct
ch_mode_T jo_in_mode;
ch_mode_T jo_out_mode;
ch_mode_T jo_err_mode;
+
+ job_io_T jo_io[4]; /* PART_OUT, PART_ERR, PART_IN */
+ char_u jo_io_name_buf[4][NUMBUFLEN];
+ char_u *jo_io_name[4]; /* not allocated! */
+
char_u *jo_callback; /* not allocated! */
char_u *jo_out_cb; /* not allocated! */
char_u *jo_err_cb; /* not allocated! */