aboutsummaryrefslogtreecommitdiff
path: root/src/block.c
diff options
context:
space:
mode:
authorFederico Angelilli <code@fedang.net>2024-11-16 00:07:14 +0100
committerFederico Angelilli <code@fedang.net>2024-11-16 00:07:14 +0100
commit9843c8735a5a886252858a848c473cb877875ef4 (patch)
treea78faeb471f8547c5f7982e04a55595c742bdded /src/block.c
parente85ad7414c063e42296f7ef4e202829567484ac0 (diff)
Link scheme with block
Diffstat (limited to 'src/block.c')
-rw-r--r--src/block.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/block.c b/src/block.c
index 6a7311e..c844e9b 100644
--- a/src/block.c
+++ b/src/block.c
@@ -5,6 +5,21 @@
#include "util.h"
#include "any_log.h"
+extern const block_scheme_t block_text_scheme;
+extern const block_scheme_t block_group_scheme;
+extern const block_scheme_t block_ram_scheme;
+extern const block_scheme_t block_fs_scheme;
+extern const block_scheme_t block_date_scheme;
+
+const block_scheme_t *block_schemes[] = {
+ &block_text_scheme,
+ &block_group_scheme,
+ &block_ram_scheme,
+ &block_fs_scheme,
+ &block_date_scheme,
+ NULL,
+};
+
void block_update(block_t *block)
{
if (block->update_fn != NULL) {
@@ -34,7 +49,8 @@ void block_update(block_t *block)
void block_free(block_t *block)
{
free(block->label);
- assert(block->clean_fn != NULL);
- block->clean_fn(block);
+ assert(block->scheme != NULL);
+ assert(block->scheme->clean_fn != NULL);
+ block->scheme->clean_fn(block);
free(block);
}