diff --git a/Sources/Plasma/CoreLib/plString.cpp b/Sources/Plasma/CoreLib/plString.cpp index 7ca66336..f32aeb74 100644 --- a/Sources/Plasma/CoreLib/plString.cpp +++ b/Sources/Plasma/CoreLib/plString.cpp @@ -48,6 +48,23 @@ static inline size_t u16slen(const uint16_t *ustr, size_t max) } #endif +/* Provide strnlen and wcsnlen for MinGW which doesn't have them */ +#ifdef __MINGW32__ +size_t strnlen(const char *s, size_t maxlen) +{ + size_t len; + for (len = 0; len < maxlen && *s; len++, s++) { } + return len; +} + +size_t wcsnlen(const wchar_t *s, size_t maxlen) +{ + size_t len; + for (len = 0; len < maxlen && *s; len++, s++) { } + return len; +} +#endif + #define BADCHAR_REPLACEMENT (0xFFFDul) void plString::IConvertFromUtf8(const char *utf8, size_t size, bool steal) diff --git a/Sources/Plasma/CoreLib/plString.h b/Sources/Plasma/CoreLib/plString.h index c8a46774..e83ab988 100644 --- a/Sources/Plasma/CoreLib/plString.h +++ b/Sources/Plasma/CoreLib/plString.h @@ -121,7 +121,7 @@ class plString #pragma warning(push) #pragma warning(disable : 4146) enum { - kSizeAuto = (size_t)(-2147483648L) + kSizeAuto = (size_t)(-2147483648UL) }; #pragma warning(pop)