IGNORE, /* Set to ignore (SIG_IGN). */
IGNORE_NOERR /* ditto, but ignore sigaction(2) errors. */
};
-static enum SIGNAL_MODE signals[SIGNUM_BOUND + 1];
+static enum SIGNAL_MODE *signals;
/* Set of signals to block. */
static sigset_t block_signals;
}
}
+static void
+initialize_signals (void)
+{
+ signals = xmalloc ((sizeof *signals) * (SIGNUM_BOUND + 1));
+
+ for (int i = 0 ; i <= SIGNUM_BOUND; i++)
+ signals[i] = UNCHANGED;
+
+ return;
+}
+
int
main (int argc, char **argv)
{
initialize_exit_failure (EXIT_CANCELED);
atexit (close_stdout);
+ initialize_signals ();
+
while ((optc = getopt_long (argc, argv, shortopts, longopts, NULL)) != -1)
{
switch (optc)