From f36fab3c7b730e0226cf91f040bfc58e61cb4825 Mon Sep 17 00:00:00 2001 From: lemon Date: Wed, 15 Oct 2025 13:20:11 +0200 Subject: sanity checks --- c.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'c.c') diff --git a/c.c b/c.c index abd6a46..8da24a3 100644 --- a/c.c +++ b/c.c @@ -29,11 +29,16 @@ lexc(struct comp *cm, struct token *tk) vec_of(char) rest = VINIT(buf, sizeof buf); do { lex(&cm->lx, &tk2); - vpushn(&rest, tk2.s, tk2.len); + if (tk) { + joinspan(&tk->span.ex, tk2.span.ex); + vpushn(&rest, tk2.s, tk2.len); + } } while (peek(cm, NULL) == TKSTRLIT); - tk->s = memcpy(alloc(&cm->exarena, tk->len + rest.n, 0), tk->s, tk->len); - memcpy((char *)tk->s + tk->len, rest.p, rest.n); - tk->len += rest.n; + if (tk) { + tk->s = memcpy(alloc(&cm->exarena, tk->len + rest.n, 0), tk->s, tk->len); + memcpy((char *)tk->s + tk->len, rest.p, rest.n); + tk->len += rest.n; + } vfree(&rest); } return t; -- cgit v1.2.3