This commit is contained in:
Mitchell Hashimoto
2023-06-25 10:26:29 -07:00
parent 68b951f19d
commit 9110c07763

View File

@ -317,33 +317,39 @@ pub fn Stream(comptime Handler: type) type {
) else log.warn("unimplemented CSI callback: {}", .{action}), ) else log.warn("unimplemented CSI callback: {}", .{action}),
// Cursor Tabulation Control // Cursor Tabulation Control
'W' => switch (action.params.len) { 'W' => {
1 => switch (action.params[0]) { switch (action.params.len) {
0 => if (@hasDecl(T, "tabSet")) 0 => if (action.intermediates.len == 1 and action.intermediates[0] == '?') {
try self.handler.tabSet() if (@hasDecl(T, "tabClear"))
else try self.handler.tabClear(.all)
log.warn("unimplemented tab set callback: {}", .{action}), else
log.warn("unimplemented tab clear 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 => { 1 => switch (action.params[0]) {
log.warn("invalid cursor tabulation control: {}", .{action}); 0 => if (@hasDecl(T, "tabSet"))
return; 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 => {},
},
else => {},
}
log.warn("invalid cursor tabulation control: {}", .{action});
return;
}, },
// Erase Characters (ECH) // Erase Characters (ECH)