mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 13:54:21 +00:00
Fix last_index after variable substitution
Iterative passes should start at the end of the previous substitution
This commit is contained in:
parent
2e7d28dd0d
commit
2dfec13ef0
1 changed files with 4 additions and 4 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue