harec

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 6546d097cc988c7c73f70e69c0a0ea45546ada61
parent 9129d7775fbb319326737732210099167e34bc09
Author: Eyal Sawady <ecs@d2evs.net>
Date:   Fri, 11 Dec 2020 17:26:26 -0500

Fix lexing of \0

Diffstat:
Msrc/lex.c | 5+++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/lex.c b/src/lex.c @@ -148,10 +148,10 @@ static uint32_t next(struct lexer *lexer, struct location *loc, bool buffer) { uint32_t c; - if (lexer->c[0] != 0) { + if (lexer->c[0] != UINT32_MAX) { c = lexer->c[0]; lexer->c[0] = lexer->c[1]; - lexer->c[1] = 0; + lexer->c[1] = UINT32_MAX; } else { c = utf8_fgetch(lexer->in); update_lineno(&lexer->loc, c); @@ -205,6 +205,7 @@ consume(struct lexer *lexer, ssize_t n) static void push(struct lexer *lexer, uint32_t c, bool buffer) { + assert(lexer->c[1] == UINT32_MAX); lexer->c[1] = lexer->c[0]; lexer->c[0] = c; if (buffer) {