aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEvan Haas <evan@lagerdata.com>2022-09-05 21:32:20 -0700
committerVeikka Tuominen <git@vexu.eu>2022-09-07 14:46:58 +0300
commite283a40d17bbbeeafda84fad9b75bbc458950934 (patch)
tree8750bfe9dfcda5321848d2d055510aea821f054b /src
parente2bb92b2e27dc54852a0227345e294ae383358fd (diff)
downloadzig-e283a40d17bbbeeafda84fad9b75bbc458950934.tar.gz
zig-e283a40d17bbbeeafda84fad9b75bbc458950934.zip
translate-c: convert tabs to `\t` in object-like macro string literals
Closes #12549
Diffstat (limited to 'src')
-rw-r--r--src/translate_c.zig9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/translate_c.zig b/src/translate_c.zig
index faa8a456f5..e62f5b4568 100644
--- a/src/translate_c.zig
+++ b/src/translate_c.zig
@@ -5799,7 +5799,7 @@ fn zigifyEscapeSequences(ctx: *Context, m: *MacroCtx) ![]const u8 {
}
}
for (source) |c| {
- if (c == '\\') {
+ if (c == '\\' or c == '\t') {
break;
}
} else return source;
@@ -5876,6 +5876,13 @@ fn zigifyEscapeSequences(ctx: *Context, m: *MacroCtx) ![]const u8 {
state = .Start;
},
.Start => {
+ if (c == '\t') {
+ bytes[i] = '\\';
+ i += 1;
+ bytes[i] = 't';
+ i += 1;
+ continue;
+ }
if (c == '\\') {
state = .Escape;
}