+2008-06-23 Eric Blake <ebb9@byu.net>
+
+ Revert use of sig-handler.h in sigprocmask.c.
+ * modules/sigprocmask (Files): Don't rely on sig-handler.h, since
+ it requires the existence of struct sigaction.
+ * lib/sigprocmask.c (handler_t): Restore typedef.
+ (rpl_signal, old_handlers): Use local type.
+
2008-06-22 Bruno Haible <bruno@clisp.org>
* tests/test-stdint.c: Disable the INTMAX_MAX preprocessor test
#include <stdint.h>
#include <stdlib.h>
-#include "sig-handler.h"
-
/* We assume that a platform without POSIX signal blocking functions
also does not have the POSIX sigaction() function, only the
signal() function. We also assume signal() has SysV semantics,
# define SIGSTOP (-1)
#endif
+typedef void (*handler_t) (int);
+
int
sigismember (const sigset_t *set, int sig)
{
/* The previous signal handlers.
Only the array elements corresponding to blocked signals are relevant. */
-static volatile sa_handler_t old_handlers[NSIG];
+static volatile handler_t old_handlers[NSIG];
int
sigprocmask (int operation, const sigset_t *set, sigset_t *old_set)
/* Install the handler FUNC for signal SIG, and return the previous
handler. */
-sa_handler_t
-rpl_signal (int sig, sa_handler_t handler)
+handler_t
+rpl_signal (int sig, handler_t handler)
{
/* We must provide a wrapper, so that a user can query what handler
they installed even if that signal is currently blocked. */
stale information if it calls signal(B). Oh well -
signal handlers really shouldn't try to manipulate the
installed handlers of unrelated signals. */
- sa_handler_t result = old_handlers[sig];
+ handler_t result = old_handlers[sig];
old_handlers[sig] = handler;
return result;
}