this repo has no description
13
fork

Configure Feed

Select the types of activity you want to include in your feed.

xev: fix todos

+24 -10
-2
examples/xev.zig
··· 37 37 try vx.queryTerminalSend(tty.anyWriter()); 38 38 39 39 try loop.run(.until_done); 40 - @panic("AHHH"); 41 40 } 42 41 43 42 fn callback( ··· 56 55 .winsize => |ws| watcher.vx.resize(ud.?.*, watcher.tty.anyWriter(), ws) catch @panic("TODO"), 57 56 else => {}, 58 57 } 59 - std.log.debug("a", .{}); 60 58 const win = watcher.vx.window(); 61 59 win.clear(); 62 60 watcher.vx.render(watcher.tty.anyWriter()) catch {
+24 -8
src/xev.zig
··· 105 105 106 106 fn signalCallback(ptr: *anyopaque) void { 107 107 const self: *Self = @ptrCast(@alignCast(ptr)); 108 - self.winsize_wakeup.notify() catch @panic("TODO"); 108 + self.winsize_wakeup.notify() catch |err| { 109 + log.warn("couldn't wake up winsize callback: {}", .{err}); 110 + }; 109 111 } 110 112 111 113 fn ttyReadCallback( ··· 117 119 r: xev.ReadError!usize, 118 120 ) xev.CallbackAction { 119 121 _ = c; // autofix 120 - const n = r catch @panic("TODO"); 122 + const n = r catch |err| { 123 + log.err("read error: {}", .{err}); 124 + return .disarm; 125 + }; 121 126 const self = ud orelse unreachable; 122 127 123 128 // reset read start state ··· 125 130 126 131 var seq_start: usize = 0; 127 132 parse_loop: while (seq_start < n) { 128 - const result = self.parser.parse(buf.slice[seq_start..n], null) catch @panic("TODO"); 133 + const result = self.parser.parse(buf.slice[seq_start..n], null) catch |err| { 134 + log.err("couldn't parse input: {}", .{err}); 135 + return .disarm; 136 + }; 129 137 if (result.n == 0) { 130 138 // copy the read to the beginning. We don't use memcpy because 131 139 // this could be overlapping, and it's also rare ··· 138 146 } 139 147 seq_start += n; 140 148 const event_inner = result.event orelse { 141 - std.log.warn("unknown event: {s}", .{self.read_buf[seq_start - n + 1 .. seq_start]}); 149 + log.warn("unknown event: {s}", .{self.read_buf[seq_start - n + 1 .. seq_start]}); 142 150 continue :parse_loop; 143 151 }; 144 152 ··· 215 223 self.vx.caps.color_scheme_updates = true; 216 224 }, 217 225 .cap_da1 => { 218 - self.vx.enableDetectedFeatures(self.tty.anyWriter()) catch {}; 226 + self.vx.enableDetectedFeatures(self.tty.anyWriter()) catch |err| { 227 + log.err("couldn't enable features: {}", .{err}); 228 + }; 219 229 }, 220 230 } 221 231 } ··· 229 239 _: *xev.Completion, 230 240 r: xev.Async.WaitError!void, 231 241 ) xev.CallbackAction { 232 - _ = r catch @panic("TODO"); 233 - const self = ud orelse @panic("TODO"); 234 - const winsize = Tty.getWinsize(self.tty.fd) catch @panic("TODO"); 242 + _ = r catch |err| { 243 + log.err("async error: {}", .{err}); 244 + return .disarm; 245 + }; 246 + const self = ud orelse unreachable; // no userdata 247 + const winsize = Tty.getWinsize(self.tty.fd) catch |err| { 248 + log.err("couldn't get winsize: {}", .{err}); 249 + return .disarm; 250 + }; 235 251 return self.callback(self.ud, l, self, .{ .winsize = winsize }); 236 252 } 237 253 };