From eac483310026d1e242989fc8a306e3db5d63efee Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sat, 16 Mar 2019 17:48:06 +0100 Subject: [PATCH] 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. --- ChangeLog | 6 ++++++ lib/fatal-signal.c | 17 +++++++++++++++++ lib/fatal-signal.h | 6 ++++++ 3 files changed, 29 insertions(+) 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 -- 2.39.5