diff options
Diffstat (limited to 'src/ninep/ctl.zig')
| -rw-r--r-- | src/ninep/ctl.zig | 22 |
1 files changed, 4 insertions, 18 deletions
diff --git a/src/ninep/ctl.zig b/src/ninep/ctl.zig index 14f1ae4f..945119ca 100644 --- a/src/ninep/ctl.zig +++ b/src/ninep/ctl.zig @@ -38,11 +38,6 @@ const Serials = struct { }; return s; } - - fn has(s: *const Serials, serial: u32) bool { - for (s.list[0..s.len]) |known| if (known == serial) return true; - return false; - } }; fn noteResult(p: *Pardes, serial: u32) void { @@ -52,11 +47,6 @@ fn noteResult(p: *Pardes, serial: u32) void { p.fs.results_len += 1; } -fn activeSerial(p: *Pardes) ?u32 { - const pane = p.panes[p.active] orelse return null; - return pane.serial; -} - /// Runs one look or exec from the pane `id`, then records the panes it /// created; failing that, a look records the pane it focused and an exec /// the pane it acted on (even one it closed). @@ -66,12 +56,12 @@ fn run(p: *Pardes, id: usize, exec: bool, text: []const u8) void { if (exec) _ = pardes.exec.execute(p, id, text) else look.lookAt(p, id, text); const after = Serials.snapshot(p); var created = false; - for (after.list[0..after.len]) |serial| if (!before.has(serial)) { + for (after.list[0..after.len]) |serial| if (std.mem.indexOfScalar(u32, before.list[0..before.len], serial) == null) { noteResult(p, serial); created = true; }; if (created) return; - noteResult(p, if (exec) context else activeSerial(p) orelse return); + noteResult(p, if (exec) context else (p.panes[p.active] orelse return).serial); } // ---- look and exec ---- @@ -140,11 +130,6 @@ pub fn readStatus(p: *Pardes, req: Req) Reply { // ---- /pane/<n>/ctl ---- -fn fontName(p: *Pardes) []const u8 { - const name = p.settings.font.effective_name.get(); - return if (name.len == 0) "default" else name; -} - fn writeQuoted(w: *std.Io.Writer, s: []const u8) !void { const plain = s.len > 0 and for (s) |c| { if (c <= ' ' or c == '\'') break false; @@ -175,7 +160,8 @@ pub fn paneText(p: *Pardes, pane: *Pane, buf: []u8) []const u8 { @intFromBool(pane_files.dirtyOf(pane)), pane.cols, }) catch return w.buffered(); - writeQuoted(&w, fontName(p)) catch return w.buffered(); + const font = p.settings.font.effective_name.get(); + writeQuoted(&w, if (font.len == 0) "default" else font) catch return w.buffered(); w.print(" {d:>11} {s} ", .{ config.tab_width, if (p.panes[p.active] == pane) "current" else "notcurrent" }) catch {}; return w.buffered(); } |
