X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fsignal%2Fsignal.c;h=7a6dd172769cf7f463f833191138766aed781f3d;hb=7c0c7a75ec8ecf3eedefc40bb4dae5aaa76d7108;hp=08902760afc36a825416f5442d465a87b8499388;hpb=0b44a0315b47dd8eced9f3b7f31580cf14bbfc01;p=musl diff --git a/src/signal/signal.c b/src/signal/signal.c index 08902760..7a6dd172 100644 --- a/src/signal/signal.c +++ b/src/signal/signal.c @@ -1,13 +1,13 @@ #include -#include #include "syscall.h" -int __sigaction(int, const struct sigaction *, struct sigaction *); - void (*signal(int sig, void (*func)(int)))(int) { - struct sigaction sa = { .sa_handler = func, .sa_flags = SA_RESTART }; - if (__sigaction(sig, &sa, &sa) < 0) + struct sigaction sa_old, sa = { .sa_handler = func, .sa_flags = SA_RESTART }; + if (__sigaction(sig, &sa, &sa_old) < 0) return SIG_ERR; - return sa.sa_handler; + return sa_old.sa_handler; } + +weak_alias(signal, bsd_signal); +weak_alias(signal, __sysv_signal);