122111Smckusick /* 2*61111Sbostic * Copyright (c) 1985, 1989, 1993 3*61111Sbostic * The Regents of the University of California. All rights reserved. 435307Sbostic * 542626Sbostic * %sccs.include.redist.c% 622111Smckusick */ 718296Smckusick 826592Sdonn #if defined(LIBC_SCCS) && !defined(lint) 9*61111Sbostic static char sccsid[] = "@(#)signal.c 8.1 (Berkeley) 06/04/93"; 1035307Sbostic #endif /* LIBC_SCCS and not lint */ 1122111Smckusick 1216498Sralph /* 1316498Sralph * Almost backwards compatible signal. 1416498Sralph */ 1518296Smckusick #include <signal.h> 1616498Sralph 1738790Skarels sigset_t _sigintr; /* shared with siginterrupt */ 1838790Skarels 1938790Skarels sig_t signal(s,a)2038790Skarelssignal(s, a) 2138790Skarels int s; 2238790Skarels sig_t a; 2318296Smckusick { 2438790Skarels struct sigaction sa, osa; 2518296Smckusick 2638790Skarels sa.sa_handler = a; 2738790Skarels sigemptyset(&sa.sa_mask); 2838790Skarels sa.sa_flags = 0; 2938790Skarels if (!sigismember(&_sigintr, s)) 3038790Skarels sa.sa_flags |= SA_RESTART; 3138790Skarels if (sigaction(s, &sa, &osa) < 0) 3250967Sbostic return (SIG_ERR); 3338790Skarels return (osa.sa_handler); 3418296Smckusick } 35