;;; -*- Mode:LISP; Package:MAC; Base:10; Readtable:ZL -*-


(defvar mac-host nil)

;;;======================
;;;======================
;;; FROM HOST

(DEFFLAVOR SI:HOST-MAC-MIXIN
      ()
      ()
  (:REQUIRED-FLAVORS SI:HOST))

(DEFPROP :KMAC SI:HOST-MAC-MIXIN SI:SYSTEM-TYPE-FLAVOR)

(DEFMETHOD (SI:HOST-MAC-MIXIN :PRIMARY-DEVICE) () NIL)

(DEFMETHOD (SI:HOST-MAC-MIXIN :HSNAME-PATHNAME) (STRING HOST)
  (FS:PARSE-PATHNAME STRING HOST))


;;;======================
;;; FROM ACCESS


(DEFFLAVOR fs:FILE-HOST-MAC-MIXIN
    ()
    (fs:FILE-HOST-MIXIN))

(DEFMETHOD (fs:FILE-HOST-MAC-MIXIN :PATHNAME-FLAVOR) () 'MAC-PATHNAME)



;(defvar *previous-local-host* si:local-host)

;(defun add-local-pathname-host ()
;  (setq *pathname-host-list* (delq *previous-local-host* *pathname-host-list*))
;  (setq *previous-local-host* si:local-host)
;  (fs:add-file-computer si:local-host))

;(add-initialization "Add Local Pathname Host" '(fs:add-local-pathname-host) '(:warm :now))
;(add-initialization "Add Local Pathname Host" '(fs:add-local-pathname-host) :site)


;;; A special host flavor for the local file system.  The local host used to be
;;; treated specially by the the :PATHNAME-HOST-P method, which compared SELF
;;; against SI:LOCAL-HOST to determine if "LM" was a valid host.  This causes
;;; problems when SI:LOCAL-HOST is not defined, as when changing the name of
;;; a machine and updating the site files.  DEFINE-LOCAL-FILE-SYSTEM-HOST defines
;;; a valid host, connected to the local file system, without concern for any
;;; of the site definitions.  KHS 1/9/85.
;;;
;;; This thing should be added only when there are site information problems;
;;; it causes lot of pain when things are otherwise OK.  We should advertise
;;; the function DEFINE-LOCAL-FILE-SYSTEM-HOST just in case the site information
;;; (or lack of it) requires it.

(DEFFLAVOR fs:MAC-HOST
    ()
    (SI:HOST-MAC-MIXIN fs:FILE-HOST-MAC-MIXIN SI:HOST))

(DEFPROP :KMAC fs:MAC-HOST SI:HOST-FLAVOR)


(DEFMETHOD (fs:MAC-HOST :AFTER :INIT) (&REST IGNORE)
  (SETQ fs:APPROPRIATE-ACCESS-FLAVORS '(MAC-FILE-ACCESS)))

(DEFMETHOD (FS:MAC-HOST :PRIMARY-DEVICE) () NIL)

(DEFMETHOD (fs:MAC-HOST :FILE-SYSTEM-TYPE) () :KMAC)

(DEFMETHOD (fs:MAC-HOST :DETERMINE-ACCESS) ()
  (SETQ fs:ACCESS (MAKE-INSTANCE 'MAC-FILE-ACCESS :HOST SELF)))

(DEFMETHOD (fs:MAC-HOST :GET-ACCESS) ()
  (OR fs:ACCESS (SEND SELF :DETERMINE-ACCESS)))

(DEFMETHOD (fs:MAC-HOST :NAME-AS-FILE-COMPUTER) () "KMAC")


(DEFMETHOD (fs:MAC-HOST :PATHNAME-HOST-NAMEP) (NAME)
  (STRING-EQUAL NAME (SEND SELF :NAME)))



;;(COMPILE-FLAVOR-METHODS fs:FILE-HOST-MAC-MIXIN si:HOST-MAC-MIXIN fs:MAC-HOST)



