From 45456413b8281e24cae98ee34e784ea2b5bc9d5c Mon Sep 17 00:00:00 2001 From: Mikael Djurfeldt Date: Fri, 21 Aug 1998 08:06:03 +0000 Subject: [PATCH] * boot-9.scm (make-options): Bugfix: Changed pair? --> list? in order to allow the empty list as arg. (error-catching-loop): Use `with-traps' to create a dynamic context with traps enabled. --- ice-9/boot-9.scm | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/ice-9/boot-9.scm b/ice-9/boot-9.scm index 13f1bcba6..a060f3d0d 100644 --- a/ice-9/boot-9.scm +++ b/ice-9/boot-9.scm @@ -2282,7 +2282,7 @@ (make-options (lambda (interface) `(lambda args (cond ((null? args) (,interface)) - ((pair? (car args)) + ((list? (car args)) (,interface (car args)) (,interface)) (else (for-each ,print-option (,interface #t))))))) @@ -2361,6 +2361,7 @@ (save-stack lazy-handler-dispatch) (apply throw key args)) +(define enter-frame-handler default-lazy-handler) (define apply-frame-handler default-lazy-handler) (define exit-frame-handler default-lazy-handler) @@ -2370,6 +2371,8 @@ (apply apply-frame-handler key args)) ((exit-frame) (apply exit-frame-handler key args)) + ((enter-frame) + (apply enter-frame-handler key args)) (else (apply default-lazy-handler key args)))) @@ -2400,17 +2403,19 @@ (dynamic-wind (lambda () (unmask-signals)) (lambda () - (first) + (with-traps + (lambda () + (first) - ;; This line is needed because mark - ;; doesn't do closures quite right. - ;; Unreferenced locals should be - ;; collected. - ;; - (set! first #f) - (let loop ((v (thunk))) - (loop (thunk))) - #f) + ;; This line is needed because mark + ;; doesn't do closures quite right. + ;; Unreferenced locals should be + ;; collected. + ;; + (set! first #f) + (let loop ((v (thunk))) + (loop (thunk))) + #f))) (lambda () (mask-signals)))) lazy-handler-dispatch)) -- 2.20.1