From 1852707af3ebd3f261d72b46bd110ccbbbc5a51d Mon Sep 17 00:00:00 2001 From: Joe Wilm Date: Mon, 6 Feb 2017 13:13:25 -0800 Subject: Implement clearing above cursor --- src/term/mod.rs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'src/term') diff --git a/src/term/mod.rs b/src/term/mod.rs index 58a5b314..0dc5532c 100644 --- a/src/term/mod.rs +++ b/src/term/mod.rs @@ -1137,8 +1137,20 @@ impl ansi::Handler for Term { ansi::ClearMode::All => { self.grid.clear(|c| c.reset(&template)); }, - _ => { - trace!("ansi::ClearMode::Above not implemented"); + ansi::ClearMode::Above => { + // If clearing more than one line + if self.cursor.point.line > Line(1) { + // Fully clear all lines before the current line + for row in &mut self.grid[..self.cursor.point.line] { + for cell in row { + cell.reset(&template); + } + } + } + // Clear up to the current column in the current line + for cell in &mut self.grid[self.cursor.point.line][..self.cursor.point.col] { + cell.reset(&template); + } } } } -- cgit