--substitutes.cm
-- Last Edited by: Stone, February 6, 1983 8:13 pm

StringDefs Rope
STRING ROPE
EqualStrings EquivalentStrings Rope.Equal ,FALSE
AppendString ← Rope.Cat
Rope USING [ROPE],
ROPE: TYPE = Rope.ROPE;
LENGTH Rope.Length[];
GriffinDefs USING [AppendNumber],
AppendNumber rope ← GriffinDefs.AppendNumber[rope,number];

POINTER TO REF
GriffinMemoryDefs USING [CZone],
Allocate CZone.NEW
Free

DESCRIPTOR FOR ARRAY OF PointDefs.ObjPt PointDefs.ObjPtSequence
LENGTH knots.length cps.length
cps=NIL OR
knots=NIL OR
MenuItemHandle ← NARROW[menu.head]


MiscDefs.CallDebugger Runtime.CallDebugger

WITH obj SELECT FROM
  mref: REF Object[menu] => proc[mref];
ENDCASE;

replace opaque

--AppendNumber rope ← IO.PutFToRope["%s %d",IO.rope[rope],IO.int[int]];
--AppendNumber rope ← Rope.Cat[rope,Convert.ValueToRope[[signed[int]]]];