--- st.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/st.c b/st.c index 0628707..d5cfd74 100644 --- a/st.c +++ b/st.c _AT_@ -824,10 +824,15 @@ ttyread(void) static int buflen = 0; int written; int ret; + pid_t ret_pid; /* append read bytes to unprocessed bytes */ - if ((ret = read(cmdfd, buf+buflen, LEN(buf)-buflen)) < 0) - die("couldn't read from shell: %s\n", strerror(errno)); + if ((ret = read(cmdfd, buf+buflen, LEN(buf)-buflen)) < 0) { + ret_pid = waitpid(pid, NULL, WNOHANG); + if (ret_pid == pid) /* child is dead */ + exit(EXIT_SUCCESS); + else die("couldn't read from shell: %s\n", strerror(errno)); + } buflen += ret; written = twrite(buf, buflen, 0); -- 2.17.0Received on Sun May 13 2018 - 18:57:23 CEST
This archive was generated by hypermail 2.3.0 : Sun May 13 2018 - 19:24:24 CEST