From 0197d1dc1c43b808bfbe641ef702b10128fbdc9d Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sat, 27 Jun 2020 10:55:10 -0700 Subject: New function strsignal. * configure: detect strsignal, producing HAVE_STRSIGNAL symbol in config.h. * sysif.c (strsignal_wrap): New function. (sysif_init): Register strsignal intrinsic. * txr.1: Documented. --- sysif.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'sysif.c') diff --git a/sysif.c b/sysif.c index e54d6c5f..7d383162 100644 --- a/sysif.c +++ b/sysif.c @@ -161,6 +161,20 @@ static val strerror_wrap(val errnum) return errno_to_str(eno); } +#if HAVE_STRSIGNAL + +static val strsignal_wrap(val signum) +{ + val self = lit("strsignal"); + int sig = c_int(signum, self); + const char *str = strsignal(sig); + return if3(str, + string_utf8(strsignal(sig)), + format(nil, lit("Unknown signal %s"), signum, nao)); +} + +#endif + #if HAVE_DAEMON static val daemon_wrap(val nochdir, val noclose) { @@ -2350,6 +2364,9 @@ void sysif_init(void) reg_fun(intern(lit("errno"), user_package), func_n1o(errno_wrap, 0)); reg_fun(intern(lit("strerror"), user_package), func_n1o(strerror_wrap, 0)); +#if HAVE_STRSIGNAL + reg_fun(intern(lit("strsignal"), user_package), func_n1(strsignal_wrap)); +#endif reg_fun(intern(lit("exit"), user_package), func_n1o(exit_wrap, 0)); reg_fun(intern(lit("at-exit-call"), user_package), func_n1(at_exit_call)); reg_fun(intern(lit("at-exit-do-not-call"), user_package), func_n1(at_exit_do_not_call)); -- cgit v1.2.3