Annotation of 41BSD/cmd/ucbmail/Signal.c, revision 1.1.1.1

1.1       root        1: #
                      2: 
                      3: #include <signal.h>
                      4: 
                      5: /*
                      6:  * The following is for systems with botched signal() system entries
                      7:  * which don't return the proper value for the previous signal.
                      8:  */
                      9: 
                     10: int    oldsigs[17];
                     11: 
                     12: int
                     13: (*Signal())(sig, spot)
                     14:        int spot;
                     15: {
                     16:        int ret;
                     17: 
                     18:        /* printf("Signal(%d, %.1o)\n", sig, spot); */
                     19:        if (sig < 1 || sig > 16)
                     20:                return(-1);
                     21:        ret = oldsigs[sig];
                     22:        oldsigs[sig] = (int) spot;
                     23:        signal(sig, spot);
                     24:        return(ret);
                     25: }
                     26: 
                     27: Siginit()
                     28: {
                     29:        register int i;
                     30: 
                     31:        for (i = 1; i < 17; i++) {
                     32:                oldsigs[i] = (int) signal(i, SIG_IGN);
                     33:                signal(i, (int (*)()) oldsigs[i]);
                     34:        }
                     35: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.