diff --git a/code/error.lisp b/code/error.lisp index 36bb3443a9d2ec22103fb06259ba6e15c9b92a57..d85c90c8c4b7a232b403e3c2fc63ecebbabfb8e0 100644 --- a/code/error.lisp +++ b/code/error.lisp @@ -5,7 +5,7 @@ ;;; Carnegie Mellon University, and has been placed in the public domain. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/error.lisp,v 1.70 2003/04/17 12:55:57 gerd Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/error.lisp,v 1.71 2003/04/17 13:12:28 gerd Exp $") ;;; ;;; ********************************************************************** ;;; @@ -237,8 +237,8 @@ ;;; Wrap the restart-case expression in a with-condition-restarts if ;;; appropriate. Gross, but it's what the book seems to say... ;;; -(defun munge-restart-case-expression (expression data) - (let ((exp (macroexpand expression))) +(defun munge-restart-case-expression (expression data env) + (let ((exp (macroexpand expression env))) (if (consp exp) (let* ((name (car exp)) (args (if (eq name 'cerror) (cddr exp) (cdr exp)))) @@ -261,7 +261,7 @@ ); eval-when (compile load eval) -(defmacro restart-case (expression &body clauses) +(defmacro restart-case (expression &body clauses &environment env) "(RESTART-CASE form {(case-name arg-list {keyword value}* body)}*) The form is evaluated in a dynamic context where the clauses have special @@ -317,7 +317,7 @@ ,@keys))) data) (return-from ,block-tag - ,(munge-restart-case-expression expression data))) + ,(munge-restart-case-expression expression data env))) ,@(mapcan #'(lambda (datum) (let ((tag (nth 1 datum)) (bvl (nth 3 datum))