From fa92c4025edf63cbdce13f7dc39cd012ccfb3ad9 Mon Sep 17 00:00:00 2001 From: Jason Jean Date: Wed, 30 Apr 2025 18:43:01 -0400 Subject: [PATCH] fix(core): fix terminal output for non-tui (#30957) ## Current Behavior vt100 does not work for non TUI ## Expected Behavior do not use vt100 for printing to stdout. vt100 is still used for the TUI terminal panes. ## Related Issue(s) Fixes # --- .../src/native/pseudo_terminal/pseudo_terminal.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/nx/src/native/pseudo_terminal/pseudo_terminal.rs b/packages/nx/src/native/pseudo_terminal/pseudo_terminal.rs index 82adaefeb9..67cf2b4d83 100644 --- a/packages/nx/src/native/pseudo_terminal/pseudo_terminal.rs +++ b/packages/nx/src/native/pseudo_terminal/pseudo_terminal.rs @@ -110,14 +110,20 @@ impl PseudoTerminal { trace!("Quiet: {}", quiet); debug!("Read {} bytes", len); if let Ok(mut parser) = parser_clone.write() { - let prev = parser.screen().clone(); - parser.process(&buf[..len]); - debug!("{}", parser.get_raw_output().len()); - let write_buf = parser.screen().contents_diff(&prev); if !quiet { let mut logged_interrupted_error = false; + + let mut content = String::from_utf8_lossy(&buf[0..len]).to_string(); + if content.contains("\x1B[6n") { + trace!("Prevented terminal escape sequence ESC[6n from being printed."); + content = content.replace("\x1B[6n", ""); + } + + let write_buf = content.as_bytes(); + debug!("Escaped Stdout: {:?}", write_buf.escape_ascii().to_string()); + while let Err(e) = stdout.write_all(&write_buf) { match e.kind() { std::io::ErrorKind::Interrupted => {