<> <> <> <<>> DIRECTORY IO, MessageWindow, Rope, SVError; SVErrorImpl: CEDAR PROGRAM IMPORTS IO, MessageWindow EXPORTS SVError = BEGIN <> <<>> gErrorStream: IO.STREAM; SetErrorStream: PUBLIC PROC [errorStream: IO.STREAM] = { gErrorStream _ errorStream; }; GetErrorStream: PUBLIC PROC [] RETURNS [errorStream: IO.STREAM] = { RETURN[gErrorStream]; }; Append: PUBLIC PROC [msg: Rope.ROPE, clearHerald: BOOL _ FALSE, addCR: BOOL _ FALSE] = { MessageWindow.Append[msg, clearHerald]; gErrorStream.PutF[msg]; IF addCR THEN gErrorStream.PutChar[IO.CR]; }; AppendHerald: PUBLIC PROC [msg: Rope.ROPE, clearHerald: BOOL] = { MessageWindow.Append[msg, clearHerald]; }; AppendTypescript: PUBLIC PROC [msg: Rope.ROPE] = { gErrorStream.PutF[msg]; gErrorStream.PutChar[IO.CR]; }; Blink: PUBLIC PROC [] = { MessageWindow.Blink[]; }; NotYetImplemented: PUBLIC SIGNAL = CODE; END.