From 4302cde8ff88471e5e51fb9d7bf61fe6d59179e9 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 3 Dec 2012 10:01:09 +0000 Subject: re-apply a workaround for [#31555] Username with special chars in Windows 7 this time keep the stderr/stdout so there FD's are not closed (causing [#32720]). This workaround is ugly but saves us from using a patched python. --- source/blender/python/intern/bpy_interface.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'source/blender/python/intern/bpy_interface.c') diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c index 94cbee383ea..da40ded9a92 100644 --- a/source/blender/python/intern/bpy_interface.c +++ b/source/blender/python/intern/bpy_interface.c @@ -268,6 +268,19 @@ void BPY_python_start(int argc, const char **argv) Py_Initialize(); + /* THIS IS BAD: see http://bugs.python.org/issue16129 */ +#if 1 + /* until python provides a reliable way to set the env var */ + PyRun_SimpleString("import sys, io\n" + "sys.__backup_stdio__ = sys.__stdout__, sys.__stderr__\n" /* else we loose the FD's [#32720] */ + "sys.__stdout__ = sys.stdout = io.TextIOWrapper(io.open(sys.stdout.fileno(), 'wb', -1), " + "encoding='utf-8', errors='surrogateescape', newline='\\n', line_buffering=True)\n" + "sys.__stderr__ = sys.stderr = io.TextIOWrapper(io.open(sys.stderr.fileno(), 'wb', -1), " + "ncoding='utf-8', errors='surrogateescape', newline='\\n', line_buffering=True)\n"); +#endif + /* end the baddness */ + + // PySys_SetArgv(argc, argv); /* broken in py3, not a huge deal */ /* sigh, why do python guys not have a (char **) version anymore? */ { -- cgit v1.2.3