;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:8; Patch-File:T -*-
;;; Patch file for ZMail version 73.2
;;; Reason:
;;;  Further refinement to earlier patch to handling (non-existent) GMSGS
;;;  functionality.  Modify SI:HOST method for :DO-GMSGS such that if ZMail
;;;  does try to do GMSGS and the Chaos connection gets an error, BARF out of
;;;  GMSGS processing rather than continuing.  Seems fair to assume that
;;;  GMSGS isn't working, in this case.
;;; Written 5-Aug-88 15:07:34 by keith (Keith Corbett) at site Gigamos Cambridge
;;; while running on Breaking Glass from band 3
;;; with Experimental System 126.14, ZWEI 125.11, ZMail 73.1, Local-File 75.2, File-Server 24.1, Unix-Interface 13.0, Tape 24.2, Lambda-Diag 17.0, microcode 1762, SDU Boot Tape 3.14, SDU ROM 103, falambka.



; From modified file DJ: L.ZMAIL; MFHOST.LISP#72 at 5-Aug-88 15:07:36
#8R ZWEI#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "ZWEI")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: ZMAIL; MFHOST  "


(defun run-gmsgs-p (&optional maybe)
  (CASE *RUN-GMSGS-P*
    (:YES T)
    (:NO NIL)
    (:ONCE-ONLY maybe)
    (t *run-gmsgs-p*)))

;;; The :DO-MSGS method returns the file to find the messages in
(DEFMETHOD (SI:HOST :DO-GMSGS) (STREAM)
  (MULTIPLE-VALUE-BIND (FILE-NAME UNAME-STRING) (SEND SELF :GMSGS-PATHNAME)
    (WITH-OPEN-STREAM (CSTREAM (CHAOS:OPEN-STREAM SELF
						  (GMSGS-CONTACT-NAME
						    FILE-NAME UNAME-STRING)
						  :DIRECTION :INPUT :ERROR ()))
      (IF (ERRORP CSTREAM)
	  (barf "~&GMSGS Error: ~A" CSTREAM)
	(STREAM-COPY-UNTIL-EOF CSTREAM STREAM)))  
    FILE-NAME))

))
