clear terminal on SIGTERM

pull/596/head
Kinzie 2 months ago
parent f9a0f10777
commit 6dcea64840

@ -363,7 +363,7 @@ fn createXauthFile(pwd: [:0]const u8) ![:0]const u8 {
// Trim trailing slashes
var i = xauth_dir.len - 1;
while (xauth_dir[i] == '/') : (i -= 1) {}
while (xauth_dir[i] == '/') i -= 1;
const trimmed_xauth_dir = xauth_dir[0 .. i + 1];
var buf: [256]u8 = undefined;

@ -23,6 +23,11 @@ const termbox = interop.termbox;
const LY_VERSION = "1.0.0";
pub fn signalHandler(i: c_int) callconv(.C) void {
termbox.tb_shutdown();
std.c.exit(i);
}
pub fn main() !void {
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
defer _ = gpa.deinit();
@ -118,6 +123,13 @@ pub fn main() !void {
_ = termbox.tb_init();
defer termbox.tb_shutdown();
const act = std.os.Sigaction{
.handler = .{ .handler = &signalHandler },
.mask = std.os.empty_sigset,
.flags = 0,
};
try std.os.sigaction(std.os.SIG.TERM, &act, null);
_ = termbox.tb_select_output_mode(termbox.TB_OUTPUT_NORMAL);
termbox.tb_clear();

Loading…
Cancel
Save