From: Bram Moolenaar Date: Tue, 9 Feb 2016 10:37:50 +0000 (+0100) Subject: patch 7.4.1294 X-Git-Tag: v7.4.1294 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7280140c08799f683ef31a6c1019e283c3dc13aa;p=thirdparty%2Fvim.git patch 7.4.1294 Problem: job_stop() only kills the started process. Solution: Send the signal to the process group. (Olaf Dabrunz) --- diff --git a/src/os_unix.c b/src/os_unix.c index a0e5ed0bc6..17bb32268d 100644 --- a/src/os_unix.c +++ b/src/os_unix.c @@ -3920,6 +3920,11 @@ wait4pid(pid_t child, waitstatus *status) } #if defined(FEAT_JOB) || !defined(USE_SYSTEM) || defined(PROTO) +/* + * Parse "cmd" and put the white-separated parts in "argv". + * "argv" is an allocated array with "argc" entries. + * Returns FAIL when out of memory. + */ int mch_parse_cmd(char_u *cmd, int use_shcf, char ***argv, int *argc) { @@ -5107,7 +5112,8 @@ mch_stop_job(job_T *job, char_u *how) sig = atoi((char *)how); else return FAIL; - kill(job->jv_pid, sig); + /* TODO: have an option to only kill the process, not the group? */ + kill(-job->jv_pid, sig); return OK; } #endif diff --git a/src/version.c b/src/version.c index b5bf05ea0f..1be6854fdc 100644 --- a/src/version.c +++ b/src/version.c @@ -747,6 +747,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1294, /**/ 1293, /**/