forked from aniani/vim
patch 8.2.3188: Vim9: argument types are not checked at compile time
Problem: Vim9: argument types are not checked at compile time. Solution: Add several more type checks, also at runtime. (Yegappan Lakshmanan, closes #8587)
This commit is contained in:
committed by
Bram Moolenaar
parent
9bb0dad0d8
commit
83494b4ac6
20
src/job.c
20
src/job.c
@@ -1726,9 +1726,7 @@ f_prompt_setprompt(typval_T *argvars, typval_T *rettv UNUSED)
|
||||
char_u *text;
|
||||
|
||||
if (in_vim9script()
|
||||
&& ((argvars[0].v_type != VAR_STRING
|
||||
&& argvars[0].v_type != VAR_NUMBER
|
||||
&& check_for_string_arg(argvars, 0) == FAIL)
|
||||
&& (check_for_string_or_number_arg(argvars, 0) == FAIL
|
||||
|| check_for_string_arg(argvars, 1) == FAIL))
|
||||
return;
|
||||
|
||||
@@ -1875,9 +1873,15 @@ f_job_info(typval_T *argvars, typval_T *rettv)
|
||||
void
|
||||
f_job_setoptions(typval_T *argvars, typval_T *rettv UNUSED)
|
||||
{
|
||||
job_T *job = get_job_arg(&argvars[0]);
|
||||
job_T *job;
|
||||
jobopt_T opt;
|
||||
|
||||
if (in_vim9script()
|
||||
&& (check_for_job_arg(argvars, 0) == FAIL
|
||||
|| check_for_dict_arg(argvars, 1) == FAIL))
|
||||
return;
|
||||
|
||||
job = get_job_arg(&argvars[0]);
|
||||
if (job == NULL)
|
||||
return;
|
||||
clear_job_options(&opt);
|
||||
@@ -1928,8 +1932,14 @@ f_job_status(typval_T *argvars, typval_T *rettv)
|
||||
void
|
||||
f_job_stop(typval_T *argvars, typval_T *rettv)
|
||||
{
|
||||
job_T *job = get_job_arg(&argvars[0]);
|
||||
job_T *job;
|
||||
|
||||
if (in_vim9script()
|
||||
&& (check_for_job_arg(argvars, 0) == FAIL
|
||||
|| check_for_opt_string_or_number_arg(argvars, 1) == FAIL))
|
||||
return;
|
||||
|
||||
job = get_job_arg(&argvars[0]);
|
||||
if (job != NULL)
|
||||
rettv->vval.v_number = job_stop(job, argvars, NULL);
|
||||
}
|
||||
|
Reference in New Issue
Block a user