(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) (FILECREATED "16-Nov-88 14:11:42" {PHYLUM}<BURWELL>LISP>LYRIC>LOADPATCHES.;3 3441 changes to%: (VARS LOADPATCHESCOMS) (FNS LoadPatches COLLECT-PATCH-FILES) previous date%: "27-Sep-88 22:56:49" {PHYLUM}<BURWELL>LISP>LYRIC>LOADPATCHES.;1) (* " Copyright (c) 1985, 1988 by Xerox Corporation. All rights reserved. ") (PRETTYCOMPRINT LOADPATCHESCOMS) (RPAQQ LOADPATCHESCOMS ((FNS LoadPatches COLLECT-PATCH-FILES) (DECLARE%: DONTCOPY (PROP FILETYPE LOADPATCHES)))) (DEFINEQ (LoadPatches [LAMBDA (DIRECTORY LDFLG AFTERDATE) (* ; "Edited 16-Nov-88 13:08 by Burwell") (* ;;; "Load all compiled files from the directory") (DECLARE (GLOBALVARS *COMPILED-EXTENSIONS*)) (LET [(files (SORT (for EXT in *COMPILED-EXTENSIONS* bind (AFTERIDATE ← (if AFTERDATE then (OR (IDATE AFTERDATE) 0) else 0)) join (COLLECT-PATCH-FILES DIRECTORY EXT AFTERIDATE)) (FUNCTION (LAMBDA (X Y) (LESSP (CDR X) (CDR Y] (* ; "files are sorted by increasing date") (for file in files do (SELECTQ LDFLG (HIDDEN (* ; "Load the file, but don't put it on FILELST") (LOAD? (CAR file) T) (SETQ FILELST (DREMOVE (FILENAMEFIELD (CAR file) 'NAME) FILELST))) (LOAD? (CAR file) LDFLG))) files]) (COLLECT-PATCH-FILES [LAMBDA (DIRECTORY EXT AFTERIDATE) (* ; "Edited 16-Nov-88 13:13 by Burwell") (* ;; "Generate list of files in DIRECTORY with extension EXT more recent than idate AFTERIDATE. Return list of pairs (file . date). Omits subdirectories.") (RESETLST (LET ((FILING.ENUMERATION.DEPTH 1) (NAKED-DIR (UNPACKFILENAME.STRING DIRECTORY 'DIRECTORY)) FILE DATE) (bind [GEN ← (\GENERATEFILES (CONCAT DIRECTORY "*." EXT ";") '(ICREATIONDATE) '(SORT RESETLST] while (SETQ FILE (\GENERATENEXTFILE GEN)) when (AND (STRING-EQUAL (UNPACKFILENAME.STRING FILE 'DIRECTORY) NAKED-DIR) (> (SETQ DATE (\GENERATEFILEINFO GEN 'ICREATIONDATE)) AFTERIDATE)) collect (CONS FILE DATE))))]) ) (DECLARE%: DONTCOPY (PUTPROPS LOADPATCHES FILETYPE :COMPILE-FILE) ) (PUTPROPS LOADPATCHES COPYRIGHT ("Xerox Corporation" 1985 1988)) (DECLARE%: DONTCOPY (FILEMAP (NIL (608 3275 (LoadPatches 618 . 2308) (COLLECT-PATCH-FILES 2310 . 3273))))) STOP