* root.c: Establish a reliable catch-all handler for the new root.
authorJim Blandy <jimb@red-bean.com>
Mon, 23 Jun 1997 04:34:34 +0000 (04:34 +0000)
committerJim Blandy <jimb@red-bean.com>
Mon, 23 Jun 1997 04:34:34 +0000 (04:34 +0000)
commitf032b8a8a94d9e3cdc77a2afdc7f63cc3121ab0b
tree6bdda8b57d1ddb6d4d30bc741f4c63e951aa232e
parenteb1e924e07276ed365e363332806d3708edeb2a2
* root.c: Establish a reliable catch-all handler for the new root.
After all the Scheme handler function might signal an error too,
and we don't want to lose that.
(cwdr_inner_body): Renamed from cwdr_body.
(cwdr_outer_body): New function, to establish the user's handler,
and pass control to cwdr_inner_body.
(cwdr): Establish the reliable catch-all handler here, and pass
control to cwdr_outer_body.
(struct cwdr_body_data): New field, handler, to allow cwdr to pass
the user's handler through to cwdr_outer_body.
* throw.c (scm_handle_by_message): Move guts into....
(handler_message): New static function.
(scm_handle_by_message_noexit): New function.
* throw.h (scm_handle_by_message_noexit): New prototype.
libguile/root.c
libguile/throw.c
libguile/throw.h