aboutsummaryrefslogtreecommitdiff
path: root/src/tokenizer.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2020-05-23 11:39:29 +0100
committergingerBill <bill@gingerbill.org>2020-05-23 11:39:29 +0100
commitef539696b9540cc45a4343f0fecdb4bbcb1a8a0e (patch)
treee9a4b2a9b888e14babd5c052b06edcb519400413 /src/tokenizer.cpp
parent26fe9b021293f9da8dd9591272e736f5d6b4d261 (diff)
Strip carriage return `\r` from raw string literals
Diffstat (limited to 'src/tokenizer.cpp')
-rw-r--r--src/tokenizer.cpp6
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);