diff options
-rw-r--r-- | CHANGELOG.md | 4 | ||||
-rw-r--r-- | src/ansi.rs | 4 |
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, |