diff 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
line wrap: on
line diff
--- 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, ty
 		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, ch
 			    "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 */