summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVito Caputo <vcaputo@pengaru.com>2022-03-19 09:55:11 -0700
committerVito Caputo <vcaputo@pengaru.com>2022-03-19 09:55:11 -0700
commit1f3640f85c4fb811aaad9b500298c8a585a10ad8 (patch)
tree048c039f0c5bd48e888a40e76d7dee72710cb670
parent4960649f21582a74e949a62b8fde8067852ffab7 (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.c9
-rw-r--r--src/til_settings.h1
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);
© All Rights Reserved