Fix big clock UB in ReleaseSafe

Signed-off-by: AnErrupTion <anerruption@disroot.org>
This commit is contained in:
AnErrupTion 2025-05-31 10:32:03 +02:00
parent 063b3145ed
commit 36a27f6167
No known key found for this signature in database
2 changed files with 16 additions and 14 deletions

View File

@ -34,24 +34,24 @@ pub fn alphaBlit(x: usize, y: usize, tb_width: usize, tb_height: usize, cells: [
} }
} }
fn toBigNumber(char: u8, bigclock: Bigclock) []const u21 { fn toBigNumber(char: u8, bigclock: Bigclock) [SIZE]u21 {
const locale_chars = switch (bigclock) { const locale_chars = switch (bigclock) {
.fa => fa.locale_chars, .fa => fa.locale_chars,
.en => en.locale_chars, .en => en.locale_chars,
.none => unreachable, .none => unreachable,
}; };
return switch (char) { return switch (char) {
'0' => &locale_chars.ZERO, '0' => locale_chars.ZERO,
'1' => &locale_chars.ONE, '1' => locale_chars.ONE,
'2' => &locale_chars.TWO, '2' => locale_chars.TWO,
'3' => &locale_chars.THREE, '3' => locale_chars.THREE,
'4' => &locale_chars.FOUR, '4' => locale_chars.FOUR,
'5' => &locale_chars.FIVE, '5' => locale_chars.FIVE,
'6' => &locale_chars.SIX, '6' => locale_chars.SIX,
'7' => &locale_chars.SEVEN, '7' => locale_chars.SEVEN,
'8' => &locale_chars.EIGHT, '8' => locale_chars.EIGHT,
'9' => &locale_chars.NINE, '9' => locale_chars.NINE,
':' => &locale_chars.S, ':' => locale_chars.S,
else => &locale_chars.E, else => locale_chars.E,
}; };
} }

View File

@ -7,6 +7,7 @@ pub const SIZE = WIDTH * HEIGHT;
pub const X: u32 = if (builtin.os.tag == .linux or builtin.os.tag.isBSD()) 0x2593 else '#'; pub const X: u32 = if (builtin.os.tag == .linux or builtin.os.tag.isBSD()) 0x2593 else '#';
pub const O: u32 = 0; pub const O: u32 = 0;
// zig fmt: off
pub const LocaleChars = struct { pub const LocaleChars = struct {
ZERO: [SIZE]u21, ZERO: [SIZE]u21,
ONE: [SIZE]u21, ONE: [SIZE]u21,
@ -20,4 +21,5 @@ pub const LocaleChars = struct {
NINE: [SIZE]u21, NINE: [SIZE]u21,
S: [SIZE]u21, S: [SIZE]u21,
E: [SIZE]u21, E: [SIZE]u21,
}; };
// zig fmt: on