mirror of
https://github.com/bkaradzic/bx.git
synced 2026-02-17 20:52:37 +01:00
Added .ini settings utility.
This commit is contained in:
@@ -333,9 +333,9 @@ namespace bx
|
||||
return strCat(_dst, _dstSize, _str.getPtr(), min(_str.getLength(), _num) );
|
||||
}
|
||||
|
||||
inline const char* strFind(const char* _str, int32_t _max, char _ch)
|
||||
inline const char* strFindUnsafe(const char* _str, int32_t _len, char _ch)
|
||||
{
|
||||
for (int32_t ii = 0, len = strLen(_str, _max); ii < len; ++ii)
|
||||
for (int32_t ii = 0; ii < _len; ++ii)
|
||||
{
|
||||
if (_str[ii] == _ch)
|
||||
{
|
||||
@@ -346,14 +346,19 @@ namespace bx
|
||||
return NULL;
|
||||
}
|
||||
|
||||
inline const char* strFind(const char* _str, int32_t _max, char _ch)
|
||||
{
|
||||
return strFindUnsafe(_str, strLen(_str, _max), _ch);
|
||||
}
|
||||
|
||||
const char* strFind(const StringView& _str, char _ch)
|
||||
{
|
||||
return strFind(_str.getPtr(), _str.getLength(), _ch);
|
||||
}
|
||||
|
||||
inline const char* strRFind(const char* _str, int32_t _max, char _ch)
|
||||
inline const char* strRFindUnsafe(const char* _str, int32_t _len, char _ch)
|
||||
{
|
||||
for (int32_t ii = strLen(_str, _max); 0 <= ii; --ii)
|
||||
for (int32_t ii = _len; 0 <= ii; --ii)
|
||||
{
|
||||
if (_str[ii] == _ch)
|
||||
{
|
||||
@@ -364,6 +369,11 @@ namespace bx
|
||||
return NULL;
|
||||
}
|
||||
|
||||
inline const char* strRFind(const char* _str, int32_t _max, char _ch)
|
||||
{
|
||||
return strRFindUnsafe(_str, strLen(_str, _max), _ch);
|
||||
}
|
||||
|
||||
const char* strRFind(const StringView& _str, char _ch)
|
||||
{
|
||||
return strRFind(_str.getPtr(), _str.getLength(), _ch);
|
||||
@@ -430,6 +440,44 @@ namespace bx
|
||||
);
|
||||
}
|
||||
|
||||
StringView strLTrim(const StringView& _str, const StringView& _chars)
|
||||
{
|
||||
const char* ptr = _str.getPtr();
|
||||
const char* chars = _chars.getPtr();
|
||||
const uint32_t charsLen = _chars.getLength();
|
||||
for (uint32_t ii = 0, len = _str.getLength(); ii < len; ++ii)
|
||||
{
|
||||
if (NULL == strFindUnsafe(chars, charsLen, ptr[ii]) )
|
||||
{
|
||||
return StringView(ptr + ii, len-ii);
|
||||
}
|
||||
}
|
||||
|
||||
return StringView();
|
||||
}
|
||||
|
||||
StringView strRTrim(const StringView& _str, const StringView& _chars)
|
||||
{
|
||||
const char* ptr = _str.getPtr();
|
||||
const char* chars = _chars.getPtr();
|
||||
const uint32_t charsLen = _chars.getLength();
|
||||
|
||||
for (int32_t len = _str.getLength(), ii = len-1; 0 <= ii; --ii)
|
||||
{
|
||||
if (NULL == strFindUnsafe(chars, charsLen, ptr[ii]) )
|
||||
{
|
||||
return StringView(ptr, ii);
|
||||
}
|
||||
}
|
||||
|
||||
return StringView();
|
||||
}
|
||||
|
||||
StringView strTrim(const StringView& _str, const StringView& _chars)
|
||||
{
|
||||
return strLTrim(strRTrim(_str, _chars), _chars);
|
||||
}
|
||||
|
||||
const char* strnl(const char* _str)
|
||||
{
|
||||
for (; '\0' != *_str; _str += strLen(_str, 1024) )
|
||||
|
||||
Reference in New Issue
Block a user