mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-03-09 15:50:02 +00:00
Fix 'kill -INFO' on systems that support SIGINFO (#59)
src/cmd/ksh93/data/signals.c: - SIGINFO was absent from the table of signals, which caused commands like 'kill -INFO $$' to fail even on platforms with SIGINFO (such as macOS and FreeBSD). Fix that by adding it to the signal table. src/cmd/ksh93/tests/signal.sh: - Add a regression tests for using SIGINFO with the kill builtin. The test will only be run if the external kill command supports SIGINFO.
This commit is contained in:
parent
d7afb57c49
commit
658bba748e
3 changed files with 13 additions and 0 deletions
3
NEWS
3
NEWS
|
@ -21,6 +21,9 @@ Any uppercase BUG_* names are modernish shell bug IDs.
|
|||
erasable:
|
||||
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/vi.html#tag_20_152_13_49
|
||||
|
||||
- The 'kill' builtin now supports the SIGINFO signal (on operating systems
|
||||
with support for SIGINFO).
|
||||
|
||||
2020-07-02:
|
||||
|
||||
- Fixed a crash that occurred if a directory named '.paths' existed in any
|
||||
|
|
|
@ -107,6 +107,9 @@ const struct shtable2 shtab_signals[] =
|
|||
#else
|
||||
"INT", VAL(SIGINT,SH_SIGINTERACTIVE), "",
|
||||
#endif /* JOBS */
|
||||
#ifdef SIGINFO
|
||||
"INFO", VAL(SIGINFO,SH_SIGIGNORE), S("Information request"),
|
||||
#endif /* SIGINFO */
|
||||
#ifdef SIGIO
|
||||
"IO", VAL(SIGIO,SH_SIGDONE), S("IO signal"),
|
||||
#endif /* SIGIO */
|
||||
|
|
|
@ -459,5 +459,12 @@ $SHELL -c 'kill %% 2> /dev/null'; [[ $? == 1 ]] || err_exit $'`kill` doesn\'t ha
|
|||
$SHELL -c 'kill %+ 2> /dev/null'; [[ $? == 1 ]] || err_exit $'`kill` doesn\'t handle a non-existent job correctly when passed \'%+\''
|
||||
$SHELL -c 'kill %- 2> /dev/null'; [[ $? == 1 ]] || err_exit $'`kill` doesn\'t handle a non-existent job correctly when passed \'%-\''
|
||||
|
||||
# ======
|
||||
# SIGINFO should be supported by the kill builtin on platforms that have it.
|
||||
if "$(whence -p kill)" -INFO $$ 2> /dev/null
|
||||
then
|
||||
kill -INFO $$ || err_exit '`kill` cannot send SIGINFO to processes when passed `-INFO`'
|
||||
fi
|
||||
|
||||
# ======
|
||||
exit $((Errors<125?Errors:125))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue