1
1
mirror of https://github.com/wez/wezterm.git synced 2024-11-27 12:23:46 +03:00

term: implement RIS Full Reset sequence

refs: https://github.com/wez/wezterm/issues/211#issuecomment-642056005
This commit is contained in:
Wez Furlong 2020-06-10 08:38:04 -07:00
parent b370c8020f
commit 9c9933039d

View File

@ -1826,6 +1826,31 @@ impl<'a> Performer<'a> {
}
}
// RIS resets a device to its initial state, i.e. the state it has after it is switched
// on. This may imply, if applicable: remove tabulation stops, remove qualified areas,
// reset graphic rendition, erase all positions, move active position to first
// character position of first line.
Esc::Code(EscCode::FullReset) => {
self.pen = Default::default();
self.cursor = Default::default();
self.wrap_next = false;
self.insert = false;
self.dec_auto_wrap = true;
self.dec_origin_mode = false;
self.application_cursor_keys = false;
self.dec_ansi_mode = false;
self.application_keypad = false;
self.bracketed_paste = false;
self.sgr_mouse = false;
self.button_event_mouse = false;
self.current_mouse_button = MouseButton::None;
self.cursor_visible = true;
self.dec_line_drawing_mode = false;
self.tabs = TabStop::new(self.screen().physical_cols, 8);
self.palette.take();
self.scroll_region = 0..self.screen().physical_rows as VisibleRowIndex;
}
_ => error!("ESC: unhandled {:?}", esc),
}
}