#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <err.h>
#include <errno.h>
#include <string.h>
#include "../lpi.h"

int
main(int argc, char *argv[])
{
    sigset_t set;
    int i, sig;

    if (argc  < 2) {
        fprintf(stderr, "usage: %s signal_number1 ...\n", argv[0]);
        exit(EXIT_FAILURE);
    }

    if (sigemptyset(&set) == -1)
        err(EXIT_FAILURE, "sigemptyset");

    for (i = 1; i < argc; i++) {
        if ((errno = toInt(argv[i], &sig)) != 0) {
            warn("toInt('%s')", argv[i]);
            continue;
        }

        if (sig > 0 && sig < NSIG)
            if (sigaddset(&set, sig) == -1) {
                warn("warning sigaddset sig(%d: %s)", sig, strsignal(sig));
                continue;
            }
    }

    printf("signals in this set\n");
    printf("-------------------\n");
    for (i = 1; i < NSIG; i++) {
        if (sigismember(&set, i))
            printf("%2d: %s\n", i, strsignal(i));
    }
}
