From: Bruno Haible Date: Sat, 16 Mar 2019 16:48:06 +0000 (+0100) Subject: fatal-signal: Add function that lists the fatal signals. X-Git-Tag: v1.0~5026 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=eac483310026d1e242989fc8a306e3db5d63efee;p=gnulib.git fatal-signal: Add function that lists the fatal signals. * lib/fatal-signal.h (get_fatal_signals): New declaration. * lib/fatal-signal.c (get_fatal_signals): New function. --- diff --git a/ChangeLog b/ChangeLog index 544d69d4b7..519e85326b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2019-03-16 Bruno Haible + + fatal-signal: Add function that lists the fatal signals. + * lib/fatal-signal.h (get_fatal_signals): New declaration. + * lib/fatal-signal.c (get_fatal_signals): New function. + 2019-03-14 Bruno Haible isatty: Make it return true in Cygwin consoles on native Windows. diff --git a/lib/fatal-signal.c b/lib/fatal-signal.c index 1fe31d10f5..3bf43b087b 100644 --- a/lib/fatal-signal.c +++ b/lib/fatal-signal.c @@ -284,3 +284,20 @@ unblock_fatal_signals (void) init_fatal_signal_set (); sigprocmask (SIG_UNBLOCK, &fatal_signal_set, NULL); } + + +unsigned int +get_fatal_signals (int signals[64]) +{ + init_fatal_signal_set (); + + { + int *p = signals; + size_t i; + + for (i = 0; i < num_fatal_signals; i++) + if (fatal_signals[i] >= 0) + *p++ = fatal_signals[i]; + return p - signals; + } +} diff --git a/lib/fatal-signal.h b/lib/fatal-signal.h index a2e60d3a62..22680e7ca4 100644 --- a/lib/fatal-signal.h +++ b/lib/fatal-signal.h @@ -71,6 +71,12 @@ extern void block_fatal_signals (void); extern void unblock_fatal_signals (void); +/* Return the list of signals that block_fatal_signals/unblock_fatal_signals + would block or unblock. + Fills signals[0..count-1] and returns count. */ +extern unsigned int get_fatal_signals (int signals[64]); + + #ifdef __cplusplus } #endif