From c99cdc6a53fd30815ef59ce11df6bad9f3fdd37e Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Fri, 28 Jul 2023 20:29:12 +0200 Subject: [PATCH] #3930 replace HideStdErr with redirect_stderr --- xpra/server/source/shell.py | 5 ++--- xpra/x11/bindings/xwayland.pyx | 19 ++++++++++--------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/xpra/server/source/shell.py b/xpra/server/source/shell.py index 3cd272d24e..603ee50bad 100644 --- a/xpra/server/source/shell.py +++ b/xpra/server/source/shell.py @@ -67,9 +67,8 @@ def do_shell_exec(self, code) -> tuple[str,str]: } stdout = io.StringIO() stderr = io.StringIO() - with redirect_stdout(stdout): - with redirect_stderr(stderr): - exec(code, _globals, {}) #pylint: disable=exec-used + with redirect_stdout(stdout), redirect_stderr(stderr): + exec(code, _globals, {}) #pylint: disable=exec-used return stdout.getvalue(), stderr.getvalue() except Exception as e: log("shell_exec(..)", exc_info=True) diff --git a/xpra/x11/bindings/xwayland.pyx b/xpra/x11/bindings/xwayland.pyx index 42395097aa..ab8de2d607 100644 --- a/xpra/x11/bindings/xwayland.pyx +++ b/xpra/x11/bindings/xwayland.pyx @@ -4,7 +4,8 @@ # later version. See the file COPYING for details. import os -from xpra.os_util import HideStdErr +from io import StringIO +from contextlib import redirect_stderr from xpra.x11.bindings.xlib cimport ( Success, Display, Window, Atom, Status, @@ -25,11 +26,11 @@ def isX11(display_name : str=os.environ.get("DISPLAY", "")): b = display_name.encode() cdef char* display = b cdef Display *d = NULL - with HideStdErr(): + with redirect_stderr(StringIO()) as f: d = XOpenDisplay(display) - if not d: - log(f"isX11({display_name}) cannot open display") - return False + if not d: + log(f"isX11({display_name}) cannot open display: %s", f.getvalue()) + return False return True @@ -37,11 +38,11 @@ def isxwayland(display_name : str=os.environ.get("DISPLAY", "")): b = display_name.encode() cdef char* display = b cdef Display *d = NULL - with HideStdErr(): + with redirect_stderr(StringIO()) as f: d = XOpenDisplay(display) - if not d: - log(f"isxwayland({display_name}) cannot open display") - return False + if not d: + log(f"isxwayland({display_name}) cannot open display: %s", f.getvalue()) + return False cdef int opcode, event, error try: #the easy way: