(DEFINE-FILE-INFO PACKAGE "XCL" READTABLE "XCL" BASE 10) (IL:FILECREATED "15-Jan-88 18:24:54" IL:{QV}<NOTECARDS>1.3LNEXT>WHERE-IS-PATCH.\;2 4178 IL:|changes| IL:|to:| (IL:VARS IL:WHERE-IS-PATCHCOMS) (IL:PROPS (IL:WHERE-IS-PATCH IL:MAKEFILE-ENVIRONMENT)) IL:|previous| IL:|date:| "15-Jan-88 18:23:01" IL:{QV}<NOTECARDS>1.3LNEXT>WHERE-IS-PATCH.\;1) ; Copyright (c) 1988 by Xerox Corporation. All rights reserved. (IL:PRETTYCOMPRINT IL:WHERE-IS-PATCHCOMS) (IL:RPAQQ IL:WHERE-IS-PATCHCOMS ((IL:FILES (IL:FROM IL:LISPUSERS) IL:NEW-WHERE-IS) (IL:FUNCTIONS WHERE-IS-NOTICE) (IL:PROP (IL:FILETYPE IL:MAKEFILE-ENVIRONMENT) IL:WHERE-IS-PATCH))) (IL:FILESLOAD (IL:FROM IL:LISPUSERS) IL:NEW-WHERE-IS) (DEFUN WHERE-IS-NOTICE (DATABASE-FILE &KEY (FILES "*.;") (NEW NIL) (USE-FULLNAME NIL) (DEFINE-TYPES (WHERE-IS-DEFAULT-DEFINE-TYPES)) (HASH-FILE-SIZE *WHERE-IS-HASH-FILE-SIZE*) (QUIET NIL) (TEMP-FILE NIL)) (LET* ((FILE (IF TEMP-FILE (IF NEW TEMP-FILE (IL:COPYFILE DATABASE-FILE TEMP-FILE)) DATABASE-FILE)) (HASH-FILE:HASH-FILE (IF NEW (HASH-FILE:MAKE-HASH-FILE FILE HASH-FILE-SIZE) (HASH-FILE:OPEN-HASH-FILE FILE :DIRECTION :IO))) (HASH-FILE::*DELETE-OLD-VERSION-ON-REHASH* T)) (UNWIND-PROTECT (DOLIST (PATHNAME (WHERE-IS-FILES FILES)) (UNLESS QUIET (FORMAT T ";;; ~A ." (NAMESTRING PATHNAME))) (LET ((NAMESTRING (WHERE-IS-NAMESTRING PATHNAME))) (IF (AND (NOT NEW) (LET ((OLD-WRITE-DATE (WHERE-IS-GET-WRITE-DATE NAMESTRING HASH-FILE:HASH-FILE))) (AND OLD-WRITE-DATE (= (FILE-WRITE-DATE PATHNAME) OLD-WRITE-DATE)))) (UNLESS QUIET (FORMAT T " up to date.~%")) (MULTIPLE-VALUE-BIND (FILE-VARS VALUES) (WHERE-IS-READ-COMS PATHNAME) (WHEN FILE-VARS (IL:* IL:|;;| "bind the filevars s.t. IL:INFILECOMS? will find them") (PROGV FILE-VARS VALUES (UNLESS QUIET (PRINC ".")) (DOLIST (TYPE DEFINE-TYPES) (LET ((NAMES (IL:INFILECOMS? NIL TYPE (FIRST FILE-VARS)))) (WHEN (CONSP NAMES) (IL:* IL:|;;| "IL:INFILECOMS? sometimes returns T.") (DOLIST (NAME NAMES) (WHERE-IS-NOTICE-INTERNAL NAME TYPE (IF USE-FULLNAME (NAMESTRING PATHNAME) NAMESTRING) HASH-FILE:HASH-FILE)))))) (WHERE-IS-SET-WRITE-DATE NAMESTRING PATHNAME HASH-FILE:HASH-FILE) (UNLESS QUIET (PRINC ". done.") (TERPRI))))))) (HASH-FILE:CLOSE-HASH-FILE HASH-FILE:HASH-FILE)) (LET ((PATHNAME (PATHNAME (HASH-FILE::HASH-FILE-STREAM HASH-FILE:HASH-FILE)))) (COND (TEMP-FILE (UNLESS QUIET (FORMAT T ";;; Renaming ~A ... " (NAMESTRING PATHNAME))) (MULTIPLE-VALUE-BIND (MERGED TRUE-NAME REAL-TRUE-NAME) (RENAME-FILE PATHNAME DATABASE-FILE) (UNLESS QUIET (FORMAT T "~A~%" (NAMESTRING REAL-TRUE-NAME))) REAL-TRUE-NAME)) (T PATHNAME))))) (IL:PUTPROPS IL:WHERE-IS-PATCH IL:FILETYPE :COMPILE-FILE) (IL:PUTPROPS IL:WHERE-IS-PATCH IL:MAKEFILE-ENVIRONMENT (:PACKAGE "XCL" :READTABLE "XCL" :BASE 10)) (IL:PUTPROPS IL:WHERE-IS-PATCH IL:COPYRIGHT ("Xerox Corporation" 1988)) (IL:DECLARE\: IL:DONTCOPY (IL:FILEMAP (NIL))) IL:STOP