0
0
mirror of https://github.com/vim/vim.git synced 2025-09-24 03:44:06 -04:00

patch 7.4.1398

Problem:    The close-cb option is not implemented yet.
Solution:   Implemente close-cb. (Yasuhiro Matsumoto)
This commit is contained in:
Bram Moolenaar
2016-02-23 13:20:22 +01:00
parent 0bb6108eb4
commit 4e221c99e8
7 changed files with 116 additions and 30 deletions

View File

@@ -1366,9 +1366,12 @@ struct channel_S {
* first error until the connection works
* again. */
void (*ch_close_cb)(void); /* callback for when channel is closed */
void (*ch_nb_close_cb)(void);
/* callback for Netbeans when channel is
* closed */
char_u *ch_callback; /* call when any msg is not handled */
char_u *ch_close_cb; /* call when channel is closed */
job_T *ch_job; /* Job that uses this channel; this does not
* count as a reference to avoid a circular
@@ -1377,25 +1380,27 @@ struct channel_S {
int ch_refcount; /* reference count */
};
#define JO_MODE 0x0001 /* channel mode */
#define JO_IN_MODE 0x0002 /* stdin mode */
#define JO_OUT_MODE 0x0004 /* stdout mode */
#define JO_ERR_MODE 0x0008 /* stderr mode */
#define JO_CALLBACK 0x0010 /* channel callback */
#define JO_OUT_CALLBACK 0x0020 /* stdout callback */
#define JO_ERR_CALLBACK 0x0040 /* stderr callback */
#define JO_WAITTIME 0x0080 /* only for ch_open() */
#define JO_TIMEOUT 0x0100 /* all timeouts */
#define JO_OUT_TIMEOUT 0x0200 /* stdout timeouts */
#define JO_ERR_TIMEOUT 0x0400 /* stderr timeouts */
#define JO_PART 0x0800 /* "part" */
#define JO_ID 0x1000 /* "id" */
#define JO_STOPONEXIT 0x2000 /* "stoponexit" */
#define JO_EXIT_CB 0x4000 /* "exit-cb" */
#define JO_ALL 0xffffff
#define JO_MODE 0x0001 /* channel mode */
#define JO_IN_MODE 0x0002 /* stdin mode */
#define JO_OUT_MODE 0x0004 /* stdout mode */
#define JO_ERR_MODE 0x0008 /* stderr mode */
#define JO_CALLBACK 0x0010 /* channel callback */
#define JO_OUT_CALLBACK 0x0020 /* stdout callback */
#define JO_ERR_CALLBACK 0x0040 /* stderr callback */
#define JO_CLOSE_CALLBACK 0x0080 /* close callback */
#define JO_WAITTIME 0x0100 /* only for ch_open() */
#define JO_TIMEOUT 0x0200 /* all timeouts */
#define JO_OUT_TIMEOUT 0x0400 /* stdout timeouts */
#define JO_ERR_TIMEOUT 0x0800 /* stderr timeouts */
#define JO_PART 0x1000 /* "part" */
#define JO_ID 0x2000 /* "id" */
#define JO_STOPONEXIT 0x4000 /* "stoponexit" */
#define JO_EXIT_CB 0x8000 /* "exit-cb" */
#define JO_ALL 0xffffff
#define JO_MODE_ALL (JO_MODE + JO_IN_MODE + JO_OUT_MODE + JO_ERR_MODE)
#define JO_CB_ALL (JO_CALLBACK + JO_OUT_CALLBACK + JO_ERR_CALLBACK)
#define JO_CB_ALL \
(JO_CALLBACK + JO_OUT_CALLBACK + JO_ERR_CALLBACK + JO_CLOSE_CALLBACK)
#define JO_TIMEOUT_ALL (JO_TIMEOUT + JO_OUT_TIMEOUT + JO_ERR_TIMEOUT)
/*
@@ -1412,6 +1417,7 @@ typedef struct
char_u *jo_callback; /* not allocated! */
char_u *jo_out_cb; /* not allocated! */
char_u *jo_err_cb; /* not allocated! */
char_u *jo_close_cb; /* not allocated! */
int jo_waittime;
int jo_timeout;
int jo_out_timeout;