From 9c45ce63039f0d4a9fb077a546cdd1e969a49df3 Mon Sep 17 00:00:00 2001 From: Ayman Bagabas Date: Fri, 17 Jan 2025 07:44:03 -0500 Subject: Add support for DECST8C See https://vt100.net/docs/vt510-rm/DECST8C.html. --- CHANGELOG.md | 4 ++++ src/ansi.rs | 4 ++++ 2 files changed, 8 insertions(+) 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, -- cgit