(FILECREATED " 9-Jul-87 12:03:32" {QV}<NOTECARDS>1.3K>NEXT>NCCONFIG.;6 16644  

      changes to:  (VARS NCCONFIGCOMS NC.AutoloadStubFns NC.ConfigFiles NC.ConfigList NC.Files)
		   (FNS NC.UpdateConfig NC.FixFileDates NC.FindFile NC.LoadFileFromDirectories 
			NCAddStub.GraphCard NCAddStub.FileBoxCard NCAddStub.BrowserCard 
			NCAddStub.SearchCard NCAddStub.DocumentCard NCAddStub.LinkIndexCard 
			NCAddStub.ListCard NCAddStub.HashCard NCAddStub.TextCard NCAddStub.SketchCard 
			MAKECONFIGPROPSCOMS NC.SetStandardConfigProps NC.SetSystemDate 
			NCU.MakeConfigFile)
		   (PROPS (NCDATABASE ConfigProps)
			  (NCHASHCARD AutoloadStubFn)
			  (NCTEXTCARD AutoloadStubFn)
			  (NCSKETCHCARD AutoloadStubFn)
			  (NCGRAPHCARD AutoloadStubFn)
			  (NCFILEBOXCARD AutoloadStubFn)
			  (NCBROWSERCARD AutoloadStubFn)
			  (NCSEARCHCARD AutoloadStubFn)
			  (NCDOCUMENTCARD AutoloadStubFn)
			  (NCLINKINDEXCARD AutoloadStubFn)
			  (NCLISTCARD AutoloadStubFn))
		   (FILEPKGCOMS CONFIGPROPS)

      previous date: "19-Jun-87 18:20:29" {QV}<NOTECARDS>1.3K>NEXT>NCCONFIG.;1)


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

(PRETTYCOMPRINT NCCONFIGCOMS)

