;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:8; Patch-File:T -*- ;;; Patch file for System version 126.98 ;;; Reason: ;;; Patch from Marc Rinfret (Silicart). Prevents Chaos property list stream ;;; (stream :PROPERTIES method) from getting jumbled command string. ;;; Unfortunately, this functionality isn't working for other reasons I ;;; haven't figured out yet. ;;; Written 29-Sep-88 19:07:13 by keith (Keith Corbett) at site Gigamos Cambridge ;;; while running on Breaking Glass from band 1 ;;; with Experimental System 126.94, Experimental ZWEI 126.13, Experimental ZMail 74.2, 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. ; From modified file DJ: L.NETWORK.CHAOS; QFILE.LISP#386 at 29-Sep-88 19:07:14 #8R FILE-SYSTEM#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "FILE-SYSTEM"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; CHAOS; QFILE  " (DEFUN MAKE-FILE-PROPERTY-LIST-STREAM-CHAOS (ACCESS COMMAND WHOSTATE STRING-ARG TOKEN-ARGS PATHNAME NO-ERROR-P &AUX DATA-CONN HOST-UNIT PKT SUCCESS NOT-ABORTED STRING (DEFAULT-CONS-AREA SYS:BACKGROUND-CONS-AREA)) (MULTIPLE-VALUE (DATA-CONN HOST-UNIT) (SEND ACCESS :GET-DATA-CONNECTION :INPUT)) (UNWIND-PROTECT (PROGN (MULTIPLE-VALUE-SETQ (PKT SUCCESS STRING) (SEND HOST-UNIT :COMMAND NIL (DATA-INPUT-HANDLE DATA-CONN) NIL WHOSTATE COMMAND #/space TOKEN-ARGS #/NEWLINE STRING-ARG #/NEWLINE)) (COND ((NOT SUCCESS) (SETQ NOT-ABORTED T) (SETQ STRING (STRING-APPEND STRING)) (SETF (DATA-STREAM DATA-CONN :INPUT) NIL) (QFILE-PROCESS-ERROR-NEW STRING PATHNAME NIL NO-ERROR-P :DIRECTORY-STREAM)) (T (QFILE-CHECK-COMMAND COMMAND STRING) (PROG1 (MAKE-INSTANCE 'QFILE-DIRECTORY-STREAM :HOST-UNIT HOST-UNIT :DATA-CONNECTION DATA-CONN :PATHNAME PATHNAME) (SETQ NOT-ABORTED T))))) (AND PKT (CHAOS:RETURN-PKT PKT)) ;; Both success and failure set NOT-ABORTED once they get past critical section. (UNLESS (OR NOT-ABORTED (NULL DATA-CONN) (NULL (SEND HOST-UNIT :CONTROL-CONNECTION))) ;; Here if aborted out of it and server may have directory stream open. (CONDITION-CASE () (MULTIPLE-VALUE-BIND (pkt CLOSE-SUCCESS) (SEND HOST-UNIT :COMMAND NIL (DATA-INPUT-HANDLE DATA-CONN) NIL "Close" "CLOSE") (and pkt (chaos:return-pkt pkt)) (WHEN CLOSE-SUCCESS (READ-UNTIL-SYNCHRONOUS-MARK (DATA-CONNECTION DATA-CONN))) (SEND HOST-UNIT :FREE-DATA-CONNECTION DATA-CONN :INPUT)) (SYS:HOST-STOPPED-RESPONDING NIL))))) ))