MODULE verify; (* cn 24-Sep-94 *) (* verify takes alist of sym and obj files, and looks, if they all have the same keys for each other. *) FROM SYSTEM IMPORT ADR; IMPORT Arguments,Arts,Break,SeqIO,s:String,T:Terminal; CONST maxNames=200; nameLen=24; pathLen=128; (* bufferSize for source file. *) bufferSize=04000H; TYPE CARDINAL=INTEGER; LONGCARD=LONGINT; Name=ARRAY [0..nameLen-1] OF CHAR; Path=ARRAY [0..pathLen-1] OF CHAR; File=RECORD path:Path; key:LONGCARD; END; VAR inFile:SeqIO.SeqKey; outFile:SeqIO.SeqKey; files:ARRAY [1..maxNames] OF File; numOfFiles:INTEGER; (* Some procedure for easier reading from input file *) PROCEDURE Read():CHAR; BEGIN RETURN SeqIO.SeqInB(inFile); END Read; (* Read one byte from input file. *) PROCEDURE ReadShort():INTEGER; BEGIN RETURN SeqIO.SeqInW(inFile); END ReadShort; (* Read two bytes from input file. *) PROCEDURE ReadLong():LONGINT; BEGIN RETURN SeqIO.SeqInL(inFile); END ReadLong; (* Read four bytes from input file. *) PROCEDURE ReadName(VAR name: ARRAY OF CHAR); (* Read a modulename of 24 bytes from input files. *) BEGIN SeqIO.SeqInCount(inFile,ADR(name),nameLen); END ReadName; PROCEDURE ReadLine(VAR name: ARRAY OF CHAR); (* Read a filename from input files. *) VAR ch:CHAR; i:INTEGER; BEGIN REPEAT SeqIO.SeqGetB(inFile,ch) UNTIL (ch>" ") OR ~SeqIO.SeqOk(inFile); WHILE (ch>" ") & SeqIO.SeqOk(inFile) DO name[i]:=ch; INC(i); SeqIO.SeqGetB(inFile,ch); END; name[i]:=0C; END ReadLine; PROCEDURE ReadString(VAR name: ARRAY OF CHAR); (* Read a zero terminated string from input file. *) VAR i:INTEGER; BEGIN i:=-1; REPEAT INC(i); SeqIO.SeqGetB(inFile,name[i]); UNTIL name[i]=0C; END ReadString; VAR dummy:ARRAY [0..999] OF CHAR; PROCEDURE SkipBlock(size:INTEGER); (* Skip a block of given length from input file. *) BEGIN Arts.Assert(size0 THEN IF i\n\n where file contains a list of sym/obj files to be checked.\n"); ELSE Arguments.GetArg(1,path,len); Verify(path); END; END verify.