sdlStrcmp function
Compare two null-terminated UTF-8 strings.
Due to the nature of UTF-8 encoding, this will work with Unicode strings, since effectively this function just compares bytes until it hits a null-terminating character. Also due to the nature of UTF-8, this can be used with SDL_qsort() to put strings in (roughly) alphabetical order.
\param str1 the first string to compare. NULL is not permitted! \param str2 the second string to compare. NULL is not permitted! \returns less than zero if str1 is "less than" str2, greater than zero if str1 is "greater than" str2, and zero if the strings match exactly.
\threadsafety It is safe to call this function from any thread.
\since This function is available since SDL 3.1.3.
extern SDL_DECLSPEC int SDLCALL SDL_strcmp(const char *str1, const char *str2)
Implementation
int sdlStrcmp(String? str1, String? str2) {
final sdlStrcmpLookupFunction = libSdl3.lookupFunction<
Int32 Function(Pointer<Utf8> str1, Pointer<Utf8> str2),
int Function(Pointer<Utf8> str1, Pointer<Utf8> str2)>('SDL_strcmp');
final str1Pointer = str1 != null ? str1.toNativeUtf8() : nullptr;
final str2Pointer = str2 != null ? str2.toNativeUtf8() : nullptr;
final result = sdlStrcmpLookupFunction(str1Pointer, str2Pointer);
calloc.free(str1Pointer);
calloc.free(str2Pointer);
return result;
}