diff options
| author | Jeroen van Rijn <Kelimion@users.noreply.github.com> | 2023-11-22 14:13:57 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-11-22 14:13:57 +0100 |
| commit | 8a56bb3b5f185b5d08b5fee3daac7be796fefdcc (patch) | |
| tree | 4d4c42c8ee736f3d074060c5556841dc62d3e4c0 /src/string.cpp | |
| parent | 37e79f9cca3e8331876de59ba724f05bf8c79139 (diff) | |
| parent | 0ca39c70a51b6f8236c30e010af045303739dbeb (diff) | |
Merge pull request #2944 from Kelimion/microarch-help
Add -microarch:?
Diffstat (limited to 'src/string.cpp')
| -rw-r--r-- | src/string.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/string.cpp b/src/string.cpp index 9d7ff7b89..9fb933b1b 100644 --- a/src/string.cpp +++ b/src/string.cpp @@ -10,6 +10,10 @@ struct String { return text[i]; } }; +struct String_Iterator { + String const &str; + isize pos; +}; // NOTE(bill): used for printf style arguments #define LIT(x) ((int)(x).len), (x).text #if defined(GB_COMPILER_MSVC) && _MSC_VER < 1700 @@ -201,6 +205,26 @@ gb_internal gb_inline String string_trim_starts_with(String const &s, String con } +gb_internal String string_split_iterator(String_Iterator *it, const char sep) { + isize start = it->pos; + isize end = it->str.len; + + if (start == end) { + return str_lit(""); + } + + isize i = start; + for (; i < it->str.len; i++) { + if (it->str[i] == sep) { + String res = substring(it->str, start, i); + it->pos += res.len + 1; + return res; + } + } + it->pos = end; + return substring(it->str, start, end); +} + gb_internal gb_inline isize string_extension_position(String const &str) { isize dot_pos = -1; isize i = str.len; |