summaryrefslogtreecommitdiffstats
path: root/lib.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-02-06 06:22:51 -0800
committerKaz Kylheku <kaz@kylheku.com>2015-02-06 06:22:51 -0800
commit3286f2ca94da081bca5ddeffdfcc6ec92adf237c (patch)
treebfd61ea966ecf4d7094cd2e1a4178b6b996f64c9 /lib.c
parent30c008e52d3c911ff6315c22633fbfec34487003 (diff)
downloadtxr-3286f2ca94da081bca5ddeffdfcc6ec92adf237c.tar.gz
txr-3286f2ca94da081bca5ddeffdfcc6ec92adf237c.tar.bz2
txr-3286f2ca94da081bca5ddeffdfcc6ec92adf237c.zip
* 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.
Diffstat (limited to 'lib.c')
-rw-r--r--lib.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib.c b/lib.c
index a08f1c2f..913d2b47 100644
--- a/lib.c
+++ b/lib.c
@@ -7209,6 +7209,7 @@ void init(const wchar_t *pn, mem_t *(*oom)(mem_t *, size_t),
hash_init();
regex_init();
gc_late_init();
+ uw_late_init();
less_tab_init();
gc_state(gc_save);