From bef68b681f0af54061858a6689057850b390d79c Mon Sep 17 00:00:00 2001 From: kdx Date: Tue, 13 Jun 2023 04:08:54 +0200 Subject: fix string misinterpretation --- src/main.c | 4 ++-- testing.sh | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main.c b/src/main.c index de84ea4..01ade54 100644 --- a/src/main.c +++ b/src/main.c @@ -134,7 +134,7 @@ tokenize(char *p) char *end = strchr(p + 1, '"'); if (end == NULL) error("unclosed double quotes", 0); - cur = cur->next = new_token(TOK_STRING, p + 1, end); + cur = cur->next = new_token(TOK_STRING, p, end + 1); p = end + 1; continue; } @@ -1141,7 +1141,7 @@ codegen(Node *node) for (int i = 0; i < strings_size; i++) { printf("@__str_%x\n", strings_size - i - 1); - for (int k = 0; k < strings->lhs->len; k++) + for (int k = 1; k < strings->lhs->len - 1; k++) printf("\t%04x\n", (unsigned)strings->lhs->loc[k]); printf("\t0000\n"); strings = strings->next; diff --git a/testing.sh b/testing.sh index b34667e..3539b20 100755 --- a/testing.sh +++ b/testing.sh @@ -54,5 +54,6 @@ test "$1" "main() 0; //ayayayayayayaya comment" test "$1" "main() return;" test "$1" "main() { local a; a = 5; dbg a; a++; dbg a; }" test "$1" "main() { local a; a = 5; dbg a; a--; dbg a; }" +test "$1" "main() { wrt [\"(\"]; wrt '\n'; }" exit rm -f build/tmp.* -- cgit v1.2.3