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) {
.fa => fa.locale_chars,
.en => en.locale_chars,
.none => unreachable,
};
return switch (char) {
'0' => &locale_chars.ZERO,
'1' => &locale_chars.ONE,
'2' => &locale_chars.TWO,
'3' => &locale_chars.THREE,
'4' => &locale_chars.FOUR,
'5' => &locale_chars.FIVE,
'6' => &locale_chars.SIX,
'7' => &locale_chars.SEVEN,
'8' => &locale_chars.EIGHT,
'9' => &locale_chars.NINE,
':' => &locale_chars.S,
else => &locale_chars.E,
'0' => locale_chars.ZERO,
'1' => locale_chars.ONE,
'2' => locale_chars.TWO,
'3' => locale_chars.THREE,
'4' => locale_chars.FOUR,
'5' => locale_chars.FIVE,
'6' => locale_chars.SIX,
'7' => locale_chars.SEVEN,
'8' => locale_chars.EIGHT,
'9' => locale_chars.NINE,
':' => locale_chars.S,
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 O: u32 = 0;
// zig fmt: off
pub const LocaleChars = struct {
ZERO: [SIZE]u21,
ONE: [SIZE]u21,
@ -20,4 +21,5 @@ pub const LocaleChars = struct {
NINE: [SIZE]u21,
S: [SIZE]u21,
E: [SIZE]u21,
};
};
// zig fmt: on