From bd2a7be85136ce12fcf29f388f768b3c56134ec3 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Thu, 1 Aug 1996 22:37:05 +0000 Subject: [PATCH] fixed bugs original commit: b4118c69ded4c0be9750aceb8525997beade7391 --- collects/mred/exit.ss | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/collects/mred/exit.ss b/collects/mred/exit.ss index dfa74132..c6ba2f53 100644 --- a/collects/mred/exit.ss +++ b/collects/mred/exit.ss @@ -23,6 +23,15 @@ [(eq? cb (car cb-list)) (cdr cb-list)] [else (cons (car cb-list) (loop (cdr cb-list)))]))))) + (define run-exit-callbacks + (lambda () + (set! exit-callbacks + (let loop ([cb-list exit-callbacks]) + (cond + [(null? cb-list) ()] + [(not ((car cb-list))) cb-list] + [else (loop (cdr cb-list))]))))) + (define -exit (lambda () (let/ec k @@ -37,12 +46,7 @@ (string-append "Are you sure you want to " w "?") capW "Cancel")))) (k #f)) - (set! exit-callbacks - (let loop ([cb-list exit-callbacks]) - (cond - [(null? cb-list) ()] - [(not ((car cb-list))) cb-list] - [else (loop (cdr cb-list))]))) + (run-exit-callbacks) (if (null? exit-callbacks) (begin (when mred:debug:exit? (exit))