(FILECREATED " 2-Apr-86 16:26:15" {QV}<IDL>SOURCES>LOADTEST.;39 5942   

      changes to:  (FNS LOADTEST)

      previous date: "16-Feb-86 13:20:15" {QV}<IDL>SOURCES>LOADTEST.;38)


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

(PRETTYCOMPRINT LOADTESTCOMS)

(RPAQQ LOADTESTCOMS [(FILEPKGCOMS IF: IFC:)
		       (FILES IDLCONFIGURATION)
		       (FNS CHANGEDFILES LISTIDL LOADTEST SLOWCOMPILE)
		       (PROP DATABASE LOADTEST)
		       (P (SETQ DIRECTORIES (UNION (LIST IDLSOURCEDIRECTORY)
						   DIRECTORIES)))
		       (DECLARE: DOCOPY DONTEVAL@LOAD (P (LOADTEST])
(PUTDEF (QUOTE IF:) (QUOTE FILEPKGCOMS) [QUOTE ((COM MACRO ((Y . X)
						      (DECLARE: DOCOPY (DECLARE: EVAL@LOADWHEN Y
										 (COMS . X])
(PUTDEF (QUOTE IFC:) (QUOTE FILEPKGCOMS) [QUOTE ((COM MACRO ((Y . X)
						       (DECLARE: DONTEVAL@LOAD DONTCOPY 
								 EVAL@COMPILEWHEN Y (COMS . X])
(FILESLOAD IDLCONFIGURATION)
(DEFINEQ

(CHANGEDFILES
  [LAMBDA (FARG FILES DIRECTORY EXTENSION)                   (* jop: "14-Feb-86 13:53")

          (* If FARG=NIL, all files on FILES will be selected. If T, then only those files for which there exists a version 
	  on IDL subsequent than the compiled version on DIRECTORY. Otherwise, if FARG is a member of FILES, then it and all 
	  subsequent files will be selected. OR, if FARG is a list of filenames, it will be returned)


    (DECLARE (GLOBALVARS IDLSOURCEDIRECTORY IDLFASTDIRECTORY COMPILE.EXT))
    (if (NULL DIRECTORY)
	then (SETQ DIRECTORY IDLFASTDIRECTORY))
    (bind FC FS for F in (OR (LISTP FARG)
				     (FMEMB FARG FILES)
				     FILES)
       when (LET [(FNAME (PACKFILENAME (QUOTE DIRECTORY)
					   IDLSOURCEDIRECTORY
					   (QUOTE NAME)
					   (NAMEFIELD F]
	           (SETQ FS (INFILEP FNAME))
	           (if (NOT FS)
		       then (printout T T "Can't find source file: " FNAME T))
	       FS)
       unless [AND (EQ FARG T)
		       [SETQ FC (INFILEP (PACKFILENAME (QUOTE DIRECTORY)
							     DIRECTORY
							     (QUOTE NAME)
							     (NAMEFIELD F)
							     (QUOTE EXTENSION)
							     (OR EXTENSION COMPILE.EXT]
		       (IGREATERP (GETFILEINFO FC (QUOTE IWRITEDATE))
				    (GETFILEINFO FS (QUOTE IWRITEDATE]
       collect FS])

(LISTIDL
  [LAMBDA (ASKFLAG)                                          (* jop: "14-Feb-86 13:57")
                                                             (* This function will list the most recent version of 
							     every IDLFILE. Good for updating your notebook!)
    (DECLARE (GLOBALVARS IDLSOURCEDIRECTORY IDLFILES))
    (APPLY (FUNCTION LISTFILES)
	     (bind F for X in (SORT (COPY IDLFILES))
		when [AND (PROG1 (SETQ F (INFILEP (PACKFILENAME (QUOTE BODY)
									    X
									    (QUOTE DIRECTORY)
									    IDLSOURCEDIRECTORY)))
				       (PRIN2 [OR F (CONS X (QUOTE (not found]
						T)
				       (SPACES 2 T))
			      (OR (NULL ASKFLAG)
				    (EQ (ASKUSER)
					  (QUOTE Y]
		collect F])

(LOADTEST
  [LAMBDA (DIR SYMFLAG NODATABASEFLAG)                     (* jop: " 2-Apr-86 16:25")
    (DECLARE (GLOBALVARS TESTSYS FASTCOMPILE IDLLISPUSERSFILES IDLSOURCEDIRECTORY LOADDBFLG 
			     COMPILE.EXT))
    (if (NULL DIR)
	then (SETQ DIR IDLSOURCEDIRECTORY))
    (SETQ TESTSYS T)
    (SETQ FASTCOMPILE NIL)
    (SETQ DWIMIFYCOMPFLG T)
    (PROG (TEM)
	    [SETQ TEM (OR (INFILEP (PACKFILENAME (QUOTE DIRECTORY)
							 DIR
							 (QUOTE NAME)
							 (QUOTE PREPATCHTEST)
							 (QUOTE EXTENSION)
							 COMPILE.EXT))
			      (INFILEP (QUOTE PREPATCHIDL]
	    (if TEM
		then (LOAD TEM))
	    (DOFILESLOAD (CONS (QUOTE (SYSLOAD FROM VALUEOF DIRECTORIES))
				   IDLLISPUSERSFILES))
	    (RESETVARS [(LOADDBFLG (COND
				       (NODATABASEFLAG (QUOTE NO))
				       (T (QUOTE YES]
		         (DOFILESLOAD (CONS (LIST (COND
							  (SYMFLAG (QUOTE SOURCE))
							  (T (QUOTE COMPILED)))
							(QUOTE FROM)
							DIR)
						IDLFILES))
		         [SETQ TEM (OR (INFILEP (PACKFILENAME (QUOTE DIRECTORY)
								      DIR
								      (QUOTE NAME)
								      (QUOTE PATCHTEST)
								      (QUOTE EXTENSION)
								      COMPILE.EXT))
					   (INFILEP (QUOTE PATCHTEST]
		         (if TEM
			     then (LOAD TEM)))
	    (COND
	      (MSCHANGEDARRAY (CLRHASH MSCHANGEDARRAY)))   (* This corrects the erroneous view of what has 
							     changed that Masterscope got from new templates, 
							     i.s.opr's, and unsaved decltypes.)
	    (SETQ DECLMESSAGES NIL])

(SLOWCOMPILE
  [LAMBDA (FILES)                                            (* jop: "14-Feb-86 13:59")
    (DECLARE (GLOBALVARS DWIMWAIT COMPILE.EXT IDLFILES IDLSOURCEDIRECTORY))
    (RESETVARS ((DWIMWAIT 0))
	         (FILES←(CHANGEDFILES FILES IDLFILES IDLSOURCEDIRECTORY COMPILE.EXT))
	         (printout T T "Compilation will include: ")
	         (COND
		   (FILES (printout T .PARA (POSITION)
				    (LINELENGTH)
				    FILES))
		   (T (printout T "No files")))
	         (printout T T T)
	         (for F in FILES
		    do (CLRHASH CLISPARRAY)
			 (PRINT (TCOMPL (PRINT F))
				  T)
			 (TERPRI T))
	         (RETURN FILES])
)

(PUTPROPS LOADTEST DATABASE NO)
(SETQ DIRECTORIES (UNION (LIST IDLSOURCEDIRECTORY)
			 DIRECTORIES))
(DECLARE: DOCOPY DONTEVAL@LOAD 
(LOADTEST)
)
(PUTPROPS LOADTEST COPYRIGHT ("Xerox Corporation" 1983 1984 1985 1986))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (951 5697 (CHANGEDFILES 961 . 2425) (LISTIDL 2427 . 3271) (LOADTEST 3273 . 4990) (
SLOWCOMPILE 4992 . 5695)))))
STOP