1
0
Fork 0
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:
Johnothan King 2020-07-04 07:57:47 -07:00 committed by GitHub
parent d7afb57c49
commit 658bba748e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 0 deletions

3
NEWS
View file

@ -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

View file

@ -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 */

View file

@ -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))