Patch 7.4.1418
Problem: job_stop() on MS-Windows does not really stop the job.
Solution: Make the default to stop the job forcefully. (Ken Takata)
Make MS-Windows and Unix more similar.
Files: src/os_win32.c, src/os_unix.c, runtime/doc/eval.txt
*** ../vim-7.4.1417/src/os_win32.c 2016-02-23 19:33:57.429544837 +0100
--- src/os_win32.c 2016-02-25 20:51:11.441142000 +0100
***************
*** 5141,5150 ****
int
mch_stop_job(job_T *job, char_u *how)
{
! int ret = 0;
! int ctrl_c = STRCMP(how, "int") == 0;
! if (STRCMP(how, "kill") == 0)
{
if (job->jv_job_object != NULL)
return TerminateJobObject(job->jv_job_object, 0) ? OK : FAIL;
--- 5141,5149 ----
int
mch_stop_job(job_T *job, char_u *how)
{
! int ret;
! if (STRCMP(how, "term") == 0 || STRCMP(how, "kill") == 0 || *how == NUL)
{
if (job->jv_job_object != NULL)
return TerminateJobObject(job->jv_job_object, 0) ? OK : FAIL;
***************
*** 5155,5163 ****
if (!AttachConsole(job->jv_proc_info.dwProcessId))
return FAIL;
ret = GenerateConsoleCtrlEvent(
! ctrl_c ? CTRL_C_EVENT : CTRL_BREAK_EVENT,
! job->jv_proc_info.dwProcessId)
! ? OK : FAIL;
FreeConsole();
return ret;
}
--- 5154,5162 ----
if (!AttachConsole(job->jv_proc_info.dwProcessId))
return FAIL;
ret = GenerateConsoleCtrlEvent(
! STRCMP(how, "int") == 0 ? CTRL_C_EVENT : CTRL_BREAK_EVENT,
! job->jv_proc_info.dwProcessId)
! ? OK : FAIL;
FreeConsole();
return ret;
}
*** ../vim-7.4.1417/src/os_unix.c 2016-02-18 22:17:36.105244535 +0100
--- src/os_unix.c 2016-02-25 20:52:42.532189790 +0100
***************
*** 5202,5213 ****
int sig = -1;
pid_t job_pid;
! if (STRCMP(how, "hup") == 0)
! sig = SIGHUP;
! else if (*how == NUL || STRCMP(how, "term") == 0)
sig = SIGTERM;
else if (STRCMP(how, "quit") == 0)
sig = SIGQUIT;
else if (STRCMP(how, "kill") == 0)
sig = SIGKILL;
else if (isdigit(*how))
--- 5202,5215 ----
int sig = -1;
pid_t job_pid;
! if (*how == NUL || STRCMP(how, "term") == 0)
sig = SIGTERM;
+ else if (STRCMP(how, "hup") == 0)
+ sig = SIGHUP;
else if (STRCMP(how, "quit") == 0)
sig = SIGQUIT;
+ else if (STRCMP(how, "int") == 0)
+ sig = SIGINT;
else if (STRCMP(how, "kill") == 0)
sig = SIGKILL;
else if (isdigit(*how))
*** ../vim-7.4.1417/runtime/doc/eval.txt 2016-02-23 17:13:56.869032413
+0100
--- runtime/doc/eval.txt 2016-02-25 20:47:22.275537801 +0100
***************
*** 4394,4414 ****
job_stop({job} [, {how}]) *job_stop()*
Stop the {job}. This can also be used to signal the job.
! When {how} is omitted or is "term" the job will be terminated
! normally. For Unix SIGTERM is sent. For MS-Windows
! CTRL_BREAK will be sent. This goes to the process group, thus
! children may also be affected.
!
! Other values for Unix:
! "hup" Unix: SIGHUP
! "quit" Unix: SIGQUIT
! "kill" Unix: SIGKILL (strongest way to stop)
! number Unix: signal with that number
!
! Other values for MS-Windows:
! "int" Windows: CTRL_C
! "kill" Windows: terminate process forcedly
! Others Windows: CTRL_BREAK
On Unix the signal is sent to the process group. This means
that when the job is "sh -c command" it affects both the shell
--- 4474,4500 ----
job_stop({job} [, {how}]) *job_stop()*
Stop the {job}. This can also be used to signal the job.
! When {how} is omitted or is "term" the job will be terminated.
! For Unix SIGTERM is sent. On MS-Windows the job will be
! terminated forcedly (there is no "gentle" way).
! This goes to the process group, thus children may also be
! affected.
!
! Effect for Unix:
! "term" SIGTERM (default)
! "hup" SIGHUP
! "quit" SIGQUIT
! "int" SIGINT
! "kill" SIGKILL (strongest way to stop)
! number signal with that number
!
! Effect for MS-Windows:
! "term" terminate process forcedly (default)
! "hup" CTRL_BREAK
! "quit" CTRL_BREAK
! "int" CTRL_C
! "kill" terminate process forcedly
! Others CTRL_BREAK
On Unix the signal is sent to the process group. This means
that when the job is "sh -c command" it affects both the shell
*** ../vim-7.4.1417/src/version.c 2016-02-25 20:37:31.877711824 +0100
--- src/version.c 2016-02-25 20:49:00.082515239 +0100
***************
*** 750,751 ****
--- 750,753 ----
{ /* Add new patch number below this line */
+ /**/
+ 1418,
/**/
--
To the optimist, the glass is half full.
To the pessimist, the glass is half empty.
To the engineer, the glass is twice as big as it needs to be.
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.