aboutsummaryrefslogtreecommitdiff
path: root/src/blocks/group.c
diff options
context:
space:
mode:
authorFederico Angelilli <code@fedang.net>2024-11-24 19:39:19 +0100
committerFederico Angelilli <code@fedang.net>2024-11-24 19:39:19 +0100
commitdef1e18d86579cf77649d1b8aa596d0877b822bb (patch)
tree0e6deebdef1575b4b74472bc4367b294f7551753 /src/blocks/group.c
parent76ad6b0d404d40f08b73d90ac5f66564c29feb95 (diff)
Refactor block_change_fn
Diffstat (limited to 'src/blocks/group.c')
-rw-r--r--src/blocks/group.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/blocks/group.c b/src/blocks/group.c
index febefe4..eeac132 100644
--- a/src/blocks/group.c
+++ b/src/blocks/group.c
@@ -1,4 +1,5 @@
#include "../block.h"
+#include "../any_log.h"
static void block_group_init(block_t *block)
{
@@ -11,6 +12,17 @@ static void block_group_clean(block_t *block)
free(group->children);
}
+static config_status_t block_group_change(block_t *block, config_t *config, const char *key, const char *value)
+{
+ if (!strcmp(key, "blocks")) {
+ log_error("Block '%s' option '%s' cannot be changed", block->label, "blocks");
+ return CONFIG_INVALID;
+ }
+
+ extern const config_entry_t block_group_entries[];
+ return config_read_entry(block_group_entries, block, NULL, "block", block->label, key, value);
+}
+
const block_scheme_t block_group_scheme = {
.name = "group",
.entries = NULL,
@@ -18,4 +30,5 @@ const block_scheme_t block_group_scheme = {
.init_fn = block_group_init,
.clean_fn = block_group_clean,
.validate_fn = NULL,
+ .change_fn = block_group_change,
};