mirror of
https://github.com/neovim/neovim.git
synced 2025-09-12 22:38:16 +00:00
job: Refactor to use pointers instead of ids
'job_start' returns the id as an out paramter, and the 'job_find' function is now used by eval.c to translate job ids into pointers.
This commit is contained in:
@@ -10471,11 +10471,12 @@ static void f_job_start(typval_T *argvars, typval_T *rettv)
|
||||
// The last item of argv must be NULL
|
||||
argv[i] = NULL;
|
||||
|
||||
rettv->vval.v_number = job_start(argv,
|
||||
xstrdup((char *)argvars[0].vval.v_string),
|
||||
on_job_stdout,
|
||||
on_job_stderr,
|
||||
on_job_exit);
|
||||
job_start(argv,
|
||||
xstrdup((char *)argvars[0].vval.v_string),
|
||||
on_job_stdout,
|
||||
on_job_stderr,
|
||||
on_job_exit,
|
||||
&rettv->vval.v_number);
|
||||
|
||||
if (rettv->vval.v_number <= 0) {
|
||||
if (rettv->vval.v_number == 0) {
|
||||
@@ -10502,19 +10503,21 @@ static void f_job_stop(typval_T *argvars, typval_T *rettv)
|
||||
return;
|
||||
}
|
||||
|
||||
if (!job_stop(argvars[0].vval.v_number)) {
|
||||
Job *job = job_find(argvars[0].vval.v_number);
|
||||
|
||||
if (!job) {
|
||||
// Probably an invalid job id
|
||||
EMSG(_(e_invjob));
|
||||
return;
|
||||
}
|
||||
|
||||
job_stop(job);
|
||||
rettv->vval.v_number = 1;
|
||||
}
|
||||
|
||||
// "jobwrite()" function
|
||||
static void f_job_write(typval_T *argvars, typval_T *rettv)
|
||||
{
|
||||
bool res;
|
||||
rettv->v_type = VAR_NUMBER;
|
||||
rettv->vval.v_number = 0;
|
||||
|
||||
@@ -10529,16 +10532,16 @@ static void f_job_write(typval_T *argvars, typval_T *rettv)
|
||||
return;
|
||||
}
|
||||
|
||||
res = job_write(argvars[0].vval.v_number,
|
||||
xstrdup((char *)argvars[1].vval.v_string),
|
||||
strlen((char *)argvars[1].vval.v_string));
|
||||
Job *job = job_find(argvars[0].vval.v_number);
|
||||
|
||||
if (!res) {
|
||||
if (!job) {
|
||||
// Invalid job id
|
||||
EMSG(_(e_invjob));
|
||||
}
|
||||
|
||||
rettv->vval.v_number = 1;
|
||||
rettv->vval.v_number = job_write(job,
|
||||
xstrdup((char *)argvars[1].vval.v_string),
|
||||
strlen((char *)argvars[1].vval.v_string));
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user