mirror of
https://github.com/bkaradzic/bx.git
synced 2026-02-19 05:23:00 +01:00
Cleanup.
This commit is contained in:
@@ -215,8 +215,11 @@ namespace bx
|
||||
/// Skip non-whitespace.
|
||||
const char* strnws(const char* _str);
|
||||
|
||||
/// Skip word.
|
||||
const char* strword(const char* _str);
|
||||
/// Returns pointer to first character after word.
|
||||
const char* strSkipWord(const char* _str, int32_t _max = INT32_MAX);
|
||||
|
||||
/// Returns StringView of word or empty.
|
||||
StringView strWord(const StringView& _str);
|
||||
|
||||
/// Find matching block.
|
||||
const char* strmb(const char* _str, char _open, char _close);
|
||||
|
||||
@@ -531,12 +531,19 @@ namespace bx
|
||||
return _str;
|
||||
}
|
||||
|
||||
const char* strword(const char* _str)
|
||||
const char* strSkipWord(const char* _str, int32_t _max)
|
||||
{
|
||||
for (char ch = *_str++; isAlphaNum(ch) || '_' == ch; ch = *_str++) {};
|
||||
for (char ch = *_str++; 0 < _max && (isAlphaNum(ch) || '_' == ch); ch = *_str++, --_max) {};
|
||||
return _str-1;
|
||||
}
|
||||
|
||||
StringView strWord(const StringView& _str)
|
||||
{
|
||||
const char* ptr = _str.getPtr();
|
||||
const char* term = strSkipWord(ptr, _str.getLength() );
|
||||
return StringView(ptr, term);
|
||||
}
|
||||
|
||||
const char* strmb(const char* _str, char _open, char _close)
|
||||
{
|
||||
int count = 0;
|
||||
|
||||
@@ -389,3 +389,9 @@ TEST_CASE("Trim", "")
|
||||
bx::FilePath uri("/555333/podmac/");
|
||||
REQUIRE(0 == bx::strCmp(bx::strTrim(uri.getPath(), "/"), "555333/podmac") );
|
||||
}
|
||||
|
||||
TEST_CASE("strWord", "")
|
||||
{
|
||||
REQUIRE(bx::strWord(" abvgd-1389.0").isEmpty() );
|
||||
REQUIRE(0 == bx::strCmp(bx::strWord("abvgd-1389.0"), "abvgd") );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user