From 3965fd4f65f04541db4f8addb5440a5c1854465d Mon Sep 17 00:00:00 2001 From: Benedek Racz <betontalpfa@gmail.com> Date: Wed, 22 Jan 2020 12:33:09 +0100 Subject: [PATCH] [ADD] terminal local echo feature --- wexpect/console_reader.py | 4 ++-- wexpect/spawn.py | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/wexpect/console_reader.py b/wexpect/console_reader.py index a971b27..92363c0 100644 --- a/wexpect/console_reader.py +++ b/wexpect/console_reader.py @@ -85,7 +85,7 @@ class ConsoleReaderBase: """ def __init__(self, path, host_pid, cp=None, window_size_x=80, window_size_y=25, - buffer_size_x=80, buffer_size_y=16000, **kwargs): + buffer_size_x=80, buffer_size_y=16000, local_echo=True, **kwargs): """Initialize the console starts the child in it and reads the console periodically. Args: @@ -103,7 +103,7 @@ class ConsoleReaderBase: self.connection = None self.consin = None self.consout = None - self.local_echo = True + self.local_echo = local_echo self.console_pid = os.getpid() self.host_pid = host_pid self.host_process = psutil.Process(host_pid) diff --git a/wexpect/spawn.py b/wexpect/spawn.py index f18b04b..3c9376c 100644 --- a/wexpect/spawn.py +++ b/wexpect/spawn.py @@ -242,6 +242,7 @@ class SpawnBase: self.delimiter = EOF self.cwd = cwd self.env = env + self.echo = echo self.maxread = maxread # max bytes to read at one time into buffer self.delaybeforesend = 0.05 # Sets sleep time used just before sending data to child. Time in seconds. self.delayafterterminate = 0.1 # Sets delay in terminate() method to allow kernel time to update process status. Time in seconds. @@ -913,7 +914,7 @@ class SpawnPipe(SpawnBase): "import wexpect;" "import time;" "wexpect.console_reader.logger.info('loggerStart.');" - f"wexpect.ConsoleReaderPipe(wexpect.join_args({args}), {pid});" + f"wexpect.ConsoleReaderPipe(wexpect.join_args({args}), {pid}, local_echo={self.echo});" "wexpect.console_reader.logger.info('Console finished2.');" ) @@ -1030,7 +1031,7 @@ class SpawnSocket(SpawnBase): "import wexpect;" "import time;" "wexpect.console_reader.logger.info('loggerStart.');" - f"wexpect.ConsoleReaderSocket(wexpect.join_args({args}), {pid}, port={self.port});" + f"wexpect.ConsoleReaderSocket(wexpect.join_args({args}), {pid}, port={self.port}, local_echo={self.echo});" "wexpect.console_reader.logger.info('Console finished2.');" )