(DEFINE-FILE-INFO READTABLE "XCL" PACKAGE "INTERLISP")
(FILECREATED "13-Oct-88 13:15:44" {ERIS}<LISPCORE>PATCHES>SOURCES>AR-10899-PATCH.\;1 2126   

      |changes| |to:|  (VARS AR-10899-PATCHCOMS)
                       (SPECIAL-FORMS CL:RETURN-FROM))


(PRETTYCOMPRINT AR-10899-PATCHCOMS)

(RPAQQ AR-10899-PATCHCOMS (
                               (* |;;| 
                             "Patch file AR-10899-PATCH.  Contains fixes for the AR(s) (10899).")

                               (ADDVARS (*FEATURES* :AR-10899))
                               (SPECIAL-FORMS CL:RETURN-FROM)))



(* |;;| "Patch file AR-10899-PATCH.  Contains fixes for the AR(s) (10899).")


(ADDTOVAR *FEATURES* :AR-10899)

(DEFINE-SPECIAL-FORM CL:RETURN-FROM (CL::BLOCK-NAME CL::EXPR &ENVIRONMENT CL::ENV)
   (LET ((CL::BLIP (AND CL::ENV (CL:GETF (ENVIRONMENT-BLOCKS CL::ENV)
                                       CL::BLOCK-NAME))))
        (CL:IF (AND CL::BLOCK-NAME (NULL CL::BLIP))
            (CL:ERROR 'ILLEGAL-RETURN :TAG CL::BLOCK-NAME)
            (LET ((CL::\\BLK CL::BLOCK-NAME)
                  (CL::VALS (CL:MULTIPLE-VALUE-LIST (CL:EVAL CL::EXPR CL::ENV))))
                 (COND
                    (CL::BLIP                                (* \; 
                                                       "This is a CL RETURN-FROM, so do the throw.")
                           (HANDLER-BIND ((ILLEGAL-THROW #'(CL:LAMBDA (CL::C)
                                                                  (DECLARE (IGNORE CL::C))
                                                                  (CL:ERROR 'ILLEGAL-RETURN :TAG 
                                                                         CL::\\BLK))))
                                  (CL:THROW CL::BLIP (CL:VALUES-LIST CL::VALS))))
                    (T                                       (* \; 
                              "This is an IL RETURN, so return from the closest enclosing \\PROG0.")
                       (RETVALUES (STKPOS '\\PROG0)
                              CL::VALS T)))))))
(DECLARE\: DONTCOPY
  (FILEMAP (NIL)))
STOP