diff options
| author | Can Celik <ogulcancelik@gmail.com> | 2026-09-10 21:51:57 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-09-10 21:51:57 +0300 |
| commit | 425c86179791cd32e2d4ce0ae7f269940b4b0663 (patch) | |
| tree | e52c4383a6d69216cbe2a32638bf90841d7e2189 /vendor/libghostty-vt/src/font/Metrics.zig | |
| parent | 90e947a6e26e02f10ec7f1694c4eb5b78a86406b (diff) | |
chore: upgrade libghostty and preserve terminal behavior (#3906)
Diffstat (limited to 'vendor/libghostty-vt/src/font/Metrics.zig')
| -rw-r--r-- | vendor/libghostty-vt/src/font/Metrics.zig | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/vendor/libghostty-vt/src/font/Metrics.zig b/vendor/libghostty-vt/src/font/Metrics.zig index 60a300b0..36cfe009 100644 --- a/vendor/libghostty-vt/src/font/Metrics.zig +++ b/vendor/libghostty-vt/src/font/Metrics.zig @@ -589,23 +589,21 @@ pub const Modifier = union(enum) { /// Key is an enum of all the available metrics keys. pub const Key = key: { const field_infos = std.meta.fields(Metrics); - var enumFields: [field_infos.len]std.builtin.Type.EnumField = undefined; + var names: [field_infos.len][]const u8 = undefined; + var raw_values: [field_infos.len]comptime_int = undefined; var count: usize = 0; - for (field_infos, 0..) |field, i| { + for (field_infos, &names, &raw_values, 0..) |field, *name, *raw, i| { if (field.type != u32 and field.type != i32 and field.type != f64) continue; - enumFields[i] = .{ .name = field.name, .value = i }; + name.* = field.name; + raw.* = i; count += 1; } - var decls = [_]std.builtin.Type.Declaration{}; - break :key @Type(.{ - .@"enum" = .{ - .tag_type = std.math.IntFittingRange(0, count - 1), - .fields = enumFields[0..count], - .decls = &decls, - .is_exhaustive = true, - }, - }); + const TagInt = std.math.IntFittingRange(0, count - 1); + var values: [count]TagInt = undefined; + for (raw_values, &values) |raw, *v| v.* = raw; + + break :key @Enum(TagInt, .exhaustive, names[0..count], &values); }; // NOTE: This is purposely not pub because we want to force outside callers |
