IMPLEMENTATION MODULE ErrorNames; (* * REPERTOIRE * Release 1.6 * By Charles Bradford and Cole Brecheen * (c) Copyright 1985-1992 PMI * Green Bay, Wisconsin * All rights reserved * (414) 468-6040 * * $Header: D:/logfiles/mods/errornam.mov 1.7 10 Mar 1991 15:27:18 coleb $ * *) (*EntryDiag: IMPORT Diagnostics; :EntryDiag*) IMPORT ErrorManager; IMPORT GenLists; IMPORT KbdInput; IMPORT ListUtils; IMPORT LowLevel; IMPORT M2Strings; IMPORT StrEdit; IMPORT StringIO; IMPORT SYSTEM; IMPORT VWindows; VAR Initialized : BOOLEAN; CONST LabelTerminator = ':'; VAR ErrorMsgList: GenLists.GenList; PROCEDURE WarningName( TheName: ARRAY OF CHAR ); VAR ListEnd, ListSpot, TypeCode, KeyHit, StrSpot: CARDINAL; LabelStr, MsgFileName: ARRAY [0..79] OF CHAR; str,MsgStr : ARRAY [0..255] OF CHAR; BEGIN StrEdit.SetLength( MsgStr, 0 ); IF NOT GenLists.Initialized( ErrorMsgList ) THEN MsgFileName := 'rprtoire.msg'; GenLists.NewList( ErrorMsgList ); IF ListUtils.TextFileToList( MsgFileName, ErrorMsgList ) # StringIO.NoError THEN StrEdit.AssignStr( " can't load RPRTOIRE.MSG file to expand this message.", MsgStr ); END; END; M2Strings.Assign( TheName, LabelStr ); IF LabelStr[ M2Strings.Length(LabelStr) ] # LabelTerminator THEN StrEdit.Append( LabelStr, LabelTerminator ); END; IF GenLists.Initialized(ErrorMsgList) THEN ListEnd := GenLists.ListLength(ErrorMsgList); ListSpot := GenLists.ScanList( LabelStr, ErrorMsgList, 1, ListEnd, StrSpot); IF (ListSpot = 0) OR (StrSpot > 0) THEN StrEdit.AssignStr( " Your RPRTOIRE.MSG file is out of date.", MsgStr ); ELSE GenLists.GetElmt( ErrorMsgList, ListSpot, MsgStr, TypeCode ); LOOP (* Now we keep copying from ErrorMsgList until we find a line that starts with LabelTerminator; allows messages to occupy more than one line.*) INC( ListSpot ); GenLists.GetElmt( ErrorMsgList, ListSpot, str, TypeCode ); IF LowLevel.ScanEQ( HIGH(str), LabelTerminator, SYSTEM.ADR(str) ) < INTEGER(M2Strings.Length(str)) THEN EXIT ELSE StrEdit.Append(MsgStr,str); END; END; ErrorManager.WARN(MsgStr); RETURN; END; END; StrEdit.Append( MsgStr, " Please contact developer" ); M2Strings.Insert( LabelStr, MsgStr, 0 ); ErrorManager.WARN( MsgStr ); END WarningName; PROCEDURE Init(); BEGIN IF Initialized THEN RETURN; ELSE Initialized := TRUE; END; (*EntryDiag: Diagnostics.Init(); :EntryDiag*) ErrorManager.Init(); GenLists.Init(); KbdInput.Init(); ListUtils.Init(); LowLevel.Init(); M2Strings.Init(); StrEdit.Init(); StringIO.Init(); VWindows.Init(); (*EntryDiag: Diagnostics.diagS( 'Entering ErrorNames', '' ); :EntryDiag*) GenLists.NilList( ErrorMsgList ); (*EntryDiag: Diagnostics.diagS( 'Exiting ErrorNames', '' ); :EntryDiag*) END Init; BEGIN Initialized := FALSE; Init(); END ErrorNames.