(FILECREATED " 1-Dec-85 20:39:40" {QV}<NOTECARDS>1.3K>RHTPATCH010.;4 2534   

      changes to:  (MACROS NC.LoadFileFromDirList NC.AutoloadApply*)
		   (VARS RHTPATCH010COMS)
		   (FNS NC.UIDPrint)

      previous date: " 1-Dec-85 17:47:53" {QV}<NOTECARDS>1.3K>RHTPATCH010.;2)


(* Copyright (c) 1985 by Xerox Corporation. All rights reserved.)

(PRETTYCOMPRINT RHTPATCH010COMS)

(RPAQQ RHTPATCH010COMS ((* * This new stuff is for calling functions with autoload. It belongs in 
			     NCUTILITIES)
			  (MACROS NC.AutoloadApply* NC.LoadFileFromDirList)
			  (GLOBALVARS NC.AutoloadableFnsTable)
			  (INITVARS (NC.AutoloadableFnsTable (QUOTE ((NC.ConvertNoteFileVersion2To3
								       (NCCONVERTVERSION2TO3 . 
									 NOTECARDSDIRECTORIES))))))))
(* * This new stuff is for calling functions with autoload. It belongs in NCUTILITIES)

(DECLARE: EVAL@COMPILE 
(DEFMACRO NC.AutoloadApply* Args (* * First arg is name of function to apply. Rest are args. The fn 
				    name should be in the global table with an accompanying file to 
				    autoload from.)
	  (LET ((Fn (CAR Args)))
	       (BQUOTE (if (GETD , Fn)
			   then
			   (APPLY* , Fn ,@ (CDR Args))
			   else
			   (LET ((FileAndDirList (CADR (FASSOC , Fn NC.AutoloadableFnsTable)))
				 File)
				(if FileAndDirList then (SETQ File (CAR FileAndDirList))
				    (NC.LoadFileFromDirList File (CDR FileAndDirList))
				    else
				    (NC.ReportError "NC.AutoloadApply*" (CONCAT "No definition of " , 
										Fn 
							   " in table of autoloadable functions.")))
				(if (GETD , Fn)
				    then
				    (APPLY* , Fn ,@ (CDR Args))
				    else
				    (NC.ReportError "NC.AutoloadApply*"
						    (CONCAT "Loaded file " File 
							    ", but still no definition of "
							    , Fn))))))))
(DEFMACRO NC.LoadFileFromDirList (FileName $$DirList$$)
	  (* * This loads given file from given directory list. Notice ugly call to EVAL.)
	  (BQUOTE (for Dir in , (EVAL $$DirList$$)
		       bind FName when (INFILEP (SETQ FName (PACK* Dir , FileName)))
		       do
		       (RETURN (LOAD? FName))
		       finally
		       (NC.ReportError "NC.LoadFileFromDirList" (CONCAT "Couldn't find file " , 
									FileName " on " , $$DirList$$)
				       ))))
)
(DECLARE: DOEVAL@COMPILE DONTCOPY

(GLOBALVARS NC.AutoloadableFnsTable)
)

(RPAQ? NC.AutoloadableFnsTable (QUOTE ((NC.ConvertNoteFileVersion2To3 (NCCONVERTVERSION2TO3 . 
									  NOTECARDSDIRECTORIES)))))
(PUTPROPS RHTPATCH010 COPYRIGHT ("Xerox Corporation" 1985))
(DECLARE: DONTCOPY
  (FILEMAP (NIL)))
STOP