(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