diff options
author | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2001-05-28 09:00:21 +0000 |
---|---|---|
committer | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2001-05-28 09:00:21 +0000 |
commit | 96fd8a11d382319af89bfc8ed250003c4114da84 (patch) | |
tree | 5faf57f320c972c18c769370c8bf043867f1a57b /Src | |
parent | 148b4556832bcd633c9932a11b079d7d636fd91b (diff) | |
download | zsh-96fd8a11d382319af89bfc8ed250003c4114da84.tar.gz zsh-96fd8a11d382319af89bfc8ed250003c4114da84.tar.xz zsh-96fd8a11d382319af89bfc8ed250003c4114da84.zip |
another attempt at fixing the job problem from 14327; make execpline() reset list_pipe_job to zero if it would be set for a job started in the background (14503)
Diffstat (limited to 'Src')
-rw-r--r-- | Src/exec.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/Src/exec.c b/Src/exec.c index 859813ef6..aa78a7ce6 100644 --- a/Src/exec.c +++ b/Src/exec.c @@ -976,13 +976,16 @@ execpline(Estate state, wordcode slcode, int how, int last1) list_pipe_pid = 0; nowait = 0; simple_pline = (WC_PIPE_TYPE(code) == WC_PIPE_END); - list_pipe_job = (simple_pline ? 0 : newjob); + list_pipe_job = newjob; } lastwj = lpforked = 0; execpline2(state, code, how, opipe[0], ipipe[1], last1); pline_level--; if (how & Z_ASYNC) { lastwj = newjob; + + if (thisjob == list_pipe_job) + list_pipe_job = 0; jobtab[thisjob].stat |= STAT_NOSTTY; if (slflags & WC_SUBLIST_COPROC) { zclose(ipipe[1]); |