(RPAQQ NCCONFIGCOMS [(* * NoteCards version control - the stuff kept in this file is all concerned 
			  with getting the user a consistent version of NoteCards. Anything that 
			  depends on getting a particular version of a particular file is indirected 
			  through here. In addition, card type stub functions and pointers to other 
			  autoloadable functions are stored here.)
		       (E (NC.UpdateConfig))
		       (INITVARS (NC.NoUpdateFlg NIL))
		       (VARS NC.ConfigFiles NC.SystemDate)
		       (PROP ConfigProps * NC.ConfigFiles)
		       (CONFIGPROPS * NC.ConfigFiles)
		       (FNS * NC.AutoloadStubFns)
		       (PROP File * NC.AutoloadableFns)
		       (PROP Directories * NC.AutoloadableFns)
		       (FILEPKGCOMS CONFIGPROPS)
		       (FNS NC.UpdateConfig NC.SetSystemDate NC.FixFileDates NC.FindFile 
			    NC.LoadFileFromDirectories NC.LookupAutoloadFnFile NC.StoreAutoloadFnFile 
			    NC.SetStandardConfigProps MAKECONFIGPROPSCOMS)
		       (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS
				 (ADDVARS (NLAMA)
					  (NLAML MAKECONFIGPROPSCOMS)
					  (LAMA])
(* * NoteCards version control - the stuff kept in this file is all concerned with getting the
 user a consistent version of NoteCards. Anything that depends on getting a particular version 
of a particular file is indirected through here. In addition, card type stub functions and 
pointers to other autoloadable functions are stored here.)


(RPAQ? NC.NoUpdateFlg NIL)

(RPAQQ NC.ConfigFiles (NOTECARDS NCUTILITIES NCPARAMETERS NCINTERFACE NCDATABASE NCLOCALDEVICE 
				   NCCOMPACT NCREPAIR NCCARDS NCLINKS NCTYPESMECH NCPROGINT 
				   NCCROSSFILELINKS NCHASHCARD NCTEXTCARD NCSKETCHCARD NCGRAPHCARD 
				   NCFILEBOXCARD NCBROWSERCARD NCSEARCHCARD NCDOCUMENTCARD 
				   NCLINKINDEXCARD NCLISTCARD NCCONVERTVERSION2TO3 KOTOSYSTEMPATCHES 
				   KOTOTEDITPATCHES KOTOSKETCHPATCHES GRAPHERPATCH))

(RPAQQ NC.SystemDate "11-Jun-87 16:48:56")

(RPAQQ NC.ConfigFiles (NOTECARDS NCUTILITIES NCPARAMETERS NCINTERFACE NCDATABASE NCLOCALDEVICE 
				   NCCOMPACT NCREPAIR NCCARDS NCLINKS NCTYPESMECH NCPROGINT 
				   NCCROSSFILELINKS NCHASHCARD NCTEXTCARD NCSKETCHCARD NCGRAPHCARD 
				   NCFILEBOXCARD NCBROWSERCARD NCSEARCHCARD NCDOCUMENTCARD 
				   NCLINKINDEXCARD NCLISTCARD NCCONVERTVERSION2TO3 KOTOSYSTEMPATCHES 
				   KOTOTEDITPATCHES KOTOSKETCHPATCHES GRAPHERPATCH))

(PUTPROPS NCDATABASE ConfigProps [COPYRIGHT [SourceFile (LAMBDA (File Directory)
								  (FINDFILE File T (LIST Directory]
					      [CompiledFile (LAMBDA (File Directory)
								    (FINDFILE (PACKFILENAME
										(QUOTE BODY)
										File
										(QUOTE EXTENSION)
										COMPILE.EXT)
									      T
									      (LIST Directory]
					      [FileDate (LAMBDA (File)
								(CAAR (GETPROP File (QUOTE FILEDATES]
					      [InitialFile (LAMBDA (File)
								   (LIST (CONS (FILECOMS File)
									       (QUOTE Compiled]
					      (FileComs (LAMBDA (File)
								(FILECOMS File])

(RPAQQ NC.ConfigFiles (NOTECARDS NCUTILITIES NCPARAMETERS NCINTERFACE NCDATABASE NCLOCALDEVICE 
				   NCCOMPACT NCREPAIR NCCARDS NCLINKS NCTYPESMECH NCPROGINT 
				   NCCROSSFILELINKS NCHASHCARD NCTEXTCARD NCSKETCHCARD NCGRAPHCARD 
				   NCFILEBOXCARD NCBROWSERCARD NCSEARCHCARD NCDOCUMENTCARD 
				   NCLINKINDEXCARD NCLISTCARD NCCONVERTVERSION2TO3 KOTOSYSTEMPATCHES 
				   KOTOTEDITPATCHES KOTOSKETCHPATCHES GRAPHERPATCH))

(RPAQQ NC.AutoloadStubFns (NCAddStub.SketchCard NCAddStub.GraphCard NCAddStub.BrowserCard 
						  NCAddStub.SearchCard NCAddStub.DocumentCard 
						  NCAddStub.LinkIndexCard NCAddStub.IdeaSketchCard))
(DEFINEQ

(NCAddStub.SketchCard
  [LAMBDA NIL                                                (* rht: " 7-Nov-86 16:33")

          (* * kirk 18Jun86 Add the Sketch card stub)



          (* * rht 11/7/86: Fixed typo, changing a QUOTE to BQUOTE.)


    (DECLARE (GLOBALVARS NC.SketchCardIcon))
    (NC.AddCardTypeStub (QUOTE Sketch)
			  (QUOTE NoteCard)
			  (QUOTE NCSKETCHCARD)
			  NIL
			  (BQUOTE ((DisplayedInMenuFlg T)
				     (LinkIconAttachedBitMap , NC.SketchCardIcon])

(NCAddStub.GraphCard
  [LAMBDA NIL                                                (* rht: " 7-Nov-86 16:33")

          (* * kirk 18Jun86 Add the Graph card stub)



          (* * rht 11/7/86: Fixed typo, changing a QUOTE to BQUOTE.)


    (DECLARE (GLOBALVARS NC.GraphCardIcon))
    (NC.AddCardTypeStub (QUOTE Graph)
			  (QUOTE NoteCard)
			  (QUOTE NCGRAPHCARD)
			  NIL
			  (BQUOTE ((DisplayedInMenuFlg T)
				     (LinkIconAttachedBitMap , NC.GraphCardIcon])

(NCAddStub.BrowserCard
  [LAMBDA NIL                                                (* rht: " 8-Nov-86 19:21")

          (* * kirk 18Jun86 Add the Browser card stub)



          (* * rht 11/7/86: Now passes down a \\FILLME// field.)


    (NC.AddCardTypeStub (QUOTE Browser)
			  (QUOTE Graph)
			  (QUOTE NCBROWSERCARD)
			  NIL
			  (QUOTE ((DisplayedInMenuFlg T)))
			  (QUOTE (LinkIconAttachedBitMap])

(NCAddStub.SearchCard
  [LAMBDA NIL                                                (* rht: " 8-Nov-86 19:20")

          (* * kirk 18Jun86 Add the Search card stub)



          (* * rht 11/7/86: Now passes down a \\FILLME// field.)


    (NC.AddCardTypeStub (QUOTE Search)
			  (QUOTE Text)
			  (QUOTE NCSEARCHCARD)
			  NIL
			  (QUOTE ((DisplayedInMenuFlg T)))
			  (QUOTE (LinkIconAttachedBitMap])

(NCAddStub.DocumentCard
  [LAMBDA NIL                                                (* rht: " 8-Nov-86 19:21")

          (* * kirk 18Jun86 Add the FileBox card stub)


    (NC.AddCardTypeStub (QUOTE Document)
			  (QUOTE Text)
			  (QUOTE NCDOCUMENTCARD)
			  NIL
			  (QUOTE ((DisplayedInMenuFlg . T)))
			  (QUOTE (LinkIconAttachedBitMap])

(NCAddStub.LinkIndexCard
  [LAMBDA NIL                                                (* rht: " 8-Nov-86 19:20")

          (* * kirk 18Jun86 Add the LinkIndex card stub)



          (* * rht 11/7/86: Now passes down a \\FILLME// field.)


    (NC.AddCardTypeStub (QUOTE LinkIndex)
			  (QUOTE Text)
			  (QUOTE NCLINKINDEXCARD)
			  NIL
			  (QUOTE ((DisplayedInMenuFlg T)))
			  (QUOTE (LinkIconAttachedBitMap])

)

(RPAQQ NC.AutoloadableFns NOBIND)

(RPAQQ NC.AutoloadableFns NIL)
(PUTDEF (QUOTE CONFIGPROPS) (QUOTE FILEPKGCOMS) [QUOTE ((COM MACRO (X (COMS * (MAKECONFIGPROPSCOMS . 
									      X])
(DEFINEQ

(NC.UpdateConfig
  [LAMBDA (Directory)                                        (* Randy.Gobbel " 9-Jul-87 11:58")
    (DECLARE (GLOBALVARS NC.InstallFlg NC.ConfigFiles NC.AutoloadStubFns NC.AutoloadableFns 
			     NC.NoUpdateFlg NOTECARDTYPESTUBS))
    (if (NOT NC.NoUpdateFlg)
	then (SETQ Directory (OR Directory (DIRECTORYNAME T)))
	       [for File in NC.ConfigFiles
		  do (if NC.InstallFlg
			   then (LOAD? File (QUOTE ALLPROP)))
		       (for Prop in (GETPROP File (QUOTE ConfigProps)) when (LISTP Prop)
			  do (PUTPROP File (CAR Prop)
					  (APPLY* (CADR Prop)
						    File Directory]
	       (SETQ NC.AutoloadStubFns (for TypeName in NOTECARDTYPESTUBS bind Fn
					     eachtime (SETQ Fn (PACK* (QUOTE NCAddStub.)
									    TypeName
									    (QUOTE Card)))
					     when (GETD Fn) collect Fn))
	       (NC.SetSystemDate])

(NC.SetSystemDate
  [LAMBDA NIL                                                (* Randy.Gobbel "19-Jun-87 18:42")

          (* * Set the NC.SystemDate from the stored file dates)


    (DECLARE (GLOBALVARS NC.SystemDate NC.Files))
    (LET (ThisFileDate)
         (SETQ NC.SystemDate "23-Aug-70 13:28:52")
         (for File in NC.ConfigFiles
	    do [SETQ ThisFileDate (CAAR (GETPROP File (QUOTE FILEDATES]
		 (if (AND ThisFileDate (GREATERP (IDATE ThisFileDate)
						       (IDATE NC.SystemDate)))
		     then (SETQ NC.SystemDate ThisFileDate)
			    (PUTPROP (QUOTE NC.SystemDate)
				       (QUOTE NewestFile)
				       File])

(NC.FixFileDates
  [LAMBDA (Files)                                            (* Randy.Gobbel " 9-Jul-87 12:01")

          (* * rg 10/29/86: Created)



          (* * rg 6/19/87 now uses config machinery, smashes all necessary info, not just filedates property)



          (* * If we loaded out of next dir, do nothing. Otherwise, if the directory in the filedates is the next dir, do a 
	  findfile on the source for the file and stuff that into the filedates.)


    (DECLARE (GLOBALVARS NC.DebugFlg NC.HackerFlg NC.ThisDirectory NOTECARDSNEXTDIRECTORIES 
			     FILELST))
    (if (OR NC.DebugFlg NC.HackerFlg)
	then (for file in (MKLIST Files)
		  do (LET [(rootName (FILENAMEFIELD file (QUOTE NAME]
			    [PUTPROP rootName (QUOTE FILEDATES)
				       (LIST (CONS (GETPROP rootName (QUOTE FileDate))
						       (NC.FindFile rootName NIL NIL T]
			    (PUTPROP rootName (QUOTE FILE)
				       (GETPROP rootName (QUOTE InitialFile)))
			    (SET (FILECOMS rootName)
				   (GETPROP rootName (QUOTE FileComs)))
			    (pushnew FILELST rootName])

(NC.FindFile
  [LAMBDA (FileName TypeName CheckConnectedDirFlg SourceFlg Directories)
                                                             (* Randy.Gobbel " 9-Jul-87 11:40")

          (* * kirk 6/12/86 find code file to implement a card type)



          (* * kirk 9/21/86 added optional FileName parameter)



          (* * rht&rg&pmi 10/21/86: Removed lots of useless kruft and replaced with other FINDFILE kruft.
	  Added CheckConnectedDirFlg arg.)



          (* * kirk 12/23/86 replaced use of DCOM with COMPILE.EXT)



          (* * RG 5/15/87 now return NIL if final FINDFILE fails)



          (* * rg 6/19/87 try to use filename props if they exist. Don't use props if initial install of this version on a 
	  particular file server.)


    (DECLARE (GLOBALVARS NOTECARDSDIRECTORIES))
    (LET [(FilesLoadDirs (OR Directories (if CheckConnectedDirFlg
					       then (CONS (DIRECTORYNAME T T)
							      NOTECARDSDIRECTORIES)
					     else NOTECARDSDIRECTORIES]
         [OR FileName (SETQ FileName (PACK* (QUOTE NC)
						  (U-CASE TypeName)
						  (QUOTE CARD]
         (OR [AND (NOT NC.InstallFlg)
		      (FINDFILE (GETPROP FileName (if SourceFlg
							  then (QUOTE SourceFile)
							else (QUOTE CompiledFile]
	       (if (AND (NULL (FILENAMEFIELD FileName (QUOTE EXTENSION)))
			    (FINDFILE (PACKFILENAME (QUOTE BODY)
							FileName
							(QUOTE EXTENSION)
							(if SourceFlg
							    then ""
							  else COMPILE.EXT))
					T FilesLoadDirs))
		 else (FINDFILE FileName T FilesLoadDirs])

(NC.LoadFileFromDirectories
  [LAMBDA (FileName Directories QuietFlg)                    (* Randy.Gobbel " 9-Jul-87 11:39")

          (* * Try to load FileName from Directories. The latter can be a list in which case the elements should be directory
	  paths. It can be an atom in which case it should be a DIRECTORIES var. Or it can be NIL in which case it defaults 
	  to the litatom NOTECARDSDIRECTORIES.)



          (* * fgh 6/3/86 Now closes tty window after ts done.)



          (* * rht 10/31/86: Changed "DIRECTORIES" to "Directories")



          (* * rht 4/17/87: Now smashes PAGEFULLFN of tty window so that it'll scroll automatically. Also prints a message to
	  the tty window.)



          (* * rg 7/9/87 now uses NC.FindFile)


    (RESETLST [RESETSAVE NIL (if (OPENWP (WFROMDS (TTYDISPLAYSTREAM)
							    T))
				     then (SETQ QuietFlg T)
					    (QUOTE (NILL))
				   else (BQUOTE (CLOSEW , (WFROMDS (TTYDISPLAYSTREAM]
		[RESETSAVE NIL (if QuietFlg
				     then (QUOTE (NILL))
				   else (BQUOTE (WINDOWPROP , (WFROMDS (TTYDISPLAYSTREAM))
								  (QUOTE PAGEFULLFN)
								  ,
								  (WINDOWPROP (WFROMDS (
										 TTYDISPLAYSTREAM))
										(QUOTE PAGEFULLFN)
										(QUOTE NILL]
		(LET [(Window (WFROMDS (TTYDISPLAYSTREAM]
		     (if (NOT QuietFlg)
			 then (CLEARW Window)
				(FLASHWINDOW Window)
				(PRINTOUT Window "Attempting to autoload " FileName T))
		     (LOAD? (NC.FindFile FileName NIL NIL NIL Directories)
			      (QUOTE SYSLOAD))
		     (NC.FixFileDates FileName])

(NC.LookupAutoloadFnFile
  [LAMBDA (AutoloadFn)                                       (* rht: " 6-Dec-85 12:53")

          (* * Fetch the entry associated with given function from the autoload table.)


    (GETHASH AutoloadFn NC.AutoloadableFnsTable])

(NC.StoreAutoloadFnFile
  [LAMBDA (AutoloadFn FileName Directories)                  (* rht: " 6-Dec-85 12:54")

          (* * Store an entry in the autoload table for given AutoloadFn. It consists of FileName and Directories variable or
	  list or NIL.)


    (PUTHASH AutoloadFn (create AutoloadFnEntry
				    FileName ← FileName
				    Directories ← Directories)
	       NC.AutoloadableFnsTable])

(NC.SetStandardConfigProps
  [LAMBDA (File)                                             (* Randy.Gobbel " 8-Jul-87 17:17")

          (* * rg 7/8/87 add necessary config props for a standard NoteCards component file)


    (PUTPROP File (QUOTE ConfigProps)
	       (UNION (GETPROP File (QUOTE ConfigProps))
			(QUOTE (COPYRIGHT [SourceFile (LAMBDA (File Directory)
							  (FINDFILE File T (LIST Directory]
					    [CompiledFile (LAMBDA (File Directory)
							    (FINDFILE (PACKFILENAME (QUOTE
											  BODY)
											File
											(QUOTE
											  EXTENSION)
											COMPILE.EXT)
									T
									(LIST Directory]
					    [FileDate (LAMBDA (File)
							(CAAR (GETPROP File (QUOTE FILEDATES]
					    [InitialFile (LAMBDA (File)
							   (LIST (CONS (FILECOMS File)
									   (QUOTE Compiled]
					    (FileComs (LAMBDA (File)
							(FILECOMS File])

(MAKECONFIGPROPSCOMS
  [NLAMBDA (Files)                                           (* Randy.Gobbel " 8-Jul-87 19:26")
    (LET [(Props (for File in Files join (for Val in (GETPROP File (QUOTE ConfigProps))
						  collect (if (LISTP Val)
								then (CAR Val)
							      else Val]
         (SETQ Props (INTERSECTION Props Props))
         (for Prop in Props collect (LIST (QUOTE IFPROP)
						  Prop
						  (QUOTE *)
						  (QUOTE NC.ConfigFiles])
)
(DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS 

(ADDTOVAR NLAMA )

(ADDTOVAR NLAML MAKECONFIGPROPSCOMS)

(ADDTOVAR LAMA )
)
(PUTPROPS NCCONFIG COPYRIGHT ("Xerox Corporation" 1987))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (4825 7594 (NCAddStub.SketchCard 4835 . 5350) (NCAddStub.GraphCard 5352 . 5861) (
NCAddStub.BrowserCard 5863 . 6310) (NCAddStub.SearchCard 6312 . 6754) (NCAddStub.DocumentCard 6756 . 
7135) (NCAddStub.LinkIndexCard 7137 . 7591)) (7791 16414 (NC.UpdateConfig 7801 . 8807) (
NC.SetSystemDate 8809 . 9534) (NC.FixFileDates 9536 . 10723) (NC.FindFile 10725 . 12449) (
NC.LoadFileFromDirectories 12451 . 14190) (NC.LookupAutoloadFnFile 14192 . 14461) (
NC.StoreAutoloadFnFile 14463 . 14889) (NC.SetStandardConfigProps 14891 . 15863) (MAKECONFIGPROPSCOMS 
15865 . 16412)))))
STOP