mirror of
https://github.com/odin-lang/Odin.git
synced 2026-09-02 18:23:35 +00:00
string_split_iterator fix
This commit is contained in:
42
src/main.cpp
42
src/main.cpp
@@ -1455,12 +1455,8 @@ gb_internal bool parse_build_flags(Array<String> args) {
|
||||
GB_ASSERT(value.kind == ExactValue_String);
|
||||
String val = value.value_string;
|
||||
String_Iterator it = {val, 0};
|
||||
for (;;) {
|
||||
String pkg = string_split_iterator(&it, ',');
|
||||
if (pkg.len == 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
String pkg = {};
|
||||
while (string_split_iterator_next(&it, ',', &pkg)) {
|
||||
pkg = string_trim_whitespace(pkg);
|
||||
if (!string_is_valid_identifier(pkg)) {
|
||||
gb_printf_err("-%.*s '%.*s' must be a valid identifier\n", LIT(name), LIT(pkg));
|
||||
@@ -1478,12 +1474,8 @@ gb_internal bool parse_build_flags(Array<String> args) {
|
||||
GB_ASSERT(value.kind == ExactValue_String);
|
||||
String val = value.value_string;
|
||||
String_Iterator it = {val, 0};
|
||||
for (;;) {
|
||||
String attr = string_split_iterator(&it, ',');
|
||||
if (attr.len == 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
String attr = {};
|
||||
while (string_split_iterator_next(&it, ',', &attr)) {
|
||||
attr = string_trim_whitespace(attr);
|
||||
if (!string_is_valid_identifier(attr)) {
|
||||
gb_printf_err("-%.*s '%.*s' must be a valid identifier\n", LIT(name), LIT(attr));
|
||||
@@ -4166,9 +4158,8 @@ int main(int arg_count, char const **arg_ptr) {
|
||||
} else {
|
||||
String march_list = target_microarch_list[build_context.metrics.arch];
|
||||
String_Iterator it = {march_list, 0};
|
||||
for (;;) {
|
||||
String str = string_split_iterator(&it, ',');
|
||||
if (str == "") break;
|
||||
String str = {};
|
||||
while (string_split_iterator_next(&it, ',', &str)) {
|
||||
if (str == build_context.microarch) {
|
||||
// Found matching microarch
|
||||
print_microarch_list = false;
|
||||
@@ -4193,9 +4184,8 @@ int main(int arg_count, char const **arg_ptr) {
|
||||
String march_list = target_microarch_list[build_context.metrics.arch];
|
||||
String_Iterator it = {march_list, 0};
|
||||
|
||||
for (;;) {
|
||||
String str = string_split_iterator(&it, ',');
|
||||
if (str == "") break;
|
||||
String str = {};
|
||||
while (string_split_iterator_next(&it, ',', &str)) {
|
||||
if (str == default_march) {
|
||||
gb_printf("\t%.*s (default)\n", LIT(str));
|
||||
} else {
|
||||
@@ -4209,9 +4199,8 @@ int main(int arg_count, char const **arg_ptr) {
|
||||
String default_features = get_default_features();
|
||||
{
|
||||
String_Iterator it = {default_features, 0};
|
||||
for (;;) {
|
||||
String str = string_split_iterator(&it, ',');
|
||||
if (str == "") break;
|
||||
String str = {};
|
||||
while (string_split_iterator_next(&it, ',', &str)) {
|
||||
string_set_add(&build_context.target_features_set, str);
|
||||
}
|
||||
}
|
||||
@@ -4231,10 +4220,8 @@ int main(int arg_count, char const **arg_ptr) {
|
||||
|
||||
if (build_context.target_features_string.len != 0) {
|
||||
String_Iterator target_it = {build_context.target_features_string, 0};
|
||||
for (;;) {
|
||||
String item = string_split_iterator(&target_it, ',');
|
||||
if (item == "") break;
|
||||
|
||||
String item = {};
|
||||
while (string_split_iterator_next(&target_it, ',', &item)) {
|
||||
String stripped_item = item;
|
||||
if (*stripped_item.text == '+' || *stripped_item.text == '-') {
|
||||
stripped_item.text++;
|
||||
@@ -4251,9 +4238,8 @@ int main(int arg_count, char const **arg_ptr) {
|
||||
|
||||
String feature_list = target_features_list[build_context.metrics.arch];
|
||||
String_Iterator it = {feature_list, 0};
|
||||
for (;;) {
|
||||
String str = string_split_iterator(&it, ',');
|
||||
if (str == "") break;
|
||||
String str = {};
|
||||
while (string_split_iterator_next(&it, ',', &str)) {
|
||||
if (check_single_target_feature_is_valid(default_features, str)) {
|
||||
if (has_ansi_terminal_colours()) {
|
||||
gb_printf("\t%.*s\x1b[38;5;244m (implied by target microarch %.*s)\x1b[0m\n", LIT(str), LIT(march));
|
||||
|
||||
Reference in New Issue
Block a user