comparison src/eval.c @ 8436:0e6fd2f802b3 v7.4.1509

commit https://github.com/vim/vim/commit/151f656e171f6ffbb0cbeb343cbcf2ffac0c36b0 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Mar 7 21:19:38 2016 +0100 patch 7.4.1509 Problem: Keeping both a variable for a job and the channel it refers to is a hassle. Solution: Allow passing the job where a channel is expected. (Damien)
author Christian Brabandt <cb@256bit.org>
date Mon, 07 Mar 2016 21:30:14 +0100
parents 6af4329b5592
children c0b5c2b0a5ee
comparison
equal deleted inserted replaced
8435:1f91306880c1 8436:0e6fd2f802b3
10283 * Returns NULL if the handle is invalid. 10283 * Returns NULL if the handle is invalid.
10284 */ 10284 */
10285 static channel_T * 10285 static channel_T *
10286 get_channel_arg(typval_T *tv) 10286 get_channel_arg(typval_T *tv)
10287 { 10287 {
10288 channel_T *channel; 10288 channel_T *channel = NULL;
10289 10289
10290 if (tv->v_type != VAR_CHANNEL) 10290 if (tv->v_type == VAR_JOB)
10291 {
10292 if (tv->vval.v_job != NULL)
10293 channel = tv->vval.v_job->jv_channel;
10294 }
10295 else if (tv->v_type == VAR_CHANNEL)
10296 {
10297 channel = tv->vval.v_channel;
10298 }
10299 else
10291 { 10300 {
10292 EMSG2(_(e_invarg2), get_tv_string(tv)); 10301 EMSG2(_(e_invarg2), get_tv_string(tv));
10293 return NULL; 10302 return NULL;
10294 } 10303 }
10295 channel = tv->vval.v_channel;
10296 10304
10297 if (channel == NULL || !channel_is_open(channel)) 10305 if (channel == NULL || !channel_is_open(channel))
10298 { 10306 {
10299 EMSG(_("E906: not an open channel")); 10307 EMSG(_("E906: not an open channel"));
10300 return NULL; 10308 return NULL;
15104 15112
15105 /* 15113 /*
15106 * "job_start()" function 15114 * "job_start()" function
15107 */ 15115 */
15108 static void 15116 static void
15109 f_job_start(typval_T *argvars UNUSED, typval_T *rettv) 15117 f_job_start(typval_T *argvars, typval_T *rettv)
15110 { 15118 {
15111 job_T *job; 15119 job_T *job;
15112 char_u *cmd = NULL; 15120 char_u *cmd = NULL;
15113 #if defined(UNIX) 15121 #if defined(UNIX)
15114 # define USE_ARGV 15122 # define USE_ARGV