From 4ffd5cd9941d8e55f980ee51907141dc72b2fd71 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Fri, 26 Aug 2022 09:56:17 -0700 Subject: [PATCH] SGR 39/49 (reset fg/bg, respectively) --- src/terminal/Terminal.zig | 4 ++++ src/terminal/sgr.zig | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/src/terminal/Terminal.zig b/src/terminal/Terminal.zig index ee2629ea0..5a860e5b3 100644 --- a/src/terminal/Terminal.zig +++ b/src/terminal/Terminal.zig @@ -324,6 +324,10 @@ pub fn setAttribute(self: *Terminal, attr: sgr.Attribute) !void { .@"8_bg" => |n| self.screen.cursor.pen.bg = color.default[@enumToInt(n)], + .reset_fg => self.screen.cursor.pen.fg = null, + + .reset_bg => self.screen.cursor.pen.bg = null, + .@"8_bright_fg" => |n| self.screen.cursor.pen.fg = color.default[@enumToInt(n)], .@"8_bright_bg" => |n| self.screen.cursor.pen.bg = color.default[@enumToInt(n)], diff --git a/src/terminal/sgr.zig b/src/terminal/sgr.zig index d2e41d31e..0aa1b9b19 100644 --- a/src/terminal/sgr.zig +++ b/src/terminal/sgr.zig @@ -41,6 +41,10 @@ pub const Attribute = union(enum) { @"8_bg": color.Name, @"8_fg": color.Name, + /// Reset the fg/bg to their default values. + reset_fg: void, + reset_bg: void, + /// Set the background/foreground as a named bright color attribute. @"8_bright_bg": color.Name, @"8_bright_fg": color.Name, @@ -118,6 +122,8 @@ pub const Parser = struct { }; }, + 39 => return Attribute{ .reset_fg = {} }, + 40...47 => return Attribute{ .@"8_bg" = @intToEnum(color.Name, slice[0] - 40), }, @@ -144,6 +150,8 @@ pub const Parser = struct { }; }, + 49 => return Attribute{ .reset_bg = {} }, + 90...97 => return Attribute{ .@"8_bright_fg" = @intToEnum(color.Name, slice[0] - 90), },