[Libreoffice-commits] core.git: 2 commits - sc/qa sc/source

Kohei Yoshida kohei.yoshida at collabora.com
Tue May 13 11:04:09 PDT 2014


 sc/qa/unit/data/xls/shared-formula/biff5.xls |binary
 sc/qa/unit/subsequent_filters-test.cxx       |   18 ++++++++++++++++++
 sc/source/filter/excel/read.cxx              |    2 +-
 3 files changed, 19 insertions(+), 1 deletion(-)

New commits:
commit 286760359bae7e21a772dd104ab17a1df69a57b0
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date:   Tue May 13 14:02:45 2014 -0400

    fdo#78471: Don't forget to record the ID of the last record for BIFF5.
    
    Shared formula import code depends on this.
    
    Change-Id: Iecb009252c56673df33e0d681de825911154903a

diff --git a/sc/source/filter/excel/read.cxx b/sc/source/filter/excel/read.cxx
index 05d2fca..5c6e6f2 100644
--- a/sc/source/filter/excel/read.cxx
+++ b/sc/source/filter/excel/read.cxx
@@ -90,7 +90,7 @@ FltError ImportExcel::Read( void )
     sal_Size nProgressBasePos = 0;
     sal_Size nProgressBaseSize = 0;
 
-    while( eAkt != Z_Ende )
+    for (; eAkt != Z_Ende; mnLastRecId = nOpcode)
     {
         if( eAkt == Z_Biff5E )
         {
commit 14e21865443a7318c715c2f9ff655d5b21f716ea
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date:   Tue May 13 14:01:53 2014 -0400

    fdo#78471: Write test for import of shared formulas from BIFF5.
    
    Change-Id: I77fee109adf1c0decc6eb96cf2292f89fde1aceb

diff --git a/sc/qa/unit/data/xls/shared-formula/biff5.xls b/sc/qa/unit/data/xls/shared-formula/biff5.xls
new file mode 100644
index 0000000..ce72eb1
Binary files /dev/null and b/sc/qa/unit/data/xls/shared-formula/biff5.xls differ
diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx
index ef0428d..2e5a8f6 100644
--- a/sc/qa/unit/subsequent_filters-test.cxx
+++ b/sc/qa/unit/subsequent_filters-test.cxx
@@ -170,6 +170,7 @@ public:
 
     void testSharedFormulaHorizontalXLS();
     void testSharedFormulaWrappedRefsXLS();
+    void testSharedFormulaBIFF5();
     void testExternalRefCacheXLSX();
     void testExternalRefCacheODS();
     void testHybridSharedStringODS();
@@ -247,6 +248,7 @@ public:
     CPPUNIT_TEST(testColumnStyleXLSX);
     CPPUNIT_TEST(testSharedFormulaHorizontalXLS);
     CPPUNIT_TEST(testSharedFormulaWrappedRefsXLS);
+    CPPUNIT_TEST(testSharedFormulaBIFF5);
     CPPUNIT_TEST(testExternalRefCacheXLSX);
     CPPUNIT_TEST(testExternalRefCacheODS);
     CPPUNIT_TEST(testHybridSharedStringODS);
@@ -2522,6 +2524,22 @@ void ScFiltersTest::testSharedFormulaWrappedRefsXLS()
     xDocSh->DoClose();
 }
 
+void ScFiltersTest::testSharedFormulaBIFF5()
+{
+    ScDocShellRef xDocSh = loadDoc("shared-formula/biff5.", XLS);
+    CPPUNIT_ASSERT(xDocSh.Is());
+    ScDocument* pDoc = xDocSh->GetDocument();
+    pDoc->CalcAll();
+
+    // E6:E376 should be all formulas, and they should belong to the same group.
+    const ScFormulaCell* pFC = pDoc->GetFormulaCell(ScAddress(4,5,0));
+    CPPUNIT_ASSERT(pFC);
+    CPPUNIT_ASSERT_EQUAL(static_cast<SCROW>(5), pFC->GetSharedTopRow());
+    CPPUNIT_ASSERT_EQUAL(static_cast<SCROW>(371), pFC->GetSharedLength());
+
+    xDocSh->DoClose();
+}
+
 void ScFiltersTest::testExternalRefCacheXLSX()
 {
     ScDocShellRef xDocSh = loadDoc("external-refs.", XLSX);


More information about the Libreoffice-commits mailing list