From 9e317971b4d9b80c4b0c17744f7556bf42726e22 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 15 Mar 2022 11:41:59 +0530 Subject: [PATCH] Simplify garbage clear logic --- kittens/ssh/main.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/kittens/ssh/main.py b/kittens/ssh/main.py index c84bbd6dd..586ba965c 100644 --- a/kittens/ssh/main.py +++ b/kittens/ssh/main.py @@ -519,14 +519,13 @@ def drain_potential_tty_garbage(p: 'subprocess.Popen[bytes]', data_request: str) termios.tcflush(tty.fileno(), termios.TCIFLUSH) data = b'' start = time.monotonic() - with open(tty.fileno(), 'rb', closefd=False) as tf: - os.set_blocking(tf.fileno(), False) - from tty import setraw - setraw(tf.fileno(), termios.TCSANOW) - while time.monotonic() - start < 1 and select([tf], [], [], 0.075)[0]: - data += tf.read() - if b'KITTY_DATA_END' in data: - return + while time.monotonic() - start < 1 and select([tty], [], [], 0.075)[0]: + q = os.read(tty.fileno(), io.DEFAULT_BUFFER_SIZE) + if not q: + break + data += q + if b'KITTY_DATA_END' in data: + return def run_ssh(ssh_args: List[str], server_args: List[str], found_extra_args: Tuple[str, ...]) -> NoReturn: