From 3286f2ca94da081bca5ddeffdfcc6ec92adf237c Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Fri, 6 Feb 2015 06:22:51 -0800 Subject: * unwind.c (unhandled_hook_s): New static variable. (uw_throw): In the unhandled case, check if *unhandled-hook* variable has a function, and use it instead of the default logic. If it's not a function, abort with an error message. Clear it so that if the hook function re-enters this code, it will not be used. Always exit now on unhandled exceptions; do not abort. (uw_late_init): New function. * unwind.h (uw_late_init): Declared. * lib.c (init): Call uw_late_init. * txr.1: Documented *unhandled-hook*. * genvim.txr: Scan the unwind.c file, since it has a reg_var now. * tl.vim, txr.vim: Updated. --- unwind.h | 1 + 1 file changed, 1 insertion(+) (limited to 'unwind.h') diff --git a/unwind.h b/unwind.h index e684eb79..634fdfea 100644 --- a/unwind.h +++ b/unwind.h @@ -114,6 +114,7 @@ void uw_pop_until(uw_frame_t *); uw_frame_t *uw_current_frame(void); uw_frame_t *uw_current_exit_point(void); void uw_init(void); +void uw_late_init(void); noreturn val type_mismatch(val, ...); -- cgit v1.2.3