From 3bd4af23da3b28536250e17d70938595284bc76f Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Tue, 27 Aug 2024 08:54:34 -0700 Subject: [PATCH] fix: Refactor `run_interactive_command` function to use UTF-8 encoding --- aider/utils.py | 32 +------------------------------- 1 file changed, 1 insertion(+), 31 deletions(-) diff --git a/aider/utils.py b/aider/utils.py index 4e7be5ace..811a112e8 100644 --- a/aider/utils.py +++ b/aider/utils.py @@ -30,37 +30,7 @@ def run_interactive_command(command): try: # Spawn the command - child = pexpect.spawn(command, encoding=None) - - # Transfer control to the user, capturing output - child.interact(output_filter=output_callback) - - # Wait for the command to finish and get the exit status - child.close() - return child.exitstatus, output.getvalue().decode("utf-8", errors="replace") - - except pexpect.ExceptionPexpect as e: - error_msg = f"Error running command: {e}" - print(error_msg, file=sys.stderr) - return 1, error_msg - - -def run_interactive_command(command): - """ - Run a shell command interactively using pexpect, capturing all output. - - :param command: The command to run as a string. - :return: A tuple containing (exit_status, output) - """ - output = BytesIO() - - def output_callback(b): - output.write(b) - return b - - try: - # Spawn the command - child = pexpect.spawn(command, encoding=None) + child = pexpect.spawn(command, encoding="utf-8") # Transfer control to the user, capturing output child.interact(output_filter=output_callback)