From 8dbb6343f4e587e74f0c09acd775769f0b102026 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Fri, 15 Jul 2022 09:34:17 -0700 Subject: [PATCH] KIND OF handle mode 3 (132 col mode) This gets vttest looking slightly better on test 1, page 4. It still isn't correct but we're looking better. --- src/Window.zig | 17 +++++++++++++++++ src/terminal/Terminal.zig | 3 +++ 2 files changed, 20 insertions(+) diff --git a/src/Window.zig b/src/Window.zig index 2d8d04a3f..d0c2a13b9 100644 --- a/src/Window.zig +++ b/src/Window.zig @@ -773,6 +773,23 @@ pub fn setMode(self: *Window, mode: terminal.Mode, enabled: bool) !void { .bracketed_paste => self.bracketed_paste = true, + .enable_mode_3 => self.terminal.modes.enable_mode_3 = @boolToInt(enabled), + .@"132_column" => mode3: { + // TODO: test this + + // Do nothing if "enable mode 3" is not set. + if (self.terminal.modes.enable_mode_3 == 0) break :mode3; + + // Set it + self.terminal.modes.@"132_column" = @boolToInt(enabled); + + // TODO: do not clear screen flag mode + self.terminal.eraseDisplay(.complete); + self.terminal.setCursorPos(1, 1); + + // TODO: left/right margins + }, + else => if (enabled) log.warn("unimplemented mode: {}", .{mode}), } } diff --git a/src/terminal/Terminal.zig b/src/terminal/Terminal.zig index bd71799f0..4819b5e51 100644 --- a/src/terminal/Terminal.zig +++ b/src/terminal/Terminal.zig @@ -47,6 +47,9 @@ modes: packed struct { reverse_colors: u1 = 0, // 5, origin: u1 = 0, // 6 autowrap: u1 = 1, // 7 + + @"132_column": u1 = 0, // 3, + enable_mode_3: u1 = 0, // 40 } = .{}, /// Scrolling region is the area of the screen designated where scrolling