aboutsummaryrefslogtreecommitdiff
path: root/src/config.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/config.c')
-rw-r--r--src/config.c40
1 files changed, 13 insertions, 27 deletions
diff --git a/src/config.c b/src/config.c
index 9a2bc42..ff587da 100644
--- a/src/config.c
+++ b/src/config.c
@@ -9,6 +9,7 @@
#include "config.h"
#include "util.h"
#include "block.h"
+#include "blocks/info.h"
#define ANY_INI_IMPLEMENT
#include "any_ini.h"
@@ -24,7 +25,7 @@ static const config_entry_t bar_entries[] = {
{ "height", CONFIG_UINT, offsetof(config_t, height) },
{ "font", CONFIG_STRING, offsetof(config_t, font) },
{ "monitor", CONFIG_STRING, offsetof(config_t, monitor) },
- { "override_redirect", CONFIG_BOOL, offsetof(config_t, override_redirect) },
+ { "override-redirect", CONFIG_BOOL, offsetof(config_t, override_redirect) },
{ "background", CONFIG_COLOR, offsetof(config_t, background) },
{ 0 },
};
@@ -41,28 +42,6 @@ static const config_entry_t block_entries[] = {
{ 0 },
};
-static const config_entry_t block_text_entries[] = {
- { "text", CONFIG_STRING, offsetof(block_t, text.text) },
- { "text-color", CONFIG_COLOR, offsetof(block_t, text.text_color) },
- { "text-size", CONFIG_INT, offsetof(block_t, text.text_size) },
-};
-
-static const config_block_t block_infos[] = {
- {
- .type_name = "text",
- .type_size = 0,
- .base = { 0 },
- .entries = block_text_entries,
- .apply = NULL,
- },
- //{
- // "group",
- // 0,
- // block_group_entries,
- //},
- { 0 }
-};
-
static bool config_read_string(const char *value, char **result)
{
if (value == NULL)
@@ -325,15 +304,22 @@ void config_read(config_t *config, FILE *file)
goto skip_pair;
}
+
+ // FIXME: Move this somewhere else
+ const config_block_t block_infos[] = {
+ block_text_info,
+ block_group_info,
+ { 0 }
+ };
+
for (int i = 0; block_infos[i].type_name != NULL; i++) {
if (strcmp(block_infos[i].type_name, value))
continue;
info = &block_infos[i];
memcpy(block, &info->base, sizeof(block_t));
- result = !strcmp(value, "text")
- ? block
- : malloc(info->type_size);
-
+ block->info = result = !strcmp(value, "text")
+ ? block
+ : malloc(info->type_size);
goto skip_pair;
}