From 6b446b2903a074992a9ddce1395146c58f8a3065 Mon Sep 17 00:00:00 2001 From: Matthias Andreas Benkard Date: Thu, 11 Jul 2013 16:27:06 +0200 Subject: CATCH: Evaluate the tag form. --- sb-eval2.lisp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'sb-eval2.lisp') diff --git a/sb-eval2.lisp b/sb-eval2.lisp index 3290de8..7da5447 100644 --- a/sb-eval2.lisp +++ b/sb-eval2.lisp @@ -199,10 +199,11 @@ finally (return result)))))) ((catch) (destructuring-bind (tag &body body) (rest form) - (let ((k (prepare-progn body context))) + (let ((tag* (prepare-form tag context)) + (body* (prepare-progn body context))) (lambda (env) - (catch tag - (funcall k env)))))) + (catch (funcall tag* env) + (funcall body* env)))))) ((block) (destructuring-bind (name &body body) (rest form) (let* ((tag (gensym (concatenate 'string "BLOCK-" (symbol-name name)))) -- cgit v1.2.3