X-Git-Url: https://pd.if.org/git/?p=pdclib;a=blobdiff_plain;f=platform%2Fexample%2Ffunctions%2Fsignal%2Fsignal.c;fp=functions%2Fsignal%2Fsignal.c;h=33722aceb65e5d14d38fd411af9f2b5c80a01d7f;hp=fb1ff0b8afb1f7afd74b3edb70209d61434ec94c;hb=702bdf4497a72b422c591f69c45aa0be0ee23731;hpb=bce3bbfa01d267e2bf7f76750cc7936907bab491 diff --git a/functions/signal/signal.c b/platform/example/functions/signal/signal.c similarity index 72% rename from functions/signal/signal.c rename to platform/example/functions/signal/signal.c index fb1ff0b..33722ac 100644 --- a/functions/signal/signal.c +++ b/platform/example/functions/signal/signal.c @@ -12,18 +12,12 @@ #include -static void default_handler( int sig ) -{ - /* TODO: Implement error message */ - exit( EXIT_FAILURE ); -} - -void (*_PDCLIB_sigabrt)( int ) = default_handler; -void (*_PDCLIB_sigfpe)( int ) = default_handler; -void (*_PDCLIB_sigill)( int ) = default_handler; -void (*_PDCLIB_sigint)( int ) = default_handler; -void (*_PDCLIB_sigsegv)( int ) = default_handler; -void (*_PDCLIB_sigterm)( int ) = default_handler; +void (*_PDCLIB_sigabrt)( int ) = SIG_DFL; +void (*_PDCLIB_sigfpe)( int ) = SIG_DFL; +void (*_PDCLIB_sigill)( int ) = SIG_DFL; +void (*_PDCLIB_sigint)( int ) = SIG_DFL; +void (*_PDCLIB_sigsegv)( int ) = SIG_DFL; +void (*_PDCLIB_sigterm)( int ) = SIG_DFL; void (*signal( int sig, void (*func)( int ) ) )( int ) { @@ -55,8 +49,11 @@ void (*signal( int sig, void (*func)( int ) ) )( int ) _PDCLIB_sigterm = func; break; default: - /* TODO: Implement. */ - break; + /* The standard calls for an unspecified "positive value". You + will probably want to define a specific value for this. + */ + _PDCLIB_errno = 1; + return SIG_ERR; } return oldhandler; }