(FILECREATED "31-Jan-86 17:13:56" {ERIS}<lispusers>koto>SAMEDIR.;1 3265   

      changes to:  (FNS CHECKSAMEDIR)

      previous date: " 9-Jun-85 23:56:27" {ERIS}<LISPCORE>LIBRARY>SAMEDIR.;3)


(* Copyright (c) 1982, 1984, 1985, 1986 by Xerox Corporation. All rights reserved.)

(PRETTYCOMPRINT SAMEDIRCOMS)

(RPAQQ SAMEDIRCOMS ((FNS CHECKSAMEDIR HOST&DIRECTORYFIELD)
		      (ADDVARS [MAKEFILEFORMS (OR (NLSETQ (CHECKSAMEDIR FILE))
						  (RETFROM (QUOTE MAKEFILE]
			       (MIGRATIONS))
		      (GLOBALVARS MIGRATIONS)))
(DEFINEQ

(CHECKSAMEDIR
  [LAMBDA (FILE)                                             (* mdd "31-Jan-86 17:10")
    (PROG ([DATES (U-CASE (GETP FILE (QUOTE FILEDATES]
	     HOST/DIR HOST DIR LST NEWV OKHOST/DIRS)
	AGAIN
	    (OR (LISTP DATES)
		  (RETURN))
	    [SETQ OKHOST/DIRS (CONS (SETQ HOST/DIR (U-CASE (DIRECTORYNAME T T)))
					(MKLIST (U-CASE (CDR (FASSOC HOST/DIR MIGRATIONS]
	    (COND
	      ((for OLDFILE in DATES bind HOST DIR never (FMEMB (HOST&DIRECTORYFIELD
									    (CDR OLDFILE))
									  OKHOST/DIRS))
		(SELECTQ [ASKUSER 10 (QUOTE Y)
				      (LIST (QUOTE "You haven't loaded or written")
					      FILE
					      (QUOTE "in your connected directory")
					      HOST/DIR
					      (QUOTE "-- should I write it out anyway"))
				      (BQUOTE ((O , (CONCAT "ops!  Connect to "
								(SETQ HOST/DIR (
								    HOST&DIRECTORYFIELD
								    (CDAR DATES)))
								" [confirm] ")
						    CONFIRMFLG T)
						 (C "onnect to other directory: ")
						 (Y "es, write it here
")
						 (N "o, abort MAKEFILE
"]
			   (Y (RETURN))
			   (N (ERROR!))
			   (C (SETQ HOST/DIR))
			   (O)
			   (SHOULDNT))
		[NLSETQ (CNDIR (OR HOST/DIR (READ T T]
		(GO AGAIN))
	      ((AND [SETQ NEWV (INFILEP (PACKFILENAME (QUOTE VERSION)
							      NIL
							      (QUOTE BODY)
							      (CDAR DATES]
		      (NEQ NEWV (CDAR DATES)))
		(SELECTQ (ASKUSER 15 (QUOTE Y)
				      (LIST (CDAR DATES)
					      "is not the most recent version (version"
					      (MKSTRING (FILENAMEFIELD NEWV (QUOTE VERSION)))
					      "has since appeared)." 
					      "Do you want to make the file anyway"))
			   (Y)
			   (N (ERROR!))
			   (SHOULDNT])

(HOST&DIRECTORYFIELD
  [LAMBDA (FILENAME)                                         (* bvm: "20-Mar-84 15:23")
                                                             (* Returns the host&dir fields packed together)
    (for TAIL on (UNPACKFILENAME FILENAME) by (CDDR TAIL)
       do [COND
	      ((FMEMB (CAR TAIL)
			(QUOTE (HOST DIRECTORY DEVICE)))
		(push $$VAL (CAR TAIL)
			(CADR TAIL]
       finally (RETURN (PACKFILENAME $$VAL])
)

(ADDTOVAR MAKEFILEFORMS (OR (NLSETQ (CHECKSAMEDIR FILE))
			      (RETFROM (QUOTE MAKEFILE))))

(ADDTOVAR MIGRATIONS )
(DECLARE: DOEVAL@COMPILE DONTCOPY

(GLOBALVARS MIGRATIONS)
)
(PUTPROPS SAMEDIR COPYRIGHT ("Xerox Corporation" 1982 1984 1985 1986))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (536 2983 (CHECKSAMEDIR 546 . 2465) (HOST&DIRECTORYFIELD 2467 . 2981)))))
STOP