Mercurial > repos > blastem
diff config.c @ 1485:369da70ee2c2 nuklear_ui
Filter file list in Nuklear UI
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 26 Nov 2017 18:33:36 -0800 |
parents | 4490c9c12272 |
children | 637fbc3b5063 |
line wrap: on
line diff
--- a/config.c Sun Nov 26 17:33:39 2017 -0800 +++ b/config.c Sun Nov 26 18:33:36 2017 -0800 @@ -155,3 +155,23 @@ //this will never get reached, but the compiler doesn't know that. Let's make it happy return NULL; } + +char **get_extension_list(tern_node *config, uint32_t *num_exts_out) +{ + char *ext_filter = strdup(tern_find_path_default(config, "ui\0extensions\0", (tern_val){.ptrval = "bin gen md smd sms gg"}, TVAL_PTR).ptrval); + uint32_t num_exts = 0, ext_storage = 5; + char **ext_list = malloc(sizeof(char *) * ext_storage); + char *cur_filter = ext_filter; + while (*cur_filter) + { + if (num_exts == ext_storage) { + ext_storage *= 2; + ext_list = realloc(ext_list, sizeof(char *) * ext_storage); + } + ext_list[num_exts++] = cur_filter; + cur_filter = split_keyval(cur_filter); + } + free(ext_filter); + *num_exts_out = num_exts; + return ext_list; +}