[Libreoffice-commits] core.git: Branch 'private/kohei/xlsx-import-speedup' - 3 commits - formula/source sc/source

Kohei Yoshida kohei.yoshida at collabora.com
Thu Nov 14 09:14:33 PST 2013


 formula/source/core/resource/core_resource.src |   72 ++++++++++----------
 sc/source/filter/oox/formulabuffer.cxx         |   87 ++++++++++++++-----------
 2 files changed, 86 insertions(+), 73 deletions(-)

New commits:
commit d1ddcda105aa4b7d7e698816ef68088d7b99e00c
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date:   Thu Nov 14 12:14:12 2013 -0500

    Do everything on main thread when the thread count is 1.
    
    This helps debugging / profiling easier.
    
    Change-Id: I7834585bf2aa5d5f550bd218b9845ec964b06655

diff --git a/sc/source/filter/oox/formulabuffer.cxx b/sc/source/filter/oox/formulabuffer.cxx
index b9ae6b1..8a7d647 100644
--- a/sc/source/filter/oox/formulabuffer.cxx
+++ b/sc/source/filter/oox/formulabuffer.cxx
@@ -271,6 +271,25 @@ void applyCellFormulaValues(
     }
 }
 
+void processSheetFormulaCells(
+    ScDocumentImport& rDoc, FormulaBuffer::SheetItem& rItem, SvNumberFormatter& rFormatter )
+{
+    if (rItem.mpSharedFormulaEntries && rItem.mpSharedFormulaIDs)
+        applySharedFormulas(rDoc, rFormatter, *rItem.mpSharedFormulaEntries, *rItem.mpSharedFormulaIDs);
+
+    if (rItem.mpCellFormulas)
+    {
+        CachedTokenArray aCache(rDoc.getDoc());
+        applyCellFormulas(rDoc, aCache, rFormatter, *rItem.mpCellFormulas);
+    }
+
+    if (rItem.mpArrayFormulas)
+        applyArrayFormulas(rDoc, rFormatter, *rItem.mpArrayFormulas);
+
+    if (rItem.mpCellFormulaValues)
+        applyCellFormulaValues(rDoc, *rItem.mpCellFormulaValues);
+}
+
 class WorkerThread : public salhelper::Thread
 {
     ScDocumentImport& mrDoc;
@@ -290,20 +309,7 @@ public:
 protected:
     virtual void execute()
     {
-        if (mrItem.mpSharedFormulaEntries && mrItem.mpSharedFormulaIDs)
-            applySharedFormulas(mrDoc, *mpFormatter, *mrItem.mpSharedFormulaEntries, *mrItem.mpSharedFormulaIDs);
-
-        if (mrItem.mpCellFormulas)
-        {
-            CachedTokenArray aCache(mrDoc.getDoc());
-            applyCellFormulas(mrDoc, aCache, *mpFormatter, *mrItem.mpCellFormulas);
-        }
-
-        if (mrItem.mpArrayFormulas)
-            applyArrayFormulas(mrDoc, *mpFormatter, *mrItem.mpArrayFormulas);
-
-        if (mrItem.mpCellFormulaValues)
-            applyCellFormulaValues(mrDoc, *mrItem.mpCellFormulaValues);
+        processSheetFormulaCells(mrDoc, mrItem, *mpFormatter);
     }
 };
 
@@ -347,36 +353,43 @@ void FormulaBuffer::finalizeImport()
     for (SCTAB nTab = 0; nTab < nTabCount; ++nTab)
         aSheetItems.push_back(getSheetItem(nTab));
 
-    typedef rtl::Reference<WorkerThread> WorkerThreadRef;
-    std::vector<WorkerThreadRef> aThreads;
-    aThreads.reserve(nThreadCount);
-
     std::vector<SheetItem>::iterator it = aSheetItems.begin(), itEnd = aSheetItems.end();
 
