;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:10; Patch-File:T -*-
;;; Patch file for System version 123.90
;;; Reason:
;;;  Had the sense of the :noerror option reversed for the :multiple-file-plists
;;;  method of fs:ftp-access
;;; Written 31-Oct-87 16:12:19 by pld at site LMI Cambridge
;;; while running on Jack Flanders from band 2
;;; with Experimental System 123.89, Experimental Local-File 73.0, Experimental FILE-Server 22.0, Experimental Unix-Interface 11.0, Experimental Tape 18.0, Experimental KERMIT 34.0, Experimental ZMail 71.0, Experimental Lambda-Diag 15.0, microcode 1754, SDU Boot Tape 3.12, SDU ROM 8.



; From modified file DJ: L.NETWORK.IP-TCP.USER; FTP-ACCESS.LISP#34 at 31-Oct-87 16:12:20
#10R FILE-SYSTEM#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "FILE-SYSTEM")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; USER; FTP-ACCESS  "

(defmethod (ftp-access :multiple-file-plists) (files options)
  (do* ((list files (cdr list))
	(file (car list) (car list))
	(error-p (not (memq :noerror options)))
	(result nil))
       ((null list)
	(nreverse result))
    (let* ((pathname (normalize-ftp-directory-list-pathname file host))
	   (plist (with-open-file (s pathname :raw-directory-list t :error error-p)
		    (if (errorp s)
			s
		      (ftp-access-canonicalize-directory-list
			(cons
			  `(nil :pathname ,pathname)
			  (do ((line) (eofp) (list))
			      (eofp (nreverse list))
			    (multiple-value (line eofp) (send s :line-in))
			    (when line
			      (let* ((plist (ftp-parse-directory-list-line line host pathname)))
				(when (and plist (car plist))
				  (push plist list)))))))))))
      (if (errorp plist)
	  (push plist result)
	(dolist (elt plist)
	  (push elt result))))))

))
