From e5de4613e860e4d7a6efd5482e8956aba722795b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= Date: Thu, 7 Feb 2019 17:03:22 +0000 Subject: [PATCH] latest version --- .gitignore | 12 +- 0001-Fix-build-with-poppler-0.73.0.patch | 360 -------- ...602-fix-extended-help-for-non-dispat.patch | 68 -- 0001-Update-mdds-to-1.4.1.patch | 693 --------------- 0001-Update-orcus-to-0.14.0.patch | 801 ------------------ ...grade-external-boost-to-Boost-1.69.0.patch | 74 -- ...osx-case-don-t-search-near-infinite-.patch | 73 -- libreoffice.spec | 16 +- sources | 12 +- 9 files changed, 19 insertions(+), 2090 deletions(-) delete mode 100644 0001-Fix-build-with-poppler-0.73.0.patch delete mode 100644 0001-Resolves-tdf-105602-fix-extended-help-for-non-dispat.patch delete mode 100644 0001-Update-mdds-to-1.4.1.patch delete mode 100644 0001-Update-orcus-to-0.14.0.patch delete mode 100644 0001-Upgrade-external-boost-to-Boost-1.69.0.patch delete mode 100644 0001-tdf-121855-like-osx-case-don-t-search-near-infinite-.patch diff --git a/.gitignore b/.gitignore index 47c5a99..63d7e82 100644 --- a/.gitignore +++ b/.gitignore @@ -4,9 +4,9 @@ /17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip /185d60944ea767075d27247c3162b3bc-unowinreg.dll /libreoffice-multiliblauncher.sh -/libreoffice-6.1.4.2.tar.xz -/libreoffice-6.1.4.2.tar.xz.asc -/libreoffice-help-6.1.4.2.tar.xz -/libreoffice-help-6.1.4.2.tar.xz.asc -/libreoffice-translations-6.1.4.2.tar.xz -/libreoffice-translations-6.1.4.2.tar.xz.asc +/libreoffice-6.2.0.3.tar.xz +/libreoffice-6.2.0.3.tar.xz.asc +/libreoffice-help-6.2.0.3.tar.xz +/libreoffice-help-6.2.0.3.tar.xz.asc +/libreoffice-translations-6.2.0.3.tar.xz +/libreoffice-translations-6.2.0.3.tar.xz.asc diff --git a/0001-Fix-build-with-poppler-0.73.0.patch b/0001-Fix-build-with-poppler-0.73.0.patch deleted file mode 100644 index 0a784d8..0000000 --- a/0001-Fix-build-with-poppler-0.73.0.patch +++ /dev/null @@ -1,360 +0,0 @@ -From 81ef46fd80c5b5f0bd0278378a0c110198c9f623 Mon Sep 17 00:00:00 2001 -From: Aleksei Nikiforov -Date: Thu, 22 Nov 2018 17:54:00 +0300 -Subject: [PATCH] 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 -(cherry picked from commit 8ff41a26caf51544699863c89598d37d93dc1b21) -Reviewed-on: https://gerrit.libreoffice.org/66375 -Reviewed-by: Aleksei Nikiforov -Reviewed-by: Michael Stahl -Reviewed-by: Caolán McNamara -Tested-by: Caolán McNamara - -Fix build with poppler-0.72 - -Change-Id: I0664d1b39e97b7555c0a3cba442db52b84f37134 -Reviewed-on: https://gerrit.libreoffice.org/65960 -Tested-by: Jenkins -Reviewed-by: Michael Stahl -(cherry picked from commit 65a6c9ae4791188ffcecf489073cf38873ce5e17) -Reviewed-on: https://gerrit.libreoffice.org/66376 -Reviewed-by: Caolán McNamara -Tested-by: Caolán McNamara - -poppler dropped GBool since 0.71 - -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 -(cherry picked from commit 5e8bdd9203dd642111c62a6668ee665a20d4ba19) -Reviewed-on: https://gerrit.libreoffice.org/66374 -Reviewed-by: Caolán McNamara -Tested-by: Caolán McNamara - -sdext: fix build with poppler 0.73 - -... which has removed Guchar, Gushort, Guint, Gulong... - -Change-Id: Ia54ad378031f167f6779f6ffe574b85c1e72f26d -Reviewed-on: https://gerrit.libreoffice.org/66305 -Tested-by: Jenkins -Reviewed-by: Michael Stahl -(cherry picked from commit 50d371ae08c66648d9f32f633b2245e1746e2bb6) -Reviewed-on: https://gerrit.libreoffice.org/66363 -Reviewed-by: Caolán McNamara -Tested-by: Caolán McNamara ---- - .../pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx | 38 ++++++++++------ - .../pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx | 45 ++++++++++++------- - .../pdfimport/xpdfwrapper/pnghelper.cxx | 6 +-- - .../pdfimport/xpdfwrapper/wrapper_gpl.cxx | 4 +- - 4 files changed, 60 insertions(+), 33 deletions(-) - -diff --git a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx -index 06e4fae..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 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 ); -@@ -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) - { - } -@@ -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(pAction)->getURI()->c_str(); -+#else - const char* pURI = static_cast(pAction)->getURI()->getCString(); -+#endif - - std::vector aEsc( lcl_escapeLineFeeds(pURI) ); - -@@ -578,7 +582,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); - -@@ -753,7 +761,11 @@ void PDFOutDev::updateFont(GfxState *state) - - aFont = it->second; - -+#if POPPLER_CHECK_VERSION(0, 72, 0) -+ std::vector aEsc( lcl_escapeLineFeeds(aFont.familyName.c_str()) ); -+#else - std::vector aEsc( lcl_escapeLineFeeds(aFont.familyName.getCString()) ); -+#endif - printf( " %d %d %d %d %f %d %s", - aFont.isEmbedded, - aFont.isBold, -@@ -939,11 +951,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 +984,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 +1035,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 +1057,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..533eb93 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(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,22 +158,26 @@ 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 - - // 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 -@@ -233,40 +244,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; - -@@ -279,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::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 -diff --git a/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx b/sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx -index 16db05a..cd559ca 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 -@@ -143,7 +143,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); - } - --- -2.20.1 - diff --git a/0001-Resolves-tdf-105602-fix-extended-help-for-non-dispat.patch b/0001-Resolves-tdf-105602-fix-extended-help-for-non-dispat.patch deleted file mode 100644 index 333d193..0000000 --- a/0001-Resolves-tdf-105602-fix-extended-help-for-non-dispat.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 429f80910484079e4ef10ca904710e40a14ed3c4 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Wed, 19 Dec 2018 11:56:23 +0000 -Subject: [PATCH] Resolves: tdf#105602 fix extended help for non-dispatchable - toolbox commands -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Change-Id: I832a043ca5ae3a4030b9ac22447cecfabd3650c0 -Reviewed-on: https://gerrit.libreoffice.org/65422 -Tested-by: Jenkins -Reviewed-by: Caolán McNamara -Tested-by: Caolán McNamara ---- - vcl/source/window/builder.cxx | 2 +- - vcl/source/window/toolbox.cxx | 13 ++++++++++++- - 2 files changed, 13 insertions(+), 2 deletions(-) - -diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx -index ba0281bacc4c..857bf71f34ca 100644 ---- a/vcl/source/window/builder.cxx -+++ b/vcl/source/window/builder.cxx -@@ -2121,9 +2121,9 @@ VclPtr VclBuilder::makeObject(vcl::Window *pParent, const OString & - //TODO: ImplToolItems::size_type -> sal_uInt16! - pToolBox->InsertItem(nItemId, extractLabel(rMap), nBits); - pToolBox->SetItemCommand(nItemId, aCommand); -- pToolBox->SetHelpId(nItemId, m_sHelpRoot + id); - } - -+ pToolBox->SetHelpId(nItemId, m_sHelpRoot + id); - OUString sTooltip(extractTooltipText(rMap)); - if (!sTooltip.isEmpty()) - pToolBox->SetQuickHelpText(nItemId, sTooltip); -diff --git a/vcl/source/window/toolbox.cxx b/vcl/source/window/toolbox.cxx -index 824f216ccf0c..4d203c6b9186 100644 ---- a/vcl/source/window/toolbox.cxx -+++ b/vcl/source/window/toolbox.cxx -@@ -3792,6 +3792,17 @@ void ToolBox::Resize() - } - } - -+namespace -+{ -+ bool DispatchableCommand(const OUString& rName) -+ { -+ return rName.startsWith(".uno") || -+ rName.startsWith("slot:") || -+ rName.startsWith("macro:") || -+ rName.startsWith("vnd.sun.star.script"); -+ } -+} -+ - const OUString& ToolBox::ImplGetHelpText( sal_uInt16 nItemId ) const - { - ImplToolItem* pItem = ImplGetItem( nItemId ); -@@ -3803,7 +3814,7 @@ const OUString& ToolBox::ImplGetHelpText( sal_uInt16 nItemId ) const - Help* pHelp = Application::GetHelp(); - if ( pHelp ) - { -- if ( pItem->maCommandStr.getLength() ) -+ if (DispatchableCommand(pItem->maCommandStr)) - pItem->maHelpText = pHelp->GetHelpText( pItem->maCommandStr, this ); - if ( pItem->maHelpText.isEmpty() && !pItem->maHelpId.isEmpty() ) - pItem->maHelpText = pHelp->GetHelpText( OStringToOUString( pItem->maHelpId, RTL_TEXTENCODING_UTF8 ), this ); --- -2.20.1 - diff --git a/0001-Update-mdds-to-1.4.1.patch b/0001-Update-mdds-to-1.4.1.patch deleted file mode 100644 index dc7fcce..0000000 --- a/0001-Update-mdds-to-1.4.1.patch +++ /dev/null @@ -1,693 +0,0 @@ -From 3debd23d47d1fcbef76033c739a0b7003824d4ca Mon Sep 17 00:00:00 2001 -From: Noel Grandin -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 -(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 -(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 -(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 "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 --- struct walk_func : std::unary_function --+ 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 --+ 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 Collect(bool bTextAsZero, const std::vector>& aOp) = 0; -+ virtual std::vector Collect(const std::vector>& aOp) = 0; - - virtual void ExecuteOperation(const std::pair& rStartPos, const std::pair& 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 Collect(bool bTextAsZero, const std::vector>& aOp) override; -+ virtual std::vector Collect(const std::vector>& aOp) override; - - virtual void ExecuteOperation(const std::pair& rStartPos, const std::pair& 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 Collect(bool bTextAsZero, const std::vector>& aOp) override; -+ virtual std::vector Collect(const std::vector>& aOp) override; - - virtual void ExecuteOperation(const std::pair& rStartPos, const std::pair& 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 -- std::vector ApplyCollectOperation(bool bTextAsZero, const std::vector>& aOp); -+ std::vector ApplyCollectOperation(const std::vector>& 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 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 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 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 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 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 aFunc(aSize.row, aSize.column); -- maMat.walk(aFunc); -+ aFunc = maMat.walk(std::move(aFunc)); - aFunc.swap(maMat); - } - -@@ -1174,21 +1180,34 @@ public: - template - class WalkElementBlocksMultipleValues - { -- const std::vector>& maOp; -+ const std::vector>* mpOp; - std::vector maRes; - bool mbFirst:1; -- bool mbTextAsZero:1; - public: -- WalkElementBlocksMultipleValues(bool bTextAsZero, const std::vector>& aOp) : -- maOp(aOp), mbFirst(true), mbTextAsZero(bTextAsZero) -+ WalkElementBlocksMultipleValues(const std::vector>& 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& 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 - 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 - ScMatrix::IterateResult GetValueWithCount(bool bTextAsZero, const MatrixImplType& maMat) - { - WalkElementBlocks 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 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 aFunc(rStr, maMat.size(), nCol1, nCol2); -- maMat.walk(aFunc); -+ aFunc = maMat.walk(aFunc); - return aFunc.getMatching(); - } - - double ScMatrixImpl::GetMaxValue( bool bTextAsZero ) const - { - CalcMaxMinValue aFunc(bTextAsZero); -- maMat.walk(aFunc); -+ aFunc = maMat.walk(aFunc); - return aFunc.getValue(); - } - - double ScMatrixImpl::GetMinValue( bool bTextAsZero ) const - { - CalcMaxMinValue aFunc(bTextAsZero); -- maMat.walk(aFunc); -+ aFunc = maMat.walk(aFunc); - return aFunc.getValue(); - } - - double ScMatrixImpl::GetGcd() const - { - CalcGcdLcm aFunc; -- maMat.walk(aFunc); -+ aFunc = maMat.walk(aFunc); - return aFunc.getResult(); - } - - double ScMatrixImpl::GetLcm() const - { - CalcGcdLcm 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& 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& rResVal = aFunc.getValues(); -@@ -2091,7 +2177,7 @@ void ScMatrixImpl::GetDoubleArray( std::vector& 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& rArray, ScFullMatrix:: - case ScFullMatrix::Mul: - { - MergeDoubleArrayFunc 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 aFunc(it, itEnd, maOp); -+ MatrixIteratorWrapper 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 aFunc(it, itEnd, maOp); -+ MatrixIteratorWrapper 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 aFunc(it, itEnd, maOp); -+ MatrixIteratorWrapper 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 aVec(node.size); - MatrixIteratorWrapper, 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 - void ScMatrixImpl::ApplyOperation(T aOp, ScMatrixImpl& rMat) - { - MatrixOpWrapper aFunc(rMat.maMat, aOp); -- maMat.walk(aFunc); -+ aFunc = maMat.walk(aFunc); - } - - template --std::vector ScMatrixImpl::ApplyCollectOperation(bool bTextAsZero, const std::vector>& aOp) -+std::vector ScMatrixImpl::ApplyCollectOperation(const std::vector>& aOp) - { -- WalkElementBlocksMultipleValues aFunc(bTextAsZero, aOp); -- maMat.walk(aFunc); -+ WalkElementBlocksMultipleValues aFunc(aOp); -+ aFunc = maMat.walk(std::move(aFunc)); - return aFunc.getResult(); - } - -@@ -2544,8 +2640,10 @@ void ScMatrixImpl::ExecuteOperation(const std::pair& 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& rStartPos, - pImpl->ExecuteOperation(rStartPos, rEndPos, aDoubleFunc, aBoolFunc, aStringFunc, aEmptyFunc); - } - --std::vector ScFullMatrix::Collect(bool bTextAsZero, const std::vector>& aOp) -+std::vector ScFullMatrix::Collect(const std::vector>& 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 ScVectorRefMatrix::Collect(bool bTextAsZero, const std::vector>& aOp) -+std::vector ScVectorRefMatrix::Collect(const std::vector>& aOp) - { - ensureFullMatrix(); -- return mpFullMatrix->Collect(bTextAsZero, aOp); -+ return mpFullMatrix->Collect(aOp); - } - - void ScVectorRefMatrix::ExecuteOperation(const std::pair& rStartPos, --- -2.17.1 - diff --git a/0001-Update-orcus-to-0.14.0.patch b/0001-Update-orcus-to-0.14.0.patch deleted file mode 100644 index 2480f48..0000000 --- a/0001-Update-orcus-to-0.14.0.patch +++ /dev/null @@ -1,801 +0,0 @@ -From 1d0727a104d76210814f41c1169df318e40c9d80 Mon Sep 17 00:00:00 2001 -From: Kohei Yoshida -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 ---- - 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 -+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 -++#include -+ -+ 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 - #include - #include -+#include - - #include - #include -@@ -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 - diff --git a/0001-Upgrade-external-boost-to-Boost-1.69.0.patch b/0001-Upgrade-external-boost-to-Boost-1.69.0.patch deleted file mode 100644 index 8d89e48..0000000 --- a/0001-Upgrade-external-boost-to-Boost-1.69.0.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 23a8d5ffbbe58761b89f590f0735abccd69a3681 Mon Sep 17 00:00:00 2001 -From: Stephan Bergmann -Date: Fri, 11 Jan 2019 17:40:17 +0100 -Subject: [PATCH] Upgrade external/boost to Boost 1.69.0 - - is a copy of -, -SHA256 hash as given at . - -* removed from external/boost/include/boost/ those files that are no longer - present in workdir/UnpackedTarball/boost/boost/ - -* the shrunk external/boost/rtti.patch.0 can probably be removed completely in a - follow-up commit - -* the patch to libs/filesystem/src/operations.cpp in - external/boost/boost-android-unified.patch.1 no longer applied, and appears to - be no longer necessary anyway (seeing a working build without it of - --with-distro=LibreOfficeAndroid and NDK r16b); but with the non-standard - Clang 5.0.300080 from NDK r16b, the build now caused failures like - -> workdir/UnpackedTarball/boost/boost/type_traits/detail/is_function_cxx_11.hpp:36:11: error: class template partial specialization contains a template parameter that cannot be deduced; this partial specialization will never be used [-Wunusable-partial-specialization] -> struct is_function : public true_type {}; -> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -> workdir/UnpackedTarball/boost/boost/type_traits/detail/is_function_cxx_11.hpp:35:38: note: non-deducible template parameter 'NE' -> template -> ^ -> workdir/UnpackedTarball/boost/boost/type_traits/detail/is_function_cxx_11.hpp:22:40: note: expanded from macro 'BOOST_TT_NOEXCEPT_PARAM' -> #define BOOST_TT_NOEXCEPT_PARAM , bool NE -> ^ - - showing that that version of Clang has the same problem handling noexcept(b) - as a deduced template parameter as MSVC has, as already supported by the code - -* new external/boost/sse.patch.0 needed on Windows x86 to silence errors like - -> C:\cygwin\home\tdf\lode\jenkins\workspace\gerrit_windows\workdir\UnpackedTarball\boost\boost/type_traits/detail/is_function_cxx_11.hpp(111): error C2215: '__vectorcall' cannot be used with '/arch:SSE' - - (); according to - : "_M_IX86_FP Defined as an integer literal value that indicates - the /arch compiler option that was set, or the default. This macro is always - defined when the compilation target is an x86 processor. Otherwise, undefined. - When defined, the value is: [...] 1 if the /arch:SSE compiler option was set." - and we specify /arch:SSE explicitly for Windows x86 since - 8bd6bf93b7711a7ac7c5cbd7c3bb980481570ebd "fdo#82430: configure: MSVC build: - avoid using SSE2 instructions" - -* boost::logic::tribool conversion operator to bool is explicit now - -Change-Id: Iea49560d734f545539f062dce46740fbf812dd84 -Reviewed-on: https://gerrit.libreoffice.org/66189 -Reviewed-by: Stephan Bergmann -Tested-by: Stephan Bergmann ---- - sfx2/source/appl/shutdownicon.cxx | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/sfx2/source/appl/shutdownicon.cxx b/sfx2/source/appl/shutdownicon.cxx -index a24e254c7948..65c73de125d9 100644 ---- a/sfx2/source/appl/shutdownicon.cxx -+++ b/sfx2/source/appl/shutdownicon.cxx -@@ -144,7 +144,7 @@ bool LoadModule() - #endif // ENABLE_QUICKSTART_APPLET - } - assert(!boost::logic::indeterminate(loaded)); -- return loaded; -+ return bool(loaded); - } - - } --- -2.20.1 - diff --git a/0001-tdf-121855-like-osx-case-don-t-search-near-infinite-.patch b/0001-tdf-121855-like-osx-case-don-t-search-near-infinite-.patch deleted file mode 100644 index 55a379b..0000000 --- a/0001-tdf-121855-like-osx-case-don-t-search-near-infinite-.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 08755c7f3c285576ba29fe8dd875b18d0792de39 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= -Date: Tue, 4 Dec 2018 13:01:14 +0000 -Subject: [PATCH] tdf#121855 like osx case don't search near-infinite calc grid - for focus -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Change-Id: Ie6bccd2781fbbdc5f4d5dc2eb6903191aafe8265 -Reviewed-on: https://gerrit.libreoffice.org/64520 -Tested-by: Jenkins -Reviewed-by: Caolán McNamara -Tested-by: Caolán McNamara -(cherry picked from commit cd0c794a6cfaf9c008682596d2cdae6aa57c8bbf) ---- - vcl/osx/a11ywrapper.mm | 2 +- - vcl/unx/gtk/gtksalframe.cxx | 7 +++++++ - vcl/unx/gtk3/gtk3gtkframe.cxx | 7 +++++++ - 3 files changed, 15 insertions(+), 1 deletion(-) - -diff --git a/vcl/osx/a11ywrapper.mm b/vcl/osx/a11ywrapper.mm -index 67e155e81e53..b35a1d22745d 100644 ---- a/vcl/osx/a11ywrapper.mm -+++ b/vcl/osx/a11ywrapper.mm -@@ -992,7 +992,7 @@ Reference < XAccessibleContext > hitTestRunner ( css::awt::Point point, - bool bSafeToIterate = true; - sal_Int32 nCount = rxAccessibleContext -> getAccessibleChildCount(); - -- if ( nCount < 0 || nCount > SAL_MAX_UINT16 /* slow enough for anyone */ ) -+ if (nCount < 0 || nCount > SAL_MAX_UINT16 /* slow enough for anyone */) - bSafeToIterate = false; - else { // manages descendants is an horror from the a11y standards guys. - Reference< XAccessibleStateSet > xStateSet; -diff --git a/vcl/unx/gtk/gtksalframe.cxx b/vcl/unx/gtk/gtksalframe.cxx -index 16e716b16daa..56cb33520443 100644 ---- a/vcl/unx/gtk/gtksalframe.cxx -+++ b/vcl/unx/gtk/gtksalframe.cxx -@@ -3666,6 +3666,13 @@ uno::Reference - } - } - -+ bool bSafeToIterate = true; -+ sal_Int32 nCount = xContext->getAccessibleChildCount(); -+ if (nCount < 0 || nCount > SAL_MAX_UINT16 /* slow enough for anyone */) -+ bSafeToIterate = false; -+ if (!bSafeToIterate) -+ return uno::Reference< accessibility::XAccessibleEditableText >(); -+ - for (sal_Int32 i = 0; i < xContext->getAccessibleChildCount(); ++i) - { - uno::Reference< accessibility::XAccessible > xChild = xContext->getAccessibleChild(i); -diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx -index 71ab50efc813..95e616473608 100644 ---- a/vcl/unx/gtk3/gtk3gtkframe.cxx -+++ b/vcl/unx/gtk3/gtk3gtkframe.cxx -@@ -4213,6 +4213,13 @@ uno::Reference - } - } - -+ bool bSafeToIterate = true; -+ sal_Int32 nCount = xContext->getAccessibleChildCount(); -+ if (nCount < 0 || nCount > SAL_MAX_UINT16 /* slow enough for anyone */) -+ bSafeToIterate = false; -+ if (!bSafeToIterate) -+ return uno::Reference< accessibility::XAccessibleEditableText >(); -+ - for (sal_Int32 i = 0; i < xContext->getAccessibleChildCount(); ++i) - { - uno::Reference< accessibility::XAccessible > xChild = xContext->getAccessibleChild(i); --- -2.19.2 - diff --git a/libreoffice.spec b/libreoffice.spec index 9dc211f..1820358 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -3,7 +3,7 @@ %global _python_bytecompile_extra 1 # download path contains version without the last (fourth) digit -%global libo_version 6.1.4 +%global libo_version 6.2.0 # Should contain .alphaX / .betaX, if this is pre-release (actually # pre-RC) version. The pre-release string is part of tarball file names, # so we need a way to define it easily at one place. @@ -53,8 +53,8 @@ Summary: Free Software Productivity Suite Name: libreoffice Epoch: 1 -Version: %{libo_version}.2 -Release: 5%{?libo_prerelease}%{?dist} +Version: %{libo_version}.3 +Release: 1%{?libo_prerelease}%{?dist} License: (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and MPLv2.0 and CC0 URL: http://www.libreoffice.org/ @@ -236,12 +236,7 @@ Patch0: 0001-don-t-suppress-crashes.patch # not upstreamed Patch1: 0001-Resolves-rhbz-1432468-disable-opencl-by-default.patch # not upstreamed -Patch2: 0001-Update-mdds-to-1.4.1.patch -Patch3: 0001-Update-orcus-to-0.14.0.patch -Patch4: 0001-tdf-121855-like-osx-case-don-t-search-near-infinite-.patch -Patch5: 0001-Fix-build-with-poppler-0.73.0.patch -Patch6: 0001-Upgrade-external-boost-to-Boost-1.69.0.patch -Patch7: 0001-Resolves-tdf-105602-fix-extended-help-for-non-dispat.patch +Patch2: 0001-Upgrade-external-boost-to-Boost-1.69.0.patch %if 0%{?rhel} # not upstreamed @@ -2174,6 +2169,9 @@ done %{_includedir}/LibreOfficeKit %changelog +* Thu Feb 07 2019 Caolán McNamara - 1:6.2.0.3-1 +- latest version + * Fri Feb 01 2019 Caolán McNamara - 1:6.1.4.2-5 - Resolves: rhbz#1671340 extended tooltips not working in impress navigator diff --git a/sources b/sources index bdc98bc..8298efe 100644 --- a/sources +++ b/sources @@ -5,9 +5,9 @@ SHA512 (185d60944ea767075d27247c3162b3bc-unowinreg.dll) = 854b8ae29b57b40ba6bb6f SHA512 (a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip) = 2d3835f7ac356805025cafedcad97faa48d0f5da386e6ac7b7451030059df8e2fdb0861ade07a576ebf9fb5b88a973585ab0437944b06aac9289d6898ba8586a SHA512 (0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz) = b9c02d63e9b47a838dbe67c05b9e9e4983d13b9d74794e1c30c73d341c3bc905c9edec3a72fa339ae8c0e06d97e69ac2ea23bf51336b77af14cab7ae67721a46 SHA512 (libreoffice-multiliblauncher.sh) = db532afdf5000bc66f9e02c7d0ab586468466f63f8f0bdb204832581e8277c5c59f688fa096548d642411cb8c46e8de4a744676b4e624c075262cfd6945138cd -SHA512 (libreoffice-6.1.4.2.tar.xz) = ba81b7744b908f9fe67a83e72c17c08b3b2e99599a5fd4f9cc1f2d81b3fd0ddb8065ae466205f85185ab9420350cea0b2d60108df3e583b74bd1fcd9e4eb0c3c -SHA512 (libreoffice-6.1.4.2.tar.xz.asc) = 4e1c45211ea654cb12ce2a4accd4c49e8f7fef5e2f99e018fd69514566cd1117432c8f868e0d5c32dd570935d23a9709cfdafaa67c1b47837def28bc80d10ae7 -SHA512 (libreoffice-help-6.1.4.2.tar.xz) = e24f2f6795856da62f77ebfdcfedc8190b8ecef74e395fc263f0cab4a27c0fe3d95f37665747a590fc7a6a93c6c3473a2a4501c50d415cc602f85838955fe9ab -SHA512 (libreoffice-help-6.1.4.2.tar.xz.asc) = 8817ef14327998cd8b32bfe6f404388aa6a5da693fa2f5805c5ec251ddff4fc825c900ea14bc2c5663702891686ef28074d07699802cef82731d0ae7f2b39c4a -SHA512 (libreoffice-translations-6.1.4.2.tar.xz) = 6a07c4fd1388c2b84905ea16fe9a512301519a1579fbd3c8097cea6a9c6ff6109a659bf6d2e61cb7abff3a72b80dfa0388576e94fdd5a6280e1e10ea3bbf31aa -SHA512 (libreoffice-translations-6.1.4.2.tar.xz.asc) = ed4c972ac3585d4695b0aa9276c65f9f94194578de7baf09ed82a50c7fd296afccd50fb5706e5caf3d2d81d999ca6023eb44404096107a6bfbc6e32d94254502 +SHA512 (libreoffice-6.2.0.3.tar.xz) = 991cab829c88010b5df0c40e6422fd725f7854d256cfa7ffcf595549ccc49aeebe135513b56c5ccdc810ea07b8df186004a3d9e5d84b5d69992996158166d0c1 +SHA512 (libreoffice-6.2.0.3.tar.xz.asc) = e66a1d018f02250106a473693ac4b4b643438087c686f00a63c4876266a678ecee6624575964110ff9c9226c5de5660b1c242322ece09d66d5d36644961ea16b +SHA512 (libreoffice-help-6.2.0.3.tar.xz) = 7b1c7949ede3fdd6dcc09fd38b62f17d68c5f79e75fb72cedb9d55889d8d8cf261d6614aa5e2e3eae3e26764b2cdb0e4344bef25851daef6041ac3935ad64fb1 +SHA512 (libreoffice-help-6.2.0.3.tar.xz.asc) = 7962ec4216991ca42a0774af0c51003ce9700a299554f2b49b5c8d559f11c13bab3b516631ddc45b2d074f5153fa81fdbfe6872f1b871f8d7c069d47e4ddff60 +SHA512 (libreoffice-translations-6.2.0.3.tar.xz) = c1431ec79e14818cdc5f536eb8f92ab88aba3d22e6c87a15ad1755daf3a14fdc06dba16ce69791c6dd6fade779db775e38709001f5aba639ff6c8368c539db7d +SHA512 (libreoffice-translations-6.2.0.3.tar.xz.asc) = f3d06ddefbdbdcae29ca255e0c94b7860d366163ced6cda417e98f00dfbae6447ffed8cef64ae447a57e182ea3714b3e931c820997f5b35ca81e02b4d51ad98f