Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 20 additions & 11 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
[package]
name = "vt100-ctt"
version = "0.15.3"
authors = ["Chris Titus <contact@christitus.com>", "Jesse Luehrs <doy@tozt.net>"]
version = "0.16.0"
authors = [
"Chris Titus <contact@christitus.com>",
"Jesse Luehrs <doy@tozt.net>",
]
edition = "2021"

description = "Library for parsing terminal data - up-to-date version"
Expand All @@ -14,16 +17,22 @@ license = "MIT"
include = ["src/**/*", "LICENSE", "README.md", "CHANGELOG.md"]

[dependencies]
itoa = "1.0.9"
log = "0.4.19"
unicode-width = "0.1.10"
vte = "0.11.1"
itoa = "1.0.11"
log = "0.4.22"
unicode-width = "0.2.0"
vte = "0.13.0"
ratatui = { version = "0.29.0", default-features = false, optional = true }
tui-term = { version = "0.2.0", default-features = false, optional = true }

[features]
default = ["tui-term"]
tui-term = ["dep:tui-term", "dep:ratatui"]

[dev-dependencies]
nix = "0.26.2"
nix = { version = "0.29.0", features = ["term"] }
quickcheck = "1.0"
rand = "0.8"
serde = { version = "1.0.182", features = ["derive"] }
serde_json = "1.0.104"
terminal_size = "0.2.6"
vte = "0.11.1"
serde = { version = "1.0.215", features = ["derive"] }
serde_json = "1.0.132"
terminal_size = "0.4.0"
vte = "0.13.0"
26 changes: 13 additions & 13 deletions examples/fuzz.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ use std::io::Read as _;
#[path = "../tests/helpers/mod.rs"]
mod helpers;

