sdlWcsnlen function
This works exactly like wcsnlen() but doesn't require access to a C runtime.
Counts up to a maximum of maxlen
wchar_t values in wstr
, excluding the
null terminator.
Like SDL_strnlen only counts bytes and not codepoints in a UTF-8 string, this counts wchar_t values in a string, even if the string's encoding is of variable width, like UTF-16.
Also be aware that wchar_t is different sizes on different platforms (4 bytes on Linux, 2 on Windows, etc).
Also, maxlen
is a count of wide characters, not bytes!
\param wstr The null-terminated wide string to read. Must not be NULL.
\param maxlen The maximum amount of wide characters to count.
\returns the length (in wide characters, excluding the null terminator) of
wstr
but never more than maxlen
.
\threadsafety It is safe to call this function from any thread.
\since This function is available since SDL 3.1.3.
\sa SDL_wcslen \sa SDL_utf8strlen \sa SDL_utf8strnlen
extern SDL_DECLSPEC size_t SDLCALL SDL_wcsnlen(const wchar_t *wstr, size_t maxlen)
Implementation
int sdlWcsnlen(Pointer<Int16> wstr, int maxlen) {
final sdlWcsnlenLookupFunction = libSdl3.lookupFunction<
Uint32 Function(Pointer<Int16> wstr, Uint32 maxlen),
int Function(Pointer<Int16> wstr, int maxlen)>('SDL_wcsnlen');
return sdlWcsnlenLookupFunction(wstr, maxlen);
}