Problem: term_getjob() does not return v:null as documented.
Solution: Do return v:null. (Damien) Add a test.
{
buf_T *buf = term_get_buf(argvars, "term_getjob()");
- rettv->v_type = VAR_JOB;
- rettv->vval.v_job = NULL;
if (buf == NULL)
+ {
+ rettv->v_type = VAR_SPECIAL;
+ rettv->vval.v_number = VVAL_NULL;
return;
+ }
+ rettv->v_type = VAR_JOB;
rettv->vval.v_job = buf->b_term->tl_job;
if (rettv->vval.v_job != NULL)
++rettv->vval.v_job->jv_refcount;
call Stop_shell_in_terminal(bufnr)
exe bufnr . 'bwipe'
endfunc
+
+func Test_terminal_no_job()
+ let term = term_start('false', {'term_finish': 'close'})
+ call WaitForAssert({-> assert_equal(v:null, term_getjob(term)) })
+endfunc
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 618,
/**/
617,
/**/