(FILECREATED "18-May-87 17:12:49" {QV}<NOTECARDS>1.3K>NEXT>RGPATCH042.;1 3217   

      changes to:  (VARS RGPATCH042COMS)
		   (FNS NC.CardTypeStubLoader))


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

(PRETTYCOMPRINT RGPATCH042COMS)

(RPAQQ RGPATCH042COMS ((* * rg 5/18/87 checks, via disgusting kludge, to see if file can be opened 
			    random access, if not, loads whole file)
			 (* * changes to NCTYPESMECH)
			 (FNS NC.CardTypeStubLoader)))
(* * rg 5/18/87 checks, via disgusting kludge, to see if file can be opened random access, if 
not, loads whole file)

(* * changes to NCTYPESMECH)

(DEFINEQ

(NC.CardTypeStubLoader
  [LAMBDA (TypeName FileSuggestion)                          (* Randy.Gobbel "18-May-87 17:12")

          (* * Load card type TypeName using FileSuggestion as the first place to look. Otherwise look in the directories 
	  specified by NoteCardsDirectories.)



          (* * fgh 2/3/86 First written.)



          (* * kirk 6/20/86 Added NCP.Add...CardStub fn load and call)



          (* * kirk 9/9/86 Changed the name of the FN to search for to NCAddStub...Card)



          (* * kirk 9/21/86 added RESETLST)



          (* * rg 10/21/86: Changed to use simpler scheme for finding files)



          (* * rht&rg 11/7/86: Now passes (QUOTE VARS) arg to LOADFNS so that interesting vars like link icon bitmap will be 
	  loaded. There ought to be a better way.)



          (* * rg 5/18/87 checks, via disgusting kludge, to see if file can be opened random access, if not, loads whole 
	  file)


    (LET* ((FileName (NC.FindFile FileSuggestion TypeName T))
	   (oldFILEDATES (GETPROP FileName (QUOTE FILEDATES)))
	   [RandAccessible (NLSETQ (PROG1 (OPENSTREAM FileName (QUOTE BOTH)
							    (QUOTE OLD))
					      (CLOSEF FileName]
	   NoInitFn AddTypeFn)
          (if FileName
	      then [RESETLST [RESETSAVE NIL (BQUOTE (COND
							      (oldFILEDATES
								(PUTPROP , (LIST (QUOTE QUOTE)
										     FileName)
									   (QUOTE FILEDATES)
									   oldFILEDATES))
							      (T (REMPROP , (LIST (QUOTE QUOTE)
										      FileName)
									    (QUOTE FILEDATES]

          (* * Load and eval the NC.Add...CardStub fn)


				 (SETQ AddTypeFn (PACK* (QUOTE NCAddStub.)
							    TypeName
							    (QUOTE Card)))
				 (if RandAccessible
				     then (SETQ NoInitFn (EQ (CAAR (LOADFNS AddTypeFn 
										      FileName NIL
										      (QUOTE VARS)))
								   (QUOTE NOT-FOUND:)))
				   else (LOAD? FileName NC.LOADFLG)
					  (SETQ NoInitFn (NOT (FNTYP AddTypeFn]
		     (NC.FixFileDates FileName)
		     (if NoInitFn
			 then (NC.ReportError "NC.CardTypeStubLoader"
						  (CONCAT 
					  "NoteCards: Can't find card type stub init procedure: "
							    AddTypeFn " in " FileName ".")))

          (* * this should call NC.AddCardTypeStub)


		     (APPLY AddTypeFn])
)
(PUTPROPS RGPATCH042 COPYRIGHT ("Xerox Corporation" 1987))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (643 3136 (NC.CardTypeStubLoader 653 . 3134)))))
STOP