(FILECREATED " 4-Sep-87 12:27:40" {QV}<NOTECARDS>1.3KNEXT>NOTECARDS.;8 17625  

      changes to:  (FNS NC.SetUpNOTECARDSDIRECTORIES)

      previous date: " 2-Sep-87 14:06:15" {QV}<NOTECARDS>1.3KNEXT>NOTECARDS.;7)


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

(PRETTYCOMPRINT NOTECARDSCOMS)

(RPAQQ NOTECARDSCOMS [(* * This Release)
			(GLOBALVARS NC.ThisDirectory NC.ReleaseIdentifier NOTECARDSNEXTDIRECTORIES 
				    NOTECARDSDIRECTORIES NC.SourceAccessFlg NC.LoadedFiles 
				    UseMapWithPoliticalBoundaries AFTERLOGOUTFORMS)
			(INITVARS (NC.LoadedFiles NIL))
			(VARS (NC.ReleaseIdentifier "1.3K"))
			(* * Set up the NoteCards directories globalvars)
			(FNS NC.SetUpNOTECARDSDIRECTORIES)
			(DECLARE: DONTEVAL@LOAD DOCOPY (P (NC.SetUpNOTECARDSDIRECTORIES)))
			(* * card types and library packages)
			(GLOBALVARS NOTECARDTYPESTUBS NOTECARDTYPES NOTECARDSLIBRARYFILES 
				    NOTECARDSLISPUSERSFILES)
			(ADDVARS (NOTECARDTYPESTUBS Sketch Graph Browser Search Document LinkIndex 
						    IdeaSketch))
			(ADDVARS (NOTECARDTYPES Hash List Text FileBox))
			(ADDVARS (NOTECARDSLIBRARYFILES NCHACKS))
			(* ADDVARS (NOTECARDSLIBRARYFILES NCKEYS))
			(ADDVARS (NOTECARDSLISPUSERSFILES TEDIT-PROCESS-KILLER))
			(* * This is for link icon formatting until it is part of <LISPUSERS> proper)
			(FILES (SYSLOAD FROM NOTECARDS)
			       SCALEBITMAP)
			(* * These are for the NoteFile browser and can go away when incorporated 
			   into the standard release (Lute))
			[DECLARE: EVAL@LOADWHEN (EQ MAKESYSNAME (QUOTE KOTO))
				  (P (LOAD? (FINDFILE (QUOTE TABLEBROWSER.DCOM)
						      T NOTECARDSDIRECTORIES)
					    (QUOTE SYSLOAD))
				     (LOAD? (FINDFILE (QUOTE FILEBROWSER.DCOM)
						      T NOTECARDSDIRECTORIES)
					    (QUOTE SYSLOAD))
				     (if (GETD (QUOTE FB.AddArchiveCommandToMenu))
					 then
					 (FB.AddArchiveCommandToMenu]
			(* * code module lists for the convenience of programmers)
			(GLOBALVARS NC.CoreFiles NC.Files)
			(* * global params)
			(GLOBALVARS NC.DeletedLinkImageObject NC.DeletedLinkImageFns 
				    NC.InvisibleLinkImageObject NC.InvisibleLinkImageFns 
				    NC.LinkIconImageFns NC.NoDeleteImageFns NC.SystemDate 
				    TEDIT.INPUT.FORMATS WindowMenuCommands NCINITIALGLOBALPARAMS)
			(INITVARS NCINITIALGLOBALPARAMS)
			(* * Load the NoteCards files)
			[DECLARE: DONTEVAL@LOAD DOCOPY (FILES (FROM NOTECARDS NIL)
							      NCCONFIG)
				  [P (ADVISE (QUOTE WHEREIS)
					     (QUOTE BEFORE)
					     NIL
					     (QUOTE (if (GETPROP (QUOTE NOTECARDS)
								 (QUOTE FILEDATES))
							then
							(NC.FixFileDates (QUOTE NOTECARDS))
							(UNADVISE (QUOTE WHEREIS]
				  (P (for File in NC.CoreFiles do (NC.LoadFileFromDirectories File]
			(* * Initialization functions)
			(FNS NC.PostGreet)
			(ADDVARS (POSTGREETFORMS (NC.PostGreet)))
			(DECLARE: DONTEVAL@LOAD DOCOPY (P (NC.PostGreet)))
			(* * Set up Lafite Bug Report Forms)
			(FNS NC.MakeLafiteForm)
			(ADDVARS (LAFITESPECIALFORMS ("NoteCards Report" (FUNCTION NC.MakeLafiteForm)
									 
					       "Report bug or request new feature for NoteCards.")))
			(DECLARE: DONTEVAL@LOAD DOCOPY (P (SETQ LAFITEFORMSMENU NIL)))
			(* * INITIALIZE NoteCards)
			(FNS NC.Setup)
			(DECLARE: DONTEVAL@LOAD DOCOPY (P (NC.Setup)))
			(ADDVARS (BackgroundMenuCommands (NoteCards (NC.BringUpNoteCardsIcon)
								    
							   "Bring up the NoteCards control icon.")))
			(DECLARE: DONTEVAL@LOAD DOCOPY (P (SETQ BackgroundMenu)))
			(FNS NC.SetSystemDate)
			(DECLARE: DONTEVAL@LOAD DOCOPY (P (NC.SetSystemDate])
(* * This Release)

(DECLARE: DOEVAL@COMPILE DONTCOPY

(GLOBALVARS NC.ThisDirectory NC.ReleaseIdentifier NOTECARDSNEXTDIRECTORIES NOTECARDSDIRECTORIES 
	    NC.SourceAccessFlg NC.LoadedFiles UseMapWithPoliticalBoundaries AFTERLOGOUTFORMS)
)

(RPAQ? NC.LoadedFiles NIL)

(RPAQ NC.ReleaseIdentifier "1.3K")
(* * Set up the NoteCards directories globalvars)

(DEFINEQ

(NC.SetUpNOTECARDSDIRECTORIES
  [LAMBDA (BaseDirectory ReleaseIdentifier)                  (* Randy.Gobbel " 4-Sep-87 12:21")

          (* * Set up the NoteCards directories globalvars)



          (* * fgh 8/5/86 Now adds NC.ThisDirectory onto the beginning of the directory list retruned.)



          (* * rg 4/24/87 adds next>lib> into dir list if notecards was loaded from >next)



          (* * rg 5/14/87 now sets NOTECARDSNEXTDIRECTORIES)



          (* * rg 7/10/87 flattened directories: next not a subdir of release dir ; also sets dirs directly instead of 
	  returning a value)



          (* * rg 7/21/87 now sets NC.SourceAccessFlg based on whether or not user is connected to "next" directory)


    (DECLARE (GLOBALVARS NOTECARDSNEXTDIRECTORIES NOTECARDSDIRECTORIES NC.SourceAccessFlg))
    (SETQ NOTECARDSDIRECTORIES (LET (NoteCardsBaseDirectory StrPtr LibNextDirectory)

          (* * Get the directory for the file now being loaded)


				      [COND
					((SETQ NoteCardsBaseDirectory BaseDirectory))
					(T (SETQ NC.ThisDirectory (PACK* (QUOTE {)
									     (FILENAMEFIELD
									       (FULLNAME (INPUT))
									       (QUOTE HOST))
									     (QUOTE })
									     (QUOTE <)
									     (FILENAMEFIELD
									       (FULLNAME (INPUT))
									       (QUOTE DIRECTORY))
									     (QUOTE >)))

          (* * Find the directory path up to the first subdirectory called NoteCards)


					   (COND
					     ((SETQ StrPtr (STRPOS "NOTECARDS>" (U-CASE 
										 NC.ThisDirectory)
								       NIL NIL NIL T))
					       (SETQ NoteCardsBaseDirectory (SUBATOM
						   NC.ThisDirectory 1 (SUB1 StrPtr]
				      (SETQ NOTECARDSNEXTDIRECTORIES (PACK* 
									   NoteCardsBaseDirectory
										(OR 
										ReleaseIdentifier 
									     NC.ReleaseIdentifier)
										"NEXT>"))
				      (RPAQ? NC.SourceAccessFlg (EQ NC.ThisDirectory 
									NOTECARDSNEXTDIRECTORIES))
				      (SETQ LibNextDirectory (COND
					  ((STRPOS "NEXT>" NC.ThisDirectory)
					    (PACK* NoteCardsBaseDirectory (OR ReleaseIdentifier 
									     NC.ReleaseIdentifier)
						     "NEXT>LIBRARY>"))
					  (T NIL)))

          (* * Create the directory search list based on the NoteCardsBaseDirectory)


				      (COND
					[NoteCardsBaseDirectory
					  (COND
					    [LibNextDirectory (UNION (LIST NC.ThisDirectory)
								       (LIST (PACK* 
									   NoteCardsBaseDirectory
											(OR 
										ReleaseIdentifier 
									     NC.ReleaseIdentifier)
											">")
									       LibNextDirectory
									       (PACK* 
									   NoteCardsBaseDirectory
											(OR 
										ReleaseIdentifier 
									     NC.ReleaseIdentifier)
											">" 
										       "LIBRARY>")
									       NoteCardsBaseDirectory
									       (PACK* 
									   NoteCardsBaseDirectory 
										       "LIBRARY>"]
					    (T (UNION (LIST NC.ThisDirectory)
							(LIST (PACK* NoteCardsBaseDirectory
									 (OR ReleaseIdentifier 
									     NC.ReleaseIdentifier)
									 ">")
								(PACK* NoteCardsBaseDirectory
									 (OR ReleaseIdentifier 
									     NC.ReleaseIdentifier)
									 ">" "LIBRARY>")
								NoteCardsBaseDirectory
								(PACK* NoteCardsBaseDirectory 
									 "LIBRARY>"]
					(T (LIST NC.ThisDirectory])
)
(DECLARE: DONTEVAL@LOAD DOCOPY 
(NC.SetUpNOTECARDSDIRECTORIES)
)
(* * card types and library packages)

(DECLARE: DOEVAL@COMPILE DONTCOPY

(GLOBALVARS NOTECARDTYPESTUBS NOTECARDTYPES NOTECARDSLIBRARYFILES NOTECARDSLISPUSERSFILES)
)

(ADDTOVAR NOTECARDTYPESTUBS Sketch Graph Browser Search Document LinkIndex IdeaSketch)

(ADDTOVAR NOTECARDTYPES Hash List Text FileBox)

(ADDTOVAR NOTECARDSLIBRARYFILES NCHACKS)



(* ADDVARS (NOTECARDSLIBRARYFILES NCKEYS))


(ADDTOVAR NOTECARDSLISPUSERSFILES TEDIT-PROCESS-KILLER)
(* * This is for link icon formatting until it is part of <LISPUSERS> proper)

(FILESLOAD (SYSLOAD FROM NOTECARDS)
	   SCALEBITMAP)
(* * These are for the NoteFile browser and can go away when incorporated into the standard 
release (Lute))

(DECLARE: EVAL@LOADWHEN (EQ MAKESYSNAME (QUOTE KOTO)) 
(LOAD? (FINDFILE (QUOTE TABLEBROWSER.DCOM)
		 T NOTECARDSDIRECTORIES)
       (QUOTE SYSLOAD))
(LOAD? (FINDFILE (QUOTE FILEBROWSER.DCOM)
		 T NOTECARDSDIRECTORIES)
       (QUOTE SYSLOAD))
(if (GETD (QUOTE FB.AddArchiveCommandToMenu))
    then
    (FB.AddArchiveCommandToMenu))
)
(* * code module lists for the convenience of programmers)

(DECLARE: DOEVAL@COMPILE DONTCOPY

(GLOBALVARS NC.CoreFiles NC.Files)
)
(* * global params)

(DECLARE: DOEVAL@COMPILE DONTCOPY

(GLOBALVARS NC.DeletedLinkImageObject NC.DeletedLinkImageFns NC.InvisibleLinkImageObject 
	    NC.InvisibleLinkImageFns NC.LinkIconImageFns NC.NoDeleteImageFns NC.SystemDate 
	    TEDIT.INPUT.FORMATS WindowMenuCommands NCINITIALGLOBALPARAMS)
)

(RPAQ? NCINITIALGLOBALPARAMS NIL)
(* * Load the NoteCards files)

(DECLARE: DONTEVAL@LOAD DOCOPY 
(FILESLOAD (FROM NOTECARDS NIL)
	   NCCONFIG)

[ADVISE (QUOTE WHEREIS)
	(QUOTE BEFORE)
	NIL
	(QUOTE (if (GETPROP (QUOTE NOTECARDS)
			    (QUOTE FILEDATES))
		   then
		   (NC.FixFileDates (QUOTE NOTECARDS))
		   (UNADVISE (QUOTE WHEREIS]

(for File in NC.CoreFiles do (NC.LoadFileFromDirectories File))
)
(* * Initialization functions)

(DEFINEQ

(NC.PostGreet
  [LAMBDA NIL                                                (* Randy.Gobbel " 2-Sep-87 14:03")

          (* * called when loading NOTECARDS and after each greet (for NOTECARDS sysout users) Note this means you cannot put
	  anything in here that should not be called twice!)



          (* * kirk 10Jul86 added load of NCPOSTRELEASEPATCHES)



          (* * kirk 10Aug86 set quietflg in call on NC.CardTypeLoader)



          (* * fgh 8/27/86 Changed call to NC.AddCardTypeStub to NC.CardTypeStubLoader to go along with changes to 
	  AddCardTypeStub)



          (* * rg 10/29/86 Added calls to NC.FixFileDates after all LOAD calls)



          (* * rg 12/11/86 Changed LOADFROM of source to LOADVARS of coms)



          (* * RG 3/20/87 moved load of POSTRELEASEPATCHES after load of default card types)



          (* * rg 4/24/87 added load of LISPUSERS packages using NC.LoadFileFromDirectories ; also moved call to 
	  START-TEDIT-KILLER here)



          (* * rg 7/10/87 zapped lotsa cruft about file loading, in conjunction with complete rework of all that stuff)



          (* * rg 9/2/87 added (NC.FixFileDates NC.LoadedFiles))


    (DECLARE (GLOBALVARS NC.CardTypes NC.CoreFiles NC.LoadedFiles NOTECARDTYPES NOTECARDTYPESTUBS 
			     NOTECARDSLIBRARYFILES NOTECARDSLISPUSERSFILES NCINITIALGLOBALPARAMS))
    [LET (FullFileName TypeName Type File)
         (NC.FixFileDates NC.LoadedFiles)
         (for TypeName in NOTECARDTYPES unless (AND (SETQ Type (GETHASH TypeName 
										    NC.CardTypes))
							    (NOT (fetch (NoteCardType StubFlg)
								      of Type)))
	    do (NC.CardTypeLoader TypeName NIL T))

          (* * in case new patches have been made since the sysout was made or the last greet)


         (COND
	   ((SETQ FullFileName (NC.FindFile (QUOTE POSTRELEASEPATCHES)))
	     (NC.LoadFileFromDirectories FullFileName)))
         (for TypeName in NOTECARDTYPESTUBS unless (OR (NC.CardTypeRecord TypeName)
							       (MEMB TypeName NOTECARDTYPES)
							       (GETHASH TypeName NC.CardTypes))
	    do (NC.CardTypeStubLoader TypeName))

          (* * Load the library packages requested by the user's NOTECARDSLIBRARYFILES parameters)


         (for File in NOTECARDSLIBRARYFILES unless (GETPROP File (QUOTE FILEDATES))
	    do (COND
		   ((SETQ FullFileName (NC.FindFile File))
		     (NC.LoadFileFromDirectories FullFileName))
		   (T (PRINT (CONCAT "NoteCards: Can't find library file: " File "."]
    (for File in NOTECARDSLISPUSERSFILES do (NC.LoadFileFromDirectories File (QUOTE 
									     LISPUSERSDIRECTORIES)))
    (if (GETD (QUOTE START-TEDIT-KILLER))
	then (START-TEDIT-KILLER))
    (NCP.NoteCardsParameters NCINITIALGLOBALPARAMS])
)

(ADDTOVAR POSTGREETFORMS (NC.PostGreet))
(DECLARE: DONTEVAL@LOAD DOCOPY 
(NC.PostGreet)
)
(* * Set up Lafite Bug Report Forms)

(DEFINEQ

(NC.MakeLafiteForm
  [LAMBDA NIL                                                (* edited: "26-Aug-87 18:36")

          (* * pmi 5/8/87: Changed "To:" field to be choice of GV or NS address for NoteCardsSupport.)



          (* * rg 8/26/87 set "to" field automatically based on LAFITEMODE)


    (MAKEXXXSUPPORTFORM (CONCAT "NoteCards " NC.ReleaseIdentifier)
			  (if (EQ (LAFITEMODE)
				      (QUOTE GV))
			      then "NoteCardsSupport↑.PA"
			    else "NoteCardsSupport:PA:Xerox")
			  NC.SystemDate])
)

(ADDTOVAR LAFITESPECIALFORMS ("NoteCards Report" (FUNCTION NC.MakeLafiteForm)
						   "Report bug or request new feature for NoteCards.")
)
(DECLARE: DONTEVAL@LOAD DOCOPY 
(SETQ LAFITEFORMSMENU NIL)
)
(* * INITIALIZE NoteCards)

(DEFINEQ

(NC.Setup
  [LAMBDA NIL                                                (* Randy.Gobbel " 5-Nov-86 15:45")

          (* * rht 11/17/84: Added definition of NC.InvisibleLinkImageObj.)



          (* * rht 4/11/86: Deleted short window menu stuff. Also dumped INTERCALC stuff and prompt window stuff.)


    (DECLARE (GLOBALVARS UseMapWithPoliticalBoundaries AFTERLOGOUTFORMS))
    (NC.InitializeUID)
    (SETQ AFTERLOGOUTFORMS (CONS (QUOTE (NC.InitializeUID))
				     AFTERLOGOUTFORMS))
    (SETQ UseMapWithPoliticalBoundaries T)
    (SETQ TEDIT.INPUT.FORMATS NIL)
    (NC.MakeMainMenu)
    (SETQ NC.LinkIconImageFns (IMAGEFNSCREATE (FUNCTION NC.LinkIconDisplayFn)
						  (FUNCTION NC.LinkIconImageBoxFn)
						  (FUNCTION NC.LinkIconPutFn)
						  (FUNCTION NC.LinkIconGetFn)
						  (FUNCTION NC.LinkIconCopyFn)
						  (FUNCTION NC.LinkIconButtonEventInFn)
						  (FUNCTION NILL)
						  (FUNCTION NC.LinkIconWhenMovedFn)
						  (FUNCTION NC.LinkIconWhenInsertedFn)
						  (FUNCTION NC.LinkIconWhenDeletedFn)
						  (FUNCTION NC.LinkIconWhenCopiedFn)
						  (FUNCTION NILL)
						  (FUNCTION NILL)))
    [SETQ NC.NoDeleteImageFns (PROG ((ImageObj (NC.MakeLinkIcon NIL)))
				        (replace (IMAGEOBJ IMAGEOBJFNS) of ImageObj
					   with (create IMAGEFNS using (fetch (IMAGEOBJ
											IMAGEOBJFNS)
										of ImageObj)))
				        (IMAGEOBJPROP ImageObj (QUOTE WHENDELETEDFN)
							(FUNCTION NILL))
				        (RETURN (fetch (IMAGEOBJ IMAGEOBJFNS) of ImageObj]
    (SETQ NC.DeletedLinkImageFns (IMAGEFNSCREATE (FUNCTION NC.DeletedLinkDisplayFn)
						     (FUNCTION NC.DeletedLinkImageBoxFn)
						     (FUNCTION NC.DeletedLinkPutFn)
						     (FUNCTION NC.DeletedLinkGetFn)
						     (FUNCTION NILL)
						     (FUNCTION NILL)
						     (FUNCTION NILL)
						     (FUNCTION NILL)
						     (FUNCTION NILL)
						     (FUNCTION NILL)
						     (FUNCTION NILL)
						     (FUNCTION NILL)
						     (FUNCTION NILL)))
    (SETQ NC.DeletedLinkImageObject (IMAGEOBJCREATE "DeletedLink" NC.DeletedLinkImageFns))
    (SETQ NC.InvisibleLinkImageFns (IMAGEFNSCREATE (FUNCTION NILL)
						       (FUNCTION NC.InvisibleLinkImageBoxFn)
						       (FUNCTION NC.InvisibleLinkPutFn)
						       (FUNCTION NC.InvisibleLinkGetFn)
						       (FUNCTION NILL)
						       (FUNCTION NILL)
						       (FUNCTION NILL)
						       (FUNCTION NILL)
						       (FUNCTION NILL)
						       (FUNCTION NILL)
						       (FUNCTION NILL)
						       (FUNCTION NILL)
						       (FUNCTION NILL)))
    (SETQ NC.InvisibleLinkImageObject (IMAGEOBJCREATE "InvisibleLink" NC.InvisibleLinkImageFns])
)
(DECLARE: DONTEVAL@LOAD DOCOPY 
(NC.Setup)
)

(ADDTOVAR BackgroundMenuCommands (NoteCards (NC.BringUpNoteCardsIcon)
					      "Bring up the NoteCards control icon."))
(DECLARE: DONTEVAL@LOAD DOCOPY 
(SETQ BackgroundMenu)
)
(DEFINEQ

(NC.SetSystemDate
  [LAMBDA NIL                                                (* edited: "26-Aug-87 18:30")

          (* * 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 (LDIFFERENCE NC.Files (QUOTE (NCCONFIG POSTRELEASEPATCHES)))
	    do [SETQ ThisFileDate (OR (CAAR (GETPROP File (QUOTE FILEDATES)))
					    (GETPROP File (QUOTE FileDate]
		 (if (AND ThisFileDate (GREATERP (IDATE ThisFileDate)
						       (IDATE NC.SystemDate)))
		     then (SETQ NC.SystemDate ThisFileDate)
			    (PUTPROP (QUOTE NC.SystemDate)
				       (QUOTE NewestFile)
				       File])
)
(DECLARE: DONTEVAL@LOAD DOCOPY 
(NC.SetSystemDate)
)
(PUTPROPS NOTECARDS COPYRIGHT ("Xerox Corporation" 1986 1987))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (3945 7520 (NC.SetUpNOTECARDSDIRECTORIES 3955 . 7518)) (9539 12535 (NC.PostGreet 9549 . 
12533)) (12674 13242 (NC.MakeLafiteForm 12684 . 13240)) (13483 16414 (NC.Setup 13493 . 16412)) (16643 
17487 (NC.SetSystemDate 16653 . 17485)))))
STOP