From f920068ce60694fecc39a9b3574df48bc70f8693 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Thu, 4 Jul 2024 10:47:11 -0700 Subject: [PATCH] terminal: full reset clears OSC8 state --- src/terminal/Terminal.zig | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/terminal/Terminal.zig b/src/terminal/Terminal.zig index 55e361f09..d11b10788 100644 --- a/src/terminal/Terminal.zig +++ b/src/terminal/Terminal.zig @@ -2541,6 +2541,7 @@ pub fn fullReset(self: *Terminal) void { log.warn("restore cursor on primary screen failed err={}", .{err}); }; + self.screen.endHyperlink(); self.screen.charset = .{}; self.modes = .{}; self.flags = .{}; @@ -9959,6 +9960,15 @@ test "Terminal: fullReset with a non-empty pen" { try testing.expectEqual(@as(style.Id, 0), t.screen.cursor.style_id); } +test "Terminal: fullReset hyperlink" { + var t = try init(testing.allocator, .{ .cols = 80, .rows = 80 }); + defer t.deinit(testing.allocator); + + try t.screen.startHyperlink("http://example.com", null); + t.fullReset(); + try testing.expectEqual(0, t.screen.cursor.hyperlink_id); +} + test "Terminal: fullReset with a non-empty saved cursor" { var t = try init(testing.allocator, .{ .cols = 80, .rows = 80 }); defer t.deinit(testing.allocator);