aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaghuram Subramani <raghus2247@gmail.com>2025-06-22 14:30:30 +0530
committerRaghuram Subramani <raghus2247@gmail.com>2025-06-22 14:30:30 +0530
commit7e4a3ce413eb967d440de3c417f10f8833f1e064 (patch)
tree4b45439238f1c1b796e21e354c2444b84a5caee9
parent18d0d7f3f62216898c76a7404f16743f4086726d (diff)
(lexer): incorrect for loop condition leads to unknown directives
-rw-r--r--src/engine.c8
-rw-r--r--src/lexer.c4
2 files changed, 10 insertions, 2 deletions
diff --git a/src/engine.c b/src/engine.c
index 3d46373..e5ee5a3 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -25,6 +25,14 @@ ingest(char **buffer)
if (match == NULL)
break;
+#ifdef DEBUG
+ printf("Match: %.*s LENGTH(%d) OFFSET(%d)\n",
+ match->length,
+ *buffer + match->offset,
+ match->length,
+ match->offset);
+#endif
+
directive_t *directive = find_directive(*buffer, match);
if (directive == NULL) {
printf(
diff --git a/src/lexer.c b/src/lexer.c
index 1b8cb04..ea2a94e 100644
--- a/src/lexer.c
+++ b/src/lexer.c
@@ -12,7 +12,7 @@ find_next_key(char *buffer)
{
key_match_t *match = calloc(1, sizeof(key_match_t));
- for (size_t i = 0; i < strlen(buffer) - 1; i++) {
+ for (size_t i = 0; i < strlen(buffer); i++) {
if (buffer[i] == '{' && buffer[i + 1] == '{') {
match->offset = i;
break;
@@ -25,7 +25,7 @@ find_next_key(char *buffer)
}
char *subbuffer = buffer + match->offset;
- for (size_t i = 0; i < strlen(subbuffer) - 1; i++) {
+ for (size_t i = 0; i < strlen(subbuffer); i++) {
if (subbuffer[i] == '}' && subbuffer[i + 1] == '}') {
match->length = i + 2;
break;