aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md4
-rw-r--r--src/ansi.rs4
2 files changed, 8 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 42aeae9..53b2046 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,10 @@
CHANGELOG
=========
+## Unreleased
+
+- Support `CSI ? 5 W` to reset tabs stops to every 8th column
+
## 0.14.1
- Crash when partial advance buffer stopped inside some grapheme boundaries
diff --git a/src/ansi.rs b/src/ansi.rs
index fa5b1ed..a0d5e51 100644
--- a/src/ansi.rs
+++ b/src/ansi.rs
@@ -612,6 +612,9 @@ pub trait Handler {
/// Clear tab stops.
fn clear_tabs(&mut self, _mode: TabulationClearMode) {}
+ /// Set tab stops at every `interval`.
+ fn set_tabs(&mut self, _interval: u16) {}
+
/// Reset terminal state.
fn reset_state(&mut self) {}
@@ -1574,6 +1577,7 @@ where
('E', []) => handler.move_down_and_cr(next_param_or(1) as usize),
('F', []) => handler.move_up_and_cr(next_param_or(1) as usize),
('G', []) | ('`', []) => handler.goto_col(next_param_or(1) as usize - 1),
+ ('W', [b'?']) if next_param_or(0) == 5 => handler.set_tabs(8),
('g', []) => {
let mode = match next_param_or(0) {
0 => TabulationClearMode::Current,