Mercurial > vim
comparison src/eval.c @ 8178:e77efd7a7dad v7.4.1382
commit https://github.com/vim/vim/commit/02e83b438ea7071fdb176dabbaefea319ab2d686
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Feb 21 20:10:26 2016 +0100
patch 7.4.1382
Problem: Can't get the job of a channel.
Solution: Add ch_getjob().
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 21 Feb 2016 20:15:04 +0100 |
parents | f2286ff0c102 |
children | 95d59081580f |
comparison
equal
deleted
inserted
replaced
8177:0e3185eea369 | 8178:e77efd7a7dad |
---|---|
499 #ifdef FEAT_FLOAT | 499 #ifdef FEAT_FLOAT |
500 static void f_ceil(typval_T *argvars, typval_T *rettv); | 500 static void f_ceil(typval_T *argvars, typval_T *rettv); |
501 #endif | 501 #endif |
502 #ifdef FEAT_CHANNEL | 502 #ifdef FEAT_CHANNEL |
503 static void f_ch_close(typval_T *argvars, typval_T *rettv); | 503 static void f_ch_close(typval_T *argvars, typval_T *rettv); |
504 # ifdef FEAT_JOB | |
505 static void f_ch_getjob(typval_T *argvars, typval_T *rettv); | |
506 # endif | |
504 static void f_ch_log(typval_T *argvars, typval_T *rettv); | 507 static void f_ch_log(typval_T *argvars, typval_T *rettv); |
505 static void f_ch_logfile(typval_T *argvars, typval_T *rettv); | 508 static void f_ch_logfile(typval_T *argvars, typval_T *rettv); |
506 static void f_ch_open(typval_T *argvars, typval_T *rettv); | 509 static void f_ch_open(typval_T *argvars, typval_T *rettv); |
507 static void f_ch_read(typval_T *argvars, typval_T *rettv); | 510 static void f_ch_read(typval_T *argvars, typval_T *rettv); |
508 static void f_ch_readraw(typval_T *argvars, typval_T *rettv); | 511 static void f_ch_readraw(typval_T *argvars, typval_T *rettv); |
8184 #ifdef FEAT_FLOAT | 8187 #ifdef FEAT_FLOAT |
8185 {"ceil", 1, 1, f_ceil}, | 8188 {"ceil", 1, 1, f_ceil}, |
8186 #endif | 8189 #endif |
8187 #ifdef FEAT_CHANNEL | 8190 #ifdef FEAT_CHANNEL |
8188 {"ch_close", 1, 1, f_ch_close}, | 8191 {"ch_close", 1, 1, f_ch_close}, |
8192 # ifdef FEAT_JOB | |
8193 {"ch_getjob", 1, 1, f_ch_getjob}, | |
8194 # endif | |
8189 {"ch_log", 1, 2, f_ch_log}, | 8195 {"ch_log", 1, 2, f_ch_log}, |
8190 {"ch_logfile", 1, 2, f_ch_logfile}, | 8196 {"ch_logfile", 1, 2, f_ch_logfile}, |
8191 {"ch_open", 1, 2, f_ch_open}, | 8197 {"ch_open", 1, 2, f_ch_open}, |
8192 {"ch_read", 1, 2, f_ch_read}, | 8198 {"ch_read", 1, 2, f_ch_read}, |
8193 {"ch_readraw", 1, 2, f_ch_readraw}, | 8199 {"ch_readraw", 1, 2, f_ch_readraw}, |
10184 | 10190 |
10185 if (channel != NULL) | 10191 if (channel != NULL) |
10186 channel_close(channel); | 10192 channel_close(channel); |
10187 } | 10193 } |
10188 | 10194 |
10195 # ifdef FEAT_JOB | |
10196 /* | |
10197 * "ch_getjob()" function | |
10198 */ | |
10199 static void | |
10200 f_ch_getjob(typval_T *argvars, typval_T *rettv) | |
10201 { | |
10202 channel_T *channel = get_channel_arg(&argvars[0]); | |
10203 | |
10204 if (channel != NULL) | |
10205 { | |
10206 rettv->v_type = VAR_JOB; | |
10207 rettv->vval.v_job = channel->ch_job; | |
10208 if (channel->ch_job != NULL) | |
10209 ++channel->ch_job->jv_refcount; | |
10210 } | |
10211 } | |
10212 # endif | |
10213 | |
10189 /* | 10214 /* |
10190 * "ch_log()" function | 10215 * "ch_log()" function |
10191 */ | 10216 */ |
10192 static void | 10217 static void |
10193 f_ch_log(typval_T *argvars, typval_T *rettv UNUSED) | 10218 f_ch_log(typval_T *argvars, typval_T *rettv UNUSED) |