11221Skas # 21221Skas 31221Skas #include <signal.h> 41221Skas 51221Skas /* 61221Skas * The following is for systems with botched signal() system entries 71221Skas * which don't return the proper value for the previous signal. 81221Skas */ 91221Skas 101221Skas int oldsigs[17]; 111221Skas 12*3916Skurt static char *SccsId = "@(#)Signal.c 2.1 07/01/81"; 131221Skas 141221Skas int 151221Skas (*Signal())(sig, spot) 161221Skas int spot; 171221Skas { 181221Skas int ret; 191221Skas 201221Skas /* printf("Signal(%d, %.1o)\n", sig, spot); */ 211221Skas if (sig < 1 || sig > 16) 221221Skas return(-1); 231221Skas ret = oldsigs[sig]; 241221Skas oldsigs[sig] = (int) spot; 251221Skas signal(sig, spot); 261221Skas return(ret); 271221Skas } 281221Skas Siginit()291221SkasSiginit() 301221Skas { 311221Skas register int i; 321221Skas 331221Skas for (i = 1; i < 17; i++) { 341221Skas oldsigs[i] = (int) signal(i, SIG_IGN); 351221Skas signal(i, (int (*)()) oldsigs[i]); 361221Skas } 371221Skas } 38