33 static constexpr plUInt32 GetStringElementCount(
const T* pString);
42 static plUInt32 GetStringElementCount(
const T* pString,
const T* pStringEnd);
50 static void GetCharacterAndElementCount(
const char* szUtf8, plUInt32& ref_uiCharacterCount, plUInt32& ref_uiElementCount,
const char* pStringEnd =
plUnicodeUtils::GetMaxStringEnd<char>());
69 static plUInt32 ToUpperChar(plUInt32 uiChar);
72 static plUInt32 ToLowerChar(plUInt32 uiChar);
89 static plInt32 CompareChars(plUInt32 uiCharacter1, plUInt32 uiCharacter2);
96 static plInt32 CompareChars(
const char* szUtf8Char1,
const char* szUtf8Char2);
103 static plInt32 CompareChars_NoCase(plUInt32 uiCharacter1, plUInt32 uiCharacter2);
110 static plInt32 CompareChars_NoCase(
const char* szUtf8Char1,
const char* szUtf8Char2);
170 static plInt32 snprintf(
char* szDst, plUInt32 uiDstSize,
const char* szFormat, ...);
181 static plInt32 vsnprintf(
char* szDst, plUInt32 uiDstSize,
const char* szFormat, va_list szAp);
217 static const char* SkipCharacters(
const char* szString,
PL_CHARACTER_FILTER skipCharacterCB,
bool bAlwaysSkipFirst =
false);
223 static const char* FindWordEnd(
const char* szString,
PL_CHARACTER_FILTER isDelimiterCB,
bool bAlwaysSkipFirst =
true);
232 static void Trim(
const char*& ref_pString,
const char*& ref_pStringEnd,
const char* szTrimCharsStart,
const char* szTrimCharsEnd);
236 static bool IsWhiteSpace(plUInt32 uiChar);
239 static bool IsDecimalDigit(plUInt32 uiChar);
242 static bool IsHexDigit(plUInt32 uiChar);
245 static bool IsWordDelimiter_English(plUInt32 uiChar);
248 static bool IsIdentifierDelimiter_C_Code(plUInt32 uiChar);
264 static plResult FindUIntAtTheEnd(
const char* szString, plUInt32& out_uiValue, plUInt32* pStringLengthBeforeUInt =
nullptr);
267 static void OutputFormattedInt(
char* szOutputBuffer, plUInt32 uiBufferSize, plUInt32& ref_uiWritePos, plInt64 value, plUInt8 uiWidth,
bool bPadZeros, plUInt8 uiBase);
269 static void OutputFormattedUInt(
char* szOutputBuffer, plUInt32 uiBufferSize, plUInt32& ref_uiWritePos, plUInt64 value, plUInt8 uiWidth,
bool bPadZeros, plUInt8 uiBase,
bool bUpperCase);
271 static void OutputFormattedFloat(
char* szOutputBuffer, plUInt32 uiBufferSize, plUInt32& ref_uiWritePos,
double value, plUInt8 uiWidth,
bool bPadZeros, plInt8 iPrecision,
bool bScientific,
bool bRemoveTrailingZeroes =
false);
static void UpdateStringEnd(const T *pStringStart, const T *&ref_pStringEnd)
Recomputes the end pointer of a string (szStringEnd), if that is currently set to plMaxStringEnd....
static bool IsNullOrEmpty(const T *pString, const T *pStringEnd)
Returns true, if the given string is a nullptr pointer, is equal to its end or a string that immediat...