diff options
author | Oliver Kiddle <opk@zsh.org> | 2024-02-28 00:21:11 +0100 |
---|---|---|
committer | Oliver Kiddle <opk@zsh.org> | 2024-02-28 00:21:11 +0100 |
commit | 5331ff11c64d9d292f4fe817723af6e0a067fa1f (patch) | |
tree | 367ea996dca3e15adc65bc5c4077726f56b08482 /Src/params.c | |
parent | b68002d927b1577bbed453d7bbbe39b55acf7bd0 (diff) | |
download | zsh-5331ff11c64d9d292f4fe817723af6e0a067fa1f.tar.gz zsh-5331ff11c64d9d292f4fe817723af6e0a067fa1f.zip |
52594: support for POSIX real-time signals with kill and trap
Also add new -L option to kill for a more verbose listing of signals
Diffstat (limited to 'Src/params.c')
-rw-r--r-- | Src/params.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/Src/params.c b/Src/params.c index 225acb8a1..7c5e9d8ff 100644 --- a/Src/params.c +++ b/Src/params.c @@ -946,8 +946,18 @@ createparamtable(void) setsparam("ZSH_ARGZERO", ztrdup(posixzero)); setsparam("ZSH_VERSION", ztrdup_metafy(ZSH_VERSION)); setsparam("ZSH_PATCHLEVEL", ztrdup_metafy(ZSH_PATCHLEVEL)); - setaparam("signals", sigptr = zalloc((SIGCOUNT+4) * sizeof(char *))); - for (t = sigs; (*sigptr++ = ztrdup_metafy(*t++)); ); + setaparam("signals", sigptr = zalloc((TRAPCOUNT + 1) * sizeof(char *))); + t = sigs; +#if defined(SIGRTMIN) && defined(SIGRTMAX) + while (t - sigs <= SIGCOUNT) + *sigptr++ = ztrdup_metafy(*t++); + { + int sig; + for (sig = SIGRTMIN; sig <= SIGRTMAX; sig++) + *sigptr++ = ztrdup_metafy(rtsigname(sig, 0)); + } +#endif + while ((*sigptr++ = ztrdup_metafy(*t++))) /* empty */ ; noerrs = 0; } |