diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/engine.c | 1 | ||||
| -rw-r--r-- | src/lexer.c | 12 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/engine.c b/src/engine.c index da61df8..2bdc43d 100644 --- a/src/engine.c +++ b/src/engine.c @@ -109,6 +109,7 @@ ingest(char **buffer) /* TODO: Handle this gracefully */ case BODY: + case CONTENT: case ENDCONTENT: break; } diff --git a/src/lexer.c b/src/lexer.c index 2a80ddb..28dee8a 100644 --- a/src/lexer.c +++ b/src/lexer.c @@ -77,6 +77,18 @@ found_start: } directive->operands = operand; + } else if (strncmp(buffer + n, "content ", strlen("content")) == 0) { + directive->type = CONTENT; + + char *operand = NULL; + for (size_t i = n + strlen("content"); i < match->length - n; i++) + if (isalnum(buffer[i])) { + sscanf(buffer + i, "%ms\"", &operand); + operand[strlen(operand) - 1] = '\0'; + break; + } + + directive->operands = operand; } else if (strncmp(buffer + n, "endcontent", strlen("endcontent")) == 0) { directive->type = ENDCONTENT; directive->operands = NULL; |
