]> pd.if.org Git - pdclib/blobdiff - platform/example/functions/signal/signal.c
Completed <signal.h>, and moved into platform.
[pdclib] / platform / example / functions / signal / signal.c
similarity index 72%
rename from functions/signal/signal.c
rename to platform/example/functions/signal/signal.c
index fb1ff0b8afb1f7afd74b3edb70209d61434ec94c..33722aceb65e5d14d38fd411af9f2b5c80a01d7f 100644 (file)
 
 #include <stdlib.h>
 
-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;
 }