SDK Defold String Utils API documentation
Size-bounded string formating. Resulting string is guaranteed to be 0-terminated.
buffer - Buffer to write to
count - Size of the buffer
format - String format
Size - of the resulting string (excl terminating 0) if it fits, -1 otherwise
char path[64];
dmSnPrintf(path, 64, PATH_FORMAT, filename);
Tokenize strings. Equivalent to BSD strsep_r. Thread-save version of strtok.
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
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
char* string = strdup("a b c");
char* s, *last;
s = dmStrTok(string, " ", &last); // a
s = dmStrTok(0, " ", &last); // b
s = dmStrTok(0, " ", &last); // c
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.
dst - Destination string
src - Source string
size - Max size
Total - length of the created string
const char* src = "foo";
char dst[3];
dmStrlCpy(dst, src, sizeof(dst)); // dst = "fo"
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.
dst - Destination string
src - Source string
size - Max size
Total - length of the created string
const char* src = "foo";
char dst[3] = { 0 };
dmStrlCat(dst, src, sizeof(dst)); // dst = "fo"
Case-insensitive string comparison
s1 - First string to compare
s2 - Second string to compare
an - integer greater than, equal to, or less than 0 after lexicographically comparison of s1 and s2
dmStrCaseCmp("a", "b"); // <0
dmStrCaseCmp("b", "a"); // >0
dmStrCaseCmp("a", "a"); // 0
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.
dst - Destination string that carries the error message
size - Max size of destination string in bytes
a - null-terminated error message
char buf[128];
dmStrError(buf, sizeof(buf), ENOENT); // buf => "No such file or directory"