sdlStrnlen function

int sdlStrnlen(
  1. String? str,
  2. int maxlen
)

This works exactly like strnlen() but doesn't require access to a C runtime.

Counts up to a maximum of maxlen bytes in str, excluding the null terminator.

If you need the length of a UTF-8 string, consider using SDL_utf8strnlen().

\param str The null-terminated string to read. Must not be NULL. \param maxlen The maximum amount of bytes to count. \returns The length (in bytes, excluding the null terminator) of src 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_strlen \sa SDL_utf8strlen \sa SDL_utf8strnlen

extern SDL_DECLSPEC size_t SDLCALL SDL_strnlen(const char *str, size_t maxlen)

Implementation

int sdlStrnlen(String? str, int maxlen) {
  final sdlStrnlenLookupFunction = libSdl3.lookupFunction<
      Uint32 Function(Pointer<Utf8> str, Uint32 maxlen),
      int Function(Pointer<Utf8> str, int maxlen)>('SDL_strnlen');
  final strPointer = str != null ? str.toNativeUtf8() : nullptr;
  final result = sdlStrnlenLookupFunction(strPointer, maxlen);
  calloc.free(strPointer);
  return result;
}