;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:10; Patch-File:T -*- ;;; Patch file for System version 123.65 ;;; Reason: ;;; Add non-standard XUND command to FTP to undelete a file. Teach User FTP, Server ;;; FTP, and FTP-ACCESS to use this. ;;; Written 21-Oct-87 14:31:52 by pld (Peter L. DeWolf) at site LMI Cambridge ;;; while running on Jack Flanders from band 2 ;;; with Don't-dump-a-band! Inconsistent (unreleased patches loaded) System 123.63, 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#26 at 21-Oct-87 14:31:53 #10R FILE-SYSTEM#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "FILE-SYSTEM"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; USER; FTP-ACCESS  " (defun change-properties-is-undelete (properties) (do ((list properties (cddr list)) (undelete-p)) ((null list) undelete-p) (case (car list) (:deleted (setq undelete-p (not (cadr list)))) (t (return nil))))) )) ; From modified file DJ: L.NETWORK.IP-TCP.USER; FTP-ACCESS.LISP#26 at 21-Oct-87 14:32:15 #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 :change-properties) (file error-p &rest properties) (if (change-properties-is-undelete properties) (command-using-unit (unit error-p) (ftp-access-operation file unit :undelete (send file :string-for-host))) (handling-file-errors (error-p) (ftp-lose file :change-properties)))) )) ; From modified file DJ: L.NETWORK.IP-TCP.USER; FTP-ACCESS.LISP#26 at 21-Oct-87 14:32:27 #10R FILE-SYSTEM#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "FILE-SYSTEM"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; USER; FTP-ACCESS  " (defmethod (ftp-host-unit :undelete) (x) (ftp:cmd-undelete x)) )) ; From modified file DJ: L.NETWORK.IP-TCP.USER; FTP.LISP#27 at 21-Oct-87 14:32:34 #10R FTP#: #!:CL (COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "FTP"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; USER; FTP  " (defcmd cmd-undelete (remote-file) "undelete one remote file" (commandp (sym complete) "XUND ~A" remote-file)) )) ; From modified file DJ: L.NETWORK.IP-TCP.SERVER; FTP.LISP#66 at 21-Oct-87 14:33:03 #10R FTP#: #!:CL (COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "FTP"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; SERVER; FTP  " (defparameter ftp-cmdlist '(user pass acct rein quit port pasv type stru mode retr stor appe mlfl mail msnd msom msam srsq mrcp allo rest rnfr rnto abor dele cwd list nlst xlst site stat help noop xmkd xrmd xpwd xcup xpng xund)) )) ; From modified file DJ: L.NETWORK.IP-TCP.SERVER; FTP.LISP#66 at 21-Oct-87 14:33:31 #10R FTP#: #!:CL (COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "FTP"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; SERVER; FTP  " (setf (get 'xund 'ftp-help) " ") )) ; From modified file DJ: L.NETWORK.IP-TCP.SERVER; FTP.LISP#66 at 21-Oct-87 14:34:00 #10R FTP#: #!:CL (COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "FTP"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; SERVER; FTP  " (defparameter ftp-logged-in-cmdlist '(port pasv retr stor appe allo rnfr rnto abor dele cwd list nlst xlst xmkd xrmd xpwd xcup xpng xund)) )) ; From modified file DJ: L.NETWORK.IP-TCP.SERVER; FTP.LISP#66 at 21-Oct-87 14:34:12 #10R FTP#: #!:CL (COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "FTP"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; SERVER; FTP  " (defparameter ftp-require-arg-cmdlist '(user port type stru mode retr stor appe rnfr rnto dele xmkd xund)) )) ; From modified file DJ: L.NETWORK.IP-TCP.SERVER; FTP.LISP#66 at 21-Oct-87 14:34:24 #10R FTP#: #!:CL (COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "FTP"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; SERVER; FTP  " (defparameter ftp-allow-spaces-in-arg-cmdlist '(pass retr stor appe rnfr rnto dele cwd list nlst xlst xmkd xpng xund)) )) ; From modified file DJ: L.NETWORK.IP-TCP.SERVER; FTP.LISP#66 at 21-Oct-87 14:34:59 #10R FTP#: #!:CL (COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "FTP"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; SERVER; FTP  " (defun (:property xund ftp-server-handle) (state arg cmdline) cmdline (ftp-undelete state arg)) )) ; From modified file DJ: L.NETWORK.IP-TCP.SERVER; FTP.LISP#66 at 21-Oct-87 14:36:26 #10R FTP#: #!:CL (COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "FTP"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; SERVER; FTP  " (defun ftp-undelete (state name) (unless (ftp-pathname-error-reply state (setq name (ftp-parse-pathname state name))) (unless (ftp-file-error-reply state (ftp-file-operation state #'fs:undelete-file name)) (ftp-ack state)))) ))