DIRECTORY Commander USING [CommandProc, Register], CStitching, CSMonitor, IO USING [Error, GetInt, int, PutF, PutF1, PutFR, Reset, rope, STREAM], Process USING [Detach], Rope USING [ROPE], ViewerIO USING [CreateViewerStreams]; CSTest: CEDAR MONITOR IMPORTS Commander, CStitching, CSMonitor, IO, Process, ViewerIO = BEGIN ROPE: TYPE = Rope.ROPE; windowCount: INT _ 0; -- a count of the number of test windows created. counter: INT _ 0; -- general purpose; MakeTestWindow: ENTRY Commander.CommandProc = BEGIN title: ROPE; windowCount _ windowCount+1; title _ IO.PutFR ["CS maintenance test window # %g", IO.int[windowCount]]; TRUSTED {Process.Detach[FORK Test [title]];} END; Test: PROC [title: ROPE] = BEGIN nr, value: REF INT; r, s: CStitching.Rect; plane: CStitching.Tesselation = CStitching.NewTesselation []; t: CStitching.Tile; in, out: IO.STREAM; [in: in, out: out] _ ViewerIO.CreateViewerStreams [title]; [] _ CSMonitor.Monitor [plane, title, NIL]; DO -- Read a parameter list, terminated by a CR: ENABLE IO.Error => IF ec = SyntaxError THEN { IO.Reset [in]; out.PutF ["\nIncorrect input. Please retype.\n\n"]; LOOP} ELSE EXIT; IO.PutF [stream: out, format: "%lLower left and upper right coord. of rect. (terminate with CR): %l", v1: IO.rope["e"], v2: IO.rope["E"]]; r.x1 _ IO.GetInt [in]; r.y1 _ IO.GetInt [in]; r.x2 _ IO.GetInt [in]; r.y2 _ IO.GetInt [in]; counter _ SUCC [counter]; nr _ NEW [INT]; nr^ _ counter; CStitching.ChangeRect [plane, r, nr]; IO.PutF1 [out, " Rectangle %g inserted.\n", IO.int[nr^]]; t _ CStitching.FindTile [plane, [r.x2-r.x1, r.y2-r.y1]]; value _ NARROW [t.value, REF INT]; s _ CStitching.Area [t]; IO.PutF [stream: out, format: "\nRectangle %g found in plane: %g, %g; %g, %g.\n\n", v1: IF value = NIL THEN IO.rope ["NIL"] ELSE IO.int [value^], v2: IO.int [s.x1], v3: IO.int [s.y1], v4: IO.int [s.x2], v5: IO.int [s.y2]]; ENDLOOP; END; -- Test Commander.Register [key: "Test", proc: MakeTestWindow, doc: "A simple CS test program"]; END. ΞFile: CSTest.mesa Last Edited by: Beretta, June 17, 1985 5:26:35 pm PDT gbb March 25, 1986 2:06:40 pm PST Puts up a test window. Creates typescript window separate from CommandTool with given title. Κ˜J– "Cedar" stylešœ™™5Icode™!—unitšΟk ˜ Kšœ œ˜(Kšœ ˜ K˜ Kšœœ7œ˜GKšœœ ˜Kšœœœ˜Kšœ œ˜%—šΠlnœœ˜Kšœ#œ˜B—Lš˜Kšœœœ˜Kšœ œΟc1˜GKšœ œŸ˜%šΟnœœ˜3Kšœ Ÿœ™Kšœœ˜ Kšœ˜Kšœœ+œ˜JKšœœ˜,Kšœ˜—š œœ œ˜ KšœE™EKšœ œœ˜Kšœ˜Kšœ=˜=Kšœ˜Kšœ œœ˜Lšœ:˜:Kšœ&œ˜+šœŸ*ΠckŸ˜1šœœ ˜šœœ˜Kšœ ˜Kšœ4˜4Kšœ˜—Kšœœ˜ —Kšœhœœ ˜ŠKšœœœ ˜.Kšœœœ ˜.Kšœ œ ˜Kšœœœ˜Kšœ%˜%Kšœ*œ ˜9K•StartOfExpansion―[stream: STREAM, format: ROPE _ NIL, v1: IO.Value _ [null[]], v2: IO.Value _ [null[]], v3: IO.Value _ [null[]], v4: IO.Value _ [null[]], v5: IO.Value _ [null[]]]šœ8˜8Kšœœ œœ˜"Kšœ˜KšœVœ œœœœœœœœœ ˜ήKšœ˜—KšœŸ˜ —Icode2šœX˜XMšœ˜J˜—…—ΐ