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)
diff --git a/src/eval.c b/src/eval.c
index 30d5684..ece87de 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -7720,8 +7720,7 @@
static void
job_free(job_T *job)
{
- /* TODO: free any handles */
-
+ mch_clear_job(job);
vim_free(job);
}
@@ -14369,9 +14368,11 @@
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 @@
"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 */