-    // TODO: Right now we are spawning multiple threads all at once and block
-    // on them all at once.  Any more clever thread management would require
-    // use of condition variables which our own osl thread framework seems to
-    // lack.
-    while (it != itEnd)
+    if (nThreadCount == 1)
+    {
+        for (; it != itEnd; ++it)
+            processSheetFormulaCells(rDoc, *it, *rDoc.getDoc().GetFormatTable());
+    }
+    else
     {
-        for (size_t i = 0; i < nThreadCount; ++i)
+        typedef rtl::Reference<WorkerThread> WorkerThreadRef;
+        std::vector<WorkerThreadRef> aThreads;
+        aThreads.reserve(nThreadCount);
+        // TODO: Right now we are spawning multiple threads all at once and block
+        // on them all at once.  Any more clever thread management would require
+        // use of condition variables which our own osl thread framework seems to
+        // lack.
+        while (it != itEnd)
         {
-            if (it == itEnd)
-                break;
+            for (size_t i = 0; i < nThreadCount; ++i)
+            {
+                if (it == itEnd)
+                    break;
 
-            WorkerThreadRef xThread(new WorkerThread(rDoc, *it, rDoc.getDoc().CreateFormatTable()));
-            ++it;
-            aThreads.push_back(xThread);
-            xThread->launch();
-        }
+                WorkerThreadRef xThread(new WorkerThread(rDoc, *it, rDoc.getDoc().CreateFormatTable()));
+                ++it;
+                aThreads.push_back(xThread);
+                xThread->launch();
+            }
 
-        for (size_t i = 0, n = aThreads.size(); i < n; ++i)
-        {
-            if (aThreads[i].is())
-                aThreads[i]->join();
-        }
+            for (size_t i = 0, n = aThreads.size(); i < n; ++i)
+            {
+                if (aThreads[i].is())
+                    aThreads[i]->join();
+            }
 
-        aThreads.clear();
+            aThreads.clear();
+        }
     }
 
     rDoc.getDoc().SetAutoNameCache(NULL);
commit cfd48bdc8baf74b003c363783b5c25400aca2391
Author: Eike Rathke <erack at redhat.com>
Date:   Thu Nov 14 13:59:19 2013 +0100

    moved erroneous _xlfn. from ODFF to OOXML
    
    Change-Id: I58e7d1ba611b4482cfe4ac5f5d37feaf33691a37

diff --git a/formula/source/core/resource/core_resource.src b/formula/source/core/resource/core_resource.src
index 5798fd6..5e84513 100644
--- a/formula/source/core/resource/core_resource.src
+++ b/formula/source/core/resource/core_resource.src
@@ -100,7 +100,7 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_ODFF
     String SC_OPCODE_PLUS_MINUS { Text = "SIGN" ; };
     String SC_OPCODE_ABS { Text = "ABS" ; };
     String SC_OPCODE_INT { Text = "INT" ; };
-    String SC_OPCODE_PHI { Text = "_xlfn.PHI" ; };
+    String SC_OPCODE_PHI { Text = "PHI" ; };
     String SC_OPCODE_GAUSS { Text = "GAUSS" ; };
     String SC_OPCODE_IS_EMPTY { Text = "ISBLANK" ; };
     String SC_OPCODE_IS_STRING { Text = "ISTEXT" ; };
@@ -201,13 +201,13 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_ODFF
     String SC_OPCODE_KOMBIN { Text = "COMBIN" ; };
     String SC_OPCODE_KOMBIN_2 { Text = "COMBINA" ; };
     String SC_OPCODE_VARIATIONEN { Text = "PERMUT" ; };
-    String SC_OPCODE_VARIATIONEN_2 { Text = "_xlfn.PERMUTATIONA" ; };
+    String SC_OPCODE_VARIATIONEN_2 { Text = "PERMUTATIONA" ; };
     String SC_OPCODE_BW { Text = "PV" ; };
     String SC_OPCODE_DIA { Text = "SYD" ; };
     String SC_OPCODE_GDA { Text = "DDB" ; };
     String SC_OPCODE_GDA_2 { Text = "DB" ; };
     String SC_OPCODE_VBD { Text = "VDB" ; };
-    String SC_OPCODE_LAUFZ { Text = "_xlfn.PDURATION" ; };
+    String SC_OPCODE_LAUFZ { Text = "PDURATION" ; };
     String SC_OPCODE_LIA { Text = "SLN" ; };
     String SC_OPCODE_RMZ { Text = "PMT" ; };
     String SC_OPCODE_COLUMNS { Text = "COLUMNS" ; };
@@ -216,7 +216,7 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_ODFF
     String SC_OPCODE_COLUMN { Text = "COLUMN" ; };
     String SC_OPCODE_ROW { Text = "ROW" ; };
     String SC_OPCODE_TABLE { Text = "SHEET" ; };
