[Libreoffice-commits] core.git: Branch 'distro/suse/suse-4.0' - 5 commits - instsetoo_native/util shell/source solenv/inc

Andras Timar andras.timar at collabora.com
Wed Oct 16 06:00:48 PDT 2013


 instsetoo_native/util/openoffice.lst                      |   24 +-
 shell/source/win32/shlxthandler/ooofilt/stream_helper.cxx |    3 
 shell/source/win32/zipfile/zipfile.cxx                    |  115 +++++++++-----
 solenv/inc/minor.mk                                       |    4 
 4 files changed, 94 insertions(+), 52 deletions(-)

New commits:
commit 5310f9e64589e14310faf96f306667475f77e207
Author: Andras Timar <andras.timar at collabora.com>
Date:   Wed Oct 16 06:01:17 2013 -0700

    Bump for 4.0-19
    
    Change-Id: I4bd0056aee58a51ef3560c14b4012c14febb112b

diff --git a/instsetoo_native/util/openoffice.lst b/instsetoo_native/util/openoffice.lst
index 29dd814..cf4f66c 100644
--- a/instsetoo_native/util/openoffice.lst
+++ b/instsetoo_native/util/openoffice.lst
@@ -33,7 +33,7 @@ Globals
             CREATE_MSP_INSTALLSET 1
             UPDATE_DATABASE_LISTNAME finals_instsetoo.txt
             PACKAGEMAP package_names.txt,package_names_ext.txt
-            WINDOWSPATCHLEVEL 18
+            WINDOWSPATCHLEVEL 19
             OOOVENDOR The Document Foundation
             OOODOWNLOADNAME 1
             BUILDIDCWS {buildidcws}
