[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - 2 commits - external/python3 sw/source

Michael Stahl mstahl at redhat.com
Sat May 9 12:37:17 PDT 2015


 external/python3/python-3.3.3-py17797.patch.1 |   87 ++++++++++----------------
 sw/source/core/doc/doclay.cxx                 |    3 
 2 files changed, 35 insertions(+), 55 deletions(-)

New commits:
commit b424497fa2d7391857915bc1beb08918b37cd755
Author: Michael Stahl <mstahl at redhat.com>
Date:   Wed May 6 22:28:05 2015 +0200

    tdf#82968: python3: fix stdio detection on WNT harder
    
    Upgrade to the latest patch from http://bugs.python.org/issue17797
    which appears to work even if you invoke from cmd.exe
    
    Change-Id: I85f1cc5ad7d8c059d972ae2a6fd2be1bb5604c2c
    (cherry picked from commit be3e1d65f50fe8b4ce5e4a87a82ff231c00aae79)
    Reviewed-on: https://gerrit.libreoffice.org/15688
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/external/python3/python-3.3.3-py17797.patch.1 b/external/python3/python-3.3.3-py17797.patch.1
index d4f7ab8..8fcb703 100644
--- a/external/python3/python-3.3.3-py17797.patch.1
+++ b/external/python3/python-3.3.3-py17797.patch.1
@@ -4,59 +4,42 @@ 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
 GetStdHandle on Windows XP behaves contrary to the documentation...
-diff -ur python3.org/Python/pythonrun.c python3/Python/pythonrun.c
---- python3.org/Python/pythonrun.c	2014-05-24 16:36:20.361672900 +0200
-+++ python3/Python/pythonrun.c	2014-05-24 16:37:38.424159100 +0200
-@@ -1036,7 +1036,15 @@
-     int status = 0, fd;
-     PyObject * encoding_attr;
-     char *encoding = NULL, *errors;
--
-+#ifdef MS_WINDOWS
-+    OSVERSIONINFOEX osvi;
-+    BOOL bIsWindowsXP;
+
+diff --git a/Python/pythonrun.c b/Python/pythonrun.c
+index 91d56b7..d28ffc7 100644
+--- a/Python/pythonrun.c
++++ b/Python/pythonrun.c
+@@ -1015,13 +1015,28 @@ error:
+ static int
+ is_valid_fd(int fd)
+ {
+-    int dummy_fd;
+     if (fd < 0 || !_PyVerify_fd(fd))
+         return 0;
+-    dummy_fd = dup(fd);
+-    if (dummy_fd < 0)
+-        return 0;
+-    close(dummy_fd);
 +
-+    ZeroMemory(&osvi, sizeof(osvi));
-+    osvi.dwOSVersionInfoSize = sizeof(osvi);
-+    GetVersionEx(&osvi);
-+    bIsWindowsXP = (osvi.dwMajorVersion < 6);
-+#endif
-     /* Hack to avoid a nasty recursion issue when Python is invoked
-        in verbose mode: pre-import the Latin-1 and UTF-8 codecs */
-     if ((m = PyImport_ImportModule("encodings.utf_8")) == NULL) {
-@@ -1084,7 +1092,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 || bIsWindowsXP) {
++#if defined(MS_WINDOWS) && defined(HAVE_FSTAT)
++    /* dup (DuplicateHandle) doesn't say fd is a valid *file* handle.
++     * It could be a current thread pseudo-handle.
++     */
++    {
++        struct stat buf;
++        if (fstat(fd, &buf) < 0 && (errno == EBADF || errno == ENOENT))
++            return 0;
++    }
 +#else
-     if (!is_valid_fd(fd)) {
++    {
++        int dummy_fd;
++        dummy_fd = dup(fd);
++        if (dummy_fd < 0)
++            return 0;
++        close(dummy_fd);
++    }
 +#endif
-         std = Py_None;
-         Py_INCREF(std);
-     }
-@@ -1099,7 +1111,11 @@
++
+     return 1;
+ }
  
-     /* Set sys.stdout */
-     fd = fileno(stdout);
-+#ifdef MS_WINDOWS
-+    if (!is_valid_fd(fd) || GetStdHandle(STD_OUTPUT_HANDLE) == NULL || bIsWindowsXP) {
-+#else
-     if (!is_valid_fd(fd)) {
-+#endif
-         std = Py_None;
-         Py_INCREF(std);
-     }
-@@ -1115,7 +1131,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 || bIsWindowsXP) {
-+#else
-     if (!is_valid_fd(fd)) {
-+#endif
-         std = Py_None;
-         Py_INCREF(std);
-     }
commit c127bd129667232d20653aadd7ba2a5344ed8f0a
Author: Michael Stahl <mstahl at redhat.com>
Date:   Sat May 9 00:30:45 2015 +0200

    sw: remove bogus assert in SwDoc::IsInHeaderFooter()
    
    If the for loop has a break after the first frame anchored on that node,
    it makes no sense to assert that all frames have been visited.
    
    (regression from bb95f7e6f7c9b1281875e6d729b66b6018794ee0)
    
    Change-Id: Ibd8d65f286b441127be7735c63f4b84ba94dcb6f
    (cherry picked from commit fb0553d6b4905fe2c923a2b5591c001d0be52398)
    Reviewed-on: https://gerrit.libreoffice.org/15687
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/source/core/doc/doclay.cxx b/sw/source/core/doc/doclay.cxx
index b2f57f6..6e35170 100644
--- a/sw/source/core/doc/doclay.cxx
+++ b/sw/source/core/doc/doclay.cxx
@@ -1565,9 +1565,6 @@ bool SwDoc::IsInHeaderFooter( const SwNodeIndex& rIdx ) const
             OSL_ENSURE( mbInReading, "Found a FlySection but not a Format!" );
             return false;
         }
-#if OSL_DEBUG_LEVEL > 0
-        assert( checkFmts.empty());
-#endif
     }
 
     return 0 != pNd->FindHeaderStartNode() ||


More information about the Libreoffice-commits mailing list