X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=platform%2Fexample%2Ffunctions%2Fsignal%2Fsignal.c;fp=functions%2Fsignal%2Fsignal.c;h=33722aceb65e5d14d38fd411af9f2b5c80a01d7f;hb=d2c7499692ec324dee9fa2e81942fd6478ee24f5;hp=fb1ff0b8afb1f7afd74b3edb70209d61434ec94c;hpb=5b6ac4fcc65f0a5de1e4f51ef2af243c1eef8e7c;p=pdclib.old 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; }