From b528208dfd13da9460eae69ef10d129184a2230b Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Wed, 11 May 2022 17:55:28 -0700 Subject: [PATCH] hook up delete lines --- src/Window.zig | 4 ++++ src/terminal/stream.zig | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/src/Window.zig b/src/Window.zig index 79f865de3..72258d62e 100644 --- a/src/Window.zig +++ b/src/Window.zig @@ -561,6 +561,10 @@ pub fn eraseChars(self: *Window, count: usize) !void { try self.terminal.eraseChars(count); } +pub fn deleteLines(self: *Window, count: usize) !void { + self.terminal.deleteLines(self.alloc, count); +} + pub fn reverseIndex(self: *Window) !void { try self.terminal.reverseIndex(self.alloc); } diff --git a/src/terminal/stream.zig b/src/terminal/stream.zig index 61db9cfa7..011c79d1d 100644 --- a/src/terminal/stream.zig +++ b/src/terminal/stream.zig @@ -194,6 +194,14 @@ pub fn Stream(comptime Handler: type) type { }, ) else log.warn("unimplemented CSI callback: {}", .{action}), + // DL - Delete Lines + // TODO: test + 'M' => if (@hasDecl(T, "deleteLines")) switch (action.params.len) { + 0 => try self.handler.deleteLines(1), + 1 => try self.handler.deleteLines(action.params[0]), + else => log.warn("invalid DL command: {}", .{action}), + } else log.warn("unimplemented CSI callback: {}", .{action}), + // Delete Character (DCH) 'P' => if (@hasDecl(T, "deleteChars")) try self.handler.deleteChars( switch (action.params.len) {