DStrings

SDK Defold String Utils API documentation

dmSnPrintf(buffer, count, format)

Size-bounded string formating.

Size-bounded string formating. Resulting string is guaranteed to be 0-terminated.

PARAMETERS

buffer - Buffer to write to

count - Size of the buffer

format - String format

RETURN

Size - of the resulting string (excl terminating 0) if it fits, -1 otherwise

EXAMPLES

char path[64];
dmSnPrintf(path, 64, PATH_FORMAT, filename);


dmStrTok(string, delim, lasts)

Tokenize strings.

Tokenize strings. Equivalent to BSD strsep_r. Thread-save version of strtok.

PARAMETERS

string - Pointer to string. For the first call string is the string to tokenize. Subsequent should pass NULL.

delim - Delimiter string

lasts - Internal state pointer

RETURN

Each - call to dmStrTok() returns a pointer to a null-terminated string containing the next token. This string does not include the delimiting byte. If no more tokens are found, dmStrTok() returns NULL

EXAMPLES

char* string = strdup("a b c");
char* s, *last;
s = dmStrTok(string, " ", &last); // a
s = dmStrTok(0, " ", &last); // b
s = dmStrTok(0, " ", &last); // c


dmStrlCpy(dst, src, size)

Size-bounded string copying.

Size-bounded string copying. Same as OpenBSD 2.4 strlcpy. Copy src to string dst of size siz. At most siz-1 characters will be copied. Always NUL terminates (unless siz == 0).Returns strlen(src); if retval >= siz, truncation occurred.

PARAMETERS

dst - Destination string

src - Source string

size - Max size

RETURN

Total - length of the created string

EXAMPLES

const char* src = "foo";
char dst[3];
dmStrlCpy(dst, src, sizeof(dst)); // dst = "fo"


dmStrlCat(dst, src, size)

Size-bounded string concatenation.

Size-bounded string concatenation. Same as OpenBSD 2.4 strlcat. Appends src to string dst of size siz (unlike strncat, siz is the full size of dst, not space left). At most siz-1 characters will be copied. Always NUL terminates (unless siz == 0). Returns strlen(src); if retval >= siz, truncation occurred.

PARAMETERS

dst - Destination string

src - Source string

size - Max size

RETURN

Total - length of the created string

EXAMPLES

const char* src = "foo";
char dst[3] = { 0 };
dmStrlCat(dst, src, sizeof(dst)); // dst = "fo"


dmStrCaseCmp(s1, s2)

Case-insensitive string comparison

Case-insensitive string comparison

PARAMETERS

s1 - First string to compare

s2 - Second string to compare

RETURN

an - integer greater than, equal to, or less than 0 after lexicographically comparison of s1 and s2

EXAMPLES

dmStrCaseCmp("a", "b"); // <0
dmStrCaseCmp("b", "a"); // >0
dmStrCaseCmp("a", "a"); // 0


dmStrError(dst, size)

Error code to string representation

Error code to string representation. Wrapper for thread-safe strerror_s/r variants. If the size of the buffer is too small, the message will be truncated to fit the buffer. If the buffer is null, or if size is zero, nothing will happen.

PARAMETERS

dst - Destination string that carries the error message

size - Max size of destination string in bytes

RETURN

a - null-terminated error message

EXAMPLES

char buf[128];
dmStrError(buf, sizeof(buf), ENOENT); // buf => "No such file or directory"