On Wed, Mar 09 2022, Phillip Wood wrote: > From: Phillip Wood <phillip.wood@xxxxxxxxxxxxx> > > 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@xxxxxxxxxxxxx> > --- > 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?