-    String SC_OPCODE_ZGZ { Text = "_xlfn.RRI" ; };
+    String SC_OPCODE_ZGZ { Text = "RRI" ; };
     String SC_OPCODE_ZW { Text = "FV" ; };
     String SC_OPCODE_ZZR { Text = "NPER" ; };
     String SC_OPCODE_ZINS { Text = "RATE" ; };
@@ -461,7 +461,7 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_OOXML
     String SC_OPCODE_PLUS_MINUS { Text = "SIGN" ; };
     String SC_OPCODE_ABS { Text = "ABS" ; };
     String SC_OPCODE_INT { Text = "INT" ; };
-    String SC_OPCODE_PHI { Text = "PHI" ; };
+    String SC_OPCODE_PHI { Text = "_xlfn.PHI" ; };
     String SC_OPCODE_GAUSS { Text = "_xlfn.GAUSS" ; };
     String SC_OPCODE_IS_EMPTY { Text = "ISBLANK" ; };
     String SC_OPCODE_IS_STRING { Text = "ISTEXT" ; };
@@ -562,13 +562,13 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_OOXML
     String SC_OPCODE_KOMBIN { Text = "COMBIN" ; };
     String SC_OPCODE_KOMBIN_2 { Text = "_xlfn.COMBINA" ; };
     String SC_OPCODE_VARIATIONEN { Text = "PERMUT" ; };
-    String SC_OPCODE_VARIATIONEN_2 { Text = "PERMUTATIONA" ; };
+    String SC_OPCODE_VARIATIONEN_2 { Text = "_xlfn.PERMUTATIONA" ; };
     String SC_OPCODE_BW { Text = "PV" ; };
     String SC_OPCODE_DIA { Text = "SYD" ; };
     String SC_OPCODE_GDA { Text = "DDB" ; };
     String SC_OPCODE_GDA_2 { Text = "DB" ; };
     String SC_OPCODE_VBD { Text = "VDB" ; };
-    String SC_OPCODE_LAUFZ { Text = "DURATION" ; };
+    String SC_OPCODE_LAUFZ { Text = "_xlfn.DURATION" ; };
     String SC_OPCODE_LIA { Text = "SLN" ; };
     String SC_OPCODE_RMZ { Text = "PMT" ; };
     String SC_OPCODE_COLUMNS { Text = "COLUMNS" ; };
@@ -577,7 +577,7 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_OOXML
     String SC_OPCODE_COLUMN { Text = "COLUMN" ; };
     String SC_OPCODE_ROW { Text = "ROW" ; };
     String SC_OPCODE_TABLE { Text = "_xlfn.SHEET" ; };
-    String SC_OPCODE_ZGZ { Text = "ZGZ" ; };
+    String SC_OPCODE_ZGZ { Text = "_xlfn.RRI" ; };
     String SC_OPCODE_ZW { Text = "FV" ; };
     String SC_OPCODE_ZZR { Text = "NPER" ; };
     String SC_OPCODE_ZINS { Text = "RATE" ; };
commit 099a8d4a891a10ede1f5a96c8d61b916f5c7489b
Author: Eike Rathke <erack at redhat.com>
Date:   Thu Nov 14 13:52:27 2013 +0100

    all functions new in Excel since OOXML have _xlfn. prefix
    
    Change-Id: Ie22292da1ee79f2693da73cc27944a53b2213150

diff --git a/formula/source/core/resource/core_resource.src b/formula/source/core/resource/core_resource.src
index 1d29ce8..5798fd6 100644
--- a/formula/source/core/resource/core_resource.src
+++ b/formula/source/core/resource/core_resource.src
@@ -100,7 +100,7 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_ODFF
     String SC_OPCODE_PLUS_MINUS { Text = "SIGN" ; };
     String SC_OPCODE_ABS { Text = "ABS" ; };
     String SC_OPCODE_INT { Text = "INT" ; };
-    String SC_OPCODE_PHI { Text = "PHI" ; };
+    String SC_OPCODE_PHI { Text = "_xlfn.PHI" ; };
     String SC_OPCODE_GAUSS { Text = "GAUSS" ; };
     String SC_OPCODE_IS_EMPTY { Text = "ISBLANK" ; };
     String SC_OPCODE_IS_STRING { Text = "ISTEXT" ; };
