diff options
author | Ernie Rael <errael@raelity.com> | 2024-06-13 17:24:54 +0200 |
---|---|---|
committer | Christian Brabandt <cb@256bit.org> | 2024-06-13 17:24:54 +0200 |
commit | a78eb25db3089b864dab8a9cc6c9e5270bf09644 (patch) | |
tree | c0c21d7aaad485d229e21a6756317989a0cd04ff /src | |
parent | 1c296026627d7ac8195e803b4c2393c21ae659b4 (diff) |
patch 9.1.0481: Vim9: term_getjob() throws an exception on errorv9.1.0481
Problem: Vim9: term_getjob() throws an exception on error
Solution: Return null_job instead, when there is no job
(Ernie Rael)
closes: #14984
Signed-off-by: Ernie Rael <errael@raelity.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/terminal.c | 12 | ||||
-rw-r--r-- | src/testdir/test_vim9_builtin.vim | 1 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 13 insertions, 2 deletions
diff --git a/src/terminal.c b/src/terminal.c index 07b69c6a7c..648fc78728 100644 --- a/src/terminal.c +++ b/src/terminal.c @@ -6171,8 +6171,16 @@ f_term_getjob(typval_T *argvars, typval_T *rettv) buf = term_get_buf(argvars, "term_getjob()"); if (buf == NULL) { - rettv->v_type = VAR_SPECIAL; - rettv->vval.v_number = VVAL_NULL; + if (in_vim9script()) + { + rettv->v_type = VAR_JOB; + rettv->vval.v_job = NULL; + } + else + { + rettv->v_type = VAR_SPECIAL; + rettv->vval.v_number = VVAL_NULL; + } return; } diff --git a/src/testdir/test_vim9_builtin.vim b/src/testdir/test_vim9_builtin.vim index 3200b73358..6b1a50d416 100644 --- a/src/testdir/test_vim9_builtin.vim +++ b/src/testdir/test_vim9_builtin.vim @@ -4557,6 +4557,7 @@ enddef def Test_term_getjob() CheckRunVimInTerminal v9.CheckSourceDefAndScriptFailure(['term_getjob(0z10)'], ['E1013: Argument 1: type mismatch, expected string but got blob', 'E1220: String or Number required for argument 1']) + v9.CheckSourceDefAndScriptSuccess(['assert_true(term_getjob(0) == null_job)']) enddef def Test_term_getline() diff --git a/src/version.c b/src/version.c index 89ba9fc392..1360d1cfc3 100644 --- a/src/version.c +++ b/src/version.c @@ -705,6 +705,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 481, +/**/ 480, /**/ 479, |