From 16132d0309dfa7ee408bd81b94463bb7c2f42f29 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 5 Aug 2023 13:24:25 +0530 Subject: [PATCH] Fix stdio not actually being forwarded --- kitty_tests/__init__.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/kitty_tests/__init__.py b/kitty_tests/__init__.py index feb146587..92532fc20 100644 --- a/kitty_tests/__init__.py +++ b/kitty_tests/__init__.py @@ -206,6 +206,7 @@ def assertEqualAttributes(self, c1, c2): @contextmanager def forwardable_stdio(): + global debug_stderr, debug_stdout debug_stdout = fd = os.dup(sys.stdout.fileno()) os.set_inheritable(fd, True) debug_stderr = fd = os.dup(sys.stderr.fileno()) @@ -234,8 +235,6 @@ def __init__( else: self.child_pid, self.master_fd = fork() self.is_child = self.child_pid == CHILD - if self.is_child: - os.environ['KITTY_STDIO_FORWARDED'] = str(debug_stdout) self.child_waited_for = False if self.is_child: while read_screen_size().width != columns * cell_width: @@ -249,7 +248,10 @@ def __init__( os.dup2(stdout_fd, STDOUT_FILENO) os.close(stdout_fd) signal.pthread_sigmask(signal.SIG_SETMASK, ()) - os.execvpe(argv[0], argv, env or os.environ) + env = os.environ if env is None else env + if debug_stdout > -1: + env['KITTY_STDIO_FORWARDED'] = str(debug_stdout) + os.execvpe(argv[0], argv, env) if stdin_fd is not None: os.close(stdin_fd) if stdout_fd is not None: