diff options
author | Bram Moolenaar <Bram@vim.org> | 2016-03-06 23:06:25 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2016-03-06 23:06:25 +0100 |
commit | b69fccf377f43544b86817b0de6cc1498a4ff9ec (patch) | |
tree | 16fe5187c9273a82f735ee1e4f2b50dcc345771f /src/eval.c | |
parent | d0b6502a7ace39d6cd30874110a572371d10beae (diff) |
patch 7.4.1506v7.4.1506
Problem: Job cannot read from a file.
Solution: Implement reading from a file for Unix.
Diffstat (limited to 'src/eval.c')
-rw-r--r-- | src/eval.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/eval.c b/src/eval.c index 510dd128da..77638d5612 100644 --- a/src/eval.c +++ b/src/eval.c @@ -15118,6 +15118,7 @@ f_job_start(typval_T *argvars UNUSED, typval_T *rettv) garray_T ga; #endif jobopt_T opt; + int part; rettv->v_type = VAR_JOB; job = job_alloc(); @@ -15135,6 +15136,17 @@ f_job_start(typval_T *argvars UNUSED, typval_T *rettv) + JO_STOPONEXIT + JO_EXIT_CB + JO_OUT_IO) == FAIL) return; + /* Check that when io is "file" that there is a file name. */ + for (part = PART_OUT; part <= PART_IN; ++part) + if ((opt.jo_set & (JO_OUT_IO << (part - PART_OUT))) + && opt.jo_io[part] == JIO_FILE + && (!(opt.jo_set & (JO_OUT_NAME << (part - PART_OUT))) + || *opt.jo_io_name[part] == NUL)) + { + EMSG(_("E920: -io file requires -name to be set")); + return; + } + if ((opt.jo_set & JO_IN_IO) && opt.jo_io[PART_IN] == JIO_BUFFER) { buf_T *buf; |