From 13cf8e19e1d1dc2abfec786a4867e4564f2c99be Mon Sep 17 00:00:00 2001 From: Kinzie Date: Sat, 6 Apr 2024 23:20:47 +0100 Subject: [PATCH] small code improvements --- src/auth.zig | 28 ++++++++++++---------------- src/bigclock.zig | 2 +- src/main.zig | 7 ++----- src/tui/utils.zig | 12 ++++++------ 4 files changed, 21 insertions(+), 28 deletions(-) diff --git a/src/auth.zig b/src/auth.zig index a106d3c..7aeffd7 100644 --- a/src/auth.zig +++ b/src/auth.zig @@ -227,7 +227,7 @@ fn setXdgEnv(allocator: Allocator, tty_str: [:0]u8, desktop_name: []const u8) !v defer allocator.free(desktop_name_z); const uid = interop.getuid(); - var uid_buffer = std.mem.zeroes([10 + @sizeOf(u32) + 1]u8); + var uid_buffer: [10 + @sizeOf(u32) + 1]u8 = undefined; const uid_str = try std.fmt.bufPrintZ(&uid_buffer, "/run/user/{d}", .{uid}); _ = interop.setenv("XDG_CURRENT_DESKTOP", desktop_name_z.ptr, 0); @@ -291,15 +291,14 @@ fn resetTerminal(allocator: Allocator, shell: [*:0]const u8, term_reset_cmd: []c const term_reset_cmd_z = try allocator.dupeZ(u8, term_reset_cmd); defer allocator.free(term_reset_cmd_z); - const pid = std.c.fork(); + const pid = try std.os.fork(); if (pid == 0) { _ = interop.execl(shell, shell, "-c", term_reset_cmd_z.ptr, @as([*c]const u8, 0)); std.os.exit(0); } - var status: c_int = undefined; - _ = std.c.waitpid(pid, &status, 0); + _ = std.os.waitpid(pid, 0); } fn getFreeDisplay() !u8 { @@ -321,8 +320,8 @@ fn getXPid(display_num: u8) !i32 { var file_buf: [20]u8 = undefined; var fbs = std.io.fixedBufferStream(&file_buf); - _ = try file.reader().streamUntilDelimiter(fbs.writer(), '\n', null); - const line = std.mem.sliceTo(&file_buf, 170); + _ = try file.reader().streamUntilDelimiter(fbs.writer(), '\n', 20); + const line = fbs.getWritten(); return std.fmt.parseInt(i32, std.mem.trim(u8, line, " "), 10); } @@ -335,7 +334,7 @@ fn createXauthFile(pwd: [:0]const u8) ![:0]const u8 { if (xdg_rt_dir == null) { const xdg_cfg_home = std.os.getenv("XDG_CONFIG_HOME"); - var sb: std.c.Stat = std.mem.zeroes(std.c.Stat); + var sb: std.c.Stat = undefined; if (xdg_cfg_home == null) { xauth_dir = try std.fmt.bufPrintZ(&xauth_buf, "{s}/.config", .{pwd}); _ = std.c.stat(xauth_dir, &sb); @@ -384,7 +383,7 @@ fn xauth(display_name: [:0]u8, shell: [*:0]const u8, pw_dir: [*:0]const u8, xaut _ = interop.setenv("XAUTHORITY", xauthority, 1); _ = interop.setenv("DISPLAY", display_name, 1); - const pid = std.c.fork(); + const pid = try std.os.fork(); if (pid == 0) { var cmd_buffer: [1024]u8 = undefined; @@ -393,8 +392,7 @@ fn xauth(display_name: [:0]u8, shell: [*:0]const u8, pw_dir: [*:0]const u8, xaut std.os.exit(0); } - var status: c_int = 0; - _ = std.c.waitpid(pid, &status, 0); + _ = std.os.waitpid(pid, 0); } fn executeWaylandCmd(shell: [*:0]const u8, wayland_cmd: []const u8, desktop_cmd: []const u8) !void { @@ -410,7 +408,7 @@ fn executeX11Cmd(shell: [*:0]const u8, pw_dir: [*:0]const u8, config: Config, de var display_name: [:0]u8 = try std.fmt.bufPrintZ(&buf, ":{d}", .{display_num}); try xauth(display_name, shell, pw_dir, config.xauth_cmd, config.mcookie_cmd); - const pid = std.c.fork(); + const pid = try std.os.fork(); if (pid == 0) { var cmd_buffer: [1024]u8 = undefined; const cmd_str = std.fmt.bufPrintZ(&cmd_buffer, "{s} {s} {s}", .{ config.x_cmd, display_name, vt }) catch std.os.exit(1); @@ -418,8 +416,6 @@ fn executeX11Cmd(shell: [*:0]const u8, pw_dir: [*:0]const u8, config: Config, de std.os.exit(0); } - var status: c_int = 0; - var ok: c_int = undefined; var xcb: ?*interop.xcb.xcb_connection_t = null; while (ok != 0) { @@ -435,7 +431,7 @@ fn executeX11Cmd(shell: [*:0]const u8, pw_dir: [*:0]const u8, config: Config, de // Pid can be fetched from /tmp/X{d}.lock const x_pid = try getXPid(display_num); - const xorg_pid = std.c.fork(); + const xorg_pid = try std.os.fork(); if (xorg_pid == 0) { var cmd_buffer: [1024]u8 = undefined; const cmd_str = std.fmt.bufPrintZ(&cmd_buffer, "{s} {s}", .{ config.x_cmd_setup, desktop_cmd }) catch std.os.exit(1); @@ -443,13 +439,13 @@ fn executeX11Cmd(shell: [*:0]const u8, pw_dir: [*:0]const u8, config: Config, de std.os.exit(0); } - _ = std.c.waitpid(xorg_pid, &status, 0); + _ = std.os.waitpid(xorg_pid, 0); interop.xcb.xcb_disconnect(xcb); _ = std.c.kill(x_pid, 0); if (std.c._errno().* != interop.ESRCH) { _ = std.c.kill(x_pid, interop.SIGTERM); - _ = std.c.waitpid(x_pid, &status, 0); + _ = std.os.waitpid(x_pid, 0); } } diff --git a/src/bigclock.zig b/src/bigclock.zig index 71e5635..5c3007d 100644 --- a/src/bigclock.zig +++ b/src/bigclock.zig @@ -100,7 +100,7 @@ const E = [_]u32{ // zig fmt: on pub fn clockCell(animate: bool, char: u8, fg: u8, bg: u8) [SIZE]termbox.tb_cell { - var cells = std.mem.zeroes([SIZE]termbox.tb_cell); + var cells: [SIZE]termbox.tb_cell = undefined; var tv: std.c.timeval = undefined; _ = std.c.gettimeofday(&tv, null); diff --git a/src/main.zig b/src/main.zig index 7ba26e5..2c19928 100644 --- a/src/main.zig +++ b/src/main.zig @@ -116,10 +116,7 @@ pub fn main() !void { // Initialize termbox _ = termbox.tb_init(); - defer { - termbox.tb_clear(); - termbox.tb_shutdown(); - } + defer termbox.tb_shutdown(); _ = termbox.tb_select_output_mode(termbox.TB_OUTPUT_NORMAL); termbox.tb_clear(); @@ -216,7 +213,7 @@ pub fn main() !void { const restart_key = try std.fmt.parseInt(u8, config.restart_key[1..], 10); const sleep_key = try std.fmt.parseInt(u8, config.sleep_key[1..], 10); - var event = std.mem.zeroes(termbox.tb_event); + var event: termbox.tb_event = undefined; var run = true; var update = true; var resolution_changed = false; diff --git a/src/tui/utils.zig b/src/tui/utils.zig index bf9304e..cb2a7ca 100644 --- a/src/tui/utils.zig +++ b/src/tui/utils.zig @@ -3,10 +3,10 @@ const interop = @import("../interop.zig"); const termbox = interop.termbox; -pub fn initCell(ch: u32, fg: u32, bg: u32) termbox.tb_cell { - var cell = std.mem.zeroes(termbox.tb_cell); - cell.ch = ch; - cell.fg = fg; - cell.bg = bg; - return cell; +pub inline fn initCell(ch: u32, fg: u32, bg: u32) termbox.tb_cell { + return .{ + .ch = ch, + .fg = fg, + .bg = bg, + }; }