;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:10; Patch-File:T -*-
;;; Patch file for System version 123.51
;;; Reason:
;;;  I broke the (:after :init) method of ftp-probe-stream; the :truename of
;;;  a probe stream now (properly) includes the version number.  Make-system
;;;  works better....
;;; Written 14-Oct-87 12:30:22 by pld at site LMI Cambridge
;;; while running on Jack Flanders from band 2
;;; with Experimental System 123.50, 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#18 at 14-Oct-87 12:30:23
#10R FILE-SYSTEM#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "FILE-SYSTEM")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; USER; FTP-ACCESS  "

(defmethod (ftp-probe-stream :after :init) (&rest ignored)
  (when (ftp-directory-line-parserp host t)
    (cond ((string-search #\return raw-data)
	   (with-input-from-string (s raw-data)
	     (do ((dplist)
		  (new))
		 ((not (setq new (readline s nil))))
	       (when (car (setq dplist
				(ftp-parse-directory-list-line new host pathname)))
		 (return (setq si:property-list (cdr dplist)
			       truename (getf (cdr dplist) :truename (car dplist))))))))
	  ('else
	   (let ((dplist (ftp-parse-directory-list-line raw-data host pathname)))
	     (setq si:property-list (cdr dplist))
	     (setq truename (getf (cdr dplist) :truename (car dplist))))))))

))
