DIRECTORY MessagesOut USING [], MessageWindow USING [Append], IO USING [PutRope, STREAM], ProcessExtras USING [CheckForAbort], Rope USING [ROPE]; MessagesOutImpl: CEDAR MONITOR IMPORTS MessageWindow, IO, ProcessExtras EXPORTS MessagesOut = BEGIN ROPE: TYPE = Rope.ROPE; STREAM: TYPE = IO.STREAM; PutRopes: PUBLIC ENTRY PROC [stream: STREAM, r1,r2,r3,r4: ROPE _ NIL] = { ENABLE UNWIND => NULL; IF stream # NIL THEN { IO.PutRope[stream, "\n"]; IF r1 # NIL THEN IO.PutRope[stream, r1]; IF r2 # NIL THEN IO.PutRope[stream, r2]; IF r3 # NIL THEN IO.PutRope[stream, r3]; IF r4 # NIL THEN IO.PutRope[stream, r4]; }; ProcessExtras.CheckForAbort[]; }; PutMsg: PUBLIC ENTRY PROC [r1,r2,r3,r4: ROPE _ NIL] = { ENABLE UNWIND => NULL; MessageWindow.Append[r1, TRUE]; IF r2 # NIL THEN MessageWindow.Append[r2, FALSE]; IF r3 # NIL THEN MessageWindow.Append[r3, FALSE]; IF r4 # NIL THEN MessageWindow.Append[r4, FALSE]; ProcessExtras.CheckForAbort[]; }; END. FMessagesOutImpl.mesa Russ Atkinson, November 10, 1983 11:23 am ʘšœ™Jšœ)™)—J˜šÏk ˜ Jšœ œ˜Jšœœ ˜Jšœœ œ˜Jšœœ˜$Jšœœœ˜J˜—šœœ˜Jšœœ˜(Jšœ ˜Jšœ˜J˜Jšœœœ˜Jšœœœœ˜J˜—šÏnœœœœ œœœ˜IJšœœœ˜šœ œœ˜Jšœ˜Jšœœœœ˜(Jšœœœœ˜(Jšœœœœ˜(Jšœœœœ˜(J˜—J˜J˜—J˜š žœœœœœœ˜7Jšœœœ˜Jšœœ˜Jšœœœœ˜1Jšœœœœ˜1Jšœœœœ˜1J˜J˜J˜—Jšœ˜J˜—…—¸