| 123456789101112131415161718192021222324 |
- IMPLEMENTATION MODULE SDLUtils ;
- FROM SYSTEM IMPORT ADDRESS, ADR;
- FROM SDL2 IMPORT SDL_GetError;
- FROM libc IMPORT strlen, strncpy;
- PROCEDURE CStrToM2 (src: ADDRESS; VAR dst: ARRAY OF CHAR);
- VAR n: CARDINAL;
- BEGIN
- IF HIGH(dst) < 0 THEN RETURN END;
- IF src = NIL THEN dst[0] := 0C; RETURN END;
- (* strlen returns CSIZE_T; VAL converts without range check. *)
- n := VAL(CARDINAL, strlen(src));
- IF n > HIGH(dst) THEN n := HIGH(dst) END;
- strncpy(ADR(dst), src, n);
- IF n <= HIGH(dst) THEN dst[n] := 0C END
- END CStrToM2;
- PROCEDURE GetErrorString (VAR buf: ARRAY OF CHAR);
- BEGIN
- CStrToM2(SDL_GetError(), buf)
- END GetErrorString;
- END SDLUtils.
|