use vt100::Parser;
fn main() {
let mut p = Parser::new(24, 80, 0);
p.process(b"PS C:\\Users\\test> ");
let (r, c) = p.screen().cursor_position();
println!("Prompt cursor: row={} col={} hide={}", r, c, p.screen().hide_cursor());
p.process(b"\x1b[?1049h");
p.process(b"\x1b[?25l");
println!("In alt after hide: hide={} alt={}", p.screen().hide_cursor(), p.screen().alternate_screen());
p.process(b"\x1b[1;1HTUI CONTENT");
p.process(b"\x1b[?1049l");
let (r, c) = p.screen().cursor_position();
println!("After RMCUP: row={} col={} hide={} alt={}", r, c, p.screen().hide_cursor(), p.screen().alternate_screen());
p.process(b"\x1b[0m\x1b[?25h\x1b[?1l\x1b[?9l\x1b[?47l\x1b[?1000l\x1b[?1002l\x1b[?1003l\x1b[?1005l\x1b[?1006l\x1b[?2004l");
let (r, c) = p.screen().cursor_position();
println!("After FULL_MODE_RESET: row={} col={} hide={}", r, c, p.screen().hide_cursor());
p.process(b"\x1b[?25l");
println!("After post-mortem hide: hide={}", p.screen().hide_cursor());
p.process(b"\x1b[0m\x1b[?25h\x1b[?1l\x1b[?9l\x1b[?47l\x1b[?1000l\x1b[?1002l\x1b[?1003l\x1b[?1005l\x1b[?1006l\x1b[?2004l");
println!("After 2nd FULL_MODE_RESET: hide={}", p.screen().hide_cursor());
let mut p2 = Parser::new(24, 80, 0);
p2.process(b"before"); println!("\np2: hide={}", p2.screen().hide_cursor());
p2.process(b"\x1b[?25l"); println!("p2 after hide on normal: hide={}", p2.screen().hide_cursor());
p2.process(b"\x1b[?1049h"); println!("p2 in alt: hide={}", p2.screen().hide_cursor());
p2.process(b"\x1b[?25h"); println!("p2 show on alt: hide={}", p2.screen().hide_cursor());
p2.process(b"\x1b[?1049l"); println!("p2 after RMCUP: hide={}", p2.screen().hide_cursor());
}