0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 7.4.1825

Problem:    When job writes to buffer nothing is written. (Nicola)
Solution:   Do not discard a channel before writing is done.
This commit is contained in:
Bram Moolenaar 2016-05-08 21:47:01 +02:00
parent 36e0f7da9b
commit 5d96e3ae53
2 changed files with 10 additions and 2 deletions

View File

@ -352,6 +352,10 @@ channel_still_useful(channel_T *channel)
if (channel->ch_close_cb != NULL)
return TRUE;
/* If reading from or a buffer it's still useful. */
if (channel->ch_part[PART_IN].ch_buffer != NULL)
return TRUE;
/* If there is no callback then nobody can get readahead. If the fd is
* closed and there is no readahead then the callback won't be called. */
has_sock_msg = channel->ch_part[PART_SOCK].ch_fd != INVALID_FD
@ -365,8 +369,10 @@ channel_still_useful(channel_T *channel)
|| channel->ch_part[PART_ERR].ch_json_head.jq_next != NULL;
return (channel->ch_callback != NULL && (has_sock_msg
|| has_out_msg || has_err_msg))
|| (channel->ch_part[PART_OUT].ch_callback != NULL && has_out_msg)
|| (channel->ch_part[PART_ERR].ch_callback != NULL && has_err_msg);
|| ((channel->ch_part[PART_OUT].ch_callback != NULL
|| channel->ch_part[PART_OUT].ch_buffer) && has_out_msg)
|| ((channel->ch_part[PART_ERR].ch_callback != NULL
|| channel->ch_part[PART_ERR].ch_buffer) && has_err_msg);
}
/*

View File

@ -753,6 +753,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1825,
/**/
1824,
/**/