diff options
author | Bart Schaefer <schaefer@zsh.org> | 2022-11-06 11:25:47 -0800 |
---|---|---|
committer | Bart Schaefer <schaefer@zsh.org> | 2022-11-06 11:25:47 -0800 |
commit | 188c5cd518b512073d3fd1dbf09c91b7968efcaa (patch) | |
tree | 687a4b83ae3de16f1a9fbfb48b7b8b19a3ff1852 /Src/lex.c | |
parent | f8d93888a8efd6c8142e74ece83b38632661de47 (diff) | |
download | zsh-188c5cd518b512073d3fd1dbf09c91b7968efcaa.tar.gz zsh-188c5cd518b512073d3fd1dbf09c91b7968efcaa.tar.xz zsh-188c5cd518b512073d3fd1dbf09c91b7968efcaa.zip |
50874: fix handling of tty signals for jobs in the current shell when waiting for the right side of a pipeline.
Reverts 15bf8ace (workers/50134). Thanks to Jun T. for debugging assistance. Issues came down to two things: 1. update_job() may be called on a process group leader even when a signal was NOT sent to any process in that process group. This caused jobs to be resumed or backgrounded incorrectly or in the wrong order. 2. When there is a current-shell complex command (in braces) on the right side of a pipeline, external processes within it have their own process groups, but a tty signal sent to such a process should be treated as if received by the whole complex command. This fixes: * Suspend/resume of a foreground pipeline within a shell function * Interrupt or suspend/resume of processes in a pipeline ending in { ... } * Interrupt of such a pipeline after exit of the last process in { ... } These affected interactive shells only (MONITOR set plus tty signals).
Diffstat (limited to 'Src/lex.c')
0 files changed, 0 insertions, 0 deletions