Mercurial > vim
comparison src/eval.c @ 8023:75e0831549f1 v7.4.1306
commit https://github.com/vim/vim/commit/76467dfcafcf295fd987f712730774c6f55317d3
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Feb 12 19:30:26 2016 +0100
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)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Fri, 12 Feb 2016 19:45:05 +0100 |
parents | d685893d852e |
children | ece323e2b57f |
comparison
equal
deleted
inserted
replaced
8022:795f511dc6c3 | 8023:75e0831549f1 |
---|---|
7718 | 7718 |
7719 #ifdef FEAT_JOB | 7719 #ifdef FEAT_JOB |
7720 static void | 7720 static void |
7721 job_free(job_T *job) | 7721 job_free(job_T *job) |
7722 { | 7722 { |
7723 /* TODO: free any handles */ | 7723 mch_clear_job(job); |
7724 | |
7725 vim_free(job); | 7724 vim_free(job); |
7726 } | 7725 } |
7727 | 7726 |
7728 static void | 7727 static void |
7729 job_unref(job_T *job) | 7728 job_unref(job_T *job) |
14367 if (li != l->lv_first) | 14366 if (li != l->lv_first) |
14368 { | 14367 { |
14369 s = vim_strsave_shellescape(s, FALSE, TRUE); | 14368 s = vim_strsave_shellescape(s, FALSE, TRUE); |
14370 if (s == NULL) | 14369 if (s == NULL) |
14371 goto theend; | 14370 goto theend; |
14371 ga_concat(&ga, s); | |
14372 vim_free(s); | |
14372 } | 14373 } |
14373 ga_concat(&ga, s); | 14374 else |
14374 vim_free(s); | 14375 ga_concat(&ga, s); |
14375 if (li->li_next != NULL) | 14376 if (li->li_next != NULL) |
14376 ga_append(&ga, ' '); | 14377 ga_append(&ga, ' '); |
14377 #endif | 14378 #endif |
14378 } | 14379 } |
14379 #ifdef USE_ARGV | 14380 #ifdef USE_ARGV |
21621 # ifdef UNIX | 21622 # ifdef UNIX |
21622 vim_snprintf((char *)buf, NUMBUFLEN, | 21623 vim_snprintf((char *)buf, NUMBUFLEN, |
21623 "process %ld %s", (long)job->jv_pid, status); | 21624 "process %ld %s", (long)job->jv_pid, status); |
21624 # elif defined(WIN32) | 21625 # elif defined(WIN32) |
21625 vim_snprintf((char *)buf, NUMBUFLEN, | 21626 vim_snprintf((char *)buf, NUMBUFLEN, |
21626 "process %ld %s", (long)job->jv_pi.dwProcessId, | 21627 "process %ld %s", |
21628 (long)job->jv_proc_info.dwProcessId, | |
21627 status); | 21629 status); |
21628 # else | 21630 # else |
21629 /* fall-back */ | 21631 /* fall-back */ |
21630 vim_snprintf((char *)buf, NUMBUFLEN, "process ? %s", status); | 21632 vim_snprintf((char *)buf, NUMBUFLEN, "process ? %s", status); |
21631 # endif | 21633 # endif |