@@ -201,13 +201,13 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_ODFF
     String SC_OPCODE_KOMBIN { Text = "COMBIN" ; };
     String SC_OPCODE_KOMBIN_2 { Text = "COMBINA" ; };
     String SC_OPCODE_VARIATIONEN { Text = "PERMUT" ; };
-    String SC_OPCODE_VARIATIONEN_2 { Text = "PERMUTATIONA" ; };
+    String SC_OPCODE_VARIATIONEN_2 { Text = "_xlfn.PERMUTATIONA" ; };
     String SC_OPCODE_BW { Text = "PV" ; };
     String SC_OPCODE_DIA { Text = "SYD" ; };
     String SC_OPCODE_GDA { Text = "DDB" ; };
     String SC_OPCODE_GDA_2 { Text = "DB" ; };
     String SC_OPCODE_VBD { Text = "VDB" ; };
-    String SC_OPCODE_LAUFZ { Text = "PDURATION" ; };
+    String SC_OPCODE_LAUFZ { Text = "_xlfn.PDURATION" ; };
     String SC_OPCODE_LIA { Text = "SLN" ; };
     String SC_OPCODE_RMZ { Text = "PMT" ; };
     String SC_OPCODE_COLUMNS { Text = "COLUMNS" ; };
@@ -216,7 +216,7 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_ODFF
     String SC_OPCODE_COLUMN { Text = "COLUMN" ; };
     String SC_OPCODE_ROW { Text = "ROW" ; };
     String SC_OPCODE_TABLE { Text = "SHEET" ; };
-    String SC_OPCODE_ZGZ { Text = "RRI" ; };
+    String SC_OPCODE_ZGZ { Text = "_xlfn.RRI" ; };
     String SC_OPCODE_ZW { Text = "FV" ; };
     String SC_OPCODE_ZZR { Text = "NPER" ; };
     String SC_OPCODE_ZINS { Text = "RATE" ; };
