From e85ad7414c063e42296f7ef4e202829567484ac0 Mon Sep 17 00:00:00 2001 From: Federico Angelilli Date: Tue, 12 Nov 2024 01:44:14 +0100 Subject: Fix config and blocks --- src/blocks/ram.c | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) (limited to 'src/blocks/ram.c') diff --git a/src/blocks/ram.c b/src/blocks/ram.c index 5a95013..8c21b21 100644 --- a/src/blocks/ram.c +++ b/src/blocks/ram.c @@ -7,6 +7,11 @@ #include "../any_log.h" +typedef struct { + block_text_t block; + char *format; +} block_ram_t; + static void block_ram_update(block_t *block) { FILE *meminfo = fopen("/proc/meminfo", "rb"); @@ -47,33 +52,38 @@ static void block_ram_update(block_t *block) NULL, }; - free(block->text.text); - block->text.text = strformat(block->state, '%', ram_formats, ram_values); - assert(block->text.text != NULL); + block_ram_t *ram = (block_ram_t *)block; + free(ram->block.text); + + ram->block.text = strformat(ram->format, '%', ram_formats, ram_values); + assert(ram->block.text != NULL); } -static void block_ram_finalize(block_t *block) +static void block_ram_clean(block_t *block) { - free(block->state); + block_ram_t *ram = (block_ram_t *)block; + free(ram->format); } static bool block_ram_validate(block_t *block, const block_scheme_t *scheme) { - if (block->text.text == NULL) { + block_ram_t *ram = (block_ram_t *)block; + + if (ram->block.text == NULL) { log_error("Block '%s' requires key '%s'", block->label, "text"); return false; } - if (strstr(block->text.text, "%{") == NULL) { + if (strstr(ram->block.text, "%{") == NULL) { log_warn("Block '%s' does not use any ram variable", block->label); - block->update_cb = NULL; + block->update_fn = NULL; log_debug("Disabled updates for block '%s'", block->label); return true; } - block->state = block->text.text; - block->text.text = NULL; + ram->format = ram->block.text; + ram->block.text = NULL; return true; } @@ -85,10 +95,10 @@ const block_scheme_t block_ram_scheme = { .tv_sec = 1, .tv_nsec = 0, }, - .update_cb = block_ram_update, - .finalize_cb = block_ram_finalize, + .update_fn = block_ram_update, + .clean_fn = block_ram_clean, }, - .size = sizeof(char *), + .size = sizeof(block_ram_t), .entries = NULL, .validate = block_ram_validate, }; -- cgit v1.2.3