diff --git a/src/terminal/Terminal.zig b/src/terminal/Terminal.zig index 68080637e..3a6422b50 100644 --- a/src/terminal/Terminal.zig +++ b/src/terminal/Terminal.zig @@ -329,6 +329,11 @@ pub fn eraseLine( std.mem.set(Screen.Cell, row[0..self.cursor.x], self.cursor.pen); }, + .complete => { + const row = self.screen.getRow(self.cursor.y); + std.mem.set(Screen.Cell, row, self.cursor.pen); + }, + else => { log.err("unimplemented erase line mode: {}", .{mode}); @panic("unimplemented"); diff --git a/src/terminal/csi.zig b/src/terminal/csi.zig index 85d23a3b8..6f1fa7ae7 100644 --- a/src/terminal/csi.zig +++ b/src/terminal/csi.zig @@ -10,6 +10,10 @@ pub const EraseDisplay = enum(u8) { pub const EraseLine = enum(u8) { right = 0, left = 1, - complete = 3, + complete = 2, right_unless_pending_wrap = 4, + + // Non-exhaustive so that @intToEnum never fails since the inputs are + // user-generated. + _, };