CStr.mod 646 B

12345678910111213141516171819202122232425262728293031
  1. IMPLEMENTATION MODULE CStr;
  2. FROM SYSTEM IMPORT ADDRESS;
  3. PROCEDURE m2_c_strlen (s : ADDRESS) : INTEGER;
  4. EXTERNAL;
  5. PROCEDURE m2_cstr_copy (VAR dst : ARRAY OF CHAR;
  6. src : ADDRESS) : CARDINAL;
  7. EXTERNAL;
  8. PROCEDURE Length (s : CString) : CARDINAL;
  9. VAR n : INTEGER;
  10. BEGIN
  11. IF s = NIL THEN RETURN 0 END;
  12. n := m2_c_strlen(s);
  13. IF n < 0 THEN RETURN 0 END;
  14. RETURN VAL(CARDINAL, n)
  15. END Length;
  16. PROCEDURE Copy (s : CString; VAR dst : ARRAY OF CHAR) : CARDINAL;
  17. BEGIN
  18. RETURN m2_cstr_copy(dst, s)
  19. END Copy;
  20. PROCEDURE IsNil (s : CString) : BOOLEAN;
  21. BEGIN
  22. RETURN s = NIL
  23. END IsNil;
  24. END CStr.