From: Theo Buehler Subject: Re: changes to signal handling with respect to ksh ? To: "Todd C. Miller" Cc: Claudio Jeker , Walter Alejandro Iglesias , Marc Espie , ports@openbsd.org Date: Fri, 9 Aug 2024 17:43:28 +0200 > The correct fix is probably to drain the pipe and only act on the > last command. It seems to work for me. Makes sense and works here, too. Here's a corresponding diff for the port. This is ok tb (or I can commit if you want me to). Index: Makefile =================================================================== RCS file: /cvs/ports/multimedia/mpv/Makefile,v diff -u -p -r1.103 Makefile --- Makefile 28 Jul 2024 06:51:13 -0000 1.103 +++ Makefile 9 Aug 2024 15:42:23 -0000 @@ -4,7 +4,7 @@ GH_ACCOUNT = mpv-player GH_PROJECT = mpv GH_TAGNAME = v0.38.0 USE_NOBTCFI = Yes -REVISION = 0 +REVISION = 1 SHARED_LIBS += mpv 2.0 Index: patches/patch-osdep_terminal-unix_c =================================================================== RCS file: patches/patch-osdep_terminal-unix_c diff -N patches/patch-osdep_terminal-unix_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-osdep_terminal-unix_c 9 Aug 2024 15:39:47 -0000 @@ -0,0 +1,13 @@ +Index: osdep/terminal-unix.c +--- osdep/terminal-unix.c.orig ++++ osdep/terminal-unix.c +@@ -421,7 +421,8 @@ static MP_THREAD_VOID terminal_thread(void *ptr) + } + if (fds[1].revents & POLLIN) { + int8_t c = -1; +- (void)read(stop_cont_pipe[0], &c, 1); ++ while (read(stop_cont_pipe[0], &c, 1) == 1) ++ continue; + if (c == PIPE_STOP) { + do_deactivate_getch2(); + if (isatty(STDERR_FILENO)) {