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;
+}