(DEFINE-FILE-INFO PACKAGE "IL" READTABLE "INTERLISP" BASE 10)
(FILECREATED "18-Jan-88 14:00:05" {QV}<NOTECARDS>1.3LNEXT>RGPATCH075.;4 11343  

      changes to%:  (FNS NC.PostGreet NC.SetStandardConfigProps NC.LoadFileFromDirectories 
                         NC.UpdateConfig)
                    (VARS RGPATCH075COMS)
                    (PROPS (RGPATCH075 MAKEFILE-ENVIRONMENT))

      previous date%: "18-Jan-88 13:50:53" {QV}<NOTECARDS>1.3LNEXT>RGPATCH075.;1)


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

(PRETTYCOMPRINT RGPATCH075COMS)

(RPAQQ RGPATCH075COMS (
          
          (* ;; "rg 1/15/88 simplifies source access - now uses hash files")

                       
          
          (* ;; "changes to NCCONFIG")

                       (FNS NC.SetStandardConfigProps NC.LoadFileFromDirectories NC.UpdateConfig)
                       
          
          (* ;; "DELETE NC.FixFileDates")

                       
          
          (* ;; "changes to NOTECARDS")

                       (FNS NC.PostGreet)
                       
          
          (* ;; "add to NOTECARDS, along with other LISPUSERS files")

                       (FILES (FROM LISPUSERS)
                              NEW-WHERE-IS)
                       
          
          (* ;; "finally, add NOTECARDS.HASH to NC.Files, with SourceFile CONFIGPROP")

                       (PROP (FILETYPE MAKEFILE-ENVIRONMENT)
                             RGPATCH075)))



(* ;; "rg 1/15/88 simplifies source access - now uses hash files")




(* ;; "changes to NCCONFIG")

