CSI W - cursor tabulation control

This commit is contained in:
Mitchell Hashimoto
2023-06-25 10:23:10 -07:00
parent fdf652fe5a
commit 68b951f19d

View File

@ -316,6 +316,36 @@ pub fn Stream(comptime Handler: type) type {
},
) else log.warn("unimplemented CSI callback: {}", .{action}),
// Cursor Tabulation Control
'W' => switch (action.params.len) {
1 => switch (action.params[0]) {
0 => if (@hasDecl(T, "tabSet"))
try self.handler.tabSet()
else
log.warn("unimplemented tab set callback: {}", .{action}),
2 => if (@hasDecl(T, "tabClear"))
try self.handler.tabClear(.current)
else
log.warn("unimplemented tab clear callback: {}", .{action}),
5 => if (@hasDecl(T, "tabClear"))
try self.handler.tabClear(.all)
else
log.warn("unimplemented tab clear callback: {}", .{action}),
else => {
log.warn("invalid cursor tabulation control: {}", .{action});
return;
},
},
else => {
log.warn("invalid cursor tabulation control: {}", .{action});
return;
},
},
// Erase Characters (ECH)
'X' => if (@hasDecl(T, "eraseChars")) try self.handler.eraseChars(
switch (action.params.len) {