(DEFINE-FILE-INFO READTABLE "XCL" PACKAGE "INTERLISP") (FILECREATED "13-Oct-88 13:16:04" ("compiled on " {ERIS}<LISPCORE>PATCHES>SOURCES>AR-10899-PATCH.\;1) "19-Sep-88 17:31:55" |bcompl'd| |in| "Medley 19-Sep-88 ..." |dated| "19-Sep-88 18:07:58") (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))) (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 (QUOTE 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:FUNCTION (CL:LAMBDA ( CL::C) (DECLARE (IGNORE CL::C)) (CL:ERROR (QUOTE 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 (QUOTE \\PROG0)) CL::VALS T))))))) NIL