commit 2dfec13ef08e0b47f0d80d599fb8552438e9e37a (tree)
parent 2e7d28dd0d27d94945ac5f131d7f7b4e03bc0024
Author: MrDmitry <aidenhaledev@gmail.com>
Date: Sun, 21 Jan 2024 03:16:09 -0500
Fix last_index after variable substitution
Iterative passes should start at the end of the previous substitution
Diffstat:
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/std/Build/Step/ConfigHeader.zig b/lib/std/Build/Step/ConfigHeader.zig
@@ -537,7 +537,7 @@ fn replace_variables(
switch (value) {
.boolean => |b| {
const buf = try std.fmt.allocPrint(allocator, "{s}{}{s}", .{ beginline, @intFromBool(b), endline });
- last_index = start_index + 1;
+ last_index = prefix_index + 1;
allocator.free(content_buf);
content_buf = buf;
@@ -546,14 +546,14 @@ fn replace_variables(
const buf = try std.fmt.allocPrint(allocator, "{s}{}{s}", .{ beginline, i, endline });
const isNegative = i < 0;
const digits = (if (0 < i) std.math.log10(@abs(i)) else 0) + 1;
- last_index = start_index + @intFromBool(isNegative) + digits + 1;
+ last_index = prefix_index + @intFromBool(isNegative) + digits;
allocator.free(content_buf);
content_buf = buf;
},
.string, .ident => |x| {
const buf = try std.fmt.allocPrint(allocator, "{s}{s}{s}", .{ beginline, x, endline });
- last_index = start_index + x.len + 1;
+ last_index = prefix_index + x.len;
allocator.free(content_buf);
content_buf = buf;
@@ -561,7 +561,7 @@ fn replace_variables(
else => {
const buf = try std.fmt.allocPrint(allocator, "{s}{s}", .{ beginline, endline });
- last_index = start_index + 1;
+ last_index = prefix_index;
allocator.free(content_buf);
content_buf = buf;