diff options
author | Vito Caputo <vcaputo@pengaru.com> | 2022-03-19 09:55:11 -0700 |
---|---|---|
committer | Vito Caputo <vcaputo@pengaru.com> | 2022-03-19 09:55:11 -0700 |
commit | 1f3640f85c4fb811aaad9b500298c8a585a10ad8 (patch) | |
tree | 048c039f0c5bd48e888a40e76d7dee72710cb670 | |
parent | 4960649f21582a74e949a62b8fde8067852ffab7 (diff) |
til_settings: introduce til_settings_reset_descs()
This is helpful for forcing underlying setup methods to
redescribe their settings, regardless of what a til_settings_t's
internal state is.
-rw-r--r-- | src/til_settings.c | 9 | ||||
-rw-r--r-- | src/til_settings.h | 1 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/til_settings.c b/src/til_settings.c index 30156d6..152060d 100644 --- a/src/til_settings.c +++ b/src/til_settings.c @@ -226,6 +226,15 @@ int til_settings_add_value(til_settings_t *settings, const char *key, const char } +void til_settings_reset_descs(til_settings_t *settings) +{ + assert(settings); + + for (unsigned i = 0; i < settings->num; i++) + settings->settings[i]->desc = NULL; +} + + /* apply the supplied setting description generators to the supplied settings */ /* returns 0 when input settings are complete */ /* returns 1 when input settings are incomplete, storing the next setting's description needed in *next_setting */ diff --git a/src/til_settings.h b/src/til_settings.h index 52535fe..0ca0c6f 100644 --- a/src/til_settings.h +++ b/src/til_settings.h @@ -36,6 +36,7 @@ til_settings_t * til_settings_free(til_settings_t *settings); const char * til_settings_get_value(const til_settings_t *settings, const char *key, const til_setting_t **res_setting); const char * til_settings_get_key(const til_settings_t *settings, unsigned pos, const til_setting_t **res_setting); int til_settings_add_value(til_settings_t *settings, const char *key, const char *value, const til_setting_desc_t *desc); +void til_settings_reset_descs(til_settings_t *settings); int til_settings_get_and_describe_value(const til_settings_t *settings, const til_setting_desc_t *desc, const char **res_value, const til_setting_t **res_setting, const til_setting_desc_t **res_desc); char * til_settings_as_arg(const til_settings_t *settings); int til_settings_apply_desc_generators(const til_settings_t *settings, const til_setting_desc_generator_t generators[], unsigned n_generators, void *setup_context, const til_setting_t **res_setting, const til_setting_desc_t **res_desc); |