diff options
| author | gingerBill <bill@gingerbill.org> | 2020-05-23 11:39:29 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2020-05-23 11:39:29 +0100 |
| commit | ef539696b9540cc45a4343f0fecdb4bbcb1a8a0e (patch) | |
| tree | e9a4b2a9b888e14babd5c052b06edcb519400413 /src/tokenizer.cpp | |
| parent | 26fe9b021293f9da8dd9591272e736f5d6b4d261 (diff) | |
Strip carriage return `\r` from raw string literals
Diffstat (limited to 'src/tokenizer.cpp')
| -rw-r--r-- | src/tokenizer.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/tokenizer.cpp b/src/tokenizer.cpp index b4c1b01a1..c9a58cee6 100644 --- a/src/tokenizer.cpp +++ b/src/tokenizer.cpp @@ -960,6 +960,7 @@ Token tokenizer_get_token(Tokenizer *t) { case '`': // Raw String Literal case '"': // String Literal { + bool has_carriage_return = false; i32 success; Rune quote = curr_rune; token.kind = Token_String; @@ -989,10 +990,13 @@ Token tokenizer_get_token(Tokenizer *t) { if (r == quote) { break; } + if (r == '\r') { + has_carriage_return = true; + } } } token.string.len = t->curr - token.string.text; - success = unquote_string(heap_allocator(), &token.string); + success = unquote_string(heap_allocator(), &token.string, 0, has_carriage_return); if (success > 0) { if (success == 2) { array_add(&t->allocated_strings, token.string); |