forked from aniani/vim
patch 7.4.1687
Problem: The channel close_cb option does not work. Solution: Use jo_close_partial instead of jo_err_partial. (Damien)
This commit is contained in:
@@ -1103,7 +1103,7 @@ channel_set_options(channel_T *channel, jobopt_T *opt)
|
||||
*cbp = vim_strsave(opt->jo_close_cb);
|
||||
else
|
||||
*cbp = NULL;
|
||||
*pp = opt->jo_err_partial;
|
||||
*pp = opt->jo_close_partial;
|
||||
if (*pp != NULL)
|
||||
++(*pp)->pt_refcount;
|
||||
}
|
||||
|
@@ -1203,6 +1203,29 @@ func Test_close_callback()
|
||||
call s:run_server('s:test_close_callback')
|
||||
endfunc
|
||||
|
||||
function s:test_close_partial(port)
|
||||
let handle = ch_open('localhost:' . a:port, s:chopt)
|
||||
if ch_status(handle) == "fail"
|
||||
call assert_false(1, "Can't open channel")
|
||||
return
|
||||
endif
|
||||
let s:d = {}
|
||||
func s:d.closeCb(ch) dict
|
||||
let self.close_ret = 'closed'
|
||||
endfunc
|
||||
call ch_setoptions(handle, {'close_cb': s:d.closeCb})
|
||||
|
||||
call assert_equal('', ch_evalexpr(handle, 'close me'))
|
||||
call s:waitFor('"closed" == s:d.close_ret')
|
||||
call assert_equal('closed', s:d.close_ret)
|
||||
unlet s:d
|
||||
endfunc
|
||||
|
||||
func Test_close_partial()
|
||||
call ch_log('Test_close_partial()')
|
||||
call s:run_server('s:test_close_partial')
|
||||
endfunc
|
||||
|
||||
func Test_job_start_invalid()
|
||||
call assert_fails('call job_start($x)', 'E474:')
|
||||
call assert_fails('call job_start("")', 'E474:')
|
||||
|
@@ -748,6 +748,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1687,
|
||||
/**/
|
||||
1686,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user