Better handling of standard streams on Windows

This commit is contained in:
elicn
2022-05-18 18:44:31 +03:00
parent 60105fe61f
commit 6bf4673159
+34 -1
View File
@@ -4,7 +4,7 @@
#
import ntpath
from typing import Callable
from typing import Callable, TextIO
from unicorn import UcError
@@ -93,6 +93,39 @@ class QlOsWindows(QlOs):
self.services = {}
self.load()
# only after handle manager has been set up we can assign the standard streams
self.stdin = self._stdin
self.stdout = self._stdout
self.stderr = self._stderr
@QlOs.stdin.setter
def stdin(self, stream: TextIO) -> None:
self._stdin = stream
handle = self.handle_manager.get(const.STD_INPUT_HANDLE)
assert handle is not None
handle.obj = stream
@QlOs.stdout.setter
def stdout(self, stream: TextIO) -> None:
self._stdout = stream
handle = self.handle_manager.get(const.STD_OUTPUT_HANDLE)
assert handle is not None
handle.obj = stream
@QlOs.stderr.setter
def stderr(self, stream: TextIO) -> None:
self._stderr = stream
handle = self.handle_manager.get(const.STD_ERROR_HANDLE)
assert handle is not None
handle.obj = stream
def load(self):
self.setupGDT()