diff --git a/src/channel.c b/src/channel.c index cd0c584739..967e2da0b9 100644 --- a/src/channel.c +++ b/src/channel.c @@ -748,16 +748,6 @@ channel_set_job(channel_T *channel, job_T *job) channel->ch_job = job; } -/* - * Set the callback for channel "channel". - */ - void -channel_set_callback(channel_T *channel, char_u *callback) -{ - vim_free(channel->ch_callback); - channel->ch_callback = vim_strsave(callback); -} - /* * Set various properties from an "options" argument. */ @@ -769,9 +759,14 @@ channel_set_options(channel_T *channel, jobopt_T *options) if (options->jo_set & JO_TIMEOUT) channel->ch_timeout = options->jo_timeout; - if ((options->jo_set & JO_CALLBACK) - && options->jo_callback != NULL && *options->jo_callback != NUL) - channel_set_callback(channel, options->jo_callback); + if (options->jo_set & JO_CALLBACK) + { + vim_free(channel->ch_callback); + if (options->jo_callback != NULL && *options->jo_callback != NUL) + channel->ch_callback = vim_strsave(options->jo_callback); + else + channel->ch_callback = NULL; + } } /* diff --git a/src/proto/channel.pro b/src/proto/channel.pro index 89504b594e..553fb54280 100644 --- a/src/proto/channel.pro +++ b/src/proto/channel.pro @@ -10,7 +10,6 @@ void channel_gui_register_all(void); channel_T *channel_open(char *hostname, int port_in, int waittime, void (*close_cb)(void)); void channel_set_pipes(channel_T *channel, sock_T in, sock_T out, sock_T err); void channel_set_job(channel_T *channel, job_T *job); -void channel_set_callback(channel_T *channel, char_u *callback); void channel_set_options(channel_T *channel, jobopt_T *options); void channel_set_req_callback(channel_T *channel, char_u *callback, int id); char_u *channel_get(channel_T *channel); diff --git a/src/testdir/test_channel.vim b/src/testdir/test_channel.vim index 431e40727c..2ed3abffac 100644 --- a/src/testdir/test_channel.vim +++ b/src/testdir/test_channel.vim @@ -149,6 +149,7 @@ func s:communicate(port) call ch_setoptions(handle, {'timeout': 1111}) call assert_fails("call ch_setoptions(handle, {'waittime': 111})", "E475") call assert_fails("call ch_setoptions(handle, {'mode': 'json'})", "E475") + call ch_setoptions(handle, {'callback': ''}) " Send an eval request that works. call assert_equal('ok', ch_sendexpr(handle, 'eval-works')) diff --git a/src/version.c b/src/version.c index 4af3f65a70..916c52c2f9 100644 --- a/src/version.c +++ b/src/version.c @@ -747,6 +747,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1360, /**/ 1359, /**/