Re: [PATCH v2 3/4] terminal: work around macos poll() bug
- From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
- Date
- Mar 10, 2022, 13:35 UTC
- Message-ID
- <220310.86v8wmj5c8.gmgdl@evledraar.gmail.com>
- In-Reply-To
- <20220309110325.36917-4-phillip.wood123@gmail.com>
On Wed, Mar 09 2022, Phillip Wood wrote:
Show 25 quoted lines
> From: Phillip Wood <phillip.wood@dunelm.org.uk> > > On macos the builtin "add -p" does not handle keys that generate > escape sequences because poll() does not work with terminals > there. Switch to using select() on non-windows platforms to work > around this. > > Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk> > --- > compat/terminal.c | 43 +++++++++++++++++++++++++++++++++++++------ > 1 file changed, 37 insertions(+), 6 deletions(-) > > diff --git a/compat/terminal.c b/compat/terminal.c > index cb653419c3..4189cbb12c 100644 > --- a/compat/terminal.c > +++ b/compat/terminal.c > @@ -82,6 +82,32 @@ static int enable_non_canonical(enum save_term_flags flags) > return disable_bits(flags, ICANON | ECHO); > } > > +/* > + * On macos it is not possible to use poll() with a terminal so use select > + * instead. > + */ > +#include <sys/select.h>
I don't think this breaks anything in practice due to the platforms we define HAVE_DEV_TTY and NO_SYS_SELECT_H on, but it does look redundant & confusing, and will break if the current users of HAVE_DEV_TTY and NO_SYS_SELECT_H change.
I.e. isn't sys/select.h already pulled in by the relevant include in git-compat-util.h? Why is it needed again here?