fn check_full(vt_base: &vt100::Screen, idx: usize) {
fn check_full(vt_base: &vt100_ctt::Screen, idx: usize) {
let mut input = vec![];
input.extend(vt_base.state_formatted());
let mut vt_full = vt100::Parser::default();
let mut vt_full = vt100_ctt::Parser::default();
vt_full.process(&input);
assert!(
helpers::compare_screens(vt_full.screen(), vt_base),
Expand All @@ -17,13 +17,13 @@ fn check_full(vt_base: &vt100::Screen, idx: usize) {
}

fn check_diff_empty(
vt_base: &vt100::Screen,
empty: &vt100::Screen,
vt_base: &vt100_ctt::Screen,
empty: &vt100_ctt::Screen,
idx: usize,
) {
let mut input = vec![];
input.extend(vt_base.state_diff(empty));
let mut vt_diff_empty = vt100::Parser::default();
let mut vt_diff_empty = vt100_ctt::Parser::default();
vt_diff_empty.process(&input);
assert!(
helpers::compare_screens(vt_diff_empty.screen(), vt_base),
Expand All @@ -34,9 +34,9 @@ fn check_diff_empty(
}

fn check_diff(
vt_base: &vt100::Screen,
vt_diff: &mut vt100::Parser,
prev: &vt100::Screen,
vt_base: &vt100_ctt::Screen,
vt_diff: &mut vt100_ctt::Parser,
prev: &vt100_ctt::Screen,
idx: usize,
) {
let mut input = vec![];
Expand All @@ -50,7 +50,7 @@ fn check_diff(
);
}

fn check_rows(vt_base: &vt100::Screen, idx: usize) {
fn check_rows(vt_base: &vt100_ctt::Screen, idx: usize) {
let mut input = vec![];
let mut wrapped = false;
for (idx, row) in vt_base.rows_formatted(0, 80).enumerate() {
Expand All @@ -66,7 +66,7 @@ fn check_rows(vt_base: &vt100::Screen, idx: usize) {
input.extend(&vt_base.attributes_formatted());
input.extend(&vt_base.input_mode_formatted());
input.extend(&vt_base.title_formatted());
let mut vt_rows = vt100::Parser::default();
let mut vt_rows = vt100_ctt::Parser::default();
vt_rows.process(&input);
assert!(
helpers::compare_screens(vt_rows.screen(), vt_base),
Expand All @@ -93,10 +93,10 @@ fn read_byte() -> Option<u8> {
}

fn main() {
let mut vt_base = vt100::Parser::default();
let mut vt_diff = vt100::Parser::default();
let mut vt_base = vt100_ctt::Parser::default();
let mut vt_diff = vt100_ctt::Parser::default();
let mut prev_screen = vt_base.screen().clone();
let empty_screen = vt100::Parser::default().screen().clone();
let empty_screen = vt100_ctt::Parser::default().screen().clone();
let mut idx = 0;
while let Some(byte) = read_byte() {
vt_base.process(&[byte]);
Expand Down
2 changes: 1 addition & 1 deletion examples/generate_fixture.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ fn main() {
input_file.write_all(&input).unwrap();

prev_input.extend(input);
let mut term = vt100::Parser::default();
let mut term = vt100_ctt::Parser::default();
term.process(&prev_input);
let screen = helpers::FixtureScreen::from_screen(term.screen());

Expand Down
2 changes: 1 addition & 1 deletion examples/process.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ fn read_frames() -> impl Iterator<Item = Vec<u8>> {
}

fn process_frames(frames: &[Vec<u8>]) {
let mut parser = vt100::Parser::default();
let mut parser = vt100_ctt::Parser::default();
for frame in frames {
parser.process(frame);
}
Expand Down
4 changes: 2 additions & 2 deletions examples/process_cb.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use std::io::Read as _;

struct Callbacks;
impl vt100::Callbacks for Callbacks {}
impl vt100_ctt::Callbacks for Callbacks {}

fn read_frames() -> impl Iterator<Item = Vec<u8>> {
(1..=7625).map(|i| {
Expand All @@ -15,7 +15,7 @@ fn read_frames() -> impl Iterator<Item = Vec<u8>> {
}

fn process_frames(frames: &[Vec<u8>]) {
let mut parser = vt100::Parser::default();
let mut parser = vt100_ctt::Parser::default();
for frame in frames {
parser.process_cb(frame, &mut Callbacks);
}
Expand Down
12 changes: 6 additions & 6 deletions examples/process_cb_bb.rs
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
use std::io::Read as _;

struct Callbacks;
impl vt100::Callbacks for Callbacks {
fn audible_bell(&mut self, screen: &mut vt100::Screen) {
impl vt100_ctt::Callbacks for Callbacks {
fn audible_bell(&mut self, screen: &mut vt100_ctt::Screen) {
std::hint::black_box(screen);
}

fn visual_bell(&mut self, screen: &mut vt100::Screen) {
fn visual_bell(&mut self, screen: &mut vt100_ctt::Screen) {
std::hint::black_box(screen);
}

fn resize(&mut self, screen: &mut vt100::Screen, request: (u16, u16)) {
fn resize(&mut self, screen: &mut vt100_ctt::Screen, request: (u16, u16)) {
std::hint::black_box((screen, request));
}

fn error(&mut self, screen: &mut vt100::Screen) {
fn error(&mut self, screen: &mut vt100_ctt::Screen) {
std::hint::black_box(screen);
}
}
Expand All @@ -31,7 +31,7 @@ fn read_frames() -> impl Iterator<Item = Vec<u8>> {
}

fn process_frames(frames: &[Vec<u8>]) {
let mut parser = vt100::Parser::default();
let mut parser = vt100_ctt::Parser::default();
for frame in frames {
parser.process_cb(frame, &mut Callbacks);
}
Expand Down
2 changes: 1 addition & 1 deletion examples/process_diff.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ fn read_frames() -> impl Iterator<Item = Vec<u8>> {

fn draw_frames(frames: &[Vec<u8>]) {
let mut stdout = std::io::stdout();
let mut parser = vt100::Parser::default();
let mut parser = vt100_ctt::Parser::default();
let mut screen = parser.screen().clone();
for frame in frames {
parser.process(frame);
Expand Down
2 changes: 1 addition & 1 deletion examples/process_full.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ fn read_frames() -> impl Iterator<Item = Vec<u8>> {

fn draw_frames(frames: &[Vec<u8>]) {
let mut stdout = std::io::stdout();
let mut parser = vt100::Parser::default();
let mut parser = vt100_ctt::Parser::default();
for frame in frames {
parser.process(frame);
let contents = parser.screen().contents_formatted();
Expand Down
12 changes: 6 additions & 6 deletions examples/real_terminal_compare.rs
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
use std::io::{Read as _, Write as _};
use std::os::unix::io::AsRawFd as _;
use std::io::{self, Read, Write};
use std::os::fd::AsFd;

#[path = "../tests/helpers/mod.rs"]
mod helpers;

fn main() {
unsafe { helpers::QUIET = true }

let mut stdin = std::io::stdin();
let mut stdout = std::io::stdout();
let mut stdin = io::stdin();
let mut stdout = io::stdout();

let stdin_fd = std::io::stdin().as_raw_fd();
let stdin_fd = stdin.as_fd();
let mut termios = nix::sys::termios::tcgetattr(stdin_fd).unwrap();
nix::sys::termios::cfmakeraw(&mut termios);
nix::sys::termios::tcsetattr(
Expand Down Expand Up @@ -39,7 +39,7 @@ fn main() {
stdout.write_all(b"\x1b[H\x1b[J").unwrap();
stdout.flush().unwrap();

let mut parser = vt100::Parser::new(size.0, size.1, 0);
let mut parser = vt100_ctt::Parser::new(size.0, size.1, 0);
let mut buf = [0u8; 4096];
let mut screen = parser.screen().clone();
let mut idx = 0;
Expand Down
2 changes: 2 additions & 0 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ mod perform;
mod row;
mod screen;
mod term;
#[cfg(feature = "tui-term")]
mod tui_term;

pub use attrs::Color;
pub use callbacks::Callbacks;
Expand Down
Loading