From 3f9ebf32a392a9cae1c3e4b6bf8cecad60e2a22a Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Mon, 7 Nov 2016 22:13:32 +0100 Subject: [PATCH 1/2] patch 8.0.0070 Problem: Tests referred in Makefile that no longer exist. Solution: Remove test71 and test74 entries. (Michael Soyka) --- src/testdir/Make_ming.mak | 2 +- src/version.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/testdir/Make_ming.mak b/src/testdir/Make_ming.mak index 33306910ad..ab6a60b924 100644 --- a/src/testdir/Make_ming.mak +++ b/src/testdir/Make_ming.mak @@ -68,7 +68,7 @@ win32: fixff nolog $(SCRIPTS_FIRST) $(SCRIPTS) $(SCRIPTS_WIN32) newtests fixff: -$(VIMPROG) -u dos.vim $(NO_PLUGIN) "+argdo set ff=dos|upd" +q *.in *.ok -$(VIMPROG) -u dos.vim $(NO_PLUGIN) "+argdo set ff=unix|upd" +q \ - dotest.in test60.ok test71.ok test74.ok test_listchars.ok \ + dotest.in test60.ok test_listchars.ok \ test_getcwd.ok test_wordcount.ok clean: diff --git a/src/version.c b/src/version.c index c698e446b2..19a22f325d 100644 --- a/src/version.c +++ b/src/version.c @@ -764,6 +764,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 70, /**/ 69, /**/ From c4d4ac22f78fb1394c79eccc8a1e6812c0c7d8a7 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Mon, 7 Nov 2016 22:42:57 +0100 Subject: [PATCH 2/2] patch 8.0.0071 Problem: Exit value from a shell command is wrong. (Hexchain Tong) Solution: Do not check for ended jobs while waiting for a shell command. (ichizok, closes #1196) --- src/os_unix.c | 20 +++++++++++++++++++- src/version.c | 2 ++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/os_unix.c b/src/os_unix.c index c6beba2cc9..5d5b151675 100644 --- a/src/os_unix.c +++ b/src/os_unix.c @@ -238,6 +238,10 @@ static volatile int deadly_signal = 0; /* The signal we caught */ /* volatile because it is used in signal handler deathtrap(). */ static volatile int in_mch_delay = FALSE; /* sleeping in mch_delay() */ +#if defined(FEAT_JOB_CHANNEL) && !defined(USE_SYSTEM) +static int dont_check_job_ended = 0; +#endif + static int curr_tmode = TMODE_COOK; /* contains current terminal mode */ #ifdef USE_XSMP @@ -4485,7 +4489,9 @@ mch_call_shell( catch_signals(SIG_IGN, SIG_ERR); catch_int_signal(); UNBLOCK_SIGNALS(&curset); - +# ifdef FEAT_JOB_CHANNEL + ++dont_check_job_ended; +# endif /* * For the GUI we redirect stdin, stdout and stderr to our window. * This is also used to pipe stdin/stdout to/from the external @@ -5030,6 +5036,10 @@ finished: wait4pid(wpid, NULL); } +# ifdef FEAT_JOB_CHANNEL + --dont_check_job_ended; +# endif + /* * Set to raw mode right now, otherwise a CTRL-C after * catch_signals() will kill Vim. @@ -5363,6 +5373,14 @@ mch_detect_ended_job(job_T *job_list) pid_t wait_pid = 0; job_T *job; +# ifndef USE_SYSTEM + /* Do not do this when waiting for a shell command to finish, we would get + * the exit value here (and discard it), the exit value obtained there + * would then be wrong. */ + if (dont_check_job_ended > 0) + return NULL; +# endif + # ifdef __NeXT__ wait_pid = wait4(-1, &status, WNOHANG, (struct rusage *)0); # else diff --git a/src/version.c b/src/version.c index 19a22f325d..d51160bf2d 100644 --- a/src/version.c +++ b/src/version.c @@ -764,6 +764,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 71, /**/ 70, /**/