aboutsummaryrefslogtreecommitdiff
path: root/src/config.c
diff options
context:
space:
mode:
authorFederico Angelilli <code@fedang.net>2024-11-18 23:29:26 +0100
committerFederico Angelilli <code@fedang.net>2024-11-18 23:29:26 +0100
commitca2cf9265e2030a9098f18315e3addde7f518192 (patch)
tree52c4663887ad50cea1bbc44484300bb2dafacc9a /src/config.c
parent38637de243c569c0d6aaff455752e617c30c5866 (diff)
Refactor
Diffstat (limited to 'src/config.c')
-rw-r--r--src/config.c17
1 files changed, 5 insertions, 12 deletions
diff --git a/src/config.c b/src/config.c
index 3f7da08..615c833 100644
--- a/src/config.c
+++ b/src/config.c
@@ -385,7 +385,7 @@ void config_init(config_t *config)
bar->spacing = 10;
}
-void config_read(config_t *config, FILE *file)
+int config_read(config_t *config, FILE *file)
{
any_ini_stream_t ini;
any_ini_file_init(&ini, file);
@@ -531,10 +531,7 @@ skip_pair:
n_errors += errors;
} while ((section = any_ini_stream_next_section(&ini)) != NULL);
- if (n_errors > 0) {
- log_error("Config file contained %d errors", n_errors);
- exit(EXIT_FAILURE);
- }
+ return n_errors;
}
bool config_resolve_children(config_t *config, block_t *block)
@@ -595,7 +592,7 @@ error:
return false;
}
-block_t *config_resolve(config_t *config)
+int config_resolve(config_t *config, block_t **block)
{
int errors = 0;
block_group_t *bar = (block_group_t *)config->blocks[0];
@@ -609,12 +606,8 @@ block_t *config_resolve(config_t *config)
errors += !config_resolve_children(config, config->blocks[0]);
}
- if (errors > 0) {
- log_error("Config could not be resolved");
- exit(EXIT_FAILURE);
- }
-
- return config->blocks[0];
+ *block = config->blocks[0];
+ return errors;
}
void config_free(config_t *config)