diff options
author | Bram Moolenaar <Bram@vim.org> | 2016-02-12 19:30:26 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2016-02-12 19:30:26 +0100 |
commit | 76467dfcafcf295fd987f712730774c6f55317d3 (patch) | |
tree | 9a841fa293b8dd6ee0c8170451f45c4d1ab13abb /src/eval.c | |
parent | 7c29f387819b5817b003d2ba73e2b5cf3cb3d0dd (diff) | |
download | vim-76467dfcafcf295fd987f712730774c6f55317d3.zip |
patch 7.4.1306
Problem: Job control doesn't work well on MS-Windows.
Solution: Various fixes. (Ken Takata, Ozaki Kiichi , Yukihiro Nakadaira,
Yasuhiro Matsumoto)
Diffstat (limited to 'src/eval.c')
-rw-r--r-- | src/eval.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/eval.c b/src/eval.c index 30d5684bf..ece87def4 100644 --- a/src/eval.c +++ b/src/eval.c @@ -7720,8 +7720,7 @@ failret: static void job_free(job_T *job) { - /* TODO: free any handles */ - + mch_clear_job(job); vim_free(job); } @@ -14369,9 +14368,11 @@ f_job_start(typval_T *argvars UNUSED, typval_T *rettv) s = vim_strsave_shellescape(s, FALSE, TRUE); if (s == NULL) goto theend; + ga_concat(&ga, s); + vim_free(s); } - ga_concat(&ga, s); - vim_free(s); + else + ga_concat(&ga, s); if (li->li_next != NULL) ga_append(&ga, ' '); #endif @@ -21623,7 +21624,8 @@ get_tv_string_buf_chk(typval_T *varp, char_u *buf) "process %ld %s", (long)job->jv_pid, status); # elif defined(WIN32) vim_snprintf((char *)buf, NUMBUFLEN, - "process %ld %s", (long)job->jv_pi.dwProcessId, + "process %ld %s", + (long)job->jv_proc_info.dwProcessId, status); # else /* fall-back */ |