diff options
author | Vito Caputo <vcaputo@pengaru.com> | 2023-05-08 00:11:09 -0700 |
---|---|---|
committer | Vito Caputo <vcaputo@pengaru.com> | 2023-05-11 15:18:02 -0700 |
commit | 1a8abe80dabd6b723897fc507808db30b126b3a4 (patch) | |
tree | d60a084d6b6b44b9fffe76864e00ed6d7176f2ad /src/main.c | |
parent | a409d9fd5d861d52dca0e4ed33416a49b00ae2d9 (diff) |
til_settings: rework setting get/add for bare values
The core thing here is rather than turning a bare value into a
key as I was doing before - we just leave the bare value as a
bare value and its setting must be located positionally via
get_value_by_idx since there's no key.
Existing callers that used to get_key() positionally now
get_value_by_idx() positionally all the same, except it's the
value instead of the key. This is mostly done for things like
the module or fb name at the front of a settings instance.
The impetus for this change is partially just
cosmetic/ergonomics, but it's also rather strange for what's
really a key-less value to be treated as a value-less key. It
was also awkward to talk/reason about on the road to recursive
settings where bare values would be supported as a standalone
settings instance if properly escaped...
This also adds unescaping of keys, and adds a dependency on the
somewhat linux-specific open_memstream() which may need changing
in the future (see comments).
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -83,7 +83,7 @@ static int setup_video(const til_settings_t *settings, til_setting_t **res_setti til_setting_t *setting; const char *video; - video = til_settings_get_key(settings, 0, &setting); + video = til_settings_get_value_by_idx(settings, 0, &setting); if (!video || !setting->desc) { til_setting_desc_t *desc; const char *values[] = { @@ -377,8 +377,8 @@ int main(int argc, const char *argv[]) exit_if(r && print_setup_as_args(&setup, !rototiller.args.gogogo) < 0, "unable to print setup"); - exit_if(!(rototiller.module = til_lookup_module(til_settings_get_key(setup.module_settings, 0, NULL))), - "unable to lookup module from settings \"%s\"", til_settings_get_key(setup.module_settings, 0, NULL)); + exit_if(!(rototiller.module = til_lookup_module(til_settings_get_value_by_idx(setup.module_settings, 0, NULL))), + "unable to lookup module from settings \"%s\"", til_settings_get_value_by_idx(setup.module_settings, 0, NULL)); exit_if((r = til_fb_new(fb_ops, setup.video_setup, NUM_FB_PAGES, &rototiller.fb)) < 0, "unable to create fb: %s", strerror(-r)); |