/*
** CheckDPI.adpro
**
** $VER: CheckDPI.adpro 1.1.0 (16.11.93)
**
** This ADPro/MorphPlus script calls the ZapDPI program and reports
** DPI chunk status.
**
** This script requires ADPro 2.5.0 (or higher).
**
** Copyright © 1992-1993 ASDG, Incorporated
** All Rights Reserved
*/


ADDRESS "ADPro"
OPTIONS RESULTS

NL = '0A'X
SQ = '27'X
DQ = '22'X
TRUE = 1
FALSE = 0
TempDefaults = "T:TempADProDefaults"


/*
** Save the current environment.
*/

SAVE_DEFAULTS TempDefaults


/*
** Specify the location of the ZapDPI program.
*/

ZapDPIFile = GETCLIP( "ZapDPIFile" )
IF (ZapDPIFile = "") THEN DO
	continue = FALSE
	DO UNTIL (continue = TRUE)
		CALL "FREDSCRIPTS:FREDFunctions/GetAFile" '"Enter Location of ZapDPI"' '"ADPRO:"' '"ZapDPI"' FALSE
		ZapDPIFile = RESULT
		IF (ZapDPIFile = DQ||DQ) THEN
			CALL ErrorOut 10

		IF (EXISTS( ZapDPIFile )) THEN
			continue = TRUE
		ELSE DO
			ADPRO_TO_FRONT

			OKAYN '"CheckDPI"' '"ZapDPI doesn''t exist in specified directory"' '"Retry|Cancel"'
			IF (RC = 0) THEN
				CALL ErrorOut 10
		END
	END

	SETCLIP( "ZapDPIFile", ZapDPIFile )
END


CALL "FREDSCRIPTS:FREDFunctions/GetAListOfFiles" '"Select IFF files to Check"' '"ADPRO:"' '""""' TRUE
FileList = RESULT
IF (FileList = DQ||DQ) THEN DO
	ADPRO_TO_FRONT
	OKAY1 "No files selected."
	CALL ErrorOut 10
END

FileCount = WORDS( FileList )
Counter = 1

DO WHILE (Counter <= FileCount)
	ADDRESS COMMAND ZapDPIFile "-c" WORD( FileList, Counter )
	ZapResult = RC

	String = WORD( FileList, Counter )
	String = STRIP( String, 'b', '"' )
	IF (ZapResult = 5) THEN
		ErrorString = "contains a DPI chunk."
	ELSE IF (ZapResult = 0) THEN
		ErrorString = "does not contain a DPI chunk."
	ELSE ErrorString = "Error reading or locating file."

	ADPRO_TO_FRONT
	OKAY1 String || NL || ErrorString

	Counter = Counter + 1
END

CALL ErrorOut 0


ErrorOut:
	PARSE ARG ExitCode

	IF (EXISTS( TempDefaults )) THEN DO
		LOAD_DEFAULTS TempDefaults
		IF (RC ~= 0) THEN DO
			ADPRO_TO_FRONT
			OKAY1 "Error restoring settings."
		END

		ADDRESS COMMAND "Delete >NIL:" TempDefaults
	END

	EXIT ExitCode
