Thanks for doing all that. I've attached a few changes: - spelling fixes - usage() clarified/reordered - ensure sigset_t are initialized - Don't setprocmask() unless specified - Simplified SETMASK_SIGNAL_OPTION handling - The test missed `env` as a prerequisite - The test was slow/spun cpu, so used sleep instead of seq - Used $SHELL in case sh didn't support trap I see that the last signal that `kill -l` lists is not included. I think we should be processing SIGNUM_BOUND also? cheers, Pádraig