#include #include #include "action.h" #include "block.h" void action_perform(action_t *action, block_t *block, config_t *config) { for (size_t i = 0; i < action->length; i++) { const char *key = action->parts[i].key; const char *value = action->parts[i].value; if (strncmp(key, "block.", 6)) abort(); block_t *target = NULL; for (size_t i = 0; i < config->n_blocks; i++) { if (!strcmp(key + 6, config->blocks[i]->label)) { target = config->blocks[i]; break; } } if (target == NULL) abort(); block_change(target, key, value); } } int action_validate(action_t *action, config_t *config) { // TODO return 0; } void action_free(action_t *action) { for (size_t i = 0; i < action->length; i++) { free(action->parts[i].key); free(action->parts[i].value); } free(action->parts); }