diff options
| author | Raghuram Subramani <raghus2247@gmail.com> | 2025-07-27 21:24:37 +0530 |
|---|---|---|
| committer | Raghuram Subramani <raghus2247@gmail.com> | 2025-07-27 21:24:37 +0530 |
| commit | 73d7dcf45d79cb91cef6690559364fcc0cbb1815 (patch) | |
| tree | 41429129b32f9d9521ffbfddd23aa53c45554886 | |
| parent | 82699f835535ae58f9ad7eb088c38df2a787a07d (diff) | |
lexer: fix infinite loop on finding eachdo
| -rw-r--r-- | src/lexer.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/lexer.c b/src/lexer.c index eefeddd..3728147 100644 --- a/src/lexer.c +++ b/src/lexer.c @@ -188,9 +188,10 @@ lexer_handle_eachdo(directive_t *directive, buffer += match->length; key_match_t *new_match; + size_t skip = 0; while (true) { - new_match = find_next_key(buffer, 0); + new_match = find_next_key(buffer, skip); if (new_match == NULL) { printf("Cannot find endeachdo\n"); free(new_match); @@ -217,6 +218,8 @@ lexer_handle_eachdo(directive_t *directive, free(new_directive); free(new_match); + + skip++; } operands->content = strndup(buffer, new_match->offset); |
