diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/engine.c | 1 | ||||
-rw-r--r-- | src/lexer.c | 8 | ||||
-rw-r--r-- | src/template.c | 5 |
3 files changed, 11 insertions, 3 deletions
diff --git a/src/engine.c b/src/engine.c index a494b71..a334e2c 100644 --- a/src/engine.c +++ b/src/engine.c @@ -1,6 +1,7 @@ #include "util.h" #define _GNU_SOURCE +#include <config.h> #include <copy.h> #include <engine.h> #include <filehandler.h> diff --git a/src/lexer.c b/src/lexer.c index 0ac6c6a..a1f893f 100644 --- a/src/lexer.c +++ b/src/lexer.c @@ -9,10 +9,12 @@ #include <string.h> #include <util.h> -list_t * +lex_t * lex(char *buffer) { + lex_t *out = malloc(sizeof(lex_t)); list_t *directives = list_create(sizeof(directive_t)); + list_t *matches = list_create(sizeof(key_match_t)); size_t current_offset = 0; while (true) { @@ -50,7 +52,9 @@ lex(char *buffer) list_add(directives, raw_directive); } - return directives; + out->directives = directives; + out->matches = matches; + return out; } key_match_t * diff --git a/src/template.c b/src/template.c index b3536cc..ed6d9e0 100644 --- a/src/template.c +++ b/src/template.c @@ -28,8 +28,11 @@ template_create(void) fclose(base); ingest(&buffer); - template->components = lex(buffer); + lex_t *lexed = lex(buffer); + template->components = lexed->directives; + list_delete(lexed->matches); + free(lexed); free(buffer); return template; } |