Date: Thursday, February 7, 2019 @ 15:00:30 Author: andyrtr Revision: 345605
upgpkg: libreoffice-fresh 6.2.0-1 upstream update 6.2.0 Modified: libreoffice-fresh/trunk/PKGBUILD Deleted: libreoffice-fresh/trunk/0001-Update-mdds-to-1.4.1.patch libreoffice-fresh/trunk/0001-Update-orcus-to-0.14.0.patch libreoffice-fresh/trunk/libreoffice-poppler-0.71.patch libreoffice-fresh/trunk/libreoffice-poppler-0.72.patch libreoffice-fresh/trunk/libreoffice-poppler-0.73.patch -----------------------------------+ 0001-Update-mdds-to-1.4.1.patch | 694 ------------------------------- 0001-Update-orcus-to-0.14.0.patch | 802 ------------------------------------ PKGBUILD | 59 -- libreoffice-poppler-0.71.patch | 271 ------------ libreoffice-poppler-0.72.patch | 51 -- libreoffice-poppler-0.73.patch | 302 ------------- 6 files changed, 21 insertions(+), 2158 deletions(-) Deleted: 0001-Update-mdds-to-1.4.1.patch =================================================================== --- 0001-Update-mdds-to-1.4.1.patch 2019-02-07 14:37:32 UTC (rev 345604) +++ 0001-Update-mdds-to-1.4.1.patch 2019-02-07 15:00:30 UTC (rev 345605) @@ -1,694 +0,0 @@ -From 3debd23d47d1fcbef76033c739a0b7003824d4ca Mon Sep 17 00:00:00 2001 -From: Noel Grandin <[email protected]> -Date: Sat, 11 Aug 2018 13:25:09 +0200 -Subject: [PATCH] Update mdds to 1.4.1 - -loplugin:constantparam - -Reviewed-on: https://gerrit.libreoffice.org/58875 -Tested-by: Jenkins -Reviewed-by: Noel Grandin <[email protected]> -(cherry picked from commit bb6f2b12e8f0bbc99a5ca93141d35fd40b043e55) - -Update mdds to 1.4.1. - -The largest change in 1.4.x relevant to the calc code is that the -multi_type_matrix::walk() methods now take a copy of the function -object rather than a reference, to allow for it to take an inline -lambda function. Instead, it does return a instance of the input -function object, similar to how std::for_each() behaves. - -In case the function object contains a large data member, try to -make it a moveable so that it will get moved rather than copied -when going through one of the walk() methods. - -Reviewed-on: https://gerrit.libreoffice.org/59584 -Tested-by: Jenkins -Reviewed-by: Kohei Yoshida <[email protected]> -(cherry picked from commit 51f73f35ea61dd81dd3194af50394b98ff1bf8e9) - -mdds 1.4.1 is now a minimum requirement. - -Reviewed-on: https://gerrit.libreoffice.org/59614 -Tested-by: Jenkins -Reviewed-by: Kohei Yoshida <[email protected]> -(cherry picked from commit 4d1f735fcf064b18ef2848cc1f5a2a0616b0b33d) - -fd08fc4a2ed75039e5292a35ff08726e0126c77f -647bcfbdd8e0417990ed93b25c1bca00f60df709 - -Change-Id: I676a8408e97cc8134009f764736cad68513c89ad ---- - configure.ac | 2 +- - download.lst | 4 +- - external/mdds/UnpackedTarball_mdds.mk | 3 - - external/mdds/c++17.patch | 22 --- - sc/inc/scmatrix.hxx | 6 +- - sc/source/core/tool/interpr3.cxx | 4 +- - sc/source/core/tool/scmatrix.cxx | 208 +++++++++++++++++++------- - 7 files changed, 161 insertions(+), 88 deletions(-) - delete mode 100644 external/mdds/c++17.patch - -diff --git a/configure.ac b/configure.ac -index 735ebf2e360a..3ff574a3f24f 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -8883,7 +8883,7 @@ AC_SUBST(SYSTEM_BOOST) - dnl =================================================================== - dnl Check for system mdds - dnl =================================================================== --libo_CHECK_SYSTEM_MODULE([mdds], [MDDS], [mdds-1.2 >= 1.2.3], ["-I${WORKDIR}/UnpackedTarball/mdds/include"]) -+libo_CHECK_SYSTEM_MODULE([mdds], [MDDS], [mdds-1.4 >= 1.4.1], ["-I${WORKDIR}/UnpackedTarball/mdds/include"]) - - dnl =================================================================== - dnl Check for system glm -diff --git a/download.lst b/download.lst -index c40bece90e26..d4c145a0cfc9 100644 ---- a/download.lst -+++ b/download.lst -@@ -166,8 +166,8 @@ export LXML_SHA256SUM := 940caef1ec7c78e0c34b0f6b94fe42d0f2022915ffc78643d28538a - export LXML_TARBALL := lxml-4.1.1.tgz - export MARIADB_CONNECTOR_C_SHA256SUM := fd2f751dea049c1907735eb236aeace1d811d6a8218118b00bbaa9b84dc5cd60 - export MARIADB_CONNECTOR_C_TARBALL := a233181e03d3c307668b4c722d881661-mariadb_client-2.0.0-src.tar.gz --export MDDS_SHA256SUM := dcb8cd2425567a5a5ec164afea475bce57784bca3e352ad4cbdd3d1a7e08e5a1 --export MDDS_TARBALL := mdds-1.3.1.tar.bz2 -+export MDDS_SHA256SUM := 9ac690c37f5f06dc88551405d5daf9d9ad25edf65aae6325b59e905c2ba444c3 -+export MDDS_TARBALL := mdds-1.4.1.tar.bz2 - export MDNSRESPONDER_SHA256SUM := 4737cb51378377e11d0edb7bcdd1bec79cbdaa7b27ea09c13e3006e58f8d92c0 - export MDNSRESPONDER_TARBALL := mDNSResponder-576.30.4.tar.gz - export MSPUB_SHA256SUM := ef36c1a1aabb2ba3b0bedaaafe717bf4480be2ba8de6f3894be5fd3702b013ba -diff --git a/external/mdds/UnpackedTarball_mdds.mk b/external/mdds/UnpackedTarball_mdds.mk -index 4f6db6b24e7b..c015f4c13f5a 100644 ---- a/external/mdds/UnpackedTarball_mdds.mk -+++ b/external/mdds/UnpackedTarball_mdds.mk -@@ -13,10 +13,7 @@ $(eval $(call gb_UnpackedTarball_set_tarball,mdds,$(MDDS_TARBALL))) - - $(eval $(call gb_UnpackedTarball_set_patchlevel,mdds,0)) - --# c++17.patch upstreamed as <https://gitlab.com/mdds/mdds/merge_requests/11> "Remove some --# unnecessary uses of obsolete std::unary_function": - $(eval $(call gb_UnpackedTarball_add_patches,mdds,\ -- external/mdds/c++17.patch \ - )) - - # vim: set noet sw=4 ts=4: -diff --git a/external/mdds/c++17.patch b/external/mdds/c++17.patch -deleted file mode 100644 -index d96910f34e68..000000000000 ---- a/external/mdds/c++17.patch -+++ /dev/null -@@ -1,22 +0,0 @@ ----- include/mdds/multi_type_matrix.hpp --+++ include/mdds/multi_type_matrix.hpp --@@ -149,7 +149,7 @@ -- -- private: -- template<typename _Func> --- struct walk_func : std::unary_function<typename store_type::const_iterator::value_type, void> --+ struct walk_func -- { -- _Func& m_func; -- walk_func(_Func& func) : m_func(func) {} ----- include/mdds/multi_type_vector.hpp --+++ include/mdds/multi_type_vector.hpp --@@ -139,7 +139,7 @@ -- block& operator=(block); -- }; -- --- struct element_block_deleter : public std::unary_function<void, const element_block_type*> --+ struct element_block_deleter -- { -- void operator() (const element_block_type* p) -- { -diff --git a/sc/inc/scmatrix.hxx b/sc/inc/scmatrix.hxx -index 9be335fbc06b..b1bc5e0e3047 100644 ---- a/sc/inc/scmatrix.hxx -+++ b/sc/inc/scmatrix.hxx -@@ -399,7 +399,7 @@ public: - virtual void DivOp(bool bFlag, double fVal, ScMatrix& rMat) = 0; - virtual void PowOp(bool bFlag, double fVal, ScMatrix& rMat) = 0; - -- virtual std::vector<ScMatrix::IterateResult> Collect(bool bTextAsZero, const std::vector<std::unique_ptr<sc::op::Op>>& aOp) = 0; -+ virtual std::vector<ScMatrix::IterateResult> Collect(const std::vector<std::unique_ptr<sc::op::Op>>& aOp) = 0; - - virtual void ExecuteOperation(const std::pair<size_t, size_t>& rStartPos, const std::pair<size_t, size_t>& rEndPos, - DoubleOpFunction aDoubleFunc, BoolOpFunction aBoolFunc, StringOpFunction aStringFunc, -@@ -617,7 +617,7 @@ public: - virtual void DivOp(bool bFlag, double fVal, ScMatrix& rMat) override; - virtual void PowOp(bool bFlag, double fVal, ScMatrix& rMat) override; - -- virtual std::vector<ScMatrix::IterateResult> Collect(bool bTextAsZero, const std::vector<std::unique_ptr<sc::op::Op>>& aOp) override; -+ virtual std::vector<ScMatrix::IterateResult> Collect(const std::vector<std::unique_ptr<sc::op::Op>>& aOp) override; - - virtual void ExecuteOperation(const std::pair<size_t, size_t>& rStartPos, const std::pair<size_t, size_t>& rEndPos, - DoubleOpFunction aDoubleFunc, BoolOpFunction aBoolFunc, StringOpFunction aStringFunc, -@@ -837,7 +837,7 @@ public: - virtual void DivOp(bool bFlag, double fVal, ScMatrix& rMat) override; - virtual void PowOp(bool bFlag, double fVal, ScMatrix& rMat) override; - -- virtual std::vector<ScMatrix::IterateResult> Collect(bool bTextAsZero, const std::vector<std::unique_ptr<sc::op::Op>>& aOp) override; -+ virtual std::vector<ScMatrix::IterateResult> Collect(const std::vector<std::unique_ptr<sc::op::Op>>& aOp) override; - - virtual void ExecuteOperation(const std::pair<size_t, size_t>& rStartPos, const std::pair<size_t, size_t>& rEndPos, - DoubleOpFunction aDoubleFunc, BoolOpFunction aBoolFunc, StringOpFunction aStringFunc, -diff --git a/sc/source/core/tool/interpr3.cxx b/sc/source/core/tool/interpr3.cxx -index 28e8cd9a9c48..88c0d8353783 100644 ---- a/sc/source/core/tool/interpr3.cxx -+++ b/sc/source/core/tool/interpr3.cxx -@@ -2745,12 +2745,12 @@ void ScInterpreter::ScFTest() - aOp.emplace_back(new sc::op::Op(0.0, [](double& rAccum, double fVal){rAccum += fVal;})); - aOp.emplace_back(new sc::op::Op(0.0, [](double& rAccum, double fVal){rAccum += fVal * fVal;})); - -- auto aVal1 = pMat1->Collect(false, aOp); -+ auto aVal1 = pMat1->Collect(aOp); - fSum1 = aVal1[0].mfFirst + aVal1[0].mfRest; - fSumSqr1 = aVal1[1].mfFirst + aVal1[1].mfRest; - fCount1 = aVal1[2].mnCount; - -- auto aVal2 = pMat2->Collect(false, aOp); -+ auto aVal2 = pMat2->Collect(aOp); - fSum2 = aVal2[0].mfFirst + aVal2[0].mfRest; - fSumSqr2 = aVal2[1].mfFirst + aVal2[1].mfRest; - fCount2 = aVal2[2].mnCount; -diff --git a/sc/source/core/tool/scmatrix.cxx b/sc/source/core/tool/scmatrix.cxx -index 7f8c8767e917..7dadec9f0b57 100644 ---- a/sc/source/core/tool/scmatrix.cxx -+++ b/sc/source/core/tool/scmatrix.cxx -@@ -160,6 +160,12 @@ public: - maNewMatValues.reserve(nRow*nCol); - } - -+ CompareMatrixElemFunc( const CompareMatrixElemFunc& ) = delete; -+ CompareMatrixElemFunc& operator= ( const CompareMatrixElemFunc& ) = delete; -+ -+ CompareMatrixElemFunc( CompareMatrixElemFunc&& ) = default; -+ CompareMatrixElemFunc& operator= ( CompareMatrixElemFunc&& ) = default; -+ - void operator() (const MatrixImplType::element_block_node_type& node) - { - switch (node.type) -@@ -323,7 +329,7 @@ public: - const ScFullMatrix::EmptyOpFunction& aEmptyFunc) const; - - template<typename T> -- std::vector<ScMatrix::IterateResult> ApplyCollectOperation(bool bTextAsZero, const std::vector<std::unique_ptr<T>>& aOp); -+ std::vector<ScMatrix::IterateResult> ApplyCollectOperation(const std::vector<std::unique_ptr<T>>& aOp); - - void MatConcat(SCSIZE nMaxCol, SCSIZE nMaxRow, const ScMatrixRef& xMat1, const ScMatrixRef& xMat2, - SvNumberFormatter& rFormatter, svl::SharedStringPool& rPool); -@@ -979,7 +985,7 @@ void ScMatrixImpl::CompareEqual() - { - MatrixImplType::size_pair_type aSize = maMat.size(); - CompareMatrixElemFunc<ElemEqualZero> aFunc(aSize.row, aSize.column); -- maMat.walk(aFunc); -+ aFunc = maMat.walk(std::move(aFunc)); - aFunc.swap(maMat); - } - -@@ -987,7 +993,7 @@ void ScMatrixImpl::CompareNotEqual() - { - MatrixImplType::size_pair_type aSize = maMat.size(); - CompareMatrixElemFunc<ElemNotEqualZero> aFunc(aSize.row, aSize.column); -- maMat.walk(aFunc); -+ aFunc = maMat.walk(std::move(aFunc)); - aFunc.swap(maMat); - } - -@@ -995,7 +1001,7 @@ void ScMatrixImpl::CompareLess() - { - MatrixImplType::size_pair_type aSize = maMat.size(); - CompareMatrixElemFunc<ElemLessZero> aFunc(aSize.row, aSize.column); -- maMat.walk(aFunc); -+ aFunc = maMat.walk(std::move(aFunc)); - aFunc.swap(maMat); - } - -@@ -1003,7 +1009,7 @@ void ScMatrixImpl::CompareGreater() - { - MatrixImplType::size_pair_type aSize = maMat.size(); - CompareMatrixElemFunc<ElemGreaterZero> aFunc(aSize.row, aSize.column); -- maMat.walk(aFunc); -+ aFunc = maMat.walk(std::move(aFunc)); - aFunc.swap(maMat); - } - -@@ -1011,7 +1017,7 @@ void ScMatrixImpl::CompareLessEqual() - { - MatrixImplType::size_pair_type aSize = maMat.size(); - CompareMatrixElemFunc<ElemLessEqualZero> aFunc(aSize.row, aSize.column); -- maMat.walk(aFunc); -+ aFunc = maMat.walk(std::move(aFunc)); - aFunc.swap(maMat); - } - -@@ -1019,7 +1025,7 @@ void ScMatrixImpl::CompareGreaterEqual() - { - MatrixImplType::size_pair_type aSize = maMat.size(); - CompareMatrixElemFunc<ElemGreaterEqualZero> aFunc(aSize.row, aSize.column); -- maMat.walk(aFunc); -+ aFunc = maMat.walk(std::move(aFunc)); - aFunc.swap(maMat); - } - -@@ -1174,21 +1180,34 @@ public: - template<typename Op> - class WalkElementBlocksMultipleValues - { -- const std::vector<std::unique_ptr<Op>>& maOp; -+ const std::vector<std::unique_ptr<Op>>* mpOp; - std::vector<ScMatrix::IterateResult> maRes; - bool mbFirst:1; -- bool mbTextAsZero:1; - public: -- WalkElementBlocksMultipleValues(bool bTextAsZero, const std::vector<std::unique_ptr<Op>>& aOp) : -- maOp(aOp), mbFirst(true), mbTextAsZero(bTextAsZero) -+ WalkElementBlocksMultipleValues(const std::vector<std::unique_ptr<Op>>& aOp) : -+ mpOp(&aOp), mbFirst(true) - { -- for (const auto& rpOp : maOp) -+ for (const auto& rpOp : *mpOp) - { - maRes.emplace_back(rpOp->mInitVal, rpOp->mInitVal, 0); - } - maRes.emplace_back(0.0, 0.0, 0); // count - } - -+ WalkElementBlocksMultipleValues( const WalkElementBlocksMultipleValues& ) = delete; -+ WalkElementBlocksMultipleValues& operator= ( const WalkElementBlocksMultipleValues& ) = delete; -+ -+ WalkElementBlocksMultipleValues( WalkElementBlocksMultipleValues&& r ) : -+ mpOp(r.mpOp), maRes(std::move(r.maRes)), mbFirst(r.mbFirst) {} -+ -+ WalkElementBlocksMultipleValues& operator= ( WalkElementBlocksMultipleValues&& r ) -+ { -+ mpOp = r.mpOp; -+ maRes = std::move(r.maRes); -+ mbFirst = r.mbFirst; -+ return *this; -+ } -+ - const std::vector<ScMatrix::IterateResult>& getResult() const { return maRes; } - - void operator() (const MatrixImplType::element_block_node_type& node) -@@ -1205,17 +1224,17 @@ public: - { - if (mbFirst) - { -- for (auto i = 0u; i < maOp.size(); ++i) -+ for (auto i = 0u; i < mpOp->size(); ++i) - { -- (*maOp[i])(maRes[i].mfFirst, *it); -+ (*(*mpOp)[i])(maRes[i].mfFirst, *it); - } - mbFirst = false; - } - else - { -- for (auto i = 0u; i < maOp.size(); ++i) -+ for (auto i = 0u; i < mpOp->size(); ++i) - { -- (*maOp[i])(maRes[i].mfRest, *it); -+ (*(*mpOp)[i])(maRes[i].mfRest, *it); - } - } - } -@@ -1232,17 +1251,17 @@ public: - { - if (mbFirst) - { -- for (auto i = 0u; i < maOp.size(); ++i) -+ for (auto i = 0u; i < mpOp->size(); ++i) - { -- (*maOp[i])(maRes[i].mfFirst, *it); -+ (*(*mpOp)[i])(maRes[i].mfFirst, *it); - } - mbFirst = false; - } - else - { -- for (auto i = 0u; i < maOp.size(); ++i) -+ for (auto i = 0u; i < mpOp->size(); ++i) - { -- (*maOp[i])(maRes[i].mfRest, *it); -+ (*(*mpOp)[i])(maRes[i].mfRest, *it); - } - } - } -@@ -1250,9 +1269,6 @@ public: - } - break; - case mdds::mtm::element_string: -- if (mbTextAsZero) -- maRes.back().mnCount += node.size; -- break; - case mdds::mtm::element_empty: - default: - ; -@@ -1310,8 +1326,8 @@ template<typename Type> - class WalkAndMatchElements - { - Type maMatchValue; -- const size_t mnStartIndex; -- const size_t mnStopIndex; -+ size_t mnStartIndex; -+ size_t mnStopIndex; - size_t mnResult; - size_t mnIndex; - -@@ -1669,6 +1685,24 @@ public: - maResValues.reserve(nResSize); - } - -+ CompareMatrixFunc( const CompareMatrixFunc& ) = delete; -+ CompareMatrixFunc& operator= ( const CompareMatrixFunc& ) = delete; -+ -+ CompareMatrixFunc( CompareMatrixFunc&& r ) : -+ mrComp(r.mrComp), -+ mnMatPos(r.mnMatPos), -+ mpOptions(r.mpOptions), -+ maResValues(std::move(r.maResValues)) {} -+ -+ CompareMatrixFunc& operator= ( CompareMatrixFunc&& r ) -+ { -+ mrComp = r.mrComp; -+ mnMatPos = r.mnMatPos; -+ mpOptions = r.mpOptions; -+ maResValues = std::move(r.maResValues); -+ return *this; -+ } -+ - void operator() (const MatrixImplType::element_block_node_type& node) - { - sc::Compare::Cell& rCell = mrComp.maCells[mnMatPos]; -@@ -1777,6 +1811,24 @@ public: - maResValues.reserve(nResSize); - } - -+ CompareMatrixToNumericFunc( const CompareMatrixToNumericFunc& ) = delete; -+ CompareMatrixToNumericFunc& operator= ( const CompareMatrixToNumericFunc& ) = delete; -+ -+ CompareMatrixToNumericFunc( CompareMatrixToNumericFunc&& r ) : -+ mrComp(r.mrComp), -+ mfRightValue(r.mfRightValue), -+ mpOptions(r.mpOptions), -+ maResValues(std::move(r.maResValues)) {} -+ -+ CompareMatrixToNumericFunc& operator= ( CompareMatrixToNumericFunc&& r ) -+ { -+ mrComp = r.mrComp; -+ mfRightValue = r.mfRightValue; -+ mpOptions = r.mpOptions; -+ maResValues = std::move(r.maResValues); -+ return *this; -+ } -+ - void operator() (const MatrixImplType::element_block_node_type& node) - { - sc::Compare::Cell& rCell = mrComp.maCells[0]; -@@ -1840,6 +1892,17 @@ class ToDoubleArray - double mfNaN; - bool mbEmptyAsZero; - -+ void moveArray( ToDoubleArray& r ) -+ { -+ // Re-create the iterator from the new array after the array has been -+ // moved, to ensure that the iterator points to a valid array -+ // position. -+ size_t n = std::distance(r.maArray.begin(), r.miPos); -+ maArray = std::move(r.maArray); -+ miPos = maArray.begin(); -+ std::advance(miPos, n); -+ } -+ - public: - ToDoubleArray( size_t nSize, bool bEmptyAsZero ) : - maArray(nSize, 0.0), miPos(maArray.begin()), mbEmptyAsZero(bEmptyAsZero) -@@ -1847,6 +1910,23 @@ public: - mfNaN = CreateDoubleError( FormulaError::ElementNaN); - } - -+ ToDoubleArray( const ToDoubleArray& ) = delete; -+ ToDoubleArray& operator= ( const ToDoubleArray& ) = delete; -+ -+ ToDoubleArray( ToDoubleArray&& r ) : -+ mfNaN(r.mfNaN), mbEmptyAsZero(r.mbEmptyAsZero) -+ { -+ moveArray(r); -+ } -+ -+ ToDoubleArray& operator= ( ToDoubleArray&& r ) -+ { -+ mfNaN = r.mfNaN; -+ mbEmptyAsZero = r.mbEmptyAsZero; -+ moveArray(r); -+ return *this; -+ } -+ - void operator() (const MatrixImplType::element_block_node_type& node) - { - using namespace mdds::mtv; -@@ -1917,6 +1997,12 @@ public: - mfNaN = CreateDoubleError( FormulaError::ElementNaN); - } - -+ MergeDoubleArrayFunc( const MergeDoubleArrayFunc& ) = delete; -+ MergeDoubleArrayFunc& operator= ( const MergeDoubleArrayFunc& ) = delete; -+ -+ MergeDoubleArrayFunc( MergeDoubleArrayFunc&& ) = default; -+ MergeDoubleArrayFunc& operator= ( MergeDoubleArrayFunc&& ) = default; -+ - void operator() (const MatrixImplType::element_block_node_type& node) - { - using namespace mdds::mtv; -@@ -1982,7 +2068,7 @@ template<typename TOp> - ScMatrix::IterateResult GetValueWithCount(bool bTextAsZero, const MatrixImplType& maMat) - { - WalkElementBlocks<TOp> aFunc(bTextAsZero); -- maMat.walk(aFunc); -+ aFunc = maMat.walk(aFunc); - return aFunc.getResult(); - } - -@@ -2006,49 +2092,49 @@ ScMatrix::IterateResult ScMatrixImpl::Product(bool bTextAsZero) const - size_t ScMatrixImpl::Count(bool bCountStrings, bool bCountErrors) const - { - CountElements aFunc(bCountStrings, bCountErrors); -- maMat.walk(aFunc); -+ aFunc = maMat.walk(aFunc); - return aFunc.getCount(); - } - - size_t ScMatrixImpl::MatchDoubleInColumns(double fValue, size_t nCol1, size_t nCol2) const - { - WalkAndMatchElements<double> aFunc(fValue, maMat.size(), nCol1, nCol2); -- maMat.walk(aFunc); -+ aFunc = maMat.walk(aFunc); - return aFunc.getMatching(); - } - - size_t ScMatrixImpl::MatchStringInColumns(const svl::SharedString& rStr, size_t nCol1, size_t nCol2) const - { - WalkAndMatchElements<svl::SharedString> aFunc(rStr, maMat.size(), nCol1, nCol2); -- maMat.walk(aFunc); -+ aFunc = maMat.walk(aFunc); - return aFunc.getMatching(); - } - - double ScMatrixImpl::GetMaxValue( bool bTextAsZero ) const - { - CalcMaxMinValue<MaxOp> aFunc(bTextAsZero); -- maMat.walk(aFunc); -+ aFunc = maMat.walk(aFunc); - return aFunc.getValue(); - } - - double ScMatrixImpl::GetMinValue( bool bTextAsZero ) const - { - CalcMaxMinValue<MinOp> aFunc(bTextAsZero); -- maMat.walk(aFunc); -+ aFunc = maMat.walk(aFunc); - return aFunc.getValue(); - } - - double ScMatrixImpl::GetGcd() const - { - CalcGcdLcm<Gcd> aFunc; -- maMat.walk(aFunc); -+ aFunc = maMat.walk(aFunc); - return aFunc.getResult(); - } - - double ScMatrixImpl::GetLcm() const - { - CalcGcdLcm<Lcm> aFunc; -- maMat.walk(aFunc); -+ aFunc = maMat.walk(aFunc); - return aFunc.getResult(); - } - -@@ -2065,7 +2151,7 @@ ScMatrixRef ScMatrixImpl::CompareMatrix( - // function object that has much less branching for much better - // performance. - CompareMatrixToNumericFunc aFunc(nSize, rComp, rComp.maCells[1].mfValue, pOptions); -- maMat.walk(aFunc); -+ aFunc = maMat.walk(std::move(aFunc)); - - // We assume the result matrix has the same dimension as this matrix. - const std::vector<double>& rResVal = aFunc.getValues(); -@@ -2077,7 +2163,7 @@ ScMatrixRef ScMatrixImpl::CompareMatrix( - } - - CompareMatrixFunc aFunc(nSize, rComp, nMatPos, pOptions); -- maMat.walk(aFunc); -+ aFunc = maMat.walk(std::move(aFunc)); - - // We assume the result matrix has the same dimension as this matrix. - const std::vector<double>& rResVal = aFunc.getValues(); -@@ -2091,7 +2177,7 @@ void ScMatrixImpl::GetDoubleArray( std::vector<double>& rArray, bool bEmptyAsZer - { - MatrixImplType::size_pair_type aSize = maMat.size(); - ToDoubleArray aFunc(aSize.row*aSize.column, bEmptyAsZero); -- maMat.walk(aFunc); -+ aFunc = maMat.walk(std::move(aFunc)); - aFunc.swap(rArray); - } - -@@ -2107,7 +2193,7 @@ void ScMatrixImpl::MergeDoubleArray( std::vector<double>& rArray, ScFullMatrix:: - case ScFullMatrix::Mul: - { - MergeDoubleArrayFunc<ArrayMul> aFunc(rArray); -- maMat.walk(aFunc); -+ aFunc = maMat.walk(std::move(aFunc)); - } - break; - default: -@@ -2329,16 +2415,26 @@ struct MatrixOpWrapper - private: - MatrixImplType& mrMat; - MatrixImplType::position_type pos; -- T maOp; -+ const T* mpOp; - - public: -- MatrixOpWrapper(MatrixImplType& rMat, T const & aOp): -+ MatrixOpWrapper(MatrixImplType& rMat, const T& aOp): - mrMat(rMat), - pos(rMat.position(0,0)), -- maOp(aOp) -+ mpOp(&aOp) - { - } - -+ MatrixOpWrapper( const MatrixOpWrapper& r ) : mrMat(r.mrMat), pos(r.pos), mpOp(r.mpOp) {} -+ -+ MatrixOpWrapper& operator= ( const MatrixOpWrapper& r ) -+ { -+ mrMat = r.mrMat; -+ pos = r.pos; -+ mpOp = r.mpOp; -+ return *this; -+ } -+ - void operator()(const MatrixImplType::element_block_node_type& node) - { - switch (node.type) -@@ -2349,7 +2445,7 @@ public: - - block_type::const_iterator it = block_type::begin(*node.data); - block_type::const_iterator itEnd = block_type::end(*node.data); -- MatrixIteratorWrapper<block_type, T, typename T::number_value_type> aFunc(it, itEnd, maOp); -+ MatrixIteratorWrapper<block_type, T, typename T::number_value_type> aFunc(it, itEnd, *mpOp); - pos = mrMat.set(pos,aFunc.begin(), aFunc.end()); - } - break; -@@ -2360,7 +2456,7 @@ public: - block_type::const_iterator it = block_type::begin(*node.data); - block_type::const_iterator itEnd = block_type::end(*node.data); - -- MatrixIteratorWrapper<block_type, T, typename T::number_value_type> aFunc(it, itEnd, maOp); -+ MatrixIteratorWrapper<block_type, T, typename T::number_value_type> aFunc(it, itEnd, *mpOp); - pos = mrMat.set(pos, aFunc.begin(), aFunc.end()); - } - break; -@@ -2371,17 +2467,17 @@ public: - block_type::const_iterator it = block_type::begin(*node.data); - block_type::const_iterator itEnd = block_type::end(*node.data); - -- MatrixIteratorWrapper<block_type, T, typename T::number_value_type> aFunc(it, itEnd, maOp); -+ MatrixIteratorWrapper<block_type, T, typename T::number_value_type> aFunc(it, itEnd, *mpOp); - pos = mrMat.set(pos, aFunc.begin(), aFunc.end()); - } - break; - case mdds::mtm::element_empty: - { -- if (maOp.useFunctionForEmpty()) -+ if (mpOp->useFunctionForEmpty()) - { - std::vector<char> aVec(node.size); - MatrixIteratorWrapper<std::vector<char>, T, typename T::number_value_type> -- aFunc(aVec.begin(), aVec.end(), maOp); -+ aFunc(aVec.begin(), aVec.end(), *mpOp); - pos = mrMat.set(pos, aFunc.begin(), aFunc.end()); - } - } -@@ -2397,14 +2493,14 @@ template<typename T> - void ScMatrixImpl::ApplyOperation(T aOp, ScMatrixImpl& rMat) - { - MatrixOpWrapper<T> aFunc(rMat.maMat, aOp); -- maMat.walk(aFunc); -+ aFunc = maMat.walk(aFunc); - } - - template<typename T> --std::vector<ScMatrix::IterateResult> ScMatrixImpl::ApplyCollectOperation(bool bTextAsZero, const std::vector<std::unique_ptr<T>>& aOp) -+std::vector<ScMatrix::IterateResult> ScMatrixImpl::ApplyCollectOperation(const std::vector<std::unique_ptr<T>>& aOp) - { -- WalkElementBlocksMultipleValues<T> aFunc(bTextAsZero, aOp); -- maMat.walk(aFunc); -+ WalkElementBlocksMultipleValues<T> aFunc(aOp); -+ aFunc = maMat.walk(std::move(aFunc)); - return aFunc.getResult(); - } - -@@ -2544,8 +2640,10 @@ void ScMatrixImpl::ExecuteOperation(const std::pair<size_t, size_t>& rStartPos, - { - WalkElementBlockOperation aFunc(maMat.size().row, - aDoubleFunc, aBoolFunc, aStringFunc, aEmptyFunc); -- maMat.walk(aFunc, MatrixImplType::size_pair_type(rStartPos.first, rStartPos.second), -- MatrixImplType::size_pair_type(rEndPos.first, rEndPos.second)); -+ aFunc = maMat.walk( -+ aFunc, -+ MatrixImplType::size_pair_type(rStartPos.first, rStartPos.second), -+ MatrixImplType::size_pair_type(rEndPos.first, rEndPos.second)); - } - - #if DEBUG_MATRIX -@@ -3452,9 +3550,9 @@ void ScFullMatrix::ExecuteOperation(const std::pair<size_t, size_t>& rStartPos, - pImpl->ExecuteOperation(rStartPos, rEndPos, aDoubleFunc, aBoolFunc, aStringFunc, aEmptyFunc); - } - --std::vector<ScMatrix::IterateResult> ScFullMatrix::Collect(bool bTextAsZero, const std::vector<std::unique_ptr<sc::op::Op>>& aOp) -+std::vector<ScMatrix::IterateResult> ScFullMatrix::Collect(const std::vector<std::unique_ptr<sc::op::Op>>& aOp) - { -- return pImpl->ApplyCollectOperation(bTextAsZero, aOp); -+ return pImpl->ApplyCollectOperation(aOp); - } - - ScFullMatrix& ScFullMatrix::operator+= ( const ScFullMatrix& r ) -@@ -4216,10 +4314,10 @@ void ScVectorRefMatrix::PowOp(bool bFlag, double fVal, ScMatrix& rMat) - mpFullMatrix->PowOp(bFlag, fVal, rMat); - } - --std::vector<ScMatrix::IterateResult> ScVectorRefMatrix::Collect(bool bTextAsZero, const std::vector<std::unique_ptr<sc::op::Op>>& aOp) -+std::vector<ScMatrix::IterateResult> ScVectorRefMatrix::Collect(const std::vector<std::unique_ptr<sc::op::Op>>& aOp) - { - ensureFullMatrix(); -- return mpFullMatrix->Collect(bTextAsZero, aOp); -+ return mpFullMatrix->Collect(aOp); - } - - void ScVectorRefMatrix::ExecuteOperation(const std::pair<size_t, size_t>& rStartPos, --- -2.17.1 - - Deleted: 0001-Update-orcus-to-0.14.0.patch =================================================================== --- 0001-Update-orcus-to-0.14.0.patch 2019-02-07 14:37:32 UTC (rev 345604) +++ 0001-Update-orcus-to-0.14.0.patch 2019-02-07 15:00:30 UTC (rev 345605) @@ -1,802 +0,0 @@ -From 1d0727a104d76210814f41c1169df318e40c9d80 Mon Sep 17 00:00:00 2001 -From: Kohei Yoshida <[email protected]> -Date: Mon, 27 Aug 2018 11:06:17 -0400 -Subject: [PATCH] Update orcus to 0.14.0. - -And make all necessary adjustments for the new version of orcus. - -Change-Id: I0dc207162a3ddfaad6da198a3d13b65f530757d5 -Reviewed-on: https://gerrit.libreoffice.org/59884 -Tested-by: Jenkins -Reviewed-by: Kohei Yoshida <[email protected]> ---- - RepositoryExternal.mk | 4 +- - configure.ac | 2 +- - download.lst | 4 +- - .../0001-Missing-header-for-std-tolower.patch | 24 ++ - external/liborcus/ExternalPackage_liborcus.mk | 8 +- - external/liborcus/ExternalProject_liborcus.mk | 4 +- - external/liborcus/Library_orcus.mk | 2 + - external/liborcus/UnpackedTarball_liborcus.mk | 1 + - external/liborcus/gcc9.patch.0 | 3 +- - sc/source/filter/inc/orcusinterface.hxx | 107 ++++-- - sc/source/filter/orcus/interface.cxx | 322 +++++++++++++----- - sc/source/filter/orcus/xmlcontext.cxx | 5 +- - 12 files changed, 360 insertions(+), 126 deletions(-) - create mode 100644 external/liborcus/0001-Missing-header-for-std-tolower.patch - -diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk -index cec79cc105e8..f172765a84f8 100644 ---- a/RepositoryExternal.mk -+++ b/RepositoryExternal.mk -@@ -3295,7 +3295,7 @@ $(call gb_LinkTarget_set_include,$(1),\ - ) - - $(call gb_LinkTarget_add_libs,$(1),\ -- -L$(call gb_UnpackedTarball_get_dir,liborcus)/src/liborcus/.libs -lorcus-0.13 \ -+ -L$(call gb_UnpackedTarball_get_dir,liborcus)/src/liborcus/.libs -lorcus-0.14 \ - ) - - $(if $(SYSTEM_BOOST), \ -@@ -3314,7 +3314,7 @@ $(call gb_LinkTarget_set_include,$(1),\ - ) - - $(call gb_LinkTarget_add_libs,$(1),\ -- -L$(call gb_UnpackedTarball_get_dir,liborcus)/src/parser/.libs -lorcus-parser-0.13 \ -+ -L$(call gb_UnpackedTarball_get_dir,liborcus)/src/parser/.libs -lorcus-parser-0.14 \ - ) - - endef -diff --git a/configure.ac b/configure.ac -index 3c9e5dc5e908..a60a3e72689f 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -9196,7 +9196,7 @@ AC_SUBST(ENABLE_FUZZERS) - dnl =================================================================== - dnl Orcus - dnl =================================================================== --libo_CHECK_SYSTEM_MODULE([orcus],[ORCUS],[liborcus-0.13 >= 0.13.3]) -+libo_CHECK_SYSTEM_MODULE([orcus],[ORCUS],[liborcus-0.14 >= 0.14.0]) - if test "$with_system_orcus" != "yes"; then - if test "$SYSTEM_BOOST" = "TRUE"; then - # =========================================================== -diff --git a/download.lst b/download.lst -index 1ed75b36f3b3..3532e2be3aa3 100644 ---- a/download.lst -+++ b/download.lst -@@ -194,8 +194,8 @@ export OPENLDAP_SHA256SUM := cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb89 - export OPENLDAP_TARBALL := openldap-2.4.45.tgz - export OPENSSL_SHA256SUM := 50a98e07b1a89eb8f6a99477f262df71c6fa7bef77df4dc83025a2845c827d00 - export OPENSSL_TARBALL := openssl-1.0.2p.tar.gz --export ORCUS_SHA256SUM := bc01b1b3e9091416f498840d3c19a1aa2704b448100e7f6b80eefe88aab06d5b --export ORCUS_TARBALL := liborcus-0.13.4.tar.gz -+export ORCUS_SHA256SUM := 7bcfac3f4f490540292cfc87d3fde7b47eafa8450afa1e1a2c181d8293dcd4ef -+export ORCUS_TARBALL := liborcus-0.14.0.tar.gz - export OWNCLOUD_ANDROID_LIB_SHA256SUM := b18b3e3ef7fae6a79b62f2bb43cc47a5346b6330f6a383dc4be34439aca5e9fb - export OWNCLOUD_ANDROID_LIB_TARBALL := owncloud-android-library-0.9.4-no-binary-deps.tar.gz - export PAGEMAKER_SHA256SUM := 66adacd705a7d19895e08eac46d1e851332adf2e736c566bef1164e7a442519d -diff --git a/external/liborcus/0001-Missing-header-for-std-tolower.patch b/external/liborcus/0001-Missing-header-for-std-tolower.patch -new file mode 100644 -index 000000000000..2e00be92a872 ---- /dev/null -+++ b/external/liborcus/0001-Missing-header-for-std-tolower.patch -@@ -0,0 +1,24 @@ -+From 3a6bb93a382b4d5f1463ee3fdd54cab7048ff996 Mon Sep 17 00:00:00 2001 -+From: Kohei Yoshida <[email protected]> -+Date: Fri, 31 Aug 2018 16:07:06 -0400 -+Subject: [PATCH] Missing header for std::tolower. -+ -+--- -+ src/parser/sax_token_parser.cpp | 1 + -+ 1 file changed, 1 insertion(+) -+ -+diff --git a/src/parser/sax_token_parser.cpp b/src/parser/sax_token_parser.cpp -+index 9790b498..44ba5844 100644 -+--- a/src/parser/sax_token_parser.cpp -++++ b/src/parser/sax_token_parser.cpp -+@@ -9,6 +9,7 @@ -+ #include "orcus/tokens.hpp" -+ -+ #include <mdds/sorted_string_map.hpp> -++#include <cctype> -+ -+ namespace orcus { -+ -+-- -+2.17.1 -+ -diff --git a/external/liborcus/ExternalPackage_liborcus.mk b/external/liborcus/ExternalPackage_liborcus.mk -index 32382b7d89a1..ffa0b38bea19 100644 ---- a/external/liborcus/ExternalPackage_liborcus.mk -+++ b/external/liborcus/ExternalPackage_liborcus.mk -@@ -12,11 +12,11 @@ $(eval $(call gb_ExternalPackage_ExternalPackage,liborcus,liborcus)) - $(eval $(call gb_ExternalPackage_use_external_project,liborcus,liborcus)) - - ifeq ($(OS),MACOSX) --$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-0.13.0.dylib,src/liborcus/.libs/liborcus-0.13.0.dylib)) --$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.13.0.dylib,src/parser/.libs/liborcus-parser-0.13.0.dylib)) -+$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-0.14.0.dylib,src/liborcus/.libs/liborcus-0.14.0.dylib)) -+$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.14.0.dylib,src/parser/.libs/liborcus-parser-0.14.0.dylib)) - else ifeq ($(DISABLE_DYNLOADING),) --$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-0.13.so.0,src/liborcus/.libs/liborcus-0.13.so.0.0.0)) --$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.13.so.0,src/parser/.libs/liborcus-parser-0.13.so.0.0.0)) -+$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-0.14.so.0,src/liborcus/.libs/liborcus-0.14.so.0.0.0)) -+$(eval $(call gb_ExternalPackage_add_file,liborcus,$(LIBO_LIB_FOLDER)/liborcus-parser-0.14.so.0,src/parser/.libs/liborcus-parser-0.14.so.0.0.0)) - endif - - # vim: set noet sw=4 ts=4: -diff --git a/external/liborcus/ExternalProject_liborcus.mk b/external/liborcus/ExternalProject_liborcus.mk -index 928c78e3a267..1aa591228f40 100644 ---- a/external/liborcus/ExternalProject_liborcus.mk -+++ b/external/liborcus/ExternalProject_liborcus.mk -@@ -114,8 +114,8 @@ $(call gb_ExternalProject_get_state_target,liborcus,build) : - $(MAKE) \ - $(if $(filter MACOSX,$(OS)),\ - && $(PERL) $(SRCDIR)/solenv/bin/macosx-change-install-names.pl shl OOO \ -- $(EXTERNAL_WORKDIR)/src/liborcus/.libs/liborcus-0.13.0.dylib \ -- $(EXTERNAL_WORKDIR)/src/parser/.libs/liborcus-parser-0.13.0.dylib \ -+ $(EXTERNAL_WORKDIR)/src/liborcus/.libs/liborcus-0.14.0.dylib \ -+ $(EXTERNAL_WORKDIR)/src/parser/.libs/liborcus-parser-0.14.0.dylib \ - ) \ - ) - -diff --git a/external/liborcus/Library_orcus.mk b/external/liborcus/Library_orcus.mk -index 6457ec4afc0c..1f026c425244 100644 ---- a/external/liborcus/Library_orcus.mk -+++ b/external/liborcus/Library_orcus.mk -@@ -55,6 +55,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,orcus,\ - UnpackedTarball/liborcus/src/liborcus/detection_result \ - UnpackedTarball/liborcus/src/liborcus/dom_tree \ - UnpackedTarball/liborcus/src/liborcus/format_detection \ -+ UnpackedTarball/liborcus/src/liborcus/formula_result \ - UnpackedTarball/liborcus/src/liborcus/global \ - UnpackedTarball/liborcus/src/liborcus/gnumeric_cell_context \ - UnpackedTarball/liborcus/src/liborcus/gnumeric_context \ -@@ -96,6 +97,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,orcus,\ - UnpackedTarball/liborcus/src/liborcus/orcus_xlsx \ - UnpackedTarball/liborcus/src/liborcus/orcus_xml \ - UnpackedTarball/liborcus/src/liborcus/session_context \ -+ UnpackedTarball/liborcus/src/liborcus/spreadsheet_iface_util \ - UnpackedTarball/liborcus/src/liborcus/spreadsheet_interface \ - UnpackedTarball/liborcus/src/liborcus/spreadsheet_types \ - UnpackedTarball/liborcus/src/liborcus/string_helper \ -diff --git a/external/liborcus/UnpackedTarball_liborcus.mk b/external/liborcus/UnpackedTarball_liborcus.mk -index 215bd4b8cc15..f637cc73db46 100644 ---- a/external/liborcus/UnpackedTarball_liborcus.mk -+++ b/external/liborcus/UnpackedTarball_liborcus.mk -@@ -19,5 +19,6 @@ $(eval $(call gb_UnpackedTarball_add_patches,liborcus,\ - external/liborcus/0001-workaround-a-linking-problem-on-windows.patch \ - external/liborcus/rpath.patch.0 \ -+ external/liborcus/0001-Missing-header-for-std-tolower.patch \ - )) - - ifeq ($(OS),WNT) -diff --git a/sc/source/filter/inc/orcusinterface.hxx b/sc/source/filter/inc/orcusinterface.hxx -index 028fb4126f01..dce0d5b0a64e 100644 ---- a/sc/source/filter/inc/orcusinterface.hxx -+++ b/sc/source/filter/inc/orcusinterface.hxx -@@ -54,6 +54,7 @@ public: - ScOrcusGlobalSettings(ScDocumentImport& rDoc); - - virtual void set_origin_date(int year, int month, int day) override; -+ virtual void set_character_set(orcus::character_set_t cs) override; - - virtual void set_default_formula_grammar(orcus::spreadsheet::formula_grammar_t grammar) override; - virtual orcus::spreadsheet::formula_grammar_t get_default_formula_grammar() const override; -@@ -181,7 +182,7 @@ public: - - virtual ~ScOrcusAutoFilter() override; - -- virtual void set_range(const char* p_ref, size_t n_ref) override; -+ virtual void set_range(const orcus::spreadsheet::range_t& range) override; - - virtual void set_column(orcus::spreadsheet::col_t col) override; - -@@ -214,22 +215,95 @@ public: - virtual void set_merge_cell_range(const orcus::spreadsheet::range_t& range) override; - }; - -+class ScOrcusSheet; -+ -+class ScOrcusFormula : public orcus::spreadsheet::iface::import_formula -+{ -+ enum class ResultType { NotSet, String, Value, Empty }; -+ -+ friend class ScOrcusSheet; -+ -+ ScOrcusSheet& mrSheet; -+ -+ SCCOL mnCol; -+ SCROW mnRow; -+ OUString maFormula; -+ formula::FormulaGrammar::Grammar meGrammar; -+ size_t mnSharedFormulaIndex; -+ bool mbShared; -+ -+ ResultType meResType; -+ size_t mnResult; // result string index. -+ double mfResult; -+ -+ void reset(); -+ -+public: -+ ScOrcusFormula( ScOrcusSheet& rSheet ); -+ virtual ~ScOrcusFormula() override; -+ -+ virtual void set_position(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col) override; -+ virtual void set_formula(orcus::spreadsheet::formula_grammar_t grammar, const char* p, size_t n) override; -+ virtual void set_shared_formula_index(size_t index) override; -+ virtual void set_result_value(double value) override; -+ virtual void set_result_string(size_t sindex) override; -+ virtual void set_result_empty() override; -+ virtual void set_result_bool(bool value) override; -+ virtual void commit() override; -+}; -+ -+class ScOrcusArrayFormula : public orcus::spreadsheet::iface::import_array_formula -+{ -+ friend class ScOrcusSheet; -+ -+ ScOrcusSheet& mrSheet; -+ -+ SCCOL mnCol; -+ SCROW mnRow; -+ uint32_t mnColRange; -+ uint32_t mnRowRange; -+ OUString maFormula; -+ formula::FormulaGrammar::Grammar meGrammar; -+ -+ void reset(); -+ -+public: -+ ScOrcusArrayFormula( ScOrcusSheet& rSheet ); -+ virtual ~ScOrcusArrayFormula() override; -+ -+ virtual void set_range(const orcus::spreadsheet::range_t& range) override; -+ virtual void set_formula(orcus::spreadsheet::formula_grammar_t grammar, const char* p, size_t n) override; -+ virtual void set_result_value(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, double value) override; -+ virtual void set_result_string(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, size_t sindex) override; -+ virtual void set_result_empty(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col) override; -+ virtual void set_result_bool(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, bool value) override; -+ virtual void commit() override; -+}; -+ - class ScOrcusSheet : public orcus::spreadsheet::iface::import_sheet - { -+ friend class ScOrcusFormula; -+ friend class ScOrcusArrayFormula; -+ - ScDocumentImport& mrDoc; - SCTAB mnTab; - ScOrcusFactory& mrFactory; - ScOrcusStyles& mrStyles; - sc::SharedFormulaGroups maFormulaGroups; -+ - ScOrcusAutoFilter maAutoFilter; - ScOrcusSheetProperties maProperties; - ScOrcusConditionalFormat maConditionalFormat; - ScOrcusNamedExpression maNamedExpressions; -+ ScOrcusFormula maFormula; -+ ScOrcusArrayFormula maArrayFormula; - - int mnCellCount; - - void cellInserted(); - -+ ScDocumentImport& getDoc(); -+ - public: - ScOrcusSheet(ScDocumentImport& rDoc, SCTAB nTab, ScOrcusFactory& rFactory); - -@@ -238,6 +312,8 @@ public: - virtual orcus::spreadsheet::iface::import_sheet_properties* get_sheet_properties() override; - virtual orcus::spreadsheet::iface::import_conditional_format* get_conditional_format() override; - virtual orcus::spreadsheet::iface::import_named_expression* get_named_expression() override; -+ virtual orcus::spreadsheet::iface::import_formula* get_formula() override; -+ virtual orcus::spreadsheet::iface::import_array_formula* get_array_formula() override; - - // Orcus import interface - virtual void set_auto(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, const char* p, size_t n) override; -@@ -251,33 +327,13 @@ public: - virtual void set_format(orcus::spreadsheet::row_t row_start, orcus::spreadsheet::col_t col_start, - orcus::spreadsheet::row_t row_end, orcus::spreadsheet::col_t col_end, size_t xf_index) override; - -- virtual void set_formula(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar, const char* p, size_t n) override; -- virtual void set_formula_result(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, const char* p, size_t n) override; -- virtual void set_formula_result(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, double val) override; -- -- virtual void set_shared_formula( -- orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar, size_t sindex, -- const char* p_formula, size_t n_formula) override; -- -- virtual void set_shared_formula( -- orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar, size_t sindex, -- const char* p_formula, size_t n_formula, const char* p_range, size_t n_range) override; -- -- virtual void set_shared_formula(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, size_t sindex) override; -- -- virtual void set_array_formula( -- orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar, -- const char* p, size_t n, orcus::spreadsheet::row_t array_rows, orcus::spreadsheet::col_t array_cols) override; -- -- virtual void set_array_formula( -- orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar, -- const char* p, size_t n, const char* p_range, size_t n_range) override; -- - virtual orcus::spreadsheet::range_size_t get_sheet_size() const override; - - SCTAB getIndex() const { return mnTab; } - - const sc::SharedFormulaGroups& getSharedFormulaGroups() const; -+ sc::SharedFormulaGroups& getSharedFormulaGroups(); -+ ScOrcusFactory& getFactory(); - }; - - class ScOrcusStyles : public orcus::spreadsheet::iface::import_styles -@@ -312,7 +368,7 @@ private: - - struct fill - { -- OUString maPattern; -+ orcus::spreadsheet::fill_pattern_t mePattern; - Color maFgColor; - Color maBgColor; - -@@ -446,7 +502,7 @@ public: - // fill - - virtual void set_fill_count(size_t n) override; -- virtual void set_fill_pattern_type(const char* s, size_t n) override; -+ virtual void set_fill_pattern_type(orcus::spreadsheet::fill_pattern_t fp) override; - virtual void set_fill_fg_color(orcus::spreadsheet::color_elem_t alpha, orcus::spreadsheet::color_elem_t red, orcus::spreadsheet::color_elem_t green, orcus::spreadsheet::color_elem_t blue) override; - virtual void set_fill_bg_color(orcus::spreadsheet::color_elem_t alpha, orcus::spreadsheet::color_elem_t red, orcus::spreadsheet::color_elem_t green, orcus::spreadsheet::color_elem_t blue) override; - virtual size_t commit_fill() override; -@@ -580,6 +636,7 @@ public: - - size_t appendString(const OUString& rStr); - size_t addString(const OUString& rStr); -+ const OUString* getString(size_t nIndex) const; - - void pushCellStoreAutoToken( const ScAddress& rPos, const OUString& rVal ); - void pushCellStoreToken( const ScAddress& rPos, uint32_t nStrIndex ); -diff --git a/sc/source/filter/orcus/interface.cxx b/sc/source/filter/orcus/interface.cxx -index dcf3e83d7eae..7b8425d3007d 100644 ---- a/sc/source/filter/orcus/interface.cxx -+++ b/sc/source/filter/orcus/interface.cxx -@@ -101,6 +101,11 @@ void ScOrcusGlobalSettings::set_origin_date(int year, int month, int day) - mrDoc.setOriginDate(year, month, day); - } - -+void ScOrcusGlobalSettings::set_character_set(orcus::character_set_t /*cs*/) -+{ -+ // TODO -+} -+ - void ScOrcusGlobalSettings::set_default_formula_grammar(os::formula_grammar_t grammar) - { - meCalcGrammar = getCalcGrammarFromOrcus(grammar); -@@ -463,6 +468,11 @@ size_t ScOrcusFactory::addString(const OUString& rStr) - return appendString(rStr); - } - -+const OUString* ScOrcusFactory::getString(size_t nIndex) const -+{ -+ return nIndex < maStrings.size() ? &maStrings[nIndex] : nullptr; -+} -+ - void ScOrcusFactory::pushCellStoreAutoToken( const ScAddress& rPos, const OUString& rVal ) - { - maCellStoreTokens.emplace_back(rPos, CellStoreToken::Type::Auto); -@@ -816,10 +826,197 @@ ScOrcusSheet::ScOrcusSheet(ScDocumentImport& rDoc, SCTAB nTab, ScOrcusFactory& r - maProperties(mnTab, mrDoc), - maConditionalFormat(mnTab, rDoc.getDoc()), - maNamedExpressions(rDoc, rFactory.getGlobalSettings(), nTab), -+ maFormula(*this), -+ maArrayFormula(*this), - mnCellCount(0) - { - } - -+void ScOrcusFormula::reset() -+{ -+ mnCol = -1; -+ mnRow = -1; -+ maFormula.clear(); -+ meGrammar = formula::FormulaGrammar::GRAM_UNSPECIFIED; -+ mnSharedFormulaIndex = 0; -+ mbShared = false; -+ meResType = ResultType::NotSet; -+ mnResult = 0; -+ mfResult = 0.0; -+} -+ -+ScOrcusFormula::ScOrcusFormula( ScOrcusSheet& rSheet ) : -+ mrSheet(rSheet), -+ mnCol(-1), -+ mnRow(-1), -+ meGrammar(formula::FormulaGrammar::GRAM_UNSPECIFIED), -+ mnSharedFormulaIndex(0), -+ mbShared(false), -+ meResType(ResultType::NotSet), -+ mnResult(0), -+ mfResult(0.0) {} -+ -+ScOrcusFormula::~ScOrcusFormula() {} -+ -+void ScOrcusFormula::set_position(os::row_t row, os::col_t col) -+{ -+ mnCol = col; -+ mnRow = row; -+} -+ -+void ScOrcusFormula::set_formula(os::formula_grammar_t grammar, const char* p, size_t n) -+{ -+ maFormula = OUString(p, n, RTL_TEXTENCODING_UTF8); -+ meGrammar = getCalcGrammarFromOrcus(grammar); -+} -+ -+void ScOrcusFormula::set_shared_formula_index(size_t index) -+{ -+ mnSharedFormulaIndex = index; -+ mbShared = true; -+} -+ -+void ScOrcusFormula::set_result_value(double value) -+{ -+ meResType = ResultType::Value; -+ mfResult = value; -+} -+ -+void ScOrcusFormula::set_result_string(size_t sindex) -+{ -+ meResType = ResultType::String; -+ mnResult = sindex; -+} -+ -+void ScOrcusFormula::set_result_empty() -+{ -+ meResType = ResultType::Empty; -+} -+ -+void ScOrcusFormula::set_result_bool(bool value) -+{ -+ meResType = ResultType::Value; -+ mfResult = value ? 1.0 : 0.0; -+} -+ -+void ScOrcusFormula::commit() -+{ -+ ScOrcusFactory& rFactory = mrSheet.getFactory(); -+ sc::SharedFormulaGroups& rGroups = mrSheet.getSharedFormulaGroups(); -+ ScAddress aPos(mnCol, mnRow, mrSheet.getIndex()); -+ -+ if (mbShared) -+ { -+ if (maFormula.isEmpty()) -+ { -+ // shared formula that references existing formula token. -+ const ScTokenArray* pArray = rGroups.get(mnSharedFormulaIndex); -+ if (!pArray) -+ return; -+ } -+ else -+ { -+ // topmost shared formula with new formula token. -+ -+ // Compile the formula expression into tokens. -+ ScCompiler aComp(&mrSheet.getDoc().getDoc(), aPos, meGrammar); -+ ScTokenArray* pArray = aComp.CompileString(maFormula); -+ if (!pArray) -+ // Tokenization failed. -+ return; -+ -+ rGroups.set(mnSharedFormulaIndex, pArray); -+ } -+ rFactory.pushSharedFormulaToken(aPos, mnSharedFormulaIndex); -+ } -+ else -+ { -+ // non-shared formula -+ rFactory.pushCellStoreToken(aPos, maFormula, meGrammar); -+ } -+ -+ switch (meResType) -+ { -+ case ResultType::String: -+ { -+ const OUString* pStr = rFactory.getString(mnResult); -+ if (pStr) -+ rFactory.pushFormulaResult(aPos, *pStr); -+ break; -+ } -+ case ResultType::Value: -+ rFactory.pushFormulaResult(aPos, mfResult); -+ break; -+ default: -+ ; -+ } -+ -+ mrSheet.cellInserted(); -+} -+ -+void ScOrcusArrayFormula::reset() -+{ -+ mnCol = -1; -+ mnRow = -1; -+ mnColRange = 0; -+ mnRowRange = 0; -+ -+ maFormula.clear(); -+ meGrammar = formula::FormulaGrammar::GRAM_UNSPECIFIED; -+} -+ -+ScOrcusArrayFormula::ScOrcusArrayFormula( ScOrcusSheet& rSheet ) : -+ mrSheet(rSheet), -+ mnCol(-1), -+ mnRow(-1), -+ mnColRange(0), -+ mnRowRange(0), -+ meGrammar(formula::FormulaGrammar::GRAM_UNSPECIFIED) {} -+ -+ScOrcusArrayFormula::~ScOrcusArrayFormula() {} -+ -+void ScOrcusArrayFormula::set_range(const os::range_t& range) -+{ -+ mnCol = range.first.column; -+ mnRow = range.first.row; -+ -+ mnColRange = range.last.column - range.first.column + 1; -+ mnRowRange = range.last.row - range.first.column + 1; -+} -+ -+void ScOrcusArrayFormula::set_formula(os::formula_grammar_t grammar, const char* p, size_t n) -+{ -+ meGrammar = getCalcGrammarFromOrcus(grammar); -+ maFormula = OUString(p, n, RTL_TEXTENCODING_UTF8); -+} -+ -+void ScOrcusArrayFormula::set_result_value(os::row_t /*row*/, os::col_t /*col*/, double /*value*/) -+{ -+ // TODO : implement result cache for matrix -+} -+ -+void ScOrcusArrayFormula::set_result_string(os::row_t /*row*/, os::col_t /*col*/, size_t /*sindex*/) -+{ -+ // TODO : implement result cache for matrix -+} -+ -+void ScOrcusArrayFormula::set_result_empty(os::row_t /*row*/, os::col_t /*col*/) -+{ -+ // TODO : implement result cache for matrix -+} -+ -+void ScOrcusArrayFormula::set_result_bool(os::row_t /*row*/, os::col_t /*col*/, bool /*value*/) -+{ -+ // TODO : implement result cache for matrix -+} -+ -+void ScOrcusArrayFormula::commit() -+{ -+ ScAddress aPos(mnCol, mnRow, mrSheet.getIndex()); -+ mrSheet.getFactory().pushMatrixFormulaToken(aPos, maFormula, meGrammar, mnRowRange, mnColRange); -+ mrSheet.cellInserted(); -+} -+ - void ScOrcusSheet::cellInserted() - { - ++mnCellCount; -@@ -830,6 +1027,11 @@ void ScOrcusSheet::cellInserted() - } - } - -+ScDocumentImport& ScOrcusSheet::getDoc() -+{ -+ return mrDoc; -+} -+ - os::iface::import_auto_filter* ScOrcusSheet::get_auto_filter() - { - return &maAutoFilter; -@@ -855,6 +1057,18 @@ os::iface::import_named_expression* ScOrcusSheet::get_named_expression() - return &maNamedExpressions; - } - -+os::iface::import_formula* ScOrcusSheet::get_formula() -+{ -+ maFormula.reset(); -+ return &maFormula; -+} -+ -+os::iface::import_array_formula* ScOrcusSheet::get_array_formula() -+{ -+ maArrayFormula.reset(); -+ return &maArrayFormula; -+} -+ - void ScOrcusSheet::set_auto(os::row_t row, os::col_t col, const char* p, size_t n) - { - OUString aVal(p, n, RTL_TEXTENCODING_UTF8); -@@ -921,83 +1135,6 @@ void ScOrcusSheet::set_format(os::row_t row_start, os::col_t col_start, - mrDoc.getDoc().ApplyPatternAreaTab(col_start, row_start, col_end, row_end, mnTab, aPattern); - } - --void ScOrcusSheet::set_formula( -- os::row_t row, os::col_t col, os::formula_grammar_t grammar, const char* p, size_t n) --{ -- OUString aFormula(p, n, RTL_TEXTENCODING_UTF8); -- mrFactory.pushCellStoreToken( -- ScAddress(col, row, mnTab), aFormula, getCalcGrammarFromOrcus(grammar)); -- cellInserted(); --} -- --void ScOrcusSheet::set_formula_result(os::row_t row, os::col_t col, const char* p, size_t n) --{ -- OUString aResult( p, n, RTL_TEXTENCODING_UTF8); -- mrFactory.pushFormulaResult(ScAddress(col, row, mnTab), aResult); --} -- --void ScOrcusSheet::set_formula_result(os::row_t row, os::col_t col, double val) --{ -- mrFactory.pushFormulaResult(ScAddress(col, row, mnTab), val); --} -- --void ScOrcusSheet::set_shared_formula( -- os::row_t row, os::col_t col, os::formula_grammar_t grammar, size_t sindex, -- const char* p_formula, size_t n_formula) --{ -- ScAddress aPos(col, row, mnTab); -- OUString aFormula(p_formula, n_formula, RTL_TEXTENCODING_UTF8); -- formula::FormulaGrammar::Grammar eGram = getCalcGrammarFromOrcus(grammar); -- -- // Compile the formula expression into tokens. -- ScCompiler aComp(&mrDoc.getDoc(), aPos, eGram); -- ScTokenArray* pArray = aComp.CompileString(aFormula); -- if (!pArray) -- // Tokenization failed. -- return; -- -- maFormulaGroups.set(sindex, pArray); -- -- mrFactory.pushSharedFormulaToken(aPos, sindex); -- cellInserted(); --} -- --void ScOrcusSheet::set_shared_formula( -- os::row_t row, os::col_t col, os::formula_grammar_t grammar, size_t sindex, -- const char* p_formula, size_t n_formula, const char* /*p_range*/, size_t /*n_range*/) --{ -- set_shared_formula(row, col, grammar, sindex, p_formula, n_formula); --} -- --void ScOrcusSheet::set_shared_formula(os::row_t row, os::col_t col, size_t sindex) --{ -- ScAddress aPos(col, row, mnTab); -- -- const ScTokenArray* pArray = maFormulaGroups.get(sindex); -- if (!pArray) -- return; -- -- mrFactory.pushSharedFormulaToken(aPos, sindex); -- cellInserted(); --} -- --void ScOrcusSheet::set_array_formula( -- os::row_t row, os::col_t col, os::formula_grammar_t grammar, -- const char* p, size_t n, os::row_t array_rows, os::col_t array_cols) --{ -- OUString aFormula(p, n, RTL_TEXTENCODING_UTF8); -- formula::FormulaGrammar::Grammar eGrammar = getCalcGrammarFromOrcus(grammar); -- -- ScAddress aPos(col, row, mnTab); -- mrFactory.pushMatrixFormulaToken(aPos, aFormula, eGrammar, array_rows, array_cols); --} -- --void ScOrcusSheet::set_array_formula( -- os::row_t /*row*/, os::col_t /*col*/, os::formula_grammar_t /*grammar*/, -- const char* /*p*/, size_t /*n*/, const char* /*p_range*/, size_t /*n_range*/) --{ --} -- - orcus::spreadsheet::range_size_t ScOrcusSheet::get_sheet_size() const - { - orcus::spreadsheet::range_size_t ret; -@@ -1012,6 +1149,16 @@ const sc::SharedFormulaGroups& ScOrcusSheet::getSharedFormulaGroups() const - return maFormulaGroups; - } - -+sc::SharedFormulaGroups& ScOrcusSheet::getSharedFormulaGroups() -+{ -+ return maFormulaGroups; -+} -+ -+ScOrcusFactory& ScOrcusSheet::getFactory() -+{ -+ return mrFactory; -+} -+ - ScOrcusSharedStrings::ScOrcusSharedStrings(ScOrcusFactory& rFactory) : - mrFactory(rFactory) {} - -@@ -1087,7 +1234,7 @@ ScOrcusStyles::font::font(): - } - - ScOrcusStyles::fill::fill(): -- maPattern(""), -+ mePattern(orcus::spreadsheet::fill_pattern_t::none), - maFgColor(COL_WHITE), - maBgColor(COL_WHITE), - mbHasFillAttr(false) -@@ -1143,13 +1290,13 @@ void ScOrcusStyles::font::applyToItemSet(SfxItemSet& rSet) const - - void ScOrcusStyles::fill::applyToItemSet(SfxItemSet& rSet) const - { -- if (maPattern.equalsIgnoreAsciiCase("none")) -+ if (mePattern == orcus::spreadsheet::fill_pattern_t::none) - { - SAL_INFO("sc.orcus.style", "no fill style"); - return; - } - -- if (maPattern.equalsIgnoreAsciiCase("solid")) -+ if (mePattern == orcus::spreadsheet::fill_pattern_t::solid) - rSet.Put(SvxBrushItem(maFgColor, ATTR_BACKGROUND)); - } - -@@ -1575,10 +1722,9 @@ void ScOrcusStyles::set_fill_count(size_t /*n*/) - // needed at all? - } - --void ScOrcusStyles::set_fill_pattern_type(const char* s, size_t n) -+void ScOrcusStyles::set_fill_pattern_type(orcus::spreadsheet::fill_pattern_t fp) - { -- maCurrentFill.maPattern = OUString(s, n, RTL_TEXTENCODING_UTF8); -- maCurrentFill.mbHasFillAttr = true; -+ maCurrentFill.mePattern = fp; - } - - void ScOrcusStyles::set_fill_fg_color( -@@ -1962,12 +2108,12 @@ ScOrcusAutoFilter::~ScOrcusAutoFilter() - { - } - --void ScOrcusAutoFilter::set_range(const char* p_ref, size_t n_ref) -+void ScOrcusAutoFilter::set_range(const orcus::spreadsheet::range_t& range) - { -- OUString aRange(p_ref, n_ref, RTL_TEXTENCODING_UTF8); -- SAL_INFO("sc.orcus.autofilter", "set_range: " << aRange); -- -- maRange.Parse(aRange); -+ maRange.aStart.SetRow(range.first.row); -+ maRange.aStart.SetCol(range.first.column); -+ maRange.aEnd.SetRow(range.last.row); -+ maRange.aEnd.SetCol(range.last.column); - } - - void ScOrcusAutoFilter::set_column(orcus::spreadsheet::col_t col) -diff --git a/sc/source/filter/orcus/xmlcontext.cxx b/sc/source/filter/orcus/xmlcontext.cxx -index e47b862c2138..5494ddefc434 100644 ---- a/sc/source/filter/orcus/xmlcontext.cxx -+++ b/sc/source/filter/orcus/xmlcontext.cxx -@@ -24,6 +24,7 @@ - #include <orcus/orcus_xml.hpp> - #include <orcus/global.hpp> - #include <orcus/sax_parser_base.hpp> -+#include <orcus/stream.hpp> - - #include <com/sun/star/ucb/XCommandEnvironment.hpp> - #include <comphelper/processfactory.hxx> -@@ -289,7 +290,9 @@ void ScOrcusXMLContextImpl::importXML(const ScOrcusImportXMLParam& rParam) - } - } - -- filter.read_file(path); -+ std::string content = orcus::load_file_content(path); -+ filter.read_stream(content.data(), content.size()); -+ - aFactory.finalize(); - } - catch (const std::exception&) --- -2.17.1 - - Modified: PKGBUILD =================================================================== --- PKGBUILD 2019-02-07 14:37:32 UTC (rev 345604) +++ PKGBUILD 2019-02-07 15:00:30 UTC (rev 345605) @@ -10,12 +10,12 @@ pkgbase=libreoffice-fresh pkgname=('libreoffice-fresh-sdk' 'libreoffice-fresh') -_LOver=6.1.4.2 -pkgver=6.1.4 -pkgrel=5 +_LOver=6.2.0.3 +pkgver=6.2.0 +pkgrel=1 arch=('x86_64') license=('LGPL3') -url="https://www.libreoffice.org/" +url="http://www.libreoffice.org/" makedepends=('curl>=7.20.0' 'hunspell>=1.2.8' 'python>=3.7' 'libwpd>=0.9.2' 'libwps' 'neon>=0.28.6' 'pango' 'nspr' 'libjpeg' 'libxrandr' 'libgl' 'dbus-glib' 'libxslt' 'redland' 'hyphen' 'lpsolve' 'gcc-libs' 'sh' 'graphite' 'icu' @@ -22,15 +22,15 @@ 'lcms2' 'poppler>=0.24.0' 'libvisio' 'libetonyek' 'libodfgen' 'libcdr' 'libmspub' 'harfbuzz-icu' 'nss' 'hicolor-icon-theme' 'desktop-file-utils' 'shared-mime-info' 'gtk2' 'gst-plugins-base-libs' - 'sane' 'perl-archive-zip' 'zip' 'unzip' 'unixodbc' 'ant' + 'sane' 'perl-archive-zip' 'zip' 'unzip' 'unixodbc' 'ant' 'gperf' 'gtk3' 'qt5-base' 'plasma-framework' 'cppunit' 'beanshell' 'clucene' - 'junit' 'libmythes' 'libwpg' 'java-environment=8' 'postgresql-libs' 'libgl' - 'bluez-libs' 'gdb' 'doxygen' 'libatomic_ops' 'mdds' + 'junit' 'libmythes' 'libwpg' 'java-environment=8' 'postgresql-libs' 'mariadb-libs' 'libgl' + 'bluez-libs' 'gdb' 'doxygen' 'libatomic_ops' 'mdds' 'apr' 'serf' 'ttf-liberation' 'ttf-dejavu' 'ttf-carlito' 'libxinerama' 'libpagemaker' 'glm' 'libabw' 'libmwaw' 'libe-book' 'coin-or-mp' 'liblangtag' 'liborcus' 'libexttextcat' 'libcmis' 'gobject-introspection' 'libfbclient' 'libtommath' 'libzmf' 'gpgme' 'xmlsec' 'rxvt-unicode' - 'libepubgen' 'libfreehand' 'libqxp' 'libstaroffice' 'boost' 'libnumbertext' + 'libepubgen' 'libfreehand' 'libqxp' 'libstaroffice' 'boost' 'libnumbertext' ) _mirror="https://download.documentfoundation.org/libreoffice/src/${pkgver}" @@ -46,18 +46,14 @@ ${_additional_source_url}/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip ${_additional_source_url}/d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip ${_additional_source_url}/ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip - ${_additional_source_url}/pdfium-3426.tar.bz2 + ${_additional_source_url}/pdfium-3550.tar.bz2 ${_additional_source_url}/lxml-4.1.1.tgz ${_additional_source_url2}/8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar # for test suite - ${_additional_source_url2}/odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies+ODFTOOLKIT-460+ODFTOOLKIT-475.jar # for test suite + ${_additional_source_url2}/odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies-971c54fd38a968f5860014b44301872706f9e540.jar # for test suite + ${_additional_source_url2}/49a64f3bcf20a7909ba2751349231d6652ded9cd2840e961b5164d09de3ffa63-opens___.ttf ${_additional_source_url2}/185d60944ea767075d27247c3162b3bc-unowinreg.dll make-pyuno-work-with-system-wide-module-install.diff - libreoffice-poppler-0.71.patch - libreoffice-poppler-0.72.patch - libreoffice-poppler-0.73.patch libreoffice-boost-1.69.patch - 0001-Update-mdds-to-1.4.1.patch - 0001-Update-orcus-to-0.14.0.patch libreoffice-fresh.sh libreoffice-fresh.csh) noextract=(35c94d2df8893241173de1d16b6034c0-swingExSrc.zip 798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip @@ -67,18 +63,19 @@ 17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip - pdfium-3426.tar.bz2 + pdfium-3550.tar.bz2 lxml-4.1.1.tgz 8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar # for test suite - odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies+ODFTOOLKIT-460+ODFTOOLKIT-475.jar # for test suite + odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies-971c54fd38a968f5860014b44301872706f9e540.jar # for test suite + 49a64f3bcf20a7909ba2751349231d6652ded9cd2840e961b5164d09de3ffa63-opens___.ttf 185d60944ea767075d27247c3162b3bc-unowinreg.dll ) validpgpkeys=('C2839ECAD9408FBE9531C3E9F434A1EFAFEEAEA3') # LibreOffice Build Team (CODE SIGNING KEY) <[email protected]> -sha256sums=('648fe9177e0813625a99e775dac1354a416eef2f3ef44eab4e770d08293b37fe' +sha256sums=('87d0581afbc582fdccf5e95a749a38572c62979a4b1c7f144b4854b93d6b1ade' 'SKIP' - 'f5b21510942e63829744cf0dfdcf556ada854fced168e54a25105a3d3b484445' + 'a6e7c7cf927182572405af1be100363abc9ca9fbbdd9999b4418f97e54d481cc' 'SKIP' - '010505af211b9e4aa841c27443957297c58a7bb434ee8cce0d7ef2fa91b6fed1' + '9165c136e366a75a3a9403c2d1f0b1d48d708e72877f9180cbae25c0e33d7e03' 'SKIP' '64585ac36a81291a58269ec5347e7e3e2e8596dbacb9221015c208191333c6e1' '1fb458d6aab06932693cc8a9b6e4e70944ee1ff052fa63606e3131df34e21753' @@ -88,18 +85,14 @@ 'd30b13f4ba2e3b6a2d4f020c0dee0a9fb9fc6fbcc2d561f36b78da4bf3802370' '1b5b24f7bc543c0362b667692f78db8bab4ed6dafc6172f104d0bd3757d8a133' '233f66e8d25c5dd971716d4200203a612a407649686ef3b52075d04b4c9df0dd' - '80331b48166501a192d65476932f17044eeb5f10faa6ea50f4f175169475c957' + '572460f7f9e2f86d022a9c6a82f1e2ded6c3c29ba352d4b9fac60b87e2159679' '940caef1ec7c78e0c34b0f6b94fe42d0f2022915ffc78643d28538a5cfd0f40e' 'f2443f27561af52324eee03a1892d9f569adc8db9e7bca55614898bc2a13a770' - '702413413a5d8076c17fe79c0808dfba145a7260020f6c8627ea529a0cf83769' + '984f2a479df79e27e7b01a5815ac53ae64e07746b882262d8a64566494515504' + '49a64f3bcf20a7909ba2751349231d6652ded9cd2840e961b5164d09de3ffa63' 'eafde646a7dbe46d20c291685b0beac2382174d78d66ee990e229a1bf6e6cec6' 'c463654a73ecfbc242ff109726fb4faecdbfb3d91affafe919b24bea65afb563' - 'aeeb7d0b6e9a7c0eead9eb1f0d491ba26177a11417ed2b82b8286ea0bd081776' - '9a284e9be6bea6b207926cd340dad1ab5bfee730134126d7ca78109ca96e0217' - '521fdc2bd1032421c4dec2a241f41b97b55b5122986555e2a1d113b451d5ac05' '5099c5e7818a327b661c45c0bd218835c1e70b14861b5112525da1d48beebf8c' - '8e8460302a7febc9a29b32b98fb77c85910ccadc65c73e0e9997dc5aabaaeb2a' - '60560283a5e22acad7f341b16dff4a654559b36db5d49b1e59f3bb9ae9b2336c' '28c97effbe55e43a1370ab141c676cec9daba9e3dc408bec78136dfefc892a8b' '7af3113c804e4d58c7de3b5ed10f515fc46e349a580ba56eebfc6e891acbef89') @@ -122,20 +115,10 @@ # fix not upstreamable pyuno paths - FS#54250 patch -Np1 -i ${srcdir}/make-pyuno-work-with-system-wide-module-install.diff - # fix build with poppler 0.71 - patch -p1 -i ../libreoffice-poppler-0.71.patch - # fix build with poppler 0.72 - patch -p1 -i ../libreoffice-poppler-0.72.patch - # fix build with poppler 0.73 - patch -p1 -i ../libreoffice-poppler-0.73.patch # fix build with boost 1.69 (freebsd) patch -p0 -i ../libreoffice-boost-1.69.patch - # fix build with new mdds 1.4.x, liborcus 0.14.x - patch -Np1 -i ../0001-Update-mdds-to-1.4.1.patch - patch -Np1 -i ../0001-Update-orcus-to-0.14.0.patch - #use the CFLAGS but remove the LibO overridden ones for i in $CFLAGS; do case "$i" in @@ -228,7 +211,6 @@ --with-system-mythes \ --with-system-headers \ --without-system-hsqldb \ - --with-alloc=system \ --with-system-clucene \ --with-gdrive-client-id=${_google_default_client_id} \ --with-gdrive-client-secret=${_google_default_client_secret} \ @@ -297,6 +279,7 @@ 'gst-plugins-base-libs: for multimedia content, e.g. in Impress' 'libpaper: takes care of papersize' 'postgresql-libs: for postgresql-connector' + 'mariadb-libs: for mysql-connector' 'coin-or-mp: required by the Calc solver' 'gtk2: for GTK2 integration' 'gtk3: for GTK3 integration' Deleted: libreoffice-poppler-0.71.patch =================================================================== --- libreoffice-poppler-0.71.patch 2019-02-07 14:37:32 UTC (rev 345604) +++ libreoffice-poppler-0.71.patch 2019-02-07 15:00:30 UTC (rev 345605) @@ -1,271 +0,0 @@ -From c85bd2c443b9a509b028a90ee9e766929e63089f Mon Sep 17 00:00:00 2001 -From: Mike Kaganski <[email protected]> -Date: Tue, 20 Nov 2018 08:45:38 +0100 -Subject: poppler dropped GBool since 0.71 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -See https://lists.freedesktop.org/archives/libreoffice/2018-November/081410.html - -Change-Id: I258e08894486a925bed50a3a4232b6e805af6784 -Reviewed-on: https://gerrit.libreoffice.org/63625 -Tested-by: Jenkins -Reviewed-by: Stephan Bergmann <[email protected]> -(cherry picked from commit 5e8bdd9203dd642111c62a6668ee665a20d4ba19) -Reviewed-on: https://gerrit.libreoffice.org/66374 -Reviewed-by: Caolán McNamara <[email protected]> -Tested-by: Caolán McNamara <[email protected]> ---- - .../pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx | 22 +++++++------- - .../pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx | 35 +++++++++++++--------- - 2 files changed, 32 insertions(+), 25 deletions(-) - -diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx -index 06e4fae..6e4bf8a 100644 ---- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx -+++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx -@@ -514,7 +514,7 @@ void PDFOutDev::printPath( GfxPath* pPath ) - PDFOutDev::PDFOutDev( PDFDoc* pDoc ) : - m_pDoc( pDoc ), - m_aFontMap(), -- m_pUtf8Map( new UnicodeMap("UTF-8", gTrue, &mapUTF8) ), -+ m_pUtf8Map( new UnicodeMap("UTF-8", true, &mapUTF8) ), - m_bSkipImages(false) - { - } -@@ -939,11 +939,11 @@ void PDFOutDev::endTextObject(GfxState*) - } - - void PDFOutDev::drawImageMask(GfxState* pState, Object*, Stream* str, -- int width, int height, GBool invert, -+ int width, int height, poppler_bool invert, - #if POPPLER_CHECK_VERSION(0, 12, 0) -- GBool /*interpolate*/, -+ poppler_bool /*interpolate*/, - #endif -- GBool /*inlineImg*/ ) -+ poppler_bool /*inlineImg*/ ) - { - if (m_bSkipImages) - return; -@@ -972,9 +972,9 @@ void PDFOutDev::drawImageMask(GfxState* pState, Object*, Stream* str, - void PDFOutDev::drawImage(GfxState*, Object*, Stream* str, - int width, int height, GfxImageColorMap* colorMap, - #if POPPLER_CHECK_VERSION(0, 12, 0) -- GBool /*interpolate*/, -+ poppler_bool /*interpolate*/, - #endif -- int* maskColors, GBool /*inlineImg*/ ) -+ int* maskColors, poppler_bool /*inlineImg*/ ) - { - if (m_bSkipImages) - return; -@@ -1023,13 +1023,13 @@ void PDFOutDev::drawMaskedImage(GfxState*, Object*, Stream* str, - int width, int height, - GfxImageColorMap* colorMap, - #if POPPLER_CHECK_VERSION(0, 12, 0) -- GBool /*interpolate*/, -+ poppler_bool /*interpolate*/, - #endif - Stream* maskStr, - int maskWidth, int maskHeight, -- GBool maskInvert -+ poppler_bool maskInvert - #if POPPLER_CHECK_VERSION(0, 12, 0) -- , GBool /*maskInterpolate*/ -+ , poppler_bool /*maskInterpolate*/ - #endif - ) - { -@@ -1045,13 +1045,13 @@ void PDFOutDev::drawSoftMaskedImage(GfxState*, Object*, Stream* str, - int width, int height, - GfxImageColorMap* colorMap, - #if POPPLER_CHECK_VERSION(0, 12, 0) -- GBool /*interpolate*/, -+ poppler_bool /*interpolate*/, - #endif - Stream* maskStr, - int maskWidth, int maskHeight, - GfxImageColorMap* maskColorMap - #if POPPLER_CHECK_VERSION(0, 12, 0) -- , GBool /*maskInterpolate*/ -+ , poppler_bool /*maskInterpolate*/ - #endif - ) - { -diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx -index 7e65f08..88b8837 100644 ---- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx -+++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx -@@ -130,6 +130,13 @@ namespace pdfi - { return const_cast<GooString &>(familyName); } - }; - -+ // Versions before 0.15 defined GBool as int; 0.15 redefined it as bool; 0.71 dropped GBool -+#if POPPLER_VERSION_MAJOR == 0 && POPPLER_VERSION_MINOR < 71 -+ typedef GBool poppler_bool; -+#else -+ typedef bool poppler_bool; -+#endif -+ - class PDFOutDev : public OutputDev - { - // not owned by this class -@@ -151,17 +158,17 @@ namespace pdfi - - // Does this device use upside-down coordinates? - // (Upside-down means (0,0) is the top left corner of the page.) -- virtual GBool upsideDown() override { return gTrue; } -+ virtual poppler_bool upsideDown() override { return true; } - - // Does this device use drawChar() or drawString()? -- virtual GBool useDrawChar() override { return gTrue; } -+ virtual poppler_bool useDrawChar() override { return true; } - - // Does this device use beginType3Char/endType3Char? Otherwise, - // text in Type 3 fonts will be drawn with drawChar/drawString. -- virtual GBool interpretType3Chars() override { return gFalse; } -+ virtual poppler_bool interpretType3Chars() override { return false; } - - // Does this device need non-text content? -- virtual GBool needNonText() override { return gTrue; } -+ virtual poppler_bool needNonText() override { return true; } - - //----- initialization and control - -@@ -233,40 +240,40 @@ namespace pdfi - - //----- image drawing - virtual void drawImageMask(GfxState *state, Object *ref, Stream *str, -- int width, int height, GBool invert, -+ int width, int height, poppler_bool invert, - #if POPPLER_CHECK_VERSION(0, 12, 0) -- GBool interpolate, -+ poppler_bool interpolate, - #endif -- GBool inlineImg) override; -+ poppler_bool inlineImg) override; - virtual void drawImage(GfxState *state, Object *ref, Stream *str, - int width, int height, GfxImageColorMap *colorMap, - #if POPPLER_CHECK_VERSION(0, 12, 0) -- GBool interpolate, -+ poppler_bool interpolate, - #endif -- int *maskColors, GBool inlineImg) override; -+ int *maskColors, poppler_bool inlineImg) override; - virtual void drawMaskedImage(GfxState *state, Object *ref, Stream *str, - int width, int height, - GfxImageColorMap *colorMap, - #if POPPLER_CHECK_VERSION(0, 12, 0) -- GBool interpolate, -+ poppler_bool interpolate, - #endif - Stream *maskStr, int maskWidth, int maskHeight, -- GBool maskInvert -+ poppler_bool maskInvert - #if POPPLER_CHECK_VERSION(0, 12, 0) -- , GBool maskInterpolate -+ , poppler_bool maskInterpolate - #endif - ) override; - virtual void drawSoftMaskedImage(GfxState *state, Object *ref, Stream *str, - int width, int height, - GfxImageColorMap *colorMap, - #if POPPLER_CHECK_VERSION(0, 12, 0) -- GBool interpolate, -+ poppler_bool interpolate, - #endif - Stream *maskStr, - int maskWidth, int maskHeight, - GfxImageColorMap *maskColorMap - #if POPPLER_CHECK_VERSION(0, 12, 0) -- , GBool maskInterpolate -+ , poppler_bool maskInterpolate - #endif - ) override; - --- -cgit v1.1 - -From 704ff8be10ecfb39be064bd08b2f9c11312e3428 Mon Sep 17 00:00:00 2001 -From: Aleksei Nikiforov <[email protected]> -Date: Thu, 22 Nov 2018 17:54:00 +0300 -Subject: Fix build with poppler 0.71 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Change-Id: I470ece9dc4766e10e1ccb5e99b25a8d8cc4cbf38 -Reviewed-on: https://gerrit.libreoffice.org/63860 -Tested-by: Jenkins -Reviewed-by: Stephan Bergmann <[email protected]> -(cherry picked from commit 8ff41a26caf51544699863c89598d37d93dc1b21) -Reviewed-on: https://gerrit.libreoffice.org/66375 -Reviewed-by: Aleksei Nikiforov <[email protected]> -Reviewed-by: Michael Stahl <[email protected]> -Reviewed-by: Caolán McNamara <[email protected]> -Tested-by: Caolán McNamara <[email protected]> ---- - sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx | 4 ++++ - sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx | 4 ++++ - sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx | 4 ++-- - 3 files changed, 10 insertions(+), 2 deletions(-) - -diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx -index 6e4bf8a..df0288d 100644 ---- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx -+++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx -@@ -578,7 +578,11 @@ void PDFOutDev::restoreState(GfxState*) - printf( "restoreState\n" ); - } - -+#if POPPLER_CHECK_VERSION(0, 71, 0) -+void PDFOutDev::setDefaultCTM(const double *pMat) -+#else - void PDFOutDev::setDefaultCTM(double *pMat) -+#endif - { - assert(pMat); - -diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx -index 88b8837..37a03bc 100644 ---- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx -+++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx -@@ -173,7 +173,11 @@ namespace pdfi - //----- initialization and control - - // Set default transform matrix. -+#if POPPLER_CHECK_VERSION(0, 71, 0) -+ virtual void setDefaultCTM(const double *ctm) override; -+#else - virtual void setDefaultCTM(double *ctm) override; -+#endif - - // Start a page. - virtual void startPage(int pageNum, GfxState *state -diff --git a/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx b/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx -index b536a71..f2049a6 100644 ---- a/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx -+++ b/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx -@@ -69,7 +69,7 @@ int main(int argc, char **argv) - - // read config file - globalParams = new GlobalParams(); -- globalParams->setErrQuiet(gTrue); -+ globalParams->setErrQuiet(true); - #if defined(_MSC_VER) - globalParams->setupBaseFonts(nullptr); - #endif -@@ -145,7 +145,7 @@ int main(int argc, char **argv) - i, - PDFI_OUTDEV_RESOLUTION, - PDFI_OUTDEV_RESOLUTION, -- 0, gTrue, gTrue, gTrue); -+ 0, true, true, true); - rDoc.processLinks(&aOutDev, i); - } - --- -cgit v1.1 - Deleted: libreoffice-poppler-0.72.patch =================================================================== --- libreoffice-poppler-0.72.patch 2019-02-07 14:37:32 UTC (rev 345604) +++ libreoffice-poppler-0.72.patch 2019-02-07 15:00:30 UTC (rev 345605) @@ -1,51 +0,0 @@ -From a5a188d5bbb99f6e305dad6f81b9e3760aa32676 Mon Sep 17 00:00:00 2001 -From: Andreas Sturmlechner <[email protected]> -Date: Tue, 8 Jan 2019 11:24:40 +0100 -Subject: Fix build with poppler-0.72 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Change-Id: I0664d1b39e97b7555c0a3cba442db52b84f37134 -Reviewed-on: https://gerrit.libreoffice.org/65960 -Tested-by: Jenkins -Reviewed-by: Michael Stahl <[email protected]> -(cherry picked from commit 65a6c9ae4791188ffcecf489073cf38873ce5e17) -Reviewed-on: https://gerrit.libreoffice.org/66376 -Reviewed-by: Caolán McNamara <[email protected]> -Tested-by: Caolán McNamara <[email protected]> ---- - sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx -index df0288d..9c65fc2 100644 ---- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx -+++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx -@@ -555,7 +555,11 @@ void PDFOutDev::processLink(Link* link, Catalog*) - LinkAction* pAction = link->getAction(); - if (pAction && pAction->getKind() == actionURI) - { -+#if POPPLER_CHECK_VERSION(0, 72, 0) -+ const char* pURI = static_cast<LinkURI*>(pAction)->getURI()->c_str(); -+#else - const char* pURI = static_cast<LinkURI*>(pAction)->getURI()->getCString(); -+#endif - - std::vector<char> aEsc( lcl_escapeLineFeeds(pURI) ); - -@@ -757,7 +761,11 @@ void PDFOutDev::updateFont(GfxState *state) - - aFont = it->second; - -+#if POPPLER_CHECK_VERSION(0, 72, 0) -+ std::vector<char> aEsc( lcl_escapeLineFeeds(aFont.familyName.c_str()) ); -+#else - std::vector<char> aEsc( lcl_escapeLineFeeds(aFont.familyName.getCString()) ); -+#endif - printf( " %d %d %d %d %f %d %s", - aFont.isEmbedded, - aFont.isBold, --- -cgit v1.1 - Deleted: libreoffice-poppler-0.73.patch =================================================================== --- libreoffice-poppler-0.73.patch 2019-02-07 14:37:32 UTC (rev 345604) +++ libreoffice-poppler-0.73.patch 2019-02-07 15:00:30 UTC (rev 345605) @@ -1,302 +0,0 @@ -From b5698ac28a8a79105edf28ffc1db19bbcbecda3a Mon Sep 17 00:00:00 2001 -From: Michael Stahl <[email protected]> -Date: Mon, 14 Jan 2019 15:08:42 +0100 -Subject: sdext: fix build with poppler 0.73 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -... which has removed Guchar, Gushort, Guint, Gulong... - -Change-Id: Ia54ad378031f167f6779f6ffe574b85c1e72f26d -Reviewed-on: https://gerrit.libreoffice.org/66305 -Tested-by: Jenkins -Reviewed-by: Michael Stahl <[email protected]> -(cherry picked from commit 50d371ae08c66648d9f32f633b2245e1746e2bb6) -Reviewed-on: https://gerrit.libreoffice.org/66363 -Reviewed-by: Caolán McNamara <[email protected]> -Tested-by: Caolán McNamara <[email protected]> ---- - sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx | 4 ++-- - sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx | 6 +++++- - sdext/source/pdfimport/xpdfwrapper/pnghelper.cxx | 6 +++--- - 3 files changed, 10 insertions(+), 6 deletions(-) - -diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx -index 9c65fc2..9432755 100644 ---- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx -+++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx -@@ -298,7 +298,7 @@ void writePpm_( OutputBuffer& o_rOutputBuf, - o_rOutputBuf.resize(header_size); - - // initialize stream -- Guchar *p; -+ unsigned char *p; - GfxRGB rgb; - std::unique_ptr<ImageStream> imgStr( - new ImageStream(str, -@@ -401,7 +401,7 @@ void writeImage_( OutputBuffer& o_rOutputBuf, - oneColor = { byteToCol( 0xff ), byteToCol( 0xff ), byteToCol( 0xff ) }; - if( colorMap->getColorSpace()->getMode() == csIndexed || colorMap->getColorSpace()->getMode() == csDeviceGray ) - { -- Guchar nIndex = 0; -+ unsigned char nIndex = 0; - colorMap->getRGB( &nIndex, &zeroColor ); - nIndex = 1; - colorMap->getRGB( &nIndex, &oneColor ); -diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx -index 37a03bc..533eb93 100644 ---- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx -+++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx -@@ -290,9 +290,13 @@ extern FILE* g_binary_out; - - // note: if you ever change Output_t, please keep in mind that the current code - // relies on it being of 8 bit size --typedef Guchar Output_t; -+typedef unsigned char Output_t; - typedef std::vector< Output_t > OutputBuffer; - -+#if !POPPLER_CHECK_VERSION(0, 73, 0) -+static_assert(std::is_same<Guchar, unsigned char>::value, "unexpected typedef"); -+#endif -+ - #endif // INCLUDED_SDEXT_SOURCE_PDFIMPORT_XPDFWRAPPER_PDFIOUTDEV_GPL_HXX - - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -diff --git a/sdext/source/pdfimport/xpdfwrapper/pnghelper.cxx b/sdext/source/pdfimport/xpdfwrapper/pnghelper.cxx -index 44f30c0..66c1751 100644 ---- a/sdext/source/pdfimport/xpdfwrapper/pnghelper.cxx -+++ b/sdext/source/pdfimport/xpdfwrapper/pnghelper.cxx -@@ -242,7 +242,7 @@ void PngHelper::createPng( OutputBuffer& o_rOutputBuf, - appendIHDR( o_rOutputBuf, width, height, 8, 6 ); // RGBA image - - // initialize stream -- Guchar *p, *pm; -+ unsigned char *p, *pm; - GfxRGB rgb; - GfxGray alpha; - ImageStream* imgStr = -@@ -328,7 +328,7 @@ void PngHelper::createPng( OutputBuffer& o_rOutputBuf, - appendIHDR( o_rOutputBuf, width, height, 8, 6 ); // RGBA image - - // initialize stream -- Guchar *p; -+ unsigned char *p; - GfxRGB rgb; - ImageStream* imgStr = - new ImageStream(str, -@@ -374,7 +374,7 @@ void PngHelper::createPng( OutputBuffer& o_rOutputBuf, - { - for( int x = 0; x < maskWidth; ++x ) - { -- Guchar aPixel = 0; -+ unsigned char aPixel = 0; - imgStrMask->getPixel( &aPixel ); - int nIndex = (y*height/maskHeight) * (width*4+1) + // mapped line - (x*width/maskWidth)*4 + 1 + 3 // mapped column --- -cgit v1.1 - -From 033ff5b3eb90deaf6fd5eb8a74100233aa5fe772 Mon Sep 17 00:00:00 2001 -From: Michael Stahl <[email protected]> -Date: Mon, 14 Jan 2019 15:12:24 +0100 -Subject: poppler: upgrade to release 0.73.0 - -Change-Id: If20998f8565b5534a96b3f29ccec572273edca1d -Reviewed-on: https://gerrit.libreoffice.org/66306 -Tested-by: Jenkins -Reviewed-by: Michael Stahl <[email protected]> -(cherry picked from commit 0609ea4fc27f34367716bf41c0cdaa7785aed9da) -Reviewed-on: https://gerrit.libreoffice.org/66369 -Reviewed-by: Christian Lohmaier <[email protected]> ---- - download.lst | 4 +-- - external/poppler/StaticLibrary_poppler.mk | 6 +---- - external/poppler/UnpackedTarball_poppler.mk | 11 ++++++++ - external/poppler/poppler-c++11.patch.1 | 31 ++++++++++++++++++++++ - external/poppler/poppler-config.patch.1 | 12 ++++----- - .../pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx | 1 + - 6 files changed, 52 insertions(+), 13 deletions(-) - create mode 100644 external/poppler/poppler-c++11.patch.1 - -diff --git a/download.lst b/download.lst -index 636ae69..3b526c2 100644 ---- a/download.lst -+++ b/download.lst -@@ -206,8 +206,8 @@ export PIXMAN_SHA256SUM := 21b6b249b51c6800dc9553b65106e1e37d0e25df942c90531d4c3 - export PIXMAN_TARBALL := e80ebae4da01e77f68744319f01d52a3-pixman-0.34.0.tar.gz - export LIBPNG_SHA256SUM := 2f1e960d92ce3b3abd03d06dfec9637dfbd22febf107a536b44f7a47c60659f6 - export LIBPNG_TARBALL := libpng-1.6.34.tar.xz --export POPPLER_SHA256SUM := 2c096431adfb74bc2f53be466889b7646e1b599f28fa036094f3f7235cc9eae7 --export POPPLER_TARBALL := poppler-0.66.0.tar.xz -+export POPPLER_SHA256SUM := e44b5543903128884ba4538c2a97d3bcc8889e97ffacc4636112101f0238db03 -+export POPPLER_TARBALL := poppler-0.73.0.tar.xz - export POSTGRESQL_SHA256SUM := db61d498105a7d5fe46185e67ac830c878cdd7dc1f82a87f06b842217924c461 - export POSTGRESQL_TARBALL := c0b4799ea9850eae3ead14f0a60e9418-postgresql-9.2.1.tar.bz2 - export PYTHON_SHA256SUM := 063d2c3b0402d6191b90731e0f735c64830e7522348aeb7ed382a83165d45009 -diff --git a/external/poppler/StaticLibrary_poppler.mk b/external/poppler/StaticLibrary_poppler.mk -index f145b7a..aa5ed69 100644 ---- a/external/poppler/StaticLibrary_poppler.mk -+++ b/external/poppler/StaticLibrary_poppler.mk -@@ -53,11 +53,8 @@ $(eval $(call gb_StaticLibrary_set_generated_cxx_suffix,poppler,cc)) - - $(eval $(call gb_StaticLibrary_add_generated_exception_objects,poppler,\ - UnpackedTarball/poppler/goo/gfile \ -- UnpackedTarball/poppler/goo/gmempp \ -- UnpackedTarball/poppler/goo/GooList \ - UnpackedTarball/poppler/goo/GooTimer \ - UnpackedTarball/poppler/goo/GooString \ -- UnpackedTarball/poppler/goo/gmem \ - UnpackedTarball/poppler/goo/FixedPoint \ - UnpackedTarball/poppler/goo/NetPBMWriter \ - UnpackedTarball/poppler/goo/PNGWriter \ -@@ -80,6 +77,7 @@ $(eval $(call gb_StaticLibrary_add_generated_exception_objects,poppler,\ - UnpackedTarball/poppler/poppler/BuiltinFontTables \ - UnpackedTarball/poppler/poppler/CachedFile \ - UnpackedTarball/poppler/poppler/Catalog \ -+ UnpackedTarball/poppler/poppler/CertificateInfo \ - UnpackedTarball/poppler/poppler/CharCodeToUnicode \ - UnpackedTarball/poppler/poppler/CMap \ - UnpackedTarball/poppler/poppler/DateInfo \ -@@ -114,7 +112,6 @@ $(eval $(call gb_StaticLibrary_add_generated_exception_objects,poppler,\ - UnpackedTarball/poppler/poppler/PDFDoc \ - UnpackedTarball/poppler/poppler/PDFDocEncoding \ - UnpackedTarball/poppler/poppler/PDFDocFactory \ -- UnpackedTarball/poppler/poppler/PopplerCache \ - UnpackedTarball/poppler/poppler/ProfileData \ - UnpackedTarball/poppler/poppler/PreScanOutputDev \ - UnpackedTarball/poppler/poppler/PSTokenizer \ -@@ -135,7 +132,6 @@ $(eval $(call gb_StaticLibrary_add_generated_exception_objects,poppler,\ - UnpackedTarball/poppler/poppler/StdinPDFDocBuilder \ - UnpackedTarball/poppler/poppler/Sound \ - UnpackedTarball/poppler/poppler/ViewerPreferences \ -- UnpackedTarball/poppler/poppler/XpdfPluginAPI \ - UnpackedTarball/poppler/poppler/Movie \ - UnpackedTarball/poppler/poppler/Rendition \ - UnpackedTarball/poppler/poppler/DCTStream \ -diff --git a/external/poppler/UnpackedTarball_poppler.mk b/external/poppler/UnpackedTarball_poppler.mk -index 68fd06d..5b91e16 100644 ---- a/external/poppler/UnpackedTarball_poppler.mk -+++ b/external/poppler/UnpackedTarball_poppler.mk -@@ -13,6 +13,17 @@ $(eval $(call gb_UnpackedTarball_set_tarball,poppler,$(POPPLER_TARBALL),,poppler - - $(eval $(call gb_UnpackedTarball_add_patches,poppler,\ - external/poppler/poppler-config.patch.1 \ -+ external/poppler/poppler-c++11.patch.1 \ - )) - -+# std::make_unique is only available in C++14 -+# use "env -i" to avoid Cygwin "environment is too large for exec" -+# Mac OS X sed says "sed: RE error: illegal byte sequence"; Apple clang should -+# be happy with std::make_unique so just skip it -+ifneq ($(OS_FOR_BUILD),MACOSX) -+$(eval $(call gb_UnpackedTarball_set_post_action,poppler,\ -+ env -i PATH="$(PATH)" $(FIND) . -name '*.cc' -exec sed -i -e 's/std::make_unique/o3tl::make_unique/' {} \\; \ -+)) -+endif -+ - # vim: set noet sw=4 ts=4: -diff --git a/external/poppler/poppler-c++11.patch.1 b/external/poppler/poppler-c++11.patch.1 -new file mode 100644 -index 0000000..5a4d1a2 ---- /dev/null -+++ b/external/poppler/poppler-c++11.patch.1 -@@ -0,0 +1,31 @@ -+remove usage of newfangled C++ that baseline toolchains don't support -+ -+--- poppler/goo/gfile.cc.orig 2019-01-16 11:02:21.112911552 +0100 -++++ poppler/goo/gfile.cc 2019-01-16 11:01:33.125975178 +0100 -+@@ -67,7 +67,7 @@ -+ -+ #ifndef _WIN32 -+ -+-using namespace std::string_literals; -++//using namespace std::string_literals; -+ -+ namespace { -+ -+@@ -366,7 +366,7 @@ -+ } -+ #else -+ // First try to atomically open the file with CLOEXEC -+- const std::string modeStr = mode + "e"s; -++ const std::string modeStr = mode + std::string("e"); -+ FILE *file = fopen(path, modeStr.c_str()); -+ if (file != nullptr) -+ return file; -+--- poppler/goo/gmem.h.orig 2019-01-16 11:25:28.161920038 +0100 -++++ poppler/goo/gmem.h 2019-01-16 11:25:53.756882295 +0100 -+@@ -177,4 +177,6 @@ -+ return std::strncpy(r, s, n); -+ } -+ -++#include <o3tl/make_unique.hxx> -++ -+ #endif // GMEM_H -diff --git a/external/poppler/poppler-config.patch.1 b/external/poppler/poppler-config.patch.1 -index 5328e68..e312573 100644 ---- a/external/poppler/poppler-config.patch.1 -+++ b/external/poppler/poppler-config.patch.1 -@@ -195,7 +195,7 @@ index 0fbd336a..451213f8 100644 - +#define PACKAGE_NAME "poppler" - + - +/* Define to the full name and version of this package. */ --+#define PACKAGE_STRING "poppler 0.66.0" -++#define PACKAGE_STRING "poppler 0.73.0" - + - +/* Define to the one symbol short name of this package. */ - +#define PACKAGE_TARNAME "poppler" -@@ -204,7 +204,7 @@ index 0fbd336a..451213f8 100644 - +#define PACKAGE_URL "" - + - +/* Define to the version of this package. */ --+#define PACKAGE_VERSION "0.66.0" -++#define PACKAGE_VERSION "0.73.0" - + - +/* Poppler data dir */ - +#define POPPLER_DATADIR "/usr/local/share/poppler" -@@ -228,7 +228,7 @@ index 0fbd336a..451213f8 100644 - +/* #undef USE_FLOAT */ - + - +/* Version number of package */ --+#define VERSION "0.66.0" -++#define VERSION "0.73.0" - + - +#if defined(__APPLE__) - +#elif defined (_WIN32) -@@ -304,7 +304,7 @@ index 0fbd336a..451213f8 100644 - + - +/* Defines the poppler version. */ - +#ifndef POPPLER_VERSION --+#define POPPLER_VERSION "0.66.0" -++#define POPPLER_VERSION "0.73.0" - +#endif - + - +/* Enable multithreading support. */ -@@ -466,9 +466,9 @@ index 0fbd336a..451213f8 100644 - + - +#include "poppler-global.h" - + --+#define POPPLER_VERSION "0.66.0" -++#define POPPLER_VERSION "0.73.0" - +#define POPPLER_VERSION_MAJOR 0 --+#define POPPLER_VERSION_MINOR 66 -++#define POPPLER_VERSION_MINOR 73 - +#define POPPLER_VERSION_MICRO 0 - + - +namespace poppler -diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx -index 533eb93..ced1a65 100644 ---- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx -+++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx -@@ -30,6 +30,7 @@ - #elif defined _MSC_VER - #pragma warning(push) - #pragma warning(disable : 4100) // unreferenced formal parameter -+#pragma warning(disable : 4310) // cast truncates constant value - #endif - - #include <GfxState.h> --- -cgit v1.1 -
