
void
init_trap()
{
	int i;

	for (i=0;i<NSIG;i++) {
		signals[i].name = 0;
	}

	/* defined by C standard */
	signals[SIGABRT].name = "SIGABRT";
	signals[SIGFPE ].name = "*SIGFPE";
	/* "*" means reserved to us - see below */
	signals[SIGILL ].name = "SIGILL";
	signals[SIGINT ].name = "SIGINT";
	signals[SIGSEGV].name = "SIGSEGV";
	signals[SIGTERM].name = "SIGTERM";

	/* our own extension */
	signals[0].name = "ONEXIT";

	/* nonstandard but common */
#if defined(SIGHUP)		/* hangup */
	signals[SIGHUP ].name = "SIGHUP";
#endif

#if defined(SIGALRM)		/* alarm clock */
	signals[SIGALRM].name = "SIGALRM";
#endif

#if defined(SIGPWR)		/* imminent power failure */
	signals[SIGPWR ].name = "SIGPWR";
#endif

#if defined(SIGIO)		/* input/output signal */
	signals[SIGIO  ].name = "SIGIO";
#endif

	for (i=0;i<NSIG;i++) {
		signals[i].action = 0;
		signals[i].defaultX = signal(i,SIG_DFL);
		signal(i,signals[i].defaultX);
	}
}



