summaryrefslogtreecommitdiffstats
path: root/signal.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2018-11-07 06:38:26 -0800
committerKaz Kylheku <kaz@kylheku.com>2018-11-07 06:38:26 -0800
commitb0828e2dd7540651aa6863c8bc7814d86ad9401e (patch)
tree533b5cea87558792b8cd43f88e623e9c213c0106 /signal.c
parent01d9bb460e8eb76c47cdf3982dd235fe370ff137 (diff)
downloadtxr-b0828e2dd7540651aa6863c8bc7814d86ad9401e.tar.gz
txr-b0828e2dd7540651aa6863c8bc7814d86ad9401e.tar.bz2
txr-b0828e2dd7540651aa6863c8bc7814d86ad9401e.zip
type_check: take function name arg.
* arith.c (flo_int): Pass down name to type_check. * eval.c (copy_env, env_fbind, env_vbind, env_vb_to_fb, func_get_name, lexical_var_p, lexical_fun_p, lexical_lisp1_binding, squash_menv_deleting_range, op_upenv): Pass relevant Lisp function name to type_check. (lookup_global_var, lookup_sym_lisp1, lookup_fun, lookup_mac, lookup_symac, lookup_symac_lisp1): For these widely used functions, pass situational prefix in place of function name. They may get a funtion name argument in the future. * gc.c (gc_finalize): Pass function name to type_check. * lib.c (throw_mismatch): Take function nme argument, incorporate into mesage. (lcons_fun, c_flo, string_extend, symbol_name, symbol_package, get_package, package_name, func_get_form, func_get_env, func_set_env, vec_set_length, length_vec, size_vec, list_vec, lay_str_force, lay_str_force_upto, lazy_str_get_trailing_list, from, too, set_from, set_to): Pass relevant Lisp function name to type_check. (symbol_setname, symbol_visible): Pass indication of internal error into type_check, since this doesn't pertain to any Lisp function being wrong. * lib.h (throw_mismatch): Declaration updated. (type_check): Take new parameter and pass down to throw_mismatch. * signal.c (set_sig_handler): Pass name down to type_check.
Diffstat (limited to 'signal.c')
-rw-r--r--signal.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/signal.c b/signal.c
index 39e0dac2..a9491d0c 100644
--- a/signal.c
+++ b/signal.c
@@ -257,6 +257,7 @@ static void small_sigfillset(small_sigset_t *ss)
val set_sig_handler(val signo, val lambda)
{
static struct sigaction blank;
+ val self = lit("set-sig-handler");
cnum sig = c_num(signo);
val old_lambda;
small_sigset_t block, saved;
@@ -265,7 +266,7 @@ val set_sig_handler(val signo, val lambda)
sig_mask(SIG_BLOCK, &block, &saved);
if (sig < 0 || sig >= MAX_SIG)
- uw_throwf(error_s, lit("set-sig-handler: signal ~s out of range"), sig, nao);
+ uw_throwf(error_s, lit("~a: signal ~s out of range"), self, sig, nao);
old_lambda = sig_lambda[sig];
@@ -281,7 +282,7 @@ val set_sig_handler(val signo, val lambda)
} else {
struct sigaction sa = blank;
- type_check(lambda, FUN);
+ type_check(self, lambda, FUN);
sa.sa_flags = SA_RESTART;
sa.sa_handler = sig_handler;