diff options
Diffstat (limited to 'src/engine')
-rw-r--r-- | src/engine/eachdo.c | 2 | ||||
-rw-r--r-- | src/engine/engine.c | 13 |
2 files changed, 7 insertions, 8 deletions
diff --git a/src/engine/eachdo.c b/src/engine/eachdo.c index 0aba13e..2d3ec4c 100644 --- a/src/engine/eachdo.c +++ b/src/engine/eachdo.c @@ -190,7 +190,7 @@ handle_eachdo(char **buffer, key_match_t *match, directive_t *directive) { eachdo_operands_t *operands = directive->operands; - engine_t *engine = engine_ingest(&operands->content); + engine_t *engine = engine_ingest(&operands->content, false); engine_delete(engine); list_t *directives = lex(operands->content); diff --git a/src/engine/engine.c b/src/engine/engine.c index a4606c2..683d39b 100644 --- a/src/engine/engine.c +++ b/src/engine/engine.c @@ -43,7 +43,7 @@ extern msg_t *msg; * It's only there to define the end of the EACHDO content block. */ engine_t * -engine_ingest(char **buffer) +engine_ingest(char **buffer, bool is_template) { engine_t *engine = malloc(sizeof(engine_t)); engine->config = NULL; @@ -103,14 +103,13 @@ engine_ingest(char **buffer) break; case EACHDO: { eachdo_operands_t *operands = directive->operands; - /* TODO: Don't handle page source only if a template is currently - * being parsed */ - if (!strcmp(operands->source, "page")) { + /* Don't handle page source only if a template is currently being + * parsed */ + if (is_template && !strcmp(operands->source, "page")) skip++; - break; - } + else + handle_eachdo(buffer, match, directive); - handle_eachdo(buffer, match, directive); break; } |