From b039ea1d9d5361bb3bbbdb10dd2f455028ff7fcb Mon Sep 17 00:00:00 2001 From: John Hawthorn Date: Sat, 15 Sep 2018 17:15:42 -0700 Subject: Allow -1 timeout to mean infinite --- src/tty.c | 10 ++++++++-- src/tty.h | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/tty.c b/src/tty.c index a81fe85..2481475 100644 --- a/src/tty.c +++ b/src/tty.c @@ -96,7 +96,7 @@ char tty_getchar(tty_t *tty) { } } -int tty_input_ready(tty_t *tty, unsigned long timeout, int return_on_signal) { +int tty_input_ready(tty_t *tty, long int timeout, int return_on_signal) { fd_set readfs; FD_ZERO(&readfs); FD_SET(tty->fdin, &readfs); @@ -108,7 +108,13 @@ int tty_input_ready(tty_t *tty, unsigned long timeout, int return_on_signal) { if (!return_on_signal) sigaddset(&mask, SIGWINCH); - int err = pselect(tty->fdin + 1, &readfs, NULL, NULL, &ts, &mask); + int err = pselect( + tty->fdin + 1, + &readfs, + NULL, + NULL, + timeout < 0 ? NULL : &ts, + return_on_signal ? NULL : &mask); if (err < 0) { return 0; diff --git a/src/tty.h b/src/tty.h index 66f48b9..6c73a6e 100644 --- a/src/tty.h +++ b/src/tty.h @@ -17,7 +17,7 @@ void tty_close(tty_t *tty); void tty_init(tty_t *tty, const char *tty_filename); void tty_getwinsz(tty_t *tty); char tty_getchar(tty_t *tty); -int tty_input_ready(tty_t *tty, int timeout, int return_on_signal); +int tty_input_ready(tty_t *tty, long int timeout, int return_on_signal); void tty_setfg(tty_t *tty, int fg); void tty_setinvert(tty_t *tty); -- cgit v1.2.3