terminal: reject invalid DECSASD status code

This commit is contained in:
Mitchell Hashimoto
2024-06-09 21:22:37 -04:00
parent e2b4ee99e5
commit 279921b936
2 changed files with 6 additions and 4 deletions

View File

@ -91,9 +91,6 @@ pub const StatusLineType = enum(u16) {
pub const StatusDisplay = enum(u16) { pub const StatusDisplay = enum(u16) {
main = 0, main = 0,
status_line = 1, status_line = 1,
// Non-exhaustive so that @intToEnum never fails for unsupported values.
_,
}; };
/// The possible modify key formats to ESC[>{a};{b}m /// The possible modify key formats to ESC[>{a};{b}m

View File

@ -1212,7 +1212,12 @@ pub fn Stream(comptime Handler: type) type {
if (!@hasDecl(T, "setActiveStatusDisplay")) if (!@hasDecl(T, "setActiveStatusDisplay"))
break :decsasd false; break :decsasd false;
try self.handler.setActiveStatusDisplay(@enumFromInt(input.params[0])); const display = std.meta.intToEnum(
ansi.StatusDisplay,
input.params[0],
) catch break :decsasd false;
try self.handler.setActiveStatusDisplay(display);
break :decsasd true; break :decsasd true;
}; };