;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:8; Patch-File:T -*-
;;; Patch file for System version 126.140
;;; Reason:
;;;  Plug a hole in MAKE-SYSTEM logic  - it was possible to get a "file not found"
;;;  error for a file before ever checking whether it existed.  
;;; Written 4-Nov-88 18:32:29 by keith (Keith Corbett) at site Gigamos Cambridge
;;; while running on Johannes Brahms from band 1
;;; with Experimental System 126.138, Experimental ZWEI 126.28, Experimental ZMail 74.14, Experimental Local-File 76.0, Experimental File-Server 25.0, Experimental Lambda-Diag 18.0, Experimental Unix-Interface 15.0, Experimental Tape 26.4, Microcode 1762, SDU Boot Tape 3.14, SDU ROM 103, 10/17.

; From modified file DJ: L.SYS2; MAKSYS.LISP#220 at 4-Nov-88 18:33:35
#8R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS2; MAKSYS  "

(DEFUN SYSTEM-GET-FILE-PROPERTY-LIST (FILE)
  (do ((info (assq file *interesting-files-info*) (assq file *interesting-files-info*))
       (first-time t (setq first-time nil)))
      (info info)

    ;;;This may be the first we've taken an "interest" in this file
    (pushnew file *interesting-files*)

    (cond (*just-accumulating-files*
	   (return nil)))
    
    (cond ((null first-time)
	   (cerror "Look again for the file."
		   "File ~A not found." file)))

    ;;Found a file we didn't know about, accumulate a lot of info at once
    (ACCUMULATE-INTERESTING-FILES *FILE-TRANSFORMATION-LIST* '(:PROBABLY))
    (ACCUMULATE-INTERESTING-FILES *ADDED-FILE-TRANSFORMATIONS* '(NIL :PROBABLY))

    (let ((plists (FS:MULTIPLE-FILE-PLISTS *INTERESTING-FILES*))
	  still-interesting-files)
      ;;remember any files that weren't found
      (setq plists (loop for plist in plists
			 when (null (cdr plist))
			 do (push (car plist) still-interesting-files)
			 else collect plist))
      (SETQ *INTERESTING-FILES-INFO* (NCONC plists *INTERESTING-FILES-INFO*)
	    *INTERESTING-FILES* still-interesting-files))
    ))

))
