-- file: IntMBXState.mesa -- edited by Schroeder, December 19, 1980 11:34 AM -- edited by Brotz, November 12, 1981 3:07 PM DIRECTORY intCommon USING [audioEnabled, newMailTune, newMessagesHouse, timeHouse, user], inD: FROM "InteractorDefs" USING [HousePtr, PlayTune], RetrieveDefs USING [MBXState], String USING [AppendChar, AppendString, AppendSubString, EquivalentString, SubStringDescriptor]; IntMBXState: PROGRAM IMPORTS inD, intC: intCommon, String EXPORTS inD = BEGIN ReportMBXState: PUBLIC PROCEDURE[mbxState: RetrieveDefs.MBXState] = BEGIN house: inD.HousePtr = intC.newMessagesHouse; lastMessage: STRING = [40]; String.AppendString[lastMessage, house.text]; house.text.length _ 0; String.AppendString[house.text, SELECT mbxState FROM badName, badPwd => IF intC.user.password.length = 0 THEN "Login please."L ELSE "Bad user name or password."L, cantAuth => "Can't contact authentication server."L, -- someEmpty => "Can't contact some inbox servers."L, allDown => "Can't contact any inbox servers."L, allEmpty, someEmpty => "Mailbox empty at "L, unknown => ""L, ENDCASE --notEmpty-- => "You have new mail."L]; IF mbxState = allEmpty OR mbxState = someEmpty THEN BEGIN time: STRING = intC.timeHouse.text; fudge: CARDINAL = IF time[time.length-12] = ' THEN 1 ELSE 0; ssd: String.SubStringDescriptor _ [time, time.length-12+fudge, 5-fudge]; String.AppendSubString[house.text, @ssd]; IF mbxState = allEmpty THEN String.AppendChar[house.text, '.]; END; IF NOT String.EquivalentString[lastMessage, house.text] THEN BEGIN IF intC.audioEnabled AND mbxState = notEmpty AND intC.newMailTune # NIL THEN inD.PlayTune[intC.newMailTune]; house.houseRefresher[house] END; END; -- ReportMBXState -- END. -- IntMBXState -- (635)\f1