aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/engine.h2
-rw-r--r--src/engine.c6
-rw-r--r--src/main.c2
3 files changed, 6 insertions, 4 deletions
diff --git a/include/engine.h b/include/engine.h
index 885a2b2..d65c771 100644
--- a/include/engine.h
+++ b/include/engine.h
@@ -4,7 +4,7 @@
#include <lexer.h>
#include <list.h>
-void ingest(char **buffer);
+list_t *ingest(char **buffer);
void handle_include(char **buffer, key_match_t *match, directive_t *directive);
void handle_contentfor(char **buffer,
key_match_t *match,
diff --git a/src/engine.c b/src/engine.c
index f5187b5..ff84990 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -68,14 +68,14 @@ handle_contentfor(char **buffer,
free(operand);
}
-void
+list_t *
ingest(char **buffer)
{
key_match_t *match;
list_t *content_headers = list_create(sizeof(contentfor_operand_t));
if (content_headers == NULL) {
printf("Could not create content_headers\n");
- return;
+ return NULL;
}
while (true) {
@@ -128,5 +128,5 @@ ingest(char **buffer)
free(op->key);
}
- list_delete(content_headers);
+ return content_headers;
}
diff --git a/src/main.c b/src/main.c
index f404545..e99887b 100644
--- a/src/main.c
+++ b/src/main.c
@@ -77,6 +77,8 @@ handle_file(const char *path)
if (strlen(buffer) != 0)
ingest(&buffer);
fprintf(out, "%s%s%s", base_template->pre, buffer, base_template->post);
+ list_t *content_headers = ingest(&buffer);
+ list_delete(content_headers);
}
free(buffer);