IMPLEMENTATION MODULE CStr; FROM SYSTEM IMPORT ADDRESS; PROCEDURE m2_c_strlen (s : ADDRESS) : INTEGER; EXTERNAL; PROCEDURE m2_cstr_copy (VAR dst : ARRAY OF CHAR; src : ADDRESS) : CARDINAL; EXTERNAL; PROCEDURE Length (s : CString) : CARDINAL; VAR n : INTEGER; BEGIN IF s = NIL THEN RETURN 0 END; n := m2_c_strlen(s); IF n < 0 THEN RETURN 0 END; RETURN VAL(CARDINAL, n) END Length; PROCEDURE Copy (s : CString; VAR dst : ARRAY OF CHAR) : CARDINAL; BEGIN RETURN m2_cstr_copy(dst, s) END Copy; PROCEDURE IsNil (s : CString) : BOOLEAN; BEGIN RETURN s = NIL END IsNil; END CStr.