diff options
author | Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> | 2014-05-19 19:48:35 +0200 |
---|---|---|
committer | Christian Lohmaier <lohmaier+LibreOffice@googlemail.com> | 2014-05-19 19:58:54 +0200 |
commit | e175eb3cedded28909247f4d46f2c17ff2f58be2 (patch) | |
tree | 841294bd60db85930acbc1d40c81a009ab8f5dcd /external/python3/python-3.3.3-py17797.patch.1 | |
parent | 36f58d4dd1ee5ebe220a5e1e7d1b28aeb15b8977 (diff) |
fdo#77891 fix python crash when in GUI mode, target WinXP with VS2012
VS2012 did change return value of fileno function, this results in a
crash when run in GUI mode (but not when launching from a shell), as
python tries to access the nonexisting stdin/stdout/stderr
Also explicitly target Windows XP
Change-Id: Ic783713b55453f3c38b2e766a664b7f4678711de
Diffstat (limited to 'external/python3/python-3.3.3-py17797.patch.1')
-rw-r--r-- | external/python3/python-3.3.3-py17797.patch.1 | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/external/python3/python-3.3.3-py17797.patch.1 b/external/python3/python-3.3.3-py17797.patch.1 new file mode 100644 index 000000000000..3c43fb120713 --- /dev/null +++ b/external/python3/python-3.3.3-py17797.patch.1 @@ -0,0 +1,44 @@ +http://bugs.python.org/issue17797 +http://connect.microsoft.com/VisualStudio/feedback/details/785119/ + +Visual Studio 2012 changed return value for fileno function that breaks +when python tries to check/setup stdin/out/err +diff -ur python3.org/Python/pythonrun.c python3/Python/pythonrun.c +--- python3.org/Python/pythonrun.c 2014-05-19 19:06:01.305362400 +0200 ++++ python3/Python/pythonrun.c 2014-05-19 19:07:13.649079800 +0200 +@@ -1083,7 +1083,11 @@ + * and fileno() may point to an invalid file descriptor. For example + * GUI apps don't have valid standard streams by default. + */ ++#ifdef MS_WINDOWS ++ if (!is_valid_fd(fd) || GetStdHandle(STD_INPUT_HANDLE) == NULL) { ++#else + if (!is_valid_fd(fd)) { ++#endif + std = Py_None; + Py_INCREF(std); + } +@@ -1098,7 +1102,11 @@ + + /* Set sys.stdout */ + fd = fileno(stdout); ++#ifdef MS_WINDOWS ++ if (!is_valid_fd(fd) || GetStdHandle(STD_OUTPUT_HANDLE) == NULL) { ++#else + if (!is_valid_fd(fd)) { ++#endif + std = Py_None; + Py_INCREF(std); + } +@@ -1114,7 +1122,11 @@ + #if 1 /* Disable this if you have trouble debugging bootstrap stuff */ + /* Set sys.stderr, replaces the preliminary stderr */ + fd = fileno(stderr); ++#ifdef MS_WINDOWS ++ if (!is_valid_fd(fd) || GetStdHandle(STD_ERROR_HANDLE) == NULL) { ++#else + if (!is_valid_fd(fd)) { ++#endif + std = Py_None; + Py_INCREF(std); + } |