aboutsummaryrefslogtreecommitdiff
path: root/src/engine
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/eachdo.c2
-rw-r--r--src/engine/engine.c13
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;
}