zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

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:
Mlib/std/Build/Step/ConfigHeader.zig | 8++++----
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;