1
0
forked from aniani/vim

patch 7.4.2287

Problem:    The callback passed to ch_sendraw() is not used.
Solution:   Pass the read part, not the send part. (haya14busa, closes #1019)
This commit is contained in:
Bram Moolenaar 2016-08-28 19:26:43 +02:00
parent fec246d2c5
commit 6fc8227ebf
3 changed files with 10 additions and 2 deletions

View File

@ -3456,7 +3456,7 @@ send_common(
EMSG2(_("E917: Cannot use a callback with %s()"), fun); EMSG2(_("E917: Cannot use a callback with %s()"), fun);
return NULL; return NULL;
} }
channel_set_req_callback(channel, part_send, channel_set_req_callback(channel, *part_read,
opt->jo_callback, opt->jo_partial, id); opt->jo_callback, opt->jo_partial, id);
} }

View File

@ -245,7 +245,6 @@ endfunc
""""""""" """""""""
let g:Ch_reply = ""
func Ch_handler(chan, msg) func Ch_handler(chan, msg)
unlet g:Ch_reply unlet g:Ch_reply
let g:Ch_reply = a:msg let g:Ch_reply = a:msg
@ -271,8 +270,10 @@ endfunc
func Test_channel_handler() func Test_channel_handler()
call ch_log('Test_channel_handler()') call ch_log('Test_channel_handler()')
let g:Ch_reply = ""
let s:chopt.callback = 'Ch_handler' let s:chopt.callback = 'Ch_handler'
call s:run_server('Ch_channel_handler') call s:run_server('Ch_channel_handler')
let g:Ch_reply = ""
let s:chopt.callback = function('Ch_handler') let s:chopt.callback = function('Ch_handler')
call s:run_server('Ch_channel_handler') call s:run_server('Ch_channel_handler')
unlet s:chopt.callback unlet s:chopt.callback
@ -443,6 +444,11 @@ func Test_raw_pipe()
let msg = ch_readraw(job) let msg = ch_readraw(job)
call assert_equal("this\nAND this\n", substitute(msg, "\r", "", 'g')) call assert_equal("this\nAND this\n", substitute(msg, "\r", "", 'g'))
let g:Ch_reply = ""
call ch_sendraw(job, "double this\n", {'callback': 'Ch_handler'})
call WaitFor('"" != g:Ch_reply')
call assert_equal("this\nAND this\n", substitute(g:Ch_reply, "\r", "", 'g'))
let reply = ch_evalraw(job, "quit\n", {'timeout': 100}) let reply = ch_evalraw(job, "quit\n", {'timeout': 100})
call assert_equal("Goodbye!\n", substitute(reply, "\r", "", 'g')) call assert_equal("Goodbye!\n", substitute(reply, "\r", "", 'g'))
finally finally

View File

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