From: Denis Vlasenko Date: Fri, 31 Oct 2008 03:04:55 +0000 (-0000) Subject: less: fix newly-introduced case of less spinning forever X-Git-Tag: 1_13_0~35 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=64974793b9fe0921c43e604de747caf7d32f671c;p=oweals%2Fbusybox.git less: fix newly-introduced case of less spinning forever on pty's closed etc --- diff --git a/miscutils/less.c b/miscutils/less.c index b5d225a12..6c793ad8b 100644 --- a/miscutils/less.c +++ b/miscutils/less.c @@ -853,12 +853,16 @@ static ssize_t getch_nowait(void) /* We have kbd_fd in O_NONBLOCK mode, read inside read_key() * would not block even if there is no input available */ rd = read_key(kbd_fd, NULL, input); - if (rd == -1 && errno == EAGAIN) { - /* No keyboard input available. Since poll() did return, - * we should have input on stdin */ - read_lines(); - buffer_fill_and_print(); - goto again; + if (rd == -1) { + if (errno == EAGAIN) { + /* No keyboard input available. Since poll() did return, + * we should have input on stdin */ + read_lines(); + buffer_fill_and_print(); + goto again; + } + /* EOF/error (ssh session got killed etc) */ + less_exit(0); } set_tty_cooked(); return rd;