diff options
author | Danny van Kooten <dannyvankooten@users.noreply.github.com> | 2020-03-12 14:19:24 +0100 |
---|---|---|
committer | Danny van Kooten <dannyvankooten@users.noreply.github.com> | 2020-03-12 14:19:24 +0100 |
commit | 616ff505f666d4d162e5d2d8c0238f8af6f79c40 (patch) | |
tree | bd475af1d3c7b200d38e6769d33c1bed77384d15 /src/template.c | |
parent | 83eee4d23f9da9e72238dd01d43b350ed5bc04f1 (diff) | |
download | unja-616ff505f666d4d162e5d2d8c0238f8af6f79c40.tar.gz unja-616ff505f666d4d162e5d2d8c0238f8af6f79c40.zip |
add first template tests
Diffstat (limited to 'src/template.c')
-rw-r--r-- | src/template.c | 27 |
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; } |