From d88b739fbac2ca708d7077db4b59d1723830426d Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Thu, 7 Sep 2017 11:22:11 +0200 Subject: script: simplify stdin usage in poll() Signed-off-by: Karel Zak --- term-utils/script.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'term-utils') diff --git a/term-utils/script.c b/term-utils/script.c index 604e47a46..cf63ab336 100644 --- a/term-utils/script.c +++ b/term-utils/script.c @@ -437,13 +437,13 @@ static void handle_signal(struct script_control *ctl, int fd) static void do_io(struct script_control *ctl) { - int ret, ignore_stdin = 0, eof = 0; + int ret, eof = 0; time_t tvec = script_time((time_t *)NULL); char buf[128]; enum { POLLFD_SIGNAL = 0, POLLFD_MASTER, - POLLFD_STDIN /* optional; keep it last, see ignore_stdin */ + POLLFD_STDIN }; struct pollfd pfd[] = { @@ -486,7 +486,7 @@ static void do_io(struct script_control *ctl) DBG(POLL, ul_debug("calling poll()")); /* wait for input or signal */ - ret = poll(pfd, ARRAY_SIZE(pfd) - ignore_stdin, ctl->poll_timeout); + ret = poll(pfd, ARRAY_SIZE(pfd), ctl->poll_timeout); errsv = errno; DBG(POLL, ul_debug("poll() rc=%d", ret)); @@ -502,7 +502,7 @@ static void do_io(struct script_control *ctl) break; } - for (i = 0; i < ARRAY_SIZE(pfd) - ignore_stdin; i++) { + for (i = 0; i < ARRAY_SIZE(pfd); i++) { if (pfd[i].revents == 0) continue; @@ -526,10 +526,7 @@ static void do_io(struct script_control *ctl) if ((pfd[i].revents & POLLHUP) || eof) { DBG(POLL, ul_debug(" ignore FD")); pfd[i].fd = -1; - /* according to man poll() set FD to -1 can't be used to ignore - * STDIN, so let's remove the FD from pool at all */ if (i == POLLFD_STDIN) { - ignore_stdin = 1; write_eof_to_shell(ctl); DBG(POLL, ul_debug(" ignore STDIN")); } -- cgit v1.2.3-55-g7522