-- JaMStorageImpl.mesa -- Pilot version -- Last changed by Doug Wyatt, 13-Oct-81 17:33:49 DIRECTORY JaMStorage USING [TextObject], Heap USING [Prune, systemZone], Inline USING [LongCOPY]; JaMStorageImpl: PROGRAM IMPORTS Heap, Inline EXPORTS JaMStorage SHARES JaMStorage = { zone: UNCOUNTED ZONE = Heap.systemZone; Zone: PUBLIC PROC RETURNS[UNCOUNTED ZONE] = { RETURN[zone] }; Prune: PUBLIC PROC = { Heap.Prune[zone] }; -- Text allocation TextObject: TYPE = JaMStorage.TextObject; PrivateTextPut: PUBLIC PROC[t: POINTER TO TextObject, c: CHARACTER] = { old: LONG STRING _ t.text; new: LONG STRING _ NIL; length: CARDINAL _ t.len; oldmax: CARDINAL _ t.max; maxmax: CARDINAL = t.lim; newmax: CARDINAL _ oldmax + MIN[oldmax/2,maxmax-oldmax]; IF NOT length