@@ -387,7 +387,7 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_OOXML
 {
     String SC_OPCODE_IF { Text = "IF" ; };
     String SC_OPCODE_IF_ERROR { Text = "IFERROR" ; };
-    String SC_OPCODE_IF_NA { Text = "IFNA" ; };
+    String SC_OPCODE_IF_NA { Text = "_xlfn.IFNA" ; };
     String SC_OPCODE_CHOSE { Text = "CHOOSE" ; };
     String SC_OPCODE_OPEN { Text = "(" ; };
     String SC_OPCODE_CLOSE { Text = ")" ; };
@@ -411,7 +411,7 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_OOXML
     String SC_OPCODE_GREATER_EQUAL { Text = ">=" ; };
     String SC_OPCODE_AND { Text = "AND" ; };
     String SC_OPCODE_OR { Text = "OR" ; };
-    String SC_OPCODE_XOR { Text = "XOR" ; };
+    String SC_OPCODE_XOR { Text = "_xlfn.XOR" ; };
     String SC_OPCODE_INTERSECT { Text = "!" ; };
     String SC_OPCODE_UNION { Text = "~" ; };
     String SC_OPCODE_RANGE { Text = ":" ; };
@@ -431,23 +431,23 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_OOXML
     String SC_OPCODE_SIN { Text = "SIN" ; };
     String SC_OPCODE_COS { Text = "COS" ; };
     String SC_OPCODE_TAN { Text = "TAN" ; };
-    String SC_OPCODE_COT { Text = "COT" ; };
+    String SC_OPCODE_COT { Text = "_xlfn.COT" ; };
     String SC_OPCODE_ARC_SIN { Text = "ASIN" ; };
     String SC_OPCODE_ARC_COS { Text = "ACOS" ; };
     String SC_OPCODE_ARC_TAN { Text = "ATAN" ; };
-    String SC_OPCODE_ARC_COT { Text = "ACOT" ; };
+    String SC_OPCODE_ARC_COT { Text = "_xlfn.ACOT" ; };
     String SC_OPCODE_SIN_HYP { Text = "SINH" ; };
     String SC_OPCODE_COS_HYP { Text = "COSH" ; };
     String SC_OPCODE_TAN_HYP { Text = "TANH" ; };
-    String SC_OPCODE_COT_HYP { Text = "COTH" ; };
+    String SC_OPCODE_COT_HYP { Text = "_xlfn.COTH" ; };
     String SC_OPCODE_ARC_SIN_HYP { Text = "ASINH" ; };
     String SC_OPCODE_ARC_COS_HYP { Text = "ACOSH" ; };
     String SC_OPCODE_ARC_TAN_HYP { Text = "ATANH" ; };
-    String SC_OPCODE_ARC_COT_HYP { Text = "ACOTH" ; };
-    String SC_OPCODE_COSECANT { Text = "CSC" ; };
-    String SC_OPCODE_SECANT { Text = "SEC" ; };
-    String SC_OPCODE_COSECANT_HYP { Text = "CSCH" ; };
-    String SC_OPCODE_SECANT_HYP { Text = "SECH" ; };
+    String SC_OPCODE_ARC_COT_HYP { Text = "_xlfn.ACOTH" ; };
+    String SC_OPCODE_COSECANT { Text = "_xlfn.CSC" ; };
+    String SC_OPCODE_SECANT { Text = "_xlfn.SEC" ; };
+    String SC_OPCODE_COSECANT_HYP { Text = "_xlfn.CSCH" ; };
+    String SC_OPCODE_SECANT_HYP { Text = "_xlfn.SECH" ; };
     String SC_OPCODE_EXP { Text = "EXP" ; };
     String SC_OPCODE_LN { Text = "LN" ; };
     String SC_OPCODE_SQRT { Text = "SQRT" ; };
@@ -462,7 +462,7 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_OOXML
     String SC_OPCODE_ABS { Text = "ABS" ; };
     String SC_OPCODE_INT { Text = "INT" ; };
     String SC_OPCODE_PHI { Text = "PHI" ; };
-    String SC_OPCODE_GAUSS { Text = "GAUSS" ; };
+    String SC_OPCODE_GAUSS { Text = "_xlfn.GAUSS" ; };
     String SC_OPCODE_IS_EMPTY { Text = "ISBLANK" ; };
     String SC_OPCODE_IS_STRING { Text = "ISTEXT" ; };
     String SC_OPCODE_IS_NON_STRING { Text = "ISNONTEXT" ; };
@@ -471,7 +471,7 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_OOXML
     String SC_OPCODE_CELL { Text = "CELL" ; };
     String SC_OPCODE_IS_REF { Text = "ISREF" ; };
     String SC_OPCODE_IS_VALUE { Text = "ISNUMBER" ; };
-    String SC_OPCODE_IS_FORMULA { Text = "ISFORMULA" ; };
+    String SC_OPCODE_IS_FORMULA { Text = "_xlfn.ISFORMULA" ; };
     String SC_OPCODE_IS_NV { Text = "ISNA" ; };
     String SC_OPCODE_IS_ERR { Text = "ISERR" ; };
     String SC_OPCODE_IS_ERROR { Text = "ISERROR" ; };
@@ -492,8 +492,8 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_OOXML
     String SC_OPCODE_CHAR { Text = "CHAR" ; };
     String SC_OPCODE_JIS { Text = "JIS" ; };
     String SC_OPCODE_ASC { Text = "ASC" ; };
-    String SC_OPCODE_UNICODE { Text = "UNICODE" ; };
-    String SC_OPCODE_UNICHAR { Text = "UNICHAR" ; };
+    String SC_OPCODE_UNICODE { Text = "_xlfn.UNICODE" ; };
+    String SC_OPCODE_UNICHAR { Text = "_xlfn.UNICHAR" ; };
     String SC_OPCODE_LOG10 { Text = "LOG10" ; };
     String SC_OPCODE_EVEN { Text = "EVEN" ; };
     String SC_OPCODE_ODD { Text = "ODD" ; };
@@ -504,7 +504,7 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_OOXML
     String SC_OPCODE_GAMMA_LN { Text = "GAMMALN" ; };
     String SC_OPCODE_ERROR_TYPE { Text = "ERRORTYPE" ; };
     String SC_OPCODE_ERR_CELL { Text = "ZellError" ; };  // TODO: ancient legacy only, remove?
-    String SC_OPCODE_FORMULA { Text = "FORMULA"; };
+    String SC_OPCODE_FORMULA { Text = "_xlfn.FORMULATEXT"; };
     String SC_OPCODE_ARC_TAN_2 { Text = "ATAN2" ; };
     String SC_OPCODE_CEIL { Text = "CEILING" ; };
     String SC_OPCODE_FLOOR { Text = "FLOOR" ; };
@@ -524,7 +524,7 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_OOXML
     String SC_OPCODE_SUM_XMY2 { Text = "SUMXMY2" ; };
     String SC_OPCODE_GET_DATE { Text = "DATE" ; };
     String SC_OPCODE_GET_TIME { Text = "TIME" ; };
-    String SC_OPCODE_GET_DIFF_DATE { Text = "DAYS" ; };
+    String SC_OPCODE_GET_DIFF_DATE { Text = "_xlfn.DAYS" ; };
     String SC_OPCODE_GET_DIFF_DATE_360 { Text = "DAYS360" ; };
     String SC_OPCODE_GET_DATEDIF { Text = "DATEDIF" ; };
     String SC_OPCODE_MIN { Text = "MIN" ; };
@@ -560,7 +560,7 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_OOXML
     String SC_OPCODE_BINOM_DIST_MS { Text = "_xlfn.BINOM.DIST" ; };
     String SC_OPCODE_POISSON_DIST { Text = "POISSON" ; };
     String SC_OPCODE_KOMBIN { Text = "COMBIN" ; };
-    String SC_OPCODE_KOMBIN_2 { Text = "COMBINA" ; };
+    String SC_OPCODE_KOMBIN_2 { Text = "_xlfn.COMBINA" ; };
     String SC_OPCODE_VARIATIONEN { Text = "PERMUT" ; };
     String SC_OPCODE_VARIATIONEN_2 { Text = "PERMUTATIONA" ; };
     String SC_OPCODE_BW { Text = "PV" ; };
@@ -573,10 +573,10 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_OOXML
     String SC_OPCODE_RMZ { Text = "PMT" ; };
     String SC_OPCODE_COLUMNS { Text = "COLUMNS" ; };
     String SC_OPCODE_ROWS { Text = "ROWS" ; };
-    String SC_OPCODE_TABLES { Text = "SHEETS" ; };
+    String SC_OPCODE_TABLES { Text = "_xlfn.SHEETS" ; };
     String SC_OPCODE_COLUMN { Text = "COLUMN" ; };
     String SC_OPCODE_ROW { Text = "ROW" ; };
-    String SC_OPCODE_TABLE { Text = "SHEET" ; };
+    String SC_OPCODE_TABLE { Text = "_xlfn.SHEET" ; };
     String SC_OPCODE_ZGZ { Text = "ZGZ" ; };
     String SC_OPCODE_ZW { Text = "FV" ; };
     String SC_OPCODE_ZZR { Text = "NPER" ; };
@@ -639,7 +639,7 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_OOXML
     String SC_OPCODE_MAT_INV { Text = "MINVERSE" ; };
     String SC_OPCODE_MAT_MULT { Text = "MMULT" ; };
     String SC_OPCODE_MAT_TRANS { Text = "TRANSPOSE" ; };
-    String SC_OPCODE_MATRIX_UNIT { Text = "MUNIT" ; };
+    String SC_OPCODE_MATRIX_UNIT { Text = "_xlfn.MUNIT" ; };
     String SC_OPCODE_BACK_SOLVER { Text = "GOALSEEK" ; };
     String SC_OPCODE_HYP_GEOM_DIST { Text = "HYPGEOMDIST" ; };
     String SC_OPCODE_LOG_NORM_DIST { Text = "LOGNORMDIST" ; };
@@ -657,7 +657,7 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_OOXML
     String SC_OPCODE_STANDARD { Text = "STANDARDIZE" ; };
     String SC_OPCODE_AVE_DEV { Text = "AVEDEV" ; };
     String SC_OPCODE_SCHIEFE { Text = "SKEW" ; };
-    String SC_OPCODE_SKEWP   { Text = "SKEWP" ; };
+    String SC_OPCODE_SKEWP   { Text = "_xlfn.SKEW.P" ; };
     String SC_OPCODE_DEV_SQ { Text = "DEVSQ" ; };
     String SC_OPCODE_MEDIAN { Text = "MEDIAN" ; };
     String SC_OPCODE_MODAL_VALUE { Text = "MODE" ; };
@@ -694,7 +694,7 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_OOXML
     String SC_OPCODE_GAMMA_DIST { Text = "GAMMADIST" ; };
     String SC_OPCODE_GAMMA_INV { Text = "GAMMAINV" ; };
     String SC_OPCODE_T_INV { Text = "TINV" ; };
-    String SC_OPCODE_F_INV { Text = "FINV" ; };
+    String SC_OPCODE_F_INV { Text = "_xlfn.FINV" ; };
     String SC_OPCODE_CHI_TEST { Text = "CHITEST" ; };
     String SC_OPCODE_CHI_TEST_MS { Text = "_xlfn.CHISQ.TEST" ; };
     String SC_OPCODE_LOG_INV { Text = "LOGINV" ; };
@@ -709,27 +709,27 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_OOXML
     String SC_OPCODE_NO_NAME { Text = "#NAME!" ; };
     String SC_OPCODE_STYLE { Text = "STYLE" ; };
     String SC_OPCODE_DDE { Text = "DDE" ; };
-    String SC_OPCODE_BASE { Text = "BASE" ; };
-    String SC_OPCODE_DECIMAL { Text = "DECIMAL" ; };
+    String SC_OPCODE_BASE { Text = "_xlfn.BASE" ; };
+    String SC_OPCODE_DECIMAL { Text = "_xlfn.DECIMAL" ; };
     String SC_OPCODE_CONVERT { Text = "CONVERT" ; };
     String SC_OPCODE_ROMAN { Text = "ROMAN" ; };
-    String SC_OPCODE_ARABIC { Text = "ARABIC" ; };
+    String SC_OPCODE_ARABIC { Text = "_xlfn.ARABIC" ; };
     String SC_OPCODE_HYPERLINK { Text = "HYPERLINK" ; };
     String SC_OPCODE_INFO { Text = "INFO" ; };
     String SC_OPCODE_BAHTTEXT { Text = "_xlfn.BAHTTEXT" ; };
     String SC_OPCODE_GET_PIVOT_DATA { Text = "GETPIVOTDATA" ; };
     String SC_OPCODE_EUROCONVERT { Text = "EUROCONVERT" ; };
-    String SC_OPCODE_NUMBERVALUE { Text = "NUMBERVALUE" ; };
-    String SC_OPCODE_GAMMA { Text = "GAMMA" ; };
+    String SC_OPCODE_NUMBERVALUE { Text = "_xlfn.NUMBERVALUE" ; };
+    String SC_OPCODE_GAMMA { Text = "_xlfn.GAMMA" ; };
     String SC_OPCODE_CHISQ_DIST { Text = "CHISQDIST" ; };
     String SC_OPCODE_CHISQ_DIST_MS { Text = "_xlfn.CHISQ.DIST" ; };
     String SC_OPCODE_CHISQ_INV { Text = "CHISQINV" ;};
     String SC_OPCODE_CHISQ_INV_MS { Text = "_xlfn.CHISQ.INV" ;};
-    String SC_OPCODE_BITAND    { Text = "BITAND" ;};
-    String SC_OPCODE_BITOR    { Text = "BITOR" ;};
-    String SC_OPCODE_BITXOR    { Text = "BITXOR" ;};
-    String SC_OPCODE_BITRSHIFT    { Text = "BITRSHIFT" ;};
-    String SC_OPCODE_BITLSHIFT    { Text = "BITLSHIFT" ;};
+    String SC_OPCODE_BITAND    { Text = "_xlfn.BITAND" ;};
+    String SC_OPCODE_BITOR    { Text = "_xlfn.BITOR" ;};
+    String SC_OPCODE_BITXOR    { Text = "_xlfn.BITXOR" ;};
+    String SC_OPCODE_BITRSHIFT    { Text = "_xlfn.BITRSHIFT" ;};
+    String SC_OPCODE_BITLSHIFT    { Text = "_xlfn.BITLSHIFT" ;};
     /* BEGIN defined ERROR.TYPE() values. */
     String SC_OPCODE_ERROR_NULL    { Text = "#NULL!"  ; };
     String SC_OPCODE_ERROR_DIVZERO { Text = "#DIV/0!" ; };


More information about the Libreoffice-commits mailing list