From b84e6c9eedfd381bfa29dd7fd25b9c28dfc354f4 Mon Sep 17 00:00:00 2001 From: AnErrupTion Date: Fri, 26 Jul 2024 21:39:27 +0200 Subject: [PATCH] Use default PRNG and retrieve better seed Signed-off-by: AnErrupTion --- src/main.zig | 9 ++++++++- src/tui/TerminalBuffer.zig | 8 +++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main.zig b/src/main.zig index 05c06e6..f35a460 100644 --- a/src/main.zig +++ b/src/main.zig @@ -162,7 +162,14 @@ pub fn main() !void { // Initialize terminal buffer const labels_max_length = @max(lang.login.len, lang.password.len); - var buffer = TerminalBuffer.init(config, labels_max_length); + // Get a random seed for the PRNG (used by animations) + var seed: u64 = undefined; + try std.posix.getrandom(std.mem.asBytes(&seed)); + + var prng = std.Random.DefaultPrng.init(seed); + const random = prng.random(); + + var buffer = TerminalBuffer.init(config, labels_max_length, random); // Initialize components var desktop = try Desktop.init(allocator, &buffer, config.max_desktop_len, lang); diff --git a/src/tui/TerminalBuffer.zig b/src/tui/TerminalBuffer.zig index eec1a85..9692365 100644 --- a/src/tui/TerminalBuffer.zig +++ b/src/tui/TerminalBuffer.zig @@ -4,7 +4,7 @@ const interop = @import("../interop.zig"); const utils = @import("utils.zig"); const Config = @import("../config/Config.zig"); -const Random = std.rand.Random; +const Random = std.Random; const termbox = interop.termbox; @@ -35,11 +35,9 @@ box_height: u64, margin_box_v: u8, margin_box_h: u8, -pub fn init(config: Config, labels_max_length: u64) TerminalBuffer { - var prng = std.rand.Isaac64.init(@intCast(std.time.timestamp())); - +pub fn init(config: Config, labels_max_length: u64, random: Random) TerminalBuffer { return .{ - .random = prng.random(), + .random = random, .width = @intCast(termbox.tb_width()), .height = @intCast(termbox.tb_height()), .buffer = termbox.tb_cell_buffer(),