diff --git a/NEWS b/NEWS index b25da606..f5a50535 100644 --- a/NEWS +++ b/NEWS @@ -7,6 +7,10 @@ -- The ports/cmake only installs manpages for BUILD_PROGRAMS now. -- The configure gives better hint if pkg-config was missing during generation (bug 378). +- mpg123: +-- Replace usage of signal() in terminal code with our sigaction() wrapper + to fix repeated handling for --sigusr1 and --sigusr2, which got subtly + broken on Linux + glibc by a feature test macro change in mpg123 1.31. 1.33.0 ------ diff --git a/src/term_posix.c b/src/term_posix.c index b262b7cd..fde077bc 100644 --- a/src/term_posix.c +++ b/src/term_posix.c @@ -112,10 +112,10 @@ static int term_setup_detail(struct termios *pattern) { mdebug("setup on fd %d", term_fd); - /* One might want to use sigaction instead. */ - signal(SIGCONT, term_sigcont); - signal(SIGUSR1, term_sigusr); - signal(SIGUSR2, term_sigusr); + INT123_catchsignal(SIGCONT, term_sigcont); + INT123_catchsignal(SIGUSR1, term_sigusr); + INT123_catchsignal(SIGUSR2, term_sigusr); + struct termios tio = *pattern; tio.c_lflag &= ~(ICANON|ECHO); tio.c_cc[VMIN] = 1;