aboutsummaryrefslogtreecommitdiff
path: root/src/template.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/template.c')
-rw-r--r--src/template.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/template.c b/src/template.c
index 819fe92..c30d6ae 100644
--- a/src/template.c
+++ b/src/template.c
@@ -25,10 +25,13 @@ extern void tpl_reset() {
tpl_pool_func_used = 0;
}
-void tpl_register_func(char *key, struct tplfunc_frame *frame) {
- (void) key; // TODO: placeholder
- tpl_pool_func[tpl_pool_func_used] = calloc(1, sizeof(*tpl_pool_func[tpl_pool_func_used]));
- memcpy(tpl_pool_func[tpl_pool_func_used], frame, sizeof(*frame));
+void tpl_register_func(char *key, void *tplfunc_ptr, int argc) {
+ struct tplfunc_frame *frame = calloc(1, sizeof(*frame));
+ frame->key = strdup(key);
+ frame->argc = argc;
+ frame->func = tplfunc_ptr;
+
+ tpl_pool_func[tpl_pool_func_used] = frame;
tpl_pool_func_used++;
}