(DEFINEQ

(NC.SetStandardConfigProps
  [LAMBDA (File)                                      (* ; "Edited 15-Jan-88 18:08 by Randy.Gobbel")
          
          (* ;; "rg 7/8/87 add necessary config props for a standard NoteCards component file")
          
          (* ;; "rg 1/15/88 set CDR of FILEDATES to LOADFNS, so source access works right")
          
          (* ;; "rg 1/15/88 zapped all but SourceFile and CompiledFile")

    (PUTPROP File 'ConfigProps '(([SourceFile (LAMBDA (File Directory)
                                                (FINDFILE (PACKFILENAME 'BODY File)
                                                       T
                                                       (OR (EVAL (GETPROP File 'Directories))
                                                           (LIST Directory]
                                  CompiledFile
                                  (LAMBDA (File Directory)
                                    (FINDFILE (PACKFILENAME 'BODY File 'EXTENSION COMPILE.EXT)
                                           T
                                           (OR (EVAL (GETPROP File 'Directories))
                                               (LIST Directory])

(NC.LoadFileFromDirectories
  [LAMBDA (FileName Directories QuietFlg)             (* ; "Edited 15-Jan-88 18:00 by Randy.Gobbel")
          
          (* ;; "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")
          
          (* ;; "rg 7/21/87 now looks at QuietFlg before doing PRINTOUT.  Note: there may still be some instances where files will not be loaded, even though a message is printed, but it's too difficult to predict for all cases whether LOAD?  will actually do a LOAD.  Membership in LOADEDFILELST is used as a 99 correct hint")
          
          (* ;; "rg 9/4/87 now pushes file name onto NC.LoadedFiles for use by NC.PostGreet")
          
          (* ;; "rg 1/15/88 now checks rootified version of LOADEDFILELST, won't load any file that it finds there.  Net effect is that this fn will NEVER load a file that has been loaded in ANY version previously.  No longer calls NC.FixFileDates.")

    (DECLARE (GLOBALVARS NC.LoadedFiles))
    (RESETLST [RESETSAVE NIL (if (OPENWP (WFROMDS (TTYDISPLAYSTREAM)
                                                T))
                                 then (SETQ QuietFlg T)
                                      '(NILL)
                               else `(CLOSEW ,(WFROMDS (TTYDISPLAYSTREAM]
           [RESETSAVE NIL (if QuietFlg
                              then '(NILL)
                            else `(WINDOWPROP ,(WFROMDS (TTYDISPLAYSTREAM)) 'PAGEFULLFN
                                         ,(WINDOWPROP (WFROMDS (TTYDISPLAYSTREAM))
                                                 'PAGEFULLFN
                                                 'NILL]
           (LET [(Window (WFROMDS (TTYDISPLAYSTREAM)))
                 (FullName (NC.FindFile FileName NIL NIL NIL (OR (GETPROP FileName 'Directories)
                                                                 Directories]
                (if [AND FullName (NOT (FMEMB FileName (SIMPLE-LOADEDFILELST]
                    then (if (NOT QuietFlg)
                             then (CLEARW Window)
                                  (FLASHWINDOW Window)
                                  (PRINTOUT Window "Attempting to autoload " FileName T))
                         (APPLY* (FUNCTION FILESLOAD)
                                '(SYSLOAD) FullName)
                         (pushnew NC.LoadedFiles (FILENAMEFIELD FileName 'NAME])

(NC.UpdateConfig
  [LAMBDA (Directory)                                 (* ; "Edited 15-Jan-88 18:06 by Randy.Gobbel")

    (DECLARE (GLOBALVARS NC.ForceLoadFlg NC.InstallFlg NC.Files NC.AutoloadStubFns NC.NoUpdateFlg 
                    NOTECARDTYPESTUBS NOTECARDSDIRECTORIES))
    (if (NOT NC.NoUpdateFlg)
        then (SETQ Directory (OR Directory (DIRECTORYNAME T)))
             (for File in NC.Files
                do [if (AND NC.InstallFlg (GETPROP File 'ConfigProps))
                       then (LET ((FullName (NC.FindFile File NIL T T)))
                                 (if FullName
                                     then (if NC.ForceLoadFlg
                                              then (LOAD FullName 'ALLPROP)
                                            else (LOAD? FullName 'ALLPROP]
                   (for Prop in (GETPROP File 'ConfigProps) when (LISTP Prop)
                      do (PUTPROP File (CAR Prop)
                                (APPLY* (CADR Prop)
                                       File Directory)))
                   (PRINTOUT T File ": " (GETPROP File 'SourceFile)
                          " "
                          (GETPROP File 'CompiledFile)
                          " "
                          (GETPROP File 'Directories)
                          T))
             (SETQ NC.AutoloadStubFns (for TypeName in NOTECARDTYPESTUBS bind Fn
                                         eachtime (SETQ Fn (PACK* 'NCAddStub. TypeName 'Card))
                                         when (GETD Fn) collect Fn])
)



(* ;; "DELETE NC.FixFileDates")




(* ;; "changes to NOTECARDS")

(DEFINEQ

(NC.PostGreet
  [LAMBDA NIL                                         (* ; "Edited 18-Jan-88 13:58 by Randy.Gobbel")
          
          (* ;; "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)")
          
          (* ;; "rg 1/15/88 no longer calls NC.FixFileDates, sets up to use NEW-WHERE-IS database")

    (DECLARE (GLOBALVARS NC.SourceAccessFlg NC.CardTypes NC.CoreFiles NC.LoadedFiles NOTECARDTYPES 
                    NOTECARDTYPESTUBS NOTECARDSLIBRARYFILES NOTECARDSLISPUSERSFILES 
                    NCINITIALGLOBALPARAMS))
    [LET (FullFileName TypeName Type File)
         (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 '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 '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 'LISPUSERSDIRECTORIES))
    (if (GETD 'START-TEDIT-KILLER)
        then (START-TEDIT-KILLER))
    (if (AND NC.SourceAccessFlg (GETD 'XCL::ADD-WHERE-IS-DATABASE))
        then (XCL::ADD-WHERE-IS-DATABASE (NC.FindFile 'NOTECARDS.HASH NIL NIL T)))
    (NCP.NoteCardsParameters NCINITIALGLOBALPARAMS])
)



(* ;; "add to NOTECARDS, along with other LISPUSERS files")

(FILESLOAD (FROM LISPUSERS)
       NEW-WHERE-IS)



(* ;; "finally, add NOTECARDS.HASH to NC.Files, with SourceFile CONFIGPROP")


(PUTPROPS RGPATCH075 FILETYPE :TCOMPL)

(PUTPROPS RGPATCH075 MAKEFILE-ENVIRONMENT (:PACKAGE "IL" :READTABLE "INTERLISP" :BASE 10))
(PUTPROPS RGPATCH075 COPYRIGHT ("Xerox Corporation" 1988))
(DECLARE%: DONTCOPY
  (FILEMAP (NIL (1602 7478 (NC.SetStandardConfigProps 1612 . 2813) (NC.LoadFileFromDirectories 2815 . 
5821) (NC.UpdateConfig 5823 . 7476)) (7557 10919 (NC.PostGreet 7567 . 10917)))))
STOP