-- UnsafeSTPRubicon.Mesa UnsafeSTPRubicon: DEFINITIONS = { AppendCharAndGrow: PROC [ to: LONG POINTER TO LONG STRING, c: CHARACTER, z: UNCOUNTED ZONE]; AppendStringAndGrow: PROC [to: LONG POINTER TO LONG STRING, from: LONG STRING, z: UNCOUNTED ZONE]; CopyToNewString: PROC [s: LONG STRING, z: UNCOUNTED ZONE] RETURNS [newS: LONG STRING]; EmptyString: PROCEDURE [s: LONG STRING] RETURNS [BOOLEAN] = INLINE { RETURN[s = NIL OR s.length = 0]}; FreeString: PROCEDURE [z: UNCOUNTED ZONE, s: LONG STRING] = INLINE {z.FREE[@s]}; Replace: PROC [to: LONG POINTER TO LONG STRING, from: LONG STRING, z: UNCOUNTED ZONE]; StringLength: PROCEDURE [s: LONG STRING] RETURNS [CARDINAL] = INLINE { RETURN[IF s = NIL THEN 0 ELSE s.length]}; }.