aboutsummaryrefslogtreecommitdiff
path: root/src/template.c
diff options
context:
space:
mode:
authorDanny van Kooten <dannyvankooten@users.noreply.github.com>2020-03-12 14:19:24 +0100
committerDanny van Kooten <dannyvankooten@users.noreply.github.com>2020-03-12 14:19:24 +0100
commit616ff505f666d4d162e5d2d8c0238f8af6f79c40 (patch)
treebd475af1d3c7b200d38e6769d33c1bed77384d15 /src/template.c
parent83eee4d23f9da9e72238dd01d43b350ed5bc04f1 (diff)
downloadunja-616ff505f666d4d162e5d2d8c0238f8af6f79c40.tar.gz
unja-616ff505f666d4d162e5d2d8c0238f8af6f79c40.zip
add first template tests
Diffstat (limited to 'src/template.c')
-rw-r--r--src/template.c27
1 files changed, 14 insertions, 13 deletions
diff --git a/src/template.c b/src/template.c
index 5d400b9..1a3c049 100644
--- a/src/template.c
+++ b/src/template.c
@@ -89,24 +89,25 @@ mpc_parser_t *parser_init() {
return Template;
}
-void template(char *tmpl, struct hashmap *ctx) {
+char * template(char *tmpl, struct hashmap *ctx) {
mpc_parser_t *parser = parser_init();
mpc_result_t r;
- if (mpc_parse("input", tmpl, parser, &r)) {
- mpc_ast_print(r.output);
-
- // FIXME: Allocate precisely
- char *output = malloc(strlen(tmpl) * 2);
- output[0] = '\0';
- eval(output, r.output, ctx);
- printf("Template: \n%s", output);
-
- mpc_ast_delete(r.output);
- free(output);
- } else {
+ if (!mpc_parse("input", tmpl, parser, &r)) {
mpc_err_print(r.error);
mpc_err_delete(r.error);
+ return NULL;
}
+
+ mpc_ast_print(r.output);
+
+ // FIXME: Allocate precisely
+ char *output = malloc(strlen(tmpl) * 2);
+ output[0] = '\0';
+
+ eval(output, r.output, ctx);
+ mpc_ast_delete(r.output);
+
+ return output;
}