X-Git-Url: https://pd.if.org/git/?p=pdclib;a=blobdiff_plain;f=functions%2Fsignal.c;h=b9da182f22f85e319ed9e30b3f5ac1bb40df3d27;hp=33535f81ce36095914c6f13c213662b80d11f872;hb=1d9d92ba957a0b8307c9a65c35867fde68e6533b;hpb=34893ecc2200dc7017c36a54cb6c5f4c2378b5ec diff --git a/functions/signal.c b/functions/signal.c index 33535f8..b9da182 100644 --- a/functions/signal.c +++ b/functions/signal.c @@ -1,9 +1,67 @@ -// ---------------------------------------------------------------------------- -// $Id$ -// ---------------------------------------------------------------------------- -// Public Domain C Library - http://pdclib.sourceforge.net -// This code is Public Domain. Use, modify, and redistribute at will. -// ---------------------------------------------------------------------------- +/* ---------------------------------------------------------------------------- + * $Id$ + * ---------------------------------------------------------------------------- + * Public Domain C Library - http://pdclib.sourceforge.net + * This code is Public Domain. Use, modify, and redistribute at will. + * --------------------------------------------------------------------------*/ + +/* PDPC code - unreviewed +static void (*handlers[6])(int) = { + __sigdfl, + __sigdfl, + __sigdfl, + __sigdfl, + __sigdfl, + __sigdfl }; + +void __sigdfl(int sig) +{ + handlers[sig] = SIG_DFL; + if (sig == SIGABRT) + { + exit(EXIT_FAILURE); + } + return; +} + +void __sigerr(int sig) +{ + (void)sig; + return; +} + +void __sigign(int sig) +{ + (void)sig; + return; +} + +#define SIG_DFL __sigdfl +#define SIG_ERR __sigerr +#define SIG_IGN __sigign + +#define SIGABRT 1 +#define SIGFPE 2 +#define SIGILL 3 +#define SIGINT 4 +#define SIGSEGV 5 +#define SIGTERM 6 +*/ int raise( int sig ) { /* TODO */ }; + +/* PDPC code - unreviewed +{ + (handlers[sig])(sig); + return (0); +} +*/ + void ( * signal( int sig, void ( *func )( int ) ) ) ( int ) { /* TODO */ }; + +/* PDPC code - unreviewed +{ + handlers[sig] = func; + return (func); +} +*/