From aafff194f984bd769732c180db2d885b8126588f Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Sun, 25 Jun 2023 09:19:43 -0700 Subject: [PATCH] terminal: SGR parse invisible (attr 8, 28) --- src/terminal/sgr.zig | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/terminal/sgr.zig b/src/terminal/sgr.zig index 865518b8e..2f127b017 100644 --- a/src/terminal/sgr.zig +++ b/src/terminal/sgr.zig @@ -1,4 +1,4 @@ -//! SGR (Select Graphic Rendition) attribute parsing and types. +//! SGR (Select Graphic Rendition) attrinvbute parsing and types. const std = @import("std"); const testing = std.testing; @@ -44,6 +44,10 @@ pub const Attribute = union(enum) { inverse: void, reset_inverse: void, + /// Invisible + invisible: void, + reset_invisible: void, + /// Strikethrough the text. strikethrough: void, reset_strikethrough: void, @@ -163,6 +167,8 @@ pub const Parser = struct { 7 => return Attribute{ .inverse = {} }, + 8 => return Attribute{ .invisible = {} }, + 9 => return Attribute{ .strikethrough = {} }, 22 => return Attribute{ .reset_bold = {} }, @@ -175,6 +181,8 @@ pub const Parser = struct { 27 => return Attribute{ .reset_inverse = {} }, + 28 => return Attribute{ .reset_invisible = {} }, + 29 => return Attribute{ .reset_strikethrough = {} }, 30...37 => return Attribute{ @@ -499,3 +507,9 @@ test "sgr: reset underline color" { var p: Parser = .{ .params = &[_]u16{59} }; try testing.expect(p.next().? == .reset_underline_color); } + +test "sgr: invisible" { + var p: Parser = .{ .params = &[_]u16{ 8, 28 } }; + try testing.expect(p.next().? == .invisible); + try testing.expect(p.next().? == .reset_invisible); +}