;;; -*- Mode:Lisp; Readtable:CL; Package:USER; Base:10; Patch-File:T -*- ;;; Patch file for System version 123.99 ;;; Reason: ;;; (ftp:ftp) now always initializes *type*, *struct*, *form*, *mode*, and *bytesize* ;;; to their Standard initial values. It used to do that by initializing keyword ;;; arguments -- which no longer exist. FTP-ACCESS already initializes the variables ;;; correctly. (ftp:cmd-close) and (ftp:lostpeer) now reset these variables to their ;;; default initial values. ;;; Written 4-Nov-87 19:52:43 by foo at site LMI Cambridge ;;; while running on Jack Flanders from band 2 ;;; with Experimental System 123.98, 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.LISP#40 at 4-Nov-87 19:52:43 #10R FTP#: (COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "FTP"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; USER; FTP  " (defun ftp (&optional remote-hostname &key (auto-login t) (trace t) (hash nil) (sendport t) (verbose t) (debug nil) (bell nil) (glob t) (prompt t) user pass acct) (let ((*print-radix* nil) ;prevent garbage in numbers printed by princ and prin1 (*history* nil) (*connected* nil) (*control* nil) (*data* nil) (*remote-hostname* remote-hostname) (*auto-login* auto-login) (*trace* trace) (*hash* hash) (*sendport* sendport) (*verbose* verbose) (*debug* debug) (*bell* bell) (*glob* glob) (*prompt* prompt) (*type* 'ascii) (*struct* 'file) (*form* 'non-print) (*mode* 'stream) (*bytesize* 8.) (*user* user) (*pass* pass) (*acct* acct)) (when *remote-hostname* (cmd-open *remote-hostname*)) (catch 'quit (unwind-protect (global:error-restart ((error) "Return to FTP Command Loop.") (loop (execute-ftp-command-list (parse-line-into-list (global:prompt-and-read :string-or-nil "~&ftp> "))))) (cmd-close))))) )) ; From modified file DJ: L.NETWORK.IP-TCP.USER; FTP.LISP#40 at 4-Nov-87 19:55:13 #10R FTP#: (COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "FTP"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; USER; FTP  " (defcmd cmd-close () t "terminate ftp session" (when *connected* (setq *type* 'ascii) (setq *struct* 'file) (setq *form* 'non-print) (setq *mode* 'stream) (setq *bytesize* 8.) (command "QUIT") (when *control* (close *control*) (setq *control* nil)) (when *data* (close *data*) (setq *data* nil)) (setq *connected* nil))) )) ; From modified file DJ: L.NETWORK.IP-TCP.USER; FTP.LISP#40 at 4-Nov-87 19:58:32 #10R FTP#: (COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "FTP"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; USER; FTP  " (defun lostpeer () (when *connected* (setq *type* 'ascii) (setq *struct* 'file) (setq *form* 'non-print) (setq *mode* 'stream) (setq *bytesize* 8.) (when *control* (close *control*) (setq *control* nil)) (when *data* (close *data*) (setq *data* nil)) (setq *connected* nil) (let ((s (last-reply)) (bogo "599 server randomly died, lost connection, did not print this")) (when s (setf (fill-pointer s) (length bogo)) (copy-array-contents bogo s))) (throw 'lostpeer (values (sym error) 599)))) ))