From 7e846bd3677ebebc74c6036555ea9a1b9e16b7f4 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 29 Aug 2023 20:18:54 -0700 Subject: [PATCH] terminal: tabstops were off by one Fixes #359 See #359 for a test script. The unit tests were also wrong. I used the test script in #359 to verify the exact column that tabstops should be set at. --- src/terminal/Tabstops.zig | 8 ++++---- src/terminal/Terminal.zig | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/terminal/Tabstops.zig b/src/terminal/Tabstops.zig index 0ec882f1e..15e45c6b8 100644 --- a/src/terminal/Tabstops.zig +++ b/src/terminal/Tabstops.zig @@ -149,7 +149,7 @@ pub fn reset(self: *Tabstops, interval: usize) void { @memset(self.dynamic_stops, 0); if (interval > 0) { - var i: usize = interval - 1; + var i: usize = interval; while (i < self.cols - 1) : (i += interval) { self.set(i); } @@ -203,9 +203,9 @@ test "Tabstops: interval" { var t: Tabstops = try init(testing.allocator, 80, 4); defer t.deinit(testing.allocator); try testing.expect(!t.get(0)); - try testing.expect(t.get(3)); - try testing.expect(!t.get(4)); - try testing.expect(t.get(7)); + try testing.expect(t.get(4)); + try testing.expect(!t.get(5)); + try testing.expect(t.get(8)); } test "Tabstops: count on 80" { diff --git a/src/terminal/Terminal.zig b/src/terminal/Terminal.zig index f474c98c8..fdf5bf3a0 100644 --- a/src/terminal/Terminal.zig +++ b/src/terminal/Terminal.zig @@ -1901,11 +1901,11 @@ test "Terminal: horizontal tabs" { // HT try t.print('1'); try t.horizontalTab(); - try testing.expectEqual(@as(usize, 7), t.screen.cursor.x); + try testing.expectEqual(@as(usize, 8), t.screen.cursor.x); // HT try t.horizontalTab(); - try testing.expectEqual(@as(usize, 15), t.screen.cursor.x); + try testing.expectEqual(@as(usize, 16), t.screen.cursor.x); // HT at the end try t.horizontalTab(); @@ -1924,11 +1924,11 @@ test "Terminal: horizontal tabs back" { // HT try t.horizontalTabBack(); - try testing.expectEqual(@as(usize, 15), t.screen.cursor.x); + try testing.expectEqual(@as(usize, 16), t.screen.cursor.x); // HT try t.horizontalTabBack(); - try testing.expectEqual(@as(usize, 7), t.screen.cursor.x); + try testing.expectEqual(@as(usize, 8), t.screen.cursor.x); // HT try t.horizontalTabBack();