@@ -50,13 +50,13 @@ LibreOffice
         {
             PRODUCTNAME LibreOffice
             PRODUCTVERSION 4.0
-            PRODUCTEXTENSION -18
+            PRODUCTEXTENSION -19
             POSTVERSIONEXTENSION
             POSTVERSIONEXTENSIONUNIX
             BRANDPACKAGEVERSION 4.0
             USERDIRPRODUCTVERSION 4
             ABOUTBOXPRODUCTVERSION 4.0
-            ABOUTBOXPRODUCTVERSIONSUFFIX :build-318
+            ABOUTBOXPRODUCTVERSIONSUFFIX :build-319
             BASEPRODUCTVERSION 4.0
             PCPFILENAME libreoffice.pcp
             UPDATEURL http://update.libreoffice.org/check.php
@@ -100,14 +100,14 @@ LibreOffice_Dev
         {
             PRODUCTNAME LOdev
             PRODUCTVERSION 4.0
-            PRODUCTEXTENSION -18
+            PRODUCTEXTENSION -19
             UNIXBASISROOTNAME lodev4.0
             POSTVERSIONEXTENSION
             POSTVERSIONEXTENSIONUNIX
             BRANDPACKAGEVERSION 4.0
             USERDIRPRODUCTVERSION 4
             ABOUTBOXPRODUCTVERSION 4.0
-            ABOUTBOXPRODUCTVERSIONSUFFIX :build-318
+            ABOUTBOXPRODUCTVERSIONSUFFIX :build-319
             BASEPRODUCTVERSION 4.0
             DEVELOPMENTPRODUCT 1
             BASISPACKAGEPREFIX lodevbasis
@@ -161,7 +161,7 @@ URE
             PRODUCTVERSION 4.0
             PACKAGEVERSION 4.0
             PACKAGEREVISION 1
-            PRODUCTEXTENSION -18
+            PRODUCTEXTENSION -19
             BRANDPACKAGEVERSION 4.0
             LICENSENAME LGPL
             NOVERSIONINDIRNAME 1
@@ -192,7 +192,7 @@ LibreOffice_SDK
         {
             PRODUCTNAME LibreOffice
             PRODUCTVERSION 4.0
-            PRODUCTEXTENSION -18
+            PRODUCTEXTENSION -19
             POSTVERSIONEXTENSION SDK
             POSTVERSIONEXTENSIONUNIX sdk
             BRANDPACKAGEVERSION 4.0
@@ -231,7 +231,7 @@ LibreOffice_Dev_SDK
         {
             PRODUCTNAME LOdev
             PRODUCTVERSION 4.0
-            PRODUCTEXTENSION -18
+            PRODUCTEXTENSION -19
             UNIXBASISROOTNAME lodev4.0
             POSTVERSIONEXTENSION SDK
             POSTVERSIONEXTENSIONUNIX sdk
@@ -276,7 +276,7 @@ LibreOffice_Test
         {
             PRODUCTNAME LibreOffice
             PRODUCTVERSION 4.0
-            PRODUCTEXTENSION -18
+            PRODUCTEXTENSION -19
             POSTVERSIONEXTENSION TEST
             POSTVERSIONEXTENSIONUNIX test
             BRANDPACKAGEVERSION 4.0
@@ -315,7 +315,7 @@ LibreOffice_Dev_Test
         {
             PRODUCTNAME LOdev
             PRODUCTVERSION 4.0
-            PRODUCTEXTENSION -18
+            PRODUCTEXTENSION -19
             UNIXBASISROOTNAME lodev4.0
             POSTVERSIONEXTENSION TEST
             POSTVERSIONEXTENSIONUNIX test
@@ -359,13 +359,13 @@ OxygenOffice
         {
             PRODUCTNAME OxygenOffice
             PRODUCTVERSION 4.0
-            PRODUCTEXTENSION -18
+            PRODUCTEXTENSION -19
             POSTVERSIONEXTENSION
             POSTVERSIONEXTENSIONUNIX
             BRANDPACKAGEVERSION 4.0
             USERDIRPRODUCTVERSION 4
             ABOUTBOXPRODUCTVERSION 4.0
-            ABOUTBOXPRODUCTVERSIONSUFFIX :build-318
+            ABOUTBOXPRODUCTVERSIONSUFFIX :build-319
             BASEPRODUCTVERSION 4.0
             PCPFILENAME openoffice.pcp
             UPDATEURL http://update.libreoffice.org/check.php
diff --git a/solenv/inc/minor.mk b/solenv/inc/minor.mk
index 46df670..62f7379 100644
--- a/solenv/inc/minor.mk
+++ b/solenv/inc/minor.mk
@@ -1,6 +1,6 @@
 RSCVERSION=400
-RSCREVISION=400m1(Build:318)
-BUILD=318
+RSCREVISION=400m1(Build:319)
+BUILD=319
 LAST_MINOR=m0
 SOURCEVERSION=OOO400
 
commit 63b2f53c88ea158d8266719187bcf6351dc41c88
Author: Tor Lillqvist <tml at collabora.com>
Date:   Fri Oct 4 19:36:57 2013 +0200

    fdo#67534: try to avoid file locking in Explorer shell extensions
    
    Change-Id: I287395f6c25b1bfb9b9482166ae6f34d9af8f455

diff --git a/shell/source/win32/shlxthandler/ooofilt/stream_helper.cxx b/shell/source/win32/shlxthandler/ooofilt/stream_helper.cxx
index 3b77d28..f1fb321 100644
--- a/shell/source/win32/shlxthandler/ooofilt/stream_helper.cxx
+++ b/shell/source/win32/shlxthandler/ooofilt/stream_helper.cxx
@@ -106,7 +106,8 @@ long BufferStream::sseek (long offset, int origin)
 FileStream::FileStream(const char *filename) :
     file(0)
 {
-    file = fopen(filename, "rb");
+    // fdo#67534: avoid locking to not interfere with soffice opening the file
+    file = _fsopen(filename, "rb", _SH_DENYNO);
 }
 
 FileStream::~FileStream()
commit d359c32a9477b1d47cf42ba7ac409c41feffdea1
Author: Mathieu Parent <mathieu.parent at nantesmetropole.fr>
Date:   Mon Oct 14 22:23:05 2013 +0100

    fdo#56007 - Read more bytes on Zip read (for thumbnails)
    
    Change-Id: Ia8c6caa44ed8019a8139beb5a855f0f28805544d

diff --git a/shell/source/win32/zipfile/zipfile.cxx b/shell/source/win32/zipfile/zipfile.cxx
index cf05a56..270fbe1 100644
--- a/shell/source/win32/zipfile/zipfile.cxx
+++ b/shell/source/win32/zipfile/zipfile.cxx
@@ -118,18 +118,42 @@ static unsigned char readByte(StreamInterface *stream)
 
 static unsigned short readShort(StreamInterface *stream)
 {
-    unsigned short p0 = (unsigned short)readByte(stream);
-    unsigned short p1 = (unsigned short)readByte(stream);
-    return (unsigned short)(p0|(p1<<8));
+    if (!stream || stream->stell() == -1)
+        throw IOException(-1);
+    unsigned short tmpBuf;
+    unsigned long numBytesRead = stream->sread(
+        reinterpret_cast<unsigned char *>( &tmpBuf ), 2);
+    if (numBytesRead != 2)
+        throw IOException(-1);
+    return tmpBuf;
 }
 
 static unsigned readInt(StreamInterface *stream)
 {
-    unsigned p0 = (unsigned)readByte(stream);
-    unsigned p1 = (unsigned)readByte(stream);
-    unsigned p2 = (unsigned)readByte(stream);
-    unsigned p3 = (unsigned)readByte(stream);
-    return (unsigned)(p0|(p1<<8)|(p2<<16)|(p3<<24));
+    if (!stream || stream->stell() == -1)
+        throw IOException(-1);
+    unsigned tmpBuf;
+    unsigned long numBytesRead = stream->sread(
+        reinterpret_cast<unsigned char *>( &tmpBuf ), 4);
+    if (numBytesRead != 4)
+        throw IOException(-1);
+    return tmpBuf;
+}
+
+static std::string readString(StreamInterface *stream, unsigned long size)
+{
+    if (!stream || stream->stell() == -1)
+        throw IOException(-1);
+    unsigned char *tmp = new unsigned char[size];
+    if (!tmp)
+        throw IOException(-1);
+    unsigned long numBytesRead = stream->sread(tmp, size);
+    if (numBytesRead != size)
+        throw IOException(-1);
+
+    std::string aStr((char *)tmp, size);
+    delete [] tmp;
+    return aStr;
 }
 
 static bool readCentralDirectoryEnd(StreamInterface *stream, CentralDirectoryEnd &end)
@@ -147,9 +171,7 @@ static bool readCentralDirectoryEnd(StreamInterface *stream, CentralDirectoryEnd
         end.cdir_size = readInt(stream);
         end.cdir_offset = readInt(stream);
         end.comment_size = readShort(stream);
-        end.comment.clear();
-        for (unsigned short i = 0; i < end.comment_size; i++)
-            end.comment.append(1,(char)readByte(stream));
+        end.comment.assign(readString(stream, end.comment_size));
     }
     catch (...)
     {
@@ -183,15 +205,9 @@ static bool readCentralDirectoryEntry(StreamInterface *stream, CentralDirectoryE
         entry.external_attr = readInt(stream);
         entry.offset = readInt(stream);
         unsigned short i = 0;
-        entry.filename.clear();
-        for (i=0; i < entry.filename_size; i++)
-            entry.filename.append(1,(char)readByte(stream));
-        entry.extra_field.clear();
-        for (i=0; i < entry.extra_field_size; i++)
-            entry.extra_field.append(1,(char)readByte(stream));
-        entry.file_comment.clear();
-        for (i=0; i < entry.file_comment_size; i++)
-            entry.file_comment.append(1,(char)readByte(stream));
+        entry.filename.assign(readString(stream, entry.filename_size));
+        entry.extra_field.assign(readString(stream, entry.extra_field_size));
+        entry.file_comment.assign(readString(stream, entry.file_comment_size));
     }
     catch (...)
     {
@@ -219,12 +235,8 @@ static bool readLocalFileHeader(StreamInterface *stream, LocalFileHeader &header
         header.filename_size = readShort(stream);
         header.extra_field_size = readShort(stream);
         unsigned short i = 0;
-        header.filename.clear();
-        for (i=0; i < header.filename_size; i++)
-            header.filename.append(1,(char)readByte(stream));
-        header.extra_field.clear();
-        for (i=0; i < header.extra_field_size; i++)
-            header.extra_field.append(1,(char)readByte(stream));
+        header.filename.assign(readString(stream, header.filename_size));
+        header.extra_field.assign(readString(stream, header.extra_field_size));
     }
     catch (...)
     {
commit f0667cbf5309947e2512b1125b1b81ced916fe40
Author: Michael Meeks <michael.meeks at collabora.com>
Date:   Fri Oct 11 17:43:19 2013 +0100

    fdo#56007 - fast zip directory find to accelerate Windows Explorer thumbnail.
    
    Change-Id: Id9436def56f40d2bb54dea35bea916bd99964653

diff --git a/shell/source/win32/zipfile/zipfile.cxx b/shell/source/win32/zipfile/zipfile.cxx
index fb7dc88..cf05a56 100644
--- a/shell/source/win32/zipfile/zipfile.cxx
+++ b/shell/source/win32/zipfile/zipfile.cxx
@@ -102,6 +102,9 @@ struct CentralDirectoryEnd
 #define LOC_FILE_HEADER_SIG 0x04034b50
 #define CDIR_END_SIG 0x06054b50
 
+// This little lot performs in a truly appalling way without
+// buffering eg. on an IStream.
+
 static unsigned char readByte(StreamInterface *stream)
 {
     if (!stream || stream->stell() == -1)
@@ -250,31 +253,57 @@ static bool areHeadersConsistent(const LocalFileHeader &header, const CentralDir
     return true;
 }
 
+#define BLOCK_SIZE 0x800
+
+static bool findSignatureAtOffset(StreamInterface *stream, unsigned long nOffset)
+{
+    // read in reasonably sized chunk, and read more, to get overlapping sigs
+    unsigned char aBuffer[ BLOCK_SIZE + 4 ];
+
+    stream->sseek(nOffset, SEEK_SET);
+
+    unsigned long nBytesRead = stream->sread(aBuffer, sizeof(aBuffer));
+    if (nBytesRead < 0)
+        return false;
+
+    for (long n = nBytesRead - 4; n >= 0; n--)
+    {
+        if (aBuffer[n  ] == 0x50 && aBuffer[n+1] == 0x4b &&
+            aBuffer[n+2] == 0x05 && aBuffer[n+3] == 0x06)
+        { // a palpable hit ...
+            stream->sseek(nOffset + n, SEEK_SET);
+            return true;
+        }
+    }
+
+    return false;
+}
+
 static bool findCentralDirectoryEnd(StreamInterface *stream)
 {
     if (!stream)
         return false;
-    stream->sseek(0, SEEK_SET);
-    if (stream->sseek(-1024, SEEK_END)) stream->sseek(0, SEEK_SET);
+
+    stream->sseek(0,SEEK_END);
+
+    long nLength = stream->stell();
+    if (nLength == -1)
+        return false;
+
     try
     {
-        while (stream->stell() != -1)
+        for (long nOffset = nLength - BLOCK_SIZE;
+             nOffset > 0; nOffset -= BLOCK_SIZE)
         {
-            unsigned signature = readInt(stream);
-            if (signature == CDIR_END_SIG)
-            {
-                stream->sseek(-4, SEEK_CUR);
+            if (findSignatureAtOffset(stream, nOffset))
                 return true;
-            }
-            else
-                stream->sseek(-3, SEEK_CUR);
         }
+        return findSignatureAtOffset(stream, 0);
     }
     catch (...)
     {
         return false;
     }
-    return false;
 }
 
 static bool isZipStream(StreamInterface *stream)
commit 0b63a3b733d812c2cc727100c78b42d100eb6e55
Author: Andras Timar <andras.timar at collabora.com>
Date:   Wed Oct 9 12:57:33 2013 -0700

    Bump for 4.0-18
    
    Change-Id: If2af95548d57a95995988228752503f770ada4d5

diff --git a/instsetoo_native/util/openoffice.lst b/instsetoo_native/util/openoffice.lst
index be5c25a..29dd814 100644
--- a/instsetoo_native/util/openoffice.lst
+++ b/instsetoo_native/util/openoffice.lst
@@ -50,7 +50,7 @@ LibreOffice
         {
             PRODUCTNAME LibreOffice
             PRODUCTVERSION 4.0
-            PRODUCTEXTENSION -17
+            PRODUCTEXTENSION -18
             POSTVERSIONEXTENSION
             POSTVERSIONEXTENSIONUNIX
             BRANDPACKAGEVERSION 4.0
@@ -100,7 +100,7 @@ LibreOffice_Dev
         {
             PRODUCTNAME LOdev
             PRODUCTVERSION 4.0
-            PRODUCTEXTENSION -17
+            PRODUCTEXTENSION -18
             UNIXBASISROOTNAME lodev4.0
             POSTVERSIONEXTENSION
             POSTVERSIONEXTENSIONUNIX
@@ -161,7 +161,7 @@ URE
             PRODUCTVERSION 4.0
             PACKAGEVERSION 4.0
             PACKAGEREVISION 1
-            PRODUCTEXTENSION -17
+            PRODUCTEXTENSION -18
             BRANDPACKAGEVERSION 4.0
             LICENSENAME LGPL
             NOVERSIONINDIRNAME 1
@@ -192,7 +192,7 @@ LibreOffice_SDK
         {
             PRODUCTNAME LibreOffice
             PRODUCTVERSION 4.0
-            PRODUCTEXTENSION -17
+            PRODUCTEXTENSION -18
             POSTVERSIONEXTENSION SDK
             POSTVERSIONEXTENSIONUNIX sdk
             BRANDPACKAGEVERSION 4.0
@@ -231,7 +231,7 @@ LibreOffice_Dev_SDK
         {
             PRODUCTNAME LOdev
             PRODUCTVERSION 4.0
-            PRODUCTEXTENSION -17
+            PRODUCTEXTENSION -18
             UNIXBASISROOTNAME lodev4.0
             POSTVERSIONEXTENSION SDK
             POSTVERSIONEXTENSIONUNIX sdk
@@ -276,7 +276,7 @@ LibreOffice_Test
         {
             PRODUCTNAME LibreOffice
             PRODUCTVERSION 4.0
-            PRODUCTEXTENSION -17
+            PRODUCTEXTENSION -18
             POSTVERSIONEXTENSION TEST
             POSTVERSIONEXTENSIONUNIX test
             BRANDPACKAGEVERSION 4.0
@@ -315,7 +315,7 @@ LibreOffice_Dev_Test
         {
             PRODUCTNAME LOdev
             PRODUCTVERSION 4.0
-            PRODUCTEXTENSION -17
+            PRODUCTEXTENSION -18
             UNIXBASISROOTNAME lodev4.0
             POSTVERSIONEXTENSION TEST
             POSTVERSIONEXTENSIONUNIX test
@@ -359,7 +359,7 @@ OxygenOffice
         {
             PRODUCTNAME OxygenOffice
             PRODUCTVERSION 4.0
-            PRODUCTEXTENSION -17
+            PRODUCTEXTENSION -18
             POSTVERSIONEXTENSION
             POSTVERSIONEXTENSIONUNIX
             BRANDPACKAGEVERSION 4.0


More information about the Libreoffice-commits mailing list